vcomply-workflow-engine 0.0.6 → 0.0.7
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/bundles/vcomply-workflow-engine.umd.js +8647 -7152
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.js +18 -15
- package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.ngfactory.js +2 -2
- package/esm2015/lib/add-multiple-risk/add-multiple-risk.component.js +6 -6
- package/esm2015/lib/add-multiple-risk/add-multiple-risk.component.ngfactory.js +3 -3
- package/esm2015/lib/confirmation-alert/confirmation-alert.component.js +1 -1
- package/esm2015/lib/create-documents/create-documents.component.js +1 -1
- package/esm2015/lib/formgroup/cs-select/cs-select.component.js +3 -3
- package/esm2015/lib/formgroup/cs-select/cs-select.component.ngfactory.js +3 -3
- package/esm2015/lib/formgroup/cs-switch/cs-switch.component.js +1 -1
- package/esm2015/lib/formgroup/select/cs-select/cs-select.component.js +3 -3
- package/esm2015/lib/formgroup/select/cs-select/cs-select.component.ngfactory.js +3 -3
- package/esm2015/lib/log-an-issue/log-an-issue.component.js +10 -13
- package/esm2015/lib/log-an-issue/log-an-issue.component.ngfactory.js +7 -7
- package/esm2015/lib/more-option/more-option.component.js +29 -4
- package/esm2015/lib/more-option/more-option.component.ngfactory.js +4 -4
- package/esm2015/lib/more-option/more-option.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.ngfactory.js +19 -0
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.ngfactory.js +19 -0
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list.component.js +187 -0
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list.component.ngfactory.js +208 -0
- package/esm2015/lib/sharedComponents/assessment-list/assessment-list.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-list/service/assessment.interface.js +2 -0
- package/esm2015/lib/sharedComponents/assessment-list/service/assessment.interface.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-list/service/assessment.service.js +34 -0
- package/esm2015/lib/sharedComponents/assessment-list/service/assessment.service.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-preview/assessment-preview.module.js +61 -0
- package/esm2015/lib/sharedComponents/assessment-preview/assessment-preview.module.ngfactory.js +21 -0
- package/esm2015/lib/sharedComponents/assessment-preview/assessment-preview.module.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.js +29 -0
- package/esm2015/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.ngfactory.js +57 -0
- package/esm2015/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-preview/date-time/date-time.component.js +32 -0
- package/esm2015/lib/sharedComponents/assessment-preview/date-time/date-time.component.ngfactory.js +88 -0
- package/esm2015/lib/sharedComponents/assessment-preview/date-time/date-time.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-preview/device/device.component.js +22 -0
- package/esm2015/lib/sharedComponents/assessment-preview/device/device.component.ngfactory.js +26 -0
- package/esm2015/lib/sharedComponents/assessment-preview/device/device.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.js +19 -0
- package/esm2015/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.ngfactory.js +39 -0
- package/esm2015/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-preview/page-header/page-header.component.js +19 -0
- package/esm2015/lib/sharedComponents/assessment-preview/page-header/page-header.component.ngfactory.js +22 -0
- package/esm2015/lib/sharedComponents/assessment-preview/page-header/page-header.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-preview/preview/preview.component.js +47 -0
- package/esm2015/lib/sharedComponents/assessment-preview/preview/preview.component.ngfactory.js +69 -0
- package/esm2015/lib/sharedComponents/assessment-preview/preview/preview.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.ngfactory.js +109 -0
- package/esm2015/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.js +18 -0
- package/esm2015/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.ngfactory.js +96 -0
- package/esm2015/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.js +29 -0
- package/esm2015/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.ngfactory.js +56 -0
- package/esm2015/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-preview/select-question/select-question.component.js +32 -0
- package/esm2015/lib/sharedComponents/assessment-preview/select-question/select-question.component.ngfactory.js +23 -0
- package/esm2015/lib/sharedComponents/assessment-preview/select-question/select-question.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.js +19 -0
- package/esm2015/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.ngfactory.js +21 -0
- package/esm2015/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-preview/welcome/welcome.component.js +18 -0
- package/esm2015/lib/sharedComponents/assessment-preview/welcome/welcome.component.ngfactory.js +21 -0
- package/esm2015/lib/sharedComponents/assessment-preview/welcome/welcome.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.js +3 -3
- package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.ngfactory.js +19 -51
- package/esm2015/lib/sharedComponents/bulk-view/bulk-view.component.js +2 -3
- package/esm2015/lib/sharedComponents/category-list/category-list.component.js +1 -1
- package/esm2015/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.js +2 -2
- package/esm2015/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.ngfactory.js +1 -1
- package/esm2015/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.js +2 -2
- package/esm2015/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.js +9 -9
- package/esm2015/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.ngfactory.js +47 -248
- package/esm2015/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.js +1 -1
- package/esm2015/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.js +1 -1
- package/esm2015/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.js +1 -1
- package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.js +2 -2
- package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.ngfactory.js +2 -2
- package/esm2015/lib/sharedComponents/framework-list/parent-table/parent-table.component.js +3 -3
- package/esm2015/lib/sharedComponents/framework-list/parent-table/parent-table.component.ngfactory.js +12 -12
- package/esm2015/lib/sharedComponents/no-data/no-data.component.js +3 -3
- package/esm2015/lib/sharedComponents/no-data/no-data.component.ngfactory.js +5 -5
- package/esm2015/lib/sharedComponents/no-data/no-data.module.ngfactory.js +1 -1
- package/esm2015/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.js +14 -0
- package/esm2015/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.ngfactory.js +19 -0
- package/esm2015/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/radio-list-with-pagination/radio-list.component.js +111 -0
- package/esm2015/lib/sharedComponents/radio-list-with-pagination/radio-list.component.ngfactory.js +87 -0
- package/esm2015/lib/sharedComponents/radio-list-with-pagination/radio-list.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/review-frequency/review-frequency.component.js +1 -1
- package/esm2015/lib/sharedComponents/risk-classification/risk-classification.component.js +1 -1
- package/esm2015/lib/ui-kit/pagination/pagination/pagination.component.js +111 -0
- package/esm2015/lib/ui-kit/pagination/pagination/pagination.component.ngfactory.js +57 -0
- package/esm2015/lib/ui-kit/pagination/pagination/pagination.component.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/pagination/pagination.module.js +21 -0
- package/esm2015/lib/ui-kit/pagination/pagination.module.ngfactory.js +13 -0
- package/esm2015/lib/ui-kit/pagination/pagination.module.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/popover/popover.component.js +5 -4
- package/esm2015/lib/ui-kit/popover/popover.directive.js +55 -1
- package/esm2015/lib/ui-kit/popover/popover.directive.ngsummary.json +1 -1
- package/esm2015/lib/workflow-assessment/workflow-assessment.component.js +226 -0
- package/esm2015/lib/workflow-assessment/workflow-assessment.component.ngfactory.js +244 -0
- package/esm2015/lib/workflow-assessment/workflow-assessment.component.ngsummary.json +1 -0
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +92 -13
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngfactory.js +134 -93
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +42 -6
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +73 -38
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-engine.module.js +21 -3
- package/esm2015/lib/workflow-engine.module.ngfactory.js +4 -2
- package/esm2015/lib/workflow-engine.module.ngsummary.json +1 -1
- package/esm2015/lib/workflow-pagination/workflow-pagination.component.js +95 -6
- package/esm2015/lib/workflow-pagination/workflow-pagination.component.ngfactory.js +23 -7
- package/esm2015/lib/workflow-pagination/workflow-pagination.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-policy/workflow-policy.component.js +2 -2
- package/esm2015/lib/workflow-policy/workflow-policy.component.ngfactory.js +12 -12
- package/esm2015/lib/workflow-risk/workflow-risk.component.js +20 -3
- package/esm2015/lib/workflow-risk/workflow-risk.component.ngfactory.js +7 -7
- package/esm2015/lib/workflow-services/assessment.service.js +68 -0
- package/esm2015/lib/workflow-services/assessment.service.ngsummary.json +1 -0
- package/esm2015/lib/workflow-services/auth.service.js +3 -1
- package/esm2015/lib/workflow-services/responsibility.service.js +14 -1
- package/esm2015/lib/workflow-services/responsibility.service.ngsummary.json +1 -1
- package/esm2015/lib/workflow-survey-form/workflow-survey-form.component.js +2 -2
- package/esm2015/lib/workflow-survey-form/workflow-survey-form.component.ngfactory.js +2 -2
- package/esm2015/vcomply-workflow-engine.js +67 -44
- package/esm2015/vcomply-workflow-engine.ngsummary.json +1 -1
- package/fesm2015/vcomply-workflow-engine.js +2656 -1242
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/lib/more-option/more-option.component.d.ts +1 -0
- package/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +80 -0
- package/lib/sharedComponents/assessment-list/assessment-list.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-list/service/assessment.interface.d.ts +22 -0
- package/lib/sharedComponents/assessment-list/service/assessment.service.d.ts +10 -0
- package/lib/sharedComponents/assessment-preview/assessment-preview.module.d.ts +2 -0
- package/lib/sharedComponents/assessment-preview/assessment-preview.module.ngfactory.d.ts +3 -0
- package/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.d.ts +9 -0
- package/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-preview/date-time/date-time.component.d.ts +12 -0
- package/lib/sharedComponents/assessment-preview/date-time/date-time.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-preview/device/device.component.d.ts +7 -0
- package/lib/sharedComponents/assessment-preview/device/device.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.d.ts +7 -0
- package/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-preview/page-header/page-header.component.d.ts +7 -0
- package/lib/sharedComponents/assessment-preview/page-header/page-header.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-preview/preview/preview.component.d.ts +11 -0
- package/lib/sharedComponents/assessment-preview/preview/preview.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.d.ts +6 -0
- package/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.d.ts +9 -0
- package/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-preview/select-question/select-question.component.d.ts +9 -0
- package/lib/sharedComponents/assessment-preview/select-question/select-question.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.d.ts +7 -0
- package/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-preview/welcome/welcome.component.d.ts +6 -0
- package/lib/sharedComponents/assessment-preview/welcome/welcome.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.d.ts +5 -0
- package/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/radio-list-with-pagination/radio-list.component.d.ts +47 -0
- package/lib/sharedComponents/radio-list-with-pagination/radio-list.component.ngfactory.d.ts +1 -0
- package/lib/ui-kit/pagination/pagination/pagination.component.d.ts +23 -0
- package/lib/ui-kit/pagination/pagination/pagination.component.ngfactory.d.ts +1 -0
- package/lib/ui-kit/pagination/pagination.module.d.ts +2 -0
- package/lib/ui-kit/pagination/pagination.module.ngfactory.d.ts +3 -0
- package/lib/ui-kit/popover/popover.directive.d.ts +1 -0
- package/lib/workflow-assessment/workflow-assessment.component.d.ts +63 -0
- package/lib/workflow-assessment/workflow-assessment.component.ngfactory.d.ts +1 -0
- package/lib/workflow-compliance/workflow-compliance.component.d.ts +12 -1
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +7 -1
- package/lib/workflow-pagination/workflow-pagination.component.d.ts +18 -1
- package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
- package/lib/workflow-services/assessment.service.d.ts +20 -0
- package/lib/workflow-services/auth.service.d.ts +2 -0
- package/lib/workflow-services/responsibility.service.d.ts +5 -0
- package/package.json +1 -1
- package/vcomply-workflow-engine.d.ts +66 -43
- package/vcomply-workflow-engine.metadata.json +1 -1
|
@@ -76,7 +76,7 @@ function View_WorkflowRiskComponent_7(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵel
|
|
|
76
76
|
function View_WorkflowRiskComponent_8(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 7, "div", [["class", "selected"]], null, null, null, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 2, "div", [["class", "chip-container"]], null, null, null, null, null)), (_l()(), i2.ɵeld(2, 0, null, null, 1, "span", [["class", "value"]], null, null, null, null, null)), (_l()(), i2.ɵted(3, null, ["", ""])), (_l()(), i2.ɵeld(4, 0, null, null, 3, "button", [["class", "edit"], ["type", "button"]], null, [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
|
|
77
77
|
var pd_0 = (_co.activateSelector("name", true) !== false);
|
|
78
78
|
ad = (pd_0 && ad);
|
|
79
|
-
} return ad; }, null, null)), (_l()(), i2.ɵeld(5, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["\
|
|
79
|
+
} return ad; }, null, null)), (_l()(), i2.ɵeld(5, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["\uE9BA"])), (_l()(), i2.ɵted(-1, null, [" Edit"]))], null, function (_ck, _v) { var _co = _v.component; var currVal_0 = _co.riskForm.title; _ck(_v, 3, 0, currVal_0); }); }
|
|
80
80
|
function View_WorkflowRiskComponent_9(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 1, "p", [["class", "error-message"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["Add a risk name"]))], null, null); }
|
|
81
81
|
function View_WorkflowRiskComponent_10(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 1, "p", [["class", "error-message"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["Add a risk description"]))], null, null); }
|
|
82
82
|
function View_WorkflowRiskComponent_11(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 0, "img", [["alt", ""], ["src", "https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg"]], null, null, null, null, null))], null, null); }
|
|
@@ -105,7 +105,7 @@ function View_WorkflowRiskComponent_16(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵe
|
|
|
105
105
|
function View_WorkflowRiskComponent_17(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 3, "button", [["class", "edit"], ["type", "button"]], null, [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
|
|
106
106
|
var pd_0 = (_co.activateSelector("rc", true) !== false);
|
|
107
107
|
ad = (pd_0 && ad);
|
|
108
|
-
} return ad; }, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["\
|
|
108
|
+
} return ad; }, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["\uE9BA"])), (_l()(), i2.ɵted(-1, null, [" Edit"]))], null, null); }
|
|
109
109
|
function View_WorkflowRiskComponent_14(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 7, "div", [["class", "selected"]], null, null, null, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 4, "div", [["class", "chip-container"]], [[2, "more-one", null], [2, "plus", null]], null, null, null, null)), (_l()(), i2.ɵand(16777216, null, null, 1, null, View_WorkflowRiskComponent_15)), i2.ɵdid(3, 278528, null, 0, i6.NgForOf, [i2.ViewContainerRef, i2.TemplateRef, i2.IterableDiffers], { ngForOf: [0, "ngForOf"] }, null), (_l()(), i2.ɵand(16777216, null, null, 1, null, View_WorkflowRiskComponent_16)), i2.ɵdid(5, 16384, null, 0, i6.NgIf, [i2.ViewContainerRef, i2.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i2.ɵand(16777216, null, null, 1, null, View_WorkflowRiskComponent_17)), i2.ɵdid(7, 16384, null, 0, i6.NgIf, [i2.ViewContainerRef, i2.TemplateRef], { ngIf: [0, "ngIf"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_2 = ((_co.riskForm == null) ? null : ((_co.riskForm.responsibilityCentersList == null) ? null : _co.riskForm.responsibilityCentersList.slice(0, 2))); _ck(_v, 3, 0, currVal_2); var currVal_3 = (((_co.riskForm == null) ? null : ((_co.riskForm.responsibilityCentersList == null) ? null : _co.riskForm.responsibilityCentersList.length)) > 2); _ck(_v, 5, 0, currVal_3); var currVal_4 = (_co.activeSelector !== "rc"); _ck(_v, 7, 0, currVal_4); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = (((_co.riskForm == null) ? null : ((_co.riskForm.responsibilityCentersList == null) ? null : _co.riskForm.responsibilityCentersList.length)) > 1); var currVal_1 = (((_co.riskForm == null) ? null : ((_co.riskForm.responsibilityCentersList == null) ? null : _co.riskForm.responsibilityCentersList.length)) > 2); _ck(_v, 1, 0, currVal_0, currVal_1); }); }
|
|
110
110
|
function View_WorkflowRiskComponent_18(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 1, "p", [["class", "error-message"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["Assign this risk to a Responsibility Center(s)"]))], null, null); }
|
|
111
111
|
function View_WorkflowRiskComponent_19(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 5, "li", [], null, null, null, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 4, "div", [["class", "avatar-card"]], null, null, null, null, null)), (_l()(), i2.ɵeld(2, 0, null, null, 3, "span", [["class", "value"]], null, null, null, null, null)), (_l()(), i2.ɵeld(3, 0, null, null, 1, "i", [["class", "icons"]], null, [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
|
|
@@ -140,7 +140,7 @@ function View_WorkflowRiskComponent_24(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵe
|
|
|
140
140
|
function View_WorkflowRiskComponent_28(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 3, "button", [["class", "edit"], ["type", "button"]], null, [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
|
|
141
141
|
var pd_0 = (_co.activateSelector("owner", true) !== false);
|
|
142
142
|
ad = (pd_0 && ad);
|
|
143
|
-
} return ad; }, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["\
|
|
143
|
+
} return ad; }, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["\uE9BA"])), (_l()(), i2.ɵted(-1, null, [" Edit"]))], null, null); }
|
|
144
144
|
function View_WorkflowRiskComponent_23(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 6, "div", [["class", "selected"]], null, null, null, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 3, "div", [["class", "chip-container"]], [[2, "more-one", null], [2, "plus", null]], null, null, null, null)), (_l()(), i2.ɵand(16777216, null, null, 2, null, View_WorkflowRiskComponent_24)), i2.ɵdid(3, 16384, null, 0, i6.NgIf, [i2.ViewContainerRef, i2.TemplateRef], { ngIf: [0, "ngIf"] }, null), i2.ɵpid(0, i7.ShortMergePipe, []), (_l()(), i2.ɵand(16777216, null, null, 1, null, View_WorkflowRiskComponent_28)), i2.ɵdid(6, 16384, null, 0, i6.NgIf, [i2.ViewContainerRef, i2.TemplateRef], { ngIf: [0, "ngIf"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_2 = i2.ɵunv(_v, 3, 0, i2.ɵnov(_v, 4).transform(((_co.riskForm == null) ? null : _co.riskForm.ownersList), _co.nonRemovableUsersList)); _ck(_v, 3, 0, currVal_2); var currVal_3 = (_co.activeSelector !== "owner"); _ck(_v, 6, 0, currVal_3); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = (((_co.riskForm == null) ? null : ((_co.riskForm.ownersList == null) ? null : _co.riskForm.ownersList.length)) > 1); var currVal_1 = (((_co.riskForm == null) ? null : ((_co.riskForm.ownersList == null) ? null : _co.riskForm.ownersList.length)) > 2); _ck(_v, 1, 0, currVal_0, currVal_1); }); }
|
|
145
145
|
function View_WorkflowRiskComponent_30(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 5, "li", [], null, null, null, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 4, "div", [["class", "avatar-card"]], null, null, null, null, null)), (_l()(), i2.ɵeld(2, 0, null, null, 3, "span", [["class", "value"]], null, null, null, null, null)), (_l()(), i2.ɵeld(3, 0, null, null, 1, "i", [["class", "icons"]], null, [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
|
|
146
146
|
var pd_0 = (_co.remove("owner", _v.context.$implicit) !== false);
|
|
@@ -156,7 +156,7 @@ function View_WorkflowRiskComponent_33(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵe
|
|
|
156
156
|
function View_WorkflowRiskComponent_35(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 3, "button", [["class", "edit"], ["type", "button"]], null, [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
|
|
157
157
|
var pd_0 = (_co.activateSelector("category", true) !== false);
|
|
158
158
|
ad = (pd_0 && ad);
|
|
159
|
-
} return ad; }, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["\
|
|
159
|
+
} return ad; }, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["\uE9BA"])), (_l()(), i2.ɵted(-1, null, [" Edit"]))], null, null); }
|
|
160
160
|
function View_WorkflowRiskComponent_34(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 7, "div", [["class", "selected"]], null, null, null, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 4, "div", [["class", "chip-container"]], null, null, null, null, null)), (_l()(), i2.ɵeld(2, 0, null, null, 3, "span", [["class", "chip"]], null, null, null, null, null)), (_l()(), i2.ɵeld(3, 0, null, null, 1, "i", [["class", "icons"]], null, [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
|
|
161
161
|
var pd_0 = (_co.remove("category", _co.riskForm.category.selectedCategory) !== false);
|
|
162
162
|
ad = (pd_0 && ad);
|
|
@@ -200,7 +200,7 @@ function View_WorkflowRiskComponent_38(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵe
|
|
|
200
200
|
} return ad; }, null, null)), i2.ɵdid(13, 81920, null, 0, i8.ToolTipDirective, [i2.ElementRef, i2.Renderer2], { tooltipTitle: [0, "tooltipTitle"], placement: [1, "placement"], type: [2, "type"], tooltipMandatory: [3, "tooltipMandatory"] }, null), (_l()(), i2.ɵted(-1, null, ["\uE91F"])), (_l()(), i2.ɵeld(15, 0, null, null, 18, "div", [["class", "input"]], null, null, null, null, null)), (_l()(), i2.ɵeld(16, 0, null, null, 1, "span", [["class", "text"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["Set Number of days"])), (_l()(), i2.ɵeld(18, 0, null, null, 15, "div", [["class", "input-group counter"]], null, null, null, null, null)), (_l()(), i2.ɵeld(19, 0, null, null, 2, "button", [], null, [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
|
|
201
201
|
var pd_0 = (_co.changeRiskAssessment("subtract") !== false);
|
|
202
202
|
ad = (pd_0 && ad);
|
|
203
|
-
} return ad; }, null, null)), (_l()(), i2.ɵeld(20, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["\
|
|
203
|
+
} return ad; }, null, null)), (_l()(), i2.ɵeld(20, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["\uEA53"])), (_l()(), i2.ɵeld(22, 0, null, null, 8, "input", [["min", "0"], ["name", "riskAssessmentDeadline"], ["oninput", "this.value = Math.abs(this.value)"], ["onkeydown", "return event.keyCode !== 190"], ["type", "number"], ["validateAssessment", ""]], [[1, "min", 0], [2, "ng-untouched", null], [2, "ng-touched", null], [2, "ng-pristine", null], [2, "ng-dirty", null], [2, "ng-valid", null], [2, "ng-invalid", null], [2, "ng-pending", null]], [[null, "ngModelChange"], [null, "focusin"], [null, "focusout"], [null, "input"], [null, "blur"], [null, "compositionstart"], [null, "compositionend"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("input" === en)) {
|
|
204
204
|
var pd_0 = (i2.ɵnov(_v, 23)._handleInput($event.target.value) !== false);
|
|
205
205
|
ad = (pd_0 && ad);
|
|
206
206
|
} if (("blur" === en)) {
|
|
@@ -260,7 +260,7 @@ function View_WorkflowRiskComponent_49(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵe
|
|
|
260
260
|
function View_WorkflowRiskComponent_50(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 3, "button", [["class", "edit"], ["type", "button"]], null, [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
|
|
261
261
|
var pd_0 = (_co.activateSelector("overseer", true) !== false);
|
|
262
262
|
ad = (pd_0 && ad);
|
|
263
|
-
} return ad; }, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["\
|
|
263
|
+
} return ad; }, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i2.ɵted(-1, null, ["\uE9BA"])), (_l()(), i2.ɵted(-1, null, [" Edit"]))], null, null); }
|
|
264
264
|
function View_WorkflowRiskComponent_47(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 7, "div", [["class", "selected"]], null, null, null, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 4, "div", [["class", "chip-container"]], [[2, "more-one", null], [2, "plus", null]], null, null, null, null)), (_l()(), i2.ɵand(16777216, null, null, 1, null, View_WorkflowRiskComponent_48)), i2.ɵdid(3, 278528, null, 0, i6.NgForOf, [i2.ViewContainerRef, i2.TemplateRef, i2.IterableDiffers], { ngForOf: [0, "ngForOf"] }, null), (_l()(), i2.ɵand(16777216, null, null, 1, null, View_WorkflowRiskComponent_49)), i2.ɵdid(5, 16384, null, 0, i6.NgIf, [i2.ViewContainerRef, i2.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i2.ɵand(16777216, null, null, 1, null, View_WorkflowRiskComponent_50)), i2.ɵdid(7, 16384, null, 0, i6.NgIf, [i2.ViewContainerRef, i2.TemplateRef], { ngIf: [0, "ngIf"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_2 = ((_co.riskForm == null) ? null : ((_co.riskForm.overseersList == null) ? null : _co.riskForm.overseersList.slice(0, 2))); _ck(_v, 3, 0, currVal_2); var currVal_3 = (((_co.riskForm == null) ? null : ((_co.riskForm.overseersList == null) ? null : _co.riskForm.overseersList.length)) > 2); _ck(_v, 5, 0, currVal_3); var currVal_4 = (_co.activeSelector !== "overseer"); _ck(_v, 7, 0, currVal_4); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = (((_co.riskForm == null) ? null : ((_co.riskForm.overseersList == null) ? null : _co.riskForm.overseersList.length)) > 1); var currVal_1 = (((_co.riskForm == null) ? null : ((_co.riskForm.overseersList == null) ? null : _co.riskForm.overseersList.length)) > 2); _ck(_v, 1, 0, currVal_0, currVal_1); }); }
|
|
265
265
|
function View_WorkflowRiskComponent_51(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 5, "li", [], null, null, null, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 4, "div", [["class", "avatar-card"]], null, null, null, null, null)), (_l()(), i2.ɵeld(2, 0, null, null, 3, "span", [["class", "value"]], null, null, null, null, null)), (_l()(), i2.ɵeld(3, 0, null, null, 1, "i", [["class", "icons"]], null, [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
|
|
266
266
|
var pd_0 = (_co.remove("overseer", _v.context.$implicit) !== false);
|
|
@@ -474,4 +474,4 @@ export function View_WorkflowRiskComponent_0(_l) { return i2.ɵvid(0, [i2.ɵpid(
|
|
|
474
474
|
export function View_WorkflowRiskComponent_Host_0(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 1, "app-workflow-risk", [], null, null, null, View_WorkflowRiskComponent_0, RenderType_WorkflowRiskComponent)), i2.ɵdid(1, 114688, null, 0, i30.WorkflowRiskComponent, [i31.AddRiskService, i32.AuthService, i33.UiKitService, i34.SnackBarService, [2, i35.Configurations]], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }
|
|
475
475
|
var WorkflowRiskComponentNgFactory = i2.ɵccf("app-workflow-risk", i30.WorkflowRiskComponent, View_WorkflowRiskComponent_Host_0, { mode: "mode", riskId: "riskId", defaultRiskType: "defaultRiskType", moveToRegisterMode: "moveToRegisterMode", openedFrom: "openedFrom" }, { showConfirmationAlert: "showConfirmationAlert", pickerChanged: "pickerChanged", populateOption: "populateOption", closeWorkflow: "closeWorkflow", disconnectRefresh: "disconnectRefresh", refreshForm: "refreshForm", hideElementsFromMoreOptions: "hideElementsFromMoreOptions" }, []);
|
|
476
476
|
export { WorkflowRiskComponentNgFactory as WorkflowRiskComponentNgFactory };
|
|
477
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctcmlzay5jb21wb25lbnQubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcmlzay93b3JrZmxvdy1yaXNrLmNvbXBvbmVudC5uZ2ZhY3RvcnkudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1yaXNrL3dvcmtmbG93LXJpc2suY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dFQ0tZLGlMQUE2RztnRUFFN0csMEtBSU0sS0FGRiw2S0FBdUUsS0FDdkUsd0tBQThFO2dFQWlCOUUsb0dBQTBELEtBQW5CLDRDQUFlO2dFQVExRCxpTEFBcUo7Z0VBRXJKLDBLQUlNLEtBRkYsNktBQXVFLEtBQ3ZFLHdLQUE4RTtnRUFNOUU7Ozs7Ozs7Ozs7O3dCQUUyRjtNQUZ4RTs7d0JBQW1DO01BQUM7O3dCQUF5QztNQUM1Rjs7d0JBQTJDO01BQUM7O3dCQUE0QjtNQUQ1RSx5aUJBRTJGLGlEQUQzQyxtQkFBNEIsaUJBRDVFLFlBRTJGLEVBRDNDLFNBQTRCLDJCQUQ1RSwwWkFFMkY7Z0VBQzNGLGlHQU1NLEtBTEYsdUdBRU0sS0FERiwrRkFBNkMsS0FBekIsZ0NBQWtCLE1BRTFDLHdLQUNnRCxZQUQzQjs7d0JBQXVDO01BQTVELHdCQUNnRCxLQUQyQiw0RkFDekMsS0FBWixtQ0FBUSxNQUFJLGtDQUFLLHlEQUhmLDJEQUFrQjtnRUFLOUMsb0dBQW1GLEtBQW5CLDRDQUFlO2lFQUUvRSxvR0FBb0osS0FBMUIsbURBQXNCO2lFQVFwSixnTUFDOEc7aUVBRTlHLDBLQUlNLEtBRkYsNktBQXVFLEtBQ3ZFLHdLQUE4RTtpRUFXOUUsK0ZBR00sS0FGRix3TkFDMkQsWUFE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aUIsRUFKRCxTQUFxQyxHQUtsQyxtQkFBYyxTQUFqQyxhQUFzRCxFQUFuQyxTQUFjLEdBS3pCLG1CQUFrQixhQUR0QixhQU0yQixFQUx2QixTQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiIsIjxkaXYgY2xhc3M9XCJ3b3JrZmx3LXJpc2tcIiAqbmdJZj1cIiFzaG93U21pbGV5XCI+XHJcbiAgICA8IS0tIFJpc2sgVHlwZSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiIFtjbGFzcy5hY3RpdmVdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJmYWxzZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hhdC5zdmdcIiBhbHQ9XCJpbVwiICpuZ0lmPVwidHJ1ZVwiPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImZhbHNlXCIgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlJpc2sgVHlwZSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpc2stdHlwZS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eXBlLWl0ZW1cIiBbY2xhc3MuYWN0aXZlXT1cInJpc2tGb3JtPy5yaXNrVHlwZSA9PT0gJ05PUk1BTCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbY2xhc3MuZGlzYWJsZWRdPVwiIXJpc2tUeXBlQ2hhbmdlQWxsb3dlZFwiIChjbGljayk9XCJjaGFuZ2VSaXNrKCdOT1JNQUwnKVwiPkFERCBUTyBSSVNLIFJFR0lTVEVSPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgaW5mb1wiIFthcHBUb29sdGlwXT1cIidUaGlzIG9wdGlvbiBsZXRzIHlvdSBhZGQgYSByaXNrIGRpcmVjdGx5IHRvIHRoZSBSaXNrIFJlZ2lzdGVyLiBUaGUgcmlzayBvd25lcnMgd2lsbCByZWNlaXZlIGFuIGFsZXJ0IGFuZCB0aGV5IGNhbiBiZWdpbiB0aGUgdGhlIHJpc2sgYXNzZXNzbWVudCBwcm9jZXNzLidcIiBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiBkZWxheT1cIjBcIiB0eXBlPVwid2hpdGVcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR5cGUtaXRlbVwiIFtjbGFzcy5hY3RpdmVdPVwicmlza0Zvcm0/LnJpc2tUeXBlID09PSAnUkVQT1JURUQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2NsYXNzLmRpc2FibGVkXT1cIiFyaXNrVHlwZUNoYW5nZUFsbG93ZWRcIiAoY2xpY2spPVwiY2hhbmdlUmlzaygnUkVQT1JURUQnKVwiPlJFUE9SVCBBIFJJU0s8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBpbmZvXCIgW2FwcFRvb2x0aXBdPVwiJ1RoaXMgb3B0aW9ucyBsZXRzIHlvdSByZXBvcnQgYSByaXNrIGFuZCBhc3NpZ24gaXQgdG8gdGhlIHJpc2sgb3duZXJzLiBUaGUgcmlzayBvd25lcnMgd2lsbCBoYXZlIHRoZSBvcHRpb24gdG8gZWl0aGVyIGFkZCB0aGUgcmlzayB0byB0aGUgUmlzayBSZWdpc3RlciBvciBmbGFnIGl0IGZvciBhIGZvbGxvdy11cCBhdCBhIGxhdGVyIGRhdGUuJ1wiIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJ3aGl0ZVwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhY2tncm91bmQtZ2xpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImZhbHNlXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+QWRkIGEgcmlzayB0eXBlPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBSaXNrIE5hbWUgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cImZhbHNlXCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIGFjdGl2ZVNlbGVjdG9yICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZScgICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZVNlbGVjdG9yKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwicmlza0Zvcm0udGl0bGVcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hhdC5zdmdcIiBhbHQ9XCJpbVwiICpuZ0lmPVwiIXJpc2tGb3JtLnRpdGxlIHx8IGFjdGl2ZVNlbGVjdG9yID09PSAnbmFtZSdcIj5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJyaXNrRm9ybS50aXRsZSAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ25hbWUnXCIgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlJpc2sgTmFtZSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKGtleWRvd24pPVwiYWN0aXZlU2VsZWN0b3IgPSAnbmFtZSdcIiAoZm9jdXNpbik9XCJhY3RpdmF0ZVNlbGVjdG9yKCduYW1lJyx0cnVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cImFjdGl2YXRlU2VsZWN0b3IoJ25hbWUnLGZhbHNlKVwiIFsobmdNb2RlbCldPVwicmlza0Zvcm0udGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQWRkIGEgcmlzayBuYW1lXCIgKm5nSWY9XCJyaXNrRm9ybS50aXRsZSA9PScnIHx8IGFjdGl2ZVNlbGVjdG9yID09PSAnbmFtZSdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwicmlza0Zvcm0udGl0bGUubGVuZ3RoICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7cmlza0Zvcm0udGl0bGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdFwiIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCduYW1lJyx0cnVlKVwiIHR5cGU9XCJidXR0b25cIj48aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGM7PC9pPiBFZGl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwic3VibWl0dGVkICYmICghcmlza0Zvcm0udGl0bGUpXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+QWRkIGEgcmlzayBuYW1lPC9wPlxyXG4gICAgICAgICAgICAgICAgPG1hcngtZWRpdG9yIFsobmdNb2RlbCldPVwicmlza0Zvcm0uZGVzY3JpcHRpb25cIiBbZWRpdG9yQ29uZmlnXT1cImRlc2NyaXB0aW9uXCIgKGNsaWNrT3V0c2lkZSk9XCJjaGVja0Rlc2NyaXB0aW9uKClcIj48L21hcngtZWRpdG9yPlxyXG4gICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgKHJpc2tGb3JtLnJpc2tUeXBlID09PSdSRVBPUlRFRCcgJiYgIXJpc2tGb3JtPy5kZXNjcmlwdGlvbj8udHJpbSgpPy5sZW5ndGgpXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+QWRkIGEgcmlzayBkZXNjcmlwdGlvbjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gUmVzcG9uc2liaWxpdHkgQ2VudGVyIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVTZWxlY3RvciA9PT0gJ3JjJ1wiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiBhY3RpdmVTZWxlY3RvciAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ3JjJyAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVTZWxlY3RvcilcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cInJpc2tGb3JtPy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0Py5sZW5ndGg+MFwiPlxyXG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwicmlza0Zvcm0/LnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q/Lmxlbmd0aD09MCB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ3JjJ1wiXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2Z1wiIGFsdD1cIlwiPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInJpc2tGb3JtPy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0Py5sZW5ndGg+MCAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ3JjJ1wiIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SZXNwb25zaWJpbGl0eSBDZW50ZXIgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidSZXNwb25zaWJpbGl0eSBDZW50ZXJzIHJlcHJlc2VudCB0aGUgY29ycG9yYXRlIGFuZCBvcGVyYXRpb25hbCBpbmZyYXN0cnVjdHVyZSBvZiBhbiBvcmdhbml6YXRpb24uIE9uZSBvciBtb3JlIFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgY2FuIGJlIGV4cG9zZWQgdG8gYSByaXNrIGFuZCBhY2NvcmRpbmdseSwgdGhlIHJpc2sgbXVzdCBiZSBhc3Nlc3NlZCBhZ2FpbnN0IGVhY2ggUmVzcG9uc2liaWxpdHkgQ2VudGVyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCIgdHlwZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkxZjs8L2k+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwicmlza0Zvcm0/LnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q/Lmxlbmd0aD09MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdyYycsdHJ1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBSZXNwb25zaWJpbGl0eSBDZW50ZXIocylcIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJyaXNrRm9ybT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdD8ubGVuZ3RoPjBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIiBbY2xhc3MubW9yZS1vbmVdPVwicmlza0Zvcm0/LnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q/Lmxlbmd0aD4xXCIgW2NsYXNzLnBsdXNdPVwicmlza0Zvcm0/LnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q/Lmxlbmd0aD4yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiICpuZ0Zvcj1cImxldCByY05hbWUgb2Ygcmlza0Zvcm0/LnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q/LnNsaWNlKDAsMilcIj48aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwicmVtb3ZlKCdyYycscmNOYW1lKVwiPiYjeGU5MGQ7PC9pPiB7e3JjTmFtZS5pdGVtX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJyaXNrRm9ybT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdD8ubGVuZ3RoID4gMlwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwUG9wb3ZlciAoY2xpY2spPVwicG9wb3ZlclJDLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyaXNrRm9ybT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdD8uc2xpY2UoMikubGVuZ3RofX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yICE9PSAncmMnXCIgY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdyYycsdHJ1ZSlcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYzs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgKHJpc2tGb3JtPy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0Py5sZW5ndGg9PTApXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+QXNzaWduXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcyByaXNrIHRvIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyKHMpPC9wPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNwb3BvdmVyUkMgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCByY05hbWUgb2Ygcmlza0Zvcm0/LnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QgfCBzbGljZTogMjsgbGV0IGogPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cInJlbW92ZSgncmMnLHJjTmFtZSlcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJjTmFtZS5pdGVtX25hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIFJJU0sgT1dORVIgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVNlbGVjdG9yID09PSAnb3duZXInXCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIGFjdGl2ZVNlbGVjdG9yICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnb3duZXInICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZVNlbGVjdG9yKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwicmlza0Zvcm0/Lm93bmVyc0xpc3Q/Lmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJyaXNrRm9ybT8ub3duZXJzTGlzdD8ubGVuZ3RoID09MCB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ293bmVyJ1wiXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvaW0tY3JlYXRpbmcuc3ZnXCIgYWx0PVwiXCIgLz5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJyaXNrRm9ybT8ub3duZXJzTGlzdD8ubGVuZ3RoPjAgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICdvd25lcidcIiBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UklTSyBPV05FUiA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ1RoaXMgaXMgdGhlIHBlcnNvbiB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyB0aGUgcmlzay4nXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiIHR5cGU9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPiYjeGU5MWY7PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIiAqbmdJZj1cInJpc2tGb3JtPy5vd25lcnNMaXN0Py5sZW5ndGggPT0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKGNsaWNrKT1cImFjdGl2YXRlU2VsZWN0b3IoJ293bmVyJyx0cnVlKVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFJpc2sgT3duZXIocylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkb25seT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJyaXNrRm9ybT8ub3duZXJzTGlzdD8ubGVuZ3RoPjBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIiBbY2xhc3MubW9yZS1vbmVdPVwicmlza0Zvcm0/Lm93bmVyc0xpc3Q/Lmxlbmd0aD4xXCIgW2NsYXNzLnBsdXNdPVwicmlza0Zvcm0/Lm93bmVyc0xpc3Q/Lmxlbmd0aD4yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHJpc2tGb3JtPy5vd25lcnNMaXN0fHNob3J0TWVyZ2UgOiBub25SZW1vdmFibGVVc2Vyc0xpc3QpIGFzIG93bmVyTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiAqbmdGb3I9XCJsZXQgb3duZXIgb2Ygb3duZXJMaXN0Py5zbGljZSgwLDIpXCI+PGkgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFub25SZW1vdmFibGVVc2Vyc0xpc3QuaW5jbHVkZXMob3duZXI/Lm1lbWJlcl9pZClcIiAoY2xpY2spPVwicmVtb3ZlKCdvd25lcicsb3duZXIpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e293bmVyPy5tZW1iZXJfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY291bnRcIiAqbmdJZj1cInJpc2tGb3JtPy5vd25lcnNMaXN0Py5sZW5ndGggPiAyXCIgdHlwZT1cImJ1dHRvblwiIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwb3BvdmVyT3duZXIucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Jpc2tGb3JtPy5vd25lcnNMaXN0Py5zbGljZSgyKS5sZW5ndGh9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yICE9PSAnb3duZXInXCIgY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdvd25lcicsdHJ1ZSlcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYzs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNwb3BvdmVyT3duZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihyaXNrRm9ybT8ub3duZXJzTGlzdHxzaG9ydE1lcmdlIDogbm9uUmVtb3ZhYmxlVXNlcnNMaXN0KSBhcyBvd25lclBvcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBvd25lciBvZiBvd25lclBvcCB8IHNsaWNlOiAyOyBsZXQgaiA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwicmVtb3ZlKCdvd25lcicsb3duZXIpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvd25lci5tZW1iZXJfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBSaXNrIENhdGVnb3J5IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVTZWxlY3RvciA9PT0gJ2NhdGVnb3J5J1wiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiBhY3RpdmVTZWxlY3RvciAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ2NhdGVnb3J5JyAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVTZWxlY3RvcilcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cInJpc2tGb3JtPy5jYXRlZ29yeT8uc2VsZWN0ZWRDYXRlZ29yeVwiPlxyXG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwiIXJpc2tGb3JtPy5jYXRlZ29yeT8uc2VsZWN0ZWRDYXRlZ29yeSB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ2NhdGVnb3J5J1wiXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnXCIgYWx0PVwiXCIgLz5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiAqbmdJZj1cInJpc2tGb3JtPy5jYXRlZ29yeT8uc2VsZWN0ZWRDYXRlZ29yeSAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ2NhdGVnb3J5J1wiXHJcbiAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UmlzayBDYXRlZ29yeVxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInUmlzayBDYXRlZ29yaWVzIGFyZSB1c2VkIHRvIGdyb3VwIHNpbWlsYXIgcmlza3MuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIiB0eXBlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTFmOzwvaT48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwiIXJpc2tGb3JtPy5jYXRlZ29yeT8uc2VsZWN0ZWRDYXRlZ29yeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdjYXRlZ29yeScsdHJ1ZSlcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBSaXNrIENhdGVnb3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwicmlza0Zvcm0/LmNhdGVnb3J5Py5zZWxlY3RlZENhdGVnb3J5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoJ2NhdGVnb3J5JyxyaXNrRm9ybS5jYXRlZ29yeS5zZWxlY3RlZENhdGVnb3J5KVwiPiYjeGU5MGQ7PC9pPnt7cmlza0Zvcm0/LmNhdGVnb3J5Py5zZWxlY3RlZENhdGVnb3J5Py5jYXRlZ29yeV9uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJhY3RpdmVTZWxlY3RvciAhPT0gJ2NhdGVnb3J5J1wiIGNsYXNzPVwiZWRpdFwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3RvcignY2F0ZWdvcnknLHRydWUpXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGM7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBFZGl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyaXNrRm9ybT8uY2F0ZWdvcnlDdXN0b21UYWdzPy5sZW5ndGg+MFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIiAqbmdGb3I9XCJsZXQgdGFnIG9mIHJpc2tGb3JtLmNhdGVnb3J5Q3VzdG9tVGFnc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj57e3RhZy5jdXN0b21fdGFnX25hbWV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJ0YWcuY3VzdG9tX3RhZ192YWx1ZVwiIFtwbGFjZWhvbGRlcl09XCJ0YWcuY3VzdG9tX3RhZ19uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIEFzc2Vzc21lbnQgRGVhZGxpbmUgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVNlbGVjdG9yID09PSAnYXNzZXNzbWVudCdcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIgYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICdhc3Nlc3NtZW50JyAgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlU2VsZWN0b3IpXCJcclxuICAgICAgICAqbmdJZj1cIiFzZXR0aW5nc0luZm8/LmFzc2Vzc21lbnRfZGVhZGxpbmVfZW5hYmxlICYmIHJpc2tGb3JtPy5yaXNrVHlwZSAhPT0gJ1JFUE9SVEVEJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwicmlza0Zvcm0/LmFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5cz49MVwiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy93aGVuLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInJpc2tGb3JtPy5hc3Nlc3NtZW50X2RlYWRsaW5lX2RheXM8MSB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ2Fzc2Vzc21lbnQnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiICpuZ0lmPVwicmlza0Zvcm0/LmFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5cz49MSAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ2Fzc2Vzc21lbnQnXCJcclxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5Bc3Nlc3NtZW50IERlYWRsaW5lIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInVGhpcyBpcyB0aGUgZGF0ZSB0aGF0IHRoZSBpbmhlcmVudCByaXNrIGFzc2Vzc21lbnQgbXVzdCBiZSBjb21wbGV0ZWQgYnkuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIiB0eXBlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTFmOzwvaT48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCI+U2V0IE51bWJlciBvZiBkYXlzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBjb3VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNoYW5nZVJpc2tBc3Nlc3NtZW50KCdzdWJ0cmFjdCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxNjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwicmlza0Zvcm0uYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c2luKT1cImFjdGl2YXRlU2VsZWN0b3IoJ2Fzc2Vzc21lbnQnLHRydWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdhc3Nlc3NtZW50JyxmYWxzZSlcIiBuYW1lPVwicmlza0Fzc2Vzc21lbnREZWFkbGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZUFzc2Vzc21lbnQgI2RlYWRsaW5lPVwibmdNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VSaXNrQXNzZXNzbWVudERlYWRsaW5lKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIiBtaW49XCIwXCIgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNoYW5nZVJpc2tBc3Nlc3NtZW50KCdhZGQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MTU7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgKHJpc2tGb3JtPy5hc3Nlc3NtZW50X2RlYWRsaW5lX2RheXM8MSlcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICBFbnRlciBhIHZhbHVlIGdyZWF0ZXIgdGhhbiAwLlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiICpuZ0lmPVwicmlza0Zvcm0/LmFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5cz49MVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIFRoaXMgcmlzayBhc3Nlc3NtZW50IG5lZWRzIHRvIGJlIGNvbXBsZXRlZCBieSB7eyBkYXRlIHwgZGF0ZTogJ2RkIE1NTSB5eXl5JyB9fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gUmlzayBPdmVyc2VlciAtLT5cclxuICAgIDxkaXYgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVNlbGVjdG9yID09PSAnb3ZlcnNlZXInXCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIGFjdGl2ZVNlbGVjdG9yICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnb3ZlcnNlZXInICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZVNlbGVjdG9yKVwiXHJcbiAgICAgICAgKm5nSWY9XCJyaXNrRm9ybS5hZGRPdmVyc2VlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwicmlza0Zvcm0/Lm92ZXJzZWVyc0xpc3Q/Lmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJyaXNrRm9ybT8ub3ZlcnNlZXJzTGlzdD8ubGVuZ3RoPT0wIHx8IGFjdGl2ZVNlbGVjdG9yID09PSAnb3ZlcnNlZXInXCJcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiICpuZ0lmPVwicmlza0Zvcm0/Lm92ZXJzZWVyc0xpc3Q/Lmxlbmd0aD4wICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnb3ZlcnNlZXInXCJcclxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SaXNrIE92ZXJzZWVyPGkgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidUaGlzIGlzIHRoZSBwZXJzb24gdGhhdCBpcyByZXNwb25zaWJsZSBmb3Igb3ZlcnNlZWluZyB0aGUgcmlzayBidXQgd2hvIGlzIG5vdCByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlIHJpc2suJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIiB0eXBlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTFmOzwvaT48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwicmlza0Zvcm0/Lm92ZXJzZWVyc0xpc3Q/Lmxlbmd0aD09MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdvdmVyc2VlcicsdHJ1ZSlcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBSaXNrIE92ZXJzZWVyKHMpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwicmlza0Zvcm0/Lm92ZXJzZWVyc0xpc3Q/Lmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCIgW2NsYXNzLm1vcmUtb25lXT1cInJpc2tGb3JtPy5vdmVyc2VlcnNMaXN0Py5sZW5ndGg+MVwiIFtjbGFzcy5wbHVzXT1cInJpc2tGb3JtPy5vdmVyc2VlcnNMaXN0Py5sZW5ndGg+MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiAqbmdGb3I9XCJsZXQgb3duZXIgb2Ygcmlza0Zvcm0/Lm92ZXJzZWVyc0xpc3Q/LnNsaWNlKDAsMilcIj48aSBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKCdvdmVyc2Vlcicsb3duZXIpXCI+JiN4ZTkwZDs8L2k+IHt7b3duZXIubWVtYmVyX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJyaXNrRm9ybT8ub3ZlcnNlZXJzTGlzdD8ubGVuZ3RoID4gMlwiIHR5cGU9XCJidXR0b25cIiBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicG9wb3Zlck92ZXJzZWVyLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyaXNrRm9ybT8ub3ZlcnNlZXJzTGlzdD8uc2xpY2UoMikubGVuZ3RofX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yICE9PSAnb3ZlcnNlZXInXCIgY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdvdmVyc2VlcicsdHJ1ZSlcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYzs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNwb3BvdmVyT3ZlcnNlZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBvd25lciBvZiByaXNrRm9ybT8ub3ZlcnNlZXJzTGlzdCB8IHNsaWNlOiAyOyBsZXQgaiA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwicmVtb3ZlKCdvdmVyc2Vlcicsb3duZXIpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvd25lci5tZW1iZXJfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gUmlzayBNaXRpZ2F0aW9uIFByaW9yaXR5IC0tPlxyXG4gICAgPGRpdiBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCIgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiIFtjbGFzcy5hY3RpdmVdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVTZWxlY3RvciAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVTZWxlY3RvcilcIlxyXG4gICAgICAgICpuZ0lmPVwicmlza0Zvcm0uYWRkTWl0aWdhdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwicmlza0Zvcm0ubWl0aWdhdGlvblwiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9wcmlvcml0eS5zdmdcIiAqbmdJZj1cIiFyaXNrRm9ybS5taXRpZ2F0aW9uXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgPCEtLSA8c3ZnIHZpZXdCb3g9XCIyNSAyNSA1MCA1MFwiIGNsYXNzPVwiZWRpdC1sb2FkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI1MFwiIGN5PVwiNTBcIiByPVwiMjBcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cIiMxZTVkZDNcIiBzdHJva2Utd2lkdGg9XCIzXCIgY2xhc3M9XCJsb2FkZXItcGF0aFwiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgICA8L3N2Zz4gLS0+XHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiAqbmdJZj1cInJpc2tGb3JtLm1pdGlnYXRpb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UmlzayBNaXRpZ2F0aW9uIFByaW9yaXR5XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidUaGlzIHNldHMgdGhlIHByaW9yaXR5IGxldmVsIGZvciB0aGUgbWl0aWdhdGlvbiBvZiBlYWNoIHJpc2suJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIiB0eXBlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTFmOzwvaT48L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgIDxjcy1zZWxlY3QgWyhuZ01vZGVsKV09XCJyaXNrRm9ybS5taXRpZ2F0aW9uXCIgW3BsYWNlaG9sZGVyXT1cIidTZWxlY3QgYSBtaXRpZ2F0aW9uIHByaW9yaXR5J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInJpc2tGb3JtLm1pdGlnYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y3Mtb3B0aW9uICpuZ0Zvcj1cImxldCBkYXRhIG9mIG1pdGlnYXRpb25EZXRhaWxzXCIgW3ZhbHVlXT1cImRhdGE/Lm1pdGlnYXRpb25faWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiZGF0YT8ubWl0aWdhdGlvbl9jb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhLm1pdGlnYXRpb25fbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvY3Mtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9jcy1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIFJlY29tbWVuZGVkIE1pdGlnYXRpb24gUGxhbiAtLT5cclxuICAgIDxkaXYgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiAqbmdJZj1cInJpc2tGb3JtPy5hZGRNaXRpZ2F0aW9uUGxhblwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgPGltZyAqbmdJZj1cIiFyaXNrRm9ybS5taXRpZ2F0aW9uRGVzY3JpcHRpb25QbGFuXCJcclxuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb2JqZWN0aXZlcy5zdmdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICA8c3ZnICpuZ0lmPVwicmlza0Zvcm0ubWl0aWdhdGlvbkRlc2NyaXB0aW9uUGxhblwiIGNsYXNzPVwiY2hlY2tJY29uXCIgXHJcbiAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIiBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SZWNvbW1lbmRlZCBNaXRpZ2F0aW9uIFBsYW5zPGxpbmsgcmVsPVwibWFuaWZlc3RcIiBocmVmPVwiLi9tYW5pZmVzdC5qc29uXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ1NwZWNpZnkgdGhlIG1pdGlnYXRpb24gcGxhbiB0aGF0IGNhbiBiZSB1bmRlcnRha2VuIHRvIG1pdGlnYXRlIHRoZSByaXNrLidcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCIgdHlwZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkxZjs8L2k+XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8bWFyeC1lZGl0b3IgWyhuZ01vZGVsKV09XCJyaXNrRm9ybS5taXRpZ2F0aW9uRGVzY3JpcHRpb25QbGFuXCJcclxuICAgICAgICAgICAgICAgIFtlZGl0b3JDb25maWddPVwibWl0aWdhdGlvbkRlc2NyaXB0aW9uUGxhblwiIChjbGlja091dHNpZGUpPVwiY2hlY2tNaXRpZ2F0aW9uUGxhbigpXCI+XHJcbiAgICAgICAgICAgICAgPC9tYXJ4LWVkaXRvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbjxhcHAtcmVzcG9uc2liaWxpdHktY2VudGVycy1saXN0ICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdyYydcIiBbcmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdF09XCJyZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0XCJcclxuICAgIFtzZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2VudGVyc109XCJyaXNrRm9ybS5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0XCIgW3JjSWRLZXldPVwiJ3JjX2lkJ1wiXHJcbiAgICAoc2F2ZVNlbGVjdGVkTGlzdCk9XCJzYXZlU2VsZWN0ZWRSQ0xpc3QoJGV2ZW50KVwiIChjbG9zZVJjTGlzdCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdyYycsZmFsc2UpXCJcclxuICAgIFtzaW5ndWxhclRleHRdPVwiJ1Jlc3BvbnNpYmlsaXR5IENlbnRlciBzZWxlY3RlZCdcIiBbcGx1cmFsVGV4dF09XCInUmVzcG9uc2liaWxpdHkgQ2VudGVycyBzZWxlY3RlZCdcIiA+XHJcbjwvYXBwLXJlc3BvbnNpYmlsaXR5LWNlbnRlcnMtbGlzdD5cclxuXHJcbjxhcHAtb3duZXItbGlzdCAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnb3duZXInXCIgW3VzZXJzTGlzdF09XCJvd25lcnNMaXN0XCIgW3NlbGVjdGVkVXNlcnNdPVwicmlza0Zvcm0ub3duZXJzTGlzdFwiXHJcbiAgICBbdXNlcklkS2V5XT1cIidtZW1iZXJfaWQnXCIgW2l0ZW1FbWFpbEtleV09XCInbWVtYmVyX2VtYWlsJ1wiIFtpdGVtTmFtZUtleV09XCInbWVtYmVyX25hbWUnXCIgKHNhdmVTZWxlY3RlZExpc3QpPVwic2F2ZVNlbGVjdGVkT3duZXJzTGlzdCgkZXZlbnQpXCJcclxuICAgIFtub25SZW1vdmFibGVVc2Vyc0xpc3RdPVwibm9uUmVtb3ZhYmxlVXNlcnNMaXN0XCIgKGNsb3NlVXNlcnNMaXN0KT1cImFjdGl2YXRlU2VsZWN0b3IoJ293bmVyJyxmYWxzZSlcIlxyXG4gICAgW3Npbmd1bGFyVGV4dF09XCInVXNlciBzZWxlY3RlZCdcIiBbcGx1cmFsVGV4dF09XCInVXNlcnMgc2VsZWN0ZWQnXCIgPjwvYXBwLW93bmVyLWxpc3Q+XHJcblxyXG48YXBwLWNhdGVnb3J5LWxpc3QgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ2NhdGVnb3J5J1wiIFtjYXRlZ29yeUxpc3RdPVwiY2F0ZWdvcnlMaXN0XCJcclxuICAgIFtzZWxlY3RlZENhdGVnb3J5XT1cInJpc2tGb3JtLmNhdGVnb3J5XCIgKHNhdmVTZWxlY3RlZENhdGVnb3J5KT1cInNhdmVTZWxlY3RlZENhdGVnb3J5KCRldmVudClcIlxyXG4gICAgKGNsb3NlQ2F0ZWdvcmllc0xpc3QpPVwiYWN0aXZhdGVTZWxlY3RvcignY2F0ZWdvcnknLGZhbHNlKVwiPjwvYXBwLWNhdGVnb3J5LWxpc3Q+XHJcbjxhcHAtb3duZXItbGlzdCAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnb3ZlcnNlZXInXCIgW3VzZXJzTGlzdF09XCJvdmVyc2VlcnNMaXN0XCJcclxuICAgIFtzZWxlY3RlZFVzZXJzXT1cInJpc2tGb3JtLm92ZXJzZWVyc0xpc3RcIiBbdXNlcklkS2V5XT1cIidtZW1iZXJfaWQnXCIgW2l0ZW1OYW1lS2V5XT1cIidtZW1iZXJfbmFtZSdcIiBbaXRlbUVtYWlsS2V5XT1cIidtZW1iZXJfZW1haWwnXCJcclxuICAgIChzYXZlU2VsZWN0ZWRMaXN0KT1cInNhdmVTZWxlY3RlZE92ZXJzZWVyc0xpc3QoJGV2ZW50KVwiIChjbG9zZVVzZXJzTGlzdCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdvdmVyc2VlcicsZmFsc2UpXCJcclxuICAgIFtzaW5ndWxhclRleHRdPVwiJ1VzZXIgc2VsZWN0ZWQnXCIgW3BsdXJhbFRleHRdPVwiJ1VzZXJzIHNlbGVjdGVkJ1wiID5cclxuPC9hcHAtb3duZXItbGlzdD5cclxuPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwibG9hZGVyXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cclxuPCEtLSA8YXBwLXNtaWxleS1kaWFsb2cgKm5nSWY9XCJzaG93U21pbGV5XCIgW21lc3NhZ2VdPVwic21pbGV5TWVzc2FnZVwiIFthY3Rpb25CdXR0b25zXT1cImFjdGlvbkJ1dHRvbnNcIlxyXG4gICAgKGFjdGlvbik9XCJhY3Rpb24oJGV2ZW50KVwiIChjbG9zZVNtaWxleSk9XCJjbG9zZVNtaWxleSgkZXZlbnQpXCI+PC9hcHAtc21pbGV5LWRpYWxvZz4gLS0+XHJcblxyXG4gICAgPGFwcC1zbWlsZXktZGlhbG9nLWlubGluZVxyXG4gICAgICAgICpuZ0lmPVwic2hvd1NtaWxleVwiXHJcbiAgICAgICAgW21lc3NhZ2VdPVwic21pbGV5TWVzc2FnZVwiXHJcbiAgICAgICAgW2FjdGlvbkJ1dHRvbnNdPVwiYWN0aW9uQnV0dG9uc1wiXHJcbiAgICAgICAgKGFjdGlvbik9XCJhY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgKGNsb3NlU21pbGV5KT1cImNsb3NlU21pbGV5KCRldmVudClcIj5cclxuICAgIDwvYXBwLXNtaWxleS1kaWFsb2ctaW5saW5lPlxyXG4iXX0=
|
|
477
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctcmlzay5jb21wb25lbnQubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcmlzay93b3JrZmxvdy1yaXNrLmNvbXBvbmVudC5uZ2ZhY3RvcnkudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1yaXNrL3dvcmtmbG93LXJpc2suY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dFQ0tZLGlMQUE2RztnRUFFN0csMEtBSU0sS0FGRiw2S0FBdUUsS0FDdkUsd0tBQThFO2dFQWlCOUUsb0dBQTBELEtBQW5CLDRDQUFlO2dFQVExRCxpTEFBcUo7Z0VBRXJKLDBLQUlNLEtBRkYsNktBQXVFLEtBQ3ZFLHdLQUE4RTtnRUFNOUU7Ozs7Ozs7Ozs7O3dCQUUyRjtNQUZ4RTs7d0JBQW1DO01BQUM7O3dCQUF5QztNQUM1Rjs7d0JBQTJDO01BQUM7O3dCQUE0QjtNQUQ1RSx5aUJBRTJGLGlEQUQzQyxtQkFBNEIsaUJBRDVFLFlBRTJGLEVBRDNDLFNBQTRCLDJCQUQ1RSwwWkFFMkY7Z0VBQzNGLGlHQU1NLEtBTEYsdUdBRU0sS0FERiwrRkFBNkMsS0FBekIsZ0NBQWtCLE1BRTFDLHdLQUNnRCxZQUQzQjs7d0JBQXVDO01BQTVELHdCQUNnRCxLQUQyQiw0RkFDekMsS0FBWixtQ0FBUSxNQUFJLGtDQUFLLHlEQUhmLDJEQUFrQjtnRUFLOUMsb0dBQW1GLEtBQW5CLDRDQUFlO2lFQUUvRSxvR0FBb0osS0FBMUIsbURBQXNCO2lFQVFwSixnTUFDOEc7aUVBRTlHLDBLQUlNLEtBRkYsNktBQXVFLEtBQ3ZFLHdLQUE4RTtpRUFXOUUsK0ZBR00sS0FGRix3TkFDMkQsWUFEeEM7O3dCQUFxQztNQUF4RCx3QkFDMkQ7aUVBSXZELDhGQUM0RixLQURGLGdKQUMxQixZQUExQzs7d0JBQTZCO01BRHVDLHdCQUMxQixLQUFaLG1DQUFRLE1BQUkseUlBQXFCO2lFQUNyRjs7Ozs7Ozs7d0JBRXFFO01BRHREOzt3QkFBNkI7TUFENUMscUpBRXFFLElBRE4sa0NBQ0gsMkJBRGYsdUJBQWlCLEVBRDlELFlBRXFFLEVBRHhCLFNBQWlCLG1EQUFDLDZMQUNIO2lFQUdoRSx3S0FFaUIsWUFEYjs7d0JBQXFDO01BRHpDLHdCQUVpQixLQUR5Qiw0RkFBNkIsS0FBWixtQ0FBUSxNQUFJLGtDQUMvRDtpRUFYWixpR0FZTSxLQVhGLDZJQU1NLEtBTEYsb05BQzRGLElBQzVGLHNMQUVxRSxJQUd6RSxzTEFFaUIsaURBVE0sNkpBQXNFLEtBQXpGLFlBQzRGLEVBRHpFLFNBQXNFLEdBRW5FLGdLQUF1RCxHQUE3RSxZQUVxRSxFQUYvQyxTQUF1RCxHQUt6RSw0Q0FBK0IsR0FBdkMsWUFFaUIsRUFGVCxTQUErQixtREFSWCxnS0FBZ0UsR0FBQyxnS0FBNEQsR0FBekosWUFNTSxFQU5zQixTQUFnRSxFQUFDLFNBQTREO2lFQVk3SixvR0FDK0MsS0FEZ0QsMkVBQ3BEO2lFQUkvQiwyRUFPSyxLQU5ELG9HQUtNLEtBSkYsK0ZBR08sS0FGSCxnSkFBMkQsWUFBMUM7O3dCQUE2QjtNQUE5Qyx3QkFBMkQsS0FBWixtQ0FBUSxNQUFJLDBJQUUvRDtpRUFheEIsc0xBQ3NHO2lFQUV0RywwS0FJTSxLQUZGLDZLQUF1RSxLQUN2RSx3S0FBOEU7aUVBVzlFLCtGQUdNLEtBRkYsNk1BQ2EsWUFETTs7d0JBQXdDO01BQTNELHdCQUNhO2lFQUtzRCxnSkFDMkMsWUFBNUM7O3dCQUErQjtNQUQ5Qix3QkFDMkMsS0FBWixtQ0FBUTtpRUFEdEcsOEZBRWlDLEtBRjhCLHNMQUMyQyxJQUFBLGlDQUNoRixtREFEdEIsK0ZBQXlELGdDQURFLFlBQzJDLEVBQXRHLFNBQXlELDJCQUE2QyxtSEFDaEY7aUVBQzFCOzs7Ozs7Ozt3QkFFc0Q7TUFEbEQ7O3dCQUFnQztNQURwQyxxSkFFc0QsSUFEQyxrQ0FDViwyQkFEUix1QkFBaUIsRUFEdEQsWUFFc0QsRUFEakIsU0FBaUIsbURBQUMsK0pBQ1Y7aUVBTi9DLDZFQU9tQixLQU5qQixvTkFFaUMsSUFDakMsc0xBRXNELHNGQUxuQyw4RUFBMkMsSUFBOUQsWUFFaUMsRUFGZCxTQUEyQyxHQUd4QyxrSUFBd0MsR0FBOUQsWUFFc0QsRUFGaEMsU0FBd0M7aUVBT2xFLHdLQUVpQixZQURiOzt3QkFBd0M7TUFENUMsd0JBRWlCLEtBRDRCLDRGQUE2QixLQUFaLG1DQUFRLE1BQUksa0NBQ2xFO2lFQWZaLGlHQWdCTSxLQWZGLDZJQVVNLEtBVEosc0xBT21CLEdBUEwsZ0NBQThFLElBVzlGLHNMQUVpQixpREFiRCx5SEFBOEUsMEJBQTVGLFlBT21CLEVBUEwsU0FBOEUsR0FXdEYsK0NBQWtDLEdBQTFDLFlBRWlCLEVBRlQsU0FBa0MsbURBWmQsa0lBQWlELEdBQUMsa0lBQTZDLEdBQTNILFlBVU0sRUFWc0IsU0FBaUQsRUFBQyxTQUE2QztpRUFvQm5ILDJFQU9LLEtBTkQsb0dBS00sS0FKRiwrRkFHTyxLQUZILGdKQUE2RCxZQUE1Qzs7d0JBQStCO01BQWhELHdCQUE2RCxLQUFaLG1DQUFRLE1BQUksNElBRWpFO2lFQVBkLDZFQVdlLEtBVmIsbUdBU0ssS0FSRCxvTkFPSyxHQVBELGlJQUF3RCxJQUE1RCxZQU9LLEVBUEQsU0FBd0Q7aUVBbUI1RSxtTEFDbUc7aUVBRW5HLDBLQUlNLEtBRkYsNktBQXVFLEtBQ3ZFLHdLQUE4RTtpRUFVOUUsK0ZBR00sS0FGRiw2TUFDYSxZQURNOzt3QkFBMkM7TUFBOUQsd0JBQ2E7aUVBUWIsd0tBRWlCLFlBRGI7O3dCQUEyQztNQUQvQyx3QkFFaUIsS0FEK0IsNEZBQTZCLEtBQVosbUNBQVEsTUFBSSxrQ0FDckU7aUVBUlosaUdBU00sS0FSRix1R0FJTSxLQUhGLDhGQUVPLEtBRlksZ0pBQ2lFLFlBQTVFOzt3QkFBK0Q7TUFEcEQsd0JBQ2lFLEtBQVosbUNBQVEsTUFBSSxpQ0FDcEYsTUFFSixzTEFFaUIsaURBRlQsa0RBQXFDLEdBQTdDLFlBRWlCLEVBRlQsU0FBcUMsbURBSDJDLHNPQUNwRjtpRUFRUixzR0FHTSxLQUZGLDJHQUErRCxLQUEvQixnQ0FBdUIsTUFDdkQ7Ozs7Ozs7Ozs7O3dCQUEwRjtNQUF2RTs7d0JBQWtDO01BQXJELHlpQkFBMEYseUJBQXZFLGtCQUFrQyxxQ0FBckQsWUFBMEYsRUFBdkUsU0FBa0MsMkJBRHJCLDZFQUF1QixHQUNELGtCQUFtQyxvQ0FBekYsNlVBQTBGLEVBQXBDLFNBQW1DLEVBQXpGLDJFQUEwRjtpRUFIbEcsNkVBS2UsS0FKWCxvTkFHTSxzRkFIcUIsbUJBQStDLDhCQUExRSxZQUdNLEVBSHFCLFNBQStDO2lFQWE5RSwrS0FDNkY7aUVBQzdGLDBLQUlNLEtBRkYsNktBQXVFLEtBQ3ZFLHdLQUE4RTtpRUEyQjlFLG9HQUVJLEtBRmlGLDREQUVyRjtpRUFDQSwyR0FFUSxLQUZzRSwrUkFFOUU7aUVBekNaLGdKQTRDTSxLQXpDRiwrR0FRTSxLQVBGLHNMQUM2RixJQUM3RixzTEFJTSxJQUVWLCtGQStCTSxLQTlCRix1R0E2Qk0sS0E1QkYsMkdBSWtELEtBSmxCLGlEQUFvQixNQUFBLG1HQUErQixLQUFSLDhCQUFDLE1BQ3hFOzs7Ozs7Ozs7Ozs7Ozs7d1BBR3NDLElBQVosbUNBQVEsTUFDdEMsZ0dBZ0JNLEtBZkYsK0ZBQTRDLEtBQXpCLCtDQUFrQixNQUNyQyw4R0FhTSxLQVpGLG9JQUVTLFlBRkQ7O3dCQUEwQztNQUFsRCx3QkFFUyxLQURMLDZGQUE2QixLQUFaLG1DQUFRLE1BRTdCOzs7Ozs7Ozs7Ozs7Ozs7Ozt3QkFLb0c7TUFML0U7O3dCQUErQztNQUNoRTs7d0JBQStDO01BQy9DOzt3QkFBaUQ7TUFFakQ7O3dCQUFzRDtNQUoxRCx3NEJBS29HLElBQ3BHLG9JQUVTLFlBRkQ7O3dCQUFxQztNQUE3Qyx3QkFFUyxLQURMLDZGQUE2QixLQUFaLG1DQUFRLE1BSXJDLHVMQUVJLElBQ0osdUxBRVEsaURBcENSLHNJQUErRSxJQURuRixZQUM2RixFQUF6RixTQUErRSxHQUM1RCx1SUFBZ0YsSUFBdkcsWUFJTSxFQUppQixTQUFnRixHQVM5RSwwRkFBeUYsRUFDMUcsd0JBQWtCLEVBQ1IsdUJBQVksRUFDdEIsb0JBQXlCLEVBSHpCLGFBR3NDLEVBSHJCLFNBQXlGLEVBQzFHLFNBQWtCLEVBQ1IsU0FBWSxFQUN0QixTQUF5QixHQVl5QixvQkFBTyxFQUxyRCxhQUtvRyxFQUF0RCxVQUFPLEdBSEMseUNBQTZCLEVBRjlELG9CQUErQyxvQ0FBcEUsYUFLb0csRUFIOUMsVUFBNkIsRUFGOUQsVUFBK0MsR0FXekUsK0dBQTJELElBQTlELGFBRUksRUFGRCxVQUEyRCxHQUc5Qiw4RkFBNkMsR0FBN0UsYUFFUSxFQUZ3QixVQUE2QyxtREF2QzdELG9EQUFnRCxHQUN4RSx1SEFBdUgsbUJBRDNILFlBNENNLEVBNUNzQixTQUFnRCxFQUN4RSxTQUF1SCxHQUVyRyw2RkFBdUQsR0FBekUsWUFRTSxFQVJZLFNBQXVELEdBc0J6RCxvakJBS29HO2lFQW9CaEgsb0xBQ29HO2lFQUNwRywwS0FJTSxLQUZGLDZLQUF1RSxLQUN2RSx3S0FBOEU7aUVBUzlFLCtGQUdNLEtBRkYsZ05BQ2EsWUFETTs7d0JBQTJDO01BQTlELHdCQUNhO2lFQUlULDhGQUNvRixLQURQLGdKQUN0QixZQUEvQzs7d0JBQWtDO01BRG1DLHdCQUN0QixLQUFaLG1DQUFRLE1BQUksMklBQXNCO2lFQUM3RTs7Ozs7Ozs7d0JBRXlEO01BRHJEOzt3QkFBbUM7TUFEdkMscUpBRXlELElBREMsa0NBQ1YsMkJBRFIsdUJBQWlCLEVBRHpELFlBRXlELEVBRGpCLFNBQWlCLG1EQUFDLHFLQUNWO2lFQUdwRCx3S0FFaUIsWUFEYjs7d0JBQTJDO01BRC9DLHdCQUVpQixLQUQrQiw0RkFBNkIsS0FBWixtQ0FBUSxNQUFJLGtDQUNyRTtpRUFYWixpR0FZTSxLQVhGLDZJQU1NLEtBTEYsb05BQ29GLElBQ3BGLHNMQUV5RCxJQUc3RCxzTEFFaUIsaURBVE0scUlBQXlELEtBQTVFLFlBQ29GLEVBRGpFLFNBQXlELEdBRXRELHdJQUEyQyxHQUFqRSxZQUV5RCxFQUZuQyxTQUEyQyxHQUs3RCxrREFBcUMsR0FBN0MsWUFFaUIsRUFGVCxTQUFxQyxtREFSakIsd0lBQW9ELEdBQUMsd0lBQWdELEdBQWpJLFlBTU0sRUFOc0IsU0FBb0QsRUFBQyxTQUFnRDtpRUFlekgsMkVBT0ssS0FORCxvR0FLTSxLQUpGLCtGQUdPLEtBRkgsZ0pBQWdFLFlBQS9DOzt3QkFBa0M7TUFBbkQsd0JBQWdFLEtBQVosbUNBQVEsTUFBSSw0SUFFcEU7aUVBM0NoQyw2UUFtRE0sSUFoREYsK0dBUU0sS0FQRixzTEFDb0csSUFDcEcsc0xBSU0sSUFFViwrRkFzQ00sS0FyQ0YsdUdBb0NNLEtBbkNGLDJHQUdrRCxLQUhsQiwwQ0FBYSxNQUFBOzs7Ozs7Ozs7Ozs7Ozs7d1BBR0gsSUFBWixtQ0FBUSxNQUN0Qyx1TEFHTSxJQUNOLHVMQVlNLElBQ047OzttT0FhYyxJQVpWLGtHQVdNLEtBVkYsb0dBU0ssS0FSRCxxTkFPSyxHQVBELDJCQUF1RSxpREF0QzlGLG1CQUFrQyxpQkFBdkMsWUFtRE0sRUFuREQsU0FBa0MsR0FJMUIsaUxBQTJFLElBQWhGLFlBQ29HLEVBRC9GLFNBQTJFLEdBRXpELGdMQUEwRSxJQUFqRyxZQUlNLEVBSmlCLFNBQTBFLEdBUS9CLGtJQUFpSSxFQUMzTCx3QkFBa0IsRUFDUix1QkFBWSxFQUN0QixvQkFBeUIsRUFIZ0IsYUFHSCxFQUhvQixTQUFpSSxFQUMzTCxTQUFrQixFQUNSLFNBQVksRUFDdEIsU0FBeUIsR0FDVCwwSUFBMEMsR0FBOUQsYUFHTSxFQUhjLFVBQTBDLEdBSXhDLHlJQUF5QyxHQUEvRCxhQVlNLEVBWmdCLFVBQXlDLEdBYWpDLHFCQUF5QixFQUF2RCxhQWFjLEVBYmdCLFVBQXlCLEdBR3ZDLDZIQUF1RSxJQUEzRSxhQU9LLEVBUEQsVUFBdUUsbURBdENwQyxrREFBOEMsR0FDekcscUhBQW9ILG1CQUR4SCxZQW1ETSxFQW5EeUQsU0FBOEMsRUFDekcsU0FBb0gsR0FFbEcsd0lBQW1ELEdBQXJFLFlBUU0sRUFSWSxTQUFtRDtpRUFzRGpFLG1MQUFpSTtpRUFJakksMEtBR00sS0FGRiw2S0FBdUUsS0FDdkUsd0tBQThFO2lFQWExRSw0UkFHWSxJQUZ5QiwrQkFFckMsMkJBSGtELDJEQUE2QixtQ0FDM0UsMkRBQWdDLHNDQURwQyxZQUdZLEVBSHNDLFNBQTZCLEVBQzNFLFNBQWdDLDJCQUFDLDZFQUVyQztpRUExQmhCLDZRQThCTSxJQTNCRiwrR0FTTSxLQVJGLHNMQUFpSSxJQUlqSSxzTEFHTSxJQUVWLCtGQWdCTSxLQWZGLHVHQWNNLEtBYkYsMkdBSWtELEtBSmxCLHNEQUM1QixNQUFBOzs7Ozs7Ozs7Ozs7Ozs7d1BBR3NDLElBQVosbUNBQVEsTUFFdEMsd1ZBTVksWUFORDs7d0JBQWlDO01BQTVDLG9tQkFNWSxJQUpSLGtOQUdZLGlEQTFCdkIsbUJBQWtDLGlCQUF2QyxZQThCTSxFQTlCRCxTQUFrQyxHQUk0RCxvQkFBNEIsc0JBQXZILFlBQWlJLEVBQXRDLFNBQTRCLEdBSWhHLG1CQUEyQixzQkFBbEQsWUFHTSxFQUhpQixTQUEyQixHQVF6QiwrRUFBOEUsRUFDL0Ysd0JBQWtCLEVBQ1IsdUJBQVksRUFDdEIsb0JBQXlCLEVBSHpCLGFBR3NDLEVBSHJCLFNBQThFLEVBQy9GLFNBQWtCLEVBQ1IsU0FBWSxFQUN0QixTQUF5QixHQUVnQiwrQ0FBOEMsRUFBM0YsYUFNWSxFQU5pQyxVQUE4QyxHQUN2RixzQ0FBMEIsRUFEbkIsb0JBQWlDLHNCQUE1QyxhQU1ZLEVBTFIsVUFBMEIsRUFEbkIsVUFBaUMsR0FFN0Isb0JBQXNDLG9CQUFqRCxhQUdZLEVBSEQsVUFBc0MsbURBdkJGLHFCQUFzQixFQUNqRiw0RUFBa0YsbUJBRHRGLFlBOEJNLEVBOUJ5RCxTQUFzQixFQUNqRixTQUFrRixHQUVoRSxtQkFBcUMsc0JBQXZELFlBU00sRUFUWSxTQUFxQyxHQWtCL0MsZ2JBTVk7aUVBT2hCLHFMQUNtRztpRUFDbkcsMEtBSU0sS0FGSiw2S0FBdUUsS0FDdkUsd0tBQThFO2lFQVB4RixxT0F1Qk0sSUF0QkEsNkZBUU0sS0FQSixzTEFDbUcsSUFDbkcsc0xBSU0sSUFFUiwrRkFZTSxLQVhKLHVHQVVNLEtBVEosd0hBS1EsS0FMK0IseURBQTRCLE1BQUEsOEhBQTRDLEtBQzdHOzs7Ozs7Ozs7Ozs7Ozs7d1BBRzBDLElBQVosbUNBQVEsTUFFeEM7O3dCQUVjO01BRkQ7O3dCQUFnRDtNQUNoQjs7d0JBQXNDO01BRG5GLHNuQkFFYyxtREFwQm5CLG1CQUFrQyxpQkFBdkMsWUF1Qk0sRUF2QkQsU0FBa0MsR0FFMUIsb0JBQTJDLHFDQUFoRCxZQUNtRyxFQUQ5RixTQUEyQyxHQUUzQyxtQkFBMEMscUNBQS9DLFlBSU0sRUFKRCxTQUEwQyxHQVMxQiwwRkFBeUYsRUFDdEcsd0JBQWtCLEVBQ1IsdUJBQVksRUFDdEIsb0JBQXlCLEVBSDdCLGFBRzBDLEVBSHpCLFNBQXlGLEVBQ3RHLFNBQWtCLEVBQ1IsU0FBWSxFQUN0QixTQUF5QixHQUc3QixvQkFBMEMsNEJBRDVDLGFBRWMsRUFEWixVQUEwQyxHQUQvQixvQkFBZ0QscUNBQTdELGFBRWMsRUFGRCxVQUFnRCwyQkFBN0QsMGFBRWM7Z0VBeFg1Qix1R0E2WE0sS0EzWEYsZ0pBNEJNLEtBMUJGLCtHQVFNLEtBUEYscUxBQTZHLElBRTdHLHFMQUlNLElBRVYsK0ZBZ0JNLEtBZkYsdUdBY00sS0FiRiwyR0FBaUYsS0FBakQsdUNBQVUsTUFBQSxtR0FBK0IsS0FBUiw4QkFBQyxNQUNsRSwwR0FVTSxLQVRGLG9IQUdNLEtBRkYsdUpBQThHLFlBQTVEOzt3QkFBOEI7TUFBaEYsd0JBQThHLEtBQTdCLGlEQUFvQixNQUNyRzs7Ozs7Ozs7Ozs7Ozs7O3dQQUFzUixJQUFaLG1DQUFRLE1BRXRSLG9IQUdNLEtBRkYsdUpBQXlHLFlBQXZEOzt3QkFBZ0M7TUFBbEYsd0JBQXlHLEtBQXRCLDBDQUFhLE1BQ2hHOzs7Ozs7Ozs7Ozs7Ozs7d1BBQWdVLElBQVosbUNBQVEsTUFFaFUsNEdBQXVDLEtBRTNDLHNMQUEwRCxJQUt0RSxpSkE2Qk0sS0EzQkYsZ0hBUU0sS0FQRixzTEFBcUosSUFFckosc0xBSU0sSUFFVixnR0FpQk0sS0FoQkYsd0dBZU0sS0FkRiw0R0FBaUYsS0FBakQsdUNBQVUsTUFBQSxtR0FBK0IsS0FBUiw4QkFBQyxNQUNsRSxzTEFFMkYsSUFDM0Ysc0xBTU0sSUFDTixzTEFBbUYsSUFDbkY7O3dCQUErSDtNQUFsSDs7d0JBQWtDO01BQThCOzt3QkFBbUM7TUFBaEgsc25CQUErSCxNQUMvSCx1TEFBb0osSUFLaEssaUpBdURNLEtBckRGLGdIQVNNLEtBUkYsdUxBQzhHLElBRTlHLHVMQUlNLElBRVYsZ0dBMENNLEtBekNGLHdHQXdDTSxLQXZDRiw0R0FLUSxLQUx3QixtREFBc0IsTUFBQSxtR0FBK0IsS0FBUiw4QkFBQyxNQUMxRTs7Ozs7Ozs7Ozs7Ozs7O3dQQUdzQyxJQUFaLG1DQUFRLE1BRXRDLHVMQUdNLElBQ04sdUxBWU0sSUFDTix1TEFDK0MsSUFDL0M7Ozs2TkFhYyxJQVpWLGtHQVdNLEtBVkYsb0dBU0ssS0FSRCxxTkFPSyxHQVBELDJCQUFvRixJQWVoSCxpSkEyRE0sS0F6REYsZ0hBU00sS0FSRix1TEFDc0csSUFFdEcsdUxBSU0sSUFFVixnR0E4Q00sS0E3Q0Ysd0dBNENNLEtBM0NGLDRHQUtRLEtBTHdCLHdDQUFXLE1BQUEsbUdBQStCLEtBQVIsOEJBQUMsTUFDL0Q7Ozs7Ozs7Ozs7Ozs7Ozt3UEFHc0MsSUFBWixtQ0FBUSxNQUV0Qyx3TEFHTSxJQUNOLHdMQWdCTSxJQUNOOzs7aU9BZWMsSUFkVixtR0FhTSxLQVpKLHdMQVdlLEdBWEQsZ0NBQTZFLElBa0I3RyxrSkEwQ00sS0F4Q0YsaUhBU00sS0FSRix3TEFDbUcsSUFFbkcsd0xBSU0sSUFFVixpR0E2Qk0sS0E1QkYsd0dBb0JNLEtBbkJGLDZHQUlrRCxLQUpsQiwyQ0FDNUIsTUFBQTs7Ozs7Ozs7Ozs7Ozs7O3lQQUdzQyxJQUFaLG1DQUFRLE1BQ3RDLHdMQUdNLElBQ04sd0xBU00sSUFFVix3TEFLZSxJQUt2Qix3TEE0Q00sSUFFTix3TEFtRE0sSUFFTix3TEE4Qk0sSUFFTix3TEF1Qk0saURBdFhrRyxvQkFBWSxFQUE1RyxZQUE2RyxFQUFiLFNBQVksR0FFdkcscUJBQWEsRUFBbEIsWUFJTSxFQUpELFNBQWEsR0FZZ0IsMEtBQXlLLEVBQUMsOEJBQXdCLEVBQVcsdUJBQVksRUFBQyxxQkFBeUIsRUFBelEsYUFBc1IsRUFBaFEsU0FBeUssRUFBQyxTQUF3QixFQUFXLFNBQVksRUFBQyxVQUF5QixHQUluUCxxTkFBbU4sRUFBQywrQkFBd0IsRUFBVyx3QkFBWSxFQUFDLHFCQUF5QixFQUFuVCxhQUFnVSxFQUExUyxVQUFtTixFQUFDLFVBQXdCLEVBQVcsVUFBWSxFQUFDLFVBQXlCLEdBSXhULHNCQUFhLEVBQWhCLGFBQTBELEVBQXZELFVBQWEsR0FRNEUsdUVBQW9ELElBQXBKLGFBQXFKLEVBQXJELFVBQW9ELEdBRS9JLHNFQUFtRCxJQUF4RCxhQUlNLEVBSkQsVUFBbUQsR0FXbEIsOEVBQXdELElBRjFGLGFBRTJGLEVBQXpELFVBQXdELEdBQ3BFLDZFQUEwRCxJQUFoRixhQU1NLEVBTmdCLFVBQTBELEdBTzdFLHVDQUFzQyxrQkFBekMsYUFBbUYsRUFBaEYsVUFBc0MsR0FDTyxvQkFBNEIsY0FBNUUsYUFBK0gsRUFBL0UsVUFBNEIsR0FBL0Qsb0JBQWtDLHVCQUEvQyxhQUErSCxFQUFsSCxVQUFrQyxHQUM1QyxvUEFBZ0csY0FBbkcsYUFBb0osRUFBakosVUFBZ0csR0FRbEcsb01BQWlGLElBQXRGLGFBQzhHLEVBRHpHLFVBQWlGLEdBR2pGLG1NQUFnRixJQUFyRixhQUlNLEVBSkQsVUFBZ0YsR0FTNUQsK1BBQTZQLEVBQzlRLHlCQUFrQixFQUNSLHdCQUFZLEVBQ3RCLHFCQUF5QixFQUh6QixhQUdzQyxFQUhyQixVQUE2UCxFQUM5USxVQUFrQixFQUNSLFVBQVksRUFDdEIsVUFBeUIsR0FFVCxrS0FBc0QsR0FBMUUsYUFHTSxFQUhjLFVBQXNELEdBSXBELGlLQUFxRCxHQUEzRSxhQVlNLEVBWmdCLFVBQXFELEdBYXhFLG9MQUFxRSxJQUF4RSxhQUMrQyxFQUQ1QyxVQUFxRSxHQUVoRCxxQkFBeUIsRUFBakQsYUFhYyxFQWJVLFVBQXlCLEdBR2pDLHlJQUFvRixJQUF4RixhQU9LLEVBUEQsVUFBb0YsR0FrQm5HLHlLQUFzRSxJQUEzRSxhQUNzRyxFQURqRyxVQUFzRSxHQUd0RSx3S0FBb0UsSUFBekUsYUFJTSxFQUpELFVBQW9FLEdBU2hELGdGQUE4RSxFQUMvRix5QkFBa0IsRUFDUix3QkFBWSxFQUN0QixxQkFBeUIsRUFIekIsYUFHc0MsRUFIckIsVUFBOEUsRUFDL0YsVUFBa0IsRUFDUixVQUFZLEVBQ3RCLFVBQXlCLEdBRVQsb0lBQXdDLEdBQTVELGNBR00sRUFIYyxVQUF3QyxHQUl0QyxtSUFBc0MsR0FBNUQsY0FnQk0sRUFoQmdCLFVBQXNDLEdBaUJqQyxxQkFBeUIsRUFBcEQsY0FlYyxFQWZhLFVBQXlCLEdBRWhDLDhIQUE2RSwwQkFBM0YsY0FXZSxFQVhELFVBQTZFLEdBcUJoRyw0S0FBOEUsSUFBbkYsY0FDbUcsRUFEOUYsVUFBOEUsR0FHNUQsMktBQTZFLElBQXBHLGNBSU0sRUFKaUIsVUFBNkUsR0FTM0UsbUVBQWlFLEVBQ2xGLHlCQUFrQixFQUNSLHdCQUFZLEVBQ3RCLHFCQUF5QixFQUh6QixjQUdzQyxFQUhyQixVQUFpRSxFQUNsRixVQUFrQixFQUNSLFVBQVksRUFDdEIsVUFBeUIsR0FDVCxnR0FBNkMsdUNBQWpFLGNBR00sRUFIYyxVQUE2QyxHQUkzQywrRkFBNEMsdUNBQWxFLGNBU00sRUFUZ0IsVUFBNEMsR0FXeEQsbUpBQThDLEdBQTVELGNBS2UsRUFMRCxVQUE4QyxHQVloRSwrS0FBc0YsSUFGMUYsY0E0Q00sRUExQ0YsVUFBc0YsR0E4Q3RGLG9CQUE0Qix1QkFGaEMsY0FtRE0sRUFqREYsVUFBNEIsR0FxRDVCLG9CQUE4Qix5QkFGbEMsY0E4Qk0sRUE1QkYsVUFBOEIsR0E4QjZCLHFEQUFtQyw4QkFBbEcsY0F1Qk0sRUF2QnlELFVBQW1DLG1EQWxXdEUscUJBQXNCLEVBQzlDLHFCQUF3QixFQUQ1QixZQTRCTSxFQTVCc0IsU0FBc0IsRUFDOUMsU0FBd0IsR0FDTixxQkFBdUIsRUFBekMsWUFRTSxFQVJZLFNBQXVCLEdBYU4scUZBQWdELEdBQXZFLGFBR00sRUFIaUIsU0FBZ0QsR0FDM0Qsb0JBQXlDLHdCQUFqRCxhQUE4RyxFQUF0RyxTQUF5QyxHQUc5Qix3RkFBa0QsR0FBekUsYUFHTSxFQUhpQixVQUFrRCxHQUM3RCxxQkFBeUMsd0JBQWpELGFBQXlHLEVBQWpHLFVBQXlDLEdBVXpDLHNCQUFzQixFQUM5QyxrSEFBaUgsbUJBRHJILGFBNkJNLEVBN0JzQixVQUFzQixFQUM5QyxVQUFpSCxHQUMvRixvQkFBZ0MsaUJBQWxELGFBUU0sRUFSWSxVQUFnQyxHQXVCMUMsZ2JBQStILEdBTS9HLDZDQUF3QyxHQUNoRSxnSEFBOEcsbUJBRGxILGFBdURNLEVBdkRzQixVQUF3QyxFQUNoRSxVQUE4RyxHQUM1RixpS0FBK0QsR0FBakYsYUFTTSxFQVRZLFVBQStELEdBdUR6RCxnREFBMkMsR0FDbkUsbUhBQWlILG1CQURySCxhQTJETSxFQTNEc0IsVUFBMkMsRUFDbkUsVUFBaUgsR0FDL0YsbUlBQWdELEdBQWxFLGFBU00sRUFUWSxVQUFnRCxHQTJEMUMsbURBQThDLEdBQ3RFLHNIQUFvSCxtQkFEeEgsY0EwQ00sRUExQ3NCLFVBQThDLEVBQ3RFLFVBQW9ILEdBQ2xHLCtGQUFzRCx1Q0FBeEUsY0FTTSxFQVRZLFVBQXNEO2lFQXVNaEYsOExBSWtDLFlBRjlCOzt3QkFBK0M7TUFBQzs7d0JBQTRDO01BRmhHLDZkQUlrQyxtREFKK0IsbUJBQXVELDRCQUNwSCxtQkFBb0UscUNBQUMsdUJBQW1CLEVBRXRDLGlEQUFnRCxFQUFsRyxnREFBaUQsRUFIckQsWUFJa0MsRUFKK0IsU0FBdUQsRUFDcEgsU0FBb0UsRUFBQyxTQUFtQixFQUV0QyxTQUFnRCxFQUFsRyxTQUFpRDtpRUFHckQsZ0xBR3VGLFlBRks7O3dCQUFtRDtNQUMzRjs7d0JBQWtEO01BRnRHLGdmQUd1RixtREFIcEMsbUJBQXdCLGFBQUMsbUJBQXFDLHNCQUM3RywyQkFBeUIsRUFBaUMsNkJBQTZCLEVBQTdELDhCQUErQixFQUV4QixnQ0FBK0IsRUFBaEUsK0JBQWdDLEVBRGhDLG1CQUErQyx3QkFGbkQsWUFHdUYsRUFIcEMsU0FBd0IsRUFBQyxTQUFxQyxFQUM3RyxTQUF5QixFQUFpQyxTQUE2QixFQUE3RCxTQUErQixFQUV4QixTQUErQixFQUFoRSxTQUFnQyxFQURoQyxTQUErQztpRUFHbkQsNExBRW1GLFlBRHhDOzt3QkFBcUQ7TUFDNUY7O3dCQUEwRDtNQUY5RCwrVEFFbUYsbURBRjFCLG1CQUE2QixlQUNsRixtQkFBc0Msb0JBRDFDLFlBRW1GLEVBRjFCLFNBQTZCLEVBQ2xGLFNBQXNDO2lFQUUxQyxnTEFJaUIsWUFGYjs7d0JBQXNEO01BQUM7O3dCQUFxRDtNQUZoSCwyYkFJaUIsbURBSnFDLG1CQUEyQixnQkFDN0UsbUJBQXdDLHlCQUFDLDJCQUF5QixFQUFDLDZCQUE2QixFQUFDLDhCQUErQixFQUUvRixnQ0FBK0IsRUFBaEUsK0JBQWdDLEVBSHBDLFlBSWlCLEVBSnFDLFNBQTJCLEVBQzdFLFNBQXdDLEVBQUMsU0FBeUIsRUFBQyxTQUE2QixFQUFDLFNBQStCLEVBRS9GLFNBQStCLEVBQWhFLFNBQWdDO2lFQUVwQyxvUUFBc0Q7aUVBSWxEOzt3QkFNMkI7TUFGdkI7O3dCQUF5QjtNQUN6Qjs7d0JBQW1DO01BTHZDLHFSQU0yQixtREFKdkIsbUJBQXlCLGdCQUN6QixtQkFBK0IsZ0JBSG5DLFlBTTJCLEVBSnZCLFNBQXlCLEVBQ3pCLFNBQStCO2dIQXhadkMscUxBNlhNLElBQ04sc0xBSWtDLElBRWxDLHNMQUd1RixJQUV2RixzTEFFbUYsSUFDbkYsdUxBSWlCLElBQ2pCLHVMQUFzRCxJQUlsRCx1TEFNMkIsaURBM1pMLG9CQUFtQixhQUE3QyxZQTZYTSxFQTdYb0IsU0FBbUIsR0E4WFosNENBQStCLEdBQWhFLFlBSWtDLEVBSkQsU0FBK0IsR0FNaEQsK0NBQWtDLEdBQWxELFlBR3VGLEVBSHZFLFNBQWtDLEdBSy9CLGtEQUFxQyxHQUF4RCxZQUVtRixFQUZoRSxTQUFxQyxHQUd4QyxrREFBcUMsR0FBckQsYUFJaUIsRUFKRCxTQUFxQyxHQUtsQyxtQkFBYyxTQUFqQyxhQUFzRCxFQUFuQyxTQUFjLEdBS3pCLG1CQUFrQixhQUR0QixhQU0yQixFQUx2QixTQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiIsIjxkaXYgY2xhc3M9XCJ3b3JrZmx3LXJpc2tcIiAqbmdJZj1cIiFzaG93U21pbGV5XCI+XHJcbiAgICA8IS0tIFJpc2sgVHlwZSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiIFtjbGFzcy5hY3RpdmVdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJmYWxzZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hhdC5zdmdcIiBhbHQ9XCJpbVwiICpuZ0lmPVwidHJ1ZVwiPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImZhbHNlXCIgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlJpc2sgVHlwZSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpc2stdHlwZS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eXBlLWl0ZW1cIiBbY2xhc3MuYWN0aXZlXT1cInJpc2tGb3JtPy5yaXNrVHlwZSA9PT0gJ05PUk1BTCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbY2xhc3MuZGlzYWJsZWRdPVwiIXJpc2tUeXBlQ2hhbmdlQWxsb3dlZFwiIChjbGljayk9XCJjaGFuZ2VSaXNrKCdOT1JNQUwnKVwiPkFERCBUTyBSSVNLIFJFR0lTVEVSPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgaW5mb1wiIFthcHBUb29sdGlwXT1cIidUaGlzIG9wdGlvbiBsZXRzIHlvdSBhZGQgYSByaXNrIGRpcmVjdGx5IHRvIHRoZSBSaXNrIFJlZ2lzdGVyLiBUaGUgcmlzayBvd25lcnMgd2lsbCByZWNlaXZlIGFuIGFsZXJ0IGFuZCB0aGV5IGNhbiBiZWdpbiB0aGUgdGhlIHJpc2sgYXNzZXNzbWVudCBwcm9jZXNzLidcIiBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiBkZWxheT1cIjBcIiB0eXBlPVwid2hpdGVcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR5cGUtaXRlbVwiIFtjbGFzcy5hY3RpdmVdPVwicmlza0Zvcm0/LnJpc2tUeXBlID09PSAnUkVQT1JURUQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2NsYXNzLmRpc2FibGVkXT1cIiFyaXNrVHlwZUNoYW5nZUFsbG93ZWRcIiAoY2xpY2spPVwiY2hhbmdlUmlzaygnUkVQT1JURUQnKVwiPlJFUE9SVCBBIFJJU0s8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBpbmZvXCIgW2FwcFRvb2x0aXBdPVwiJ1RoaXMgb3B0aW9ucyBsZXRzIHlvdSByZXBvcnQgYSByaXNrIGFuZCBhc3NpZ24gaXQgdG8gdGhlIHJpc2sgb3duZXJzLiBUaGUgcmlzayBvd25lcnMgd2lsbCBoYXZlIHRoZSBvcHRpb24gdG8gZWl0aGVyIGFkZCB0aGUgcmlzayB0byB0aGUgUmlzayBSZWdpc3RlciBvciBmbGFnIGl0IGZvciBhIGZvbGxvdy11cCBhdCBhIGxhdGVyIGRhdGUuJ1wiIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJ3aGl0ZVwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhY2tncm91bmQtZ2xpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImZhbHNlXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+QWRkIGEgcmlzayB0eXBlPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBSaXNrIE5hbWUgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cImZhbHNlXCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIGFjdGl2ZVNlbGVjdG9yICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZScgICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZVNlbGVjdG9yKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwicmlza0Zvcm0udGl0bGVcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hhdC5zdmdcIiBhbHQ9XCJpbVwiICpuZ0lmPVwiIXJpc2tGb3JtLnRpdGxlIHx8IGFjdGl2ZVNlbGVjdG9yID09PSAnbmFtZSdcIj5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJyaXNrRm9ybS50aXRsZSAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ25hbWUnXCIgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlJpc2sgTmFtZSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKGtleWRvd24pPVwiYWN0aXZlU2VsZWN0b3IgPSAnbmFtZSdcIiAoZm9jdXNpbik9XCJhY3RpdmF0ZVNlbGVjdG9yKCduYW1lJyx0cnVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cImFjdGl2YXRlU2VsZWN0b3IoJ25hbWUnLGZhbHNlKVwiIFsobmdNb2RlbCldPVwicmlza0Zvcm0udGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQWRkIGEgcmlzayBuYW1lXCIgKm5nSWY9XCJyaXNrRm9ybS50aXRsZSA9PScnIHx8IGFjdGl2ZVNlbGVjdG9yID09PSAnbmFtZSdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwicmlza0Zvcm0udGl0bGUubGVuZ3RoICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7cmlza0Zvcm0udGl0bGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdFwiIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCduYW1lJyx0cnVlKVwiIHR5cGU9XCJidXR0b25cIj48aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwic3VibWl0dGVkICYmICghcmlza0Zvcm0udGl0bGUpXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+QWRkIGEgcmlzayBuYW1lPC9wPlxyXG4gICAgICAgICAgICAgICAgPG1hcngtZWRpdG9yIFsobmdNb2RlbCldPVwicmlza0Zvcm0uZGVzY3JpcHRpb25cIiBbZWRpdG9yQ29uZmlnXT1cImRlc2NyaXB0aW9uXCIgKGNsaWNrT3V0c2lkZSk9XCJjaGVja0Rlc2NyaXB0aW9uKClcIj48L21hcngtZWRpdG9yPlxyXG4gICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgKHJpc2tGb3JtLnJpc2tUeXBlID09PSdSRVBPUlRFRCcgJiYgIXJpc2tGb3JtPy5kZXNjcmlwdGlvbj8udHJpbSgpPy5sZW5ndGgpXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+QWRkIGEgcmlzayBkZXNjcmlwdGlvbjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gUmVzcG9uc2liaWxpdHkgQ2VudGVyIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVTZWxlY3RvciA9PT0gJ3JjJ1wiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiBhY3RpdmVTZWxlY3RvciAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ3JjJyAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVTZWxlY3RvcilcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cInJpc2tGb3JtPy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0Py5sZW5ndGg+MFwiPlxyXG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwicmlza0Zvcm0/LnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q/Lmxlbmd0aD09MCB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ3JjJ1wiXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2Z1wiIGFsdD1cIlwiPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInJpc2tGb3JtPy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0Py5sZW5ndGg+MCAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ3JjJ1wiIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SZXNwb25zaWJpbGl0eSBDZW50ZXIgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidSZXNwb25zaWJpbGl0eSBDZW50ZXJzIHJlcHJlc2VudCB0aGUgY29ycG9yYXRlIGFuZCBvcGVyYXRpb25hbCBpbmZyYXN0cnVjdHVyZSBvZiBhbiBvcmdhbml6YXRpb24uIE9uZSBvciBtb3JlIFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgY2FuIGJlIGV4cG9zZWQgdG8gYSByaXNrIGFuZCBhY2NvcmRpbmdseSwgdGhlIHJpc2sgbXVzdCBiZSBhc3Nlc3NlZCBhZ2FpbnN0IGVhY2ggUmVzcG9uc2liaWxpdHkgQ2VudGVyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCIgdHlwZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkxZjs8L2k+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwicmlza0Zvcm0/LnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q/Lmxlbmd0aD09MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdyYycsdHJ1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBSZXNwb25zaWJpbGl0eSBDZW50ZXIocylcIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJyaXNrRm9ybT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdD8ubGVuZ3RoPjBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIiBbY2xhc3MubW9yZS1vbmVdPVwicmlza0Zvcm0/LnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q/Lmxlbmd0aD4xXCIgW2NsYXNzLnBsdXNdPVwicmlza0Zvcm0/LnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q/Lmxlbmd0aD4yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiICpuZ0Zvcj1cImxldCByY05hbWUgb2Ygcmlza0Zvcm0/LnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q/LnNsaWNlKDAsMilcIj48aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwicmVtb3ZlKCdyYycscmNOYW1lKVwiPiYjeGU5MGQ7PC9pPiB7e3JjTmFtZS5pdGVtX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJyaXNrRm9ybT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdD8ubGVuZ3RoID4gMlwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwUG9wb3ZlciAoY2xpY2spPVwicG9wb3ZlclJDLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyaXNrRm9ybT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdD8uc2xpY2UoMikubGVuZ3RofX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yICE9PSAncmMnXCIgY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdyYycsdHJ1ZSlcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgKHJpc2tGb3JtPy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0Py5sZW5ndGg9PTApXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+QXNzaWduXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcyByaXNrIHRvIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyKHMpPC9wPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNwb3BvdmVyUkMgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCByY05hbWUgb2Ygcmlza0Zvcm0/LnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QgfCBzbGljZTogMjsgbGV0IGogPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cInJlbW92ZSgncmMnLHJjTmFtZSlcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJjTmFtZS5pdGVtX25hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIFJJU0sgT1dORVIgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVNlbGVjdG9yID09PSAnb3duZXInXCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIGFjdGl2ZVNlbGVjdG9yICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnb3duZXInICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZVNlbGVjdG9yKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwicmlza0Zvcm0/Lm93bmVyc0xpc3Q/Lmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJyaXNrRm9ybT8ub3duZXJzTGlzdD8ubGVuZ3RoID09MCB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ293bmVyJ1wiXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvaW0tY3JlYXRpbmcuc3ZnXCIgYWx0PVwiXCIgLz5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJyaXNrRm9ybT8ub3duZXJzTGlzdD8ubGVuZ3RoPjAgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICdvd25lcidcIiBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UklTSyBPV05FUiA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ1RoaXMgaXMgdGhlIHBlcnNvbiB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyB0aGUgcmlzay4nXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiIHR5cGU9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPiYjeGU5MWY7PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIiAqbmdJZj1cInJpc2tGb3JtPy5vd25lcnNMaXN0Py5sZW5ndGggPT0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKGNsaWNrKT1cImFjdGl2YXRlU2VsZWN0b3IoJ293bmVyJyx0cnVlKVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFJpc2sgT3duZXIocylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkb25seT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJyaXNrRm9ybT8ub3duZXJzTGlzdD8ubGVuZ3RoPjBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIiBbY2xhc3MubW9yZS1vbmVdPVwicmlza0Zvcm0/Lm93bmVyc0xpc3Q/Lmxlbmd0aD4xXCIgW2NsYXNzLnBsdXNdPVwicmlza0Zvcm0/Lm93bmVyc0xpc3Q/Lmxlbmd0aD4yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHJpc2tGb3JtPy5vd25lcnNMaXN0fHNob3J0TWVyZ2UgOiBub25SZW1vdmFibGVVc2Vyc0xpc3QpIGFzIG93bmVyTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiAqbmdGb3I9XCJsZXQgb3duZXIgb2Ygb3duZXJMaXN0Py5zbGljZSgwLDIpXCI+PGkgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFub25SZW1vdmFibGVVc2Vyc0xpc3QuaW5jbHVkZXMob3duZXI/Lm1lbWJlcl9pZClcIiAoY2xpY2spPVwicmVtb3ZlKCdvd25lcicsb3duZXIpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e293bmVyPy5tZW1iZXJfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY291bnRcIiAqbmdJZj1cInJpc2tGb3JtPy5vd25lcnNMaXN0Py5sZW5ndGggPiAyXCIgdHlwZT1cImJ1dHRvblwiIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwb3BvdmVyT3duZXIucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Jpc2tGb3JtPy5vd25lcnNMaXN0Py5zbGljZSgyKS5sZW5ndGh9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yICE9PSAnb3duZXInXCIgY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdvd25lcicsdHJ1ZSlcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNwb3BvdmVyT3duZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihyaXNrRm9ybT8ub3duZXJzTGlzdHxzaG9ydE1lcmdlIDogbm9uUmVtb3ZhYmxlVXNlcnNMaXN0KSBhcyBvd25lclBvcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBvd25lciBvZiBvd25lclBvcCB8IHNsaWNlOiAyOyBsZXQgaiA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwicmVtb3ZlKCdvd25lcicsb3duZXIpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvd25lci5tZW1iZXJfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBSaXNrIENhdGVnb3J5IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVTZWxlY3RvciA9PT0gJ2NhdGVnb3J5J1wiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiBhY3RpdmVTZWxlY3RvciAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ2NhdGVnb3J5JyAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVTZWxlY3RvcilcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cInJpc2tGb3JtPy5jYXRlZ29yeT8uc2VsZWN0ZWRDYXRlZ29yeVwiPlxyXG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwiIXJpc2tGb3JtPy5jYXRlZ29yeT8uc2VsZWN0ZWRDYXRlZ29yeSB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ2NhdGVnb3J5J1wiXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnXCIgYWx0PVwiXCIgLz5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiAqbmdJZj1cInJpc2tGb3JtPy5jYXRlZ29yeT8uc2VsZWN0ZWRDYXRlZ29yeSAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ2NhdGVnb3J5J1wiXHJcbiAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UmlzayBDYXRlZ29yeVxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInUmlzayBDYXRlZ29yaWVzIGFyZSB1c2VkIHRvIGdyb3VwIHNpbWlsYXIgcmlza3MuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIiB0eXBlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTFmOzwvaT48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwiIXJpc2tGb3JtPy5jYXRlZ29yeT8uc2VsZWN0ZWRDYXRlZ29yeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdjYXRlZ29yeScsdHJ1ZSlcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBSaXNrIENhdGVnb3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwicmlza0Zvcm0/LmNhdGVnb3J5Py5zZWxlY3RlZENhdGVnb3J5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoJ2NhdGVnb3J5JyxyaXNrRm9ybS5jYXRlZ29yeS5zZWxlY3RlZENhdGVnb3J5KVwiPiYjeGU5MGQ7PC9pPnt7cmlza0Zvcm0/LmNhdGVnb3J5Py5zZWxlY3RlZENhdGVnb3J5Py5jYXRlZ29yeV9uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJhY3RpdmVTZWxlY3RvciAhPT0gJ2NhdGVnb3J5J1wiIGNsYXNzPVwiZWRpdFwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3RvcignY2F0ZWdvcnknLHRydWUpXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBFZGl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyaXNrRm9ybT8uY2F0ZWdvcnlDdXN0b21UYWdzPy5sZW5ndGg+MFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIiAqbmdGb3I9XCJsZXQgdGFnIG9mIHJpc2tGb3JtLmNhdGVnb3J5Q3VzdG9tVGFnc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj57e3RhZy5jdXN0b21fdGFnX25hbWV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJ0YWcuY3VzdG9tX3RhZ192YWx1ZVwiIFtwbGFjZWhvbGRlcl09XCJ0YWcuY3VzdG9tX3RhZ19uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIEFzc2Vzc21lbnQgRGVhZGxpbmUgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVNlbGVjdG9yID09PSAnYXNzZXNzbWVudCdcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIgYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICdhc3Nlc3NtZW50JyAgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlU2VsZWN0b3IpXCJcclxuICAgICAgICAqbmdJZj1cIiFzZXR0aW5nc0luZm8/LmFzc2Vzc21lbnRfZGVhZGxpbmVfZW5hYmxlICYmIHJpc2tGb3JtPy5yaXNrVHlwZSAhPT0gJ1JFUE9SVEVEJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwicmlza0Zvcm0/LmFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5cz49MVwiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy93aGVuLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInJpc2tGb3JtPy5hc3Nlc3NtZW50X2RlYWRsaW5lX2RheXM8MSB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ2Fzc2Vzc21lbnQnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiICpuZ0lmPVwicmlza0Zvcm0/LmFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5cz49MSAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ2Fzc2Vzc21lbnQnXCJcclxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5Bc3Nlc3NtZW50IERlYWRsaW5lIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInVGhpcyBpcyB0aGUgZGF0ZSB0aGF0IHRoZSBpbmhlcmVudCByaXNrIGFzc2Vzc21lbnQgbXVzdCBiZSBjb21wbGV0ZWQgYnkuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIiB0eXBlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTFmOzwvaT48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCI+U2V0IE51bWJlciBvZiBkYXlzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBjb3VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNoYW5nZVJpc2tBc3Nlc3NtZW50KCdzdWJ0cmFjdCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZWE1Mzs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwicmlza0Zvcm0uYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c2luKT1cImFjdGl2YXRlU2VsZWN0b3IoJ2Fzc2Vzc21lbnQnLHRydWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdhc3Nlc3NtZW50JyxmYWxzZSlcIiBuYW1lPVwicmlza0Fzc2Vzc21lbnREZWFkbGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZUFzc2Vzc21lbnQgI2RlYWRsaW5lPVwibmdNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VSaXNrQXNzZXNzbWVudERlYWRsaW5lKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIiBtaW49XCIwXCIgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNoYW5nZVJpc2tBc3Nlc3NtZW50KCdhZGQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MTU7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgKHJpc2tGb3JtPy5hc3Nlc3NtZW50X2RlYWRsaW5lX2RheXM8MSlcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICBFbnRlciBhIHZhbHVlIGdyZWF0ZXIgdGhhbiAwLlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiICpuZ0lmPVwicmlza0Zvcm0/LmFzc2Vzc21lbnRfZGVhZGxpbmVfZGF5cz49MVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIFRoaXMgcmlzayBhc3Nlc3NtZW50IG5lZWRzIHRvIGJlIGNvbXBsZXRlZCBieSB7eyBkYXRlIHwgZGF0ZTogJ2RkIE1NTSB5eXl5JyB9fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gUmlzayBPdmVyc2VlciAtLT5cclxuICAgIDxkaXYgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVNlbGVjdG9yID09PSAnb3ZlcnNlZXInXCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIGFjdGl2ZVNlbGVjdG9yICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnb3ZlcnNlZXInICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZVNlbGVjdG9yKVwiXHJcbiAgICAgICAgKm5nSWY9XCJyaXNrRm9ybS5hZGRPdmVyc2VlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwicmlza0Zvcm0/Lm92ZXJzZWVyc0xpc3Q/Lmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJyaXNrRm9ybT8ub3ZlcnNlZXJzTGlzdD8ubGVuZ3RoPT0wIHx8IGFjdGl2ZVNlbGVjdG9yID09PSAnb3ZlcnNlZXInXCJcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiICpuZ0lmPVwicmlza0Zvcm0/Lm92ZXJzZWVyc0xpc3Q/Lmxlbmd0aD4wICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnb3ZlcnNlZXInXCJcclxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SaXNrIE92ZXJzZWVyPGkgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidUaGlzIGlzIHRoZSBwZXJzb24gdGhhdCBpcyByZXNwb25zaWJsZSBmb3Igb3ZlcnNlZWluZyB0aGUgcmlzayBidXQgd2hvIGlzIG5vdCByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlIHJpc2suJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIiB0eXBlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTFmOzwvaT48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwicmlza0Zvcm0/Lm92ZXJzZWVyc0xpc3Q/Lmxlbmd0aD09MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdvdmVyc2VlcicsdHJ1ZSlcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBSaXNrIE92ZXJzZWVyKHMpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwicmlza0Zvcm0/Lm92ZXJzZWVyc0xpc3Q/Lmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCIgW2NsYXNzLm1vcmUtb25lXT1cInJpc2tGb3JtPy5vdmVyc2VlcnNMaXN0Py5sZW5ndGg+MVwiIFtjbGFzcy5wbHVzXT1cInJpc2tGb3JtPy5vdmVyc2VlcnNMaXN0Py5sZW5ndGg+MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiAqbmdGb3I9XCJsZXQgb3duZXIgb2Ygcmlza0Zvcm0/Lm92ZXJzZWVyc0xpc3Q/LnNsaWNlKDAsMilcIj48aSBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKCdvdmVyc2Vlcicsb3duZXIpXCI+JiN4ZTkwZDs8L2k+IHt7b3duZXIubWVtYmVyX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJyaXNrRm9ybT8ub3ZlcnNlZXJzTGlzdD8ubGVuZ3RoID4gMlwiIHR5cGU9XCJidXR0b25cIiBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicG9wb3Zlck92ZXJzZWVyLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyaXNrRm9ybT8ub3ZlcnNlZXJzTGlzdD8uc2xpY2UoMikubGVuZ3RofX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yICE9PSAnb3ZlcnNlZXInXCIgY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdvdmVyc2VlcicsdHJ1ZSlcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNwb3BvdmVyT3ZlcnNlZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBvd25lciBvZiByaXNrRm9ybT8ub3ZlcnNlZXJzTGlzdCB8IHNsaWNlOiAyOyBsZXQgaiA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwicmVtb3ZlKCdvdmVyc2Vlcicsb3duZXIpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvd25lci5tZW1iZXJfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gUmlzayBNaXRpZ2F0aW9uIFByaW9yaXR5IC0tPlxyXG4gICAgPGRpdiBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCIgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiIFtjbGFzcy5hY3RpdmVdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVTZWxlY3RvciAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVTZWxlY3RvcilcIlxyXG4gICAgICAgICpuZ0lmPVwicmlza0Zvcm0uYWRkTWl0aWdhdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwicmlza0Zvcm0ubWl0aWdhdGlvblwiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9wcmlvcml0eS5zdmdcIiAqbmdJZj1cIiFyaXNrRm9ybS5taXRpZ2F0aW9uXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgPCEtLSA8c3ZnIHZpZXdCb3g9XCIyNSAyNSA1MCA1MFwiIGNsYXNzPVwiZWRpdC1sb2FkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI1MFwiIGN5PVwiNTBcIiByPVwiMjBcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cIiMxZTVkZDNcIiBzdHJva2Utd2lkdGg9XCIzXCIgY2xhc3M9XCJsb2FkZXItcGF0aFwiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgICA8L3N2Zz4gLS0+XHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiAqbmdJZj1cInJpc2tGb3JtLm1pdGlnYXRpb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UmlzayBNaXRpZ2F0aW9uIFByaW9yaXR5XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidUaGlzIHNldHMgdGhlIHByaW9yaXR5IGxldmVsIGZvciB0aGUgbWl0aWdhdGlvbiBvZiBlYWNoIHJpc2suJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIiB0eXBlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTFmOzwvaT48L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgIDxjcy1zZWxlY3QgWyhuZ01vZGVsKV09XCJyaXNrRm9ybS5taXRpZ2F0aW9uXCIgW3BsYWNlaG9sZGVyXT1cIidTZWxlY3QgYSBtaXRpZ2F0aW9uIHByaW9yaXR5J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInJpc2tGb3JtLm1pdGlnYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y3Mtb3B0aW9uICpuZ0Zvcj1cImxldCBkYXRhIG9mIG1pdGlnYXRpb25EZXRhaWxzXCIgW3ZhbHVlXT1cImRhdGE/Lm1pdGlnYXRpb25faWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiZGF0YT8ubWl0aWdhdGlvbl9jb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhLm1pdGlnYXRpb25fbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvY3Mtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9jcy1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIFJlY29tbWVuZGVkIE1pdGlnYXRpb24gUGxhbiAtLT5cclxuICAgIDxkaXYgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiAqbmdJZj1cInJpc2tGb3JtPy5hZGRNaXRpZ2F0aW9uUGxhblwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgPGltZyAqbmdJZj1cIiFyaXNrRm9ybS5taXRpZ2F0aW9uRGVzY3JpcHRpb25QbGFuXCJcclxuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb2JqZWN0aXZlcy5zdmdcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICA8c3ZnICpuZ0lmPVwicmlza0Zvcm0ubWl0aWdhdGlvbkRlc2NyaXB0aW9uUGxhblwiIGNsYXNzPVwiY2hlY2tJY29uXCIgXHJcbiAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIiBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SZWNvbW1lbmRlZCBNaXRpZ2F0aW9uIFBsYW5zPGxpbmsgcmVsPVwibWFuaWZlc3RcIiBocmVmPVwiLi9tYW5pZmVzdC5qc29uXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ1NwZWNpZnkgdGhlIG1pdGlnYXRpb24gcGxhbiB0aGF0IGNhbiBiZSB1bmRlcnRha2VuIHRvIG1pdGlnYXRlIHRoZSByaXNrLidcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCIgdHlwZT1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkxZjs8L2k+XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8bWFyeC1lZGl0b3IgWyhuZ01vZGVsKV09XCJyaXNrRm9ybS5taXRpZ2F0aW9uRGVzY3JpcHRpb25QbGFuXCJcclxuICAgICAgICAgICAgICAgIFtlZGl0b3JDb25maWddPVwibWl0aWdhdGlvbkRlc2NyaXB0aW9uUGxhblwiIChjbGlja091dHNpZGUpPVwiY2hlY2tNaXRpZ2F0aW9uUGxhbigpXCI+XHJcbiAgICAgICAgICAgICAgPC9tYXJ4LWVkaXRvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbjxhcHAtcmVzcG9uc2liaWxpdHktY2VudGVycy1saXN0ICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdyYydcIiBbcmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdF09XCJyZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0XCJcclxuICAgIFtzZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2VudGVyc109XCJyaXNrRm9ybS5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0XCIgW3JjSWRLZXldPVwiJ3JjX2lkJ1wiXHJcbiAgICAoc2F2ZVNlbGVjdGVkTGlzdCk9XCJzYXZlU2VsZWN0ZWRSQ0xpc3QoJGV2ZW50KVwiIChjbG9zZVJjTGlzdCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdyYycsZmFsc2UpXCJcclxuICAgIFtzaW5ndWxhclRleHRdPVwiJ1Jlc3BvbnNpYmlsaXR5IENlbnRlciBzZWxlY3RlZCdcIiBbcGx1cmFsVGV4dF09XCInUmVzcG9uc2liaWxpdHkgQ2VudGVycyBzZWxlY3RlZCdcIiA+XHJcbjwvYXBwLXJlc3BvbnNpYmlsaXR5LWNlbnRlcnMtbGlzdD5cclxuXHJcbjxhcHAtb3duZXItbGlzdCAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnb3duZXInXCIgW3VzZXJzTGlzdF09XCJvd25lcnNMaXN0XCIgW3NlbGVjdGVkVXNlcnNdPVwicmlza0Zvcm0ub3duZXJzTGlzdFwiXHJcbiAgICBbdXNlcklkS2V5XT1cIidtZW1iZXJfaWQnXCIgW2l0ZW1FbWFpbEtleV09XCInbWVtYmVyX2VtYWlsJ1wiIFtpdGVtTmFtZUtleV09XCInbWVtYmVyX25hbWUnXCIgKHNhdmVTZWxlY3RlZExpc3QpPVwic2F2ZVNlbGVjdGVkT3duZXJzTGlzdCgkZXZlbnQpXCJcclxuICAgIFtub25SZW1vdmFibGVVc2Vyc0xpc3RdPVwibm9uUmVtb3ZhYmxlVXNlcnNMaXN0XCIgKGNsb3NlVXNlcnNMaXN0KT1cImFjdGl2YXRlU2VsZWN0b3IoJ293bmVyJyxmYWxzZSlcIlxyXG4gICAgW3Npbmd1bGFyVGV4dF09XCInVXNlciBzZWxlY3RlZCdcIiBbcGx1cmFsVGV4dF09XCInVXNlcnMgc2VsZWN0ZWQnXCIgPjwvYXBwLW93bmVyLWxpc3Q+XHJcblxyXG48YXBwLWNhdGVnb3J5LWxpc3QgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ2NhdGVnb3J5J1wiIFtjYXRlZ29yeUxpc3RdPVwiY2F0ZWdvcnlMaXN0XCJcclxuICAgIFtzZWxlY3RlZENhdGVnb3J5XT1cInJpc2tGb3JtLmNhdGVnb3J5XCIgKHNhdmVTZWxlY3RlZENhdGVnb3J5KT1cInNhdmVTZWxlY3RlZENhdGVnb3J5KCRldmVudClcIlxyXG4gICAgKGNsb3NlQ2F0ZWdvcmllc0xpc3QpPVwiYWN0aXZhdGVTZWxlY3RvcignY2F0ZWdvcnknLGZhbHNlKVwiPjwvYXBwLWNhdGVnb3J5LWxpc3Q+XHJcbjxhcHAtb3duZXItbGlzdCAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnb3ZlcnNlZXInXCIgW3VzZXJzTGlzdF09XCJvdmVyc2VlcnNMaXN0XCJcclxuICAgIFtzZWxlY3RlZFVzZXJzXT1cInJpc2tGb3JtLm92ZXJzZWVyc0xpc3RcIiBbdXNlcklkS2V5XT1cIidtZW1iZXJfaWQnXCIgW2l0ZW1OYW1lS2V5XT1cIidtZW1iZXJfbmFtZSdcIiBbaXRlbUVtYWlsS2V5XT1cIidtZW1iZXJfZW1haWwnXCJcclxuICAgIChzYXZlU2VsZWN0ZWRMaXN0KT1cInNhdmVTZWxlY3RlZE92ZXJzZWVyc0xpc3QoJGV2ZW50KVwiIChjbG9zZVVzZXJzTGlzdCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdvdmVyc2VlcicsZmFsc2UpXCJcclxuICAgIFtzaW5ndWxhclRleHRdPVwiJ1VzZXIgc2VsZWN0ZWQnXCIgW3BsdXJhbFRleHRdPVwiJ1VzZXJzIHNlbGVjdGVkJ1wiID5cclxuPC9hcHAtb3duZXItbGlzdD5cclxuPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwibG9hZGVyXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cclxuPCEtLSA8YXBwLXNtaWxleS1kaWFsb2cgKm5nSWY9XCJzaG93U21pbGV5XCIgW21lc3NhZ2VdPVwic21pbGV5TWVzc2FnZVwiIFthY3Rpb25CdXR0b25zXT1cImFjdGlvbkJ1dHRvbnNcIlxyXG4gICAgKGFjdGlvbik9XCJhY3Rpb24oJGV2ZW50KVwiIChjbG9zZVNtaWxleSk9XCJjbG9zZVNtaWxleSgkZXZlbnQpXCI+PC9hcHAtc21pbGV5LWRpYWxvZz4gLS0+XHJcblxyXG4gICAgPGFwcC1zbWlsZXktZGlhbG9nLWlubGluZVxyXG4gICAgICAgICpuZ0lmPVwic2hvd1NtaWxleVwiXHJcbiAgICAgICAgW21lc3NhZ2VdPVwic21pbGV5TWVzc2FnZVwiXHJcbiAgICAgICAgW2FjdGlvbkJ1dHRvbnNdPVwiYWN0aW9uQnV0dG9uc1wiXHJcbiAgICAgICAgKGFjdGlvbik9XCJhY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgKGNsb3NlU21pbGV5KT1cImNsb3NlU21pbGV5KCRldmVudClcIj5cclxuICAgIDwvYXBwLXNtaWxleS1kaWFsb2ctaW5saW5lPlxyXG4iXX0=
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
2
|
+
import { Injectable, Optional } from '@angular/core';
|
|
3
|
+
import { AuthService } from './auth.service';
|
|
4
|
+
import { Configurations } from '../configurations';
|
|
5
|
+
import { BehaviorSubject } from 'rxjs';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common/http";
|
|
8
|
+
import * as i2 from "./auth.service";
|
|
9
|
+
import * as i3 from "../configurations";
|
|
10
|
+
export class AssessmentService {
|
|
11
|
+
constructor(http, authService, config) {
|
|
12
|
+
this.http = http;
|
|
13
|
+
this.authService = authService;
|
|
14
|
+
this.baseValue = {
|
|
15
|
+
currentPage: 0,
|
|
16
|
+
data: [],
|
|
17
|
+
end_value: 0,
|
|
18
|
+
start_value: 0,
|
|
19
|
+
totalPage: 0,
|
|
20
|
+
totalRecords: 0
|
|
21
|
+
};
|
|
22
|
+
this.categories = new BehaviorSubject({});
|
|
23
|
+
this.categoriesListData$ = this.categories.asObservable();
|
|
24
|
+
this.categoriesLoader = new BehaviorSubject(true);
|
|
25
|
+
this.categoriesLoading$ = this.categoriesLoader.asObservable();
|
|
26
|
+
if (config) {
|
|
27
|
+
this.env = config.envConfig;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
updateAssessment(id, payload) {
|
|
31
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
32
|
+
return this.http
|
|
33
|
+
.post(this.env.assessmentEnpoint + 'assessment/update&id=' + id, payload, { headers });
|
|
34
|
+
}
|
|
35
|
+
addAssessment(payload) {
|
|
36
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
37
|
+
console.log("headers", headers);
|
|
38
|
+
return this.http
|
|
39
|
+
.post(this.env.assessmentEnpoint + 'assessment/create', payload, { headers });
|
|
40
|
+
}
|
|
41
|
+
fetchCategory(payload) {
|
|
42
|
+
this.categoriesLoader.next(true);
|
|
43
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
44
|
+
this.http.post(this.env.assessmentEnpoint + 'category/list', payload, { headers }).subscribe({
|
|
45
|
+
next: (res) => { this.categories.next(res); this.categoriesLoader.next(false); },
|
|
46
|
+
error: (err) => { console.log('asdas', this.baseValue); this.categories.next(this.baseValue); this.categoriesLoader.next(false); },
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
resetCategory() {
|
|
50
|
+
this.categories.next(this.baseValue);
|
|
51
|
+
}
|
|
52
|
+
getAssessmentDetails(id) {
|
|
53
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
54
|
+
return this.http.post(this.env.assessmentEnpoint + 'assessment/getAssessmentInEdit&id=' + id, {}, { headers });
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
AssessmentService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AssessmentService_Factory() { return new AssessmentService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.AuthService), i0.ɵɵinject(i3.Configurations, 8)); }, token: AssessmentService, providedIn: "root" });
|
|
58
|
+
AssessmentService.decorators = [
|
|
59
|
+
{ type: Injectable, args: [{
|
|
60
|
+
providedIn: 'root'
|
|
61
|
+
},] }
|
|
62
|
+
];
|
|
63
|
+
AssessmentService.ctorParameters = () => [
|
|
64
|
+
{ type: HttpClient },
|
|
65
|
+
{ type: AuthService },
|
|
66
|
+
{ type: Configurations, decorators: [{ type: Optional }] }
|
|
67
|
+
];
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctc2VydmljZXMvYXNzZXNzbWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQU12QyxNQUFNLE9BQU8saUJBQWlCO0lBVTVCLFlBQW9CLElBQWdCLEVBQVUsV0FBd0IsRUFBYyxNQUF1QjtRQUF2RixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFSdEUsY0FBUyxHQUFPO1lBQ2QsV0FBVyxFQUFFLENBQUM7WUFDZCxJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRSxDQUFDO1lBQ1osV0FBVyxFQUFFLENBQUM7WUFDZCxTQUFTLEVBQUUsQ0FBQztZQUNaLFlBQVksRUFBRSxDQUFDO1NBQ2QsQ0FBQTtRQXNCSyxlQUFVLEdBQXlCLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLHdCQUFtQixHQUFvQixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTlELHFCQUFnQixHQUE2QixJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUN4Rix1QkFBa0IsR0FBd0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBeEI3RSxJQUFJ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WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwQmFja2VuZCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc3Nlc3NtZW50U2VydmljZSB7XHJcbiAgZW52ICE6IGFueTtcclxuICBiYXNlVmFsdWU6YW55ID0ge1xyXG4gICAgY3VycmVudFBhZ2U6IDAsXHJcbiAgICBkYXRhOiBbXSxcclxuICAgIGVuZF92YWx1ZTogMCxcclxuICAgIHN0YXJ0X3ZhbHVlOiAwLFxyXG4gICAgdG90YWxQYWdlOiAwLFxyXG4gICAgdG90YWxSZWNvcmRzOiAwXHJcbiAgICB9XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnMpIHtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgdGhpcy5lbnYgPSBjb25maWcuZW52Q29uZmlnO1xyXG5cclxuICAgIH1cclxuICAgfVxyXG5cclxuICB1cGRhdGVBc3Nlc3NtZW50KGlkOnN0cmluZyxwYXlsb2FkOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4odGhpcy5lbnYuYXNzZXNzbWVudEVucG9pbnQgKyAnYXNzZXNzbWVudC91cGRhdGUmaWQ9JytpZCwgcGF5bG9hZCwgeyBoZWFkZXJzIH0pO1xyXG4gICAgICBcclxuICB9XHJcbiAgYWRkQXNzZXNzbWVudChwYXlsb2FkOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICBjb25zb2xlLmxvZyhcImhlYWRlcnNcIixoZWFkZXJzKVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KHRoaXMuZW52LmFzc2Vzc21lbnRFbnBvaW50ICsgJ2Fzc2Vzc21lbnQvY3JlYXRlJywgcGF5bG9hZCwgeyBoZWFkZXJzIH0pO1xyXG4gICAgICBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2F0ZWdvcmllczogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oe30pO1xyXG4gIGNhdGVnb3JpZXNMaXN0RGF0YSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuY2F0ZWdvcmllcy5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBjYXRlZ29yaWVzTG9hZGVyOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG4gIGNhdGVnb3JpZXNMb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuY2F0ZWdvcmllc0xvYWRlci5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgZmV0Y2hDYXRlZ29yeShwYXlsb2FkOmFueSkge1xyXG4gICAgdGhpcy5jYXRlZ29yaWVzTG9hZGVyLm5leHQodHJ1ZSk7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgdGhpcy5odHRwLnBvc3QodGhpcy5lbnYuYXNzZXNzbWVudEVucG9pbnQgKyAnY2F0ZWdvcnkvbGlzdCcsIHBheWxvYWQse2hlYWRlcnN9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHsgdGhpcy5jYXRlZ29yaWVzLm5leHQocmVzKTsgdGhpcy5jYXRlZ29yaWVzTG9hZGVyLm5leHQoZmFsc2UpOyB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7Y29uc29sZS5sb2coJ2FzZGFzJyx0aGlzLmJhc2VWYWx1ZSk7IHRoaXMuY2F0ZWdvcmllcy5uZXh0KHRoaXMuYmFzZVZhbHVlKTsgdGhpcy5jYXRlZ29yaWVzTG9hZGVyLm5leHQoZmFsc2UpOyB9LFxyXG4gICAgfSlcclxuICB9XHJcbiAgcmVzZXRDYXRlZ29yeSgpe1xyXG4gICAgdGhpcy5jYXRlZ29yaWVzLm5leHQodGhpcy5iYXNlVmFsdWUpXHJcbiAgfVxyXG5cclxuICBnZXRBc3Nlc3NtZW50RGV0YWlscyhpZDpzdHJpbmcpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmVudi5hc3Nlc3NtZW50RW5wb2ludCArICdhc3Nlc3NtZW50L2dldEFzc2Vzc21lbnRJbkVkaXQmaWQ9JytpZCwge30se2hlYWRlcnN9KVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]],"parameters":[{"__symbol":2,"members":[]},{"__symbol":3,"members":[]},{"__symbol":4,"members":[]}]}],"updateAssessment":[{"__symbolic":"method"}],"addAssessment":[{"__symbolic":"method"}],"fetchCategory":[{"__symbolic":"method"}],"resetCategory":[{"__symbolic":"method"}],"getAssessmentDetails":[{"__symbolic":"method"}]}},"type":{"summaryKind":3,"type":{"reference":{"__symbol":0,"members":[]},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":2,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":3,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":true,"token":{"identifier":{"reference":{"__symbol":4,"members":[]}}}}],"lifecycleHooks":[]}}}],"symbols":[{"__symbol":0,"name":"AssessmentService","filePath":"./assessment.service"},{"__symbol":1,"name":"Optional","filePath":"@angular/core"},{"__symbol":2,"name":"HttpClient","filePath":"@angular/common/http/http"},{"__symbol":3,"name":"AuthService","filePath":"./auth.service"},{"__symbol":4,"name":"Configurations","filePath":"../configurations"}]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
2
2
|
import { Injectable, Optional } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
4
|
import { JwtHelperService } from '@auth0/angular-jwt';
|
|
4
5
|
import { Configurations } from '../configurations';
|
|
5
6
|
import { retry } from 'rxjs/operators';
|
|
@@ -12,6 +13,7 @@ export class AuthService {
|
|
|
12
13
|
constructor(http, decoder, config) {
|
|
13
14
|
this.http = http;
|
|
14
15
|
this.decoder = decoder;
|
|
16
|
+
this.previewPanel = new BehaviorSubject(false);
|
|
15
17
|
if (config) {
|
|
16
18
|
this.env = config.envConfig;
|
|
17
19
|
}
|
|
@@ -227,4 +229,4 @@ AuthService.ctorParameters = () => [
|
|
|
227
229
|
{ type: TokenDecoderService },
|
|
228
230
|
{ type: Configurations, decorators: [{ type: Optional }] }
|
|
229
231
|
];
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFLOUQsTUFBTSxPQUFPLFdBQVc7SUFJdEIsWUFBb0IsSUFBZ0IsRUFBUyxPQUEyQixFQUFjLE1BQXVCO1FBQXpGLFNBQUksR0FBSixJQUFJLENBQVk7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUN0RSxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUU3QjtJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekQsSUFBSSxVQUFVLENBQUM7UUFDZixZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMvRCxNQUFNLFNBQVMsR0FBRyxN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RSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7Ozs7WUE5TkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFWUSxVQUFVO1lBTVYsbUJBQW1CO1lBRm5CLGNBQWMsdUJBV3NELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEp3dEhlbHBlclNlcnZpY2UgfSBmcm9tICdAYXV0aDAvYW5ndWxhci1qd3QnO1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb25zJztcclxuaW1wb3J0IHsgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRva2VuRGVjb2RlclNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLWRlY29kZXIuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xyXG4gIHB1YmxpYyBlbnYgITogYW55O1xyXG4gXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxwcml2YXRlIGRlY29kZXI6VG9rZW5EZWNvZGVyU2VydmljZSwgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnMpIHtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgdGhpcy5lbnYgPSBjb25maWcuZW52Q29uZmlnO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVzZXJJZCgpIHtcclxuICAgIGNvbnN0IGhlbHBlciA9IG5ldyBKd3RIZWxwZXJTZXJ2aWNlKCk7XHJcbiAgICBjb25zdCBDVVJSRU5UX1VTRVIgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKTtcclxuICAgIGxldCBteVJhd1Rva2VuO1xyXG4gICAgQ1VSUkVOVF9VU0VSID8gKG15UmF3VG9rZW4gPSBDVVJSRU5UX1VTRVIpIDogKG15UmF3VG9rZW4gPSAnJyk7XHJcbiAgICBjb25zdCBpc0V4cGlyZWQgPSBoZWxwZXIuaXNUb2tlbkV4cGlyZWQobXlSYXdUb2tlbik7XHJcbiAgICBpZiAoaXNFeHBpcmVkID09PSBmYWxzZSkge1xyXG4gICAgICBjb25zdCB0b2tlbkluZm8gPSBoZWxwZXIuZGVjb2RlVG9rZW4obXlSYXdUb2tlbik7XHJcbiAgICAgIHJldHVybiB0b2tlbkluZm8uX2lkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckRldGFpbHMoKXtcclxuICAgIGNvbnN0IGhlbHBlciA9IG5ldyBKd3RIZWxwZXJTZXJ2aWNlKCk7XHJcbiAgICBjb25zdCBDVVJSRU5UX1VTRVIgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKTtcclxuICAgIGxldCBteVJhd1Rva2VuO1xyXG4gICAgQ1VSUkVOVF9VU0VSID8gKG15UmF3VG9rZW4gPSBDVVJSRU5UX1VTRVIpIDogKG15UmF3VG9rZW4gPSAnJyk7XHJcbiAgICBjb25zdCBpc0V4cGlyZWQgPSBoZWxwZXIuaXNUb2tlbkV4cGlyZWQobXlSYXdUb2tlbik7XHJcbiAgICBpZiAoaXNFeHBpcmVkID09PSBmYWxzZSkge1xyXG4gICAgICBsZXQgdG9rZW5JbmZvID0gaGVscGVyLmRlY29kZVRva2VuKG15UmF3VG9rZW4pO1xyXG4gICAgICB0b2tlbkluZm9bJ3VzZXInXSA9IHRoaXMuZGVjb2Rlci5nZXRVc2VyRGV0YWlsc0Zyb21Ub2tlbigpO1xyXG4gICAgICByZXR1cm4gdG9rZW5JbmZvO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuICBpc0tleUFkbWluKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuaXNWYWxpZFRva2VuKCkgJiYgT2JqZWN0LmtleXModGhpcy50b2tlbkluZm8oKSkubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy50b2tlbkluZm8oKS5rZXlBZG1pbjtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlzQWRtaW4oKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5pc1ZhbGlkVG9rZW4oKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy50b2tlbkluZm8oKS5hZG1pbjtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgaXNNYW5hZ2VyKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuaXNWYWxpZFRva2VuKCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudG9rZW5JbmZvKCkubWFuYWdlcjtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlzVXNlcigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmlzVmFsaWRUb2tlbigpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRva2VuSW5mbygpLnVzZXI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpc1ZhbGlkVG9rZW4oKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBoZWxwZXIgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gICAgY29uc3QgdXNlclRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICBpZiAodXNlclRva2VuKSB7XHJcbiAgICAgIGNvbnN0IENVUlJFTlRfVVNFUiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpO1xyXG4gICAgICBsZXQgbXlSYXdUb2tlbjtcclxuICAgICAgQ1VSUkVOVF9VU0VSID8gKG15UmF3VG9rZW4gPSBDVVJSRU5UX1VTRVIpIDogKG15UmF3VG9rZW4gPSAnJyk7XHJcbiAgICAgIGNvbnN0IGlzRXhwaXJlZCA9IGhlbHBlci5pc1Rva2VuRXhwaXJlZChteVJhd1Rva2VuKTtcclxuICAgICAgaWYgKGlzRXhwaXJlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXNFeHBpcmVkID09PSBmYWxzZSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICB0b2tlbkluZm8oKSB7XHJcbiAgICBjb25zdCBoZWxwZXIgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gICAgY29uc3QgdXNlclRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICBpZiAodXNlclRva2VuKSB7XHJcbiAgICAgIGNvbnN0IENVUlJFTlRfVVNFUiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpO1xyXG4gICAgICBsZXQgbXlSYXdUb2tlbjtcclxuICAgICAgQ1VSUkVOVF9VU0VSID8gKG15UmF3VG9rZW4gPSBDVVJSRU5UX1VTRVIpIDogKG15UmF3VG9rZW4gPSAnJyk7XHJcbiAgICAgIGNvbnN0IHRva2VuSW5mbyA9IGhlbHBlci5kZWNvZGVUb2tlbihteVJhd1Rva2VuKTtcclxuICAgICAgcmV0dXJuIHRoaXMuZGVjb2Rlci5nZXRVc2VyRGV0YWlsc0Zyb21Ub2tlbigpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHt9O1xyXG4gIH1cclxuXHJcbiAgZ2V0QXV0aG9yaXphdGlvblRva2VuKCk6IGFueSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy5pc1ZhbGlkVG9rZW4oKSkge1xyXG4gICAgICAgIGNvbnN0IHRrOiBzdHJpbmcgfCBudWxsID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICAgICAgaWYgKHRrKSB7XHJcbiAgICAgICAgICBjb25zdCBteVJhd1Rva2VuID0gSlNPTi5wYXJzZSh0aykudG9rZW47XHJcbiAgICAgICAgICByZXR1cm4gbXlSYXdUb2tlbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH0gY2F0Y2ggKGVycikge31cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGdldFVzZXJUaW1lWm9uZSgpOiBzdHJpbmcge1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKHRoaXMuaXNWYWxpZFRva2VuKCkpIHtcclxuICAgICAgICBjb25zdCBoZWxwZXIgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gICAgICAgIGNvbnN0IHRrOiBzdHJpbmcgfCBudWxsID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICAgICAgaWYgKHRrKSB7XHJcbiAgICAgICAgICBjb25zdCBteVJhd1Rva2VuID0gSlNPTi5wYXJzZSh0aykudG9rZW47XHJcbiAgICAgICAgICBjb25zdCB0b2tlbkluZm8gPSBoZWxwZXIuZGVjb2RlVG9rZW4obXlSYXdUb2tlbik7XHJcbiAgICAgICAgICBjb25zdCB1c2VySW5mbyA9IHRoaXMuZGVjb2Rlci5nZXRVc2VyRGV0YWlsc0Zyb21Ub2tlbigpO1xyXG4gICAgICAgICAgcmV0dXJuIHVzZXJJbmZvPy50aW1lem9uZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH0gY2F0Y2ggKGVycikge31cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGdldE9yZ2FuaXphdGlvbklkKCk6IG51bWJlciB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy5pc1ZhbGlkVG9rZW4oKSkge1xyXG4gICAgICAgIGNvbnN0IGhlbHBlciA9IG5ldyBKd3RIZWxwZXJTZXJ2aWNlKCk7XHJcbiAgICAgICAgY29uc3QgdGs6IHN0cmluZyB8IG51bGwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKTtcclxuICAgICAgICBpZiAodGspIHtcclxuICAgICAgICAgIGNvbnN0IG15UmF3VG9rZW4gPSBKU09OLnBhcnNlKHRrKS50b2tlbjtcclxuICAgICAgICAgIGNvbnN0IHRva2VuSW5mbyA9IGhlbHBlci5kZWNvZGVUb2tlbihteVJhd1Rva2VuKTtcclxuICAgICAgICAgIGNvbnN0IHVzZXJJbmZvID0gdGhpcy5kZWNvZGVyLmdldFVzZXJEZXRhaWxzRnJvbVRva2VuKCk7XHJcbiAgICAgICAgICByZXR1cm4gdXNlckluZm8ub3JnYW5pc2F0aW9uX2lkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIC0xO1xyXG4gICAgfSBjYXRjaCAoZXJyKSB7fVxyXG4gICAgcmV0dXJuIC0xO1xyXG4gIH1cclxuXHJcbiAgZ2V0TWVtYmVySWQoKTogbnVtYmVyIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICh0aGlzLmlzVmFsaWRUb2tlbigpKSB7XHJcbiAgICAgICAgY29uc3QgaGVscGVyID0gbmV3IEp3dEhlbHBlclNlcnZpY2UoKTtcclxuICAgICAgICBjb25zdCB0azogc3RyaW5nIHwgbnVsbCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpO1xyXG4gICAgICAgIGlmICh0aykge1xyXG4gICAgICAgICAgY29uc3QgbXlSYXdUb2tlbiA9IEpTT04ucGFyc2UodGspLnRva2VuO1xyXG4gICAgICAgICAgY29uc3QgdG9rZW5JbmZvID0gaGVscGVyLmRlY29kZVRva2VuKG15UmF3VG9rZW4pO1xyXG4gICAgICAgICAgY29uc3QgdXNlckluZm8gPSB0aGlzLmRlY29kZXIuZ2V0VXNlckRldGFpbHNGcm9tVG9rZW4oKTtcclxuICAgICAgICAgIHJldHVybiB1c2VySW5mbz8uaWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAtMTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gLTE7XHJcbiAgICB9IGNhdGNoIChlcnIpIHt9XHJcbiAgICByZXR1cm4gLTE7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICBjb25zdCBwcmltYXJ5VG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncHJpbWFyeXVzZXInKTtcclxuICAgIGlmIChwcmltYXJ5VG9rZW4gIT0gbnVsbCkge1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY3VycmVudFVzZXInLCBwcmltYXJ5VG9rZW4pO1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncHJpbWFyeXVzZXInKTtcclxuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmVudi5hcHBVcmw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY3VycmVudFVzZXInKTtcclxuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmVudi5hcHBVcmw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1Rva2VuRXhwaXJlZCgpIHtcclxuICAgIGNvbnN0IGhlbHBlciA9IG5ldyBKd3RIZWxwZXJTZXJ2aWNlKCk7XHJcbiAgICBjb25zdCB1c2VyVG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKTtcclxuICAgIGlmICh1c2VyVG9rZW4gIT09IG51bGwpIHtcclxuICAgICAgY29uc3QgbXlSYXdUb2tlbiA9IEpTT04ucGFyc2UodXNlclRva2VuKS50b2tlbjtcclxuICAgICAgY29uc3QgaXNFeHBpcmVkID0gaGVscGVyLmlzVG9rZW5FeHBpcmVkKG15UmF3VG9rZW4pO1xyXG4gICAgICByZXR1cm4gaXNFeHBpcmVkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaXNMb2dnZWRJbigpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGhlbHBlciA9IG5ldyBKd3RIZWxwZXJTZXJ2aWNlKCk7XHJcbiAgICBjb25zdCB1c2VyVG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKTtcclxuICAgIGlmICh1c2VyVG9rZW4pIHtcclxuICAgICAgY29uc3QgbXlSYXdUb2tlbiA9IEpTT04ucGFyc2UodXNlclRva2VuKS50b2tlbjtcclxuICAgICAgY29uc3QgaXNFeHBpcmVkID0gaGVscGVyLmlzVG9rZW5FeHBpcmVkKG15UmF3VG9rZW4pO1xyXG4gICAgICBpZiAoaXNFeHBpcmVkID09PSBmYWxzZSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpc0V4cGlyZWQgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLmxvZ291dCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5lbnYuYXBwVXJsICsgJyMvc2lnbmluP3JlZGlyZWN0VVJMPSAnICsgZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmVudi5hcHBVcmwgKyAnIy9zaWduaW4/cmVkaXJlY3RVUkw9ICcgKyBlbmNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLmhyZWYpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3JnYW5pemF0aW9uRGV0YWlscygpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAnb3JnRGV0YWlscyZpZD0nICsgdGhpcy5nZXRPcmdhbml6YXRpb25JZCgpLHsgaGVhZGVycyB9KS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJJbmZvKCl7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ3VzZXJzJmlkPScgKyB0aGlzLnVzZXJJZCgpLCB7IGhlYWRlcnMgfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfSAgXHJcblxyXG4gIGdldFN1YnNjcmlwdGlvbkRldGFpbHMoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ3N1YnNjcmlwdGlvbkxpc3QnLCB7IGhlYWRlcnMgfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQUs5RCxNQUFNLE9BQU8sV0FBVztJQUl0QixZQUFvQixJQUFnQixFQUFTLE9BQTJCLEVBQWMsTUFBdUI7UUFBekYsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBRGpFLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFeEQsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FFN0I7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sTUFBTSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELElBQUksVUFBVSxDQUFDO1FBQ2YsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFD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QU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsa0JBQWtCLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDOzs7O1lBOU5GLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBVlEsVUFBVTtZQU1WLG1CQUFtQjtZQUZuQixjQUFjLHVCQVdzRCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBKd3RIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQGF1dGgwL2FuZ3VsYXItand0JztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XHJcbmltcG9ydCB7IHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUb2tlbkRlY29kZXJTZXJ2aWNlIH0gZnJvbSAnLi90b2tlbi1kZWNvZGVyLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcclxuICBwdWJsaWMgZW52ICE6IGFueTtcclxuIFxyXG4gIHB1YmxpYyBwcmV2aWV3UGFuZWwgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQscHJpdmF0ZSBkZWNvZGVyOlRva2VuRGVjb2RlclNlcnZpY2UsIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zKSB7XHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuZW52ID0gY29uZmlnLmVudkNvbmZpZztcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1c2VySWQoKSB7XHJcbiAgICBjb25zdCBoZWxwZXIgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gICAgY29uc3QgQ1VSUkVOVF9VU0VSID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICBsZXQgbXlSYXdUb2tlbjtcclxuICAgIENVUlJFTlRfVVNFUiA/IChteVJhd1Rva2VuID0gQ1VSUkVOVF9VU0VSKSA6IChteVJhd1Rva2VuID0gJycpO1xyXG4gICAgY29uc3QgaXNFeHBpcmVkID0gaGVscGVyLmlzVG9rZW5FeHBpcmVkKG15UmF3VG9rZW4pO1xyXG4gICAgaWYgKGlzRXhwaXJlZCA9PT0gZmFsc2UpIHtcclxuICAgICAgY29uc3QgdG9rZW5JbmZvID0gaGVscGVyLmRlY29kZVRva2VuKG15UmF3VG9rZW4pO1xyXG4gICAgICByZXR1cm4gdG9rZW5JbmZvLl9pZDtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGdldFVzZXJEZXRhaWxzKCl7XHJcbiAgICBjb25zdCBoZWxwZXIgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gICAgY29uc3QgQ1VSUkVOVF9VU0VSID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICBsZXQgbXlSYXdUb2tlbjtcclxuICAgIENVUlJFTlRfVVNFUiA/IChteVJhd1Rva2VuID0gQ1VSUkVOVF9VU0VSKSA6IChteVJhd1Rva2VuID0gJycpO1xyXG4gICAgY29uc3QgaXNFeHBpcmVkID0gaGVscGVyLmlzVG9rZW5FeHBpcmVkKG15UmF3VG9rZW4pO1xyXG4gICAgaWYgKGlzRXhwaXJlZCA9PT0gZmFsc2UpIHtcclxuICAgICAgbGV0IHRva2VuSW5mbyA9IGhlbHBlci5kZWNvZGVUb2tlbihteVJhd1Rva2VuKTtcclxuICAgICAgdG9rZW5JbmZvWyd1c2VyJ10gPSB0aGlzLmRlY29kZXIuZ2V0VXNlckRldGFpbHNGcm9tVG9rZW4oKTtcclxuICAgICAgcmV0dXJuIHRva2VuSW5mbztcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcbiAgaXNLZXlBZG1pbigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmlzVmFsaWRUb2tlbigpICYmIE9iamVjdC5rZXlzKHRoaXMudG9rZW5JbmZvKCkpLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMudG9rZW5JbmZvKCkua2V5QWRtaW47XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpc0FkbWluKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuaXNWYWxpZFRva2VuKCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudG9rZW5JbmZvKCkuYWRtaW47XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlzTWFuYWdlcigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmlzVmFsaWRUb2tlbigpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRva2VuSW5mbygpLm1hbmFnZXI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpc1VzZXIoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5pc1ZhbGlkVG9rZW4oKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy50b2tlbkluZm8oKS51c2VyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaXNWYWxpZFRva2VuKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgaGVscGVyID0gbmV3IEp3dEhlbHBlclNlcnZpY2UoKTtcclxuICAgIGNvbnN0IHVzZXJUb2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpO1xyXG4gICAgaWYgKHVzZXJUb2tlbikge1xyXG4gICAgICBjb25zdCBDVVJSRU5UX1VTRVIgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKTtcclxuICAgICAgbGV0IG15UmF3VG9rZW47XHJcbiAgICAgIENVUlJFTlRfVVNFUiA/IChteVJhd1Rva2VuID0gQ1VSUkVOVF9VU0VSKSA6IChteVJhd1Rva2VuID0gJycpO1xyXG4gICAgICBjb25zdCBpc0V4cGlyZWQgPSBoZWxwZXIuaXNUb2tlbkV4cGlyZWQobXlSYXdUb2tlbik7XHJcbiAgICAgIGlmIChpc0V4cGlyZWQgPT09IHRydWUpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzRXhwaXJlZCA9PT0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgdG9rZW5JbmZvKCkge1xyXG4gICAgY29uc3QgaGVscGVyID0gbmV3IEp3dEhlbHBlclNlcnZpY2UoKTtcclxuICAgIGNvbnN0IHVzZXJUb2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpO1xyXG4gICAgaWYgKHVzZXJUb2tlbikge1xyXG4gICAgICBjb25zdCBDVVJSRU5UX1VTRVIgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKTtcclxuICAgICAgbGV0IG15UmF3VG9rZW47XHJcbiAgICAgIENVUlJFTlRfVVNFUiA/IChteVJhd1Rva2VuID0gQ1VSUkVOVF9VU0VSKSA6IChteVJhd1Rva2VuID0gJycpO1xyXG4gICAgICBjb25zdCB0b2tlbkluZm8gPSBoZWxwZXIuZGVjb2RlVG9rZW4obXlSYXdUb2tlbik7XHJcbiAgICAgIHJldHVybiB0aGlzLmRlY29kZXIuZ2V0VXNlckRldGFpbHNGcm9tVG9rZW4oKTtcclxuICAgIH1cclxuICAgIHJldHVybiB7fTtcclxuICB9XHJcblxyXG4gIGdldEF1dGhvcml6YXRpb25Ub2tlbigpOiBhbnkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKHRoaXMuaXNWYWxpZFRva2VuKCkpIHtcclxuICAgICAgICBjb25zdCB0azogc3RyaW5nIHwgbnVsbCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpO1xyXG4gICAgICAgIGlmICh0aykge1xyXG4gICAgICAgICAgY29uc3QgbXlSYXdUb2tlbiA9IEpTT04ucGFyc2UodGspLnRva2VuO1xyXG4gICAgICAgICAgcmV0dXJuIG15UmF3VG9rZW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9IGNhdGNoIChlcnIpIHt9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyVGltZVpvbmUoKTogc3RyaW5nIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICh0aGlzLmlzVmFsaWRUb2tlbigpKSB7XHJcbiAgICAgICAgY29uc3QgaGVscGVyID0gbmV3IEp3dEhlbHBlclNlcnZpY2UoKTtcclxuICAgICAgICBjb25zdCB0azogc3RyaW5nIHwgbnVsbCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpO1xyXG4gICAgICAgIGlmICh0aykge1xyXG4gICAgICAgICAgY29uc3QgbXlSYXdUb2tlbiA9IEpTT04ucGFyc2UodGspLnRva2VuO1xyXG4gICAgICAgICAgY29uc3QgdG9rZW5JbmZvID0gaGVscGVyLmRlY29kZVRva2VuKG15UmF3VG9rZW4pO1xyXG4gICAgICAgICAgY29uc3QgdXNlckluZm8gPSB0aGlzLmRlY29kZXIuZ2V0VXNlckRldGFpbHNGcm9tVG9rZW4oKTtcclxuICAgICAgICAgIHJldHVybiB1c2VySW5mbz8udGltZXpvbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9IGNhdGNoIChlcnIpIHt9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBnZXRPcmdhbml6YXRpb25JZCgpOiBudW1iZXIge1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKHRoaXMuaXNWYWxpZFRva2VuKCkpIHtcclxuICAgICAgICBjb25zdCBoZWxwZXIgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gICAgICAgIGNvbnN0IHRrOiBzdHJpbmcgfCBudWxsID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICAgICAgaWYgKHRrKSB7XHJcbiAgICAgICAgICBjb25zdCBteVJhd1Rva2VuID0gSlNPTi5wYXJzZSh0aykudG9rZW47XHJcbiAgICAgICAgICBjb25zdCB0b2tlbkluZm8gPSBoZWxwZXIuZGVjb2RlVG9rZW4obXlSYXdUb2tlbik7XHJcbiAgICAgICAgICBjb25zdCB1c2VySW5mbyA9IHRoaXMuZGVjb2Rlci5nZXRVc2VyRGV0YWlsc0Zyb21Ub2tlbigpO1xyXG4gICAgICAgICAgcmV0dXJuIHVzZXJJbmZvLm9yZ2FuaXNhdGlvbl9pZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAtMTtcclxuICAgIH0gY2F0Y2ggKGVycikge31cclxuICAgIHJldHVybiAtMTtcclxuICB9XHJcblxyXG4gIGdldE1lbWJlcklkKCk6IG51bWJlciB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy5pc1ZhbGlkVG9rZW4oKSkge1xyXG4gICAgICAgIGNvbnN0IGhlbHBlciA9IG5ldyBKd3RIZWxwZXJTZXJ2aWNlKCk7XHJcbiAgICAgICAgY29uc3QgdGs6IHN0cmluZyB8IG51bGwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKTtcclxuICAgICAgICBpZiAodGspIHtcclxuICAgICAgICAgIGNvbnN0IG15UmF3VG9rZW4gPSBKU09OLnBhcnNlKHRrKS50b2tlbjtcclxuICAgICAgICAgIGNvbnN0IHRva2VuSW5mbyA9IGhlbHBlci5kZWNvZGVUb2tlbihteVJhd1Rva2VuKTtcclxuICAgICAgICAgIGNvbnN0IHVzZXJJbmZvID0gdGhpcy5kZWNvZGVyLmdldFVzZXJEZXRhaWxzRnJvbVRva2VuKCk7XHJcbiAgICAgICAgICByZXR1cm4gdXNlckluZm8/LmlkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIC0xO1xyXG4gICAgfSBjYXRjaCAoZXJyKSB7fVxyXG4gICAgcmV0dXJuIC0xO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCkge1xyXG4gICAgY29uc3QgcHJpbWFyeVRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3ByaW1hcnl1c2VyJyk7XHJcbiAgICBpZiAocHJpbWFyeVRva2VuICE9IG51bGwpIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2N1cnJlbnRVc2VyJywgcHJpbWFyeVRva2VuKTtcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3ByaW1hcnl1c2VyJyk7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5lbnYuYXBwVXJsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5lbnYuYXBwVXJsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNUb2tlbkV4cGlyZWQoKSB7XHJcbiAgICBjb25zdCBoZWxwZXIgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gICAgY29uc3QgdXNlclRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICBpZiAodXNlclRva2VuICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IG15UmF3VG9rZW4gPSBKU09OLnBhcnNlKHVzZXJUb2tlbikudG9rZW47XHJcbiAgICAgIGNvbnN0IGlzRXhwaXJlZCA9IGhlbHBlci5pc1Rva2VuRXhwaXJlZChteVJhd1Rva2VuKTtcclxuICAgICAgcmV0dXJuIGlzRXhwaXJlZDtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlzTG9nZ2VkSW4oKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBoZWxwZXIgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gICAgY29uc3QgdXNlclRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICBpZiAodXNlclRva2VuKSB7XHJcbiAgICAgIGNvbnN0IG15UmF3VG9rZW4gPSBKU09OLnBhcnNlKHVzZXJUb2tlbikudG9rZW47XHJcbiAgICAgIGNvbnN0IGlzRXhwaXJlZCA9IGhlbHBlci5pc1Rva2VuRXhwaXJlZChteVJhd1Rva2VuKTtcclxuICAgICAgaWYgKGlzRXhwaXJlZCA9PT0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXNFeHBpcmVkID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5sb2dvdXQoKTtcclxuICAgICAgfVxyXG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuZW52LmFwcFVybCArICcjL3NpZ25pbj9yZWRpcmVjdFVSTD0gJyArIGVuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uaHJlZik7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5lbnYuYXBwVXJsICsgJyMvc2lnbmluP3JlZGlyZWN0VVJMPSAnICsgZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldE9yZ2FuaXphdGlvbkRldGFpbHMoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ29yZ0RldGFpbHMmaWQ9JyArIHRoaXMuZ2V0T3JnYW5pemF0aW9uSWQoKSx7IGhlYWRlcnMgfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VySW5mbygpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICd1c2VycyZpZD0nICsgdGhpcy51c2VySWQoKSwgeyBoZWFkZXJzIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH0gIFxyXG5cclxuICBnZXRTdWJzY3JpcHRpb25EZXRhaWxzKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdzdWJzY3JpcHRpb25MaXN0JywgeyBoZWFkZXJzIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|