vcomply-workflow-engine 1.0.2 → 1.1.2
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 +38 -13
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/log-an-issue/log-an-issue.component.js +17 -6
- package/esm2015/lib/log-an-issue/log-an-issue.component.ngfactory.js +108 -100
- package/esm2015/lib/log-an-issue/log-an-issue.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.js +14 -4
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ngfactory.js +46 -38
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.js +2 -2
- package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.ngfactory.js +5 -4
- package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js +3 -3
- package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.ngfactory.js +2 -2
- package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
- package/esm2015/lib/workflow-services/log-issue.service.js +2 -3
- package/fesm2015/vcomply-workflow-engine.js +33 -13
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/lib/log-an-issue/log-an-issue.component.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.d.ts +3 -1
- package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.d.ts +1 -1
- package/package.json +1 -1
- package/vcomply-workflow-engine.metadata.json +1 -1
package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js
CHANGED
|
@@ -17,7 +17,7 @@ export class ImportAnAssessmentComponent {
|
|
|
17
17
|
this.errorMessage = "invalid file error";
|
|
18
18
|
this.downloadStatus = 'NOT_DOWNLOADING';
|
|
19
19
|
this.downloadPercent = 0;
|
|
20
|
-
this.
|
|
20
|
+
this.smileyMessageAction = `You're All Set!`;
|
|
21
21
|
this.actionButtons = [
|
|
22
22
|
{ buttonText: 'Import More Assessments', class: 'white-btn', id: smileyActions.IMPORT_MORE },
|
|
23
23
|
{ buttonText: 'View Assessments', class: 'blue-btn', id: smileyActions.VIEW_ASSESSMENTS },
|
|
@@ -541,7 +541,7 @@ export class ImportAnAssessmentComponent {
|
|
|
541
541
|
ImportAnAssessmentComponent.decorators = [
|
|
542
542
|
{ type: Component, args: [{
|
|
543
543
|
selector: 'app-import-an-assessment',
|
|
544
|
-
template: "<div class=\"import-an-assessment\" [attr.id]=\"'scrollReference'\">\r\n <!-- main container starts here -->\r\n <div class=\"import-an-assessment-body\">\r\n <div class=\"import-an-assessment-container\">\r\n <div class=\"image\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/spreadsheet-multiple-category.svg\"\r\n alt=\"\" />\r\n </div>\r\n\r\n <h4>You can import an assessment in just two easy steps:</h4>\r\n <ul class=\"list\">\r\n <li>Download the template and fill in the details.</li>\r\n <li>Upload the .xlsx file and you\u2019re good to go!</li>\r\n </ul>\r\n\r\n <button class=\"download\" *ngIf=\"downloadStatus === 'NOT_DOWNLOADING'\" (click)=\"downloadTemplate()\"\r\n type=\"button\"><i class=\"icons\"></i> Download Template</button>\r\n <div class=\"bulk-btn-progress\" *ngIf=\"downloadStatus === 'DOWNLOADING'\">\r\n Download in Progress\r\n <app-line-loader [loaderHeight]=\"'2'\"></app-line-loader>\r\n </div>\r\n <ng-container *ngIf=\"downloadStatus === 'DOWNLOADED'\">\r\n <div class=\"bulk-btn-progress\"><i class=\"icons\"></i>Download Complete</div>\r\n <div class=\"bulk-btn-again\">\r\n Is the file not downloaded?\r\n <button (click)=\"downloadTemplate()\">Retry Download</button>\r\n </div>\r\n </ng-container>\r\n <p class=\"error-message\" *ngIf=\"isWrongFormat\">{{errorMessage}}</p>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<app-loader-inline *ngIf=\"isShowLoader\"></app-loader-inline>\r\n\r\n<input type=\"file\" [(ngModel)]=\"fileValue\" id=\"iaa-file-input\" accept=\".xlsx\" class=\"hidden-input\" onclick=\"this.value = null\"\r\n (change)=\"uploadFile($event)\" />\r\n\r\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"
|
|
544
|
+
template: "<div class=\"import-an-assessment\" [attr.id]=\"'scrollReference'\">\r\n <!-- main container starts here -->\r\n <div class=\"import-an-assessment-body\">\r\n <div class=\"import-an-assessment-container\">\r\n <div class=\"image\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/spreadsheet-multiple-category.svg\"\r\n alt=\"\" />\r\n </div>\r\n\r\n <h4>You can import an assessment in just two easy steps:</h4>\r\n <ul class=\"list\">\r\n <li>Download the template and fill in the details.</li>\r\n <li>Upload the .xlsx file and you\u2019re good to go!</li>\r\n </ul>\r\n\r\n <button class=\"download\" *ngIf=\"downloadStatus === 'NOT_DOWNLOADING'\" (click)=\"downloadTemplate()\"\r\n type=\"button\"><i class=\"icons\"></i> Download Template</button>\r\n <div class=\"bulk-btn-progress\" *ngIf=\"downloadStatus === 'DOWNLOADING'\">\r\n Download in Progress\r\n <app-line-loader [loaderHeight]=\"'2'\"></app-line-loader>\r\n </div>\r\n <ng-container *ngIf=\"downloadStatus === 'DOWNLOADED'\">\r\n <div class=\"bulk-btn-progress\"><i class=\"icons\"></i>Download Complete</div>\r\n <div class=\"bulk-btn-again\">\r\n Is the file not downloaded?\r\n <button (click)=\"downloadTemplate()\">Retry Download</button>\r\n </div>\r\n </ng-container>\r\n <p class=\"error-message\" *ngIf=\"isWrongFormat\">{{errorMessage}}</p>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<app-loader-inline *ngIf=\"isShowLoader\"></app-loader-inline>\r\n\r\n<input type=\"file\" [(ngModel)]=\"fileValue\" id=\"iaa-file-input\" accept=\".xlsx\" class=\"hidden-input\" onclick=\"this.value = null\"\r\n (change)=\"uploadFile($event)\" />\r\n\r\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessageAction\" [actionButtons]=\"actionButtons\"\r\n (action)=\"smileyAction($event)\" (closeSmiley)=\"closeSmiley($event)\"></app-smiley-dialog-inline>\r\n\r\n<div class=\"import\" *ngIf=\"isUploaded\">\r\n <app-create-assessment-container #editor [openPortal]=\"'ASSESSMENT_IMPORT'\" (postAssessment)=\"postAssessment($event)\" (setIsUploaded)=\"setIsUploaded($event)\"\r\n [assessmentJSON]=\"convertedData\">\r\n </app-create-assessment-container>\r\n</div>\r\n",
|
|
545
545
|
styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::ng-deep .import-an-assessment{background:#fff;position:relative;z-index:1}@media only screen and (min-width:1920px){::ng-deep .import-an-assessment{height:calc(100vh - 200px);display:flex;align-items:center}}::ng-deep .import-an-assessment-body{padding:0;display:block}::ng-deep .import-an-assessment-container{display:block;text-align:center}::ng-deep .import-an-assessment-container .image{width:300px;margin:0 auto 24px}::ng-deep .import-an-assessment-container h4{font-size:20px;line-height:30px;margin:0 0 20px;font-weight:500}::ng-deep .import-an-assessment-container ul.list{padding:0;margin:0 0 40px;display:block;counter-reset:my-awesome-counter}::ng-deep .import-an-assessment-container ul.list li{text-align:left;color:#747576;font-size:15px;line-height:38px;font-weight:400;list-style:none;counter-increment:my-awesome-counter;background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:0 12px}::ng-deep .import-an-assessment-container ul.list li:before{content:counter(my-awesome-counter) \". \"}::ng-deep .import-an-assessment-container ul.list li+li{margin-top:4px}::ng-deep .import-an-assessment-container button.download{background:#fff;height:36px;border-radius:2px;cursor:pointer;border:1px solid #1e5dd3;color:#1e5dd3;text-transform:uppercase;padding:0 30px;font-weight:500;font-size:11px}::ng-deep .import-an-assessment-container .bulk-btn-progress{background:#f8f8f8;height:36px;border-radius:2px;cursor:pointer;border:1px solid #f8f8f8;color:#747576;text-transform:uppercase;padding:0 30px;font-weight:500;font-size:11px;position:relative;display:inline-block;line-height:34px}::ng-deep .import-an-assessment-container .bulk-btn-progress i{color:#34aa44;font-size:14px;float:left;position:relative;margin:0 10px 0 0;font-weight:400}::ng-deep .import-an-assessment-container .bulk-btn-progress span.progress{height:3px;position:absolute;bottom:0;left:0;width:100%;background:#1e5dd3}::ng-deep .import-an-assessment-container .bulk-btn-again{color:#161b2f;font-size:11px;margin-top:10px}::ng-deep .import-an-assessment-container .bulk-btn-again button{background:transparent;border:none;padding:0;font-size:11px;color:#1e5dd3;font-weight:500;text-decoration:underline;cursor:pointer;text-transform:uppercase;display:inline-block}.hidden-input{opacity:0}.import{position:fixed;top:0;right:30px;bottom:0;left:0;z-index:9;width:calc(100vw - 30px)}", "@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-left-color:#707070;border-bottom:1px solid #707070;border-right:1px solid #707070;border-top-color:#707070;content:\"\";display:inline-block;right:15px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:116px}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 24px;display:flex;align-items:center}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px;margin-right:20px}::ng-deep .vx-form-group .tab-group .upload-file .browse{display:flex;align-items:center;justify-content:center;width:calc(100% - 100px);text-align:center}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;top:0;margin:0;padding:0;right:0;bottom:0;left:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:12px \u200B24px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:11px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;width:100%;margin-top:4px;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group .input,::ng-deep .vx-form-group input[type=text]{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group .input::-moz-placeholder,::ng-deep .vx-form-group input[type=text]::-moz-placeholder{color:#747576}::ng-deep .vx-form-group .input:-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder{color:#747576}::ng-deep .vx-form-group .input::placeholder,::ng-deep .vx-form-group input[type=text]::placeholder{color:#747576}::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group .input:hover,::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group input[type=text]:hover{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .input.error,::ng-deep .vx-form-group input[type=text].error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group .input.error:focus,::ng-deep .vx-form-group input[type=text].error:focus{box-shadow:0 0 5px rgba(211,30,30,.27)}::ng-deep .vx-form-group .input:disabled,::ng-deep .vx-form-group input[type=text]:disabled{background:#f1f1f1;cursor:not-allowed}::ng-deep .vx-form-group .input:disabled:hover,::ng-deep .vx-form-group input[type=text]:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group .input span.text,::ng-deep .vx-form-group input[type=text] span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group .input .input-group,::ng-deep .vx-form-group input[type=text] .input-group{display:flex;align-items:center}::ng-deep .vx-form-group .input .input-group.counter,::ng-deep .vx-form-group input[type=text] .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group .input .input-group.counter button,::ng-deep .vx-form-group input[type=text] .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group .input .input-group.counter input,::ng-deep .vx-form-group input[type=text] .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}::ng-deep .vx-form-group .input+.file-list,::ng-deep .vx-form-group input[type=text]+.file-list{margin-top:8px}::ng-deep .vx-form-group .input::-moz-placeholder,::ng-deep .vx-form-group input[type=text]::-moz-placeholder{font-size:13px}::ng-deep .vx-form-group .input::placeholder,::ng-deep .vx-form-group input[type=text]::placeholder{font-size:13px}::ng-deep .vx-form-group .input:-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .input::-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{width:100%;position:relative;z-index:1;margin:0 4px 0 0}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:2px 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:1px solid #f1f1f1;border-radius:2px;background:#fff;outline:none;cursor:pointer;display:block;height:24px;padding:0 5px 0 4px;font-size:11px;font-weight:500;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd3;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group marx-editor{margin-top:8px;display:block}::ng-deep .vx-form-group marx-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group marx-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none){::ng-deep .vx-form-group marx-editor .editor-container .editable-block:before{opacity:.72}}}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:22px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group marx-editor .editor-container:focus-within{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:hover{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:#fff;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::-moz-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:16px;position:absolute;left:12px;top:0;color:#bcbcbc;font-size:16px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:208px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:30px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 0 #34aa44;-webkit-animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;-webkit-animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;-webkit-animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.hide{opacity:0;transition:all .2s ease-in-out}.form-group-row.disabled{pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;top:2px;right:0;bottom:0;left:2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group input{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}@-webkit-keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes strokeCheck{to{stroke-dashoffset:0}}@-webkit-keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}.action-list{width:220px}.action-list ul{padding:0;margin:0;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.action-list ul.action-item{display:block}.action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.action-list ul.action-item li button i{font-size:17px;margin-right:10px;color:#1c5bd1}.action-list ul.action-item li button:hover{background:#f3f3f3}.action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.action-list ul.action-item li .avatar-card.within-con{display:block}.action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#4681ef;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.action-list ul.action-item li .avatar-card .avatar img{width:100%}.action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;-moz-text-align-last:left;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#1c5bd1;cursor:pointer;margin-right:5px}.action-list ul.action-item li .avatar-card.no-image{display:block}.action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.action-list ul.action-item li .chip-item i{margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}.action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.action-list ul.action-item li .chip-item span.id{font-size:9px}.action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.action-list ul.action-item li:first-child{-webkit-animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(2){-webkit-animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(3){-webkit-animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(4){-webkit-animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(5){-webkit-animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(6){-webkit-animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(7){-webkit-animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(8){-webkit-animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(9){-webkit-animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(10){-webkit-animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@-webkit-keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@-webkit-keyframes rotate{to{transform:rotate(1turn)}}@keyframes rotate{to{transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;top:0;right:0;bottom:0;left:0}dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}dp-date-picker input:focus{outline:none}dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}dp-date-picker .dp-popup dp-day-calendar,dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}dp-date-picker .dp-popup dp-day-calendar button,dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}dp-date-picker .dp-open+div{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@-webkit-keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;position:relative;margin-right:5px;border:1px solid #747576;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:20px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.css,::ng-deep span.file.less,::ng-deep span.file.scss,::ng-deep span.file.xls,::ng-deep span.file.xlsx{border-color:#34aa44}::ng-deep span.file.css:before,::ng-deep span.file.less:before,::ng-deep span.file.scss:before,::ng-deep span.file.xls:before,::ng-deep span.file.xlsx:before{background:linear-gradient(45deg,#34aa44,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.css:after,::ng-deep span.file.less:after,::ng-deep span.file.scss:after,::ng-deep span.file.xls:after,::ng-deep span.file.xlsx:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.css .format,::ng-deep span.file.less .format,::ng-deep span.file.scss .format,::ng-deep span.file.xls .format,::ng-deep span.file.xlsx .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpeg,::ng-deep span.file.jpg,::ng-deep span.file.png,::ng-deep span.file.ppt{border-color:#f6882f}::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.jpg:before,::ng-deep span.file.png:before,::ng-deep span.file.ppt:before{background:linear-gradient(45deg,#f6882f,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.jpg:after,::ng-deep span.file.png:after,::ng-deep span.file.ppt:after{border-color:#f6882f}::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.jpg .format,::ng-deep span.file.png .format,::ng-deep span.file.ppt .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:rgba(0,0,0,.05)!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:14px solid #f1f1f1;border-bottom:12px solid transparent;border-top:12px solid transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:14px solid #f1f1f1;border-bottom:12px solid transparent;border-top:12px solid transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:calc(224px / 2 - 20px)!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}"]
|
|
546
546
|
},] }
|
|
547
547
|
];
|
|
@@ -554,4 +554,4 @@ ImportAnAssessmentComponent.propDecorators = {
|
|
|
554
554
|
closeWorkflow: [{ type: Output }],
|
|
555
555
|
disconnectRefresh: [{ type: Output }]
|
|
556
556
|
};
|
|
557
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFJL0UsTUFBTSxhQUFhLEdBQUcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLENBQUE7QUFRMUYsTUFBTSxPQUFPLDJCQUEyQjtJQXFDdEMsWUFDVSxJQUFpQixFQUNsQixpQkFBb0M7UUFEbkMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBckNuQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUd0QixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixpQkFBWSxHQUFHLG9CQUFvQixDQUFBO1FBQ25DLG1CQUFjLEdBQVcsaUJBQWlCLENBQUM7UUFDM0Msb0JBQWUs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QU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsMENBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBQSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsbUNBQUksRUFBRTtZQUN4SyxXQUFXLEVBQUUsQ0FBQSxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRSwwQ0FBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsT0FBTyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUU7WUFDeEosU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFNBQVMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQUUsVUFBVSxFQUFFLE9BQU87WUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsU0FBUyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsS0FBSztZQUNoUCxzQkFBc0IsRUFBRSxRQUFRLENBQUMsTUFBQSxJQUFJ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QUMzRTtZQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1NBQzVCO2FBQ0k7WUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztTQUN6QjtJQUNILENBQUM7OztZQTFpQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLHl6RUFBb0Q7O2FBRXJEOzs7WUFYUSxXQUFXO1lBQ1gsaUJBQWlCOzs7eUJBYXZCLFNBQVMsU0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzRCQUNyQyxNQUFNO2dDQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBc3Nlc3NtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2Fzc2Vzc21lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENyZWF0ZUFzc2Vzc21lbnRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtZWRpdG9yL2NyZWF0ZS1hc3Nlc3NtZW50LWNvbnRhaW5lci9jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXIuY29tcG9uZW50JztcclxuXHJcbnR5cGUgQU9BID0gYW55W11bXTtcclxuY29uc3Qgc21pbGV5QWN0aW9ucyA9IHsgSU1QT1JUX01PUkU6IFwiSU1QT1JUX01PUkVcIiwgVklFV19BU1NFU1NNRU5UUzogXCJWSUVXX0FTU0VTU01FTlRTXCIgfVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaW1wb3J0LWFuLWFzc2Vzc21lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50Lmxlc3MnLCAnLi4vLi4vZm9ybXMubGVzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEltcG9ydEFuQXNzZXNzbWVudENvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnZWRpdG9yJywgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRvckNvbnQhOiBDcmVhdGVBc3Nlc3NtZW50Q29udGFpbmVyQ29tcG9uZW50O1xyXG4gIEBPdXRwdXQoKSBjbG9zZVdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBkaXNjb25uZWN0UmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBpc1Nob3dMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgZmlsZU5hbWU6IGFueTtcclxuICBkYXRhOiBhbnk7XHJcbiAgdXBsb2FkZWRGaWxlczogYW55ID0gW107XHJcbiAgZmlsZVJlc3BvbnNlOiBhbnkgPSBbXTtcclxuICBmaWxlVmFsdWU6IGFueTtcclxuICBvcmdhbml6YXRpb25JZCA9IDA7XHJcbiAgZXJyb3JNZXNzYWdlID0gXCJpbnZhbGlkIGZpbGUgZXJyb3JcIlxyXG4gIGRvd25sb2FkU3RhdHVzOiBzdHJpbmcgPSAnTk9UX0RPV05MT0FESU5HJztcclxuICBkb3dubG9hZFBlcmNlbnQgPSAwO1xyXG4gIHNtaWxleU1lc3NhZ2UgPSBgWW91J3JlIEFsbCBTZXQhIFdlJ3JlIHByb2Nlc3NpbmcgeW91ciByZXF1ZXN0IGFuZCB5b3Ugd2lsbCBiZSBub3RpZmllZCB2aWEgZW1haWwgdXBvbiBjb21wbGV0aW9uLmA7XHJcbiAgYWN0aW9uQnV0dG9ucyA9IFtcclxuICAgIHsgYnV0dG9uVGV4dDogJ0ltcG9ydCBNb3JlIEFzc2Vzc21lbnRzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5JTVBPUlRfTU9SRSB9LFxyXG4gICAgeyBidXR0b25UZXh0OiAnVmlldyBBc3Nlc3NtZW50cycsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5WSUVXX0FTU0VTU01FTlRTIH0sXHJcbiAgXTtcclxuICBzaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgYXNzZXNzbWVudERhdGEgITogYW55O1xyXG4gIHNoZWV0RGF0YSAhOiBhbnk7XHJcbiAgY29udmVydGVkRGF0YTogYW55O1xyXG4gIGlzVXBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeURhdGEgITogYW55O1xyXG5cclxuICBzZXRJc1VwbG9hZGVkKGlzVXBsb2FkZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGlzVXBsb2FkZWQ7XHJcbiAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoaXNVcGxvYWRlZCk7XHJcbiAgICBpZiAoIWlzVXBsb2FkZWQpIHtcclxuICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNsb3NlLXdvcmtmbG93LWVuZ2luZS1idG5cIilcclxuICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xyXG4gICAgICB0aGlzLmNvbnZlcnRlZERhdGEgPSB7fTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcclxuICAgIHB1YmxpYyBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2UsXHJcbiAgKSB7IH1cclxuXHJcbiAgY2xvc2VTbWlsZXkoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5hc3Nlc3NtZW50RGF0YSwgY29uZmlybTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9ICdET1dOTE9BRElORyc7XHJcbiAgICB0aGlzLmRvd25sb2FkUGVyY2VudCA9IDA7XHJcbiAgICBjb25zdCBkb3dubG9hZERhdGUgPSBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9IGBJbXBvcnQgYW4gQXNzZXNzbWVudC0ke2Rvd25sb2FkRGF0ZVsyXX0tJHtkb3dubG9hZERhdGVbMV19LSR7ZG93bmxvYWREYXRlWzNdfS54bHN4YDtcclxuXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmRvd25sb2FkVGVtcGxhdGUoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHtcclxuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9IHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZG93bkxvYWRGaWxlKGRhdGEsICdhcHBsaWNhdGlvbi94bHN4JywgZmlsZU5hbWUpO1xyXG4gICAgICAgICAgfSwgMTUwMCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4geyB0aGlzLmRvd25sb2FkU3RhdHVzID0gJ0RPV05MT0FERUQnOyB9XHJcbiAgICAgIH1cclxuXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlckJyb3dzZUZpbGUoKSB7XHJcbiAgICBjb25zdCBnZXRGaWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lhYS1maWxlLWlucHV0Jyk7XHJcbiAgICBpZiAoZ2V0RmlsZSkge1xyXG4gICAgICBnZXRGaWxlLmNsaWNrKCk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gIGhhbmRsZSB1cGxvYWQgZmlsZSBhcmVhXHJcbiAgdXBsb2FkRmlsZShldnQ6IGFueSkge1xyXG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldnQudGFyZ2V0IGFzIERhdGFUcmFuc2ZlcjtcclxuICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC5yZWFkKGJzdHIsIHsgdHlwZTogJ2JpbmFyeScgfSk7XHJcbiAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgY29uc3Qgd3NuYW1lMTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1sxXTtcclxuICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcbiAgICAgIGNvbnN0IHRlbXBEYXRhOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWUxXTtcclxuICAgICAgdGhpcy5jYXRlZ29yeURhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24odGVtcERhdGEsIHtcclxuICAgICAgICBoZWFkZXI6IDEsXHJcbiAgICAgIH0pIGFzIEFPQTtcclxuICAgICAgdGhpcy5zaGVldERhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24od3MsIHtcclxuICAgICAgICBoZWFkZXI6IDEsXHJcbiAgICAgIH0pIGFzIEFPQTtcclxuXHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDYXRlZ29yeUxpc3QodGhpcy5jYXRlZ29yeURhdGEpO1xyXG5cclxuICAgICAgdGhpcy5hc3Nlc3NtZW50RGF0YSA9IHRoaXMuc2hlZXREYXRhLmZpbHRlcigoZGF0YUVsZW1lbnQ6IGFueSkgPT4gZGF0YUVsZW1lbnQubGVuZ3RoID4gMCk7XHJcblxyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcclxuICAgICAgY29uc29sZS5sb2coXCJJbXBcIiwgdGhpcy5jaGVja0Zvcm1hdCh0aGlzLmFzc2Vzc21lbnREYXRhKSlcclxuICAgICAgaWYgKCF0aGlzLmNoZWNrRm9ybWF0KHRoaXMuYXNzZXNzbWVudERhdGEpKSB7XHJcbiAgICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNsb3NlLXdvcmtmbG93LWVuZ2luZS1idG5cIik7XHJcbiAgICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcblxyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVFZGl0b3JQYXlsb2FkKHRoaXMuYXNzZXNzbWVudERhdGEpO1xyXG4gICAgICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLmlzVXBsb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCk9Pnt0aGlzLmVkaXRvckNvbnQudHJpZ2dlclByZXZpZXdXaXRoVmFsaWRhdGlvbigpfSwxMDApXHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRhcmdldC5maWxlc1swXSk7XHJcbiAgfVxyXG5cclxuICBjYXRlZ29yeUxpc3QgITogYW55O1xyXG4gIGdlbmVyYXRlQ2F0ZWdvcnlMaXN0KGNhdGVnb3J5RGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBjYXRMaXN0OiBhbnkgPSB7fVxyXG4gICAgaWYgKGNhdGVnb3J5RGF0YSkge1xyXG4gICAgICBjYXRlZ29yeURhdGEuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBjYXRMaXN0W2VsZVswXV0gPSBlbGVbMV07XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gY2F0TGlzdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhdGVnb3J5TmFtZXRvSWQoY2F0ZWdvcnlOYW1lOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBnZW5lcmF0ZUVkaXRvclBheWxvYWQoZGF0YTogYW55KSB7XHJcbiAgICAvL2NoZWNrIGZvcm1hdFxyXG5cclxuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcclxuXHJcbiAgICAgIG1ldGFkYXRhOlxyXG4gICAgICB7XHJcbiAgICAgICAgYXNzZXNzbWVudF9uYW1lOiBcIlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGFzc2Vzc21lbnRfdHlwZTogXCJjb21wbGlhbmNlXCIsXHJcbiAgICAgICAgY2F0ZWdvcnlfYXJyOiBbXHJcblxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgYXBwcm92YWxfd29ya2Zsb3dfYXJyOiB7XHJcbiAgICAgICAgICBcInRlc3RcIjogXCJ0ZXN0XCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIGFwcHJvdmFsX3JlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIHNvdXJjZV9wYWdlOiBcImNvbXBsaWFuY2VcIlxyXG4gICAgICB9LFxyXG4gICAgICBhc3Nlc3NtZW50RGF0YToge1xyXG4gICAgICAgIHZlcnNpb246IDIsXHJcbiAgICAgICAgcXVlc3Rpb25SYW5kb21pemU6IGZhbHNlLFxyXG4gICAgICAgIGFub255bW91c1Jlc3BvbnNlOiBmYWxzZSxcclxuICAgICAgICBoYXNXZWxjb21lOiBmYWxzZSxcclxuICAgICAgICBoYXNXZWxjb21lRGVzY3JpcHRpb246IGZhbHNlLFxyXG4gICAgICAgIHdlbGNvbWVUZXh0OiAnJyxcclxuICAgICAgICBoYXNXZWxjb21lSW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIHdlbGNvbWVJbWFnZTogJycsXHJcbiAgICAgICAgd2VsY29tZURlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgICBoYXNUaGFua3M6IGZhbHNlLFxyXG4gICAgICAgIGhhc1RoYW5reW91SW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIHRoYW5reW91VGV4dDogJycsXHJcbiAgICAgICAgdGhhbmt5b3VJbWFnZTogJycsXHJcbiAgICAgICAgaGFzVGhhbmt5b3VEZXNjcmlwdGlvbjogZmFsc2UsXHJcbiAgICAgICAgdGhhbmt5b3VEZXNjcmlwdGlvbjogJycsXHJcbiAgICAgICAgZWxlbWVudHM6IFtdLFxyXG4gICAgICAgIHBhZ2VEZXRhaWxzTGlzdDogW10sXHJcbiAgICAgICAgY3VzdG9tUmVzcG9uc2VTZXQ6IFtdLFxyXG4gICAgICAgIHNldHRpbmdzOiB0aGlzLnNldHRpbmdzLFxyXG4gICAgICAgIHJlc3BvbnNlU2VnbWVudDogdGhpcy5pbml0aWFsaXplRW1wdHlSZXNwb25zZVNlZ21lbnQoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhID0gcGF5bG9hZDtcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5hc3Nlc3NtZW50X25hbWUgPSB0aGlzLmFzc2Vzc21lbnREYXRhWzJdWzFdO1xyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmRlc2NyaXB0aW9uID0gdGhpcy5hc3Nlc3NtZW50RGF0YVszXVsxXTtcclxuICAgIC8vIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5jYXRlZ29yeV9hcnJbMF0gPSB0aGlzLmFzc2Vzc21lbnREYXRhWzRdWzFdO1xyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmNhdGVnb3J5X2FyciA9IFt0aGlzLmNhdGVnb3J5TmFtZXRvSWQodGhpcy5hc3Nlc3NtZW50RGF0YVs0XVsxXSldO1xyXG5cclxuICAgIC8vVE9ETzogY3JlYXRlIGEgZnVuY3Rpb24gdG8gY29udmVydCBmcm9tIGNhdGVnb3JpZXMgbmFtZXMgdG8gY2F0ZWdvcmllcyBpZC5cclxuICAgIC8vVE9ETzogY2hlY2sgdGhlIGFwaSBmb3Igc3ViLWZsb3cgbGlrZSBhc3Nlc3NtZW50LXNldHRpbmcuXHJcbiAgICAvLyB0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEuY2F0ZWdvcnlfYXJyWzBdID0gXCI2MWNjMjdjNWIzZTg2NDJiMzMzZjM1OTFcIjtcclxuICAgIHRoaXMuZ2VuZXJhdGVRdWVzdGlvbnNMaXN0KGRhdGEuc2xpY2UoNiksIHBheWxvYWQuYXNzZXNzbWVudERhdGEuZWxlbWVudHMpXHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVF1ZXN0aW9uc0xpc3QocXVlc3Rpb25zTGlzdDogYW55LCBxdWVzdGlvbnNBcnJheTogYW55KSB7XHJcbiAgICBxdWVzdGlvbnNBcnJheSA9IFtdO1xyXG4gICAgaWYgKHF1ZXN0aW9uc0xpc3Q/Lmxlbmd0aCkge1xyXG4gICAgICBxdWVzdGlvbnNMaXN0LmZvckVhY2goKHF1ZXN0aW9uOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInF1ZXN0aW9uIGxpc3RcIiwgcXVlc3Rpb24pXHJcbiAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCgpO1xyXG4gICAgICAgIHN3aXRjaCAocXVlc3Rpb25bMF0pIHtcclxuICAgICAgICAgIGNhc2UgJ1NpbmdsZSBUZXh0Ym94JzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlU2luZ2xlVGV4dGJveCgnc2luZ2xlLXRleHRib3gnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnTXVsdGlwbGUgQ2hvaWNlJzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlTXVsdGlwbGVDaG9pY2UoJ211bHRpcGxlLWNob2ljZScscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdDaGVja2JveCc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdjaGVja2JveCcscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdEcm9wZG93bic6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdkcm9wZG93bicscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdEYXRlICYgVGltZSc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZURhdGVUaW1lKCdkYXRlLXRpbWUnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnRmlsZSBVcGxvYWQnOlxyXG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKHRoaXMuZ2VuZXJhdGVGaWxlVXBsb2FkKHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIC8vIE5vIG5lZWQgdG8gZG8gYW55dGhpbmcgZm9yIGRlZmF1bHRcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcInF1ZXN0aW9uc1wiLCBxdWVzdGlvbnNBcnJheSlcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5hc3Nlc3NtZW50RGF0YS5lbGVtZW50cyA9IHF1ZXN0aW9uc0FycmF5O1xyXG4gIH1cclxuICBjb2xNYXA6IGFueSA9IHtcclxuICAgIHR5cGU6IDAsXHJcbiAgICB0aXRsZTogMSxcclxuICAgIHNjb3JlOiAyLFxyXG4gICAgb3B0MTogMyxcclxuICAgIG9wdDI6IDQsXHJcbiAgICBvcHQzOiA1LFxyXG4gICAgb3B0NDogNixcclxuICAgIG9wdDU6IDcsXHJcbiAgICBvcHQ2OiA4LFxyXG4gICAgcmVxdWlyZWQ6IDksXHJcbiAgICBmYWlsZWQ6IDEwLFxyXG4gICAgZGVzY3JpcHRpb246IDExLFxyXG4gICAgcGxhY2Vob2xkZXI6IDEyLFxyXG4gICAgY29tbWVudDogMTMsXHJcbiAgICBvdGhlcjogMTQsXHJcbiAgICByYW5kb21pemU6IDE1LFxyXG4gICAgYWxpZ25tZW50OiAxNixcclxuICAgIHVzZXJhdHRhY2htZW50OiAxNyxcclxuICAgIHVzZXJjb21tZW50OiAxOFxyXG4gIH1cclxuICBnZW5lcmF0ZVNpbmdsZVRleHRib3godHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogJ3NpbmdsZS10ZXh0Ym94JywgbmFtZTogYFF1ZXN0aW9uXyR7aW5kZXh9YCwgcGFnZTogMSxcclxuICAgICAgaGFzVmFsaWRhdGlvbjogZmFsc2UsIHZhbGlkYXRpb25UeXBlOiAnJywgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc0NoYXJhY3Rlckxlbmd0aDogZmFsc2UsIG1pbkNoYXJhY3Rlckxlbmd0aDogMCxcclxuICAgICAgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udGl0bGVdPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0Rlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSwgZGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzQ29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCksXHJcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJhdHRhY2htZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIHZpc2liaWxpdHlMb2dpYzogW10sXHJcbiAgICAgIG90aGVyQ29uZmlnOiB7IGNvbG9yOiBcIiMwMDAwMDBcIiwgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxIH0sXHJcbiAgICAgIGNob2ljZXM6IFt7XHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiAxLFxyXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICAgIHJlcXVpcmVkOiAwLFxyXG4gICAgICAgIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsXHJcbiAgICAgICAgaGVscGluZ0xhYmVsOiBcIlwiLFxyXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlTXVsdGlwbGVDaG9pY2UodHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJZbyBNYW5cIiwgcXVlc3Rpb24pXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0eXBlLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLCBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKS50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0NvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpLnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogdGhpcy5nZW5lcmF0ZUNob2ljZXMocXVlc3Rpb24pXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVEYXRlVGltZSh0eXBlOnN0cmluZyxxdWVzdGlvbjogYW55LCBpbmRleDogYW55KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0eXBlLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLCBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPyB0cnVlIDogZmFsc2UsIGNvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogW3tcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZWQ6IDAsXHJcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICBoZWxwaW5nTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMDAwMFwiXHJcbiAgICAgIH1dLFxyXG4gICAgICBoYXNEYXRlOiB0cnVlLFxyXG4gICAgICBoYXNUaW1lOiBmYWxzZSxcclxuICAgICAgZGF0ZUZvcm1hdDogXCJERC9NTS9ZWVlZXCIsXHJcbiAgICAgIHRpbWVGb3JtYXQ6IDI0LFxyXG4gICAgICBkYXRlOiB7XHJcbiAgICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5wbGFjZWhvbGRlcl0gPz8gJ1NlbGVjdCBEYXRlJyxcclxuICAgICAgICB2YWx1ZTogXCJcIlxyXG4gICAgICB9LFxyXG4gICAgICB0aW1lOiB7XHJcbiAgICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5wbGFjZWhvbGRlcl0gPz8gJ1NlbGVjdCBUaW1lJyxcclxuICAgICAgICB2YWx1ZTogXCJcIlxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcbiAgZ2VuZXJhdGVGaWxlVXBsb2FkKHF1ZXN0aW9uOiBhbnksIGluZGV4OiBhbnkpIHtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiAnZmlsZS11cGxvYWQnLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLFxyXG4gICAgICBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPyB0cnVlIDogZmFsc2UsIGNvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogW3tcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZWQ6IDAsXHJcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICBoZWxwaW5nTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMDAwMFwiXHJcbiAgICAgIH1dLFxyXG4gICAgICBhbGxvd2VkRmlsZVR5cGVzOiB7XHJcbiAgICAgICAgcGRmOiB0cnVlLFxyXG4gICAgICAgIGRvYzogdHJ1ZSxcclxuICAgICAgICBwbmc6IHRydWUsXHJcbiAgICAgICAganBnOiB0cnVlLFxyXG4gICAgICAgIGdpZjogdHJ1ZVxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlQ2hvaWNlcyhxdWVzdGlvbjogYW55KSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gW3F1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQxXSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDJdLCBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0M10sIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQ0XSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDVdLCBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0Nl1dLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSk7XHJcbiAgICBvcHRpb25zLmZvckVhY2goKGVsZTphbnkpID0+e1xyXG4gICAgICBpZihlbGUpe1xyXG4gICAgICAgIGVsZS50b1N0cmluZygpPy50cmltKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICBpZiAob3B0aW9ucz8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIG9wdGlvbnMucHVzaCgnJylcclxuICAgIH1cclxuICAgIGNvbnN0IG9wdGlvbk1hcDogYW55ID0ge1xyXG4gICAgICAnT3B0aW9uIDEnOiAzLFxyXG4gICAgICAnT3B0aW9uIDInOiA0LFxyXG4gICAgICAnT3B0aW9uIDMnOiA1LFxyXG4gICAgICAnT3B0aW9uIDQnOiA2LFxyXG4gICAgICAnT3B0aW9uIDUnOiA3LFxyXG4gICAgICAnT3B0aW9uIDYnOiA4LFxyXG4gICAgfVxyXG4gICAgb3B0aW9ucy5mb3JFYWNoKChjaG9pY2U6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBvcHRpb25zW2luZGV4XSA9IHtcclxuICAgICAgICB0aXRsZTogKGNob2ljZSAmJiB0eXBlb2YgKGNob2ljZSkgPT0gJ3N0cmluZycpPyBjaG9pY2UgOiBjaG9pY2UudG9TdHJpbmcoKSA/PyAnJyxcclxuICAgICAgICB2YWx1ZTogMSxcclxuICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgICByZXF1aXJlZDogMCxcclxuICAgICAgICBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLFxyXG4gICAgICAgIGhlbHBpbmdMYWJlbDogXCJcIixcclxuICAgICAgICBpc0ZhaWxlZDogKGNob2ljZT8udG9TdHJpbmcoKT8udHJpbSgpID09IHF1ZXN0aW9uW29wdGlvbk1hcFtxdWVzdGlvblt0aGlzLmNvbE1hcD8uZmFpbGVkXV1dKSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldHRpbmdzOiBhbnkgPSB7XHJcbiAgICBhc3Nlc3NtZW50TW9kZTogZmFsc2UsXHJcbiAgICBkZWZhdWx0U2NvcmU6IDEsXHJcbiAgICBuZWdhdGl2ZVNjb3JlQ3JpdGVyaWE6ICdGQUlMRUQnLFxyXG4gICAgbmVnYXRpdmVTY29yZTogMCxcclxuICAgIHdlaWdodGFnZUVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgc2V0dGluZ3NFbmFibGVkOiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgY2hlY2tGb3JtYXQoYXNzZXNzbWVudERhdGE6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgLy9Db21wbGV0bHkgYmxhbmsgZXhjZWwgc2hlZXRcclxuICAgIGlmIChhc3Nlc3NtZW50RGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgdGhlIHdyb25nIHRlbXBsYXRlLiBQbGVhc2UgZG93bmxvYWQgdGhlIHRlbXBsYXRlIGFnYWluIHRvIHByb2NlZWQuJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy9JbnZhbGlkIFRlbXBhbHRlXHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoYXNzZXNzbWVudERhdGFbMl1bMF0gIT09IFwiQXNzZXNzbWVudCBOYW1lXFwqXCJcclxuICAgICAgICB8fCBhc3Nlc3NtZW50RGF0YVszXVswXSAhPT0gXCJEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgfHwgYXNzZXNzbWVudERhdGFbNF1bMF0gIT09IFwiQXNzZXNzbWVudCBDYXRlZ29yeVxcKlwiXHJcbiAgICAgICAgfHwgYXNzZXNzbWVudERhdGFbNV1bMF0gIT09IFwiUXVlc3Rpb24gVHlwZVxcKlwiXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ2hlY2sgQXNzZXNzbWVudCBuYW1lXHJcbiAgICB0cnl7XHJcbiAgICAgIGlmICghYXNzZXNzbWVudERhdGFbMl1bMV0gfHwgYXNzZXNzbWVudERhdGFbMl1bMV0gPT09IFwiXCIgfHwgYXNzZXNzbWVudERhdGFbMl1bMV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0VudGVyIGEgbmFtZSBmb3IgdGhpcyBBc3Nlc3NtZW50Lic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfWNhdGNoe1xyXG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdFbnRlciBhIG5hbWUgZm9yIHRoaXMgQXNzZXNzbWVudC4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgXHJcbiAgICAvL2NhdGVnb3J5IG5vdCBzZWxlY3RlZFxyXG4gICB0cnl7XHJcbiAgICBpZiAoIWFzc2Vzc21lbnREYXRhWzRdWzFdIHx8IGFzc2Vzc21lbnREYXRhWzRdWzFdID09PSBcIlwiIHx8IGFzc2Vzc21lbnREYXRhWzRdWzFdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnU2VsZWN0IHRoZSBBc3Nlc3NtZW50IENhdGVnb3J5Lic7XHJcbiAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICB9Y2F0Y2h7XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdTZWxlY3QgdGhlIEFzc2Vzc21lbnQgQ2F0ZWdvcnkuJztcclxuICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICAgfVxyXG4gIFxyXG4gICAgLy9Eb2VzIG5vdCBjb250YWlucyBhbnkgcXVlc3Rpb25zXHJcbiAgICB0cnl7XHJcbiAgICAgIGlmIChhc3Nlc3NtZW50RGF0YS5zbGljZSg3KT8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgYSBibGFuayB0ZW1wbGF0ZS4gUGxlYXNlIGFkZCBxdWVzdGlvbnMgdG8gdGhpcyB0ZW1wbGF0ZSBhbmQgdXBsb2FkIGl0IGFnYWluLic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfWNhdGNoe1xyXG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCBhIGJsYW5rIHRlbXBsYXRlLiBQbGVhc2UgYWRkIHF1ZXN0aW9ucyB0byB0aGlzIHRlbXBsYXRlIGFuZCB1cGxvYWQgaXQgYWdhaW4uJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBcclxuXHJcblxyXG4gICAgLy9oYW5kbGUgdHlwZSBvZiBxdWVzdGlvbiBhbmQgb3B0aW9ucyBjb3VudFxyXG4gICAgZm9yIChsZXQgaSA9IDc7IGkgPD0gYXNzZXNzbWVudERhdGEubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgIGlmIChhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ011bHRpcGxlIENob2ljZScgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0NoZWNrYm94JyAmJlxyXG4gICAgICAgIGFzc2Vzc21lbnREYXRhW2ldWzBdICE9PSAnRHJvcGRvd24nICYmXHJcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdTaW5nbGUgVGV4dGJveCcgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0RhdGUgJiBUaW1lJyAmJlxyXG4gICAgICAgIGFzc2Vzc21lbnREYXRhW2ldWzBdICE9PSAnRmlsZSBVcGxvYWQnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICAvLyBpZiAoYXNzZXNzbWVudERhdGFbaV1bMV0gPT09ICcnKSB7XHJcbiAgICAgIC8vICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgdGhlIHdyb25nIHRlbXBsYXRlLiBQbGVhc2UgZG93bmxvYWQgdGhlIHRlbXBsYXRlIGFnYWluIHRvIHByb2NlZWQuJztcclxuICAgICAgLy8gICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICAvLyAgIHJldHVybiB0cnVlO1xyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplRW1wdHlSZXNwb25zZVNlZ21lbnQoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0aXRsZTogJycsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgbWF4U2NvcmU6IDEwLFxyXG4gICAgICBzZWdtZW50czogW11cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvc3RBc3Nlc3NtZW50KGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5pc1Nob3dMb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZS5jcmVhdGVBc3Nlc3NtZW50KHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnBvc3RBc3Nlc3NtZW50RGV0YWlscyhyZXNwb25zZS5faWQsIGRhdGEubW9kZSwgZGF0YS5hc3Nlc3NtZW50RGV0YWlscyk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzU2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcG9zdEFzc2Vzc21lbnREZXRhaWxzKGlkOiBhbnksIG1vZGU6IGFueSwgYXNzZXNzbWVudERldGFpbHM6IGFueSkge1xyXG5cclxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KGZhbHNlKTtcclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLmlzVXBsb2FkZWQnLCB0aGlzLmlzVXBsb2FkZWQpXHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBxdWVzdGlvbjogYXNzZXNzbWVudERldGFpbHMsXHJcbiAgICAgIGFjdGlvbjogXCJxdWVzdGlvbnNfc2F2ZVwiLFxyXG4gICAgICBzdGF0ZTogbW9kZVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2Uuc2F2ZUFzc2Vzc21lbnREZXRhaWxzKGlkLCBwYXlsb2FkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXNzZXNzbWVudERhdGEgPSB7fTtcclxuICAgICAgICB0aGlzLmlzU2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzU2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc21pbGV5QWN0aW9uKGlkOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKGlkKVxyXG4gICAgaWYgKGlkID09PSBzbWlsZXlBY3Rpb25zLlZJRVdfQVNTRVNTTUVOVFMpIHtcclxuICAgICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcclxuICAgICAgLy8gVE9ETzogTmF2aWdhdGUgdG8gJy9tYW5hZ2UtYXNzZXNzbWVudCdcclxuICAgICAgbGV0IHVybDogc3RyaW5nO1xyXG4gICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvbWFuYWdlLWFzc2Vzc21lbnQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHVybCA9ICdodHRwczovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvYXNzZXNzbWVudC9tYW5hZ2UtYXNzZXNzbWVudCc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2codXJsKTtcclxuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufSJdfQ==
|
|
557
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFJL0UsTUFBTSxhQUFhLEdBQUcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLENBQUE7QUFRMUYsTUFBTSxPQUFPLDJCQUEyQjtJQXFDdEMsWUFDVSxJQUFpQixFQUNsQixpQkFBb0M7UUFEbkMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBckNuQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUd0QixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixpQkFBWSxHQUFHLG9CQUFvQixDQUFBO1FBQ25DLG1CQUFjLEdBQVcsaUJBQWlCLENBQUM7UUFDM0Msb0JBQWUs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YUFDM0U7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztTQUM1QjthQUNJO1lBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDekI7SUFDSCxDQUFDOzs7WUExaUJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQywrekVBQW9EOzthQUVyRDs7O1lBWFEsV0FBVztZQUNYLGlCQUFpQjs7O3lCQWF2QixTQUFTLFNBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs0QkFDckMsTUFBTTtnQ0FDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXNzZXNzbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9hc3Nlc3NtZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDcmVhdGVBc3Nlc3NtZW50Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkQ29tcG9uZW50cy9hc3Nlc3NtZW50LWVkaXRvci9jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXIvY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcblxyXG50eXBlIEFPQSA9IGFueVtdW107XHJcbmNvbnN0IHNtaWxleUFjdGlvbnMgPSB7IElNUE9SVF9NT1JFOiBcIklNUE9SVF9NT1JFXCIsIFZJRVdfQVNTRVNTTUVOVFM6IFwiVklFV19BU1NFU1NNRU5UU1wiIH1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWltcG9ydC1hbi1hc3Nlc3NtZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ltcG9ydC1hbi1hc3Nlc3NtZW50LmNvbXBvbmVudC5sZXNzJywgJy4uLy4uL2Zvcm1zLmxlc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBJbXBvcnRBbkFzc2Vzc21lbnRDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcicsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0b3JDb250ITogQ3JlYXRlQXNzZXNzbWVudENvbnRhaW5lckNvbXBvbmVudDtcclxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgaXNTaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xyXG4gIGZpbGVOYW1lOiBhbnk7XHJcbiAgZGF0YTogYW55O1xyXG4gIHVwbG9hZGVkRmlsZXM6IGFueSA9IFtdO1xyXG4gIGZpbGVSZXNwb25zZTogYW55ID0gW107XHJcbiAgZmlsZVZhbHVlOiBhbnk7XHJcbiAgb3JnYW5pemF0aW9uSWQgPSAwO1xyXG4gIGVycm9yTWVzc2FnZSA9IFwiaW52YWxpZCBmaWxlIGVycm9yXCJcclxuICBkb3dubG9hZFN0YXR1czogc3RyaW5nID0gJ05PVF9ET1dOTE9BRElORyc7XHJcbiAgZG93bmxvYWRQZXJjZW50ID0gMDtcclxuICBzbWlsZXlNZXNzYWdlQWN0aW9uID0gYFlvdSdyZSBBbGwgU2V0IWA7XHJcbiAgYWN0aW9uQnV0dG9ucyA9IFtcclxuICAgIHsgYnV0dG9uVGV4dDogJ0ltcG9ydCBNb3JlIEFzc2Vzc21lbnRzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5JTVBPUlRfTU9SRSB9LFxyXG4gICAgeyBidXR0b25UZXh0OiAnVmlldyBBc3Nlc3NtZW50cycsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5WSUVXX0FTU0VTU01FTlRTIH0sXHJcbiAgXTtcclxuICBzaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgYXNzZXNzbWVudERhdGEgITogYW55O1xyXG4gIHNoZWV0RGF0YSAhOiBhbnk7XHJcbiAgY29udmVydGVkRGF0YTogYW55O1xyXG4gIGlzVXBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeURhdGEgITogYW55O1xyXG5cclxuICBzZXRJc1VwbG9hZGVkKGlzVXBsb2FkZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGlzVXBsb2FkZWQ7XHJcbiAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoaXNVcGxvYWRlZCk7XHJcbiAgICBpZiAoIWlzVXBsb2FkZWQpIHtcclxuICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNsb3NlLXdvcmtmbG93LWVuZ2luZS1idG5cIilcclxuICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xyXG4gICAgICB0aGlzLmNvbnZlcnRlZERhdGEgPSB7fTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcclxuICAgIHB1YmxpYyBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2UsXHJcbiAgKSB7IH1cclxuXHJcbiAgY2xvc2VTbWlsZXkoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5hc3Nlc3NtZW50RGF0YSwgY29uZmlybTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9ICdET1dOTE9BRElORyc7XHJcbiAgICB0aGlzLmRvd25sb2FkUGVyY2VudCA9IDA7XHJcbiAgICBjb25zdCBkb3dubG9hZERhdGUgPSBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9IGBJbXBvcnQgYW4gQXNzZXNzbWVudC0ke2Rvd25sb2FkRGF0ZVsyXX0tJHtkb3dubG9hZERhdGVbMV19LSR7ZG93bmxvYWREYXRlWzNdfS54bHN4YDtcclxuXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmRvd25sb2FkVGVtcGxhdGUoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHtcclxuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9IHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZG93bkxvYWRGaWxlKGRhdGEsICdhcHBsaWNhdGlvbi94bHN4JywgZmlsZU5hbWUpO1xyXG4gICAgICAgICAgfSwgMTUwMCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4geyB0aGlzLmRvd25sb2FkU3RhdHVzID0gJ0RPV05MT0FERUQnOyB9XHJcbiAgICAgIH1cclxuXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlckJyb3dzZUZpbGUoKSB7XHJcbiAgICBjb25zdCBnZXRGaWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lhYS1maWxlLWlucHV0Jyk7XHJcbiAgICBpZiAoZ2V0RmlsZSkge1xyXG4gICAgICBnZXRGaWxlLmNsaWNrKCk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gIGhhbmRsZSB1cGxvYWQgZmlsZSBhcmVhXHJcbiAgdXBsb2FkRmlsZShldnQ6IGFueSkge1xyXG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldnQudGFyZ2V0IGFzIERhdGFUcmFuc2ZlcjtcclxuICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC5yZWFkKGJzdHIsIHsgdHlwZTogJ2JpbmFyeScgfSk7XHJcbiAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgY29uc3Qgd3NuYW1lMTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1sxXTtcclxuICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcbiAgICAgIGNvbnN0IHRlbXBEYXRhOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWUxXTtcclxuICAgICAgdGhpcy5jYXRlZ29yeURhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24odGVtcERhdGEsIHtcclxuICAgICAgICBoZWFkZXI6IDEsXHJcbiAgICAgIH0pIGFzIEFPQTtcclxuICAgICAgdGhpcy5zaGVldERhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24od3MsIHtcclxuICAgICAgICBoZWFkZXI6IDEsXHJcbiAgICAgIH0pIGFzIEFPQTtcclxuXHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDYXRlZ29yeUxpc3QodGhpcy5jYXRlZ29yeURhdGEpO1xyXG5cclxuICAgICAgdGhpcy5hc3Nlc3NtZW50RGF0YSA9IHRoaXMuc2hlZXREYXRhLmZpbHRlcigoZGF0YUVsZW1lbnQ6IGFueSkgPT4gZGF0YUVsZW1lbnQubGVuZ3RoID4gMCk7XHJcblxyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcclxuICAgICAgY29uc29sZS5sb2coXCJJbXBcIiwgdGhpcy5jaGVja0Zvcm1hdCh0aGlzLmFzc2Vzc21lbnREYXRhKSlcclxuICAgICAgaWYgKCF0aGlzLmNoZWNrRm9ybWF0KHRoaXMuYXNzZXNzbWVudERhdGEpKSB7XHJcbiAgICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNsb3NlLXdvcmtmbG93LWVuZ2luZS1idG5cIik7XHJcbiAgICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcblxyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVFZGl0b3JQYXlsb2FkKHRoaXMuYXNzZXNzbWVudERhdGEpO1xyXG4gICAgICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLmlzVXBsb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCk9Pnt0aGlzLmVkaXRvckNvbnQudHJpZ2dlclByZXZpZXdXaXRoVmFsaWRhdGlvbigpfSwxMDApXHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRhcmdldC5maWxlc1swXSk7XHJcbiAgfVxyXG5cclxuICBjYXRlZ29yeUxpc3QgITogYW55O1xyXG4gIGdlbmVyYXRlQ2F0ZWdvcnlMaXN0KGNhdGVnb3J5RGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBjYXRMaXN0OiBhbnkgPSB7fVxyXG4gICAgaWYgKGNhdGVnb3J5RGF0YSkge1xyXG4gICAgICBjYXRlZ29yeURhdGEuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBjYXRMaXN0W2VsZVswXV0gPSBlbGVbMV07XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gY2F0TGlzdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhdGVnb3J5TmFtZXRvSWQoY2F0ZWdvcnlOYW1lOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBnZW5lcmF0ZUVkaXRvclBheWxvYWQoZGF0YTogYW55KSB7XHJcbiAgICAvL2NoZWNrIGZvcm1hdFxyXG5cclxuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcclxuXHJcbiAgICAgIG1ldGFkYXRhOlxyXG4gICAgICB7XHJcbiAgICAgICAgYXNzZXNzbWVudF9uYW1lOiBcIlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGFzc2Vzc21lbnRfdHlwZTogXCJjb21wbGlhbmNlXCIsXHJcbiAgICAgICAgY2F0ZWdvcnlfYXJyOiBbXHJcblxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgYXBwcm92YWxfd29ya2Zsb3dfYXJyOiB7XHJcbiAgICAgICAgICBcInRlc3RcIjogXCJ0ZXN0XCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIGFwcHJvdmFsX3JlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIHNvdXJjZV9wYWdlOiBcImNvbXBsaWFuY2VcIlxyXG4gICAgICB9LFxyXG4gICAgICBhc3Nlc3NtZW50RGF0YToge1xyXG4gICAgICAgIHZlcnNpb246IDIsXHJcbiAgICAgICAgcXVlc3Rpb25SYW5kb21pemU6IGZhbHNlLFxyXG4gICAgICAgIGFub255bW91c1Jlc3BvbnNlOiBmYWxzZSxcclxuICAgICAgICBoYXNXZWxjb21lOiBmYWxzZSxcclxuICAgICAgICBoYXNXZWxjb21lRGVzY3JpcHRpb246IGZhbHNlLFxyXG4gICAgICAgIHdlbGNvbWVUZXh0OiAnJyxcclxuICAgICAgICBoYXNXZWxjb21lSW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIHdlbGNvbWVJbWFnZTogJycsXHJcbiAgICAgICAgd2VsY29tZURlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgICBoYXNUaGFua3M6IGZhbHNlLFxyXG4gICAgICAgIGhhc1RoYW5reW91SW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIHRoYW5reW91VGV4dDogJycsXHJcbiAgICAgICAgdGhhbmt5b3VJbWFnZTogJycsXHJcbiAgICAgICAgaGFzVGhhbmt5b3VEZXNjcmlwdGlvbjogZmFsc2UsXHJcbiAgICAgICAgdGhhbmt5b3VEZXNjcmlwdGlvbjogJycsXHJcbiAgICAgICAgZWxlbWVudHM6IFtdLFxyXG4gICAgICAgIHBhZ2VEZXRhaWxzTGlzdDogW10sXHJcbiAgICAgICAgY3VzdG9tUmVzcG9uc2VTZXQ6IFtdLFxyXG4gICAgICAgIHNldHRpbmdzOiB0aGlzLnNldHRpbmdzLFxyXG4gICAgICAgIHJlc3BvbnNlU2VnbWVudDogdGhpcy5pbml0aWFsaXplRW1wdHlSZXNwb25zZVNlZ21lbnQoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhID0gcGF5bG9hZDtcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5hc3Nlc3NtZW50X25hbWUgPSB0aGlzLmFzc2Vzc21lbnREYXRhWzJdWzFdO1xyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmRlc2NyaXB0aW9uID0gdGhpcy5hc3Nlc3NtZW50RGF0YVszXVsxXTtcclxuICAgIC8vIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5jYXRlZ29yeV9hcnJbMF0gPSB0aGlzLmFzc2Vzc21lbnREYXRhWzRdWzFdO1xyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmNhdGVnb3J5X2FyciA9IFt0aGlzLmNhdGVnb3J5TmFtZXRvSWQodGhpcy5hc3Nlc3NtZW50RGF0YVs0XVsxXSldO1xyXG5cclxuICAgIC8vVE9ETzogY3JlYXRlIGEgZnVuY3Rpb24gdG8gY29udmVydCBmcm9tIGNhdGVnb3JpZXMgbmFtZXMgdG8gY2F0ZWdvcmllcyBpZC5cclxuICAgIC8vVE9ETzogY2hlY2sgdGhlIGFwaSBmb3Igc3ViLWZsb3cgbGlrZSBhc3Nlc3NtZW50LXNldHRpbmcuXHJcbiAgICAvLyB0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEuY2F0ZWdvcnlfYXJyWzBdID0gXCI2MWNjMjdjNWIzZTg2NDJiMzMzZjM1OTFcIjtcclxuICAgIHRoaXMuZ2VuZXJhdGVRdWVzdGlvbnNMaXN0KGRhdGEuc2xpY2UoNiksIHBheWxvYWQuYXNzZXNzbWVudERhdGEuZWxlbWVudHMpXHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVF1ZXN0aW9uc0xpc3QocXVlc3Rpb25zTGlzdDogYW55LCBxdWVzdGlvbnNBcnJheTogYW55KSB7XHJcbiAgICBxdWVzdGlvbnNBcnJheSA9IFtdO1xyXG4gICAgaWYgKHF1ZXN0aW9uc0xpc3Q/Lmxlbmd0aCkge1xyXG4gICAgICBxdWVzdGlvbnNMaXN0LmZvckVhY2goKHF1ZXN0aW9uOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInF1ZXN0aW9uIGxpc3RcIiwgcXVlc3Rpb24pXHJcbiAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCgpO1xyXG4gICAgICAgIHN3aXRjaCAocXVlc3Rpb25bMF0pIHtcclxuICAgICAgICAgIGNhc2UgJ1NpbmdsZSBUZXh0Ym94JzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlU2luZ2xlVGV4dGJveCgnc2luZ2xlLXRleHRib3gnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnTXVsdGlwbGUgQ2hvaWNlJzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlTXVsdGlwbGVDaG9pY2UoJ211bHRpcGxlLWNob2ljZScscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdDaGVja2JveCc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdjaGVja2JveCcscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdEcm9wZG93bic6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdkcm9wZG93bicscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdEYXRlICYgVGltZSc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZURhdGVUaW1lKCdkYXRlLXRpbWUnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnRmlsZSBVcGxvYWQnOlxyXG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKHRoaXMuZ2VuZXJhdGVGaWxlVXBsb2FkKHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIC8vIE5vIG5lZWQgdG8gZG8gYW55dGhpbmcgZm9yIGRlZmF1bHRcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcInF1ZXN0aW9uc1wiLCBxdWVzdGlvbnNBcnJheSlcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5hc3Nlc3NtZW50RGF0YS5lbGVtZW50cyA9IHF1ZXN0aW9uc0FycmF5O1xyXG4gIH1cclxuICBjb2xNYXA6IGFueSA9IHtcclxuICAgIHR5cGU6IDAsXHJcbiAgICB0aXRsZTogMSxcclxuICAgIHNjb3JlOiAyLFxyXG4gICAgb3B0MTogMyxcclxuICAgIG9wdDI6IDQsXHJcbiAgICBvcHQzOiA1LFxyXG4gICAgb3B0NDogNixcclxuICAgIG9wdDU6IDcsXHJcbiAgICBvcHQ2OiA4LFxyXG4gICAgcmVxdWlyZWQ6IDksXHJcbiAgICBmYWlsZWQ6IDEwLFxyXG4gICAgZGVzY3JpcHRpb246IDExLFxyXG4gICAgcGxhY2Vob2xkZXI6IDEyLFxyXG4gICAgY29tbWVudDogMTMsXHJcbiAgICBvdGhlcjogMTQsXHJcbiAgICByYW5kb21pemU6IDE1LFxyXG4gICAgYWxpZ25tZW50OiAxNixcclxuICAgIHVzZXJhdHRhY2htZW50OiAxNyxcclxuICAgIHVzZXJjb21tZW50OiAxOFxyXG4gIH1cclxuICBnZW5lcmF0ZVNpbmdsZVRleHRib3godHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogJ3NpbmdsZS10ZXh0Ym94JywgbmFtZTogYFF1ZXN0aW9uXyR7aW5kZXh9YCwgcGFnZTogMSxcclxuICAgICAgaGFzVmFsaWRhdGlvbjogZmFsc2UsIHZhbGlkYXRpb25UeXBlOiAnJywgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc0NoYXJhY3Rlckxlbmd0aDogZmFsc2UsIG1pbkNoYXJhY3Rlckxlbmd0aDogMCxcclxuICAgICAgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udGl0bGVdPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0Rlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSwgZGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzQ29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCksXHJcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJhdHRhY2htZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIHZpc2liaWxpdHlMb2dpYzogW10sXHJcbiAgICAgIG90aGVyQ29uZmlnOiB7IGNvbG9yOiBcIiMwMDAwMDBcIiwgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxIH0sXHJcbiAgICAgIGNob2ljZXM6IFt7XHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiAxLFxyXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICAgIHJlcXVpcmVkOiAwLFxyXG4gICAgICAgIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsXHJcbiAgICAgICAgaGVscGluZ0xhYmVsOiBcIlwiLFxyXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlTXVsdGlwbGVDaG9pY2UodHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJZbyBNYW5cIiwgcXVlc3Rpb24pXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0eXBlLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLCBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKS50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0NvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpLnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogdGhpcy5nZW5lcmF0ZUNob2ljZXMocXVlc3Rpb24pXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVEYXRlVGltZSh0eXBlOnN0cmluZyxxdWVzdGlvbjogYW55LCBpbmRleDogYW55KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0eXBlLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLCBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPyB0cnVlIDogZmFsc2UsIGNvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogW3tcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZWQ6IDAsXHJcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICBoZWxwaW5nTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMDAwMFwiXHJcbiAgICAgIH1dLFxyXG4gICAgICBoYXNEYXRlOiB0cnVlLFxyXG4gICAgICBoYXNUaW1lOiBmYWxzZSxcclxuICAgICAgZGF0ZUZvcm1hdDogXCJERC9NTS9ZWVlZXCIsXHJcbiAgICAgIHRpbWVGb3JtYXQ6IDI0LFxyXG4gICAgICBkYXRlOiB7XHJcbiAgICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5wbGFjZWhvbGRlcl0gPz8gJ1NlbGVjdCBEYXRlJyxcclxuICAgICAgICB2YWx1ZTogXCJcIlxyXG4gICAgICB9LFxyXG4gICAgICB0aW1lOiB7XHJcbiAgICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5wbGFjZWhvbGRlcl0gPz8gJ1NlbGVjdCBUaW1lJyxcclxuICAgICAgICB2YWx1ZTogXCJcIlxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcbiAgZ2VuZXJhdGVGaWxlVXBsb2FkKHF1ZXN0aW9uOiBhbnksIGluZGV4OiBhbnkpIHtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiAnZmlsZS11cGxvYWQnLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLFxyXG4gICAgICBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPyB0cnVlIDogZmFsc2UsIGNvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogW3tcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZWQ6IDAsXHJcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICBoZWxwaW5nTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMDAwMFwiXHJcbiAgICAgIH1dLFxyXG4gICAgICBhbGxvd2VkRmlsZVR5cGVzOiB7XHJcbiAgICAgICAgcGRmOiB0cnVlLFxyXG4gICAgICAgIGRvYzogdHJ1ZSxcclxuICAgICAgICBwbmc6IHRydWUsXHJcbiAgICAgICAganBnOiB0cnVlLFxyXG4gICAgICAgIGdpZjogdHJ1ZVxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlQ2hvaWNlcyhxdWVzdGlvbjogYW55KSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gW3F1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQxXSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDJdLCBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0M10sIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQ0XSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDVdLCBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0Nl1dLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSk7XHJcbiAgICBvcHRpb25zLmZvckVhY2goKGVsZTphbnkpID0+e1xyXG4gICAgICBpZihlbGUpe1xyXG4gICAgICAgIGVsZS50b1N0cmluZygpPy50cmltKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICBpZiAob3B0aW9ucz8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIG9wdGlvbnMucHVzaCgnJylcclxuICAgIH1cclxuICAgIGNvbnN0IG9wdGlvbk1hcDogYW55ID0ge1xyXG4gICAgICAnT3B0aW9uIDEnOiAzLFxyXG4gICAgICAnT3B0aW9uIDInOiA0LFxyXG4gICAgICAnT3B0aW9uIDMnOiA1LFxyXG4gICAgICAnT3B0aW9uIDQnOiA2LFxyXG4gICAgICAnT3B0aW9uIDUnOiA3LFxyXG4gICAgICAnT3B0aW9uIDYnOiA4LFxyXG4gICAgfVxyXG4gICAgb3B0aW9ucy5mb3JFYWNoKChjaG9pY2U6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBvcHRpb25zW2luZGV4XSA9IHtcclxuICAgICAgICB0aXRsZTogKGNob2ljZSAmJiB0eXBlb2YgKGNob2ljZSkgPT0gJ3N0cmluZycpPyBjaG9pY2UgOiBjaG9pY2UudG9TdHJpbmcoKSA/PyAnJyxcclxuICAgICAgICB2YWx1ZTogMSxcclxuICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgICByZXF1aXJlZDogMCxcclxuICAgICAgICBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLFxyXG4gICAgICAgIGhlbHBpbmdMYWJlbDogXCJcIixcclxuICAgICAgICBpc0ZhaWxlZDogKGNob2ljZT8udG9TdHJpbmcoKT8udHJpbSgpID09IHF1ZXN0aW9uW29wdGlvbk1hcFtxdWVzdGlvblt0aGlzLmNvbE1hcD8uZmFpbGVkXV1dKSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldHRpbmdzOiBhbnkgPSB7XHJcbiAgICBhc3Nlc3NtZW50TW9kZTogZmFsc2UsXHJcbiAgICBkZWZhdWx0U2NvcmU6IDEsXHJcbiAgICBuZWdhdGl2ZVNjb3JlQ3JpdGVyaWE6ICdGQUlMRUQnLFxyXG4gICAgbmVnYXRpdmVTY29yZTogMCxcclxuICAgIHdlaWdodGFnZUVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgc2V0dGluZ3NFbmFibGVkOiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgY2hlY2tGb3JtYXQoYXNzZXNzbWVudERhdGE6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgLy9Db21wbGV0bHkgYmxhbmsgZXhjZWwgc2hlZXRcclxuICAgIGlmIChhc3Nlc3NtZW50RGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgdGhlIHdyb25nIHRlbXBsYXRlLiBQbGVhc2UgZG93bmxvYWQgdGhlIHRlbXBsYXRlIGFnYWluIHRvIHByb2NlZWQuJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy9JbnZhbGlkIFRlbXBhbHRlXHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoYXNzZXNzbWVudERhdGFbMl1bMF0gIT09IFwiQXNzZXNzbWVudCBOYW1lXFwqXCJcclxuICAgICAgICB8fCBhc3Nlc3NtZW50RGF0YVszXVswXSAhPT0gXCJEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgfHwgYXNzZXNzbWVudERhdGFbNF1bMF0gIT09IFwiQXNzZXNzbWVudCBDYXRlZ29yeVxcKlwiXHJcbiAgICAgICAgfHwgYXNzZXNzbWVudERhdGFbNV1bMF0gIT09IFwiUXVlc3Rpb24gVHlwZVxcKlwiXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ2hlY2sgQXNzZXNzbWVudCBuYW1lXHJcbiAgICB0cnl7XHJcbiAgICAgIGlmICghYXNzZXNzbWVudERhdGFbMl1bMV0gfHwgYXNzZXNzbWVudERhdGFbMl1bMV0gPT09IFwiXCIgfHwgYXNzZXNzbWVudERhdGFbMl1bMV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0VudGVyIGEgbmFtZSBmb3IgdGhpcyBBc3Nlc3NtZW50Lic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfWNhdGNoe1xyXG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdFbnRlciBhIG5hbWUgZm9yIHRoaXMgQXNzZXNzbWVudC4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgXHJcbiAgICAvL2NhdGVnb3J5IG5vdCBzZWxlY3RlZFxyXG4gICB0cnl7XHJcbiAgICBpZiAoIWFzc2Vzc21lbnREYXRhWzRdWzFdIHx8IGFzc2Vzc21lbnREYXRhWzRdWzFdID09PSBcIlwiIHx8IGFzc2Vzc21lbnREYXRhWzRdWzFdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnU2VsZWN0IHRoZSBBc3Nlc3NtZW50IENhdGVnb3J5Lic7XHJcbiAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICB9Y2F0Y2h7XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdTZWxlY3QgdGhlIEFzc2Vzc21lbnQgQ2F0ZWdvcnkuJztcclxuICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICAgfVxyXG4gIFxyXG4gICAgLy9Eb2VzIG5vdCBjb250YWlucyBhbnkgcXVlc3Rpb25zXHJcbiAgICB0cnl7XHJcbiAgICAgIGlmIChhc3Nlc3NtZW50RGF0YS5zbGljZSg3KT8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgYSBibGFuayB0ZW1wbGF0ZS4gUGxlYXNlIGFkZCBxdWVzdGlvbnMgdG8gdGhpcyB0ZW1wbGF0ZSBhbmQgdXBsb2FkIGl0IGFnYWluLic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfWNhdGNoe1xyXG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCBhIGJsYW5rIHRlbXBsYXRlLiBQbGVhc2UgYWRkIHF1ZXN0aW9ucyB0byB0aGlzIHRlbXBsYXRlIGFuZCB1cGxvYWQgaXQgYWdhaW4uJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBcclxuXHJcblxyXG4gICAgLy9oYW5kbGUgdHlwZSBvZiBxdWVzdGlvbiBhbmQgb3B0aW9ucyBjb3VudFxyXG4gICAgZm9yIChsZXQgaSA9IDc7IGkgPD0gYXNzZXNzbWVudERhdGEubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgIGlmIChhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ011bHRpcGxlIENob2ljZScgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0NoZWNrYm94JyAmJlxyXG4gICAgICAgIGFzc2Vzc21lbnREYXRhW2ldWzBdICE9PSAnRHJvcGRvd24nICYmXHJcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdTaW5nbGUgVGV4dGJveCcgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0RhdGUgJiBUaW1lJyAmJlxyXG4gICAgICAgIGFzc2Vzc21lbnREYXRhW2ldWzBdICE9PSAnRmlsZSBVcGxvYWQnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICAvLyBpZiAoYXNzZXNzbWVudERhdGFbaV1bMV0gPT09ICcnKSB7XHJcbiAgICAgIC8vICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgdGhlIHdyb25nIHRlbXBsYXRlLiBQbGVhc2UgZG93bmxvYWQgdGhlIHRlbXBsYXRlIGFnYWluIHRvIHByb2NlZWQuJztcclxuICAgICAgLy8gICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICAvLyAgIHJldHVybiB0cnVlO1xyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplRW1wdHlSZXNwb25zZVNlZ21lbnQoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0aXRsZTogJycsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgbWF4U2NvcmU6IDEwLFxyXG4gICAgICBzZWdtZW50czogW11cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvc3RBc3Nlc3NtZW50KGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5pc1Nob3dMb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZS5jcmVhdGVBc3Nlc3NtZW50KHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnBvc3RBc3Nlc3NtZW50RGV0YWlscyhyZXNwb25zZS5faWQsIGRhdGEubW9kZSwgZGF0YS5hc3Nlc3NtZW50RGV0YWlscyk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzU2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcG9zdEFzc2Vzc21lbnREZXRhaWxzKGlkOiBhbnksIG1vZGU6IGFueSwgYXNzZXNzbWVudERldGFpbHM6IGFueSkge1xyXG5cclxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KGZhbHNlKTtcclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLmlzVXBsb2FkZWQnLCB0aGlzLmlzVXBsb2FkZWQpXHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBxdWVzdGlvbjogYXNzZXNzbWVudERldGFpbHMsXHJcbiAgICAgIGFjdGlvbjogXCJxdWVzdGlvbnNfc2F2ZVwiLFxyXG4gICAgICBzdGF0ZTogbW9kZVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2Uuc2F2ZUFzc2Vzc21lbnREZXRhaWxzKGlkLCBwYXlsb2FkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXNzZXNzbWVudERhdGEgPSB7fTtcclxuICAgICAgICB0aGlzLmlzU2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzU2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc21pbGV5QWN0aW9uKGlkOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKGlkKVxyXG4gICAgaWYgKGlkID09PSBzbWlsZXlBY3Rpb25zLlZJRVdfQVNTRVNTTUVOVFMpIHtcclxuICAgICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcclxuICAgICAgLy8gVE9ETzogTmF2aWdhdGUgdG8gJy9tYW5hZ2UtYXNzZXNzbWVudCdcclxuICAgICAgbGV0IHVybDogc3RyaW5nO1xyXG4gICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvbWFuYWdlLWFzc2Vzc21lbnQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHVybCA9ICdodHRwczovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvYXNzZXNzbWVudC9tYW5hZ2UtYXNzZXNzbWVudCc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2codXJsKTtcclxuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufSJdfQ==
|
|
@@ -49,7 +49,7 @@ function View_ImportAnAssessmentComponent_6(_l) { return i2.ɵvid(0, [(_l()(), i
|
|
|
49
49
|
} if (("closeSmiley" === en)) {
|
|
50
50
|
var pd_2 = (_co.closeSmiley($event) !== false);
|
|
51
51
|
ad = (pd_2 && ad);
|
|
52
|
-
} return ad; }, i7.View_SmileyDialogInlineComponent_0, i7.RenderType_SmileyDialogInlineComponent)), i2.ɵdid(1, 114688, null, 0, i8.SmileyDialogInlineComponent, [], { message: [0, "message"], actionButtons: [1, "actionButtons"] }, { action: "action", closeSmiley: "closeSmiley" })], function (_ck, _v) { var _co = _v.component; var currVal_0 = _co.
|
|
52
|
+
} return ad; }, i7.View_SmileyDialogInlineComponent_0, i7.RenderType_SmileyDialogInlineComponent)), i2.ɵdid(1, 114688, null, 0, i8.SmileyDialogInlineComponent, [], { message: [0, "message"], actionButtons: [1, "actionButtons"] }, { action: "action", closeSmiley: "closeSmiley" })], function (_ck, _v) { var _co = _v.component; var currVal_0 = _co.smileyMessageAction; var currVal_1 = _co.actionButtons; _ck(_v, 1, 0, currVal_0, currVal_1); }, null); }
|
|
53
53
|
function View_ImportAnAssessmentComponent_7(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 3, "div", [["class", "import"]], null, null, null, null, null)), (_l()(), i2.ɵeld(1, 0, null, null, 2, "app-create-assessment-container", [], null, [[null, "postAssessment"], [null, "setIsUploaded"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("postAssessment" === en)) {
|
|
54
54
|
var pd_0 = (_co.postAssessment($event) !== false);
|
|
55
55
|
ad = (pd_0 && ad);
|
|
@@ -79,4 +79,4 @@ export function View_ImportAnAssessmentComponent_0(_l) { return i2.ɵvid(0, [i2.
|
|
|
79
79
|
export function View_ImportAnAssessmentComponent_Host_0(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 1, "app-import-an-assessment", [], null, null, null, View_ImportAnAssessmentComponent_0, RenderType_ImportAnAssessmentComponent)), i2.ɵdid(1, 49152, null, 0, i19.ImportAnAssessmentComponent, [i20.AuthService, i21.AssessmentService], null, null)], null, null); }
|
|
80
80
|
var ImportAnAssessmentComponentNgFactory = i2.ɵccf("app-import-an-assessment", i19.ImportAnAssessmentComponent, View_ImportAnAssessmentComponent_Host_0, {}, { closeWorkflow: "closeWorkflow", disconnectRefresh: "disconnectRefresh" }, []);
|
|
81
81
|
export { ImportAnAssessmentComponentNgFactory as ImportAnAssessmentComponentNgFactory };
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50Lm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LWFzc2Vzc21lbnQvaW1wb3J0LWFuLWFzc2Vzc21lbnQvaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50Lm5nZmFjdG9yeS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LWFzc2Vzc21lbnQvaW1wb3J0LWFuLWFzc2Vzc21lbnQvaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzRUNlTSw0S0FDd0UsWUFERjs7d0JBQTRCO01BQWxHLHdCQUN3RSxLQUF4RCw0RkFBNkIsS0FBWixtQ0FBUSxNQUFJLCtDQUFrQjtzRUFDL0QsMEdBR00sS0FIa0UsbURBRXRFLE1BQUEscVBBQXdELHlCQUF2QyxtQkFBb0IsRUFBckMsWUFBd0QsRUFBdkMsU0FBb0I7c0VBRXZDLDZFQU1lLEtBTGIsMEdBQW1GLEtBQXBELDRGQUE2QixLQUFaLG1DQUFRLE1BQUksOENBQWlCLE1BQzdFLHVHQUdNLEtBSHNCLDBEQUUxQixNQUFBLG1JQUE0RCxZQUFwRDs7d0JBQTRCO01BQXBDLHdCQUE0RCxLQUF2QiwyQ0FBYztzRUFHdkQsb0dBQW1FLEtBQXBCLGtKQUFnQjtzRUFLckUsaVFBQTREO3NFQUs1RDs7d0JBQ2lHO01BQS9GOzt3QkFBK0I7TUFBQzs7d0JBQW1DO01BRHJFLGtSQUNpRyxtREFEcEQsbUJBQStCLHNCQUFDLG1CQUErQixnQkFBNUcsWUFDaUcsRUFEcEQsU0FBK0IsRUFBQyxTQUErQjtzRUFHNUcsK0ZBSU0sS0FISiw4TEFFa0MsWUFGMEM7O3dCQUF5QztNQUFDOzt3QkFBdUM7TUFBN0oscWhCQUVrQyxtREFGTyxtQ0FBa0MsRUFDekUsbUJBQWdDLGdCQURsQyxZQUVrQyxFQUZPLFNBQWtDLEVBQ3pFLFNBQWdDO3VIQTNDcEMsd0hBK0JNLEtBN0JKLG1IQTRCTSxLQTNCSix3SEEwQk0sS0F6QkosOEZBR00sS0FGSix3TUFDVyxLQUdiLDJFQUE2RCxLQUF6RCxpRkFBb0QsTUFDeEQsNEZBR0ssS0FGSCwyRUFBdUQsS0FBbkQsMkVBQThDLE1BQ2xELDRFQUFxRCxLQUFqRCw4RUFBNEMsTUFHbEQsNkxBQ3dFLElBQ3hFLDZMQUdNLElBQ04sNkxBTWUsSUFDZiw2TEFBbUUsSUFLekUsNkxBQTRELElBRTVEOzs7Ozs7Ozs7Ozt3QkFDa0M7TUFEZjs7d0JBQXVCO01BQ3hDOzt3QkFBNkI7TUFEL0Isc2pCQUNrQyxJQUVsQyw2TEFDaUcsSUFFakcsNkxBSU0saURBOUJ5Qix5REFBNEMsR0FBckUsYUFDd0UsRUFEL0MsU0FBNEMsR0FFdEMscURBQXdDLEdBQXZFLGFBR00sRUFIeUIsU0FBd0MsR0FJekQsb0RBQXVDLEdBQXJELGFBTWUsRUFORCxTQUF1QyxHQU81QixtQkFBcUIsZ0JBQTlDLGFBQW1FLEVBQTFDLFNBQXFCLEdBS2pDLG1CQUFvQixlQUF2QyxhQUE0RCxFQUF6QyxTQUFvQixHQUVwQixvQkFBdUIsWUFBMUMsYUFDa0MsRUFEZixVQUF1QixHQUdoQixvQkFBa0IsYUFBNUMsYUFDaUcsRUFEdkUsVUFBa0IsR0FHeEIsb0JBQWtCLGFBQXRDLGFBSU0sRUFKYyxVQUFrQiwyQkF6Q0osaUNBQTZCLEVBQS9ELFlBK0JNLEVBL0I0QixTQUE2QixHQW1DL0Qsd2FBQ2tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pMC5Db21wb25lbnRGYWN0b3J5O1xuIiwiPGRpdiBjbGFzcz1cImltcG9ydC1hbi1hc3Nlc3NtZW50XCIgW2F0dHIuaWRdPVwiJ3Njcm9sbFJlZmVyZW5jZSdcIj5cclxuICA8IS0tIG1haW4gY29udGFpbmVyIHN0YXJ0cyBoZXJlIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJpbXBvcnQtYW4tYXNzZXNzbWVudC1ib2R5XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW1wb3J0LWFuLWFzc2Vzc21lbnQtY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3NwcmVhZHNoZWV0LW11bHRpcGxlLWNhdGVnb3J5LnN2Z1wiXHJcbiAgICAgICAgICBhbHQ9XCJcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxoND5Zb3UgY2FuIGltcG9ydCBhbiBhc3Nlc3NtZW50IGluIGp1c3QgdHdvIGVhc3kgc3RlcHM6PC9oND5cclxuICAgICAgPHVsIGNsYXNzPVwibGlzdFwiPlxyXG4gICAgICAgIDxsaT5Eb3dubG9hZCB0aGUgdGVtcGxhdGUgYW5kIGZpbGwgaW4gdGhlIGRldGFpbHMuPC9saT5cclxuICAgICAgICA8bGk+VXBsb2FkIHRoZSAueGxzeCBmaWxlIGFuZCB5b3XigJlyZSBnb29kIHRvIGdvITwvbGk+XHJcbiAgICAgIDwvdWw+XHJcblxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiZG93bmxvYWRcIiAqbmdJZj1cImRvd25sb2FkU3RhdHVzID09PSAnTk9UX0RPV05MT0FESU5HJ1wiIChjbGljayk9XCJkb3dubG9hZFRlbXBsYXRlKClcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxYjs8L2k+IERvd25sb2FkIFRlbXBsYXRlPC9idXR0b24+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJidWxrLWJ0bi1wcm9ncmVzc1wiICpuZ0lmPVwiZG93bmxvYWRTdGF0dXMgPT09ICdET1dOTE9BRElORydcIj5cclxuICAgICAgICBEb3dubG9hZCBpbiBQcm9ncmVzc1xyXG4gICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCInMidcIj48L2FwcC1saW5lLWxvYWRlcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb3dubG9hZFN0YXR1cyA9PT0gJ0RPV05MT0FERUQnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1bGstYnRuLXByb2dyZXNzXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWM7PC9pPkRvd25sb2FkIENvbXBsZXRlPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1bGstYnRuLWFnYWluXCI+XHJcbiAgICAgICAgICBJcyB0aGUgZmlsZSBub3QgZG93bmxvYWRlZD9cclxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGUoKVwiPlJldHJ5IERvd25sb2FkPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImlzV3JvbmdGb3JtYXRcIj57e2Vycm9yTWVzc2FnZX19PC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwiaXNTaG93TG9hZGVyXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cclxuXHJcbjxpbnB1dCB0eXBlPVwiZmlsZVwiIFsobmdNb2RlbCldPVwiZmlsZVZhbHVlXCIgaWQ9XCJpYWEtZmlsZS1pbnB1dFwiIGFjY2VwdD1cIi54bHN4XCIgY2xhc3M9XCJoaWRkZW4taW5wdXRcIiBvbmNsaWNrPVwidGhpcy52YWx1ZSA9IG51bGxcIlxyXG4gIChjaGFuZ2UpPVwidXBsb2FkRmlsZSgkZXZlbnQpXCIgLz5cclxuXHJcbjxhcHAtc21pbGV5LWRpYWxvZy1pbmxpbmUgKm5nSWY9XCJzaG93U21pbGV5XCIgW21lc3NhZ2VdPVwic21pbGV5TWVzc2FnZUFjdGlvblwiIFthY3Rpb25CdXR0b25zXT1cImFjdGlvbkJ1dHRvbnNcIlxyXG4gIChhY3Rpb24pPVwic21pbGV5QWN0aW9uKCRldmVudClcIiAoY2xvc2VTbWlsZXkpPVwiY2xvc2VTbWlsZXkoJGV2ZW50KVwiPjwvYXBwLXNtaWxleS1kaWFsb2ctaW5saW5lPlxyXG5cclxuPGRpdiBjbGFzcz1cImltcG9ydFwiICpuZ0lmPVwiaXNVcGxvYWRlZFwiPlxyXG4gIDxhcHAtY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyICNlZGl0b3IgW29wZW5Qb3J0YWxdPVwiJ0FTU0VTU01FTlRfSU1QT1JUJ1wiIChwb3N0QXNzZXNzbWVudCk9XCJwb3N0QXNzZXNzbWVudCgkZXZlbnQpXCIgKHNldElzVXBsb2FkZWQpPVwic2V0SXNVcGxvYWRlZCgkZXZlbnQpXCJcclxuICAgIFthc3Nlc3NtZW50SlNPTl09XCJjb252ZXJ0ZWREYXRhXCI+XHJcbiAgPC9hcHAtY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyPlxyXG48L2Rpdj5cclxuIl19
|