vcomply-workflow-engine 2.6.30 → 2.6.32
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 +1008 -626
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.js +92 -39
- package/esm2015/lib/add-multiple-risk/add-multiple-risk.component.js +3 -3
- package/esm2015/lib/add-multiple-risk/add-multiple-risk.component.ngfactory.js +2 -2
- package/esm2015/lib/confirmation-alert/confirmation-alert.component.js +4 -4
- package/esm2015/lib/confirmation-alert/confirmation-alert.component.ngfactory.js +11 -4
- package/esm2015/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.js +1 -1
- package/esm2015/lib/formgroup/cs-radio/cs-radio.component.js +1 -2
- package/esm2015/lib/interfaces/confirmation-alert.js +1 -1
- package/esm2015/lib/log-an-issue/log-an-issue.component.js +16 -12
- package/esm2015/lib/log-an-issue/log-an-issue.component.ngfactory.js +49 -50
- package/esm2015/lib/log-an-issue/log-an-issue.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/assessment-editor/services/editor.service.js +1 -1
- package/esm2015/lib/sharedComponents/assessment-editor/services/validator.service.js +6 -4
- package/esm2015/lib/sharedComponents/assessment-editor/services/validator.service.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.js +4 -3
- package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.ngfactory.js +18 -17
- package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.js +8 -3
- package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.ngfactory.js +4 -3
- package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.js +1 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.js +2 -3
- package/esm2015/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.ngfactory.js +14 -15
- package/esm2015/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.js +2 -3
- package/esm2015/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.ngfactory.js +14 -15
- package/esm2015/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-container/frequency-container.component.js +2 -10
- package/esm2015/lib/sharedComponents/frequency/frequency-container/frequency-container.component.ngfactory.js +9 -9
- package/esm2015/lib/sharedComponents/frequency/frequency-container/frequency-container.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.js +2 -3
- package/esm2015/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.ngfactory.js +11 -12
- package/esm2015/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.js +2 -3
- package/esm2015/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.ngfactory.js +14 -15
- package/esm2015/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.js +2 -3
- package/esm2015/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.ngfactory.js +16 -17
- package/esm2015/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.js +2 -3
- package/esm2015/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.ngfactory.js +14 -15
- package/esm2015/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.js +2 -3
- package/esm2015/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.ngfactory.js +14 -15
- package/esm2015/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/program-listing/program-list-model.js +1 -1
- package/esm2015/lib/sharedComponents/program-listing/program-listing.component.js +303 -45
- package/esm2015/lib/sharedComponents/program-listing/program-listing.component.ngfactory.js +90 -74
- package/esm2015/lib/sharedComponents/program-listing/program-listing.component.ngsummary.json +1 -1
- package/esm2015/lib/sharedComponents/risk-classification/risk-classification.component.js +1 -1
- package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.js +1 -1
- package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js +1 -1
- package/esm2015/lib/workflow-assessment/workflow-assessment.component.js +1 -1
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +246 -140
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngfactory.js +283 -285
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +50 -18
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +22 -16
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-engine.module.js +2 -6
- package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
- package/esm2015/lib/workflow-policy/workflow-policy.component.js +1 -1
- package/esm2015/lib/workflow-program/create-program-ui/file-pill/file-pill.component.js +1 -1
- package/esm2015/lib/workflow-program/create-program-ui/form-field/form-field.component.js +1 -1
- package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.js +1 -1
- package/esm2015/lib/workflow-program/workflow-program.component.js +6 -4
- package/esm2015/lib/workflow-risk/workflow-risk.component.js +1 -1
- package/esm2015/lib/workflow-services/add-risk.service.js +7 -4
- package/esm2015/lib/workflow-services/auth.service.js +7 -4
- package/esm2015/lib/workflow-services/programs.service.js +10 -9
- package/esm2015/lib/workflow-services/responsibility.service.js +21 -13
- package/esm2015/lib/workflow-services/responsibility.service.ngsummary.json +1 -1
- package/esm2015/lib/workflow-survey-form/workflow-survey-form.component.js +1 -1
- package/esm2015/vcomply-workflow-engine.js +188 -190
- package/esm2015/vcomply-workflow-engine.ngsummary.json +1 -1
- package/fesm2015/vcomply-workflow-engine.js +797 -429
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/lib/interfaces/confirmation-alert.d.ts +1 -0
- package/lib/log-an-issue/log-an-issue.component.d.ts +3 -3
- package/lib/sharedComponents/assessment-editor/services/validator.service.d.ts +1 -0
- package/lib/sharedComponents/floating-bar/floating-bar.component.d.ts +2 -0
- package/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-container/frequency-container.component.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.d.ts +0 -1
- package/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.d.ts +0 -1
- package/lib/sharedComponents/program-listing/program-list-model.d.ts +2 -0
- package/lib/sharedComponents/program-listing/program-listing.component.d.ts +62 -1
- package/lib/workflow-compliance/workflow-compliance.component.d.ts +115 -13
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +2 -0
- package/lib/workflow-services/responsibility.service.d.ts +2 -2
- package/package.json +2 -2
- package/vcomply-workflow-engine.d.ts +187 -189
- package/vcomply-workflow-engine.metadata.json +1 -1
- package/esm2015/lib/sharedComponents/system-task-selector/system-task-selector.component.js +0 -54
- package/esm2015/lib/sharedComponents/system-task-selector/system-task-selector.component.ngfactory.js +0 -75
- package/esm2015/lib/sharedComponents/system-task-selector/system-task-selector.component.ngsummary.json +0 -1
- package/esm2015/lib/sharedComponents/tab-selector/tab-selector.component.js +0 -41
- package/esm2015/lib/sharedComponents/tab-selector/tab-selector.component.ngfactory.js +0 -23
- package/esm2015/lib/sharedComponents/tab-selector/tab-selector.component.ngsummary.json +0 -1
- package/lib/sharedComponents/system-task-selector/system-task-selector.component.d.ts +0 -19
- package/lib/sharedComponents/system-task-selector/system-task-selector.component.ngfactory.d.ts +0 -1
- package/lib/sharedComponents/tab-selector/tab-selector.component.d.ts +0 -17
- package/lib/sharedComponents/tab-selector/tab-selector.component.ngfactory.d.ts +0 -1
|
@@ -551,8 +551,8 @@ export class AddMultipleRiskComponent {
|
|
|
551
551
|
AddMultipleRiskComponent.decorators = [
|
|
552
552
|
{ type: Component, args: [{
|
|
553
553
|
selector: 'app-add-multiple-risk',
|
|
554
|
-
template: "<div class=\"add-multiple-risk\">\r\n <!-- main container starts here -->\r\n <div class=\"add-multiple-risk-body\" [class.disabled]=\"showCategoryList\">\r\n <div class=\"add-multiple-risk-container\">\r\n <div class=\"image\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/spreadsheet-multiple-category.svg\" alt=\"\" />\r\n </div>\r\n\r\n <h4>You can add multiple risk
|
|
555
|
-
styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::ng-deep .add-multiple-risk{background:#fff;position:relative;z-index:1}@media only screen and (min-width:1920px){::ng-deep .add-multiple-risk{height:calc(100vh - 200px);display:flex;align-items:center}}::ng-deep .add-multiple-risk-body{padding:0;display:block}::ng-deep .add-multiple-risk-body.disabled{pointer-events:none;filter:grayscale(1)}::ng-deep .add-multiple-risk-container{display:block;text-align:center}::ng-deep .add-multiple-risk-container .image{width:300px;margin:0 auto 24px}::ng-deep .add-multiple-risk-container h4{font-size:20px;line-height:30px;margin:0 0 20px;font-weight:500}::ng-deep .add-multiple-risk-container ul.list{padding:0;margin:0 0 40px;display:block;counter-reset:my-awesome-counter}::ng-deep .add-multiple-risk-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 .add-multiple-risk-container ul.list li:before{content:counter(my-awesome-counter) \". \"}::ng-deep .add-multiple-risk-container ul.list li+li{margin-top:4px}::ng-deep .add-multiple-risk-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 .add-multiple-risk-container button.download i{margin-right:8px}::ng-deep .add-multiple-risk-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 .add-multiple-risk-container .bulk-btn-progress i{color:#34aa44;font-size:14px;float:left;position:relative;margin:0 10px 0 0;font-weight:400}::ng-deep .add-multiple-risk-container .bulk-btn-progress span.progress{height:3px;position:absolute;bottom:0;left:0;width:100%;background:#1e5dd3}::ng-deep .add-multiple-risk-container .bulk-btn-again{color:#161b2f;font-size:11px;margin-top:10px}::ng-deep .add-multiple-risk-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 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;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select: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;font-size:16px;font-weight:400;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 label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::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;font-weight:400}::ng-deep .vx-form-group .input:-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group .input::placeholder,::ng-deep .vx-form-group input[type=text]::placeholder{color:#747576;font-weight:400}::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;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::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.first-field{z-index:2}::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;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::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 .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:300px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 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%}::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;position:static}::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:12px}::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;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select: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.disabled{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;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)}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;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!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@-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:18px;min-width:18px}::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}"]
|
|
554
|
+
template: "<div class=\"add-multiple-risk\">\r\n <!-- main container starts here -->\r\n <div class=\"add-multiple-risk-body\" [class.disabled]=\"showCategoryList\">\r\n <div class=\"add-multiple-risk-container\">\r\n <div class=\"image\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/spreadsheet-multiple-category.svg\" alt=\"\" />\r\n </div>\r\n\r\n <h4 id=\"multipleRisk\">You can add multiple risk in just three easy steps</h4>\r\n <ul class=\"list\">\r\n <li> Select a Risk Category.</li>\r\n <li> Download the template and fill in the details.</li>\r\n <li> Upload the .xlsx file and you're good to go!</li>\r\n </ul>\r\n <div class=\"vx-form-group\" [attr.id]=\"'scrollReference'\">\r\n <label class=\"vx-control-panel\">Risk Category <span class=\"required\">*</span></label>\r\n <div class=\"select\" *ngIf=\"!category.selectedCategory\">\r\n <input type=\"text\" (click)=\"showCategoryList=true;pickerChanged.emit(true)\" placeholder=\"Select Risk Category\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"category.selectedCategory\">\r\n <div class=\"chip-container\">\r\n <span class=\"chip\">\r\n <i class=\"icons\" (click)=\"removeCategory()\"></i>\r\n {{category?.selectedCategory?.category_name}}</span>\r\n </div>\r\n <button class=\"edit\" type=\"button\" (click)=\"showCategoryList=true;pickerChanged.emit(true)\"><i class=\"icons\"></i>\r\n Edit</button>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"category?.selectedCategory\" >\r\n <button *ngIf=\"downloadStatus === 'NOT_DOWNLOADING'\" class=\"download\" type=\"button\"\r\n (click)=\"downloadTemplate()\"> <i class=\"icons\"></i> Download Template\r\n </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\r\n </ng-container>\r\n <p class=\"error-message\" *ngIf=\"isWrongFile || isWrongFormat|| isFileEmpty\"\r\n >{{errorMessage}}</p>\r\n\r\n\r\n </div>\r\n </div>\r\n</div>\r\n<app-category-list *ngIf=\"showCategoryList\" [categoryList]=\"categoryList\" [selectedCategory]=\"category\"\r\n (saveSelectedCategory)=\"saveSelectedCategory($event);pickerChanged.emit(false)\" (closeCategoriesList)=\"showCategoryList=false;pickerChanged.emit(false)\">\r\n</app-category-list>\r\n<app-loader-inline *ngIf=\"isLoader\"></app-loader-inline>\r\n<app-bulk-view *ngIf=\"showExcel\"\r\n[riskBulkUpload]=\"riskBulkUpload\"\r\n[templateInfo]=\"templateInfo\"\r\n[defaultOwner]=\"defaultOwner\"\r\n[fileName]=\"fileName\"\r\n[loader]=\"loader\"\r\n[assessmentDaysEnable]=\"assessmentDeadLine\"\r\n(submitRiskBulkUpload)=\"submitRiskBulkUpload($event)\"\r\n(cancel)=\"reset()\"\r\n></app-bulk-view>\r\n\r\n<input type=\"file\" [(ngModel)]=\"fileValue\" id=\"fileInput\" class=\"hidden-input\" (change)=\"uploadedFile($event)\" />\r\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessage\" [actionButtons]=\"actionButtons\" (action)=\"action($event)\" (closeSmiley)=\"closeSmiley($event)\"></app-smiley-dialog-inline>",
|
|
555
|
+
styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::ng-deep .add-multiple-risk{background:#fff;position:relative;z-index:1}@media only screen and (min-width:1920px){::ng-deep .add-multiple-risk{height:calc(100vh - 200px);display:flex;align-items:center}}::ng-deep .add-multiple-risk-body{padding:0;display:block}::ng-deep .add-multiple-risk-body.disabled{pointer-events:none;filter:grayscale(1)}::ng-deep .add-multiple-risk-container{display:block;text-align:center}::ng-deep .add-multiple-risk-container .image{width:300px;margin:0 auto 24px}::ng-deep .add-multiple-risk-container h4{font-size:20px;line-height:30px;margin:0 0 20px;font-weight:500}::ng-deep .add-multiple-risk-container ul.list{padding:0;margin:0 0 40px;display:block;counter-reset:my-awesome-counter}::ng-deep .add-multiple-risk-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 .add-multiple-risk-container ul.list li:before{content:counter(my-awesome-counter) \". \"}::ng-deep .add-multiple-risk-container ul.list li+li{margin-top:4px}::ng-deep .add-multiple-risk-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 .add-multiple-risk-container button.download i{margin-right:8px}::ng-deep .add-multiple-risk-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 .add-multiple-risk-container .bulk-btn-progress i{color:#34aa44;font-size:14px;float:left;position:relative;margin:0 10px 0 0;font-weight:400}::ng-deep .add-multiple-risk-container .bulk-btn-progress span.progress{height:3px;position:absolute;bottom:0;left:0;width:100%;background:#1e5dd3}::ng-deep .add-multiple-risk-container .bulk-btn-again{color:#161b2f;font-size:11px;margin-top:10px}::ng-deep .add-multiple-risk-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 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;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select: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;font-size:16px;font-weight:400;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 label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::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;font-weight:400}::ng-deep .vx-form-group .input:-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group .input::placeholder,::ng-deep .vx-form-group input[type=text]::placeholder{color:#747576;font-weight:400}::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;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::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.first-field{z-index:2}::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;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::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 .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:300px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 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%}::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;position:static}::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:12px}::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;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select: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.disabled{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;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)}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;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!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@-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:18px;min-width:18px}::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}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}"]
|
|
556
556
|
},] }
|
|
557
557
|
];
|
|
558
558
|
AddMultipleRiskComponent.ctorParameters = () => [
|
|
@@ -566,4 +566,4 @@ AddMultipleRiskComponent.propDecorators = {
|
|
|
566
566
|
closeWorkflow: [{ type: Output }],
|
|
567
567
|
disconnectRefresh: [{ type: Output }]
|
|
568
568
|
};
|
|
569
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW11bHRpcGxlLXJpc2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvYWRkLW11bHRpcGxlLXJpc2svYWRkLW11bHRpcGxlLXJpc2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVMsTUFBTSxFQUFFLFlBQVksRUFBNkQsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQVNoRSxNQUFNLE9BQU8sd0JBQXdCO0lBNEVuQyxZQUFvQixXQUEyQixFQUNyQyxXQUF3QixFQUFVLFFBQXdCO1FBRGhELGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUNyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBNUUxRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuQyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELGlCQUFZLEdBQWlCO1lBQzNCLFNBQVMsRUFBRTtnQkFDVCxJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLEVBQUU7YUFDVDtZQUNELFdBQVcsRUFBRTtnQkFDWCxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsSUFBSSxF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aEUsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksR0FBVyxDQUFDO1FBQ2hCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2hELEdBQUcsR0FBRyxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDeEM7YUFBTTtZQUNMLEdBQUcsR0FBRyxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDekM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoRCxHQUFHLElBQUksZ0JBQWdCLENBQUM7U0FDekI7YUFBTTtZQUNMLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQztTQUM5QjtRQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUM3QixDQUFDOzs7WUEzbEJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxraUlBQWlEOzthQUdsRDs7O1lBVFEsY0FBYztZQUNkLFdBQVc7WUFGWCxlQUFlOzs7NEJBWXJCLE1BQU07NkJBQ04sTUFBTTs0QkFDTixNQUFNO2dDQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IENhdGVnb3J5TGlzdCB9IGZyb20gJy4uL2ludGVyZmFjZXMvY2F0ZWdvcnlMaXN0JztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkZFJpc2tTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYWRkLXJpc2suc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuXHJcbnR5cGUgQU9BID0gYW55W11bXTtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLW11bHRpcGxlLXJpc2snLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtbXVsdGlwbGUtcmlzay5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLW11bHRpcGxlLXJpc2suY29tcG9uZW50Lmxlc3MnLCAnLi4vZm9ybXMubGVzcyddLFxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZE11bHRpcGxlUmlza0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBAT3V0cHV0KCkgcGlja2VyQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcG9wdWxhdGVPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlV29ya2Zsb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRpc2Nvbm5lY3RSZWZyZXNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGNhdGVnb3J5TGlzdDogQ2F0ZWdvcnlMaXN0ID0ge1xyXG4gICAgc3RyYXRlZ2ljOiB7XHJcbiAgICAgIG5hbWU6ICdTVFJBVEVHSUMnLFxyXG4gICAgICBkYXRhOiBbXVxyXG4gICAgfSxcclxuICAgIG9wZXJhdGlvbmFsOiB7XHJcbiAgICAgIG5hbWU6ICdPUEVSQVRJT05BTCcsXHJcbiAgICAgIGRhdGE6IFtdXHJcbiAgICB9LFxyXG4gICAgY29tcGxpYW5jZToge1xyXG4gICAgICBuYW1lOiAnQ09NUExJQU5DRScsXHJcbiAgICAgIGRhdGE6IFtdXHJcbiAgICB9LFxyXG4gICAgb3RoZXJzOiB7XHJcbiAgICAgIG5hbWU6ICdPVEhFUlMnLFxyXG4gICAgICBkYXRhOiBbXVxyXG4gICAgfSxcclxuICB9O1xyXG5cclxuICBjYXRlZ29yeTogYW55ID0ge1xyXG4gICAgdHlwZTogJ3N0cmF0ZWdpYycsXHJcbiAgICBzZWxlY3RlZENhdGVnb3J5OiAnJyxcclxuICB9XHJcblxyXG4gIHJpc2tCdWxrVXBsb2FkOiBhbnkgPSB7XHJcbiAgICBoZWFkZXI6IFtdLFxyXG4gICAgd2VpZ2h0RmFjdG9yczogW10sXHJcbiAgICByaXNrczogW10sXHJcbiAgfVxyXG5cclxuICB0ZW1wbGF0ZUluZm86IGFueSA9IHtcclxuICAgIG1lbWJlcklkOiAnJyxcclxuICAgIGNhdGVnb3J5SWQ6ICcnLFxyXG4gICAgb3duZXJMaXN0OiBbXSxcclxuICAgIHJjTGlzdDogW10sXHJcbiAgICBtaXRpZ2F0aW9uTGlzdDogW10sXHJcbiAgICBsaWtlbGlob29kOltdLFxyXG4gICAgaW1wYWN0OltdLFxyXG4gICAgdmVsb2NpdHk6W10sXHJcbiAgICB2dWxuZXJhYmlsaXR5OltdXHJcbiAgfVxyXG5cclxuICBpc0xvYWRlciA9IGZhbHNlO1xyXG4gIHNob3dDYXRlZ29yeUxpc3QgPSBmYWxzZTtcclxuICB0ZW1wbGF0ZURvd25sb2FkZWQgPSBmYWxzZTtcclxuICBkb3dubG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICBsb2FkZXIgPSBmYWxzZTtcclxuICBzZXR0aW5nc0luZm8gITogYW55O1xyXG4gIGlzRmlsZUVtcHR5ID0gZmFsc2U7XHJcbiAgaXNXcm9uZ0ZpbGUgPSBmYWxzZTtcclxuICBpc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgZmlsZU5hbWU6IGFueTtcclxuICBkYXRhOiBhbnk7XHJcbiAgYXNzZXNzbWVudERlYWRMaW5lOiBhbnk7XHJcbiAgc2hvd0V4Y2VsID0gZmFsc2U7XHJcbiAgZmlsZVZhbHVlOmFueTtcclxuICBtZW1iZXJJZCA9IDA7XHJcbiAgb3JnYW5pemF0aW9uSWQgPSAwO1xyXG4gIGVycm9yTWVzc2FnZSA9IFwiIGludmFsaWQgZmlsZSBlcnJvclwiXHJcbiAgZG93bmxvYWRTdGF0dXM6IHN0cmluZyA9ICdOT1RfRE9XTkxPQURJTkcnO1xyXG4gIGRvd25sb2FkUGVyY2VudCA9IDA7XHJcblxyXG4gIHNtaWxleU1lc3NhZ2UgPSBgWW91J3JlIEFsbCBTZXQhIFdlJ3JlIHVwbG9hZGluZyB0aGUgcmlza3MuIFRoZSByaXNrIG93bmVycyB3aWxsIGJlIG5vdGlmaWVkIG9uY2UgdGhlIHJpc2tzIGhhdmUgYmVlbiB1cGxvYWRlZC5gO1xyXG4gIGFjdGlvbkJ1dHRvbnMgPSBbXHJcbiAgICB7IGJ1dHRvblRleHQ6ICdBZGQgTW9yZSBSaXNrcycsIGNsYXNzOiAnd2hpdGUtYnRuJywgaWQ6ICdhZGRNb3JlJyB9LFxyXG4gICAgeyBidXR0b25UZXh0OiAnVmlldyBSaXNrJywgY2xhc3M6ICdibHVlLWJ0bicsIGlkOiAndmlld1Jpc2tzJyB9LFxyXG4gIF07XHJcbiAgc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gIG1lbWJlcl9vYmpfaWQgPSAnJztcclxuICBkZWZhdWx0T3duZXIgPSAnJ1xyXG4gIHJpc2tEYXRhICE6YW55O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmlza1NlcnZpY2U6IEFkZFJpc2tTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UscHJpdmF0ZSAgc25hY2tCYXI6U25hY2tCYXJTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblxyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICAgIHRoaXMuZ2V0Q2F0ZWdvcnlMaXN0KCk7XHJcbiAgICB0aGlzLmdldFNldHRpbmdzSW5mbygpO1xyXG5cclxuICAgIHRoaXMub3JnYW5pemF0aW9uSWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbklkKCk7XHJcbiAgICB0aGlzLm1lbWJlcklkID0gdGhpcy5hdXRoU2VydmljZS5nZXRNZW1iZXJJZCgpO1xyXG4gICAgdGhpcy5tZW1iZXJfb2JqX2lkID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyRGV0YWlscygpLl9pZDtcclxuICB9XHJcbiAgZ2V0Q2F0ZWdvcnlMaXN0KCkge1xyXG4gICAgdGhpcy5pc0xvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLnJpc2tTZXJ2aWNlLmdldENhdGVnb3J5TGlzdCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdC5zdHJhdGVnaWMuZGF0YSA9IHJlcy5zdHJhdGVnaWNfYXJyO1xyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdC5vcGVyYXRpb25hbC5kYXRhID0gcmVzLm9wZXJhdGlvbmFsX2FycjtcclxuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QuY29tcGxpYW5jZS5kYXRhID0gcmVzLmNvbXBsaWFuY2VfYXJyO1xyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdC5vdGhlcnMuZGF0YSA9IHJlcy5vdGhlcnNfYXJyO1xyXG5cclxuICAgIH0sIGVyciA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuICBzYXZlU2VsZWN0ZWRDYXRlZ29yeShjYXRlZ29yeTogYW55KSB7XHJcbiAgICBpZih0aGlzLmNhdGVnb3J5Py5zZWxlY3RlZENhdGVnb3J5Py5jYXRlZ29yeV9pZCAhPWNhdGVnb3J5Py5zZWxlY3RlZENhdGVnb3J5Py5jYXRlZ29yeV9pZCl7XHJcbiAgICAgIHRoaXMuZG93bmxvYWRTdGF0dXMgPSAnTk9UX0RPV05MT0FESU5HJztcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0NhdGVnb3J5TGlzdCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXRlZ29yeSA9IGNhdGVnb3J5O1xyXG4gICAgY29uc3QgcmVmZXJlbmNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Njcm9sbFJlZmVyZW5jZScpO1xyXG4gICAgaWYgKHJlZmVyZW5jZSkge1xyXG4gICAgICByZWZlcmVuY2Uuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJyB9KTtcclxuICAgIH1cclxuICAgIHRoaXMucmVzZXQoKTtcclxuXHJcbiAgfVxyXG4gIHJlbW92ZUNhdGVnb3J5KCkge1xyXG4gICAgdGhpcy5jYXRlZ29yeSA9IHtcclxuICAgICAgdHlwZTogJ3N0cmF0ZWdpYycsXHJcbiAgICAgIHNlbGVjdGVkQ2F0ZWdvcnk6ICcnXHJcbiAgICB9O1xyXG4gICAgdGhpcy5yZXNldCgpO1xyXG4gIH1cclxuICBnZXRTZXR0aW5nc0luZm8oKSB7XHJcblxyXG4gICAgdGhpcy5yaXNrU2VydmljZS5nZXRSaXNrU2V0dGluZ0RldGFpbHMoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5zZXR0aW5nc0luZm8gPSByZXM7XHJcbiAgICB9LCBlcnIgPT4ge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG4gIHRyaWdnZXJCcm93c2VGaWxlKCkge1xyXG4gICAgY29uc3QgZ2V0RmlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlSW5wdXQnKTtcclxuICAgIGlmIChnZXRGaWxlKSB7XHJcbiAgICAgIGdldEZpbGUuY2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwbG9hZGVkRmlsZShldmVudDogYW55KSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLnJpc2tCdWxrVXBsb2FkID0ge1xyXG4gICAgICAgIGhlYWRlcjogW10sXHJcbiAgICAgICAgd2VpZ2h0RmFjdG9yczogW10sXHJcbiAgICAgICAgcmlza3M6IFtdXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50ZW1wbGF0ZUluZm8gPSB7XHJcbiAgICAgICAgbWVtYmVySWQ6ICcnLFxyXG4gICAgICAgIGNhdGVnb3J5SWQ6ICcnLFxyXG4gICAgICAgIG93bmVyTGlzdDogW10sXHJcbiAgICAgICAgcmNMaXN0OiBbXSxcclxuICAgICAgICBtaXRpZ2F0aW9uTGlzdDogW10sXHJcbiAgICAgICAgbGlrZWxpaG9vZDpbXSxcclxuICAgICAgICBpbXBhY3Q6W10sXHJcbiAgICAgICAgdmVsb2NpdHk6W10sXHJcbiAgICAgICAgdnVsbmVyYWJpbGl0eTpbXVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzY3JvbGxSZWZlcmVuY2UnKTtcclxuICAgICAgaWYgKHJlZmVyZW5jZSkge1xyXG4gICAgICAgIHJlZmVyZW5jZS5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdjZW50ZXInIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaXNGaWxlRW1wdHkgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc1dyb25nRmlsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5maWxlTmFtZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXS5uYW1lO1xyXG5cclxuICAgICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldmVudC50YXJnZXQgYXMgRGF0YVRyYW5zZmVyO1xyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGN1cmx5XHJcbiAgICAgIGlmICh0YXJnZXQuZmlsZXMubGVuZ3RoICE9PSAxKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1c2UgbXVsdGlwbGUgZmlsZXMnKTtcclxuICAgICAgY29uc3QgcmVhZGVyOiBGaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnJlYWQoYnN0ciwgeyB0eXBlOiAnYmluYXJ5JyB9KTtcclxuICAgICAgICBjb25zdCB3c25hbWU6IHN0cmluZyA9IHdiLlNoZWV0TmFtZXNbMF07XHJcbiAgICAgICAgY29uc3Qgd3NuYW1lMTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1sxXTtcclxuXHJcbiAgICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcbiAgICAgICAgY29uc3QgdGVtcERhdGE6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZTFdO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24od3MsIHtcclxuICAgICAgICAgIGhlYWRlcjogMSxcclxuICAgICAgICB9KSBhcyBBT0E7XHJcblxyXG4gICAgICAgIGNvbnN0IHREYXRhID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHRlbXBEYXRhLCB7IGhlYWRlcjogMSB9KSBhcyBBT0E7XHJcbiAgICAgICAgY29uc3QgdGVtcExpc3QgPSB0RGF0YS5maWx0ZXIoKGRhdGFFbGVtZW50OiBhbnkpID0+IGRhdGFFbGVtZW50Lmxlbmd0aCA+IDApO1xyXG4gICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLm1lbWJlcklkID0gdGVtcExpc3RbMF1bNTZdXHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8uY2F0ZWdvcnlJZCA9IHRlbXBMaXN0WzBdWzU1XVxyXG4gICAgICAgIHRoaXMucmlza0J1bGtVcGxvYWQuaGVhZGVyID0gY2xvbmVEZWVwKHRoaXMuZGF0YVs0XS5maWx0ZXIoKGRhdGFFbGVtZW50OiBhbnkpID0+IGRhdGFFbGVtZW50Lmxlbmd0aCA+IDApKTtcclxuICAgICAgICB0aGlzLnJpc2tCdWxrVXBsb2FkLndlaWdodEZhY3RvcnMgPSBjbG9uZURlZXAodGhpcy5kYXRhWzVdLmZpbHRlcigod2VpZ2h0RmFjdG9yOiBhbnkpID0+IHdlaWdodEZhY3Rvci5sZW5ndGggPiAwKSk7XHJcbiAgICAgICAgdGVtcExpc3QuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnRbOF0pIHtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG1lbWJlciA9IHtcclxuICAgICAgICAgICAgICBuYW1lOiBlbGVtZW50WzhdLFxyXG4gICAgICAgICAgICAgIG1lbWJlcl9pZDogZWxlbWVudFs5XVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLm93bmVyTGlzdC5wdXNoKG1lbWJlcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZWxlbWVudFsyXSkge1xyXG5cclxuICAgICAgICAgICAgY29uc3QgbWl0aWdhdGlvbiA9IHtcclxuICAgICAgICAgICAgICBtaXRpZ2F0aW9uTmFtZTogZWxlbWVudFsyXSxcclxuICAgICAgICAgICAgICBtaXRpZ2F0aW9uX2lkOiBlbGVtZW50WzNdXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8ubWl0aWdhdGlvbkxpc3QucHVzaChtaXRpZ2F0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlbGVtZW50WzZdKSB7XHJcblxyXG4gICAgICAgICAgICBjb25zdCByYyA9IHtcclxuICAgICAgICAgICAgICByY05hbWU6IGVsZW1lbnRbNl0sXHJcbiAgICAgICAgICAgICAgcmNfaWQ6IGVsZW1lbnRbN10sXHJcbiAgICAgICAgICAgICAgb3duZXJfaWRzOiBlbGVtZW50WzExXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLnJjTGlzdC5wdXNoKHJjKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoZWxlbWVudFsxMl0pIHsgICAgICAgICAgIFxyXG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlSW5mby5saWtlbGlob29kLnB1c2goZWxlbWVudFsxMl0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnRbMTNdKSB7ICAgICAgICAgICBcclxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8uaW1wYWN0LnB1c2goZWxlbWVudFsxM10pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMucmlza0J1bGtVcGxvYWQud2VpZ2h0RmFjdG9ycy5sZW5ndGggPj0gMyAmJiBlbGVtZW50WzE0XSkge1xyXG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlSW5mby52ZWxvY2l0eS5wdXNoKGVsZW1lbnRbMTRdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnJpc2tCdWxrVXBsb2FkLndlaWdodEZhY3RvcnMubGVuZ3RoID09IDQgJiYgZWxlbWVudFsxNV0pIHtcclxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8udnVsbmVyYWJpbGl0eS5wdXNoKGVsZW1lbnRbMTVdKTtcclxuXHJcbiAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZmlsZU5hbWUuc3Vic3RyKC01KSAhPT0gJy54bHN4Jykge1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnVGhlIGluY29ycmVjdCBmaWxlIGhhcyBiZWVuIHVwbG9hZGVkLiBQbGVhc2UgdXBsb2FkIHRoZSB0ZW1wbGF0ZSBmaWxlIGZvciBSaXNrIENhdGVnb3J5OicgKyB0aGlzLmNhdGVnb3J5LnNlbGVjdGVkQ2F0ZWdvcnkuY2F0ZWdvcnlfbmFtZSArICcgUkVUUlknO1xyXG5cclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMucmlza0J1bGtVcGxvYWQuaGVhZGVyWzBdICE9PSAnUmlzayBOYW1lKicpIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1RoZSBpbmNvcnJlY3QgZmlsZSBoYXMgYmVlbiB1cGxvYWRlZC4gUGxlYXNlIHVwbG9hZCB0aGUgdGVtcGxhdGUgZmlsZSBmb3IgUmlzayBDYXRlZ29yeTonICsgdGhpcy5jYXRlZ29yeS5zZWxlY3RlZENhdGVnb3J5LmNhdGVnb3J5X25hbWUgKyAnIFJFVFJZJztcclxuXHJcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YS5zbGljZSg3KTtcclxuICAgICAgICBjb25zdCBkZWZhdWx0T3duZXIgPSB0aGlzLnRlbXBsYXRlSW5mby5vd25lckxpc3QuZmluZEluZGV4KChlbGU6IGFueSkgPT4gZWxlLm1lbWJlcl9pZCA9PSB0aGlzLm1lbWJlcklkKTtcclxuICAgICAgICBpZihkZWZhdWx0T3duZXIgIT0tMSl7XHJcbiAgICAgICAgICB0aGlzLmRlZmF1bHRPd25lciA9IHRoaXMudGVtcGxhdGVJbmZvLm93bmVyTGlzdFtkZWZhdWx0T3duZXJdLm5hbWVcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1RoZSBpbmNvcnJlY3QgZmlsZSBoYXMgYmVlbiB1cGxvYWRlZC4gUGxlYXNlIHVwbG9hZCB0aGUgdGVtcGxhdGUgZmlsZSBmb3IgUmlzayBDYXRlZ29yeTonICsgdGhpcy5jYXRlZ29yeS5zZWxlY3RlZENhdGVnb3J5LmNhdGVnb3J5X25hbWUgKyAnIFJFVFJZJztcclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCh0aGlzLm1lbWJlcl9vYmpfaWQgIT0gdGhpcy50ZW1wbGF0ZUluZm8ubWVtYmVySWQpIHx8ICh0aGlzLmNhdGVnb3J5LnNlbGVjdGVkQ2F0ZWdvcnkuX2lkICE9IHRoaXMudGVtcGxhdGVJbmZvLmNhdGVnb3J5SWQpKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdUaGUgaW5jb3JyZWN0IGZpbGUgaGFzIGJlZW4gdXBsb2FkZWQuIFBsZWFzZSB1cGxvYWQgdGhlIHRlbXBsYXRlIGZpbGUgZm9yIFJpc2sgQ2F0ZWdvcnk6JyArIHRoaXMuY2F0ZWdvcnkuc2VsZWN0ZWRDYXRlZ29yeS5jYXRlZ29yeV9uYW1lICsgJyBSRVRSWSc7XHJcblxyXG4gICAgICAgICAgdGhpcy5pc1dyb25nRmlsZSA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBpc0VtcHR5ID0gdGhpcy5jaGVja0VtcHR5RmlsZSgpO1xyXG4gICAgICAgIGlmIChpc0VtcHR5KSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCBhIGJsYW5rIHRlbXBsYXRlLiBQbGVhc2UgYWRkIGRldGFpbHMgZm9yIGFsbCBtYW5kYXRvcnkgZmllbGRzLiBSRVRSWSc7XHJcbiAgICAgICAgICB0aGlzLmlzRmlsZUVtcHR5ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHRoaXMucmlza0J1bGtVcGxvYWQuaGVhZGVyWzZdID09PSAnUmlzayBBc3Nlc3NtZW50IERlYWRsaW5lKicpIHtcclxuICAgICAgICAgICAgdGhpcy5hc3Nlc3NtZW50RGVhZExpbmUgPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hc3Nlc3NtZW50RGVhZExpbmUgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuaXNGaWxlRW1wdHkgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5maWxlVmFsdWUgPSAnJztcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHJpc2tEYXRhID0gdGhpcy5kYXRhLmZpbHRlcigoZGF0YUVsZW1lbnQ6IGFueSkgPT4gZGF0YUVsZW1lbnQubGVuZ3RoID4gMCk7XHJcblxyXG4gICAgICAgIHJpc2tEYXRhLmZvckVhY2goKHJpc2s6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgIGNvbnN0IG9iajogYW55ID0ge1xyXG4gICAgICAgICAgICByaXNrTmFtZTogcmlza1swXSA/PyAnJyxcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHJpc2tbMV0gPz8gJycsXHJcbiAgICAgICAgICAgIHJjTmFtZTogcmlza1syXSA/PyAnJyxcclxuICAgICAgICAgICAgb3duZXI6IHJpc2tbM10gPz8gJycsXHJcbiAgICAgICAgICAgIG1pdGlnYXRpb25Qcmlvcml0eTogcmlza1s0XSA/PyAnJyxcclxuICAgICAgICAgICAgb3ZlcnNlZXI6IHJpc2tbNV0gPz8gJycsXHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IHRoaXMuY2hlY2tWYWxpZGl0eShyaXNrKSxcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5hc3Nlc3NtZW50RGVhZExpbmUpIHtcclxuICAgICAgICAgICAgb2JqLmFzc2Vzc21lbnREZWFkTGluZSA9IHJpc2tbNl0gPz8gJyc7XHJcbiAgICAgICAgICAgIG9iai5saWtlbGlob29kID0gcmlza1s3XSA/PyAnJztcclxuICAgICAgICAgICAgb2JqLmltcGFjdCA9IHJpc2tbOF0gPz8gJyc7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJpc2tCdWxrVXBsb2FkLndlaWdodEZhY3RvcnMubGVuZ3RoID09IDMpIHtcclxuICAgICAgICAgICAgICBvYmoudmVsb2NpdHkgPSByaXNrWzldID8/ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJpc2tCdWxrVXBsb2FkLndlaWdodEZhY3RvcnMubGVuZ3RoID09IDQpIHtcclxuICAgICAgICAgICAgICBvYmoudmVsb2NpdHkgPSByaXNrWzldID8/ICcnO1xyXG4gICAgICAgICAgICAgIG9iai52dWxuZXJhYmlsaXR5ID0gcmlza1sxMF0gPz8gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgY3VzdG9tVGFnczogYW55ID0gW107XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5LnNlbGVjdGVkQ2F0ZWdvcnkuY3VzdG9tX3RhZy5mb3JFYWNoKCh0YWc6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICh0YWcpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNUYWcgPSB7XHJcbiAgICAgICAgICAgICAgICAgIGN1c3RvbV90YWdfdmFsdWU6IHJpc2tbNyArIHRoaXMucmlza0J1bGtVcGxvYWQud2VpZ2h0RmFjdG9ycy5sZW5ndGggKyBpbmRleF0gPz8gJycsXHJcbiAgICAgICAgICAgICAgICAgIGN1c3RvbV90YWdfbmFtZTogdGFnLnRhZ05hbWVcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBjdXN0b21UYWdzLnB1c2goY1RhZyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgb2JqLmN1c3RvbVRhZyA9IGN1c3RvbVRhZ3M7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBvYmoubGlrZWxpaG9vZCA9IHJpc2tbNl0gPz8gJyc7XHJcbiAgICAgICAgICAgIG9iai5pbXBhY3QgPSByaXNrWzddID8/ICcnO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMucmlza0J1bGtVcGxvYWQud2VpZ2h0RmFjdG9ycy5sZW5ndGggPT0gMykge1xyXG4gICAgICAgICAgICAgIG9iai52ZWxvY2l0eSA9IHJpc2tbOF0gPz8gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMucmlza0J1bGtVcGxvYWQud2VpZ2h0RmFjdG9ycy5sZW5ndGggPT0gNCkge1xyXG4gICAgICAgICAgICAgIG9iai52ZWxvY2l0eSA9IHJpc2tbOF0gPz8gJyc7XHJcbiAgICAgICAgICAgICAgb2JqLnZ1bG5lcmFiaWxpdHkgPSByaXNrWzldID8/ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbVRhZ3M6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5LnNlbGVjdGVkQ2F0ZWdvcnkuY3VzdG9tX3RhZy5mb3JFYWNoKCh0YWc6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICh0YWcpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNUYWcgPSB7XHJcbiAgICAgICAgICAgICAgICAgIGN1c3RvbV90YWdfdmFsdWU6IHJpc2tbNiArIHRoaXMucmlza0J1bGtVcGxvYWQud2VpZ2h0RmFjdG9ycy5sZW5ndGggKyBpbmRleF0gPz8gJycsXHJcbiAgICAgICAgICAgICAgICAgIGN1c3RvbV90YWdfbmFtZTogdGFnLnRhZ05hbWVcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBjdXN0b21UYWdzLnB1c2goY1RhZyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgb2JqLmN1c3RvbVRhZyA9IGN1c3RvbVRhZ3M7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAob2JqLmxpa2VsaWhvb2QgJiYgIXRoaXMudGVtcGxhdGVJbmZvLmxpa2VsaWhvb2QuaW5jbHVkZXMob2JqLmxpa2VsaWhvb2QpKSB7ICAgICAgICAgICBcclxuICAgICAgICAgICAgb2JqLmlzVmFsaWQ9ZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAob2JqLmltcGFjdCAmJiAhdGhpcy50ZW1wbGF0ZUluZm8uaW1wYWN0LmluY2x1ZGVzKG9iai5pbXBhY3QpKSB7ICAgICAgICAgICBcclxuICAgICAgICAgICAgb2JqLmlzVmFsaWQ9ZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAob2JqLnZlbG9jaXR5ICYmICF0aGlzLnRlbXBsYXRlSW5mby52ZWxvY2l0eS5pbmNsdWRlcyhvYmoudmVsb2NpdHkpKSB7ICAgICAgICAgICBcclxuICAgICAgICAgICAgb2JqLmlzVmFsaWQ9ZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAob2JqLnZ1bG5lcmFiaWxpdHkgJiYgIXRoaXMudGVtcGxhdGVJbmZvLnZ1bG5lcmFiaWxpdHkuaW5jbHVkZXMob2JqLnZ1bG5lcmFiaWxpdHkpKSB7ICAgICAgICAgICBcclxuICAgICAgICAgICAgb2JqLmlzVmFsaWQ9ZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIFxyXG5cclxuICAgICAgICAgIHRoaXMucmlza0J1bGtVcGxvYWQucmlza3MucHVzaChvYmopO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuaXNGaWxlRW1wdHkgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93RXhjZWwgPSB0cnVlO1xyXG4gICAgICB9O1xyXG4gICAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRhcmdldC5maWxlc1swXSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0VtcHR5RmlsZSgpIHtcclxuICAgIGxldCBpc0VtcHR5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEuZmlsdGVyKChkYXRhRWxlbWVudDogYW55KSA9PiBkYXRhRWxlbWVudC5sZW5ndGggPiAwKTtcclxuICAgIGlmICh0aGlzLmRhdGEubGVuZ3RoIDwgMSkge1xyXG4gICAgICBpc0VtcHR5ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBpc0VtcHR5O1xyXG4gIH1cclxuXHJcbiAgY2hlY2tWYWxpZGl0eShyaXNrOiBhbnkpIHtcclxuICAgIGNvbnN0IHJlID0gLyZuYnNwO3w8YnI+L2c7XHJcbiAgICBsZXQgdHJpbW1lZE5hbWUgPSAocmlza1swXSkgPyByaXNrWzBdLnRvU3RyaW5nKCkucmVwbGFjZShyZSwgJycpLnRyaW0oKSA6ICcnO1xyXG4gICAgdHJpbW1lZE5hbWUgPSB0cmltbWVkTmFtZS5yZXBsYWNlKC8gICsvZywgJyAnKTtcclxuICAgIGlmICgoIXRyaW1tZWROYW1lKSB8fCAocmlza1szXSAmJiAocmlza1szXSA9PSByaXNrWzVdKSkgfHwgKCghcmlza1szXSkgJiYgKHRoaXMuZGVmYXVsdE93bmVyID09IHJpc2tbNV0pKVxyXG4gICAgICB8fCAoIXJpc2tbMl0pIHx8ICh0aGlzLmFzc2Vzc21lbnREZWFkTGluZSAmJiAoIXJpc2tbNl0pKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2UgeyByZXR1cm4gdHJ1ZSB9XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9ICdET1dOTE9BRElORyc7XHJcbiAgICB0aGlzLmRvd25sb2FkUGVyY2VudCA9IDA7XHJcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpO1xyXG4gICAgY29uc3QgZG93bmxvYWREYXRlID0gdG9kYXlbMF07XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9ICdWQ29tcGx5IC0gUmlzayBNb2R1bGUgLSBBZGQgTXVsdGlwbGUgUmlza3MgLSAnKyB0aGlzLmNhdGVnb3J5Py5zZWxlY3RlZENhdGVnb3J5Py5jYXRlZ29yeV9uYW1lICsnIC0gJyArIGRvd25sb2FkRGF0ZSArICcueGxzeCc7XHJcblxyXG4gICAgdGhpcy5yaXNrU2VydmljZS5kb3dubG9hZFRlbXBsYXRlKHRoaXMuY2F0ZWdvcnkuc2VsZWN0ZWRDYXRlZ29yeS5faWQpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLmxvYWRlZCkge1xyXG4gICAgICAgICAgdGhpcy5kb3dubG9hZFBlcmNlbnQgPSAxMDAgKiAoZGF0YS5sb2FkZWQgLyBkYXRhLnRvdGFsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRhdGEuYm9keSkge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZG93bmxvYWRTdGF0dXMgPSB0aGlzLnJpc2tTZXJ2aWNlLmRvd25Mb2FkRmlsZShkYXRhLmJvZHksICdhcHBsaWNhdGlvbi94bHN4JywgZmlsZU5hbWUpO1xyXG4gICAgICAgICAgfSwgMTUwMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9ICdET1dOTE9BREVEJztcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHN1Ym1pdFJpc2tCdWxrVXBsb2FkKGNvbXBsZXRlQXNzZXNzbWVudDogYW55KSB7XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSBbXTtcclxuICAgIHRoaXMucmlza0J1bGtVcGxvYWQucmlza3MuZm9yRWFjaCgocmlzazogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyaXNrLmlzVmFsaWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSB7XHJcbiAgICAgICAgICB0aXRsZTogcmlzay5yaXNrTmFtZSxcclxuICAgICAgICAgIGRlc2NyaXB0aW9uOiByaXNrLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgY2F0ZWdvcnlfY3VzdG9tX3RhZzogcmlzay5jdXN0b21UYWcsXHJcbiAgICAgICAgICBhc3Nlc3NtZW50X2RlYWRsaW5lX2VuYWJsZTogdGhpcy5zZXR0aW5nc0luZm8uYXNzZXNzbWVudF9kZWFkbGluZV9lbmFibGUsXHJcbiAgICAgICAgICBvd25lcjogKHJpc2sub3duZXIpID8gdGhpcy5yZXR1cm5JZHMocmlzay5vd25lciwgJ293bmVyJykgOiB0aGlzLnJldHVybklkcyh0aGlzLmRlZmF1bHRPd25lciwgJ293bmVyJyksXHJcbiAgICAgICAgICBjYXRlZ29yeTogKHRoaXMuY2F0ZWdvcnkuc2VsZWN0ZWRDYXRlZ29yeS5jYXRlZ29yeV9pZCkgPyBbdGhpcy5jYXRlZ29yeS5zZWxlY3RlZENhdGVnb3J5LmNhdGVnb3J5X2lkXSA6IFtdLFxyXG4gICAgICAgICAgbWFuYWdlX292ZXJzaWdodDogdGhpcy5yZXR1cm5JZHMocmlzay5vdmVyc2VlciwgJ292ZXJzZWVyJyksXHJcbiAgICAgICAgICByY19pZDogdGhpcy5yZXR1cm5JZHMocmlzay5yY05hbWUsICdyY19pZCcpLFxyXG4gICAgICAgICAgaGVhZF9pZHM6IHRoaXMucmV0dXJuSWRzKHJpc2sucmNOYW1lLCAncmNfb3duZXJfaWRzJyksIC8vMiB0byBiZSBhcmF5XHJcbiAgICAgICAgICByYXRpbmdfYXJyOiBbXHJcbiAgICAgICAgICAgIHJpc2subGlrZWxpaG9vZCA/IHJpc2subGlrZWxpaG9vZC5zcGxpdCgnIC0gJylbMV0gOiAwLFxyXG4gICAgICAgICAgICByaXNrLmltcGFjdCA/IHJpc2suaW1wYWN0LnNwbGl0KCcgLSAnKVsxXSA6IDAsXHJcbiAgICAgICAgICAgIHJpc2sudmVsb2NpdHkgPyByaXNrLnZlbG9jaXR5LnNwbGl0KCcgLSAnKVsxXSA6IDAsXHJcbiAgICAgICAgICAgIHJpc2sudnVsbmVyYWJpbGl0eSA/IHJpc2sudnVsbmVyYWJpbGl0eS5zcGxpdCgnIC0gJylbMV0gOiAwLFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICAgIG1lbWJlcl9pZDogdGhpcy5tZW1iZXJJZCxcclxuICAgICAgICAgIG9yZ2FuaXNhdGlvbl9pZDogdGhpcy5vcmdhbml6YXRpb25JZCxcclxuICAgICAgICAgIHJpc2tfcHJvZ3Jlc3NfZmxhZzogMSxcclxuICAgICAgICAgIElmQXNzZXNzbWVudERvbmU6IDAsXHJcbiAgICAgICAgICB3b3Jrc2hvcF9pZDogJycsXHJcbiAgICAgICAgICBjb21wbGV0ZV9hc3Nlc3NtZW50OiAoY29tcGxldGVBc3Nlc3NtZW50KSA/IDEgOiAwLFxyXG4gICAgICAgICAgbWl0aWdhdGlvbjogdGhpcy5yZXR1cm5JZHMocmlzay5taXRpZ2F0aW9uUHJpb3JpdHksICdtaXRpZ2F0aW9uJyksIC8vMyB3cm9uZ1xyXG4gICAgICAgICAgd2VpZ2h0YWdlX2VuYWJsZTogdGhpcy5zZXR0aW5nc0luZm8ud2VpZ2h0YWdlX2VuYWJsZSxcclxuICAgICAgICAgIHRyZWF0bWVudF90eXBlOiB0aGlzLnNldHRpbmdzSW5mby50cmVhdG1lbnRfY3JpdGVyaWEsXHJcbiAgICAgICAgICB3ZWlnaHRhZ2VfZGV0YWlsczogdGhpcy5zZXR0aW5nc0luZm8ud2VpZ2h0YWdlX2RldGFpbHMsXHJcbiAgICAgICAgICB3ZWlnaHRhZ2Vfc2V0X2J5OiB0aGlzLnNldHRpbmdzSW5mby53ZWlnaHRhZ2Vfc2V0X2J5LFxyXG4gICAgICAgICAgd2VpZ2h0YWdlX3N0cjogW1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzSW5mby53ZWlnaHRhZ2VfZGV0YWlscy5pbXBhY3QudmFsdWUsXHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3NJbmZvLndlaWdodGFnZV9kZXRhaWxzLmxpa2VsaWhvb2QudmFsdWUsXHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3NJbmZvLndlaWdodGFnZV9kZXRhaWxzLnZlbG9jaXR5LnZhbHVlLFxyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzSW5mby53ZWlnaHRhZ2VfZGV0YWlscy52dWxuZXJhYmlsaXR5LnZhbHVlLFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICAgIGFzc2Vzc21lbnRfZGVhZGxpbmVfc2V0X2J5OiB0aGlzLnNldHRpbmdzSW5mby5hc3Nlc3NtZW50X2RlYWRsaW5lX3NldF9ieSwgLy9jaGVjazEgbm90IGFwcGVhcmluZ1xyXG4gICAgICAgICAgYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzOiAodGhpcy5zZXR0aW5nc0luZm8uYXNzZXNzbWVudF9kZWFkbGluZV9lbmFibGUpID8gdGhpcy5zZXR0aW5nc0luZm8uYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzIDogcmlzay5hc3Nlc3NtZW50RGVhZExpbmUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBwYXlsb2FkLnB1c2gob2JqKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5yaXNrU2VydmljZS5hZGRCdWxrUmlzayhwYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2hvd0V4Y2VsID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgIHRoaXMucmlza0RhdGEgPSByZXM7XHJcbiAgICB9LFxyXG4gICAgICBlcnIgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dFeGNlbCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdygnT09QUyEgU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHRoZSBwYWdlIGNvdWxkIG5vdCBiZSBsb2FkZWQuIENvdWxkIHlvdSBwbGVhc2UgdHJ5IG9uZSBtb3JlIHRpbWU/Jyk7XHJcblxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIHJldHVybklkcyhpdGVtOiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICBzd2l0Y2ggKGtleSkge1xyXG4gICAgICBjYXNlICdyY19pZCc6XHJcbiAgICAgICAgY29uc3QgcmNJZDogYW55ID0gW107XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8ucmNMaXN0LmZvckVhY2goKHJjX2VsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJjX2VsZW1lbnQucmNOYW1lID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgcmNJZC5wdXNoKHJjX2VsZW1lbnQucmNfaWQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJjSWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3JjX293bmVyX2lkcyc6XHJcbiAgICAgICAgbGV0IG93bmVyX2lkczogYW55ID0gW107XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8ucmNMaXN0LmZvckVhY2goKGhlYWRlcklkczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoaGVhZGVySWRzLnJjTmFtZSA9PSBpdGVtICYmIGhlYWRlcklkcy5vd25lcl9pZHMpIHtcclxuICAgICAgICAgICAgb3duZXJfaWRzPSBoZWFkZXJJZHMub3duZXJfaWRzLmluY2x1ZGVzKCcsJyk/IGhlYWRlcklkcy5vd25lcl9pZHMuc3BsaXQoJywnKS5tYXAoTnVtYmVyKSA6W051bWJlcihoZWFkZXJJZHMub3duZXJfaWRzKV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIG93bmVyX2lkcztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnb3duZXInOlxyXG4gICAgICAgIGNvbnN0IG93bmVySWQ6IGFueSA9IFtdO1xyXG4gICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLm93bmVyTGlzdC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbGVtZW50Lm5hbWUgPT0gaXRlbSkge1xyXG4gICAgICAgICAgICBvd25lcklkLnB1c2goZWxlbWVudC5tZW1iZXJfaWQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIG93bmVySWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ292ZXJzZWVyJzpcclxuICAgICAgICBjb25zdCBvdmVyc2VlcklkOiBhbnkgPSBbXTtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlSW5mby5vd25lckxpc3QuZm9yRWFjaCgob3NfZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAob3NfZWxlbWVudC5uYW1lID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgb3ZlcnNlZXJJZC5wdXNoKG9zX2VsZW1lbnQubWVtYmVyX2lkKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBvdmVyc2VlcklkO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnbWl0aWdhdGlvbic6XHJcbiAgICAgICAgbGV0IG1pdGlnYXRpb25JZDogYW55PTA7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8ubWl0aWdhdGlvbkxpc3QuZm9yRWFjaCgobWl0aWdhdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAobWl0aWdhdGlvbi5taXRpZ2F0aW9uTmFtZSA9PSBpdGVtKSB7XHJcbiAgICAgICAgICAgIG1pdGlnYXRpb25JZCA9IG1pdGlnYXRpb24ubWl0aWdhdGlvbl9pZFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBtaXRpZ2F0aW9uSWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLnJpc2tCdWxrVXBsb2FkID0ge1xyXG4gICAgICBoZWFkZXI6IFtdLFxyXG4gICAgICB3ZWlnaHRGYWN0b3JzOiBbXSxcclxuICAgICAgcmlza3M6IFtdXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50ZW1wbGF0ZUluZm8gPSB7XHJcbiAgICAgIG1lbWJlcklkOiAnJyxcclxuICAgICAgY2F0ZWdvcnlJZDogJycsXHJcbiAgICAgIG93bmVyTGlzdDogW10sXHJcbiAgICAgIHJjTGlzdDogW10sXHJcbiAgICAgIG1pdGlnYXRpb25MaXN0OiBbXVxyXG5cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzRmlsZUVtcHR5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzV3JvbmdGaWxlID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcclxuICAgIHRoaXMuZmlsZU5hbWUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmRhdGEgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnREZWFkTGluZSA9IHVuZGVmaW5lZFxyXG4gICAgdGhpcy5zaG93RXhjZWwgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG5cclxuICB9XHJcbiAgYWN0aW9uKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHN3aXRjaCAoZXZlbnQpIHtcclxuICAgICAgY2FzZSAnYWRkTW9yZSc6XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeSA9IHtcclxuICAgICAgICAgIHR5cGU6ICdzdHJhdGVnaWMnLFxyXG4gICAgICAgICAgc2VsZWN0ZWRDYXRlZ29yeTogJycsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZG93bmxvYWRTdGF0dXMgPSAnTk9UX0RPV05MT0FESU5HJztcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3ZpZXdSaXNrcyc6XHJcbiAgICAgICAgdGhpcy52aWV3Umlza3MoKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlU21pbGV5KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoe2V2dDp0aGlzLnJpc2tEYXRhLCBjb25maXJtIDogZmFsc2V9KTtcclxuICB9XHJcblxyXG4gIHZpZXdSaXNrcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzY29ubmVjdFJlZnJlc2guZW1pdChmYWxzZSk7XHJcbiAgICBsZXQgdXJsOiBzdHJpbmc7XHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgdXJsID0gJ2h0dHA6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cmwgPSAnaHR0cHM6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3Q7XHJcbiAgICB9XHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgdXJsICs9ICcvcmlzay1yZWdpc3Rlcic7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cmwgKz0gJy9yaXNrL3Jpc2stcmVnaXN0ZXInO1xyXG4gICAgfVxyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
569
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW11bHRpcGxlLXJpc2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvYWRkLW11bHRpcGxlLXJpc2svYWRkLW11bHRpcGxlLXJpc2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVMsTUFBTSxFQUFFLFlBQVksRUFBNkQsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQVNoRSxNQUFNLE9BQU8sd0JBQXdCO0lBNEVuQyxZQUFvQixXQUEyQixFQUNyQyxXQUF3QixFQUFVLFFBQXdCO1FBRGhELGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUNyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBNUUxRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuQyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELGlCQUFZLEdBQWlCO1lBQzNCLFNBQVMsRUFBRTtnQkFDVCxJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLEVBQUU7YUFDVDtZQUNELFdBQVcsRUFBRTtnQkFDWCxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsSUFBSSxF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aEUsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksR0FBVyxDQUFDO1FBQ2hCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2hELEdBQUcsR0FBRyxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDeEM7YUFBTTtZQUNMLEdBQUcsR0FBRyxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDekM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoRCxHQUFHLElBQUksZ0JBQWdCLENBQUM7U0FDekI7YUFBTTtZQUNMLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQztTQUM5QjtRQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUM3QixDQUFDOzs7WUEzbEJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxnaklBQWlEOzthQUdsRDs7O1lBVFEsY0FBYztZQUNkLFdBQVc7WUFGWCxlQUFlOzs7NEJBWXJCLE1BQU07NkJBQ04sTUFBTTs0QkFDTixNQUFNO2dDQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IENhdGVnb3J5TGlzdCB9IGZyb20gJy4uL2ludGVyZmFjZXMvY2F0ZWdvcnlMaXN0JztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkZFJpc2tTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYWRkLXJpc2suc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuXHJcbnR5cGUgQU9BID0gYW55W11bXTtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLW11bHRpcGxlLXJpc2snLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtbXVsdGlwbGUtcmlzay5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLW11bHRpcGxlLXJpc2suY29tcG9uZW50Lmxlc3MnLCAnLi4vZm9ybXMubGVzcyddLFxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZE11bHRpcGxlUmlza0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBAT3V0cHV0KCkgcGlja2VyQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcG9wdWxhdGVPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlV29ya2Zsb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRpc2Nvbm5lY3RSZWZyZXNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGNhdGVnb3J5TGlzdDogQ2F0ZWdvcnlMaXN0ID0ge1xyXG4gICAgc3RyYXRlZ2ljOiB7XHJcbiAgICAgIG5hbWU6ICdTVFJBVEVHSUMnLFxyXG4gICAgICBkYXRhOiBbXVxyXG4gICAgfSxcclxuICAgIG9wZXJhdGlvbmFsOiB7XHJcbiAgICAgIG5hbWU6ICdPUEVSQVRJT05BTCcsXHJcbiAgICAgIGRhdGE6IFtdXHJcbiAgICB9LFxyXG4gICAgY29tcGxpYW5jZToge1xyXG4gICAgICBuYW1lOiAnQ09NUExJQU5DRScsXHJcbiAgICAgIGRhdGE6IFtdXHJcbiAgICB9LFxyXG4gICAgb3RoZXJzOiB7XHJcbiAgICAgIG5hbWU6ICdPVEhFUlMnLFxyXG4gICAgICBkYXRhOiBbXVxyXG4gICAgfSxcclxuICB9O1xyXG5cclxuICBjYXRlZ29yeTogYW55ID0ge1xyXG4gICAgdHlwZTogJ3N0cmF0ZWdpYycsXHJcbiAgICBzZWxlY3RlZENhdGVnb3J5OiAnJyxcclxuICB9XHJcblxyXG4gIHJpc2tCdWxrVXBsb2FkOiBhbnkgPSB7XHJcbiAgICBoZWFkZXI6IFtdLFxyXG4gICAgd2VpZ2h0RmFjdG9yczogW10sXHJcbiAgICByaXNrczogW10sXHJcbiAgfVxyXG5cclxuICB0ZW1wbGF0ZUluZm86IGFueSA9IHtcclxuICAgIG1lbWJlcklkOiAnJyxcclxuICAgIGNhdGVnb3J5SWQ6ICcnLFxyXG4gICAgb3duZXJMaXN0OiBbXSxcclxuICAgIHJjTGlzdDogW10sXHJcbiAgICBtaXRpZ2F0aW9uTGlzdDogW10sXHJcbiAgICBsaWtlbGlob29kOltdLFxyXG4gICAgaW1wYWN0OltdLFxyXG4gICAgdmVsb2NpdHk6W10sXHJcbiAgICB2dWxuZXJhYmlsaXR5OltdXHJcbiAgfVxyXG5cclxuICBpc0xvYWRlciA9IGZhbHNlO1xyXG4gIHNob3dDYXRlZ29yeUxpc3QgPSBmYWxzZTtcclxuICB0ZW1wbGF0ZURvd25sb2FkZWQgPSBmYWxzZTtcclxuICBkb3dubG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICBsb2FkZXIgPSBmYWxzZTtcclxuICBzZXR0aW5nc0luZm8gITogYW55O1xyXG4gIGlzRmlsZUVtcHR5ID0gZmFsc2U7XHJcbiAgaXNXcm9uZ0ZpbGUgPSBmYWxzZTtcclxuICBpc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgZmlsZU5hbWU6IGFueTtcclxuICBkYXRhOiBhbnk7XHJcbiAgYXNzZXNzbWVudERlYWRMaW5lOiBhbnk7XHJcbiAgc2hvd0V4Y2VsID0gZmFsc2U7XHJcbiAgZmlsZVZhbHVlOmFueTtcclxuICBtZW1iZXJJZCA9IDA7XHJcbiAgb3JnYW5pemF0aW9uSWQgPSAwO1xyXG4gIGVycm9yTWVzc2FnZSA9IFwiIGludmFsaWQgZmlsZSBlcnJvclwiXHJcbiAgZG93bmxvYWRTdGF0dXM6IHN0cmluZyA9ICdOT1RfRE9XTkxPQURJTkcnO1xyXG4gIGRvd25sb2FkUGVyY2VudCA9IDA7XHJcblxyXG4gIHNtaWxleU1lc3NhZ2UgPSBgWW91J3JlIEFsbCBTZXQhIFdlJ3JlIHVwbG9hZGluZyB0aGUgcmlza3MuIFRoZSByaXNrIG93bmVycyB3aWxsIGJlIG5vdGlmaWVkIG9uY2UgdGhlIHJpc2tzIGhhdmUgYmVlbiB1cGxvYWRlZC5gO1xyXG4gIGFjdGlvbkJ1dHRvbnMgPSBbXHJcbiAgICB7IGJ1dHRvblRleHQ6ICdBZGQgTW9yZSBSaXNrcycsIGNsYXNzOiAnd2hpdGUtYnRuJywgaWQ6ICdhZGRNb3JlJyB9LFxyXG4gICAgeyBidXR0b25UZXh0OiAnVmlldyBSaXNrJywgY2xhc3M6ICdibHVlLWJ0bicsIGlkOiAndmlld1Jpc2tzJyB9LFxyXG4gIF07XHJcbiAgc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gIG1lbWJlcl9vYmpfaWQgPSAnJztcclxuICBkZWZhdWx0T3duZXIgPSAnJ1xyXG4gIHJpc2tEYXRhICE6YW55O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmlza1NlcnZpY2U6IEFkZFJpc2tTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UscHJpdmF0ZSAgc25hY2tCYXI6U25hY2tCYXJTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblxyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICAgIHRoaXMuZ2V0Q2F0ZWdvcnlMaXN0KCk7XHJcbiAgICB0aGlzLmdldFNldHRpbmdzSW5mbygpO1xyXG5cclxuICAgIHRoaXMub3JnYW5pemF0aW9uSWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbklkKCk7XHJcbiAgICB0aGlzLm1lbWJlcklkID0gdGhpcy5hdXRoU2VydmljZS5nZXRNZW1iZXJJZCgpO1xyXG4gICAgdGhpcy5tZW1iZXJfb2JqX2lkID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyRGV0YWlscygpLl9pZDtcclxuICB9XHJcbiAgZ2V0Q2F0ZWdvcnlMaXN0KCkge1xyXG4gICAgdGhpcy5pc0xvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLnJpc2tTZXJ2aWNlLmdldENhdGVnb3J5TGlzdCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdC5zdHJhdGVnaWMuZGF0YSA9IHJlcy5zdHJhdGVnaWNfYXJyO1xyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdC5vcGVyYXRpb25hbC5kYXRhID0gcmVzLm9wZXJhdGlvbmFsX2FycjtcclxuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QuY29tcGxpYW5jZS5kYXRhID0gcmVzLmNvbXBsaWFuY2VfYXJyO1xyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdC5vdGhlcnMuZGF0YSA9IHJlcy5vdGhlcnNfYXJyO1xyXG5cclxuICAgIH0sIGVyciA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuICBzYXZlU2VsZWN0ZWRDYXRlZ29yeShjYXRlZ29yeTogYW55KSB7XHJcbiAgICBpZih0aGlzLmNhdGVnb3J5Py5zZWxlY3RlZENhdGVnb3J5Py5jYXRlZ29yeV9pZCAhPWNhdGVnb3J5Py5zZWxlY3RlZENhdGVnb3J5Py5jYXRlZ29yeV9pZCl7XHJcbiAgICAgIHRoaXMuZG93bmxvYWRTdGF0dXMgPSAnTk9UX0RPV05MT0FESU5HJztcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0NhdGVnb3J5TGlzdCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jYXRlZ29yeSA9IGNhdGVnb3J5O1xyXG4gICAgY29uc3QgcmVmZXJlbmNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Njcm9sbFJlZmVyZW5jZScpO1xyXG4gICAgaWYgKHJlZmVyZW5jZSkge1xyXG4gICAgICByZWZlcmVuY2Uuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJyB9KTtcclxuICAgIH1cclxuICAgIHRoaXMucmVzZXQoKTtcclxuXHJcbiAgfVxyXG4gIHJlbW92ZUNhdGVnb3J5KCkge1xyXG4gICAgdGhpcy5jYXRlZ29yeSA9IHtcclxuICAgICAgdHlwZTogJ3N0cmF0ZWdpYycsXHJcbiAgICAgIHNlbGVjdGVkQ2F0ZWdvcnk6ICcnXHJcbiAgICB9O1xyXG4gICAgdGhpcy5yZXNldCgpO1xyXG4gIH1cclxuICBnZXRTZXR0aW5nc0luZm8oKSB7XHJcblxyXG4gICAgdGhpcy5yaXNrU2VydmljZS5nZXRSaXNrU2V0dGluZ0RldGFpbHMoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5zZXR0aW5nc0luZm8gPSByZXM7XHJcbiAgICB9LCBlcnIgPT4ge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG4gIHRyaWdnZXJCcm93c2VGaWxlKCkge1xyXG4gICAgY29uc3QgZ2V0RmlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlSW5wdXQnKTtcclxuICAgIGlmIChnZXRGaWxlKSB7XHJcbiAgICAgIGdldEZpbGUuY2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwbG9hZGVkRmlsZShldmVudDogYW55KSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLnJpc2tCdWxrVXBsb2FkID0ge1xyXG4gICAgICAgIGhlYWRlcjogW10sXHJcbiAgICAgICAgd2VpZ2h0RmFjdG9yczogW10sXHJcbiAgICAgICAgcmlza3M6IFtdXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50ZW1wbGF0ZUluZm8gPSB7XHJcbiAgICAgICAgbWVtYmVySWQ6ICcnLFxyXG4gICAgICAgIGNhdGVnb3J5SWQ6ICcnLFxyXG4gICAgICAgIG93bmVyTGlzdDogW10sXHJcbiAgICAgICAgcmNMaXN0OiBbXSxcclxuICAgICAgICBtaXRpZ2F0aW9uTGlzdDogW10sXHJcbiAgICAgICAgbGlrZWxpaG9vZDpbXSxcclxuICAgICAgICBpbXBhY3Q6W10sXHJcbiAgICAgICAgdmVsb2NpdHk6W10sXHJcbiAgICAgICAgdnVsbmVyYWJpbGl0eTpbXVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzY3JvbGxSZWZlcmVuY2UnKTtcclxuICAgICAgaWYgKHJlZmVyZW5jZSkge1xyXG4gICAgICAgIHJlZmVyZW5jZS5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdjZW50ZXInIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaXNGaWxlRW1wdHkgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc1dyb25nRmlsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5maWxlTmFtZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXS5uYW1lO1xyXG5cclxuICAgICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldmVudC50YXJnZXQgYXMgRGF0YVRyYW5zZmVyO1xyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGN1cmx5XHJcbiAgICAgIGlmICh0YXJnZXQuZmlsZXMubGVuZ3RoICE9PSAxKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1c2UgbXVsdGlwbGUgZmlsZXMnKTtcclxuICAgICAgY29uc3QgcmVhZGVyOiBGaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnJlYWQoYnN0ciwgeyB0eXBlOiAnYmluYXJ5JyB9KTtcclxuICAgICAgICBjb25zdCB3c25hbWU6IHN0cmluZyA9IHdiLlNoZWV0TmFtZXNbMF07XHJcbiAgICAgICAgY29uc3Qgd3NuYW1lMTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1sxXTtcclxuXHJcbiAgICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcbiAgICAgICAgY29uc3QgdGVtcERhdGE6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZTFdO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24od3MsIHtcclxuICAgICAgICAgIGhlYWRlcjogMSxcclxuICAgICAgICB9KSBhcyBBT0E7XHJcblxyXG4gICAgICAgIGNvbnN0IHREYXRhID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHRlbXBEYXRhLCB7IGhlYWRlcjogMSB9KSBhcyBBT0E7XHJcbiAgICAgICAgY29uc3QgdGVtcExpc3QgPSB0RGF0YS5maWx0ZXIoKGRhdGFFbGVtZW50OiBhbnkpID0+IGRhdGFFbGVtZW50Lmxlbmd0aCA+IDApO1xyXG4gICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLm1lbWJlcklkID0gdGVtcExpc3RbMF1bNTZdXHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8uY2F0ZWdvcnlJZCA9IHRlbXBMaXN0WzBdWzU1XVxyXG4gICAgICAgIHRoaXMucmlza0J1bGtVcGxvYWQuaGVhZGVyID0gY2xvbmVEZWVwKHRoaXMuZGF0YVs0XS5maWx0ZXIoKGRhdGFFbGVtZW50OiBhbnkpID0+IGRhdGFFbGVtZW50Lmxlbmd0aCA+IDApKTtcclxuICAgICAgICB0aGlzLnJpc2tCdWxrVXBsb2FkLndlaWdodEZhY3RvcnMgPSBjbG9uZURlZXAodGhpcy5kYXRhWzVdLmZpbHRlcigod2VpZ2h0RmFjdG9yOiBhbnkpID0+IHdlaWdodEZhY3Rvci5sZW5ndGggPiAwKSk7XHJcbiAgICAgICAgdGVtcExpc3QuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnRbOF0pIHtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG1lbWJlciA9IHtcclxuICAgICAgICAgICAgICBuYW1lOiBlbGVtZW50WzhdLFxyXG4gICAgICAgICAgICAgIG1lbWJlcl9pZDogZWxlbWVudFs5XVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLm93bmVyTGlzdC5wdXNoKG1lbWJlcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZWxlbWVudFsyXSkge1xyXG5cclxuICAgICAgICAgICAgY29uc3QgbWl0aWdhdGlvbiA9IHtcclxuICAgICAgICAgICAgICBtaXRpZ2F0aW9uTmFtZTogZWxlbWVudFsyXSxcclxuICAgICAgICAgICAgICBtaXRpZ2F0aW9uX2lkOiBlbGVtZW50WzNdXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8ubWl0aWdhdGlvbkxpc3QucHVzaChtaXRpZ2F0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlbGVtZW50WzZdKSB7XHJcblxyXG4gICAgICAgICAgICBjb25zdCByYyA9IHtcclxuICAgICAgICAgICAgICByY05hbWU6IGVsZW1lbnRbNl0sXHJcbiAgICAgICAgICAgICAgcmNfaWQ6IGVsZW1lbnRbN10sXHJcbiAgICAgICAgICAgICAgb3duZXJfaWRzOiBlbGVtZW50WzExXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLnJjTGlzdC5wdXNoKHJjKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoZWxlbWVudFsxMl0pIHsgICAgICAgICAgIFxyXG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlSW5mby5saWtlbGlob29kLnB1c2goZWxlbWVudFsxMl0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnRbMTNdKSB7ICAgICAgICAgICBcclxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8uaW1wYWN0LnB1c2goZWxlbWVudFsxM10pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMucmlza0J1bGtVcGxvYWQud2VpZ2h0RmFjdG9ycy5sZW5ndGggPj0gMyAmJiBlbGVtZW50WzE0XSkge1xyXG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlSW5mby52ZWxvY2l0eS5wdXNoKGVsZW1lbnRbMTRdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnJpc2tCdWxrVXBsb2FkLndlaWdodEZhY3RvcnMubGVuZ3RoID09IDQgJiYgZWxlbWVudFsxNV0pIHtcclxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8udnVsbmVyYWJpbGl0eS5wdXNoKGVsZW1lbnRbMTVdKTtcclxuXHJcbiAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZmlsZU5hbWUuc3Vic3RyKC01KSAhPT0gJy54bHN4Jykge1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnVGhlIGluY29ycmVjdCBmaWxlIGhhcyBiZWVuIHVwbG9hZGVkLiBQbGVhc2UgdXBsb2FkIHRoZSB0ZW1wbGF0ZSBmaWxlIGZvciBSaXNrIENhdGVnb3J5OicgKyB0aGlzLmNhdGVnb3J5LnNlbGVjdGVkQ2F0ZWdvcnkuY2F0ZWdvcnlfbmFtZSArICcgUkVUUlknO1xyXG5cclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMucmlza0J1bGtVcGxvYWQuaGVhZGVyWzBdICE9PSAnUmlzayBOYW1lKicpIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1RoZSBpbmNvcnJlY3QgZmlsZSBoYXMgYmVlbiB1cGxvYWRlZC4gUGxlYXNlIHVwbG9hZCB0aGUgdGVtcGxhdGUgZmlsZSBmb3IgUmlzayBDYXRlZ29yeTonICsgdGhpcy5jYXRlZ29yeS5zZWxlY3RlZENhdGVnb3J5LmNhdGVnb3J5X25hbWUgKyAnIFJFVFJZJztcclxuXHJcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YS5zbGljZSg3KTtcclxuICAgICAgICBjb25zdCBkZWZhdWx0T3duZXIgPSB0aGlzLnRlbXBsYXRlSW5mby5vd25lckxpc3QuZmluZEluZGV4KChlbGU6IGFueSkgPT4gZWxlLm1lbWJlcl9pZCA9PSB0aGlzLm1lbWJlcklkKTtcclxuICAgICAgICBpZihkZWZhdWx0T3duZXIgIT0tMSl7XHJcbiAgICAgICAgICB0aGlzLmRlZmF1bHRPd25lciA9IHRoaXMudGVtcGxhdGVJbmZvLm93bmVyTGlzdFtkZWZhdWx0T3duZXJdLm5hbWVcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1RoZSBpbmNvcnJlY3QgZmlsZSBoYXMgYmVlbiB1cGxvYWRlZC4gUGxlYXNlIHVwbG9hZCB0aGUgdGVtcGxhdGUgZmlsZSBmb3IgUmlzayBDYXRlZ29yeTonICsgdGhpcy5jYXRlZ29yeS5zZWxlY3RlZENhdGVnb3J5LmNhdGVnb3J5X25hbWUgKyAnIFJFVFJZJztcclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCh0aGlzLm1lbWJlcl9vYmpfaWQgIT0gdGhpcy50ZW1wbGF0ZUluZm8ubWVtYmVySWQpIHx8ICh0aGlzLmNhdGVnb3J5LnNlbGVjdGVkQ2F0ZWdvcnkuX2lkICE9IHRoaXMudGVtcGxhdGVJbmZvLmNhdGVnb3J5SWQpKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdUaGUgaW5jb3JyZWN0IGZpbGUgaGFzIGJlZW4gdXBsb2FkZWQuIFBsZWFzZSB1cGxvYWQgdGhlIHRlbXBsYXRlIGZpbGUgZm9yIFJpc2sgQ2F0ZWdvcnk6JyArIHRoaXMuY2F0ZWdvcnkuc2VsZWN0ZWRDYXRlZ29yeS5jYXRlZ29yeV9uYW1lICsgJyBSRVRSWSc7XHJcblxyXG4gICAgICAgICAgdGhpcy5pc1dyb25nRmlsZSA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBpc0VtcHR5ID0gdGhpcy5jaGVja0VtcHR5RmlsZSgpO1xyXG4gICAgICAgIGlmIChpc0VtcHR5KSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCBhIGJsYW5rIHRlbXBsYXRlLiBQbGVhc2UgYWRkIGRldGFpbHMgZm9yIGFsbCBtYW5kYXRvcnkgZmllbGRzLiBSRVRSWSc7XHJcbiAgICAgICAgICB0aGlzLmlzRmlsZUVtcHR5ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHRoaXMucmlza0J1bGtVcGxvYWQuaGVhZGVyWzZdID09PSAnUmlzayBBc3Nlc3NtZW50IERlYWRsaW5lKicpIHtcclxuICAgICAgICAgICAgdGhpcy5hc3Nlc3NtZW50RGVhZExpbmUgPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hc3Nlc3NtZW50RGVhZExpbmUgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuaXNGaWxlRW1wdHkgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0ZpbGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5maWxlVmFsdWUgPSAnJztcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHJpc2tEYXRhID0gdGhpcy5kYXRhLmZpbHRlcigoZGF0YUVsZW1lbnQ6IGFueSkgPT4gZGF0YUVsZW1lbnQubGVuZ3RoID4gMCk7XHJcblxyXG4gICAgICAgIHJpc2tEYXRhLmZvckVhY2goKHJpc2s6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgIGNvbnN0IG9iajogYW55ID0ge1xyXG4gICAgICAgICAgICByaXNrTmFtZTogcmlza1swXSA/PyAnJyxcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHJpc2tbMV0gPz8gJycsXHJcbiAgICAgICAgICAgIHJjTmFtZTogcmlza1syXSA/PyAnJyxcclxuICAgICAgICAgICAgb3duZXI6IHJpc2tbM10gPz8gJycsXHJcbiAgICAgICAgICAgIG1pdGlnYXRpb25Qcmlvcml0eTogcmlza1s0XSA/PyAnJyxcclxuICAgICAgICAgICAgb3ZlcnNlZXI6IHJpc2tbNV0gPz8gJycsXHJcbiAgICAgICAgICAgIGlzVmFsaWQ6IHRoaXMuY2hlY2tWYWxpZGl0eShyaXNrKSxcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5hc3Nlc3NtZW50RGVhZExpbmUpIHtcclxuICAgICAgICAgICAgb2JqLmFzc2Vzc21lbnREZWFkTGluZSA9IHJpc2tbNl0gPz8gJyc7XHJcbiAgICAgICAgICAgIG9iai5saWtlbGlob29kID0gcmlza1s3XSA/PyAnJztcclxuICAgICAgICAgICAgb2JqLmltcGFjdCA9IHJpc2tbOF0gPz8gJyc7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJpc2tCdWxrVXBsb2FkLndlaWdodEZhY3RvcnMubGVuZ3RoID09IDMpIHtcclxuICAgICAgICAgICAgICBvYmoudmVsb2NpdHkgPSByaXNrWzldID8/ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJpc2tCdWxrVXBsb2FkLndlaWdodEZhY3RvcnMubGVuZ3RoID09IDQpIHtcclxuICAgICAgICAgICAgICBvYmoudmVsb2NpdHkgPSByaXNrWzldID8/ICcnO1xyXG4gICAgICAgICAgICAgIG9iai52dWxuZXJhYmlsaXR5ID0gcmlza1sxMF0gPz8gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgY3VzdG9tVGFnczogYW55ID0gW107XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5LnNlbGVjdGVkQ2F0ZWdvcnkuY3VzdG9tX3RhZy5mb3JFYWNoKCh0YWc6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICh0YWcpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNUYWcgPSB7XHJcbiAgICAgICAgICAgICAgICAgIGN1c3RvbV90YWdfdmFsdWU6IHJpc2tbNyArIHRoaXMucmlza0J1bGtVcGxvYWQud2VpZ2h0RmFjdG9ycy5sZW5ndGggKyBpbmRleF0gPz8gJycsXHJcbiAgICAgICAgICAgICAgICAgIGN1c3RvbV90YWdfbmFtZTogdGFnLnRhZ05hbWVcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBjdXN0b21UYWdzLnB1c2goY1RhZyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgb2JqLmN1c3RvbVRhZyA9IGN1c3RvbVRhZ3M7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBvYmoubGlrZWxpaG9vZCA9IHJpc2tbNl0gPz8gJyc7XHJcbiAgICAgICAgICAgIG9iai5pbXBhY3QgPSByaXNrWzddID8/ICcnO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMucmlza0J1bGtVcGxvYWQud2VpZ2h0RmFjdG9ycy5sZW5ndGggPT0gMykge1xyXG4gICAgICAgICAgICAgIG9iai52ZWxvY2l0eSA9IHJpc2tbOF0gPz8gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMucmlza0J1bGtVcGxvYWQud2VpZ2h0RmFjdG9ycy5sZW5ndGggPT0gNCkge1xyXG4gICAgICAgICAgICAgIG9iai52ZWxvY2l0eSA9IHJpc2tbOF0gPz8gJyc7XHJcbiAgICAgICAgICAgICAgb2JqLnZ1bG5lcmFiaWxpdHkgPSByaXNrWzldID8/ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbVRhZ3M6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5LnNlbGVjdGVkQ2F0ZWdvcnkuY3VzdG9tX3RhZy5mb3JFYWNoKCh0YWc6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICh0YWcpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNUYWcgPSB7XHJcbiAgICAgICAgICAgICAgICAgIGN1c3RvbV90YWdfdmFsdWU6IHJpc2tbNiArIHRoaXMucmlza0J1bGtVcGxvYWQud2VpZ2h0RmFjdG9ycy5sZW5ndGggKyBpbmRleF0gPz8gJycsXHJcbiAgICAgICAgICAgICAgICAgIGN1c3RvbV90YWdfbmFtZTogdGFnLnRhZ05hbWVcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBjdXN0b21UYWdzLnB1c2goY1RhZyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgb2JqLmN1c3RvbVRhZyA9IGN1c3RvbVRhZ3M7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAob2JqLmxpa2VsaWhvb2QgJiYgIXRoaXMudGVtcGxhdGVJbmZvLmxpa2VsaWhvb2QuaW5jbHVkZXMob2JqLmxpa2VsaWhvb2QpKSB7ICAgICAgICAgICBcclxuICAgICAgICAgICAgb2JqLmlzVmFsaWQ9ZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAob2JqLmltcGFjdCAmJiAhdGhpcy50ZW1wbGF0ZUluZm8uaW1wYWN0LmluY2x1ZGVzKG9iai5pbXBhY3QpKSB7ICAgICAgICAgICBcclxuICAgICAgICAgICAgb2JqLmlzVmFsaWQ9ZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAob2JqLnZlbG9jaXR5ICYmICF0aGlzLnRlbXBsYXRlSW5mby52ZWxvY2l0eS5pbmNsdWRlcyhvYmoudmVsb2NpdHkpKSB7ICAgICAgICAgICBcclxuICAgICAgICAgICAgb2JqLmlzVmFsaWQ9ZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAob2JqLnZ1bG5lcmFiaWxpdHkgJiYgIXRoaXMudGVtcGxhdGVJbmZvLnZ1bG5lcmFiaWxpdHkuaW5jbHVkZXMob2JqLnZ1bG5lcmFiaWxpdHkpKSB7ICAgICAgICAgICBcclxuICAgICAgICAgICAgb2JqLmlzVmFsaWQ9ZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIFxyXG5cclxuICAgICAgICAgIHRoaXMucmlza0J1bGtVcGxvYWQucmlza3MucHVzaChvYmopO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuaXNGaWxlRW1wdHkgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzV3JvbmdGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93RXhjZWwgPSB0cnVlO1xyXG4gICAgICB9O1xyXG4gICAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRhcmdldC5maWxlc1swXSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0VtcHR5RmlsZSgpIHtcclxuICAgIGxldCBpc0VtcHR5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEuZmlsdGVyKChkYXRhRWxlbWVudDogYW55KSA9PiBkYXRhRWxlbWVudC5sZW5ndGggPiAwKTtcclxuICAgIGlmICh0aGlzLmRhdGEubGVuZ3RoIDwgMSkge1xyXG4gICAgICBpc0VtcHR5ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBpc0VtcHR5O1xyXG4gIH1cclxuXHJcbiAgY2hlY2tWYWxpZGl0eShyaXNrOiBhbnkpIHtcclxuICAgIGNvbnN0IHJlID0gLyZuYnNwO3w8YnI+L2c7XHJcbiAgICBsZXQgdHJpbW1lZE5hbWUgPSAocmlza1swXSkgPyByaXNrWzBdLnRvU3RyaW5nKCkucmVwbGFjZShyZSwgJycpLnRyaW0oKSA6ICcnO1xyXG4gICAgdHJpbW1lZE5hbWUgPSB0cmltbWVkTmFtZS5yZXBsYWNlKC8gICsvZywgJyAnKTtcclxuICAgIGlmICgoIXRyaW1tZWROYW1lKSB8fCAocmlza1szXSAmJiAocmlza1szXSA9PSByaXNrWzVdKSkgfHwgKCghcmlza1szXSkgJiYgKHRoaXMuZGVmYXVsdE93bmVyID09IHJpc2tbNV0pKVxyXG4gICAgICB8fCAoIXJpc2tbMl0pIHx8ICh0aGlzLmFzc2Vzc21lbnREZWFkTGluZSAmJiAoIXJpc2tbNl0pKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2UgeyByZXR1cm4gdHJ1ZSB9XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9ICdET1dOTE9BRElORyc7XHJcbiAgICB0aGlzLmRvd25sb2FkUGVyY2VudCA9IDA7XHJcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpO1xyXG4gICAgY29uc3QgZG93bmxvYWREYXRlID0gdG9kYXlbMF07XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9ICdWQ29tcGx5IC0gUmlzayBNb2R1bGUgLSBBZGQgTXVsdGlwbGUgUmlza3MgLSAnKyB0aGlzLmNhdGVnb3J5Py5zZWxlY3RlZENhdGVnb3J5Py5jYXRlZ29yeV9uYW1lICsnIC0gJyArIGRvd25sb2FkRGF0ZSArICcueGxzeCc7XHJcblxyXG4gICAgdGhpcy5yaXNrU2VydmljZS5kb3dubG9hZFRlbXBsYXRlKHRoaXMuY2F0ZWdvcnkuc2VsZWN0ZWRDYXRlZ29yeS5faWQpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLmxvYWRlZCkge1xyXG4gICAgICAgICAgdGhpcy5kb3dubG9hZFBlcmNlbnQgPSAxMDAgKiAoZGF0YS5sb2FkZWQgLyBkYXRhLnRvdGFsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRhdGEuYm9keSkge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZG93bmxvYWRTdGF0dXMgPSB0aGlzLnJpc2tTZXJ2aWNlLmRvd25Mb2FkRmlsZShkYXRhLmJvZHksICdhcHBsaWNhdGlvbi94bHN4JywgZmlsZU5hbWUpO1xyXG4gICAgICAgICAgfSwgMTUwMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9ICdET1dOTE9BREVEJztcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHN1Ym1pdFJpc2tCdWxrVXBsb2FkKGNvbXBsZXRlQXNzZXNzbWVudDogYW55KSB7XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSBbXTtcclxuICAgIHRoaXMucmlza0J1bGtVcGxvYWQucmlza3MuZm9yRWFjaCgocmlzazogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyaXNrLmlzVmFsaWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSB7XHJcbiAgICAgICAgICB0aXRsZTogcmlzay5yaXNrTmFtZSxcclxuICAgICAgICAgIGRlc2NyaXB0aW9uOiByaXNrLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgY2F0ZWdvcnlfY3VzdG9tX3RhZzogcmlzay5jdXN0b21UYWcsXHJcbiAgICAgICAgICBhc3Nlc3NtZW50X2RlYWRsaW5lX2VuYWJsZTogdGhpcy5zZXR0aW5nc0luZm8uYXNzZXNzbWVudF9kZWFkbGluZV9lbmFibGUsXHJcbiAgICAgICAgICBvd25lcjogKHJpc2sub3duZXIpID8gdGhpcy5yZXR1cm5JZHMocmlzay5vd25lciwgJ293bmVyJykgOiB0aGlzLnJldHVybklkcyh0aGlzLmRlZmF1bHRPd25lciwgJ293bmVyJyksXHJcbiAgICAgICAgICBjYXRlZ29yeTogKHRoaXMuY2F0ZWdvcnkuc2VsZWN0ZWRDYXRlZ29yeS5jYXRlZ29yeV9pZCkgPyBbdGhpcy5jYXRlZ29yeS5zZWxlY3RlZENhdGVnb3J5LmNhdGVnb3J5X2lkXSA6IFtdLFxyXG4gICAgICAgICAgbWFuYWdlX292ZXJzaWdodDogdGhpcy5yZXR1cm5JZHMocmlzay5vdmVyc2VlciwgJ292ZXJzZWVyJyksXHJcbiAgICAgICAgICByY19pZDogdGhpcy5yZXR1cm5JZHMocmlzay5yY05hbWUsICdyY19pZCcpLFxyXG4gICAgICAgICAgaGVhZF9pZHM6IHRoaXMucmV0dXJuSWRzKHJpc2sucmNOYW1lLCAncmNfb3duZXJfaWRzJyksIC8vMiB0byBiZSBhcmF5XHJcbiAgICAgICAgICByYXRpbmdfYXJyOiBbXHJcbiAgICAgICAgICAgIHJpc2subGlrZWxpaG9vZCA/IHJpc2subGlrZWxpaG9vZC5zcGxpdCgnIC0gJylbMV0gOiAwLFxyXG4gICAgICAgICAgICByaXNrLmltcGFjdCA/IHJpc2suaW1wYWN0LnNwbGl0KCcgLSAnKVsxXSA6IDAsXHJcbiAgICAgICAgICAgIHJpc2sudmVsb2NpdHkgPyByaXNrLnZlbG9jaXR5LnNwbGl0KCcgLSAnKVsxXSA6IDAsXHJcbiAgICAgICAgICAgIHJpc2sudnVsbmVyYWJpbGl0eSA/IHJpc2sudnVsbmVyYWJpbGl0eS5zcGxpdCgnIC0gJylbMV0gOiAwLFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICAgIG1lbWJlcl9pZDogdGhpcy5tZW1iZXJJZCxcclxuICAgICAgICAgIG9yZ2FuaXNhdGlvbl9pZDogdGhpcy5vcmdhbml6YXRpb25JZCxcclxuICAgICAgICAgIHJpc2tfcHJvZ3Jlc3NfZmxhZzogMSxcclxuICAgICAgICAgIElmQXNzZXNzbWVudERvbmU6IDAsXHJcbiAgICAgICAgICB3b3Jrc2hvcF9pZDogJycsXHJcbiAgICAgICAgICBjb21wbGV0ZV9hc3Nlc3NtZW50OiAoY29tcGxldGVBc3Nlc3NtZW50KSA/IDEgOiAwLFxyXG4gICAgICAgICAgbWl0aWdhdGlvbjogdGhpcy5yZXR1cm5JZHMocmlzay5taXRpZ2F0aW9uUHJpb3JpdHksICdtaXRpZ2F0aW9uJyksIC8vMyB3cm9uZ1xyXG4gICAgICAgICAgd2VpZ2h0YWdlX2VuYWJsZTogdGhpcy5zZXR0aW5nc0luZm8ud2VpZ2h0YWdlX2VuYWJsZSxcclxuICAgICAgICAgIHRyZWF0bWVudF90eXBlOiB0aGlzLnNldHRpbmdzSW5mby50cmVhdG1lbnRfY3JpdGVyaWEsXHJcbiAgICAgICAgICB3ZWlnaHRhZ2VfZGV0YWlsczogdGhpcy5zZXR0aW5nc0luZm8ud2VpZ2h0YWdlX2RldGFpbHMsXHJcbiAgICAgICAgICB3ZWlnaHRhZ2Vfc2V0X2J5OiB0aGlzLnNldHRpbmdzSW5mby53ZWlnaHRhZ2Vfc2V0X2J5LFxyXG4gICAgICAgICAgd2VpZ2h0YWdlX3N0cjogW1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzSW5mby53ZWlnaHRhZ2VfZGV0YWlscy5pbXBhY3QudmFsdWUsXHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3NJbmZvLndlaWdodGFnZV9kZXRhaWxzLmxpa2VsaWhvb2QudmFsdWUsXHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3NJbmZvLndlaWdodGFnZV9kZXRhaWxzLnZlbG9jaXR5LnZhbHVlLFxyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzSW5mby53ZWlnaHRhZ2VfZGV0YWlscy52dWxuZXJhYmlsaXR5LnZhbHVlLFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICAgIGFzc2Vzc21lbnRfZGVhZGxpbmVfc2V0X2J5OiB0aGlzLnNldHRpbmdzSW5mby5hc3Nlc3NtZW50X2RlYWRsaW5lX3NldF9ieSwgLy9jaGVjazEgbm90IGFwcGVhcmluZ1xyXG4gICAgICAgICAgYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzOiAodGhpcy5zZXR0aW5nc0luZm8uYXNzZXNzbWVudF9kZWFkbGluZV9lbmFibGUpID8gdGhpcy5zZXR0aW5nc0luZm8uYXNzZXNzbWVudF9kZWFkbGluZV9kYXlzIDogcmlzay5hc3Nlc3NtZW50RGVhZExpbmUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBwYXlsb2FkLnB1c2gob2JqKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5yaXNrU2VydmljZS5hZGRCdWxrUmlzayhwYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2hvd0V4Y2VsID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgIHRoaXMucmlza0RhdGEgPSByZXM7XHJcbiAgICB9LFxyXG4gICAgICBlcnIgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dFeGNlbCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdygnT09QUyEgU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHRoZSBwYWdlIGNvdWxkIG5vdCBiZSBsb2FkZWQuIENvdWxkIHlvdSBwbGVhc2UgdHJ5IG9uZSBtb3JlIHRpbWU/Jyk7XHJcblxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIHJldHVybklkcyhpdGVtOiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICBzd2l0Y2ggKGtleSkge1xyXG4gICAgICBjYXNlICdyY19pZCc6XHJcbiAgICAgICAgY29uc3QgcmNJZDogYW55ID0gW107XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8ucmNMaXN0LmZvckVhY2goKHJjX2VsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJjX2VsZW1lbnQucmNOYW1lID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgcmNJZC5wdXNoKHJjX2VsZW1lbnQucmNfaWQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJjSWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3JjX293bmVyX2lkcyc6XHJcbiAgICAgICAgbGV0IG93bmVyX2lkczogYW55ID0gW107XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8ucmNMaXN0LmZvckVhY2goKGhlYWRlcklkczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoaGVhZGVySWRzLnJjTmFtZSA9PSBpdGVtICYmIGhlYWRlcklkcy5vd25lcl9pZHMpIHtcclxuICAgICAgICAgICAgb3duZXJfaWRzPSBoZWFkZXJJZHMub3duZXJfaWRzLmluY2x1ZGVzKCcsJyk/IGhlYWRlcklkcy5vd25lcl9pZHMuc3BsaXQoJywnKS5tYXAoTnVtYmVyKSA6W051bWJlcihoZWFkZXJJZHMub3duZXJfaWRzKV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIG93bmVyX2lkcztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnb3duZXInOlxyXG4gICAgICAgIGNvbnN0IG93bmVySWQ6IGFueSA9IFtdO1xyXG4gICAgICAgIHRoaXMudGVtcGxhdGVJbmZvLm93bmVyTGlzdC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbGVtZW50Lm5hbWUgPT0gaXRlbSkge1xyXG4gICAgICAgICAgICBvd25lcklkLnB1c2goZWxlbWVudC5tZW1iZXJfaWQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIG93bmVySWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ292ZXJzZWVyJzpcclxuICAgICAgICBjb25zdCBvdmVyc2VlcklkOiBhbnkgPSBbXTtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlSW5mby5vd25lckxpc3QuZm9yRWFjaCgob3NfZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAob3NfZWxlbWVudC5uYW1lID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgb3ZlcnNlZXJJZC5wdXNoKG9zX2VsZW1lbnQubWVtYmVyX2lkKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBvdmVyc2VlcklkO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnbWl0aWdhdGlvbic6XHJcbiAgICAgICAgbGV0IG1pdGlnYXRpb25JZDogYW55PTA7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUluZm8ubWl0aWdhdGlvbkxpc3QuZm9yRWFjaCgobWl0aWdhdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAobWl0aWdhdGlvbi5taXRpZ2F0aW9uTmFtZSA9PSBpdGVtKSB7XHJcbiAgICAgICAgICAgIG1pdGlnYXRpb25JZCA9IG1pdGlnYXRpb24ubWl0aWdhdGlvbl9pZFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBtaXRpZ2F0aW9uSWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLnJpc2tCdWxrVXBsb2FkID0ge1xyXG4gICAgICBoZWFkZXI6IFtdLFxyXG4gICAgICB3ZWlnaHRGYWN0b3JzOiBbXSxcclxuICAgICAgcmlza3M6IFtdXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50ZW1wbGF0ZUluZm8gPSB7XHJcbiAgICAgIG1lbWJlcklkOiAnJyxcclxuICAgICAgY2F0ZWdvcnlJZDogJycsXHJcbiAgICAgIG93bmVyTGlzdDogW10sXHJcbiAgICAgIHJjTGlzdDogW10sXHJcbiAgICAgIG1pdGlnYXRpb25MaXN0OiBbXVxyXG5cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzRmlsZUVtcHR5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzV3JvbmdGaWxlID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcclxuICAgIHRoaXMuZmlsZU5hbWUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmRhdGEgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnREZWFkTGluZSA9IHVuZGVmaW5lZFxyXG4gICAgdGhpcy5zaG93RXhjZWwgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG5cclxuICB9XHJcbiAgYWN0aW9uKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHN3aXRjaCAoZXZlbnQpIHtcclxuICAgICAgY2FzZSAnYWRkTW9yZSc6XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeSA9IHtcclxuICAgICAgICAgIHR5cGU6ICdzdHJhdGVnaWMnLFxyXG4gICAgICAgICAgc2VsZWN0ZWRDYXRlZ29yeTogJycsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZG93bmxvYWRTdGF0dXMgPSAnTk9UX0RPV05MT0FESU5HJztcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3ZpZXdSaXNrcyc6XHJcbiAgICAgICAgdGhpcy52aWV3Umlza3MoKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlU21pbGV5KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoe2V2dDp0aGlzLnJpc2tEYXRhLCBjb25maXJtIDogZmFsc2V9KTtcclxuICB9XHJcblxyXG4gIHZpZXdSaXNrcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzY29ubmVjdFJlZnJlc2guZW1pdChmYWxzZSk7XHJcbiAgICBsZXQgdXJsOiBzdHJpbmc7XHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgdXJsID0gJ2h0dHA6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cmwgPSAnaHR0cHM6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3Q7XHJcbiAgICB9XHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgdXJsICs9ICcvcmlzay1yZWdpc3Rlcic7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cmwgKz0gJy9yaXNrL3Jpc2stcmVnaXN0ZXInO1xyXG4gICAgfVxyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|