vcomply-workflow-engine 6.5.5 → 6.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/esm2022/lib/formgroup/cs-select/cs-select.component.mjs +9 -3
  2. package/esm2022/lib/formgroup/pipes/pascal.pipe.mjs +5 -1
  3. package/esm2022/lib/interfaces/responsibilty.interface.mjs +1 -1
  4. package/esm2022/lib/more-option/more-option.component.mjs +44 -3
  5. package/esm2022/lib/sharedComponents/assessment-preview/select-question/select-question.component.mjs +1 -1
  6. package/esm2022/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.mjs +1 -1
  7. package/esm2022/lib/sharedComponents/floating-bar/floating-bar.component.mjs +3 -14
  8. package/esm2022/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.mjs +3 -7
  9. package/esm2022/lib/workflow/grc-object/grc-object-container/grc-object-container.component.mjs +3 -3
  10. package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +103 -121
  11. package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +6 -3
  12. package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +4 -4
  13. package/esm2022/lib/workflow-services/common-workflow-services/compliance-common.service.mjs +2 -2
  14. package/esm2022/lib/workflow-services/log-issue.service.mjs +2 -2
  15. package/esm2022/lib/workflow-services/policy.service.mjs +2 -2
  16. package/esm2022/lib/workflow-services/programs.service.mjs +2 -2
  17. package/esm2022/lib/workflow-services/responsibility.service.mjs +3 -2
  18. package/fesm2022/vcomply-workflow-engine.mjs +153 -132
  19. package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
  20. package/lib/formgroup/cs-select/cs-select.component.d.ts +3 -1
  21. package/lib/interfaces/responsibilty.interface.d.ts +1 -0
  22. package/lib/sharedComponents/floating-bar/floating-bar.component.d.ts +0 -3
  23. package/lib/workflow-compliance/workflow-compliance.component.d.ts +8 -2
  24. package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +2 -1
  25. package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
  26. package/package.json +1 -1
@@ -864,7 +864,7 @@ export class GrcObjectContainerComponent {
864
864
  });
865
865
  }
866
866
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GrcObjectContainerComponent, deps: [{ token: i1.GrcService }, { token: i2.ResponsibilityService }, { token: i3.AuthService }, { token: i4.UiKitService }, { token: i5.ComplianceCommonService }, { token: i6.OrganizationCommonService }, { token: i7.IframeService }, { token: i8.CommonService }], target: i0.ɵɵFactoryTarget.Component }); }
867
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GrcObjectContainerComponent, selector: "lib-grc-object-container", inputs: { grcType: "grcType", MODE: "MODE", ID: "ID" }, outputs: { populateOption: "populateOption", pickerChanged: "pickerChanged", closeWorkflow: "closeWorkflow", disconnectRefresh: "disconnectRefresh", resetForm: "resetForm", hideElementsFromMoreOptions: "hideElementsFromMoreOptions" }, ngImport: i0, template: "<ng-container *ngIf=\"!showSmiley\">\n <div class=\"workflow-grc\">\n <div class=\"form-group-row\" [class.disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\n *ngIf=\"!isLoading\">\n <lib-text-field-icon [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\" [cdnLink]=\"CDN_LINK.grcType\"\n [isChecked]=\"true\" field-icons>\n </lib-text-field-icon>\n <div class=\"right\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">\n GRC OBJECT TYPE<span class=\"required\">*</span>\n </label>\n <div class=\"select\">\n <tab-selector [selectedItem]=\"grcPayload.type\" [displayArray]=\"OBJECT_TYPE\"\n (onValueChanged)=\"changeAttributesType($event)\"></tab-selector>\n </div>\n </div>\n </div>\n </div>\n <!-- Object name field -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE.name &&\n dialogFields?.includes(openedPopup)\n \" [isEditMode]=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\" [titleText]=\"ALL_TEXT?.grcObjectName\"\n [placeholderText]=\"ALL_TEXT?.grcObjectPlaceholder\" [(textValue)]=\"grcPayload.name\"\n (textValueChange)=\"onTextChange($event)\" (clickOutside)=\"onClickOutside()\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.name)\">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcObjectName\" [isChecked]=\"grcPayload.name\" field-icons>\n </lib-text-field-icon>\n <span class=\"required\" is-required>*</span>\n <lib-edit-mode *ngIf=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\" [selectedData]=\"[grcPayload]\"\n [type]=\"'text'\" (isOnEdit)=\"onEdit(INPUT_TYPE.name)\" edit-mode></lib-edit-mode>\n <p *ngIf=\"grcValidationCheck || isDuplicateName\" [appScrollInView]=\"true\" class=\"error-message\" error-message>\n {{ grcNameValidationError }}\n </p>\n <vcomply-editor [editorConfig]=\"EDITOR_CONFIG\" [(ngModel)]=\"grcPayload.description\"\n rich-text-editor></vcomply-editor>\n </lib-text-field>\n\n <!-- Specify Owners -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE.owner &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE.owner\" [isEditMode]=\"\n listObject.OWNER?.selectedData?.length &&\n openedPopup !== INPUT_TYPE.owner\n \" [titleText]=\"ALL_TEXT?.grcOwnersTitle\" [placeholderText]=\"ALL_TEXT?.grcOwnersPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.owner)\">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcOwners\" [isChecked]=\"listObject.OWNER?.selectedData?.length > 0\"\n field-icons>\n </lib-text-field-icon>\n <span class=\"required\" is-required>*</span>\n <lib-edit-mode *ngIf=\"\n listObject.OWNER?.selectedData?.length &&\n openedPopup !== INPUT_TYPE.owner\n \" [nonRemovableIds]=\"disabledIds\" [countColor]=\"'greenBg'\" [selectedData]=\"listObject.OWNER?.selectedData\"\n [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.owner)\" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.owner)\"\n edit-mode></lib-edit-mode>\n </lib-text-field>\n\n <!-- Link Responsibility Centers (RC) -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE.RC &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE.RC\" [isEditMode]=\"\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\n \" [titleText]=\"ALL_TEXT?.grcRCTitle\" [placeholderText]=\"ALL_TEXT?.grcRCPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.RC)\">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcRC\" [isChecked]=\"listObject.RC?.selectedData?.length > 0\" field-icons>\n </lib-text-field-icon>\n <span class=\"required\" is-required>*</span>\n <lib-edit-mode *ngIf=\"\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\n \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.RC)\" [selectedData]=\"listObject.RC?.selectedData\"\n [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.RC)\" edit-mode></lib-edit-mode>\n <p *ngIf=\"isFormSubmitted && !listObject.RC?.selectedData?.length\" [appScrollInView]=\"true\" class=\"error-message\"\n error-message>\n {{ VALIDATION_MESSAGE.grcRC }}\n </p>\n </lib-text-field>\n\n <!-- Link Program and Responsibility -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE?.programResponsibility &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.programResponsibility\" *ngIf=\"grcForm?.linkProgram\"\n [titleText]=\"ALL_TEXT?.grcProgramResponsibilityTitle\"\n [placeholderText]=\"ALL_TEXT?.grcProgramResponsibilityPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.programResponsibility)\" [isEditMode]=\"\n listObject?.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.programResponsibility\n \">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkOthers\"\n [isChecked]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length > 0\" field-icons>\n </lib-text-field-icon>\n\n <lib-edit-mode *ngIf=\"\n listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.PROGRAM_RESPONSIBILITY\n \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.programResponsibility)\"\n [selectedData]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData \" [nameDisplayKey]=\"'title'\" [type]=\"'list'\"\n (isOnEdit)=\"onEdit(INPUT_TYPE.programResponsibility)\" edit-mode>\n </lib-edit-mode>\n </lib-text-field>\n\n <!-- Link Risk Categories and Risk -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE?.riskCategory &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.riskCategory\" *ngIf=\"grcForm?.linkRisk\"\n [titleText]=\"ALL_TEXT?.grcRiskCategoryTitle\" [placeholderText]=\"ALL_TEXT?.grcRiskCategoryPlaceholder\"\n [isReadOnly]=\"true\" (onClick)=\"onPopupOpen(INPUT_TYPE.riskCategory)\" [isEditMode]=\"\n listObject?.RISK_CATEGORY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.riskCategory\n \">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkGRC\" [isChecked]=\"listObject.RISK_CATEGORY?.selectedData?.length > 0\"\n field-icons>\n </lib-text-field-icon>\n\n <lib-edit-mode *ngIf=\"\n listObject.RISK_CATEGORY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE.RISK_CATEGORY\n \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.riskCategory)\" [selectedData]=\"selectedRisks\"\n [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.riskCategory, data?.key)\" edit-mode>\n </lib-edit-mode>\n </lib-text-field>\n </div>\n\n <!-- Link Other GRC Objects -->\n <!-- Hidden for now -->\n <!-- <lib-text-field *ngIf=\"grcForm?.otherGrcObjects\" [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE?.otherGrcObjects &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.otherGrcObjects\" [titleText]=\"ALL_TEXT?.otherGRCObjectsTitle\"\n [placeholderText]=\"ALL_TEXT?.otherGRCObjectsPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.otherGrcObjects)\" [isEditMode]=\"\n listObject?.OTHER_GRC_OBJECTS?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.otherGrcObjects\n \">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkOthers\"\n [isChecked]=\"listObject?.OTHER_GRC_OBJECTS?.selectedData?.length > 0\" field-icons>\n </lib-text-field-icon>\n\n <lib-edit-mode *ngFor=\"let data of GRC_TYPE_ARRAY\"\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.otherGrcObjects)\" [selectedData]=\"grcDataWithTypes[data]\"\n [type]=\"'list'\" [isMultiple]=\"true\" (isOnEdit)=\"onEdit(INPUT_TYPE.otherGrcObjects, data)\" edit-mode>\n <div class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\">\n {{ data | titlecase }}\n </div>\n </lib-edit-mode>\n </lib-text-field> -->\n <lib-attributes [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\n *ngIf=\"selectedAttributes?.attributes?.length && this.grcForm.grcObjectType\" [attributesInfo]=\"selectedAttributes\"\n [isFormSubmitted]=\"isFormSubmitted\" (onClick)=\"getAttributeSelection($event)\"></lib-attributes>\n <lib-list-popup [openedPopup]=\"openedPopup\" [listObject]=\"listObject\" [tableCard]=\"otherGRCCard\"\n [otherGrcCardLoader]=\"grcTabLoader\" [GRCSelectedTab]=\"GRCSelectedTab\" [mode]=\"MODE\" [onEditGRCId]=\"ID\"\n (onSaveSelectedList)=\"onSaveSelectedList($event)\"\n (getOtherGRCObjects)=\"getOtherGRCObjects($event)\"></lib-list-popup>\n</ng-container>\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessage\" [actionButtons]=\"actionButtons\"\n (action)=\"smileyActions($event)\" (closeSmiley)=\"closeSmiley($event)\"></app-smiley-dialog-inline>\n<app-loader-inline *ngIf=\"isLoading\"></app-loader-inline>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";::ng-deep .workflow-grc{position:relative}.disabled{opacity:.5;pointer-events:none}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.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-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .chipContainer button.countBtn.blueBg{background:#1e5dd3}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::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-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;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 #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::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;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;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::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;margin:0;padding:0;inset: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:8px 0!important;text-align:center}::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%;text-align:center}::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:13px!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;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:14px;font-weight:500;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[type=text],::ng-deep .vx-form-group .input{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[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .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[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .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[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-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{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::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;inset: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;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:100px}::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;position:relative;top:1px;font-size:8px}::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:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;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 #1e5dd345;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 ::ng-deep vcomply-editor{margin-top:8px;display:block;pointer-events:auto!important;z-index:1}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group ::ng-deep vcomply-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 ::ng-deep vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group ::ng-deep vcomply-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 ::ng-deep vcomply-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 ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group ::ng-deep vcomply-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 ::ng-deep vcomply-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 ::ng-deep vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-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;background:#fff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::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:transparent;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::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:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;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 app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::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;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 .info.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::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:212px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;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 #34aa44;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;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;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;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;inset:2px 0 0 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 input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::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}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;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}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-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}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-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;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-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}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@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{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;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@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;inset:0}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep 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}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep 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}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:#0000004d}::ng-deep .cdk-overlay-container{z-index:2147483002!important}::ng-deep .dp-popup{z-index:999;display:flex!important;align-items:center;justify-content:center;width:100vw;height:100vh;background:#0000004d!important;box-shadow:unset!important}::ng-deep .dp-popup dp-day-calendar{width:412px!important;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep .dp-popup dp-day-calendar,::ng-deep .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep .dp-popup dp-day-calendar button,::ng-deep .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep .dp-popup dp-day-calendar .dp-weekdays,::ng-deep .dp-popup dp-month-calendar .dp-weekdays,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep .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}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}@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;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;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 0% 1%,#747576 50%,#2989d800 51%,#7db9e800);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;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 0% 50%,#2989d800 51%,#7db9e800);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.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0% 1%,#34aa44 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .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 0% 1%,#1e5dd3 50%,#2989d800 51%,#7db9e800);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.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0% 1%,#f6882f 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0% 1%,#7aa6f7 50%,#2989d800 51%,#7db9e800);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:#0000000d!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:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px 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:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px 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:92px!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 vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-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 marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.wf-tooltip{pointer-events:none;position:absolute;max-width:300px;font-size:12px;text-align:left;color:#fff;padding:8px 12px;background:#000;border-radius:2px;z-index:-222;top:0;opacity:0;white-space:break-spaces;word-break:break-word}.wf-tooltip *{color:#fff!important}.wf-tooltip:empty{display:none!important}.wf-tooltip.white{box-shadow:0 2px 8px #1c5bd159;color:#747576;background:#fff;text-align:left}.wf-tooltip.white b{color:#747576!important}.wf-tooltip.animate-top{animation:animate-top .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-right{animation:animate-right .3s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-bottom{animation:animate-bottom .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-left{animation:animate-left .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-left.white:after{border-color:transparent transparent transparent #f1f1f1}.wf-tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #000000}.wf-tooltip-right.white:after{border-color:transparent #f1f1f1 transparent transparent}.wf-tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent #000000 transparent transparent}.wf-tooltip-bottom-right:after{bottom:100%;left:100%;margin-left:-20px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-right.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-bottom-left:after{bottom:100%;left:0;margin-left:10px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-left.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-top-left:after{top:100%;left:0;margin-left:10px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-left.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-top-right:after{top:100%;left:100%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-right.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip:after{content:\"\";position:absolute;border-style:solid}.wf-tooltip span.within{font-size:80%;display:block;width:100%}.wf-tooltip .small{display:block;font-size:10px}.wf-tooltip .within-box{background:#f1f1f1;border-radius:2px;color:#042e7d!important;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 2px;margin-right:2px}.wf-tooltip-show{pointer-events:none;opacity:1;z-index:2147483001}\n"], dependencies: [{ kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i11.TextFieldComponent, selector: "lib-text-field", inputs: ["titleText", "placeholderText", "textValue", "isReadOnly", "isEditMode", "disabled", "active"], outputs: ["textValueChange", "onClick", "clickOutside"] }, { kind: "component", type: i12.TextFieldIconComponent, selector: "lib-text-field-icon", inputs: ["cdnLink", "altName", "isChecked"] }, { kind: "component", type: i13.MarxEditorComponent, selector: "vcomply-editor", inputs: ["editorConfig"], outputs: ["comment", "sendSavedFiles", "popup"] }, { kind: "component", type: i14.ListPopupComponent, selector: "lib-list-popup", inputs: ["openedPopup", "listObject", "tableCard", "GRCSelectedTab", "onEditGRCId", "mode"], outputs: ["onSaveSelectedList", "getOtherGRCObjects"] }, { kind: "component", type: i15.TabSelector, selector: "tab-selector", inputs: ["disabled", "selectedItem", "displayArray"], outputs: ["onValueChanged"] }, { kind: "component", type: i16.EditModeComponent, selector: "lib-edit-mode", inputs: ["selectedData", "type", "nonRemovableIds", "isMultiple", "countColor", "nameDisplayKey"], outputs: ["isOnEdit", "onRemoveData"] }, { kind: "component", type: i17.AttributesComponent, selector: "lib-attributes", inputs: ["attributesInfo", "isFormSubmitted", "disabled"], outputs: ["onAttributesSelection", "onClick"] }, { kind: "component", type: i18.SmileyDialogInlineComponent, selector: "app-smiley-dialog-inline", inputs: ["message", "actionButtons"], outputs: ["action", "closeSmiley"] }, { kind: "component", type: i19.LoaderInlineComponent, selector: "app-loader-inline" }] }); }
867
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GrcObjectContainerComponent, selector: "lib-grc-object-container", inputs: { grcType: "grcType", MODE: "MODE", ID: "ID" }, outputs: { populateOption: "populateOption", pickerChanged: "pickerChanged", closeWorkflow: "closeWorkflow", disconnectRefresh: "disconnectRefresh", resetForm: "resetForm", hideElementsFromMoreOptions: "hideElementsFromMoreOptions" }, ngImport: i0, template: "<ng-container *ngIf=\"!showSmiley\">\n <div class=\"workflow-grc\">\n <div class=\"form-group-row\" [class.disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\n *ngIf=\"!isLoading\">\n <lib-text-field-icon [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\" [cdnLink]=\"CDN_LINK.grcType\"\n [isChecked]=\"true\" field-icons>\n </lib-text-field-icon>\n <div class=\"right\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">\n GRC OBJECT TYPE<span class=\"required\">*</span>\n </label>\n <div class=\"select\">\n <tab-selector [selectedItem]=\"grcPayload.type\" [displayArray]=\"OBJECT_TYPE\"\n (onValueChanged)=\"changeAttributesType($event)\"></tab-selector>\n </div>\n </div>\n </div>\n </div>\n <!-- Object name field -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE.name &&\n dialogFields?.includes(openedPopup)\n \" [isEditMode]=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\" [titleText]=\"ALL_TEXT?.grcObjectName\"\n [placeholderText]=\"ALL_TEXT?.grcObjectPlaceholder\" [(textValue)]=\"grcPayload.name\"\n (textValueChange)=\"onTextChange($event)\" (clickOutside)=\"onClickOutside()\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.name)\">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcObjectName\" [isChecked]=\"grcPayload.name\" field-icons>\n </lib-text-field-icon>\n <span class=\"required\" is-required>*</span>\n <lib-edit-mode *ngIf=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\" [selectedData]=\"[grcPayload]\"\n [type]=\"'text'\" (isOnEdit)=\"onEdit(INPUT_TYPE.name)\" edit-mode></lib-edit-mode>\n <p *ngIf=\"grcValidationCheck || isDuplicateName\" [appScrollInView]=\"true\" class=\"error-message\" error-message>\n {{ grcNameValidationError }}\n </p>\n <vcomply-editor [editorConfig]=\"EDITOR_CONFIG\" [(ngModel)]=\"grcPayload.description\"\n rich-text-editor></vcomply-editor>\n </lib-text-field>\n\n <!-- Specify Owners -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE.owner &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE.owner\" [isEditMode]=\"\n listObject.OWNER?.selectedData?.length &&\n openedPopup !== INPUT_TYPE.owner\n \" [titleText]=\"ALL_TEXT?.grcOwnersTitle\" [placeholderText]=\"ALL_TEXT?.grcOwnersPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.owner)\">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcOwners\" [isChecked]=\"listObject.OWNER?.selectedData?.length > 0\"\n field-icons>\n </lib-text-field-icon>\n <span class=\"required\" is-required>*</span>\n <lib-edit-mode *ngIf=\"\n listObject.OWNER?.selectedData?.length &&\n openedPopup !== INPUT_TYPE.owner\n \" [nonRemovableIds]=\"disabledIds\" [countColor]=\"'greenBg'\" [selectedData]=\"listObject.OWNER?.selectedData\"\n [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.owner)\" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.owner)\"\n edit-mode></lib-edit-mode>\n </lib-text-field>\n\n <!-- Link Responsibility Centers (RC) -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE.RC &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE.RC\" [isEditMode]=\"\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\n \" [titleText]=\"ALL_TEXT?.grcRCTitle\" [placeholderText]=\"ALL_TEXT?.grcRCPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.RC)\">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcRC\" [isChecked]=\"listObject.RC?.selectedData?.length > 0\" field-icons>\n </lib-text-field-icon>\n <span class=\"required\" is-required>*</span>\n <lib-edit-mode *ngIf=\"\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\n \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.RC)\" [selectedData]=\"listObject.RC?.selectedData\"\n [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.RC)\" edit-mode></lib-edit-mode>\n <p *ngIf=\"isFormSubmitted && !listObject.RC?.selectedData?.length\" [appScrollInView]=\"true\" class=\"error-message\"\n error-message>\n {{ VALIDATION_MESSAGE.grcRC }}\n </p>\n </lib-text-field>\n\n <!-- Link Program and Responsibility -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE?.programResponsibility &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.programResponsibility\" *ngIf=\"grcForm?.linkProgram\"\n [titleText]=\"ALL_TEXT?.grcProgramResponsibilityTitle\"\n [placeholderText]=\"ALL_TEXT?.grcProgramResponsibilityPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.programResponsibility)\" [isEditMode]=\"\n listObject?.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.programResponsibility\n \">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkOthers\"\n [isChecked]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length > 0\" field-icons>\n </lib-text-field-icon>\n\n <lib-edit-mode *ngIf=\"\n listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.PROGRAM_RESPONSIBILITY\n \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.programResponsibility)\"\n [selectedData]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData \" [nameDisplayKey]=\"'title'\" [type]=\"'list'\"\n (isOnEdit)=\"onEdit(INPUT_TYPE.programResponsibility)\" edit-mode>\n </lib-edit-mode>\n </lib-text-field>\n\n <!-- Link Risk Categories and Risk -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE?.riskCategory &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.riskCategory\" *ngIf=\"grcForm?.linkRisk\"\n [titleText]=\"ALL_TEXT?.grcRiskCategoryTitle\" [placeholderText]=\"ALL_TEXT?.grcRiskCategoryPlaceholder\"\n [isReadOnly]=\"true\" (onClick)=\"onPopupOpen(INPUT_TYPE.riskCategory)\" [isEditMode]=\"\n listObject?.RISK_CATEGORY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.riskCategory\n \">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkGRC\" [isChecked]=\"listObject.RISK_CATEGORY?.selectedData?.length > 0\"\n field-icons>\n </lib-text-field-icon>\n\n <lib-edit-mode *ngIf=\"\n listObject.RISK_CATEGORY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE.RISK_CATEGORY\n \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.riskCategory)\" [selectedData]=\"selectedRisks\"\n [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.riskCategory, data?.key)\" edit-mode>\n </lib-edit-mode>\n </lib-text-field>\n </div>\n\n <!-- Link Other GRC Objects -->\n <lib-text-field *ngIf=\"grcForm?.otherGrcObjects\" [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE?.otherGrcObjects &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.otherGrcObjects\" [titleText]=\"ALL_TEXT?.otherGRCObjectsTitle\"\n [placeholderText]=\"ALL_TEXT?.otherGRCObjectsPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.otherGrcObjects)\" [isEditMode]=\"\n listObject?.OTHER_GRC_OBJECTS?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.otherGrcObjects\n \">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkOthers\"\n [isChecked]=\"listObject?.OTHER_GRC_OBJECTS?.selectedData?.length > 0\" field-icons>\n </lib-text-field-icon>\n\n <lib-edit-mode *ngFor=\"let data of GRC_TYPE_ARRAY\"\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.otherGrcObjects)\" [selectedData]=\"grcDataWithTypes[data]\"\n [type]=\"'list'\" [isMultiple]=\"true\" (isOnEdit)=\"onEdit(INPUT_TYPE.otherGrcObjects, data)\" edit-mode>\n <div class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\">\n {{ data | titlecase }}\n </div>\n </lib-edit-mode>\n </lib-text-field>\n <lib-attributes [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\n *ngIf=\"selectedAttributes?.attributes?.length && this.grcForm.grcObjectType\" [attributesInfo]=\"selectedAttributes\"\n [isFormSubmitted]=\"isFormSubmitted\" (onClick)=\"getAttributeSelection($event)\"></lib-attributes>\n <lib-list-popup [openedPopup]=\"openedPopup\" [listObject]=\"listObject\" [tableCard]=\"otherGRCCard\"\n [otherGrcCardLoader]=\"grcTabLoader\" [GRCSelectedTab]=\"GRCSelectedTab\" [mode]=\"MODE\" [onEditGRCId]=\"ID\"\n (onSaveSelectedList)=\"onSaveSelectedList($event)\"\n (getOtherGRCObjects)=\"getOtherGRCObjects($event)\"></lib-list-popup>\n</ng-container>\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessage\" [actionButtons]=\"actionButtons\"\n (action)=\"smileyActions($event)\" (closeSmiley)=\"closeSmiley($event)\"></app-smiley-dialog-inline>\n<app-loader-inline *ngIf=\"isLoading\"></app-loader-inline>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";::ng-deep .workflow-grc{position:relative}.disabled{opacity:.5;pointer-events:none}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.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-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .chipContainer button.countBtn.blueBg{background:#1e5dd3}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::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-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;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 #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::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;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;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::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;margin:0;padding:0;inset: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:8px 0!important;text-align:center}::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%;text-align:center}::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:13px!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;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:14px;font-weight:500;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[type=text],::ng-deep .vx-form-group .input{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[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .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[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .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[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-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{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::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;inset: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;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:100px}::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;position:relative;top:1px;font-size:8px}::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:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;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 #1e5dd345;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 ::ng-deep vcomply-editor{margin-top:8px;display:block;pointer-events:auto!important;z-index:1}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group ::ng-deep vcomply-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 ::ng-deep vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group ::ng-deep vcomply-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 ::ng-deep vcomply-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 ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group ::ng-deep vcomply-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 ::ng-deep vcomply-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 ::ng-deep vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-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;background:#fff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::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:transparent;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::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:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;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 app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::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;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 .info.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::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:212px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;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 #34aa44;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;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;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;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;inset:2px 0 0 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 input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::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}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;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}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-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}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-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;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-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}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@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{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;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@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;inset:0}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep 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}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep 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}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:#0000004d}::ng-deep .cdk-overlay-container{z-index:2147483002!important}::ng-deep .dp-popup{z-index:999;display:flex!important;align-items:center;justify-content:center;width:100vw;height:100vh;background:#0000004d!important;box-shadow:unset!important}::ng-deep .dp-popup dp-day-calendar{width:412px!important;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep .dp-popup dp-day-calendar,::ng-deep .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep .dp-popup dp-day-calendar button,::ng-deep .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep .dp-popup dp-day-calendar .dp-weekdays,::ng-deep .dp-popup dp-month-calendar .dp-weekdays,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep .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}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}@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;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;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 0% 1%,#747576 50%,#2989d800 51%,#7db9e800);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;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 0% 50%,#2989d800 51%,#7db9e800);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.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0% 1%,#34aa44 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .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 0% 1%,#1e5dd3 50%,#2989d800 51%,#7db9e800);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.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0% 1%,#f6882f 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0% 1%,#7aa6f7 50%,#2989d800 51%,#7db9e800);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:#0000000d!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:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px 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:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px 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:92px!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 vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-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 marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.wf-tooltip{pointer-events:none;position:absolute;max-width:300px;font-size:12px;text-align:left;color:#fff;padding:8px 12px;background:#000;border-radius:2px;z-index:-222;top:0;opacity:0;white-space:break-spaces;word-break:break-word}.wf-tooltip *{color:#fff!important}.wf-tooltip:empty{display:none!important}.wf-tooltip.white{box-shadow:0 2px 8px #1c5bd159;color:#747576;background:#fff;text-align:left}.wf-tooltip.white b{color:#747576!important}.wf-tooltip.animate-top{animation:animate-top .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-right{animation:animate-right .3s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-bottom{animation:animate-bottom .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-left{animation:animate-left .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-left.white:after{border-color:transparent transparent transparent #f1f1f1}.wf-tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #000000}.wf-tooltip-right.white:after{border-color:transparent #f1f1f1 transparent transparent}.wf-tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent #000000 transparent transparent}.wf-tooltip-bottom-right:after{bottom:100%;left:100%;margin-left:-20px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-right.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-bottom-left:after{bottom:100%;left:0;margin-left:10px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-left.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-top-left:after{top:100%;left:0;margin-left:10px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-left.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-top-right:after{top:100%;left:100%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-right.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip:after{content:\"\";position:absolute;border-style:solid}.wf-tooltip span.within{font-size:80%;display:block;width:100%}.wf-tooltip .small{display:block;font-size:10px}.wf-tooltip .within-box{background:#f1f1f1;border-radius:2px;color:#042e7d!important;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 2px;margin-right:2px}.wf-tooltip-show{pointer-events:none;opacity:1;z-index:2147483001}\n"], dependencies: [{ kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i11.TextFieldComponent, selector: "lib-text-field", inputs: ["titleText", "placeholderText", "textValue", "isReadOnly", "isEditMode", "disabled", "active"], outputs: ["textValueChange", "onClick", "clickOutside"] }, { kind: "component", type: i12.TextFieldIconComponent, selector: "lib-text-field-icon", inputs: ["cdnLink", "altName", "isChecked"] }, { kind: "component", type: i13.MarxEditorComponent, selector: "vcomply-editor", inputs: ["editorConfig"], outputs: ["comment", "sendSavedFiles", "popup"] }, { kind: "component", type: i14.ListPopupComponent, selector: "lib-list-popup", inputs: ["openedPopup", "listObject", "tableCard", "GRCSelectedTab", "onEditGRCId", "mode"], outputs: ["onSaveSelectedList", "getOtherGRCObjects"] }, { kind: "component", type: i15.TabSelector, selector: "tab-selector", inputs: ["disabled", "selectedItem", "displayArray"], outputs: ["onValueChanged"] }, { kind: "component", type: i16.EditModeComponent, selector: "lib-edit-mode", inputs: ["selectedData", "type", "nonRemovableIds", "isMultiple", "countColor", "nameDisplayKey"], outputs: ["isOnEdit", "onRemoveData"] }, { kind: "component", type: i17.AttributesComponent, selector: "lib-attributes", inputs: ["attributesInfo", "isFormSubmitted", "disabled"], outputs: ["onAttributesSelection", "onClick"] }, { kind: "component", type: i18.SmileyDialogInlineComponent, selector: "app-smiley-dialog-inline", inputs: ["message", "actionButtons"], outputs: ["action", "closeSmiley"] }, { kind: "component", type: i19.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "pipe", type: i9.TitleCasePipe, name: "titlecase" }] }); }
868
868
  }
869
869
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GrcObjectContainerComponent, decorators: [{
870
870
  type: Component,
@@ -875,6 +875,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
875
875
  'disconnectRefresh',
876
876
  'resetForm',
877
877
  'hideElementsFromMoreOptions',
878
- ], inputs: ['grcType', 'MODE', 'ID'], template: "<ng-container *ngIf=\"!showSmiley\">\n <div class=\"workflow-grc\">\n <div class=\"form-group-row\" [class.disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\n *ngIf=\"!isLoading\">\n <lib-text-field-icon [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\" [cdnLink]=\"CDN_LINK.grcType\"\n [isChecked]=\"true\" field-icons>\n </lib-text-field-icon>\n <div class=\"right\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">\n GRC OBJECT TYPE<span class=\"required\">*</span>\n </label>\n <div class=\"select\">\n <tab-selector [selectedItem]=\"grcPayload.type\" [displayArray]=\"OBJECT_TYPE\"\n (onValueChanged)=\"changeAttributesType($event)\"></tab-selector>\n </div>\n </div>\n </div>\n </div>\n <!-- Object name field -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE.name &&\n dialogFields?.includes(openedPopup)\n \" [isEditMode]=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\" [titleText]=\"ALL_TEXT?.grcObjectName\"\n [placeholderText]=\"ALL_TEXT?.grcObjectPlaceholder\" [(textValue)]=\"grcPayload.name\"\n (textValueChange)=\"onTextChange($event)\" (clickOutside)=\"onClickOutside()\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.name)\">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcObjectName\" [isChecked]=\"grcPayload.name\" field-icons>\n </lib-text-field-icon>\n <span class=\"required\" is-required>*</span>\n <lib-edit-mode *ngIf=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\" [selectedData]=\"[grcPayload]\"\n [type]=\"'text'\" (isOnEdit)=\"onEdit(INPUT_TYPE.name)\" edit-mode></lib-edit-mode>\n <p *ngIf=\"grcValidationCheck || isDuplicateName\" [appScrollInView]=\"true\" class=\"error-message\" error-message>\n {{ grcNameValidationError }}\n </p>\n <vcomply-editor [editorConfig]=\"EDITOR_CONFIG\" [(ngModel)]=\"grcPayload.description\"\n rich-text-editor></vcomply-editor>\n </lib-text-field>\n\n <!-- Specify Owners -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE.owner &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE.owner\" [isEditMode]=\"\n listObject.OWNER?.selectedData?.length &&\n openedPopup !== INPUT_TYPE.owner\n \" [titleText]=\"ALL_TEXT?.grcOwnersTitle\" [placeholderText]=\"ALL_TEXT?.grcOwnersPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.owner)\">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcOwners\" [isChecked]=\"listObject.OWNER?.selectedData?.length > 0\"\n field-icons>\n </lib-text-field-icon>\n <span class=\"required\" is-required>*</span>\n <lib-edit-mode *ngIf=\"\n listObject.OWNER?.selectedData?.length &&\n openedPopup !== INPUT_TYPE.owner\n \" [nonRemovableIds]=\"disabledIds\" [countColor]=\"'greenBg'\" [selectedData]=\"listObject.OWNER?.selectedData\"\n [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.owner)\" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.owner)\"\n edit-mode></lib-edit-mode>\n </lib-text-field>\n\n <!-- Link Responsibility Centers (RC) -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE.RC &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE.RC\" [isEditMode]=\"\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\n \" [titleText]=\"ALL_TEXT?.grcRCTitle\" [placeholderText]=\"ALL_TEXT?.grcRCPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.RC)\">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcRC\" [isChecked]=\"listObject.RC?.selectedData?.length > 0\" field-icons>\n </lib-text-field-icon>\n <span class=\"required\" is-required>*</span>\n <lib-edit-mode *ngIf=\"\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\n \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.RC)\" [selectedData]=\"listObject.RC?.selectedData\"\n [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.RC)\" edit-mode></lib-edit-mode>\n <p *ngIf=\"isFormSubmitted && !listObject.RC?.selectedData?.length\" [appScrollInView]=\"true\" class=\"error-message\"\n error-message>\n {{ VALIDATION_MESSAGE.grcRC }}\n </p>\n </lib-text-field>\n\n <!-- Link Program and Responsibility -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE?.programResponsibility &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.programResponsibility\" *ngIf=\"grcForm?.linkProgram\"\n [titleText]=\"ALL_TEXT?.grcProgramResponsibilityTitle\"\n [placeholderText]=\"ALL_TEXT?.grcProgramResponsibilityPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.programResponsibility)\" [isEditMode]=\"\n listObject?.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.programResponsibility\n \">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkOthers\"\n [isChecked]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length > 0\" field-icons>\n </lib-text-field-icon>\n\n <lib-edit-mode *ngIf=\"\n listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.PROGRAM_RESPONSIBILITY\n \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.programResponsibility)\"\n [selectedData]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData \" [nameDisplayKey]=\"'title'\" [type]=\"'list'\"\n (isOnEdit)=\"onEdit(INPUT_TYPE.programResponsibility)\" edit-mode>\n </lib-edit-mode>\n </lib-text-field>\n\n <!-- Link Risk Categories and Risk -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE?.riskCategory &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.riskCategory\" *ngIf=\"grcForm?.linkRisk\"\n [titleText]=\"ALL_TEXT?.grcRiskCategoryTitle\" [placeholderText]=\"ALL_TEXT?.grcRiskCategoryPlaceholder\"\n [isReadOnly]=\"true\" (onClick)=\"onPopupOpen(INPUT_TYPE.riskCategory)\" [isEditMode]=\"\n listObject?.RISK_CATEGORY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.riskCategory\n \">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkGRC\" [isChecked]=\"listObject.RISK_CATEGORY?.selectedData?.length > 0\"\n field-icons>\n </lib-text-field-icon>\n\n <lib-edit-mode *ngIf=\"\n listObject.RISK_CATEGORY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE.RISK_CATEGORY\n \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.riskCategory)\" [selectedData]=\"selectedRisks\"\n [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.riskCategory, data?.key)\" edit-mode>\n </lib-edit-mode>\n </lib-text-field>\n </div>\n\n <!-- Link Other GRC Objects -->\n <!-- Hidden for now -->\n <!-- <lib-text-field *ngIf=\"grcForm?.otherGrcObjects\" [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE?.otherGrcObjects &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.otherGrcObjects\" [titleText]=\"ALL_TEXT?.otherGRCObjectsTitle\"\n [placeholderText]=\"ALL_TEXT?.otherGRCObjectsPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.otherGrcObjects)\" [isEditMode]=\"\n listObject?.OTHER_GRC_OBJECTS?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.otherGrcObjects\n \">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkOthers\"\n [isChecked]=\"listObject?.OTHER_GRC_OBJECTS?.selectedData?.length > 0\" field-icons>\n </lib-text-field-icon>\n\n <lib-edit-mode *ngFor=\"let data of GRC_TYPE_ARRAY\"\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.otherGrcObjects)\" [selectedData]=\"grcDataWithTypes[data]\"\n [type]=\"'list'\" [isMultiple]=\"true\" (isOnEdit)=\"onEdit(INPUT_TYPE.otherGrcObjects, data)\" edit-mode>\n <div class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\">\n {{ data | titlecase }}\n </div>\n </lib-edit-mode>\n </lib-text-field> -->\n <lib-attributes [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\n *ngIf=\"selectedAttributes?.attributes?.length && this.grcForm.grcObjectType\" [attributesInfo]=\"selectedAttributes\"\n [isFormSubmitted]=\"isFormSubmitted\" (onClick)=\"getAttributeSelection($event)\"></lib-attributes>\n <lib-list-popup [openedPopup]=\"openedPopup\" [listObject]=\"listObject\" [tableCard]=\"otherGRCCard\"\n [otherGrcCardLoader]=\"grcTabLoader\" [GRCSelectedTab]=\"GRCSelectedTab\" [mode]=\"MODE\" [onEditGRCId]=\"ID\"\n (onSaveSelectedList)=\"onSaveSelectedList($event)\"\n (getOtherGRCObjects)=\"getOtherGRCObjects($event)\"></lib-list-popup>\n</ng-container>\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessage\" [actionButtons]=\"actionButtons\"\n (action)=\"smileyActions($event)\" (closeSmiley)=\"closeSmiley($event)\"></app-smiley-dialog-inline>\n<app-loader-inline *ngIf=\"isLoading\"></app-loader-inline>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";::ng-deep .workflow-grc{position:relative}.disabled{opacity:.5;pointer-events:none}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.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-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .chipContainer button.countBtn.blueBg{background:#1e5dd3}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::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-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;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 #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::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;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;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::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;margin:0;padding:0;inset: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:8px 0!important;text-align:center}::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%;text-align:center}::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:13px!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;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:14px;font-weight:500;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[type=text],::ng-deep .vx-form-group .input{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[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .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[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .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[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-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{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::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;inset: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;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:100px}::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;position:relative;top:1px;font-size:8px}::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:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;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 #1e5dd345;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 ::ng-deep vcomply-editor{margin-top:8px;display:block;pointer-events:auto!important;z-index:1}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group ::ng-deep vcomply-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 ::ng-deep vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group ::ng-deep vcomply-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 ::ng-deep vcomply-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 ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group ::ng-deep vcomply-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 ::ng-deep vcomply-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 ::ng-deep vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-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;background:#fff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::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:transparent;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::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:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;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 app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::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;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 .info.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::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:212px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;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 #34aa44;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;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;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;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;inset:2px 0 0 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 input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::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}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;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}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-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}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-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;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-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}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@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{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;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@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;inset:0}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep 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}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep 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}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:#0000004d}::ng-deep .cdk-overlay-container{z-index:2147483002!important}::ng-deep .dp-popup{z-index:999;display:flex!important;align-items:center;justify-content:center;width:100vw;height:100vh;background:#0000004d!important;box-shadow:unset!important}::ng-deep .dp-popup dp-day-calendar{width:412px!important;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep .dp-popup dp-day-calendar,::ng-deep .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep .dp-popup dp-day-calendar button,::ng-deep .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep .dp-popup dp-day-calendar .dp-weekdays,::ng-deep .dp-popup dp-month-calendar .dp-weekdays,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep .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}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}@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;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;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 0% 1%,#747576 50%,#2989d800 51%,#7db9e800);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;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 0% 50%,#2989d800 51%,#7db9e800);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.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0% 1%,#34aa44 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .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 0% 1%,#1e5dd3 50%,#2989d800 51%,#7db9e800);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.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0% 1%,#f6882f 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0% 1%,#7aa6f7 50%,#2989d800 51%,#7db9e800);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:#0000000d!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:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px 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:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px 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:92px!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 vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-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 marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.wf-tooltip{pointer-events:none;position:absolute;max-width:300px;font-size:12px;text-align:left;color:#fff;padding:8px 12px;background:#000;border-radius:2px;z-index:-222;top:0;opacity:0;white-space:break-spaces;word-break:break-word}.wf-tooltip *{color:#fff!important}.wf-tooltip:empty{display:none!important}.wf-tooltip.white{box-shadow:0 2px 8px #1c5bd159;color:#747576;background:#fff;text-align:left}.wf-tooltip.white b{color:#747576!important}.wf-tooltip.animate-top{animation:animate-top .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-right{animation:animate-right .3s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-bottom{animation:animate-bottom .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-left{animation:animate-left .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-left.white:after{border-color:transparent transparent transparent #f1f1f1}.wf-tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #000000}.wf-tooltip-right.white:after{border-color:transparent #f1f1f1 transparent transparent}.wf-tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent #000000 transparent transparent}.wf-tooltip-bottom-right:after{bottom:100%;left:100%;margin-left:-20px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-right.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-bottom-left:after{bottom:100%;left:0;margin-left:10px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-left.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-top-left:after{top:100%;left:0;margin-left:10px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-left.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-top-right:after{top:100%;left:100%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-right.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip:after{content:\"\";position:absolute;border-style:solid}.wf-tooltip span.within{font-size:80%;display:block;width:100%}.wf-tooltip .small{display:block;font-size:10px}.wf-tooltip .within-box{background:#f1f1f1;border-radius:2px;color:#042e7d!important;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 2px;margin-right:2px}.wf-tooltip-show{pointer-events:none;opacity:1;z-index:2147483001}\n"] }]
878
+ ], inputs: ['grcType', 'MODE', 'ID'], template: "<ng-container *ngIf=\"!showSmiley\">\n <div class=\"workflow-grc\">\n <div class=\"form-group-row\" [class.disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\n *ngIf=\"!isLoading\">\n <lib-text-field-icon [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\" [cdnLink]=\"CDN_LINK.grcType\"\n [isChecked]=\"true\" field-icons>\n </lib-text-field-icon>\n <div class=\"right\">\n <div class=\"vx-form-group\">\n <label class=\"vx-control-panel\">\n GRC OBJECT TYPE<span class=\"required\">*</span>\n </label>\n <div class=\"select\">\n <tab-selector [selectedItem]=\"grcPayload.type\" [displayArray]=\"OBJECT_TYPE\"\n (onValueChanged)=\"changeAttributesType($event)\"></tab-selector>\n </div>\n </div>\n </div>\n </div>\n <!-- Object name field -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE.name &&\n dialogFields?.includes(openedPopup)\n \" [isEditMode]=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\" [titleText]=\"ALL_TEXT?.grcObjectName\"\n [placeholderText]=\"ALL_TEXT?.grcObjectPlaceholder\" [(textValue)]=\"grcPayload.name\"\n (textValueChange)=\"onTextChange($event)\" (clickOutside)=\"onClickOutside()\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.name)\">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcObjectName\" [isChecked]=\"grcPayload.name\" field-icons>\n </lib-text-field-icon>\n <span class=\"required\" is-required>*</span>\n <lib-edit-mode *ngIf=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\" [selectedData]=\"[grcPayload]\"\n [type]=\"'text'\" (isOnEdit)=\"onEdit(INPUT_TYPE.name)\" edit-mode></lib-edit-mode>\n <p *ngIf=\"grcValidationCheck || isDuplicateName\" [appScrollInView]=\"true\" class=\"error-message\" error-message>\n {{ grcNameValidationError }}\n </p>\n <vcomply-editor [editorConfig]=\"EDITOR_CONFIG\" [(ngModel)]=\"grcPayload.description\"\n rich-text-editor></vcomply-editor>\n </lib-text-field>\n\n <!-- Specify Owners -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE.owner &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE.owner\" [isEditMode]=\"\n listObject.OWNER?.selectedData?.length &&\n openedPopup !== INPUT_TYPE.owner\n \" [titleText]=\"ALL_TEXT?.grcOwnersTitle\" [placeholderText]=\"ALL_TEXT?.grcOwnersPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.owner)\">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcOwners\" [isChecked]=\"listObject.OWNER?.selectedData?.length > 0\"\n field-icons>\n </lib-text-field-icon>\n <span class=\"required\" is-required>*</span>\n <lib-edit-mode *ngIf=\"\n listObject.OWNER?.selectedData?.length &&\n openedPopup !== INPUT_TYPE.owner\n \" [nonRemovableIds]=\"disabledIds\" [countColor]=\"'greenBg'\" [selectedData]=\"listObject.OWNER?.selectedData\"\n [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.owner)\" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.owner)\"\n edit-mode></lib-edit-mode>\n </lib-text-field>\n\n <!-- Link Responsibility Centers (RC) -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE.RC &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE.RC\" [isEditMode]=\"\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\n \" [titleText]=\"ALL_TEXT?.grcRCTitle\" [placeholderText]=\"ALL_TEXT?.grcRCPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.RC)\">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.grcRC\" [isChecked]=\"listObject.RC?.selectedData?.length > 0\" field-icons>\n </lib-text-field-icon>\n <span class=\"required\" is-required>*</span>\n <lib-edit-mode *ngIf=\"\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\n \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.RC)\" [selectedData]=\"listObject.RC?.selectedData\"\n [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.RC)\" edit-mode></lib-edit-mode>\n <p *ngIf=\"isFormSubmitted && !listObject.RC?.selectedData?.length\" [appScrollInView]=\"true\" class=\"error-message\"\n error-message>\n {{ VALIDATION_MESSAGE.grcRC }}\n </p>\n </lib-text-field>\n\n <!-- Link Program and Responsibility -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE?.programResponsibility &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.programResponsibility\" *ngIf=\"grcForm?.linkProgram\"\n [titleText]=\"ALL_TEXT?.grcProgramResponsibilityTitle\"\n [placeholderText]=\"ALL_TEXT?.grcProgramResponsibilityPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.programResponsibility)\" [isEditMode]=\"\n listObject?.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.programResponsibility\n \">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkOthers\"\n [isChecked]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length > 0\" field-icons>\n </lib-text-field-icon>\n\n <lib-edit-mode *ngIf=\"\n listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.PROGRAM_RESPONSIBILITY\n \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.programResponsibility)\"\n [selectedData]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData \" [nameDisplayKey]=\"'title'\" [type]=\"'list'\"\n (isOnEdit)=\"onEdit(INPUT_TYPE.programResponsibility)\" edit-mode>\n </lib-edit-mode>\n </lib-text-field>\n\n <!-- Link Risk Categories and Risk -->\n <lib-text-field [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE?.riskCategory &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.riskCategory\" *ngIf=\"grcForm?.linkRisk\"\n [titleText]=\"ALL_TEXT?.grcRiskCategoryTitle\" [placeholderText]=\"ALL_TEXT?.grcRiskCategoryPlaceholder\"\n [isReadOnly]=\"true\" (onClick)=\"onPopupOpen(INPUT_TYPE.riskCategory)\" [isEditMode]=\"\n listObject?.RISK_CATEGORY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.riskCategory\n \">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkGRC\" [isChecked]=\"listObject.RISK_CATEGORY?.selectedData?.length > 0\"\n field-icons>\n </lib-text-field-icon>\n\n <lib-edit-mode *ngIf=\"\n listObject.RISK_CATEGORY?.selectedData?.length &&\n openedPopup !== INPUT_TYPE.RISK_CATEGORY\n \" (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.riskCategory)\" [selectedData]=\"selectedRisks\"\n [type]=\"'list'\" (isOnEdit)=\"onEdit(INPUT_TYPE.riskCategory, data?.key)\" edit-mode>\n </lib-edit-mode>\n </lib-text-field>\n </div>\n\n <!-- Link Other GRC Objects -->\n <lib-text-field *ngIf=\"grcForm?.otherGrcObjects\" [disabled]=\"\n openedPopup &&\n openedPopup !== INPUT_TYPE?.otherGrcObjects &&\n dialogFields?.includes(openedPopup)\n \" [active]=\"openedPopup && openedPopup == INPUT_TYPE?.otherGrcObjects\" [titleText]=\"ALL_TEXT?.otherGRCObjectsTitle\"\n [placeholderText]=\"ALL_TEXT?.otherGRCObjectsPlaceholder\" [isReadOnly]=\"true\"\n (onClick)=\"onPopupOpen(INPUT_TYPE.otherGrcObjects)\" [isEditMode]=\"\n listObject?.OTHER_GRC_OBJECTS?.selectedData?.length &&\n openedPopup !== INPUT_TYPE?.otherGrcObjects\n \">\n <lib-text-field-icon [cdnLink]=\"CDN_LINK.linkOthers\"\n [isChecked]=\"listObject?.OTHER_GRC_OBJECTS?.selectedData?.length > 0\" field-icons>\n </lib-text-field-icon>\n\n <lib-edit-mode *ngFor=\"let data of GRC_TYPE_ARRAY\"\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.otherGrcObjects)\" [selectedData]=\"grcDataWithTypes[data]\"\n [type]=\"'list'\" [isMultiple]=\"true\" (isOnEdit)=\"onEdit(INPUT_TYPE.otherGrcObjects, data)\" edit-mode>\n <div class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\">\n {{ data | titlecase }}\n </div>\n </lib-edit-mode>\n </lib-text-field>\n <lib-attributes [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\n *ngIf=\"selectedAttributes?.attributes?.length && this.grcForm.grcObjectType\" [attributesInfo]=\"selectedAttributes\"\n [isFormSubmitted]=\"isFormSubmitted\" (onClick)=\"getAttributeSelection($event)\"></lib-attributes>\n <lib-list-popup [openedPopup]=\"openedPopup\" [listObject]=\"listObject\" [tableCard]=\"otherGRCCard\"\n [otherGrcCardLoader]=\"grcTabLoader\" [GRCSelectedTab]=\"GRCSelectedTab\" [mode]=\"MODE\" [onEditGRCId]=\"ID\"\n (onSaveSelectedList)=\"onSaveSelectedList($event)\"\n (getOtherGRCObjects)=\"getOtherGRCObjects($event)\"></lib-list-popup>\n</ng-container>\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessage\" [actionButtons]=\"actionButtons\"\n (action)=\"smileyActions($event)\" (closeSmiley)=\"closeSmiley($event)\"></app-smiley-dialog-inline>\n<app-loader-inline *ngIf=\"isLoading\"></app-loader-inline>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";::ng-deep .workflow-grc{position:relative}.disabled{opacity:.5;pointer-events:none}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.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-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .chipContainer button.countBtn.blueBg{background:#1e5dd3}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::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-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;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 #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::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;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;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::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;margin:0;padding:0;inset: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:8px 0!important;text-align:center}::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%;text-align:center}::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:13px!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;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:14px;font-weight:500;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[type=text],::ng-deep .vx-form-group .input{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[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .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[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .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[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-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{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::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;inset: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;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:100px}::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;position:relative;top:1px;font-size:8px}::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:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;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 #1e5dd345;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 ::ng-deep vcomply-editor{margin-top:8px;display:block;pointer-events:auto!important;z-index:1}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group ::ng-deep vcomply-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 ::ng-deep vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group ::ng-deep vcomply-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 ::ng-deep vcomply-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 ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group ::ng-deep vcomply-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 ::ng-deep vcomply-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 ::ng-deep vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-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;background:#fff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::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:transparent;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::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:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;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 app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::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;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 .info.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::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:212px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;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 #34aa44;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;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;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;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;inset:2px 0 0 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 input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::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}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;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}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-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}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-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;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-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}::ng-deep .wf-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}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@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{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;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@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;inset:0}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep 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}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep 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}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:#0000004d}::ng-deep .cdk-overlay-container{z-index:2147483002!important}::ng-deep .dp-popup{z-index:999;display:flex!important;align-items:center;justify-content:center;width:100vw;height:100vh;background:#0000004d!important;box-shadow:unset!important}::ng-deep .dp-popup dp-day-calendar{width:412px!important;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep .dp-popup dp-day-calendar,::ng-deep .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep .dp-popup dp-day-calendar button,::ng-deep .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep .dp-popup dp-day-calendar .dp-weekdays,::ng-deep .dp-popup dp-month-calendar .dp-weekdays,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep .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}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}@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;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;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 0% 1%,#747576 50%,#2989d800 51%,#7db9e800);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;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 0% 50%,#2989d800 51%,#7db9e800);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.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0% 1%,#34aa44 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .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 0% 1%,#1e5dd3 50%,#2989d800 51%,#7db9e800);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.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0% 1%,#f6882f 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0% 1%,#7aa6f7 50%,#2989d800 51%,#7db9e800);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:#0000000d!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:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px 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:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px 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:92px!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 vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-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 marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.wf-tooltip{pointer-events:none;position:absolute;max-width:300px;font-size:12px;text-align:left;color:#fff;padding:8px 12px;background:#000;border-radius:2px;z-index:-222;top:0;opacity:0;white-space:break-spaces;word-break:break-word}.wf-tooltip *{color:#fff!important}.wf-tooltip:empty{display:none!important}.wf-tooltip.white{box-shadow:0 2px 8px #1c5bd159;color:#747576;background:#fff;text-align:left}.wf-tooltip.white b{color:#747576!important}.wf-tooltip.animate-top{animation:animate-top .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-right{animation:animate-right .3s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-bottom{animation:animate-bottom .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-left{animation:animate-left .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-left.white:after{border-color:transparent transparent transparent #f1f1f1}.wf-tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #000000}.wf-tooltip-right.white:after{border-color:transparent #f1f1f1 transparent transparent}.wf-tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent #000000 transparent transparent}.wf-tooltip-bottom-right:after{bottom:100%;left:100%;margin-left:-20px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-right.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-bottom-left:after{bottom:100%;left:0;margin-left:10px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-left.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-top-left:after{top:100%;left:0;margin-left:10px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-left.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-top-right:after{top:100%;left:100%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-right.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip:after{content:\"\";position:absolute;border-style:solid}.wf-tooltip span.within{font-size:80%;display:block;width:100%}.wf-tooltip .small{display:block;font-size:10px}.wf-tooltip .within-box{background:#f1f1f1;border-radius:2px;color:#042e7d!important;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 2px;margin-right:2px}.wf-tooltip-show{pointer-events:none;opacity:1;z-index:2147483001}\n"] }]
879
879
  }], ctorParameters: function () { return [{ type: i1.GrcService }, { type: i2.ResponsibilityService }, { type: i3.AuthService }, { type: i4.UiKitService }, { type: i5.ComplianceCommonService }, { type: i6.OrganizationCommonService }, { type: i7.IframeService }, { type: i8.CommonService }]; } });
880
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JjLW9iamVjdC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3cvZ3JjLW9iamVjdC9ncmMtb2JqZWN0LWNvbnRhaW5lci9ncmMtb2JqZWN0LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy9ncmMtb2JqZWN0L2dyYy1vYmplY3QtY29udGFpbmVyL2dyYy1vYmplY3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBVXhGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUcvRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLDJCQUEyQixHQUM1QixNQUFNLDJDQUEyQyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0IzRSxNQUFNLE9BQU8sMkJBQTJCO0lBb0Z0QyxZQUNVLFVBQXNCLEVBQ3RCLFVBQWlDLEVBQ2pDLFdBQXdCLEVBQ3hCLFlBQTBCLEVBQzFCLHVCQUFnRCxFQUNoRCx5QkFBb0QsRUFDcEQsYUFBNEIsRUFDNUIsYUFBNEI7UUFQNUIsZUFBVSxHQUFWLFVB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O0lBQ0wsQ0FBQzsrR0F0K0JVLDJCQUEyQjttR0FBM0IsMkJBQTJCLG1XQzdDeEMsd3pTQXVLeUQ7OzRGRDFINUMsMkJBQTJCO2tCQWR2QyxTQUFTOytCQUNFLDBCQUEwQixXQUczQjt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsNkJBQTZCO3FCQUM5QixVQUNPLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZJRUxEX1RFWFQgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL2ZpZWxkLXRleHQuY29uc3RhbnQnO1xuaW1wb3J0IHsgTElOS1MgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL2Nkbi1saW5rLmNvbnN0YW50JztcbmltcG9ydCB7IFZBTElEQVRJT05fTUVTU0FHRSB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMvdmFsaWRhdGlvbi1tZXNzYWdlLmNvbnN0YW50JztcbmltcG9ydCB7XG4gIEFkZEdyYyxcbiAgQXR0cmlidXRlcyxcbiAgQnV0dG9uLFxuICBHUkNUeXBlLFxuICBJbnB1dFR5cGUsXG4gIExpc3RPYmplY3QsXG4gIE9wZW5lZFBvcHVwLFxufSBmcm9tICcuLi8uLi9zaGFyZWQvaW50ZXJmYWNlcy9hZGQtZ3JjJztcbmltcG9ydCB7IEdyY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvZ3JjLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzcG9uc2liaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvcmVzcG9uc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XG5pbXBvcnQge1xuICBHUkNfVFlQRV9BUlJBWSxcbiAgT1RIRVJfR1JDX0NBUkQsXG4gIE9USEVSX0dSQ19UQUJfSU5ERVgsXG4gIFNNSUxFWV9CVVRUT05TLFxuICBVTkNBVEVHT1JJWkVEX0xJTktfQ0FURUdPUlksXG59IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMvZ3JjT2JqZWN0LmNvbnN0YW50JztcbmltcG9ydCB7IFNVQ0NFU1NfTUVTU0FHRSB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMvbWVzc2FnZS5jb250c3RhbnQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wbGlhbmNlQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2NvbW1vbi13b3JrZmxvdy1zZXJ2aWNlcy9jb21wbGlhbmNlLWNvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvbkNvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9jb21tb24td29ya2Zsb3ctc2VydmljZXMvb3JnYW5pemF0aW9uLWNvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7IElmcmFtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pZnJhbWUuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29tbW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZ3JjLW9iamVjdC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JjLW9iamVjdC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmMtb2JqZWN0LWNvbnRhaW5lci5jb21wb25lbnQubGVzcycsICcuLi8uLi8uLi9mb3Jtcy5sZXNzJ10sXG4gIG91dHB1dHM6IFtcbiAgICAncG9wdWxhdGVPcHRpb24nLFxuICAgICdwaWNrZXJDaGFuZ2VkJyxcbiAgICAnY2xvc2VXb3JrZmxvdycsXG4gICAgJ2Rpc2Nvbm5lY3RSZWZyZXNoJyxcbiAgICAncmVzZXRGb3JtJyxcbiAgICAnaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zJyxcbiAgXSxcbiAgaW5wdXRzOiBbJ2dyY1R5cGUnLCAnTU9ERScsICdJRCddLFxufSlcbmV4cG9ydCBjbGFzcyBHcmNPYmplY3RDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIE1PREU6ICdDUkVBVEUnIHwgJ0VESVQnID0gJ0NSRUFURSc7XG4gIElEOiBzdHJpbmcgPSAnJztcbiAgQUxMX1RFWFQgPSBGSUVMRF9URVhUO1xuICBDRE5fTElOSyA9IExJTktTO1xuICBWQUxJREFUSU9OX01FU1NBR0UgPSBWQUxJREFUSU9OX01FU1NBR0U7XG4gIEdSQ19UWVBFX0FSUkFZID0gR1JDX1RZUEVfQVJSQVk7XG4gIEVESVRPUl9DT05GSUcgPSBHcmNTZXJ2aWNlLkVESVRPUl9DT05GSUc7XG4gIG90aGVyR1JDQ2FyZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoT1RIRVJfR1JDX0NBUkQpKTtcbiAgT0JKRUNUX1RZUEUhOiBHUkNUeXBlW107XG4gIExJU1RfUE9QVVA6IEFycmF5PHN0cmluZz4gPSBbJ1JDJ107XG4gIHNtaWxleU1lc3NhZ2U6IHN0cmluZyA9IFNVQ0NFU1NfTUVTU0FHRS5BRERfR1JDX09CSkVDVDtcbiAgSU5QVVRfVFlQRTogSW5wdXRUeXBlID0ge1xuICAgIG5hbWU6ICdOQU1FJyxcbiAgICBvd25lcjogJ09XTkVSJyxcbiAgICBSQzogJ1JDJyxcbiAgICByaXNrQ2F0ZWdvcnk6ICdSSVNLX0NBVEVHT1JZJyxcbiAgICBvdGhlckdyY09iamVjdHM6ICdPVEhFUl9HUkNfT0JKRUNUUycsXG4gICAgcHJvZ3JhbVJlc3BvbnNpYmlsaXR5OiAnUFJPR1JBTV9SRVNQT05TSUJJTElUWScsXG4gIH07XG4gIE9SSUdJTkFMX0dSQ19BVFRSSUJVVEVTOiBhbnk7IC8vIERvbid0IGNoYW5nZSB0aGUgdmFsdWUgb25jZSBpdCBpcyBhc3NpZ25lZFxuICBkaWFsb2dGaWVsZHM6IEFycmF5PHN0cmluZz4gPSBbXG4gICAgJ1JDJyxcbiAgICAnT1dORVInLFxuICAgICdPVEhFUl9HUkNfT0JKRUNUUycsXG4gICAgJ1JJU0tfQ0FURUdPUlknLFxuICAgICdBVFRSSUJVVEVTJyxcbiAgICAnUFJPR1JBTV9SRVNQT05TSUJJTElUWScsXG4gIF07XG4gIHNjcm9sbFRvQm90dG9tID0gZmFsc2U7XG4gIGdyY1R5cGU6IDAgfCAxIHwgMiB8IDMgPSAwO1xuICBkaXNhYmxlZElkczogQXJyYXk8bnVtYmVyPiA9IFtdO1xuICBvcGVuZWRQb3B1cDogT3BlbmVkUG9wdXBbJ3R5cGUnXSA9ICcnO1xuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBhZGRpdGlvbmFsT3B0aW9uOiBhbnkgPSB7XG4gICAgQVRUUklCVVRFUzogZmFsc2UsXG4gICAgTElOS19QUk9HUkFNOiBmYWxzZSxcbiAgICBMSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUzogZmFsc2UsXG4gICAgT1RIRVJfR1JDX09CSkVDVFM6IGZhbHNlLFxuICB9O1xuICBncmNGb3JtOiBhbnkgPSB7XG4gICAgZ3JjT2JqZWN0VHlwZTogZmFsc2UsXG4gICAgbGlua1Byb2dyYW06IGZhbHNlLFxuICAgIGxpbmtSaXNrOiBmYWxzZSxcbiAgICBvdGhlckdyY09iamVjdHM6IGZhbHNlLFxuICB9O1xuICBncmNQYXlsb2FkITogQWRkR3JjO1xuICBsaXN0T2JqZWN0ITogTGlzdE9iamVjdDtcbiAgc2VsZWN0ZWRBdHRyaWJ1dGVzITogR1JDVHlwZTtcbiAgc2hvd1NtaWxleTogYm9vbGVhbiA9IGZhbHNlO1xuICBhY3Rpb25CdXR0b25zOiBCdXR0b25bXSA9IFNNSUxFWV9CVVRUT05TO1xuICBncmNEYXRhV2l0aFR5cGVzOiBhbnkgPSB7XG4gICAgYXNzZXRzOiBbXSxcbiAgICBwcm9jZXNzZXM6IFtdLFxuICAgIHZlbmRvcnM6IFtdLFxuICAgIGludmVudG9yeTogW10sXG4gIH07XG4gIEdSQ1NlbGVjdGVkVGFiOiBudW1iZXIgPSAwO1xuICBvdGhlckdSQ1RhYkluZGV4ID0gT1RIRVJfR1JDX1RBQl9JTkRFWDtcbiAgaXNGb3JtU3VibWl0dGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGdyY05hbWVWYWxpZGF0aW9uRXJyb3I6IHN0cmluZyA9ICcnO1xuICBpc0R1cGxpY2F0ZU5hbWU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGV0YWlsc0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZENhdGVnb3JpZXM6IGFueVtdID0gW107XG4gIHNlbGVjdGVkUmlza3M6IGFueVtdID0gW107XG4gIGFkZGVkR1JDOiBhbnk7XG4gIG90aGVyR1JDU2VhcmNoOiBzdHJpbmcgPSAnJztcbiAgZ3JjVGFiTG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkUHJvZ3JhbTogYW55W10gPSBbXTtcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eTogYW55W10gPSBbXTtcbiAgc3VibWl0TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIGxpbmtlZFJlc3BvbnNpYmlsaXRpZXM6IGFueSA9IHt9O1xuXG4gIHBvcHVsYXRlT3B0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcGlja2VyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGNsb3NlV29ya2Zsb3c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBkaXNjb25uZWN0UmVmcmVzaDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHJlc2V0Rm9ybTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9uczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgb3RoZXJHUkNTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIGhpZGVNb3JlT3B0aW9uOiBhbnkgPSBbXTtcbiAgcmVzcG9uc2liaWxpdHlMaXN0OiBhbnkgPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGdyY1NlcnZpY2U6IEdyY1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBSZXNwb25zaWJpbGl0eVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1aUtpdFNlcnZpY2U6IFVpS2l0U2VydmljZSxcbiAgICBwcml2YXRlIGNvbXBsaWFuY2VDb21tb25TZXJ2aWNlOiBDb21wbGlhbmNlQ29tbW9uU2VydmljZSxcbiAgICBwcml2YXRlIG9yZ2FuaXphdGlvbkNvbW1vblNlcnZpY2U6IE9yZ2FuaXphdGlvbkNvbW1vblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpZnJhbWVTZXJ2aWNlOiBJZnJhbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgQ29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZVxuICApIHt9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRHUkNGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdyY1BheWxvYWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjU2VydmljZS5HUkNfUEFZTE9BRCkpO1xuICAgIHRoaXMuZ3JjUGF5bG9hZC50eXBlID0gdGhpcy5ncmNUeXBlID8/IDA7XG4gICAgdGhpcy5saXN0T2JqZWN0ID0gdGhpcy5ncmNTZXJ2aWNlLkxJU1RfT0JKRUNUO1xuICAgIHRoaXMuX2luaXRpYXRlQVBJKCk7XG4gICAgdGhpcy5nZXRTdWJzY3JpcHRpb25EZXRhaWxzKCk7XG4gIH1cblxuICBnZXRTdWJzY3JpcHRpb25EZXRhaWxzKCkge1xuICAgIHRoaXMub3JnYW5pemF0aW9uQ29tbW9uU2VydmljZT8uZ2V0U3Vic2NyaXB0aW9uRGV0YWlsc0luZm8oKT8uc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICBpZiAoIXJlc1swXT8ucmlza19mbGFnKSB7XG4gICAgICAgICAgdGhpcy5oaWRlTW9yZU9wdGlvbi5wdXNoKCdMSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUycpO1xuICAgICAgICAgIHRoaXMuaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zLmVtaXQodGhpcy5oaWRlTW9yZU9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogRXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKSB7XG4gICAgY29uc3QgYWN0aXZhdGVkT3B0aW9ucyA9IFtdO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuYWRkaXRpb25hbE9wdGlvbikpIHtcbiAgICAgIGlmICh0aGlzLmFkZGl0aW9uYWxPcHRpb25ba2V5XSA9PT0gdHJ1ZSkge1xuICAgICAgICBhY3RpdmF0ZWRPcHRpb25zLnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uLmVtaXQoYWN0aXZhdGVkT3B0aW9ucyk7XG4gIH1cblxuICAvL1RPRE86IGltcGxlbWVudCB0aGlzXG4gIGFkZE1vcmVJbmZvKGV2ZW50OiBhbnkpIHtcbiAgICBzd2l0Y2ggKGV2ZW50Py5jb2RlKSB7XG4gICAgICBjYXNlICdBVFRSSUJVVEVTJzpcbiAgICAgICAgdGhpcy5ncmNGb3JtLmdyY09iamVjdFR5cGUgPSBldmVudD8uY2hlY2tlZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdMSU5LX1BST0dSQU0nOlxuICAgICAgICB0aGlzLmdyY0Zvcm0ubGlua1Byb2dyYW0gPSBldmVudD8uY2hlY2tlZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdMSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUyc6XG4gICAgICAgIHRoaXMuZ3JjRm9ybS5saW5rUmlzayA9IGV2ZW50Py5jaGVja2VkO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ09USEVSX0dSQ19PQkpFQ1RTJzpcbiAgICAgICAgdGhpcy5ncmNGb3JtLm90aGVyR3JjT2JqZWN0cyA9IGV2ZW50Py5jaGVja2VkO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSA9IHRydWU7XG4gIH1cblxuICAvL1RPRE86IGltcGxlbWVudCB0aGlzXG4gIG9uVGV4dENoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5ncmNQYXlsb2FkLm5hbWUgPSBldmVudC50cmltKCk7XG4gICAgdGhpcy5vcGVuZWRQb3B1cCA9ICcnO1xuICAgIHRoaXMuZ3JjTmFtZVZhbGlkYXRpb25FcnJvciA9ICcnO1xuICAgIHRoaXMuaXNEdXBsaWNhdGVOYW1lID0gZmFsc2U7XG4gIH1cblxuICAvL1RPRE86IGltcGxlbWVudCB0aGlzXG4gIG9uUG9wdXBPcGVuKHR5cGU6IE9wZW5lZFBvcHVwWyd0eXBlJ10pIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ09XTkVSJzpcbiAgICAgIGNhc2UgJ1JDJzpcbiAgICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9IHR5cGU7XG4gICAgICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ09USEVSX0dSQ19PQkpFQ1RTJzpcbiAgICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9IHR5cGU7XG4gICAgICAgIHRoaXMuZ2V0T3RoZXJHUkNPYmplY3RzKHsgcmNfaWRzOiAnJyB9KTtcbiAgICAgICAgdGhpcy5nZXRPdGhlckdSQ1RhYkNvdW50KHsgcmNfaWRzOiAnJyB9KTtcbiAgICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUklTS19DQVRFR09SWSc6XG4gICAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSB0eXBlO1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdCh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdQUk9HUkFNX1JFU1BPTlNJQklMSVRZJzpcbiAgICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9IHR5cGU7XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UucHJldmlld1BhbmVsLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgfVxuICB9XG5cbiAgb25TYXZlU2VsZWN0ZWRMaXN0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmxpc3RPYmplY3QgPSBldmVudDtcbiAgICBpZiAodGhpcy5vcGVuZWRQb3B1cCA9PT0gJ09USEVSX0dSQ19PQkpFQ1RTJykge1xuICAgICAgdGhpcy5zZXRPdGhlckdSQ1R5cGVzRm9ybWF0ZSgpO1xuICAgIH1cbiAgICB0aGlzLnNldExpc3RQYXlsb2FkKHRoaXMub3BlbmVkUG9wdXApO1xuICAgIHRoaXMub3BlbmVkUG9wdXAgPSAnJztcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5hdXRoU2VydmljZS5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSk7XG4gIH1cblxuICBnZXRBdHRyaWJ1dGVTZWxlY3Rpb24oZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9ICcnO1xuICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSAnJztcbiAgICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UucHJldmlld1BhbmVsLm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHNldExpc3RQYXlsb2FkKHR5cGU6IHN0cmluZykge1xuICAgIGlmICh0eXBlID09PSAnT1dORVInKSB7XG4gICAgICB0aGlzLmdyY1BheWxvYWQub3duZXJzID0gdGhpcy5saXN0T2JqZWN0Lk9XTkVSLnNlbGVjdGVkRGF0YS5tYXAoXG4gICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0ubWVtYmVyX2lkLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ1JDJykge1xuICAgICAgbGV0IHByZXZpb3VzUkNJZHMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjUGF5bG9hZC5yY19pZHMpKTtcbiAgICAgIHRoaXMuZ3JjUGF5bG9hZC5yY19pZHMgPSB0aGlzLmxpc3RPYmplY3QuUkMuc2VsZWN0ZWREYXRhLm1hcChcbiAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbT8uX2lkXG4gICAgICApO1xuICAgICAgaWYgKFxuICAgICAgICAhcHJldmlvdXNSQ0lkcy5ldmVyeSgoaWQ6IGFueSkgPT4gdGhpcy5ncmNQYXlsb2FkLnJjX2lkcy5pbmNsdWRlcyhpZCkpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5yZXNldERhdGFPblJDQ2hhbmdlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlID09PSAnT1RIRVJfR1JDX09CSkVDVFMnKSB7XG4gICAgICB0aGlzLmdyY1BheWxvYWQubGlua2VkX0dSQ19pZHMgPVxuICAgICAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhLm1hcChcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLl9pZFxuICAgICAgICApO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gJ1JJU0tfQ0FURUdPUlknKSB7XG4gICAgICB0aGlzLmdyY1BheWxvYWQucmlza19jYXRlZ29yeV9pZHMgPSB0aGlzLmdldFJpc2tDYXRlZ29yeVBheWxvYWQoXG4gICAgICAgIHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gJ1BST0dSQU1fUkVTUE9OU0lCSUxJVFknKSB7XG4gICAgICB0aGlzLmdyY1BheWxvYWQucHJvZ3JhbV9jYXRlZ29yeV9pZHMgPVxuICAgICAgICB0aGlzLmdldFByb2dyYW1SZXNwb25zaWJpbGl0eVBheWxvYWQoXG4gICAgICAgICAgdGhpcy5saXN0T2JqZWN0Py5QUk9HUkFNX1JFU1BPTlNJQklMSVRZPy5zZWxlY3RlZERhdGFcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBvbkNsaWNrT3V0c2lkZSgpIHtcbiAgICAvL3RoaXMub3BlbmVkUG9wdXAgPSAnJztcbiAgfVxuXG4gIG9uRWRpdChldmVudDogYW55LCBzdWJUeXBlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm9wZW5lZFBvcHVwID0gZXZlbnQ7XG4gICAgaWYgKGV2ZW50ID09PSAnT1RIRVJfR1JDX09CSkVDVFMnKSB7XG4gICAgICB0aGlzLkdSQ1NlbGVjdGVkVGFiID0gdGhpcy5vdGhlckdSQ1RhYkluZGV4W3N1YlR5cGVdID8/IDA7XG4gICAgICB0aGlzLmdldE90aGVyR1JDT2JqZWN0cyh7IHR5cGU6IHRoaXMuR1JDU2VsZWN0ZWRUYWIsIHJjX2lkczogJycgfSk7XG4gICAgICB0aGlzLmdldE90aGVyR1JDVGFiQ291bnQoeyByY19pZHM6ICcnIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5MSVNUX1BPUFVQLmluY2x1ZGVzKGV2ZW50KSkge1xuICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XG4gICAgICAvLyB0aGlzLmF1dGhTZXJ2aWNlLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpO1xuICAgIH1cbiAgICBpZiAoZXZlbnQgPT09ICdSSVNLX0NBVEVHT1JZJyB8fCBldmVudCA9PT0gJ1BST0dSQU1fUkVTUE9OU0lCSUxJVFknKSB7XG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIG9uUmVtb3ZlRGF0YShcbiAgICBldmVudDogYW55LFxuICAgIHR5cGU6XG4gICAgICB8ICdSQydcbiAgICAgIHwgJ09XTkVSJ1xuICAgICAgfCAnT1RIRVJfR1JDX09CSkVDVFMnXG4gICAgICB8ICdSSVNLX0NBVEVHT1JZJ1xuICAgICAgfCAnUFJPR1JBTV9SRVNQT05TSUJJTElUWSdcbiAgKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdSQyc6XG4gICAgICAgIHRoaXMubGlzdE9iamVjdFt0eXBlXS5zZWxlY3RlZERhdGEuc3BsaWNlKGV2ZW50LmluZGV4LCAxKTtcbiAgICAgICAgdGhpcy5yZXNldERhdGFPblJDQ2hhbmdlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnT1dORVInOlxuICAgICAgICB0aGlzLmxpc3RPYmplY3RbdHlwZV0uc2VsZWN0ZWREYXRhLnNwbGljZShldmVudC5pbmRleCwgMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnT1RIRVJfR1JDX09CSkVDVFMnOlxuICAgICAgICB0aGlzLnJlbW92ZU90aGVyR1JDT2JqZWN0cyhldmVudD8uZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUklTS19DQVRFR09SWSc6XG4gICAgICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWRSaXNrKGV2ZW50LmRhdGE/LkNhdGVnb3J5SWRzWzBdLCBldmVudD8uZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUFJPR1JBTV9SRVNQT05TSUJJTElUWSc6XG4gICAgICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWRSZXNwb25zaWJpbGl0eShldmVudD8uZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLnNldExpc3RQYXlsb2FkKHR5cGUpO1xuICB9XG5cbiAgY2hhbmdlQXR0cmlidXRlc1R5cGUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZ3JjVHlwZSA9IGV2ZW50ID8/IDA7XG4gICAgdGhpcy5ncmNQYXlsb2FkLnR5cGUgPSBldmVudCA/PyAwO1xuICAgIHRoaXMuc2V0RGVmYXVsdEdSQ09iamVjdFR5cGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYXRlQVBJKCkge1xuICAgIGlmICh0aGlzLk1PREUgPT09ICdFRElUJykge1xuICAgICAgdGhpcy5nZXRHUkNPYmplY3REZXRhaWxzKHRoaXMuSUQpO1xuICAgICAgdGhpcy5zbWlsZXlNZXNzYWdlID0gU1VDQ0VTU19NRVNTQUdFLlVQREFURV9HUkNfT0JKRUNUO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRldGFpbHNMb2FkZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2dldEdSQ09iamVjdFR5cGUoKTtcbiAgICAgIHRoaXMuX2dldE93bmVyTGlzdCgpO1xuICAgICAgdGhpcy5fZ2V0UkNMaXN0KCk7XG4gICAgICB0aGlzLmdldE90aGVyR1JDT2JqZWN0cyh7IHJjX2lkczogJycgfSk7XG4gICAgICAvLyB0aGlzLmdldE90aGVyR1JDVGFiQ291bnQoKTtcbiAgICAgIHRoaXMuZ2V0QWxsUmVzcG9uc2liaWxpdGllcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldE93bmVyTGlzdCgpIHtcbiAgICB0aGlzLmxpc3RPYmplY3QuT1dORVIuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0R1JDT3duZXJMaXN0KCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh1c2VyTGlzdDogYW55KSA9PiB0aGlzLm1hcFVzZXJMaXN0KHVzZXJMaXN0KSxcbiAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge30sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIGBtYXBVc2VyTGlzdGAgbWFwcyB0aGUgdXNlciBsaXN0IGRhdGEgYW5kIHBlcmZvcm1zIHNvbWUgYWRkaXRpb25hbCBvcGVyYXRpb25zIG9uIGVhY2hcbiAgICogdXNlciBvYmplY3QuXG4gICAqIEBwYXJhbSB7YW55fSB1c2VyTGlzdCAtIFRoZSBgdXNlckxpc3RgIHBhcmFtZXRlciBpcyBhbiBvYmplY3QgdGhhdCBjb250YWlucyBhIGBkYXRhYCBwcm9wZXJ0eS4gVGhlXG4gICAqIGBkYXRhYCBwcm9wZXJ0eSBpcyBhbiBhcnJheSBvZiB1c2VyIG9iamVjdHMuXG4gICAqL1xuICBwcml2YXRlIG1hcFVzZXJMaXN0KHVzZXJMaXN0OiBhbnkpIHtcbiAgICB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ11bJ2RhdGEnXSA9IHt9O1xuICAgIHRoaXMubGlzdE9iamVjdFsnT1dORVInXS5zZWxlY3RlZERhdGEgPSBbXTtcbiAgICB0aGlzLmRpc2FibGVkSWRzID0gW107XG4gICAgLy8gTWFwIHdpbGwgZ2V0IHJlbW92ZSBvbmNlIEFQSSBjaGFuZ2VcbiAgICB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ11bJ2RhdGEnXVsnYXNzaWduZWVzTGlzdCddID0gdXNlckxpc3Q/LmRhdGEubWFwKFxuICAgICAgKHVzZXI6IGFueSkgPT4ge1xuICAgICAgICB1c2VyLml0ZW1fbmFtZSA9IHVzZXIubWVtYmVyX25hbWU7XG4gICAgICAgIHVzZXIuZW1wbG95ZWVfbmFtZSA9IHVzZXIubWVtYmVyX25hbWU7XG4gICAgICAgIHVzZXIubXlfbWVtYmVyX2lkID0gdXNlci5tZW1iZXJfaWQ7XG4gICAgICAgIHVzZXIuaXRlbV9pZCA9IHVzZXIubWVtYmVyX2lkO1xuICAgICAgICBpZiAoWydBRE1JTicsICdLRVlfQURNSU4nXS5pbmNsdWRlcyh1c2VyLnVzZXJfcm9sZSkpIHtcbiAgICAgICAgICB0aGlzLmRpc2FibGVkSWRzLnB1c2godXNlci5tZW1iZXJfaWQpO1xuICAgICAgICAgIHRoaXMubGlzdE9iamVjdFsnT1dORVInXS5zZWxlY3RlZERhdGEucHVzaCh1c2VyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXNlcjtcbiAgICAgIH1cbiAgICApO1xuICAgIGlmICh0aGlzLk1PREUgPT09ICdFRElUJykge1xuICAgICAgdGhpcy5saXN0T2JqZWN0Lk9XTkVSLnNlbGVjdGVkRGF0YSA9IHRoaXMubGlzdE9iamVjdFsnT1dORVInXVsnZGF0YSddW1xuICAgICAgICAnYXNzaWduZWVzTGlzdCdcbiAgICAgIF0uZmlsdGVyKChpdGVtOiBhbnkpID0+IHRoaXMuZ3JjUGF5bG9hZC5vd25lcnMuaW5jbHVkZXMoaXRlbT8ubWVtYmVyX2lkKSk7XG4gICAgICB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ10uZGlzYWJsZWRJZHMgPSBbLi4ubmV3IFNldCh0aGlzLmRpc2FibGVkSWRzKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVmYXVsdFNlbGVjdGVkVXNlcigpO1xuICAgIH1cbiAgICB0aGlzLmxpc3RPYmplY3QuT1dORVIuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5jaGVja0lzRGF0YUxvYWRlZCgpO1xuICB9XG5cbiAgZ2V0QWxsUmVzcG9uc2liaWxpdGllc0xpc3QobGlua2VkUmVzcG9uc2liaWxpdGllcz86IGFueSkge1xuICAgIHRoaXMuZ3JjU2VydmljZS5nZXRBbGxSZXNwb25zaWJpbGl0aWVzKDAsICcnKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TGlzdCA9IGRhdGE/LmRhdGE/LnJlc3BvbnNpYmlsaXRpZXM7XG4gICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5MSU5LX1BST0dSQU0gPSB0cnVlO1xuICAgICAgICB0aGlzLmdyY0Zvcm0ubGlua1Byb2dyYW0gPSB0cnVlO1xuICAgICAgICBjb25zdCByZXNwb25zaWJpbGl0eURhdGEgPSB0aGlzLnJlc3BvbnNpYmlsaXR5TGlzdC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gbGlua2VkUmVzcG9uc2liaWxpdGllcz8uaW5jbHVkZXMoaXRlbT8ucmlkKSk7XG4gICAgICAgIHRoaXMubGlzdE9iamVjdC5QUk9HUkFNX1JFU1BPTlNJQklMSVRZLnNlbGVjdGVkRGF0YSA9cmVzcG9uc2liaWxpdHlEYXRhO1xuICAgICAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcbiAgICAgICAgW107XG4gICAgICAgIFxuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIGBkZWZhdWx0U2VsZWN0ZWRVc2VyKClgIHNldHMgdGhlIGRlZmF1bHQgc2VsZWN0ZWQgdXNlciBiYXNlZCBvbiB0aGUgY3VycmVudCB1c2VyJ3Mgcm9sZVxuICAgKiBhbmQgYXNzaWducyBpdCB0byB0aGUgYE9XTkVSYCBsaXN0IG9iamVjdC5cbiAgICovXG4gIHByaXZhdGUgZGVmYXVsdFNlbGVjdGVkVXNlcigpIHtcbiAgICBpZiAoIXRoaXMuYXV0aFNlcnZpY2UuaXNBZG1pbigpICYmICF0aGlzLmF1dGhTZXJ2aWNlLmlzS2V5QWRtaW4oKSkge1xuICAgICAgY29uc3QgVVNFUiA9IHRoaXMubGlzdE9iamVjdFsnT1dORVInXVsnZGF0YSddWydhc3NpZ25lZXNMaXN0J10uZmluZChcbiAgICAgICAgKHVzZXI6IGFueSkgPT4gdXNlci5tZW1iZXJfaWQgPT09IHRoaXMuYXV0aFNlcnZpY2UuZ2V0TWVtYmVySWQoKVxuICAgICAgKTtcbiAgICAgIHRoaXMubGlzdE9iamVjdFsnT1dORVInXS5zZWxlY3RlZERhdGEucHVzaChVU0VSKTtcbiAgICB9XG4gICAgdGhpcy5saXN0T2JqZWN0WydPV05FUiddWydkaXNhYmxlZElkcyddID0gWy4uLnRoaXMuZGlzYWJsZWRJZHNdO1xuICAgIHRoaXMuZ3JjUGF5bG9hZC5vd25lcnMgPSB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ10uc2VsZWN0ZWREYXRhLm1hcChcbiAgICAgICh1c2VyOiBhbnkpID0+IHVzZXIubWVtYmVyX2lkXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFJDTGlzdCgpIHtcbiAgICB0aGlzLmxpc3RPYmplY3QuUkMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmNvbXBsaWFuY2VDb21tb25TZXJ2aWNlPy5nZXRSY0xpc3RJbmZvKCk/LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubGlzdE9iamVjdFsnUkMnXVsnZGF0YSddID0gZGF0YTtcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0LlJDLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5NT0RFID09PSAnRURJVCcpIHtcbiAgICAgICAgICB0aGlzLmxpc3RPYmplY3QuUkMuc2VsZWN0ZWREYXRhID0gZGF0YT8uZmlsdGVyKChpdGVtOiBhbnkpID0+XG4gICAgICAgICAgICB0aGlzLmdyY1BheWxvYWQ/LnJjX2lkcz8uaW5jbHVkZXMoaXRlbT8uX2lkKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja0lzRGF0YUxvYWRlZCgpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEdSQ09iamVjdFR5cGUoKSB7XG4gICAgdGhpcy5hcGlTZXJ2aWNlLmdldE9iamVjdFR5cGUoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGE6IEdSQ1R5cGVbXSkgPT4ge1xuICAgICAgICAvLyB0aGlzLnNldExpbmtSaXNrVGFiKGRhdGEpO1xuICAgICAgICBjb25zdCBPQkpFQ1RfTEFCRUw6IGFueSA9IHtcbiAgICAgICAgICBBU1NFVFM6ICdBc3NldCcsXG4gICAgICAgICAgUFJPQ0VTU0VTOiAnUHJvY2VzcycsXG4gICAgICAgICAgVkVORE9SUzogJ1ZlbmRvcicsXG4gICAgICAgICAgSU5WRU5UT1JZOiAnSW52ZW50b3J5JyxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5PQkpFQ1RfVFlQRSA9IGRhdGEubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICBpdGVtLnZhbHVlID0gaW5kZXg7XG4gICAgICAgICAgaXRlbS5sYWJlbCA9IE9CSkVDVF9MQUJFTFtpdGVtPy5sYWJlbD8udG9VcHBlckNhc2UoKV0gPz8gaXRlbT8ubGFiZWw7XG4gICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuT1JJR0lOQUxfR1JDX0FUVFJJQlVURVMgPSBKU09OLnBhcnNlKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuT0JKRUNUX1RZUEUpXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMuTU9ERSA9PT0gJ0VESVQnKSB7XG4gICAgICAgICAgdGhpcy5PQkpFQ1RfVFlQRVt0aGlzLmdyY1R5cGVdLmF0dHJpYnV0ZXMgPVxuICAgICAgICAgICAgdGhpcy5ncmNQYXlsb2FkLmF0dHJpYnV0ZXM7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmdyY1NlcnZpY2UuY2hlY2tBdHRyaWJ1dGVzU2VsZWN0ZWQoXG4gICAgICAgICAgICAgIHRoaXMuT0JKRUNUX1RZUEVbdGhpcy5ncmNUeXBlXS5hdHRyaWJ1dGVzXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmdyY0Zvcm0uZ3JjT2JqZWN0VHlwZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uQVRUUklCVVRFUyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXREZWZhdWx0R1JDT2JqZWN0VHlwZSgpO1xuICAgICAgICB0aGlzLmNoZWNrSXNEYXRhTG9hZGVkKCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7fSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmYXVsdEdSQ09iamVjdFR5cGUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZXMgPVxuICAgICAgdGhpcy5PQkpFQ1RfVFlQRS5maW5kKChlbGU6IGFueSkgPT4gZWxlLnZhbHVlID09PSB0aGlzLmdyY1R5cGUpID8/XG4gICAgICB0aGlzLk9CSkVDVF9UWVBFWzBdO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0lzRGF0YUxvYWRlZCgpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9XG4gICAgICB0aGlzLmxpc3RPYmplY3QuT1dORVIuaXNMb2FkaW5nIHx8XG4gICAgICB0aGlzLmxpc3RPYmplY3QuUkMuaXNMb2FkaW5nIHx8XG4gICAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuaXNMb2FkaW5nIHx8XG4gICAgICAodGhpcy5NT0RFID09PSAnRURJVCcgJiYgdGhpcy5kZXRhaWxzTG9hZGVyKTtcbiAgfVxuXG4gIGdldE90aGVyR1JDT2JqZWN0cyhldmVudD86IGFueSkge1xuICAgIGlmICh0aGlzLm90aGVyR1JDU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLm90aGVyR1JDU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmIChldmVudD8uc2VhcmNoU3RyaW5nICYmIHRoaXMub3RoZXJHUkNTZWFyY2ggIT09IGV2ZW50Py5zZWFyY2hTdHJpbmcpIHtcbiAgICAgIHRoaXMuZ2V0T3RoZXJHUkNUYWJDb3VudChldmVudCk7XG4gICAgfVxuICAgIHRoaXMub3RoZXJHUkNTZWFyY2ggPSBldmVudD8uc2VhcmNoU3RyaW5nID8/ICcnO1xuICAgIHRoaXMubGlzdE9iamVjdC5PVEhFUl9HUkNfT0JKRUNUUy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIC8vIGV2ZW50WydyY19pZHMnXSA9IHRoaXMubGlzdE9iamVjdD8uUkM/LnNlbGVjdGVkRGF0YVxuICAgIC8vICAgPy5tYXAoKHJjOiBhbnkpID0+IHJjPy5faWQpXG4gICAgLy8gICAuam9pbignLCcpO1xuICAgIHRoaXMub3RoZXJHUkNTdWJzY3JpcHRpb24gPSB0aGlzLmdyY1NlcnZpY2VcbiAgICAgIC5nZXRHUkNMaXN0KGV2ZW50KVxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubGlzdE9iamVjdC5PVEhFUl9HUkNfT0JKRUNUUy5kYXRhID0gZGF0YTtcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5NT0RFID09PSAnRURJVCcpIHtcbiAgICAgICAgICAvLyB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhID0gZGF0YS5maWx0ZXIoXG4gICAgICAgICAgLy8gICAoaXRlbTogYW55KSA9PiB0aGlzLmdyY1BheWxvYWQubGlua2VkX0dSQ19pZHMuaW5jbHVkZXMoaXRlbT8uX2lkKVxuICAgICAgICAgIC8vICk7XG4gICAgICAgICAgaWYgKHRoaXMuZ3JjUGF5bG9hZC5saW5rZWRfR1JDX2lkcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmdyY0Zvcm0ub3RoZXJHcmNPYmplY3RzID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5PVEhFUl9HUkNfT0JKRUNUUyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja0lzRGF0YUxvYWRlZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBnZXRPdGhlckdSQ1RhYkNvdW50KGV2ZW50PzogYW55KSB7XG4gICAgdGhpcy5ncmNUYWJMb2FkZXIgPSB0cnVlO1xuICAgIC8vIGV2ZW50WydyY19pZHMnXSA9IHRoaXMubGlzdE9iamVjdD8uUkM/LnNlbGVjdGVkRGF0YVxuICAgIC8vICAgPy5tYXAoKHJjOiBhbnkpID0+IHJjPy5faWQpXG4gICAgLy8gICAuam9pbignLCcpO1xuICAgIHRoaXMuZ3JjU2VydmljZS5nZXRHUkNUYWJzQ291bnQoZXZlbnQpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XG4gICAgICB0aGlzLmdyY1RhYkxvYWRlciA9IGZhbHNlO1xuICAgICAgdGhpcy5vdGhlckdSQ0NhcmRbMF0uY291bnQgPSBkYXRhPy5hc3NldHNfdHlwZV9jb3VudDtcbiAgICAgIHRoaXMub3RoZXJHUkNDYXJkWzFdLmNvdW50ID0gZGF0YT8ucHJvY2Vzc2VzX3R5cGVfY291bnQ7XG4gICAgICB0aGlzLm90aGVyR1JDQ2FyZFsyXS5jb3VudCA9IGRhdGE/LnZlbmRvcnNfdHlwZV9jb3VudDtcbiAgICAgIHRoaXMub3RoZXJHUkNDYXJkWzNdLmNvdW50ID0gZGF0YT8uaW52ZW50b3J5X3R5cGVfY291bnQ7XG4gICAgfSk7XG4gIH1cblxuICBnZXRPdGhlckdSQ1RhYkluZGV4KGV2ZW50PzogYW55LCBkYXRhPzogYW55KSB7fVxuXG4gIC8vUG9wdWxhdGUvRWRpdCBHUkMgT2JqZWN0XG5cbiAgZ2V0R1JDT2JqZWN0RGV0YWlscyhncmNJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hcGlTZXJ2aWNlLmdldEdSQ09iamVjdERldGFpbHMoZ3JjSWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSAnJztcbiAgICAgICAgdGhpcy5wb3B1bGF0ZVBheWxvYWQoZGF0YSk7XG4gICAgICAgIHRoaXMuY3JlYXRlR1JDT2JqZWN0KGRhdGE/LmxpbmtlZEdyY0RldGFpbHMpO1xuICAgICAgICB0aGlzLmRldGFpbHNMb2FkZXIgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLl9nZXRSQ0xpc3QoKTtcbiAgICAgICAgdGhpcy5fZ2V0T3duZXJMaXN0KCk7XG4gICAgICAgIHRoaXMuX2dldEdSQ09iamVjdFR5cGUoKTtcbiAgICAgICAgY29uc3QgbGlua2VkUmVzcG9uc2liaWxpdGllcyA9IGRhdGE/LmxpbmtlZF9yZXNwb25zaWJpbGl0aWVzPy5hZGRlZDtcbiAgICAgICAgaWYobGlua2VkUmVzcG9uc2liaWxpdGllcz8ubGVuZ3RoKXtcbiAgICAgICAgICB0aGlzLmdldEFsbFJlc3BvbnNpYmlsaXRpZXNMaXN0KGxpbmtlZFJlc3BvbnNpYmlsaXRpZXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ2V0T3RoZXJHUkNPYmplY3RzKHsgcmNfaWRzOiAnJyB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3InLCBlcnJvcik7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVHUkNPYmplY3QoZGF0YTogYW55KSB7XG4gICAgaWYgKGRhdGE/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5ncmNGb3JtLm90aGVyR3JjT2JqZWN0cyA9IHRydWU7XG4gICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uT1RIRVJfR1JDX09CSkVDVFMgPSB0cnVlO1xuICAgICAgbGV0IEdSQ09iamVjdDogYW55ID0ge1xuICAgICAgICBhc3NldHM6IFtdLFxuICAgICAgICBwcm9jZXNzZXM6IFtdLFxuICAgICAgICB2ZW5kb3JzOiBbXSxcbiAgICAgICAgaW52ZW50b3J5OiBbXSxcbiAgICAgIH07XG4gICAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhID0gWy4uLm5ldyBTZXQoZGF0YSldO1xuICAgICAgY29uc3QgR1JDX1RZUEUgPSBHUkNfVFlQRV9BUlJBWTtcbiAgICAgIGRhdGEuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgIEdSQ09iamVjdFtHUkNfVFlQRVtpdGVtPy50eXBlID8/IDFdXS5wdXNoKGl0ZW0pO1xuICAgICAgICB0aGlzLm90aGVyR1JDQ2FyZFtpdGVtPy50eXBlXS5zZWxlY3RlZENvdW50ICs9IDE7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5ncmNEYXRhV2l0aFR5cGVzID0gR1JDT2JqZWN0O1xuICAgICAgdGhpcy51cGRhdGVPdGhlckdSQ09iamVjdHNQYXlsb2FkKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgcG9wdWxhdGVQYXlsb2FkKGRhdGE6IGFueSkge1xuXG4gICAgdGhpcy5ncmNQYXlsb2FkLm5hbWUgPSBkYXRhPy5uYW1lO1xuICAgIHRoaXMuZ3JjUGF5bG9hZC50eXBlID0gZGF0YT8udHlwZTtcbiAgICB0aGlzLmdyY1BheWxvYWQub3duZXJzID0gZGF0YT8ub3duZXJzO1xuICAgIHRoaXMuZ3JjUGF5bG9hZC5yY19pZHMgPSBkYXRhPy5yY19pZHM7XG4gICAgdGhpcy5ncmNQYXlsb2FkLmxpbmtlZF9HUkNfaWRzID0gZGF0YT8ubGlua2VkX0dSQ19pZHM7XG4gICAgdGhpcy5ncmNQYXlsb2FkLnJpc2tfY2F0ZWdvcnlfaWRzID1cbiAgICAgIHRoaXMucG9wdWxhdGVMaW5rUmlzayhkYXRhPy5yaXNrX2NhdGVnb3J5X2lkcykgPz8gW107XG4gICAgLy8gdGhpcy5ncmNQYXlsb2FkLnByb2dyYW1fY2F0ZWdvcnlfaWRzID1cbiAgICAvLyAgIHRoaXMucG9wdWxhdGVMaW5rUmVzcG9uc2liaWxpdHkoZGF0YT8ubGlua2VkX3Jlc3BvbnNpYmlsaXRpZXNfZGV0YWlscykgPz9cbiAgICAvLyAgIFtdO1xuICAgIHRoaXMuZ3JjUGF5bG9hZC5hdHRyaWJ1dGVzID0gZGF0YT8uYXR0cmlidXRlcztcbiAgICB0aGlzLmdyY1BheWxvYWQuc3RhdGUgPSBkYXRhPy5zdGF0ZTtcbiAgICB0aGlzLmdyY1BheWxvYWQuZGVzY3JpcHRpb24gPSBkYXRhPy5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLmdyY1BheWxvYWQuZnJlcXVlbmN5ID0gZGF0YT8uZnJlcXVlbmN5O1xuICAgIHRoaXMuZ3JjUGF5bG9hZC5wYXJlbnRfZ3JjX2lkcyA9IGRhdGE/LnBhcmVudF9ncmNfaWRzO1xuICAgIHRoaXMuZ3JjUGF5bG9hZC5lbWFpbF9ub3RpZmljYXRpb25fbWVtYmVyX2lkcyA9XG4gICAgICBkYXRhPy5lbWFpbF9ub3RpZmljYXRpb25fbWVtYmVyX2lkcztcbiAgfVxuXG4gIHB1YmxpYyBzYXZlR1JDT2JqZWN0KCkge1xuICAgIHRoaXMuaXNGb3JtU3VibWl0dGVkID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5ncmNGb3JtLmdyY09iamVjdFR5cGUpIHtcbiAgICAgIHRoaXMuZ3JjUGF5bG9hZC5hdHRyaWJ1dGVzID0gdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZXM/LmF0dHJpYnV0ZXM7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMuZ3JjU2VydmljZS5jaGVja1ZhbGlkYXRpb24oXG4gICAgICAgIHRoaXMuZ3JjUGF5bG9hZCxcbiAgICAgICAgdGhpcy5ncmNGb3JtPy5ncmNPYmplY3RUeXBlXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IHRydWU7XG4gICAgICB0aGlzLnN1Ym1pdExvYWRlciA9IHRydWU7XG4gICAgICBpZiAodGhpcy5NT0RFID09PSAnRURJVCcpIHtcbiAgICAgICAgdGhpcy51cGRhdGVHUkNPYmplY3QoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IFBBWUxPQUQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjUGF5bG9hZCkpO1xuICAgICAgUEFZTE9BRC5vd25lcnMgPSB0aGlzLmdldE93bmVyc0V4Y2VwdERlZmF1bHQoUEFZTE9BRC5vd25lcnMpO1xuICAgICAgXG5cbiAgICAgIC8vIFRyYW5zZm9ybSByZXNwb25zaWJpbGl0aWVzIGRhdGFcbiAgICAgIFBBWUxPQUQubGlua2VkX3Jlc3BvbnNpYmlsaXRpZXMgPVxuICAgICAgICB0aGlzLkNvbW1vblNlcnZpY2UudHJhbnNmb3JtUmVzcG9uc2liaWxpdGllc0RhdGEoXG4gICAgICAgICAgdGhpcy5saXN0T2JqZWN0Py5QUk9HUkFNX1JFU1BPTlNJQklMSVRZPy5zZWxlY3RlZERhdGE/Lm1hcCgocmVzcCkgPT4gcmVzcD8ucmlkKSxcbiAgICAgICAgICB0aGlzLmxpbmtlZFJlc3BvbnNpYmlsaXRpZXM/LnJlc3BvbnNpYmlsaXRpZXM/LmxpbmtlZCB8fCBbXVxuICAgICAgICApO1xuXG4gICAgICAgIFBBWUxPQUQucHJvZ3JhbV9jYXRlZ29yeV9pZHMgPSBbXTtcblxuICAgICAgdGhpcy5hcGlTZXJ2aWNlLmFkZEdSQ09iamVjdChQQVlMT0FEKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnNldE1vcmVPcHRpb25zT25TdWJtaXQoKTtcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmFkZGVkR1JDID0gZGF0YTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvcicsIGVycm9yLCBlcnJvci5zdGF0dXMpO1xuICAgICAgICAgIHRoaXMuc3VibWl0TG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA5IHx8IGVycm9yLnN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICAgICAgICB0aGlzLmlzRHVwbGljYXRlTmFtZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNldE1vcmVPcHRpb25zT25TdWJtaXQoKTtcbiAgICAgICAgICAgIHRoaXMubWFwVXNlckxpc3Qoe1xuICAgICAgICAgICAgICBkYXRhOiB0aGlzLmxpc3RPYmplY3QuT1dORVIuZGF0YS5hc3NpZ25lZXNMaXN0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmdyY05hbWVWYWxpZGF0aW9uRXJyb3IgPSBWQUxJREFUSU9OX01FU1NBR0UuZ3JjX2V4aXN0cztcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0R1JDT2JqZWN0KCkge1xuICAgIHRoaXMuTU9ERSA9ICdDUkVBVEUnO1xuICAgIHRoaXMuc21pbGV5TWVzc2FnZSA9IFNVQ0NFU1NfTUVTU0FHRS5BRERfR1JDX09CSkVDVDtcbiAgICB0aGlzLmdyY1BheWxvYWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjU2VydmljZS5HUkNfUEFZTE9BRCkpO1xuICAgIHRoaXMuZ3JjUGF5bG9hZC50eXBlID0gdGhpcy5ncmNUeXBlO1xuICAgIHRoaXMuaXNGb3JtU3VibWl0dGVkID0gZmFsc2U7XG4gICAgdGhpcy5pc0R1cGxpY2F0ZU5hbWUgPSBmYWxzZTtcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XG4gICAgdGhpcy5oaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMuZW1pdCh0aGlzLmhpZGVNb3JlT3B0aW9uKTtcbiAgICB0aGlzLk9CSkVDVF9UWVBFID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLk9SSUdJTkFMX0dSQ19BVFRSSUJVVEVTKSk7XG4gICAgdGhpcy5vdGhlckdSQ0NhcmQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KE9USEVSX0dSQ19DQVJEKSk7XG4gICAgdGhpcy5yZXNldE90aGVyR1JDQ2FyZCgpO1xuICAgIHRoaXMuc2V0RGVmYXVsdEdSQ09iamVjdFR5cGUoKTtcbiAgICB0aGlzLnJlc2V0R1JDRGF0YVdpdGhUeXBlcygpO1xuICAgIHRoaXMucmVzZXRMaXN0T2JqZWN0U2VsZWN0aW9uKCk7XG4gICAgdGhpcy5tYXBVc2VyTGlzdCh7IGRhdGE6IHRoaXMubGlzdE9iamVjdC5PV05FUi5kYXRhLmFzc2lnbmVlc0xpc3QgfSk7XG4gIH1cblxuICByZXNldExpc3RPYmplY3RTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5saXN0T2JqZWN0Lk9XTkVSLnNlbGVjdGVkRGF0YSA9IFtdO1xuICAgIHRoaXMubGlzdE9iamVjdC5SQy5zZWxlY3RlZERhdGEgPSBbXTtcbiAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhID0gW107XG4gICAgdGhpcy5saXN0T2JqZWN0LlJJU0tfQ0FURUdPUlkuc2VsZWN0ZWREYXRhID0gW107XG4gICAgdGhpcy5saXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFkuc2VsZWN0ZWREYXRhID0gW107XG4gIH1cblxuICBzbWlsZXlBY3Rpb25zKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIGlmIChldmVudCA9PT0gJ2FkZE1vcmUnKSB7XG4gICAgICB0aGlzLnJlc2V0R1JDRm9ybSgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQgPT09ICd2aWV3Jykge1xuICAgICAgdGhpcy5yZXNldEdSQ0Zvcm0oKTtcbiAgICAgIHRoaXMudmlld0dSQygpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlU21pbGV5KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSBmYWxzZTtcbiAgICB0aGlzLnJlc2V0R1JDRm9ybSgpO1xuICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHsgZXZ0OiB0aGlzLmFkZGVkR1JDLCBjb25maXJtOiBmYWxzZSB9KTtcbiAgfVxuXG4gIHJlc2V0R1JDRm9ybSgpIHtcbiAgICB0aGlzLk1PREUgPSAnQ1JFQVRFJztcbiAgICB0aGlzLnJlc2V0R1JDT2JqZWN0KCk7XG4gICAgdGhpcy5ncmNGb3JtLm90aGVyR3JjT2JqZWN0cyA9IGZhbHNlO1xuICAgIHRoaXMuZ3JjRm9ybS5saW5rUmlzayA9IGZhbHNlO1xuICAgIHRoaXMuZ3JjRm9ybS5saW5rUHJvZ3JhbSA9IGZhbHNlO1xuICAgIHRoaXMuZ3JjRm9ybS5ncmNPYmplY3RUeXBlID0gZmFsc2U7XG5cbiAgICB0aGlzLnJlc2V0Rm9ybS5lbWl0KHRydWUpO1xuICB9XG5cbiAgdmlld0dSQygpIHtcbiAgICBsZXQgdXJsOiBzdHJpbmc7XG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcbiAgICAgIHVybCA9ICdodHRwOi8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0ICsgJy8jL21hbmFnZS1ncmMtb2JqZWN0cyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybCA9XG4gICAgICAgICdodHRwczovLycgK1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaG9zdCArXG4gICAgICAgICcvb3JnYW5pemF0aW9uLyMvbWFuYWdlLWdyYy1vYmplY3RzJztcbiAgICB9XG5cbiAgICB0aGlzLmlmcmFtZVNlcnZpY2UucmVkaXJlY3RJZkluSWZyYW1lKHVybCwgdGhpcy5NT0RFICE9PSAnRURJVCcpO1xuXG4gICAgdGhpcy5yZXNldEdSQ0Zvcm0oKTtcbiAgICB0aGlzLmNsb3NlU21pbGV5KCcnKTtcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5hZGRlZEdSQywgY29uZmlybTogZmFsc2UgfSk7XG4gIH1cblxuICBzZXRPdGhlckdSQ1R5cGVzRm9ybWF0ZSgpIHtcbiAgICBjb25zdCBncmNUeXBlcyA9IEdSQ19UWVBFX0FSUkFZO1xuICAgIHRoaXMucmVzZXRHUkNEYXRhV2l0aFR5cGVzKCk7XG4gICAgdGhpcy5saXN0T2JqZWN0Py5PVEhFUl9HUkNfT0JKRUNUUz8uc2VsZWN0ZWREYXRhPy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuZ3JjRGF0YVdpdGhUeXBlc1tncmNUeXBlc1tpdGVtPy50eXBlXV0/LnB1c2goaXRlbSk7XG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVPdGhlckdSQ09iamVjdHNQYXlsb2FkKCk7XG4gIH1cblxuICByZW1vdmVPdGhlckdSQ09iamVjdHMoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGdyY1R5cGVzID0gR1JDX1RZUEVfQVJSQVk7XG4gICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLnNlbGVjdGVkRGF0YSA9XG4gICAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhLmZpbHRlcihcbiAgICAgICAgKGdyYzogYW55KSA9PiBncmM/Ll9pZCAhPT0gZXZlbnQ/Ll9pZFxuICAgICAgKTtcbiAgICB0aGlzLmZpbHRlck90aGVyR1JDRGF0YShldmVudCwgZ3JjVHlwZXNbZXZlbnQ/LnR5cGVdKTtcbiAgICB0aGlzLm90aGVyR1JDQ2FyZFswXS5zZWxlY3RlZENvdW50XG4gICAgICA/ICh0aGlzLm90aGVyR1JDQ2FyZFtldmVudD8udHlwZV0uc2VsZWN0ZWRDb3VudCAtPSAxKVxuICAgICAgOiAwO1xuICAgIHRoaXMudXBkYXRlT3RoZXJHUkNPYmplY3RzUGF5bG9hZCgpO1xuICB9XG5cbiAgZmlsdGVyT3RoZXJHUkNEYXRhKGV2ZW50OiBhbnksIHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuZ3JjRGF0YVdpdGhUeXBlc1t0eXBlXSA9IHRoaXMuZ3JjRGF0YVdpdGhUeXBlc1t0eXBlXT8uZmlsdGVyKFxuICAgICAgKGdyYzogYW55KSA9PiBncmM/Ll9pZCAhPT0gZXZlbnQ/Ll9pZFxuICAgICk7XG4gIH1cblxuICByZXNldEdSQ0RhdGFXaXRoVHlwZXMoKSB7XG4gICAgdGhpcy5ncmNEYXRhV2l0aFR5cGVzID0ge1xuICAgICAgYXNzZXRzOiBbXSxcbiAgICAgIHByb2Nlc3NlczogW10sXG4gICAgICB2ZW5kb3JzOiBbXSxcbiAgICAgIGludmVudG9yeTogW10sXG4gICAgfTtcbiAgfVxuXG4gIGdldCBncmNWYWxpZGF0aW9uQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuaXNGb3JtU3VibWl0dGVkICYmICF0aGlzLmdyY1BheWxvYWQubmFtZSkge1xuICAgICAgdGhpcy5ncmNOYW1lVmFsaWRhdGlvbkVycm9yID0gVkFMSURBVElPTl9NRVNTQUdFLmdyY09iamVjdE5hbWU7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzRm9ybVN1Ym1pdHRlZCAmJiAhKHRoaXMuZ3JjUGF5bG9hZC5uYW1lIHx8IHRoaXMuaXNEdXBsaWNhdGVOYW1lKVxuICAgICk7XG4gIH1cblxuICBnZXRSaXNrQ2F0ZWdvcnlQYXlsb2FkKHNlbGVjdGVkRGF0YTogYW55KSB7XG4gICAgY29uc3Qgcmlza0NhdGVnb3J5UGF5bG9hZDogYW55ID0gW107XG4gICAgdGhpcy5zZWxlY3RlZFJpc2tzID0gW107XG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3JpZXMgPSBbXTtcbiAgICBzZWxlY3RlZERhdGEuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICByaXNrQ2F0ZWdvcnlQYXlsb2FkLnB1c2goe1xuICAgICAgICBjYXRlZ29yeV9pZDogW2l0ZW0/LmNhdGVnb3J5Py5jYXRlZ29yeV9pZCA/PyBbXV0sXG4gICAgICAgIHJpc2tfaWRzOiBpdGVtPy5yaXNrcz8ubWFwKChyaXNrOiBhbnkpID0+IHJpc2s/LlJpc2tJZCksXG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSaXNrcz8ucHVzaCguLi5pdGVtPy5yaXNrcyk7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcy5wdXNoKGl0ZW0/LmNhdGVnb3J5KTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmlza0NhdGVnb3J5UGF5bG9hZDtcbiAgfVxuXG4gIGdldFByb2dyYW1SZXNwb25zaWJpbGl0eVBheWxvYWQoc2VsZWN0ZWREYXRhOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHkgPSB0aGlzLnJlc3BvbnNpYmlsaXR5TGlzdC5maWx0ZXIoKGl0ZW06IGFueSkgPT5cbiAgICAgIHNlbGVjdGVkRGF0YS5zb21lKChkYXRhOiBhbnkpID0+IGRhdGE/LnJpZCA9PT0gaXRlbT8ucmlkKVxuICAgICk7XG4gICAgcmV0dXJuIHNlbGVjdGVkRGF0YTtcbiAgfVxuXG4gIHVwZGF0ZUdSQ09iamVjdCgpIHtcbiAgICBsZXQgUEFZTE9BRCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ncmNQYXlsb2FkKSk7XG4gICAgUEFZTE9BRC5vd25lcnMgPSB0aGlzLmdldE93bmVyc0V4Y2VwdERlZmF1bHQoUEFZTE9BRC5vd25lcnMpO1xuXG4gICAgLy8gVHJhbnNmb3JtIHJlc3BvbnNpYmlsaXRpZXMgZGF0YSB0byBnZXQgYWRkZWQvcmVtb3ZlZFxuICAgIFBBWUxPQUQubGlua2VkX3Jlc3BvbnNpYmlsaXRpZXMgPVxuICAgICAgdGhpcy5Db21tb25TZXJ2aWNlLnRyYW5zZm9ybVJlc3BvbnNpYmlsaXRpZXNEYXRhKFxuICAgICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHkubWFwKChyZXNwKSA9PiByZXNwPy5yaWQpLFxuICAgICAgICB0aGlzLmxpbmtlZFJlc3BvbnNpYmlsaXRpZXM/LnJlc3BvbnNpYmlsaXRpZXM/LmxpbmtlZCB8fCBbXVxuICAgICAgKTtcblxuICAgIHRoaXMuYXBpU2VydmljZS51cGRhdGVHUkNPYmplY3QoUEFZTE9BRCwgdGhpcy5JRCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXRNb3JlT3B0aW9uc09uU3VibWl0KCk7XG4gICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSB0cnVlO1xuICAgICAgICB0aGlzLmFkZGVkR1JDID0gZGF0YTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3InLCBlcnJvciwgZXJyb3Iuc3RhdHVzKTtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA5KSB7XG4gICAgICAgICAgdGhpcy5pc0R1cGxpY2F0ZU5hbWUgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc2V0TW9yZU9wdGlvbnNPblN1Ym1pdCgpO1xuICAgICAgICAgIHRoaXMuZ3JjTmFtZVZhbGlkYXRpb25FcnJvciA9IFZBTElEQVRJT05fTUVTU0FHRS5ncmNfZXhpc3RzO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZU90aGVyR1JDT2JqZWN0c1BheWxvYWQoKSB7XG4gICAgdGhpcy5ncmNQYXlsb2FkLmxpbmtlZF9HUkNfaWRzID1cbiAgICAgIHRoaXMubGlzdE9iamVjdC5PVEhFUl9HUkNfT0JKRUNUUy5zZWxlY3RlZERhdGEubWFwKFxuICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLl9pZFxuICAgICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVNlbGVjdGVkUmlzayhjYXRlZ29yeUlkOiBudW1iZXIsIHJpc2s6IGFueSkge1xuICAgIGNvbnN0IGNhdGVnb3J5SW5kZXggPSB0aGlzLmZpbmRDaGVja2VkQ2F0ZWdvcnlJbmRleChjYXRlZ29yeUlkKTtcbiAgICBpZiAoY2F0ZWdvcnlJbmRleCAhPT0gLTEpIHtcbiAgICAgIC8vIENhdGVnb3J5IGV4aXN0cywgdXBkYXRlIHJpc2sgdmFsdWVcbiAgICAgIGNvbnN0IHJpc2tJbmRleCA9IHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhW1xuICAgICAgICBjYXRlZ29yeUluZGV4XG4gICAgICBdPy5yaXNrcz8uZmluZEluZGV4KChpdGVtOiBhbnkpID0+IGl0ZW0/Ll9pZCA9PT0gcmlzaz8uX2lkKTtcbiAgICAgIGlmIChyaXNrSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhW1xuICAgICAgICAgIGNhdGVnb3J5SW5kZXhcbiAgICAgICAgXT8ucmlza3Muc3BsaWNlKHJpc2tJbmRleCwgMSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0Py5SSVNLX0NBVEVHT1JZPy5zZWxlY3RlZERhdGFbY2F0ZWdvcnlJbmRleF0/LnJpc2tzXG4gICAgICAgICAgPy5sZW5ndGggPT09IDBcbiAgICAgICkge1xuICAgICAgICAvLyBSZW1vdmUgY2F0ZWdvcnkgaWYgc2VsZWN0ZWRMaXN0RGF0YSBpcyBlbXB0eVxuICAgICAgICB0aGlzLmxpc3RPYmplY3Q/LlJJU0tfQ0FURUdPUlk/LnNlbGVjdGVkRGF0YS5zcGxpY2UoY2F0ZWdvcnlJbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZ3JjUGF5bG9hZC5yaXNrX2NhdGVnb3J5X2lkcyA9IHRoaXMuZ2V0Umlza0NhdGVnb3J5UGF5bG9hZChcbiAgICAgIHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVNlbGVjdGVkUmVzcG9uc2liaWxpdHkocmVzcG9uc2liaWxpdHk6IGFueSkge1xuICAgIHRoaXMubGlzdE9iamVjdC5QUk9HUkFNX1JFU1BPTlNJQklMSVRZLnNlbGVjdGVkRGF0YSA9XG4gICAgICB0aGlzLmxpc3RPYmplY3Q/LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YT8ubWFwKFxuICAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgbGV0IGZpbHRlcmVkUmVzcG9uc2liaWxpdHkgPSBkYXRhPy5yZXNwb25zaWJpbGl0eT8uZmlsdGVyKFxuICAgICAgICAgICAgKHJlc3A6IGFueSkgPT4gcmVzcD8uX2lkICE9PSByZXNwb25zaWJpbGl0eT8uX2lkXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5OiBmaWx0ZXJlZFJlc3BvbnNpYmlsaXR5LFxuICAgICAgICAgICAgY2F0ZWdvcnk6IFtcbiAgICAgICAgICAgICAgLi4uKG5ldyBTZXQoXG4gICAgICAgICAgICAgICAgZmlsdGVyZWRSZXNwb25zaWJpbGl0eS5tYXAoKG9iajogYW55KSA9PiBkYXRhPy5jYXRlZ29yeSk/LmZsYXQoKVxuICAgICAgICAgICAgICApIHx8IFtdKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgIHRoaXMubGlzdE9iamVjdC5QUk9HUkFNX1JFU1BPTlNJQklMSVRZLnNlbGVjdGVkRGF0YSA9XG4gICAgICB0aGlzLmxpc3RPYmplY3Q/LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YS5maWx0ZXIoXG4gICAgICAgIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gZGF0YT8ucmVzcG9uc2liaWxpdHk/Lmxlbmd0aCA+IDA7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgdGhpcy5ncmNQYXlsb2FkLnByb2dyYW1fY2F0ZWdvcnlfaWRzID0gdGhpcy5nZXRQcm9ncmFtUmVzcG9uc2liaWxpdHlQYXlsb2FkKFxuICAgICAgdGhpcy5saXN0T2JqZWN0Py5QUk9HUkFNX1JFU1BPTlNJQklMSVRZPy5zZWxlY3RlZERhdGFcbiAgICApO1xuICB9XG5cbiAgZmluZENoZWNrZWRDYXRlZ29yeUluZGV4KGNhdGVnb3J5SWQ6IG51bWJlciB8IG51bWJlcltdKSB7XG4gICAgbGV0IGNhdGVnb3J5SW5kZXggPSAtMTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjYXRlZ29yeUlkKSAmJiBjYXRlZ29yeUlkPy5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIEhhbmRsZSBlbXB0eSBjYXRlZ29yeUlkIGFycmF5IGNhc2VcbiAgICAgIGNvbnN0IHVuY2F0ZWdvcml6ZWRJbmRleCA9XG4gICAgICAgIHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhLmZpbmRJbmRleChcbiAgICAgICAgICAoY2F0OiBhbnkpID0+IGNhdD8uY2F0ZWdvcnk/Ll9pZCA9PT0gJ3VuY2F0ZWdvcml6ZWQnXG4gICAgICAgICk7XG4gICAgICBpZiAodW5jYXRlZ29yaXplZEluZGV4ICE9PSAtMSkge1xuICAgICAgICByZXR1cm4gdW5jYXRlZ29yaXplZEluZGV4O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjYXRlZ29yeUluZGV4ID0gdGhpcy5saXN0T2JqZWN0Py5SSVNLX0NBVEVHT1JZPy5zZWxlY3RlZERhdGEuZmluZEluZGV4KFxuICAgICAgICAoY2F0OiBhbnkpID0+IGNhdD8uY2F0ZWdvcnk/LmNhdGVnb3J5X2lkID09PSBjYXRlZ29yeUlkXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcnlJbmRleDtcbiAgfVxuXG4gIHNldExpbmtSaXNrVGFiKHRhYkRldGFpbHM6IGFueSkge1xuICAgIHRoaXMub3RoZXJHUkNDYXJkID0gdGFiRGV0YWlscy5tYXAoKHRhYjogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogdGFiPy5sYWJlbCxcbiAgICAgICAgY291bnQ6IDAsXG4gICAgICAgIHNlbGVjdGVkQ291bnQ6IDAsXG4gICAgICAgIGtleTogdGFiPy5sYWJlbD8udG9Mb3dlckNhc2UoKSxcbiAgICAgICAgdHlwZTogaW5kZXgsXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHRoaXMuZ2V0T3RoZXJHUkNUYWJDb3VudCh7IHJjX2lkczogJycgfSk7XG4gIH1cblxuICBwb3B1bGF0ZUxpbmtSaXNrKHNlbGVjdGVkRGF0YTogYW55KSB7XG4gICAgbGV0IHVwZGF0ZWREYXRhID0gc2VsZWN0ZWREYXRhPy5tYXAoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgaWYgKGRhdGE/LmNhdGVnb3J5X2lkICYmIE9iamVjdD8ua2V5cyhkYXRhPy5jYXRlZ29yeV9pZCk/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgY2F0ZWdvcnk6IFVOQ0FURUdPUklaRURfTElOS19DQVRFR09SWSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIGNhdGVnb3J5OiB7XG4gICAgICAgICAgY2F0ZWdvcnlfaWQ6IGRhdGE/LmNhdGVnb3J5X2lkWzBdLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9KTtcbiAgICBpZiAodXBkYXRlZERhdGEubGVuZ3RoKSB7XG4gICAgICB0aGlzLmdyY0Zvcm0ubGlua1Jpc2sgPSB0cnVlO1xuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkxJTktfUklTS19DQVRFR09SSUVTX1JJU0tTID0gdHJ1ZTtcbiAgICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xuICAgIH1cbiAgICB0aGlzLmxpc3RPYmplY3QuUklTS19DQVRFR09SWS5zZWxlY3RlZERhdGEgPSB1cGRhdGVkRGF0YTtcbiAgICByZXR1cm4gdGhpcy5nZXRSaXNrQ2F0ZWdvcnlQYXlsb2FkKHVwZGF0ZWREYXRhKTtcbiAgfVxuXG4gIHBvcHVsYXRlTGlua1Jlc3BvbnNpYmlsaXR5KHNlbGVjdGVkRGF0YTogYW55KSB7XG4gICAgLy8gSWYgc2VsZWN0ZWREYXRhIGlzIGFuIGFycmF5IG9mIHsgcmlkLCBpZCB9XG4gICAgdGhpcy5saXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFkuc2VsZWN0ZWREYXRhID0gc2VsZWN0ZWREYXRhO1xuICAgIGlmIChzZWxlY3RlZERhdGE/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5ncmNGb3JtLmxpbmtQcm9ncmFtID0gdHJ1ZTtcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5MSU5LX1BST0dSQU0gPSB0cnVlO1xuICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSA9IHNlbGVjdGVkRGF0YTtcbiAgICByZXR1cm4gc2VsZWN0ZWREYXRhO1xuICB9XG5cbiAgZ2V0T3duZXJzRXhjZXB0RGVmYXVsdCh1c2VyczogYW55KSB7XG4gICAgY29uc3QgdXNlcnNJZCA9IHVzZXJzLmZpbHRlcihcbiAgICAgICh1c2VyOiBhbnkpID0+ICF0aGlzLmRpc2FibGVkSWRzLmluY2x1ZGVzKHVzZXIpXG4gICAgKTtcbiAgICByZXR1cm4gdXNlcnNJZCB8fCBbXTtcbiAgfVxuXG4gIHNldE1vcmVPcHRpb25zT25TdWJtaXQoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xuICAgIHRoaXMuc3VibWl0TG9hZGVyID0gZmFsc2U7XG4gIH1cblxuICByZXNldE90aGVyR1JDQ2FyZCgpIHtcbiAgICB0aGlzLm90aGVyR1JDQ2FyZC5mb3JFYWNoKCh0YWI6IGFueSkgPT4ge1xuICAgICAgdGFiLmNvdW50ID0gMDtcbiAgICAgIHRhYi5zZWxlY3RlZENvdW50ID0gMDtcbiAgICB9KTtcbiAgfVxuXG4gIHJlc2V0RGF0YU9uUkNDaGFuZ2UoKSB7XG4gICAgdGhpcy5saXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFkuc2VsZWN0ZWREYXRhID0gW107XG4gICAgdGhpcy5saXN0T2JqZWN0LlJJU0tfQ0FURUdPUlkuc2VsZWN0ZWREYXRhID0gW107XG4gICAgaWYgKHRoaXMubGlzdE9iamVjdC5SQy5zZWxlY3RlZERhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnJlc2V0TW9yZU9wdGlvbnNPblJDQ2hhbmdlKCk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRNb3JlT3B0aW9uc09uUkNDaGFuZ2UoKSB7XG4gICAgdGhpcy5ncmNGb3JtLmxpbmtQcm9ncmFtID0gZmFsc2U7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkxJTktfUFJPR1JBTSA9IGZhbHNlO1xuICAgIHRoaXMuZ3JjRm9ybS5saW5rUmlzayA9IGZhbHNlO1xuICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5MSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUyA9IGZhbHNlO1xuICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xuICB9XG5cbiAgZ2V0QWxsUmVzcG9uc2liaWxpdGllcygpIHtcbiAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0QWxsUmVzcG9uc2liaWxpdGllcygpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubGlua2VkUmVzcG9uc2liaWxpdGllcyA9IHtcbiAgICAgICAgICByZXNwb25zaWJpbGl0aWVzOiB7XG4gICAgICAgICAgICBsaW5rZWQ6IGRhdGE/LmxpbmtlZF9yZXNwb25zaWJpbGl0aWVzIHx8IFtdLFxuICAgICAgICAgICAgZGF0YTpcbiAgICAgICAgICAgICAgZGF0YT8ucmVzcG9uc2liaWxpdGllcz8ubWFwKChyZXNwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgUmVwb3J0SWQ6IHJlc3A/LmxpbmtlZF9yZXNwb25zaWJpbGl0aWVzX2RldGFpbHM/LnJpZCxcbiAgICAgICAgICAgICAgICBSZXBvcnROYW1lOiByZXNwPy5yZXBvcnRfbmFtZSxcbiAgICAgICAgICAgICAgICBDYXRlZ29yeUlkOiByZXNwPy5jYXRlZ29yeV9pZCxcbiAgICAgICAgICAgICAgICBDYXRlZ29yeU5hbWU6IHJlc3A/LmNhdGVnb3J5X25hbWUsXG4gICAgICAgICAgICAgICAgZnJlcXVlbmN5OiByZXNwPy5mcmVxdWVuY3ksXG4gICAgICAgICAgICAgICAgc3RhdHVzOiByZXNwPy5zdGF0dXMsXG4gICAgICAgICAgICAgIH0pKSB8fCBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93U21pbGV5XCI+XG4gIDxkaXYgY2xhc3M9XCJ3b3JrZmxvdy1ncmNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuZGlzYWJsZWRdPVwib3BlbmVkUG9wdXAgJiYgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcIlxuICAgICAgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gICAgICA8bGliLXRleHQtZmllbGQtaWNvbiBbZGlzYWJsZWRdPVwib3BlbmVkUG9wdXAgJiYgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcIiBbY2RuTGlua109XCJDRE5fTElOSy5ncmNUeXBlXCJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJ0cnVlXCIgZmllbGQtaWNvbnM+XG4gICAgICA8L2xpYi10ZXh0LWZpZWxkLWljb24+XG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+XG4gICAgICAgICAgICBHUkMgT0JKRUNUIFRZUEU8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIj5cbiAgICAgICAgICAgIDx0YWItc2VsZWN0b3IgW3NlbGVjdGVkSXRlbV09XCJncmNQYXlsb2FkLnR5cGVcIiBbZGlzcGxheUFycmF5XT1cIk9CSkVDVF9UWVBFXCJcbiAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImNoYW5nZUF0dHJpYnV0ZXNUeXBlKCRldmVudClcIj48L3RhYi1zZWxlY3Rvcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIE9iamVjdCBuYW1lIGZpZWxkIC0tPlxuICAgIDxsaWItdGV4dC1maWVsZCBbZGlzYWJsZWRdPVwiXG4gICAgICAgIG9wZW5lZFBvcHVwICYmXG4gICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFLm5hbWUgJiZcbiAgICAgICAgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcbiAgICAgIFwiIFtpc0VkaXRNb2RlXT1cImdyY1BheWxvYWQubmFtZSAmJiBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5uYW1lXCIgW3RpdGxlVGV4dF09XCJBTExfVEVYVD8uZ3JjT2JqZWN0TmFtZVwiXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNPYmplY3RQbGFjZWhvbGRlclwiIFsodGV4dFZhbHVlKV09XCJncmNQYXlsb2FkLm5hbWVcIlxuICAgICAgKHRleHRWYWx1ZUNoYW5nZSk9XCJvblRleHRDaGFuZ2UoJGV2ZW50KVwiIChjbGlja091dHNpZGUpPVwib25DbGlja091dHNpZGUoKVwiXG4gICAgICAob25DbGljayk9XCJvblBvcHVwT3BlbihJTlBVVF9UWVBFLm5hbWUpXCI+XG4gICAgICA8bGliLXRleHQtZmllbGQtaWNvbiBbY2RuTGlua109XCJDRE5fTElOSy5ncmNPYmplY3ROYW1lXCIgW2lzQ2hlY2tlZF09XCJncmNQYXlsb2FkLm5hbWVcIiBmaWVsZC1pY29ucz5cbiAgICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIiBpcy1yZXF1aXJlZD4qPC9zcGFuPlxuICAgICAgPGxpYi1lZGl0LW1vZGUgKm5nSWY9XCJncmNQYXlsb2FkLm5hbWUgJiYgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUubmFtZVwiIFtzZWxlY3RlZERhdGFdPVwiW2dyY1BheWxvYWRdXCJcbiAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCIgKGlzT25FZGl0KT1cIm9uRWRpdChJTlBVVF9UWVBFLm5hbWUpXCIgZWRpdC1tb2RlPjwvbGliLWVkaXQtbW9kZT5cbiAgICAgIDxwICpuZ0lmPVwiZ3JjVmFsaWRhdGlvbkNoZWNrIHx8IGlzRHVwbGljYXRlTmFtZVwiIFthcHBTY3JvbGxJblZpZXddPVwidHJ1ZVwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiIGVycm9yLW1lc3NhZ2U+XG4gICAgICAgIHt7IGdyY05hbWVWYWxpZGF0aW9uRXJyb3IgfX1cbiAgICAgIDwvcD5cbiAgICAgIDx2Y29tcGx5LWVkaXRvciBbZWRpdG9yQ29uZmlnXT1cIkVESVRPUl9DT05GSUdcIiBbKG5nTW9kZWwpXT1cImdyY1BheWxvYWQuZGVzY3JpcHRpb25cIlxuICAgICAgICByaWNoLXRleHQtZWRpdG9yPjwvdmNvbXBseS1lZGl0b3I+XG4gICAgPC9saWItdGV4dC1maWVsZD5cblxuICAgIDwhLS0gU3BlY2lmeSBPd25lcnMgLS0+XG4gICAgPGxpYi10ZXh0LWZpZWxkIFtkaXNhYmxlZF09XCJcbiAgICAgICAgb3BlbmVkUG9wdXAgJiZcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUub3duZXIgJiZcbiAgICAgICAgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcbiAgICAgIFwiIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRS5vd25lclwiIFtpc0VkaXRNb2RlXT1cIlxuICAgICAgICBsaXN0T2JqZWN0Lk9XTkVSPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCAmJlxuICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5vd25lclxuICAgICAgXCIgW3RpdGxlVGV4dF09XCJBTExfVEVYVD8uZ3JjT3duZXJzVGl0bGVcIiBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNPd25lcnNQbGFjZWhvbGRlclwiIFtpc1JlYWRPbmx5XT1cInRydWVcIlxuICAgICAgKG9uQ2xpY2spPVwib25Qb3B1cE9wZW4oSU5QVVRfVFlQRS5vd25lcilcIj5cbiAgICAgIDxsaWItdGV4dC1maWVsZC1pY29uIFtjZG5MaW5rXT1cIkNETl9MSU5LLmdyY093bmVyc1wiIFtpc0NoZWNrZWRdPVwibGlzdE9iamVjdC5PV05FUj8uc2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwXCJcbiAgICAgICAgZmllbGQtaWNvbnM+XG4gICAgICA8L2xpYi10ZXh0LWZpZWxkLWljb24+XG4gICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCIgaXMtcmVxdWlyZWQ+Kjwvc3Bhbj5cbiAgICAgIDxsaWItZWRpdC1tb2RlICpuZ0lmPVwiXG4gICAgICAgICAgbGlzdE9iamVjdC5PV05FUj8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcbiAgICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5vd25lclxuICAgICAgICBcIiBbbm9uUmVtb3ZhYmxlSWRzXT1cImRpc2FibGVkSWRzXCIgW2NvdW50Q29sb3JdPVwiJ2dyZWVuQmcnXCIgW3NlbGVjdGVkRGF0YV09XCJsaXN0T2JqZWN0Lk9XTkVSPy5zZWxlY3RlZERhdGFcIlxuICAgICAgICBbdHlwZV09XCInbGlzdCdcIiAoaXNPbkVkaXQpPVwib25FZGl0KElOUFVUX1RZUEUub3duZXIpXCIgKG9uUmVtb3ZlRGF0YSk9XCJvblJlbW92ZURhdGEoJGV2ZW50LCBJTlBVVF9UWVBFLm93bmVyKVwiXG4gICAgICAgIGVkaXQtbW9kZT48L2xpYi1lZGl0LW1vZGU+XG4gICAgPC9saWItdGV4dC1maWVsZD5cblxuICAgIDwhLS0gTGluayBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIChSQykgLS0+XG4gICAgPGxpYi10ZXh0LWZpZWxkIFtkaXNhYmxlZF09XCJcbiAgICAgICAgb3BlbmVkUG9wdXAgJiZcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUuUkMgJiZcbiAgICAgICAgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcbiAgICAgIFwiIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRS5SQ1wiIFtpc0VkaXRNb2RlXT1cIlxuICAgICAgICBsaXN0T2JqZWN0LlJDPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCAmJiBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5SQ1xuICAgICAgXCIgW3RpdGxlVGV4dF09XCJBTExfVEVYVD8uZ3JjUkNUaXRsZVwiIFtwbGFjZWhvbGRlclRleHRdPVwiQUxMX1RFWFQ/LmdyY1JDUGxhY2Vob2xkZXJcIiBbaXNSZWFkT25seV09XCJ0cnVlXCJcbiAgICAgIChvbkNsaWNrKT1cIm9uUG9wdXBPcGVuKElOUFVUX1RZUEUuUkMpXCI+XG4gICAgICA8bGliLXRleHQtZmllbGQtaWNvbiBbY2RuTGlua109XCJDRE5fTElOSy5ncmNSQ1wiIFtpc0NoZWNrZWRdPVwibGlzdE9iamVjdC5SQz8uc2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwXCIgZmllbGQtaWNvbnM+XG4gICAgICA8L2xpYi10ZXh0LWZpZWxkLWljb24+XG4gICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCIgaXMtcmVxdWlyZWQ+Kjwvc3Bhbj5cbiAgICAgIDxsaWItZWRpdC1tb2RlICpuZ0lmPVwiXG4gICAgICAgICAgbGlzdE9iamVjdC5SQz8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiYgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUuUkNcbiAgICAgICAgXCIgKG9uUmVtb3ZlRGF0YSk9XCJvblJlbW92ZURhdGEoJGV2ZW50LCBJTlBVVF9UWVBFLlJDKVwiIFtzZWxlY3RlZERhdGFdPVwibGlzdE9iamVjdC5SQz8uc2VsZWN0ZWREYXRhXCJcbiAgICAgICAgW3R5cGVdPVwiJ2xpc3QnXCIgKGlzT25FZGl0KT1cIm9uRWRpdChJTlBVVF9UWVBFLlJDKVwiIGVkaXQtbW9kZT48L2xpYi1lZGl0LW1vZGU+XG4gICAgICA8cCAqbmdJZj1cImlzRm9ybVN1Ym1pdHRlZCAmJiAhbGlzdE9iamVjdC5SQz8uc2VsZWN0ZWREYXRhPy5sZW5ndGhcIiBbYXBwU2Nyb2xsSW5WaWV3XT1cInRydWVcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxuICAgICAgICBlcnJvci1tZXNzYWdlPlxuICAgICAgICB7eyBWQUxJREFUSU9OX01FU1NBR0UuZ3JjUkMgfX1cbiAgICAgIDwvcD5cbiAgICA8L2xpYi10ZXh0LWZpZWxkPlxuXG4gICAgPCEtLSBMaW5rIFByb2dyYW0gYW5kIFJlc3BvbnNpYmlsaXR5IC0tPlxuICAgIDxsaWItdGV4dC1maWVsZCBbZGlzYWJsZWRdPVwiXG4gICAgICAgIG9wZW5lZFBvcHVwICYmXG4gICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFPy5wcm9ncmFtUmVzcG9uc2liaWxpdHkgJiZcbiAgICAgICAgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcbiAgICAgIFwiIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRT8ucHJvZ3JhbVJlc3BvbnNpYmlsaXR5XCIgKm5nSWY9XCJncmNGb3JtPy5saW5rUHJvZ3JhbVwiXG4gICAgICBbdGl0bGVUZXh0XT1cIkFMTF9URVhUPy5ncmNQcm9ncmFtUmVzcG9uc2liaWxpdHlUaXRsZVwiXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNQcm9ncmFtUmVzcG9uc2liaWxpdHlQbGFjZWhvbGRlclwiIFtpc1JlYWRPbmx5XT1cInRydWVcIlxuICAgICAgKG9uQ2xpY2spPVwib25Qb3B1cE9wZW4oSU5QVVRfVFlQRS5wcm9ncmFtUmVzcG9uc2liaWxpdHkpXCIgW2lzRWRpdE1vZGVdPVwiXG4gICAgICAgIGxpc3RPYmplY3Q/LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoICYmXG4gICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFPy5wcm9ncmFtUmVzcG9uc2liaWxpdHlcbiAgICAgIFwiPlxuICAgICAgPGxpYi10ZXh0LWZpZWxkLWljb24gW2NkbkxpbmtdPVwiQ0ROX0xJTksubGlua090aGVyc1wiXG4gICAgICAgIFtpc0NoZWNrZWRdPVwibGlzdE9iamVjdC5QUk9HUkFNX1JFU1BPTlNJQklMSVRZPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCA+IDBcIiBmaWVsZC1pY29ucz5cbiAgICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cblxuICAgICAgPGxpYi1lZGl0LW1vZGUgKm5nSWY9XCJcbiAgICAgICAgICBsaXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoICYmXG4gICAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEU/LlBST0dSQU1fUkVTUE9OU0lCSUxJVFlcbiAgICAgICAgXCIgKG9uUmVtb3ZlRGF0YSk9XCJvblJlbW92ZURhdGEoJGV2ZW50LCBJTlBVVF9UWVBFPy5wcm9ncmFtUmVzcG9uc2liaWxpdHkpXCJcbiAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJsaXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YSBcIiBbbmFtZURpc3BsYXlLZXldPVwiJ3RpdGxlJ1wiIFt0eXBlXT1cIidsaXN0J1wiXG4gICAgICAgIChpc09uRWRpdCk9XCJvbkVkaXQoSU5QVVRfVFlQRS5wcm9ncmFtUmVzcG9uc2liaWxpdHkpXCIgZWRpdC1tb2RlPlxuICAgICAgPC9saWItZWRpdC1tb2RlPlxuICAgIDwvbGliLXRleHQtZmllbGQ+XG5cbiAgICA8IS0tIExpbmsgUmlzayBDYXRlZ29yaWVzIGFuZCBSaXNrIC0tPlxuICAgIDxsaWItdGV4dC1maWVsZCBbZGlzYWJsZWRdPVwiXG4gICAgICAgIG9wZW5lZFBvcHVwICYmXG4gICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFPy5yaXNrQ2F0ZWdvcnkgJiZcbiAgICAgICAgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcbiAgICAgIFwiIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRT8ucmlza0NhdGVnb3J5XCIgKm5nSWY9XCJncmNGb3JtPy5saW5rUmlza1wiXG4gICAgICBbdGl0bGVUZXh0XT1cIkFMTF9URVhUPy5ncmNSaXNrQ2F0ZWdvcnlUaXRsZVwiIFtwbGFjZWhvbGRlclRleHRdPVwiQUxMX1RFWFQ/LmdyY1Jpc2tDYXRlZ29yeVBsYWNlaG9sZGVyXCJcbiAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIiAob25DbGljayk9XCJvblBvcHVwT3BlbihJTlBVVF9UWVBFLnJpc2tDYXRlZ29yeSlcIiBbaXNFZGl0TW9kZV09XCJcbiAgICAgICAgbGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEU/LnJpc2tDYXRlZ29yeVxuICAgICAgXCI+XG4gICAgICA8bGliLXRleHQtZmllbGQtaWNvbiBbY2RuTGlua109XCJDRE5fTElOSy5saW5rR1JDXCIgW2lzQ2hlY2tlZF09XCJsaXN0T2JqZWN0LlJJU0tfQ0FURUdPUlk/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMFwiXG4gICAgICAgIGZpZWxkLWljb25zPlxuICAgICAgPC9saWItdGV4dC1maWVsZC1pY29uPlxuXG4gICAgICA8bGliLWVkaXQtbW9kZSAqbmdJZj1cIlxuICAgICAgICAgIGxpc3RPYmplY3QuUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcbiAgICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5SSVNLX0NBVEVHT1JZXG4gICAgICAgIFwiIChvblJlbW92ZURhdGEpPVwib25SZW1vdmVEYXRhKCRldmVudCwgSU5QVVRfVFlQRT8ucmlza0NhdGVnb3J5KVwiIFtzZWxlY3RlZERhdGFdPVwic2VsZWN0ZWRSaXNrc1wiXG4gICAgICAgIFt0eXBlXT1cIidsaXN0J1wiIChpc09uRWRpdCk9XCJvbkVkaXQoSU5QVVRfVFlQRS5yaXNrQ2F0ZWdvcnksIGRhdGE/LmtleSlcIiBlZGl0LW1vZGU+XG4gICAgICA8L2xpYi1lZGl0LW1vZGU+XG4gICAgPC9saWItdGV4dC1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPCEtLSBMaW5rIE90aGVyIEdSQyBPYmplY3RzIC0tPlxuICA8IS0tIEhpZGRlbiBmb3Igbm93IC0tPlxuICA8IS0tIDxsaWItdGV4dC1maWVsZCAqbmdJZj1cImdyY0Zvcm0/Lm90aGVyR3JjT2JqZWN0c1wiIFtkaXNhYmxlZF09XCJcbiAgICAgIG9wZW5lZFBvcHVwICYmXG4gICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRT8ub3RoZXJHcmNPYmplY3RzICYmXG4gICAgICBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVxuICAgIFwiIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRT8ub3RoZXJHcmNPYmplY3RzXCIgW3RpdGxlVGV4dF09XCJBTExfVEVYVD8ub3RoZXJHUkNPYmplY3RzVGl0bGVcIlxuICAgIFtwbGFjZWhvbGRlclRleHRdPVwiQUxMX1RFWFQ/Lm90aGVyR1JDT2JqZWN0c1BsYWNlaG9sZGVyXCIgW2lzUmVhZE9ubHldPVwidHJ1ZVwiXG4gICAgKG9uQ2xpY2spPVwib25Qb3B1cE9wZW4oSU5QVVRfVFlQRS5vdGhlckdyY09iamVjdHMpXCIgW2lzRWRpdE1vZGVdPVwiXG4gICAgICBsaXN0T2JqZWN0Py5PVEhFUl9HUkNfT0JKRUNUUz8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcbiAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFPy5vdGhlckdyY09iamVjdHNcbiAgICBcIj5cbiAgICA8bGliLXRleHQtZmllbGQtaWNvbiBbY2RuTGlua109XCJDRE5fTElOSy5saW5rT3RoZXJzXCJcbiAgICAgIFtpc0NoZWNrZWRdPVwibGlzdE9iamVjdD8uT1RIRVJfR1JDX09CSkVDVFM/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMFwiIGZpZWxkLWljb25zPlxuICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cblxuICAgIDxsaWItZWRpdC1tb2RlICpuZ0Zvcj1cImxldCBkYXRhIG9mIEdSQ19UWVBFX0FSUkFZXCJcbiAgICAgIChvblJlbW92ZURhdGEpPVwib25SZW1vdmVEYXRhKCRldmVudCwgSU5QVVRfVFlQRT8ub3RoZXJHcmNPYmplY3RzKVwiIFtzZWxlY3RlZERhdGFdPVwiZ3JjRGF0YVdpdGhUeXBlc1tkYXRhXVwiXG4gICAgICBbdHlwZV09XCInbGlzdCdcIiBbaXNNdWx0aXBsZV09XCJ0cnVlXCIgKGlzT25FZGl0KT1cIm9uRWRpdChJTlBVVF9UWVBFLm90aGVyR3JjT2JqZWN0cywgZGF0YSlcIiBlZGl0LW1vZGU+XG4gICAgICA8ZGl2IGNsYXNzPVwid29ya2Zsb3dMYXZlbCB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGwtMSB2eC1wci0xIHZ4LWxoLTQgdngtbXItMSB2eC10ZXh0LWNlbnRlclwiPlxuICAgICAgICB7eyBkYXRhIHwgdGl0bGVjYXNlIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpYi1lZGl0LW1vZGU+XG4gIDwvbGliLXRleHQtZmllbGQ+IC0tPlxuICA8bGliLWF0dHJpYnV0ZXMgW2Rpc2FibGVkXT1cIm9wZW5lZFBvcHVwICYmIGRpYWxvZ0ZpZWxkcz8uaW5jbHVkZXMob3BlbmVkUG9wdXApXCJcbiAgICAqbmdJZj1cInNlbGVjdGVkQXR0cmlidXRlcz8uYXR0cmlidXRlcz8ubGVuZ3RoICYmIHRoaXMuZ3JjRm9ybS5ncmNPYmplY3RUeXBlXCIgW2F0dHJpYnV0ZXNJbmZvXT1cInNlbGVjdGVkQXR0cmlidXRlc1wiXG4gICAgW2lzRm9ybVN1Ym1pdHRlZF09XCJpc0Zvcm1TdWJtaXR0ZWRcIiAob25DbGljayk9XCJnZXRBdHRyaWJ1dGVTZWxlY3Rpb24oJGV2ZW50KVwiPjwvbGliLWF0dHJpYnV0ZXM+XG4gIDxsaWItbGlzdC1wb3B1cCBbb3BlbmVkUG9wdXBdPVwib3BlbmVkUG9wdXBcIiBbbGlzdE9iamVjdF09XCJsaXN0T2JqZWN0XCIgW3RhYmxlQ2FyZF09XCJvdGhlckdSQ0NhcmRcIlxuICAgIFtvdGhlckdyY0NhcmRMb2FkZXJdPVwiZ3JjVGFiTG9hZGVyXCIgW0dSQ1NlbGVjdGVkVGFiXT1cIkdSQ1NlbGVjdGVkVGFiXCIgW21vZGVdPVwiTU9ERVwiIFtvbkVkaXRHUkNJZF09XCJJRFwiXG4gICAgKG9uU2F2ZVNlbGVjdGVkTGlzdCk9XCJvblNhdmVTZWxlY3RlZExpc3QoJGV2ZW50KVwiXG4gICAgKGdldE90aGVyR1JDT2JqZWN0cyk9XCJnZXRPdGhlckdSQ09iamVjdHMoJGV2ZW50KVwiPjwvbGliLWxpc3QtcG9wdXA+XG48L25nLWNvbnRhaW5lcj5cbjxhcHAtc21pbGV5LWRpYWxvZy1pbmxpbmUgKm5nSWY9XCJzaG93U21pbGV5XCIgW21lc3NhZ2VdPVwic21pbGV5TWVzc2FnZVwiIFthY3Rpb25CdXR0b25zXT1cImFjdGlvbkJ1dHRvbnNcIlxuICAoYWN0aW9uKT1cInNtaWxleUFjdGlvbnMoJGV2ZW50KVwiIChjbG9zZVNtaWxleSk9XCJjbG9zZVNtaWxleSgkZXZlbnQpXCI+PC9hcHAtc21pbGV5LWRpYWxvZy1pbmxpbmU+XG48YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJpc0xvYWRpbmdcIj48L2FwcC1sb2FkZXItaW5saW5lPiJdfQ==
880
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JjLW9iamVjdC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3cvZ3JjLW9iamVjdC9ncmMtb2JqZWN0LWNvbnRhaW5lci9ncmMtb2JqZWN0LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy9ncmMtb2JqZWN0L2dyYy1vYmplY3QtY29udGFpbmVyL2dyYy1vYmplY3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBVXhGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUcvRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLDJCQUEyQixHQUM1QixNQUFNLDJDQUEyQyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0IzRSxNQUFNLE9BQU8sMkJBQTJCO0lBb0Z0QyxZQUNVLFVBQXNCLEVBQ3RCLFVBQWlDLEVBQ2pDLFdBQXdCLEVBQ3hCLFlBQTBCLEVBQzFCLHVCQUFnRCxFQUNoRCx5QkFBb0QsRUFDcEQsYUFBNEIsRUFDNUIsYUFBNEI7UUFQNUIsZUFBVSxHQUFWLFVB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O0lBQ0wsQ0FBQzsrR0F0K0JVLDJCQUEyQjttR0FBM0IsMkJBQTJCLG1XQzdDeEMsb3hTQXNLeUQ7OzRGRHpINUMsMkJBQTJCO2tCQWR2QyxTQUFTOytCQUNFLDBCQUEwQixXQUczQjt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsNkJBQTZCO3FCQUM5QixVQUNPLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZJRUxEX1RFWFQgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL2ZpZWxkLXRleHQuY29uc3RhbnQnO1xuaW1wb3J0IHsgTElOS1MgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL2Nkbi1saW5rLmNvbnN0YW50JztcbmltcG9ydCB7IFZBTElEQVRJT05fTUVTU0FHRSB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMvdmFsaWRhdGlvbi1tZXNzYWdlLmNvbnN0YW50JztcbmltcG9ydCB7XG4gIEFkZEdyYyxcbiAgQXR0cmlidXRlcyxcbiAgQnV0dG9uLFxuICBHUkNUeXBlLFxuICBJbnB1dFR5cGUsXG4gIExpc3RPYmplY3QsXG4gIE9wZW5lZFBvcHVwLFxufSBmcm9tICcuLi8uLi9zaGFyZWQvaW50ZXJmYWNlcy9hZGQtZ3JjJztcbmltcG9ydCB7IEdyY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvZ3JjLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzcG9uc2liaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvcmVzcG9uc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XG5pbXBvcnQge1xuICBHUkNfVFlQRV9BUlJBWSxcbiAgT1RIRVJfR1JDX0NBUkQsXG4gIE9USEVSX0dSQ19UQUJfSU5ERVgsXG4gIFNNSUxFWV9CVVRUT05TLFxuICBVTkNBVEVHT1JJWkVEX0xJTktfQ0FURUdPUlksXG59IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMvZ3JjT2JqZWN0LmNvbnN0YW50JztcbmltcG9ydCB7IFNVQ0NFU1NfTUVTU0FHRSB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMvbWVzc2FnZS5jb250c3RhbnQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wbGlhbmNlQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2NvbW1vbi13b3JrZmxvdy1zZXJ2aWNlcy9jb21wbGlhbmNlLWNvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvbkNvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9jb21tb24td29ya2Zsb3ctc2VydmljZXMvb3JnYW5pemF0aW9uLWNvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7IElmcmFtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pZnJhbWUuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29tbW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZ3JjLW9iamVjdC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JjLW9iamVjdC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmMtb2JqZWN0LWNvbnRhaW5lci5jb21wb25lbnQubGVzcycsICcuLi8uLi8uLi9mb3Jtcy5sZXNzJ10sXG4gIG91dHB1dHM6IFtcbiAgICAncG9wdWxhdGVPcHRpb24nLFxuICAgICdwaWNrZXJDaGFuZ2VkJyxcbiAgICAnY2xvc2VXb3JrZmxvdycsXG4gICAgJ2Rpc2Nvbm5lY3RSZWZyZXNoJyxcbiAgICAncmVzZXRGb3JtJyxcbiAgICAnaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zJyxcbiAgXSxcbiAgaW5wdXRzOiBbJ2dyY1R5cGUnLCAnTU9ERScsICdJRCddLFxufSlcbmV4cG9ydCBjbGFzcyBHcmNPYmplY3RDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIE1PREU6ICdDUkVBVEUnIHwgJ0VESVQnID0gJ0NSRUFURSc7XG4gIElEOiBzdHJpbmcgPSAnJztcbiAgQUxMX1RFWFQgPSBGSUVMRF9URVhUO1xuICBDRE5fTElOSyA9IExJTktTO1xuICBWQUxJREFUSU9OX01FU1NBR0UgPSBWQUxJREFUSU9OX01FU1NBR0U7XG4gIEdSQ19UWVBFX0FSUkFZID0gR1JDX1RZUEVfQVJSQVk7XG4gIEVESVRPUl9DT05GSUcgPSBHcmNTZXJ2aWNlLkVESVRPUl9DT05GSUc7XG4gIG90aGVyR1JDQ2FyZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoT1RIRVJfR1JDX0NBUkQpKTtcbiAgT0JKRUNUX1RZUEUhOiBHUkNUeXBlW107XG4gIExJU1RfUE9QVVA6IEFycmF5PHN0cmluZz4gPSBbJ1JDJ107XG4gIHNtaWxleU1lc3NhZ2U6IHN0cmluZyA9IFNVQ0NFU1NfTUVTU0FHRS5BRERfR1JDX09CSkVDVDtcbiAgSU5QVVRfVFlQRTogSW5wdXRUeXBlID0ge1xuICAgIG5hbWU6ICdOQU1FJyxcbiAgICBvd25lcjogJ09XTkVSJyxcbiAgICBSQzogJ1JDJyxcbiAgICByaXNrQ2F0ZWdvcnk6ICdSSVNLX0NBVEVHT1JZJyxcbiAgICBvdGhlckdyY09iamVjdHM6ICdPVEhFUl9HUkNfT0JKRUNUUycsXG4gICAgcHJvZ3JhbVJlc3BvbnNpYmlsaXR5OiAnUFJPR1JBTV9SRVNQT05TSUJJTElUWScsXG4gIH07XG4gIE9SSUdJTkFMX0dSQ19BVFRSSUJVVEVTOiBhbnk7IC8vIERvbid0IGNoYW5nZSB0aGUgdmFsdWUgb25jZSBpdCBpcyBhc3NpZ25lZFxuICBkaWFsb2dGaWVsZHM6IEFycmF5PHN0cmluZz4gPSBbXG4gICAgJ1JDJyxcbiAgICAnT1dORVInLFxuICAgICdPVEhFUl9HUkNfT0JKRUNUUycsXG4gICAgJ1JJU0tfQ0FURUdPUlknLFxuICAgICdBVFRSSUJVVEVTJyxcbiAgICAnUFJPR1JBTV9SRVNQT05TSUJJTElUWScsXG4gIF07XG4gIHNjcm9sbFRvQm90dG9tID0gZmFsc2U7XG4gIGdyY1R5cGU6IDAgfCAxIHwgMiB8IDMgPSAwO1xuICBkaXNhYmxlZElkczogQXJyYXk8bnVtYmVyPiA9IFtdO1xuICBvcGVuZWRQb3B1cDogT3BlbmVkUG9wdXBbJ3R5cGUnXSA9ICcnO1xuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBhZGRpdGlvbmFsT3B0aW9uOiBhbnkgPSB7XG4gICAgQVRUUklCVVRFUzogZmFsc2UsXG4gICAgTElOS19QUk9HUkFNOiBmYWxzZSxcbiAgICBMSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUzogZmFsc2UsXG4gICAgT1RIRVJfR1JDX09CSkVDVFM6IGZhbHNlLFxuICB9O1xuICBncmNGb3JtOiBhbnkgPSB7XG4gICAgZ3JjT2JqZWN0VHlwZTogZmFsc2UsXG4gICAgbGlua1Byb2dyYW06IGZhbHNlLFxuICAgIGxpbmtSaXNrOiBmYWxzZSxcbiAgICBvdGhlckdyY09iamVjdHM6IGZhbHNlLFxuICB9O1xuICBncmNQYXlsb2FkITogQWRkR3JjO1xuICBsaXN0T2JqZWN0ITogTGlzdE9iamVjdDtcbiAgc2VsZWN0ZWRBdHRyaWJ1dGVzITogR1JDVHlwZTtcbiAgc2hvd1NtaWxleTogYm9vbGVhbiA9IGZhbHNlO1xuICBhY3Rpb25CdXR0b25zOiBCdXR0b25bXSA9IFNNSUxFWV9CVVRUT05TO1xuICBncmNEYXRhV2l0aFR5cGVzOiBhbnkgPSB7XG4gICAgYXNzZXRzOiBbXSxcbiAgICBwcm9jZXNzZXM6IFtdLFxuICAgIHZlbmRvcnM6IFtdLFxuICAgIGludmVudG9yeTogW10sXG4gIH07XG4gIEdSQ1NlbGVjdGVkVGFiOiBudW1iZXIgPSAwO1xuICBvdGhlckdSQ1RhYkluZGV4ID0gT1RIRVJfR1JDX1RBQl9JTkRFWDtcbiAgaXNGb3JtU3VibWl0dGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGdyY05hbWVWYWxpZGF0aW9uRXJyb3I6IHN0cmluZyA9ICcnO1xuICBpc0R1cGxpY2F0ZU5hbWU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGV0YWlsc0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZENhdGVnb3JpZXM6IGFueVtdID0gW107XG4gIHNlbGVjdGVkUmlza3M6IGFueVtdID0gW107XG4gIGFkZGVkR1JDOiBhbnk7XG4gIG90aGVyR1JDU2VhcmNoOiBzdHJpbmcgPSAnJztcbiAgZ3JjVGFiTG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkUHJvZ3JhbTogYW55W10gPSBbXTtcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eTogYW55W10gPSBbXTtcbiAgc3VibWl0TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIGxpbmtlZFJlc3BvbnNpYmlsaXRpZXM6IGFueSA9IHt9O1xuXG4gIHBvcHVsYXRlT3B0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcGlja2VyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGNsb3NlV29ya2Zsb3c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBkaXNjb25uZWN0UmVmcmVzaDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHJlc2V0Rm9ybTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9uczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgb3RoZXJHUkNTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIGhpZGVNb3JlT3B0aW9uOiBhbnkgPSBbXTtcbiAgcmVzcG9uc2liaWxpdHlMaXN0OiBhbnkgPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGdyY1NlcnZpY2U6IEdyY1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBSZXNwb25zaWJpbGl0eVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1aUtpdFNlcnZpY2U6IFVpS2l0U2VydmljZSxcbiAgICBwcml2YXRlIGNvbXBsaWFuY2VDb21tb25TZXJ2aWNlOiBDb21wbGlhbmNlQ29tbW9uU2VydmljZSxcbiAgICBwcml2YXRlIG9yZ2FuaXphdGlvbkNvbW1vblNlcnZpY2U6IE9yZ2FuaXphdGlvbkNvbW1vblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpZnJhbWVTZXJ2aWNlOiBJZnJhbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgQ29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZVxuICApIHt9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRHUkNGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdyY1BheWxvYWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjU2VydmljZS5HUkNfUEFZTE9BRCkpO1xuICAgIHRoaXMuZ3JjUGF5bG9hZC50eXBlID0gdGhpcy5ncmNUeXBlID8/IDA7XG4gICAgdGhpcy5saXN0T2JqZWN0ID0gdGhpcy5ncmNTZXJ2aWNlLkxJU1RfT0JKRUNUO1xuICAgIHRoaXMuX2luaXRpYXRlQVBJKCk7XG4gICAgdGhpcy5nZXRTdWJzY3JpcHRpb25EZXRhaWxzKCk7XG4gIH1cblxuICBnZXRTdWJzY3JpcHRpb25EZXRhaWxzKCkge1xuICAgIHRoaXMub3JnYW5pemF0aW9uQ29tbW9uU2VydmljZT8uZ2V0U3Vic2NyaXB0aW9uRGV0YWlsc0luZm8oKT8uc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICBpZiAoIXJlc1swXT8ucmlza19mbGFnKSB7XG4gICAgICAgICAgdGhpcy5oaWRlTW9yZU9wdGlvbi5wdXNoKCdMSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUycpO1xuICAgICAgICAgIHRoaXMuaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zLmVtaXQodGhpcy5oaWRlTW9yZU9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogRXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKSB7XG4gICAgY29uc3QgYWN0aXZhdGVkT3B0aW9ucyA9IFtdO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuYWRkaXRpb25hbE9wdGlvbikpIHtcbiAgICAgIGlmICh0aGlzLmFkZGl0aW9uYWxPcHRpb25ba2V5XSA9PT0gdHJ1ZSkge1xuICAgICAgICBhY3RpdmF0ZWRPcHRpb25zLnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uLmVtaXQoYWN0aXZhdGVkT3B0aW9ucyk7XG4gIH1cblxuICAvL1RPRE86IGltcGxlbWVudCB0aGlzXG4gIGFkZE1vcmVJbmZvKGV2ZW50OiBhbnkpIHtcbiAgICBzd2l0Y2ggKGV2ZW50Py5jb2RlKSB7XG4gICAgICBjYXNlICdBVFRSSUJVVEVTJzpcbiAgICAgICAgdGhpcy5ncmNGb3JtLmdyY09iamVjdFR5cGUgPSBldmVudD8uY2hlY2tlZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdMSU5LX1BST0dSQU0nOlxuICAgICAgICB0aGlzLmdyY0Zvcm0ubGlua1Byb2dyYW0gPSBldmVudD8uY2hlY2tlZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdMSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUyc6XG4gICAgICAgIHRoaXMuZ3JjRm9ybS5saW5rUmlzayA9IGV2ZW50Py5jaGVja2VkO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ09USEVSX0dSQ19PQkpFQ1RTJzpcbiAgICAgICAgdGhpcy5ncmNGb3JtLm90aGVyR3JjT2JqZWN0cyA9IGV2ZW50Py5jaGVja2VkO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSA9IHRydWU7XG4gIH1cblxuICAvL1RPRE86IGltcGxlbWVudCB0aGlzXG4gIG9uVGV4dENoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5ncmNQYXlsb2FkLm5hbWUgPSBldmVudC50cmltKCk7XG4gICAgdGhpcy5vcGVuZWRQb3B1cCA9ICcnO1xuICAgIHRoaXMuZ3JjTmFtZVZhbGlkYXRpb25FcnJvciA9ICcnO1xuICAgIHRoaXMuaXNEdXBsaWNhdGVOYW1lID0gZmFsc2U7XG4gIH1cblxuICAvL1RPRE86IGltcGxlbWVudCB0aGlzXG4gIG9uUG9wdXBPcGVuKHR5cGU6IE9wZW5lZFBvcHVwWyd0eXBlJ10pIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ09XTkVSJzpcbiAgICAgIGNhc2UgJ1JDJzpcbiAgICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9IHR5cGU7XG4gICAgICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ09USEVSX0dSQ19PQkpFQ1RTJzpcbiAgICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9IHR5cGU7XG4gICAgICAgIHRoaXMuZ2V0T3RoZXJHUkNPYmplY3RzKHsgcmNfaWRzOiAnJyB9KTtcbiAgICAgICAgdGhpcy5nZXRPdGhlckdSQ1RhYkNvdW50KHsgcmNfaWRzOiAnJyB9KTtcbiAgICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUklTS19DQVRFR09SWSc6XG4gICAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSB0eXBlO1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdCh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdQUk9HUkFNX1JFU1BPTlNJQklMSVRZJzpcbiAgICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9IHR5cGU7XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UucHJldmlld1BhbmVsLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgfVxuICB9XG5cbiAgb25TYXZlU2VsZWN0ZWRMaXN0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmxpc3RPYmplY3QgPSBldmVudDtcbiAgICBpZiAodGhpcy5vcGVuZWRQb3B1cCA9PT0gJ09USEVSX0dSQ19PQkpFQ1RTJykge1xuICAgICAgdGhpcy5zZXRPdGhlckdSQ1R5cGVzRm9ybWF0ZSgpO1xuICAgIH1cbiAgICB0aGlzLnNldExpc3RQYXlsb2FkKHRoaXMub3BlbmVkUG9wdXApO1xuICAgIHRoaXMub3BlbmVkUG9wdXAgPSAnJztcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5hdXRoU2VydmljZS5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSk7XG4gIH1cblxuICBnZXRBdHRyaWJ1dGVTZWxlY3Rpb24oZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9ICcnO1xuICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSAnJztcbiAgICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UucHJldmlld1BhbmVsLm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHNldExpc3RQYXlsb2FkKHR5cGU6IHN0cmluZykge1xuICAgIGlmICh0eXBlID09PSAnT1dORVInKSB7XG4gICAgICB0aGlzLmdyY1BheWxvYWQub3duZXJzID0gdGhpcy5saXN0T2JqZWN0Lk9XTkVSLnNlbGVjdGVkRGF0YS5tYXAoXG4gICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0ubWVtYmVyX2lkLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ1JDJykge1xuICAgICAgbGV0IHByZXZpb3VzUkNJZHMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjUGF5bG9hZC5yY19pZHMpKTtcbiAgICAgIHRoaXMuZ3JjUGF5bG9hZC5yY19pZHMgPSB0aGlzLmxpc3RPYmplY3QuUkMuc2VsZWN0ZWREYXRhLm1hcChcbiAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbT8uX2lkXG4gICAgICApO1xuICAgICAgaWYgKFxuICAgICAgICAhcHJldmlvdXNSQ0lkcy5ldmVyeSgoaWQ6IGFueSkgPT4gdGhpcy5ncmNQYXlsb2FkLnJjX2lkcy5pbmNsdWRlcyhpZCkpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5yZXNldERhdGFPblJDQ2hhbmdlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlID09PSAnT1RIRVJfR1JDX09CSkVDVFMnKSB7XG4gICAgICB0aGlzLmdyY1BheWxvYWQubGlua2VkX0dSQ19pZHMgPVxuICAgICAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhLm1hcChcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLl9pZFxuICAgICAgICApO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gJ1JJU0tfQ0FURUdPUlknKSB7XG4gICAgICB0aGlzLmdyY1BheWxvYWQucmlza19jYXRlZ29yeV9pZHMgPSB0aGlzLmdldFJpc2tDYXRlZ29yeVBheWxvYWQoXG4gICAgICAgIHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gJ1BST0dSQU1fUkVTUE9OU0lCSUxJVFknKSB7XG4gICAgICB0aGlzLmdyY1BheWxvYWQucHJvZ3JhbV9jYXRlZ29yeV9pZHMgPVxuICAgICAgICB0aGlzLmdldFByb2dyYW1SZXNwb25zaWJpbGl0eVBheWxvYWQoXG4gICAgICAgICAgdGhpcy5saXN0T2JqZWN0Py5QUk9HUkFNX1JFU1BPTlNJQklMSVRZPy5zZWxlY3RlZERhdGFcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBvbkNsaWNrT3V0c2lkZSgpIHtcbiAgICAvL3RoaXMub3BlbmVkUG9wdXAgPSAnJztcbiAgfVxuXG4gIG9uRWRpdChldmVudDogYW55LCBzdWJUeXBlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm9wZW5lZFBvcHVwID0gZXZlbnQ7XG4gICAgaWYgKGV2ZW50ID09PSAnT1RIRVJfR1JDX09CSkVDVFMnKSB7XG4gICAgICB0aGlzLkdSQ1NlbGVjdGVkVGFiID0gdGhpcy5vdGhlckdSQ1RhYkluZGV4W3N1YlR5cGVdID8/IDA7XG4gICAgICB0aGlzLmdldE90aGVyR1JDT2JqZWN0cyh7IHR5cGU6IHRoaXMuR1JDU2VsZWN0ZWRUYWIsIHJjX2lkczogJycgfSk7XG4gICAgICB0aGlzLmdldE90aGVyR1JDVGFiQ291bnQoeyByY19pZHM6ICcnIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5MSVNUX1BPUFVQLmluY2x1ZGVzKGV2ZW50KSkge1xuICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XG4gICAgICAvLyB0aGlzLmF1dGhTZXJ2aWNlLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpO1xuICAgIH1cbiAgICBpZiAoZXZlbnQgPT09ICdSSVNLX0NBVEVHT1JZJyB8fCBldmVudCA9PT0gJ1BST0dSQU1fUkVTUE9OU0lCSUxJVFknKSB7XG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIG9uUmVtb3ZlRGF0YShcbiAgICBldmVudDogYW55LFxuICAgIHR5cGU6XG4gICAgICB8ICdSQydcbiAgICAgIHwgJ09XTkVSJ1xuICAgICAgfCAnT1RIRVJfR1JDX09CSkVDVFMnXG4gICAgICB8ICdSSVNLX0NBVEVHT1JZJ1xuICAgICAgfCAnUFJPR1JBTV9SRVNQT05TSUJJTElUWSdcbiAgKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdSQyc6XG4gICAgICAgIHRoaXMubGlzdE9iamVjdFt0eXBlXS5zZWxlY3RlZERhdGEuc3BsaWNlKGV2ZW50LmluZGV4LCAxKTtcbiAgICAgICAgdGhpcy5yZXNldERhdGFPblJDQ2hhbmdlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnT1dORVInOlxuICAgICAgICB0aGlzLmxpc3RPYmplY3RbdHlwZV0uc2VsZWN0ZWREYXRhLnNwbGljZShldmVudC5pbmRleCwgMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnT1RIRVJfR1JDX09CSkVDVFMnOlxuICAgICAgICB0aGlzLnJlbW92ZU90aGVyR1JDT2JqZWN0cyhldmVudD8uZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUklTS19DQVRFR09SWSc6XG4gICAgICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWRSaXNrKGV2ZW50LmRhdGE/LkNhdGVnb3J5SWRzWzBdLCBldmVudD8uZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUFJPR1JBTV9SRVNQT05TSUJJTElUWSc6XG4gICAgICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWRSZXNwb25zaWJpbGl0eShldmVudD8uZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLnNldExpc3RQYXlsb2FkKHR5cGUpO1xuICB9XG5cbiAgY2hhbmdlQXR0cmlidXRlc1R5cGUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZ3JjVHlwZSA9IGV2ZW50ID8/IDA7XG4gICAgdGhpcy5ncmNQYXlsb2FkLnR5cGUgPSBldmVudCA/PyAwO1xuICAgIHRoaXMuc2V0RGVmYXVsdEdSQ09iamVjdFR5cGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYXRlQVBJKCkge1xuICAgIGlmICh0aGlzLk1PREUgPT09ICdFRElUJykge1xuICAgICAgdGhpcy5nZXRHUkNPYmplY3REZXRhaWxzKHRoaXMuSUQpO1xuICAgICAgdGhpcy5zbWlsZXlNZXNzYWdlID0gU1VDQ0VTU19NRVNTQUdFLlVQREFURV9HUkNfT0JKRUNUO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRldGFpbHNMb2FkZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2dldEdSQ09iamVjdFR5cGUoKTtcbiAgICAgIHRoaXMuX2dldE93bmVyTGlzdCgpO1xuICAgICAgdGhpcy5fZ2V0UkNMaXN0KCk7XG4gICAgICB0aGlzLmdldE90aGVyR1JDT2JqZWN0cyh7IHJjX2lkczogJycgfSk7XG4gICAgICAvLyB0aGlzLmdldE90aGVyR1JDVGFiQ291bnQoKTtcbiAgICAgIHRoaXMuZ2V0QWxsUmVzcG9uc2liaWxpdGllcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldE93bmVyTGlzdCgpIHtcbiAgICB0aGlzLmxpc3RPYmplY3QuT1dORVIuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0R1JDT3duZXJMaXN0KCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh1c2VyTGlzdDogYW55KSA9PiB0aGlzLm1hcFVzZXJMaXN0KHVzZXJMaXN0KSxcbiAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge30sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIGBtYXBVc2VyTGlzdGAgbWFwcyB0aGUgdXNlciBsaXN0IGRhdGEgYW5kIHBlcmZvcm1zIHNvbWUgYWRkaXRpb25hbCBvcGVyYXRpb25zIG9uIGVhY2hcbiAgICogdXNlciBvYmplY3QuXG4gICAqIEBwYXJhbSB7YW55fSB1c2VyTGlzdCAtIFRoZSBgdXNlckxpc3RgIHBhcmFtZXRlciBpcyBhbiBvYmplY3QgdGhhdCBjb250YWlucyBhIGBkYXRhYCBwcm9wZXJ0eS4gVGhlXG4gICAqIGBkYXRhYCBwcm9wZXJ0eSBpcyBhbiBhcnJheSBvZiB1c2VyIG9iamVjdHMuXG4gICAqL1xuICBwcml2YXRlIG1hcFVzZXJMaXN0KHVzZXJMaXN0OiBhbnkpIHtcbiAgICB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ11bJ2RhdGEnXSA9IHt9O1xuICAgIHRoaXMubGlzdE9iamVjdFsnT1dORVInXS5zZWxlY3RlZERhdGEgPSBbXTtcbiAgICB0aGlzLmRpc2FibGVkSWRzID0gW107XG4gICAgLy8gTWFwIHdpbGwgZ2V0IHJlbW92ZSBvbmNlIEFQSSBjaGFuZ2VcbiAgICB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ11bJ2RhdGEnXVsnYXNzaWduZWVzTGlzdCddID0gdXNlckxpc3Q/LmRhdGEubWFwKFxuICAgICAgKHVzZXI6IGFueSkgPT4ge1xuICAgICAgICB1c2VyLml0ZW1fbmFtZSA9IHVzZXIubWVtYmVyX25hbWU7XG4gICAgICAgIHVzZXIuZW1wbG95ZWVfbmFtZSA9IHVzZXIubWVtYmVyX25hbWU7XG4gICAgICAgIHVzZXIubXlfbWVtYmVyX2lkID0gdXNlci5tZW1iZXJfaWQ7XG4gICAgICAgIHVzZXIuaXRlbV9pZCA9IHVzZXIubWVtYmVyX2lkO1xuICAgICAgICBpZiAoWydBRE1JTicsICdLRVlfQURNSU4nXS5pbmNsdWRlcyh1c2VyLnVzZXJfcm9sZSkpIHtcbiAgICAgICAgICB0aGlzLmRpc2FibGVkSWRzLnB1c2godXNlci5tZW1iZXJfaWQpO1xuICAgICAgICAgIHRoaXMubGlzdE9iamVjdFsnT1dORVInXS5zZWxlY3RlZERhdGEucHVzaCh1c2VyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXNlcjtcbiAgICAgIH1cbiAgICApO1xuICAgIGlmICh0aGlzLk1PREUgPT09ICdFRElUJykge1xuICAgICAgdGhpcy5saXN0T2JqZWN0Lk9XTkVSLnNlbGVjdGVkRGF0YSA9IHRoaXMubGlzdE9iamVjdFsnT1dORVInXVsnZGF0YSddW1xuICAgICAgICAnYXNzaWduZWVzTGlzdCdcbiAgICAgIF0uZmlsdGVyKChpdGVtOiBhbnkpID0+IHRoaXMuZ3JjUGF5bG9hZC5vd25lcnMuaW5jbHVkZXMoaXRlbT8ubWVtYmVyX2lkKSk7XG4gICAgICB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ10uZGlzYWJsZWRJZHMgPSBbLi4ubmV3IFNldCh0aGlzLmRpc2FibGVkSWRzKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVmYXVsdFNlbGVjdGVkVXNlcigpO1xuICAgIH1cbiAgICB0aGlzLmxpc3RPYmplY3QuT1dORVIuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5jaGVja0lzRGF0YUxvYWRlZCgpO1xuICB9XG5cbiAgZ2V0QWxsUmVzcG9uc2liaWxpdGllc0xpc3QobGlua2VkUmVzcG9uc2liaWxpdGllcz86IGFueSkge1xuICAgIHRoaXMuZ3JjU2VydmljZS5nZXRBbGxSZXNwb25zaWJpbGl0aWVzKDAsICcnKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TGlzdCA9IGRhdGE/LmRhdGE/LnJlc3BvbnNpYmlsaXRpZXM7XG4gICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5MSU5LX1BST0dSQU0gPSB0cnVlO1xuICAgICAgICB0aGlzLmdyY0Zvcm0ubGlua1Byb2dyYW0gPSB0cnVlO1xuICAgICAgICBjb25zdCByZXNwb25zaWJpbGl0eURhdGEgPSB0aGlzLnJlc3BvbnNpYmlsaXR5TGlzdC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gbGlua2VkUmVzcG9uc2liaWxpdGllcz8uaW5jbHVkZXMoaXRlbT8ucmlkKSk7XG4gICAgICAgIHRoaXMubGlzdE9iamVjdC5QUk9HUkFNX1JFU1BPTlNJQklMSVRZLnNlbGVjdGVkRGF0YSA9cmVzcG9uc2liaWxpdHlEYXRhO1xuICAgICAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcbiAgICAgICAgW107XG4gICAgICAgIFxuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIGBkZWZhdWx0U2VsZWN0ZWRVc2VyKClgIHNldHMgdGhlIGRlZmF1bHQgc2VsZWN0ZWQgdXNlciBiYXNlZCBvbiB0aGUgY3VycmVudCB1c2VyJ3Mgcm9sZVxuICAgKiBhbmQgYXNzaWducyBpdCB0byB0aGUgYE9XTkVSYCBsaXN0IG9iamVjdC5cbiAgICovXG4gIHByaXZhdGUgZGVmYXVsdFNlbGVjdGVkVXNlcigpIHtcbiAgICBpZiAoIXRoaXMuYXV0aFNlcnZpY2UuaXNBZG1pbigpICYmICF0aGlzLmF1dGhTZXJ2aWNlLmlzS2V5QWRtaW4oKSkge1xuICAgICAgY29uc3QgVVNFUiA9IHRoaXMubGlzdE9iamVjdFsnT1dORVInXVsnZGF0YSddWydhc3NpZ25lZXNMaXN0J10uZmluZChcbiAgICAgICAgKHVzZXI6IGFueSkgPT4gdXNlci5tZW1iZXJfaWQgPT09IHRoaXMuYXV0aFNlcnZpY2UuZ2V0TWVtYmVySWQoKVxuICAgICAgKTtcbiAgICAgIHRoaXMubGlzdE9iamVjdFsnT1dORVInXS5zZWxlY3RlZERhdGEucHVzaChVU0VSKTtcbiAgICB9XG4gICAgdGhpcy5saXN0T2JqZWN0WydPV05FUiddWydkaXNhYmxlZElkcyddID0gWy4uLnRoaXMuZGlzYWJsZWRJZHNdO1xuICAgIHRoaXMuZ3JjUGF5bG9hZC5vd25lcnMgPSB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ10uc2VsZWN0ZWREYXRhLm1hcChcbiAgICAgICh1c2VyOiBhbnkpID0+IHVzZXIubWVtYmVyX2lkXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFJDTGlzdCgpIHtcbiAgICB0aGlzLmxpc3RPYmplY3QuUkMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmNvbXBsaWFuY2VDb21tb25TZXJ2aWNlPy5nZXRSY0xpc3RJbmZvKCk/LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubGlzdE9iamVjdFsnUkMnXVsnZGF0YSddID0gZGF0YTtcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0LlJDLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5NT0RFID09PSAnRURJVCcpIHtcbiAgICAgICAgICB0aGlzLmxpc3RPYmplY3QuUkMuc2VsZWN0ZWREYXRhID0gZGF0YT8uZmlsdGVyKChpdGVtOiBhbnkpID0+XG4gICAgICAgICAgICB0aGlzLmdyY1BheWxvYWQ/LnJjX2lkcz8uaW5jbHVkZXMoaXRlbT8uX2lkKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja0lzRGF0YUxvYWRlZCgpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEdSQ09iamVjdFR5cGUoKSB7XG4gICAgdGhpcy5hcGlTZXJ2aWNlLmdldE9iamVjdFR5cGUoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGE6IEdSQ1R5cGVbXSkgPT4ge1xuICAgICAgICAvLyB0aGlzLnNldExpbmtSaXNrVGFiKGRhdGEpO1xuICAgICAgICBjb25zdCBPQkpFQ1RfTEFCRUw6IGFueSA9IHtcbiAgICAgICAgICBBU1NFVFM6ICdBc3NldCcsXG4gICAgICAgICAgUFJPQ0VTU0VTOiAnUHJvY2VzcycsXG4gICAgICAgICAgVkVORE9SUzogJ1ZlbmRvcicsXG4gICAgICAgICAgSU5WRU5UT1JZOiAnSW52ZW50b3J5JyxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5PQkpFQ1RfVFlQRSA9IGRhdGEubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICBpdGVtLnZhbHVlID0gaW5kZXg7XG4gICAgICAgICAgaXRlbS5sYWJlbCA9IE9CSkVDVF9MQUJFTFtpdGVtPy5sYWJlbD8udG9VcHBlckNhc2UoKV0gPz8gaXRlbT8ubGFiZWw7XG4gICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuT1JJR0lOQUxfR1JDX0FUVFJJQlVURVMgPSBKU09OLnBhcnNlKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuT0JKRUNUX1RZUEUpXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMuTU9ERSA9PT0gJ0VESVQnKSB7XG4gICAgICAgICAgdGhpcy5PQkpFQ1RfVFlQRVt0aGlzLmdyY1R5cGVdLmF0dHJpYnV0ZXMgPVxuICAgICAgICAgICAgdGhpcy5ncmNQYXlsb2FkLmF0dHJpYnV0ZXM7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmdyY1NlcnZpY2UuY2hlY2tBdHRyaWJ1dGVzU2VsZWN0ZWQoXG4gICAgICAgICAgICAgIHRoaXMuT0JKRUNUX1RZUEVbdGhpcy5ncmNUeXBlXS5hdHRyaWJ1dGVzXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmdyY0Zvcm0uZ3JjT2JqZWN0VHlwZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uQVRUUklCVVRFUyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXREZWZhdWx0R1JDT2JqZWN0VHlwZSgpO1xuICAgICAgICB0aGlzLmNoZWNrSXNEYXRhTG9hZGVkKCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7fSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmYXVsdEdSQ09iamVjdFR5cGUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZXMgPVxuICAgICAgdGhpcy5PQkpFQ1RfVFlQRS5maW5kKChlbGU6IGFueSkgPT4gZWxlLnZhbHVlID09PSB0aGlzLmdyY1R5cGUpID8/XG4gICAgICB0aGlzLk9CSkVDVF9UWVBFWzBdO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0lzRGF0YUxvYWRlZCgpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9XG4gICAgICB0aGlzLmxpc3RPYmplY3QuT1dORVIuaXNMb2FkaW5nIHx8XG4gICAgICB0aGlzLmxpc3RPYmplY3QuUkMuaXNMb2FkaW5nIHx8XG4gICAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuaXNMb2FkaW5nIHx8XG4gICAgICAodGhpcy5NT0RFID09PSAnRURJVCcgJiYgdGhpcy5kZXRhaWxzTG9hZGVyKTtcbiAgfVxuXG4gIGdldE90aGVyR1JDT2JqZWN0cyhldmVudD86IGFueSkge1xuICAgIGlmICh0aGlzLm90aGVyR1JDU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLm90aGVyR1JDU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmIChldmVudD8uc2VhcmNoU3RyaW5nICYmIHRoaXMub3RoZXJHUkNTZWFyY2ggIT09IGV2ZW50Py5zZWFyY2hTdHJpbmcpIHtcbiAgICAgIHRoaXMuZ2V0T3RoZXJHUkNUYWJDb3VudChldmVudCk7XG4gICAgfVxuICAgIHRoaXMub3RoZXJHUkNTZWFyY2ggPSBldmVudD8uc2VhcmNoU3RyaW5nID8/ICcnO1xuICAgIHRoaXMubGlzdE9iamVjdC5PVEhFUl9HUkNfT0JKRUNUUy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIC8vIGV2ZW50WydyY19pZHMnXSA9IHRoaXMubGlzdE9iamVjdD8uUkM/LnNlbGVjdGVkRGF0YVxuICAgIC8vICAgPy5tYXAoKHJjOiBhbnkpID0+IHJjPy5faWQpXG4gICAgLy8gICAuam9pbignLCcpO1xuICAgIHRoaXMub3RoZXJHUkNTdWJzY3JpcHRpb24gPSB0aGlzLmdyY1NlcnZpY2VcbiAgICAgIC5nZXRHUkNMaXN0KGV2ZW50KVxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubGlzdE9iamVjdC5PVEhFUl9HUkNfT0JKRUNUUy5kYXRhID0gZGF0YTtcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5NT0RFID09PSAnRURJVCcpIHtcbiAgICAgICAgICAvLyB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhID0gZGF0YS5maWx0ZXIoXG4gICAgICAgICAgLy8gICAoaXRlbTogYW55KSA9PiB0aGlzLmdyY1BheWxvYWQubGlua2VkX0dSQ19pZHMuaW5jbHVkZXMoaXRlbT8uX2lkKVxuICAgICAgICAgIC8vICk7XG4gICAgICAgICAgaWYgKHRoaXMuZ3JjUGF5bG9hZC5saW5rZWRfR1JDX2lkcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmdyY0Zvcm0ub3RoZXJHcmNPYmplY3RzID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5PVEhFUl9HUkNfT0JKRUNUUyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja0lzRGF0YUxvYWRlZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBnZXRPdGhlckdSQ1RhYkNvdW50KGV2ZW50PzogYW55KSB7XG4gICAgdGhpcy5ncmNUYWJMb2FkZXIgPSB0cnVlO1xuICAgIC8vIGV2ZW50WydyY19pZHMnXSA9IHRoaXMubGlzdE9iamVjdD8uUkM/LnNlbGVjdGVkRGF0YVxuICAgIC8vICAgPy5tYXAoKHJjOiBhbnkpID0+IHJjPy5faWQpXG4gICAgLy8gICAuam9pbignLCcpO1xuICAgIHRoaXMuZ3JjU2VydmljZS5nZXRHUkNUYWJzQ291bnQoZXZlbnQpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XG4gICAgICB0aGlzLmdyY1RhYkxvYWRlciA9IGZhbHNlO1xuICAgICAgdGhpcy5vdGhlckdSQ0NhcmRbMF0uY291bnQgPSBkYXRhPy5hc3NldHNfdHlwZV9jb3VudDtcbiAgICAgIHRoaXMub3RoZXJHUkNDYXJkWzFdLmNvdW50ID0gZGF0YT8ucHJvY2Vzc2VzX3R5cGVfY291bnQ7XG4gICAgICB0aGlzLm90aGVyR1JDQ2FyZFsyXS5jb3VudCA9IGRhdGE/LnZlbmRvcnNfdHlwZV9jb3VudDtcbiAgICAgIHRoaXMub3RoZXJHUkNDYXJkWzNdLmNvdW50ID0gZGF0YT8uaW52ZW50b3J5X3R5cGVfY291bnQ7XG4gICAgfSk7XG4gIH1cblxuICBnZXRPdGhlckdSQ1RhYkluZGV4KGV2ZW50PzogYW55LCBkYXRhPzogYW55KSB7fVxuXG4gIC8vUG9wdWxhdGUvRWRpdCBHUkMgT2JqZWN0XG5cbiAgZ2V0R1JDT2JqZWN0RGV0YWlscyhncmNJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hcGlTZXJ2aWNlLmdldEdSQ09iamVjdERldGFpbHMoZ3JjSWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSAnJztcbiAgICAgICAgdGhpcy5wb3B1bGF0ZVBheWxvYWQoZGF0YSk7XG4gICAgICAgIHRoaXMuY3JlYXRlR1JDT2JqZWN0KGRhdGE/LmxpbmtlZEdyY0RldGFpbHMpO1xuICAgICAgICB0aGlzLmRldGFpbHNMb2FkZXIgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLl9nZXRSQ0xpc3QoKTtcbiAgICAgICAgdGhpcy5fZ2V0T3duZXJMaXN0KCk7XG4gICAgICAgIHRoaXMuX2dldEdSQ09iamVjdFR5cGUoKTtcbiAgICAgICAgY29uc3QgbGlua2VkUmVzcG9uc2liaWxpdGllcyA9IGRhdGE/LmxpbmtlZF9yZXNwb25zaWJpbGl0aWVzPy5hZGRlZDtcbiAgICAgICAgaWYobGlua2VkUmVzcG9uc2liaWxpdGllcz8ubGVuZ3RoKXtcbiAgICAgICAgICB0aGlzLmdldEFsbFJlc3BvbnNpYmlsaXRpZXNMaXN0KGxpbmtlZFJlc3BvbnNpYmlsaXRpZXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ2V0T3RoZXJHUkNPYmplY3RzKHsgcmNfaWRzOiAnJyB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3InLCBlcnJvcik7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVHUkNPYmplY3QoZGF0YTogYW55KSB7XG4gICAgaWYgKGRhdGE/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5ncmNGb3JtLm90aGVyR3JjT2JqZWN0cyA9IHRydWU7XG4gICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uT1RIRVJfR1JDX09CSkVDVFMgPSB0cnVlO1xuICAgICAgbGV0IEdSQ09iamVjdDogYW55ID0ge1xuICAgICAgICBhc3NldHM6IFtdLFxuICAgICAgICBwcm9jZXNzZXM6IFtdLFxuICAgICAgICB2ZW5kb3JzOiBbXSxcbiAgICAgICAgaW52ZW50b3J5OiBbXSxcbiAgICAgIH07XG4gICAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhID0gWy4uLm5ldyBTZXQoZGF0YSldO1xuICAgICAgY29uc3QgR1JDX1RZUEUgPSBHUkNfVFlQRV9BUlJBWTtcbiAgICAgIGRhdGEuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgIEdSQ09iamVjdFtHUkNfVFlQRVtpdGVtPy50eXBlID8/IDFdXS5wdXNoKGl0ZW0pO1xuICAgICAgICB0aGlzLm90aGVyR1JDQ2FyZFtpdGVtPy50eXBlXS5zZWxlY3RlZENvdW50ICs9IDE7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5ncmNEYXRhV2l0aFR5cGVzID0gR1JDT2JqZWN0O1xuICAgICAgdGhpcy51cGRhdGVPdGhlckdSQ09iamVjdHNQYXlsb2FkKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgcG9wdWxhdGVQYXlsb2FkKGRhdGE6IGFueSkge1xuXG4gICAgdGhpcy5ncmNQYXlsb2FkLm5hbWUgPSBkYXRhPy5uYW1lO1xuICAgIHRoaXMuZ3JjUGF5bG9hZC50eXBlID0gZGF0YT8udHlwZTtcbiAgICB0aGlzLmdyY1BheWxvYWQub3duZXJzID0gZGF0YT8ub3duZXJzO1xuICAgIHRoaXMuZ3JjUGF5bG9hZC5yY19pZHMgPSBkYXRhPy5yY19pZHM7XG4gICAgdGhpcy5ncmNQYXlsb2FkLmxpbmtlZF9HUkNfaWRzID0gZGF0YT8ubGlua2VkX0dSQ19pZHM7XG4gICAgdGhpcy5ncmNQYXlsb2FkLnJpc2tfY2F0ZWdvcnlfaWRzID1cbiAgICAgIHRoaXMucG9wdWxhdGVMaW5rUmlzayhkYXRhPy5yaXNrX2NhdGVnb3J5X2lkcykgPz8gW107XG4gICAgLy8gdGhpcy5ncmNQYXlsb2FkLnByb2dyYW1fY2F0ZWdvcnlfaWRzID1cbiAgICAvLyAgIHRoaXMucG9wdWxhdGVMaW5rUmVzcG9uc2liaWxpdHkoZGF0YT8ubGlua2VkX3Jlc3BvbnNpYmlsaXRpZXNfZGV0YWlscykgPz9cbiAgICAvLyAgIFtdO1xuICAgIHRoaXMuZ3JjUGF5bG9hZC5hdHRyaWJ1dGVzID0gZGF0YT8uYXR0cmlidXRlcztcbiAgICB0aGlzLmdyY1BheWxvYWQuc3RhdGUgPSBkYXRhPy5zdGF0ZTtcbiAgICB0aGlzLmdyY1BheWxvYWQuZGVzY3JpcHRpb24gPSBkYXRhPy5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLmdyY1BheWxvYWQuZnJlcXVlbmN5ID0gZGF0YT8uZnJlcXVlbmN5O1xuICAgIHRoaXMuZ3JjUGF5bG9hZC5wYXJlbnRfZ3JjX2lkcyA9IGRhdGE/LnBhcmVudF9ncmNfaWRzO1xuICAgIHRoaXMuZ3JjUGF5bG9hZC5lbWFpbF9ub3RpZmljYXRpb25fbWVtYmVyX2lkcyA9XG4gICAgICBkYXRhPy5lbWFpbF9ub3RpZmljYXRpb25fbWVtYmVyX2lkcztcbiAgfVxuXG4gIHB1YmxpYyBzYXZlR1JDT2JqZWN0KCkge1xuICAgIHRoaXMuaXNGb3JtU3VibWl0dGVkID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5ncmNGb3JtLmdyY09iamVjdFR5cGUpIHtcbiAgICAgIHRoaXMuZ3JjUGF5bG9hZC5hdHRyaWJ1dGVzID0gdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZXM/LmF0dHJpYnV0ZXM7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMuZ3JjU2VydmljZS5jaGVja1ZhbGlkYXRpb24oXG4gICAgICAgIHRoaXMuZ3JjUGF5bG9hZCxcbiAgICAgICAgdGhpcy5ncmNGb3JtPy5ncmNPYmplY3RUeXBlXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IHRydWU7XG4gICAgICB0aGlzLnN1Ym1pdExvYWRlciA9IHRydWU7XG4gICAgICBpZiAodGhpcy5NT0RFID09PSAnRURJVCcpIHtcbiAgICAgICAgdGhpcy51cGRhdGVHUkNPYmplY3QoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IFBBWUxPQUQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjUGF5bG9hZCkpO1xuICAgICAgUEFZTE9BRC5vd25lcnMgPSB0aGlzLmdldE93bmVyc0V4Y2VwdERlZmF1bHQoUEFZTE9BRC5vd25lcnMpO1xuICAgICAgXG5cbiAgICAgIC8vIFRyYW5zZm9ybSByZXNwb25zaWJpbGl0aWVzIGRhdGFcbiAgICAgIFBBWUxPQUQubGlua2VkX3Jlc3BvbnNpYmlsaXRpZXMgPVxuICAgICAgICB0aGlzLkNvbW1vblNlcnZpY2UudHJhbnNmb3JtUmVzcG9uc2liaWxpdGllc0RhdGEoXG4gICAgICAgICAgdGhpcy5saXN0T2JqZWN0Py5QUk9HUkFNX1JFU1BPTlNJQklMSVRZPy5zZWxlY3RlZERhdGE/Lm1hcCgocmVzcCkgPT4gcmVzcD8ucmlkKSxcbiAgICAgICAgICB0aGlzLmxpbmtlZFJlc3BvbnNpYmlsaXRpZXM/LnJlc3BvbnNpYmlsaXRpZXM/LmxpbmtlZCB8fCBbXVxuICAgICAgICApO1xuXG4gICAgICAgIFBBWUxPQUQucHJvZ3JhbV9jYXRlZ29yeV9pZHMgPSBbXTtcblxuICAgICAgdGhpcy5hcGlTZXJ2aWNlLmFkZEdSQ09iamVjdChQQVlMT0FEKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnNldE1vcmVPcHRpb25zT25TdWJtaXQoKTtcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmFkZGVkR1JDID0gZGF0YTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvcicsIGVycm9yLCBlcnJvci5zdGF0dXMpO1xuICAgICAgICAgIHRoaXMuc3VibWl0TG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA5IHx8IGVycm9yLnN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICAgICAgICB0aGlzLmlzRHVwbGljYXRlTmFtZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNldE1vcmVPcHRpb25zT25TdWJtaXQoKTtcbiAgICAgICAgICAgIHRoaXMubWFwVXNlckxpc3Qoe1xuICAgICAgICAgICAgICBkYXRhOiB0aGlzLmxpc3RPYmplY3QuT1dORVIuZGF0YS5hc3NpZ25lZXNMaXN0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmdyY05hbWVWYWxpZGF0aW9uRXJyb3IgPSBWQUxJREFUSU9OX01FU1NBR0UuZ3JjX2V4aXN0cztcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0R1JDT2JqZWN0KCkge1xuICAgIHRoaXMuTU9ERSA9ICdDUkVBVEUnO1xuICAgIHRoaXMuc21pbGV5TWVzc2FnZSA9IFNVQ0NFU1NfTUVTU0FHRS5BRERfR1JDX09CSkVDVDtcbiAgICB0aGlzLmdyY1BheWxvYWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjU2VydmljZS5HUkNfUEFZTE9BRCkpO1xuICAgIHRoaXMuZ3JjUGF5bG9hZC50eXBlID0gdGhpcy5ncmNUeXBlO1xuICAgIHRoaXMuaXNGb3JtU3VibWl0dGVkID0gZmFsc2U7XG4gICAgdGhpcy5pc0R1cGxpY2F0ZU5hbWUgPSBmYWxzZTtcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XG4gICAgdGhpcy5oaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMuZW1pdCh0aGlzLmhpZGVNb3JlT3B0aW9uKTtcbiAgICB0aGlzLk9CSkVDVF9UWVBFID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLk9SSUdJTkFMX0dSQ19BVFRSSUJVVEVTKSk7XG4gICAgdGhpcy5vdGhlckdSQ0NhcmQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KE9USEVSX0dSQ19DQVJEKSk7XG4gICAgdGhpcy5yZXNldE90aGVyR1JDQ2FyZCgpO1xuICAgIHRoaXMuc2V0RGVmYXVsdEdSQ09iamVjdFR5cGUoKTtcbiAgICB0aGlzLnJlc2V0R1JDRGF0YVdpdGhUeXBlcygpO1xuICAgIHRoaXMucmVzZXRMaXN0T2JqZWN0U2VsZWN0aW9uKCk7XG4gICAgdGhpcy5tYXBVc2VyTGlzdCh7IGRhdGE6IHRoaXMubGlzdE9iamVjdC5PV05FUi5kYXRhLmFzc2lnbmVlc0xpc3QgfSk7XG4gIH1cblxuICByZXNldExpc3RPYmplY3RTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5saXN0T2JqZWN0Lk9XTkVSLnNlbGVjdGVkRGF0YSA9IFtdO1xuICAgIHRoaXMubGlzdE9iamVjdC5SQy5zZWxlY3RlZERhdGEgPSBbXTtcbiAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhID0gW107XG4gICAgdGhpcy5saXN0T2JqZWN0LlJJU0tfQ0FURUdPUlkuc2VsZWN0ZWREYXRhID0gW107XG4gICAgdGhpcy5saXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFkuc2VsZWN0ZWREYXRhID0gW107XG4gIH1cblxuICBzbWlsZXlBY3Rpb25zKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIGlmIChldmVudCA9PT0gJ2FkZE1vcmUnKSB7XG4gICAgICB0aGlzLnJlc2V0R1JDRm9ybSgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQgPT09ICd2aWV3Jykge1xuICAgICAgdGhpcy5yZXNldEdSQ0Zvcm0oKTtcbiAgICAgIHRoaXMudmlld0dSQygpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlU21pbGV5KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSBmYWxzZTtcbiAgICB0aGlzLnJlc2V0R1JDRm9ybSgpO1xuICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHsgZXZ0OiB0aGlzLmFkZGVkR1JDLCBjb25maXJtOiBmYWxzZSB9KTtcbiAgfVxuXG4gIHJlc2V0R1JDRm9ybSgpIHtcbiAgICB0aGlzLk1PREUgPSAnQ1JFQVRFJztcbiAgICB0aGlzLnJlc2V0R1JDT2JqZWN0KCk7XG4gICAgdGhpcy5ncmNGb3JtLm90aGVyR3JjT2JqZWN0cyA9IGZhbHNlO1xuICAgIHRoaXMuZ3JjRm9ybS5saW5rUmlzayA9IGZhbHNlO1xuICAgIHRoaXMuZ3JjRm9ybS5saW5rUHJvZ3JhbSA9IGZhbHNlO1xuICAgIHRoaXMuZ3JjRm9ybS5ncmNPYmplY3RUeXBlID0gZmFsc2U7XG5cbiAgICB0aGlzLnJlc2V0Rm9ybS5lbWl0KHRydWUpO1xuICB9XG5cbiAgdmlld0dSQygpIHtcbiAgICBsZXQgdXJsOiBzdHJpbmc7XG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcbiAgICAgIHVybCA9ICdodHRwOi8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0ICsgJy8jL21hbmFnZS1ncmMtb2JqZWN0cyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybCA9XG4gICAgICAgICdodHRwczovLycgK1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaG9zdCArXG4gICAgICAgICcvb3JnYW5pemF0aW9uLyMvbWFuYWdlLWdyYy1vYmplY3RzJztcbiAgICB9XG5cbiAgICB0aGlzLmlmcmFtZVNlcnZpY2UucmVkaXJlY3RJZkluSWZyYW1lKHVybCwgdGhpcy5NT0RFICE9PSAnRURJVCcpO1xuXG4gICAgdGhpcy5yZXNldEdSQ0Zvcm0oKTtcbiAgICB0aGlzLmNsb3NlU21pbGV5KCcnKTtcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5hZGRlZEdSQywgY29uZmlybTogZmFsc2UgfSk7XG4gIH1cblxuICBzZXRPdGhlckdSQ1R5cGVzRm9ybWF0ZSgpIHtcbiAgICBjb25zdCBncmNUeXBlcyA9IEdSQ19UWVBFX0FSUkFZO1xuICAgIHRoaXMucmVzZXRHUkNEYXRhV2l0aFR5cGVzKCk7XG4gICAgdGhpcy5saXN0T2JqZWN0Py5PVEhFUl9HUkNfT0JKRUNUUz8uc2VsZWN0ZWREYXRhPy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuZ3JjRGF0YVdpdGhUeXBlc1tncmNUeXBlc1tpdGVtPy50eXBlXV0/LnB1c2goaXRlbSk7XG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVPdGhlckdSQ09iamVjdHNQYXlsb2FkKCk7XG4gIH1cblxuICByZW1vdmVPdGhlckdSQ09iamVjdHMoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGdyY1R5cGVzID0gR1JDX1RZUEVfQVJSQVk7XG4gICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLnNlbGVjdGVkRGF0YSA9XG4gICAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhLmZpbHRlcihcbiAgICAgICAgKGdyYzogYW55KSA9PiBncmM/Ll9pZCAhPT0gZXZlbnQ/Ll9pZFxuICAgICAgKTtcbiAgICB0aGlzLmZpbHRlck90aGVyR1JDRGF0YShldmVudCwgZ3JjVHlwZXNbZXZlbnQ/LnR5cGVdKTtcbiAgICB0aGlzLm90aGVyR1JDQ2FyZFswXS5zZWxlY3RlZENvdW50XG4gICAgICA/ICh0aGlzLm90aGVyR1JDQ2FyZFtldmVudD8udHlwZV0uc2VsZWN0ZWRDb3VudCAtPSAxKVxuICAgICAgOiAwO1xuICAgIHRoaXMudXBkYXRlT3RoZXJHUkNPYmplY3RzUGF5bG9hZCgpO1xuICB9XG5cbiAgZmlsdGVyT3RoZXJHUkNEYXRhKGV2ZW50OiBhbnksIHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuZ3JjRGF0YVdpdGhUeXBlc1t0eXBlXSA9IHRoaXMuZ3JjRGF0YVdpdGhUeXBlc1t0eXBlXT8uZmlsdGVyKFxuICAgICAgKGdyYzogYW55KSA9PiBncmM/Ll9pZCAhPT0gZXZlbnQ/Ll9pZFxuICAgICk7XG4gIH1cblxuICByZXNldEdSQ0RhdGFXaXRoVHlwZXMoKSB7XG4gICAgdGhpcy5ncmNEYXRhV2l0aFR5cGVzID0ge1xuICAgICAgYXNzZXRzOiBbXSxcbiAgICAgIHByb2Nlc3NlczogW10sXG4gICAgICB2ZW5kb3JzOiBbXSxcbiAgICAgIGludmVudG9yeTogW10sXG4gICAgfTtcbiAgfVxuXG4gIGdldCBncmNWYWxpZGF0aW9uQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuaXNGb3JtU3VibWl0dGVkICYmICF0aGlzLmdyY1BheWxvYWQubmFtZSkge1xuICAgICAgdGhpcy5ncmNOYW1lVmFsaWRhdGlvbkVycm9yID0gVkFMSURBVElPTl9NRVNTQUdFLmdyY09iamVjdE5hbWU7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzRm9ybVN1Ym1pdHRlZCAmJiAhKHRoaXMuZ3JjUGF5bG9hZC5uYW1lIHx8IHRoaXMuaXNEdXBsaWNhdGVOYW1lKVxuICAgICk7XG4gIH1cblxuICBnZXRSaXNrQ2F0ZWdvcnlQYXlsb2FkKHNlbGVjdGVkRGF0YTogYW55KSB7XG4gICAgY29uc3Qgcmlza0NhdGVnb3J5UGF5bG9hZDogYW55ID0gW107XG4gICAgdGhpcy5zZWxlY3RlZFJpc2tzID0gW107XG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3JpZXMgPSBbXTtcbiAgICBzZWxlY3RlZERhdGEuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICByaXNrQ2F0ZWdvcnlQYXlsb2FkLnB1c2goe1xuICAgICAgICBjYXRlZ29yeV9pZDogW2l0ZW0/LmNhdGVnb3J5Py5jYXRlZ29yeV9pZCA/PyBbXV0sXG4gICAgICAgIHJpc2tfaWRzOiBpdGVtPy5yaXNrcz8ubWFwKChyaXNrOiBhbnkpID0+IHJpc2s/LlJpc2tJZCksXG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSaXNrcz8ucHVzaCguLi5pdGVtPy5yaXNrcyk7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcy5wdXNoKGl0ZW0/LmNhdGVnb3J5KTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmlza0NhdGVnb3J5UGF5bG9hZDtcbiAgfVxuXG4gIGdldFByb2dyYW1SZXNwb25zaWJpbGl0eVBheWxvYWQoc2VsZWN0ZWREYXRhOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHkgPSB0aGlzLnJlc3BvbnNpYmlsaXR5TGlzdC5maWx0ZXIoKGl0ZW06IGFueSkgPT5cbiAgICAgIHNlbGVjdGVkRGF0YS5zb21lKChkYXRhOiBhbnkpID0+IGRhdGE/LnJpZCA9PT0gaXRlbT8ucmlkKVxuICAgICk7XG4gICAgcmV0dXJuIHNlbGVjdGVkRGF0YTtcbiAgfVxuXG4gIHVwZGF0ZUdSQ09iamVjdCgpIHtcbiAgICBsZXQgUEFZTE9BRCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ncmNQYXlsb2FkKSk7XG4gICAgUEFZTE9BRC5vd25lcnMgPSB0aGlzLmdldE93bmVyc0V4Y2VwdERlZmF1bHQoUEFZTE9BRC5vd25lcnMpO1xuXG4gICAgLy8gVHJhbnNmb3JtIHJlc3BvbnNpYmlsaXRpZXMgZGF0YSB0byBnZXQgYWRkZWQvcmVtb3ZlZFxuICAgIFBBWUxPQUQubGlua2VkX3Jlc3BvbnNpYmlsaXRpZXMgPVxuICAgICAgdGhpcy5Db21tb25TZXJ2aWNlLnRyYW5zZm9ybVJlc3BvbnNpYmlsaXRpZXNEYXRhKFxuICAgICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHkubWFwKChyZXNwKSA9PiByZXNwPy5yaWQpLFxuICAgICAgICB0aGlzLmxpbmtlZFJlc3BvbnNpYmlsaXRpZXM/LnJlc3BvbnNpYmlsaXRpZXM/LmxpbmtlZCB8fCBbXVxuICAgICAgKTtcblxuICAgIHRoaXMuYXBpU2VydmljZS51cGRhdGVHUkNPYmplY3QoUEFZTE9BRCwgdGhpcy5JRCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXRNb3JlT3B0aW9uc09uU3VibWl0KCk7XG4gICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSB0cnVlO1xuICAgICAgICB0aGlzLmFkZGVkR1JDID0gZGF0YTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3InLCBlcnJvciwgZXJyb3Iuc3RhdHVzKTtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA5KSB7XG4gICAgICAgICAgdGhpcy5pc0R1cGxpY2F0ZU5hbWUgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc2V0TW9yZU9wdGlvbnNPblN1Ym1pdCgpO1xuICAgICAgICAgIHRoaXMuZ3JjTmFtZVZhbGlkYXRpb25FcnJvciA9IFZBTElEQVRJT05fTUVTU0FHRS5ncmNfZXhpc3RzO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHVwZGF0ZU90aGVyR1JDT2JqZWN0c1BheWxvYWQoKSB7XG4gICAgdGhpcy5ncmNQYXlsb2FkLmxpbmtlZF9HUkNfaWRzID1cbiAgICAgIHRoaXMubGlzdE9iamVjdC5PVEhFUl9HUkNfT0JKRUNUUy5zZWxlY3RlZERhdGEubWFwKFxuICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLl9pZFxuICAgICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVNlbGVjdGVkUmlzayhjYXRlZ29yeUlkOiBudW1iZXIsIHJpc2s6IGFueSkge1xuICAgIGNvbnN0IGNhdGVnb3J5SW5kZXggPSB0aGlzLmZpbmRDaGVja2VkQ2F0ZWdvcnlJbmRleChjYXRlZ29yeUlkKTtcbiAgICBpZiAoY2F0ZWdvcnlJbmRleCAhPT0gLTEpIHtcbiAgICAgIC8vIENhdGVnb3J5IGV4aXN0cywgdXBkYXRlIHJpc2sgdmFsdWVcbiAgICAgIGNvbnN0IHJpc2tJbmRleCA9IHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhW1xuICAgICAgICBjYXRlZ29yeUluZGV4XG4gICAgICBdPy5yaXNrcz8uZmluZEluZGV4KChpdGVtOiBhbnkpID0+IGl0ZW0/Ll9pZCA9PT0gcmlzaz8uX2lkKTtcbiAgICAgIGlmIChyaXNrSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhW1xuICAgICAgICAgIGNhdGVnb3J5SW5kZXhcbiAgICAgICAgXT8ucmlza3Muc3BsaWNlKHJpc2tJbmRleCwgMSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0Py5SSVNLX0NBVEVHT1JZPy5zZWxlY3RlZERhdGFbY2F0ZWdvcnlJbmRleF0/LnJpc2tzXG4gICAgICAgICAgPy5sZW5ndGggPT09IDBcbiAgICAgICkge1xuICAgICAgICAvLyBSZW1vdmUgY2F0ZWdvcnkgaWYgc2VsZWN0ZWRMaXN0RGF0YSBpcyBlbXB0eVxuICAgICAgICB0aGlzLmxpc3RPYmplY3Q/LlJJU0tfQ0FURUdPUlk/LnNlbGVjdGVkRGF0YS5zcGxpY2UoY2F0ZWdvcnlJbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZ3JjUGF5bG9hZC5yaXNrX2NhdGVnb3J5X2lkcyA9IHRoaXMuZ2V0Umlza0NhdGVnb3J5UGF5bG9hZChcbiAgICAgIHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVNlbGVjdGVkUmVzcG9uc2liaWxpdHkocmVzcG9uc2liaWxpdHk6IGFueSkge1xuICAgIHRoaXMubGlzdE9iamVjdC5QUk9HUkFNX1JFU1BPTlNJQklMSVRZLnNlbGVjdGVkRGF0YSA9XG4gICAgICB0aGlzLmxpc3RPYmplY3Q/LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YT8ubWFwKFxuICAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgbGV0IGZpbHRlcmVkUmVzcG9uc2liaWxpdHkgPSBkYXRhPy5yZXNwb25zaWJpbGl0eT8uZmlsdGVyKFxuICAgICAgICAgICAgKHJlc3A6IGFueSkgPT4gcmVzcD8uX2lkICE9PSByZXNwb25zaWJpbGl0eT8uX2lkXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5OiBmaWx0ZXJlZFJlc3BvbnNpYmlsaXR5LFxuICAgICAgICAgICAgY2F0ZWdvcnk6IFtcbiAgICAgICAgICAgICAgLi4uKG5ldyBTZXQoXG4gICAgICAgICAgICAgICAgZmlsdGVyZWRSZXNwb25zaWJpbGl0eS5tYXAoKG9iajogYW55KSA9PiBkYXRhPy5jYXRlZ29yeSk/LmZsYXQoKVxuICAgICAgICAgICAgICApIHx8IFtdKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgIHRoaXMubGlzdE9iamVjdC5QUk9HUkFNX1JFU1BPTlNJQklMSVRZLnNlbGVjdGVkRGF0YSA9XG4gICAgICB0aGlzLmxpc3RPYmplY3Q/LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YS5maWx0ZXIoXG4gICAgICAgIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gZGF0YT8ucmVzcG9uc2liaWxpdHk/Lmxlbmd0aCA+IDA7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgdGhpcy5ncmNQYXlsb2FkLnByb2dyYW1fY2F0ZWdvcnlfaWRzID0gdGhpcy5nZXRQcm9ncmFtUmVzcG9uc2liaWxpdHlQYXlsb2FkKFxuICAgICAgdGhpcy5saXN0T2JqZWN0Py5QUk9HUkFNX1JFU1BPTlNJQklMSVRZPy5zZWxlY3RlZERhdGFcbiAgICApO1xuICB9XG5cbiAgZmluZENoZWNrZWRDYXRlZ29yeUluZGV4KGNhdGVnb3J5SWQ6IG51bWJlciB8IG51bWJlcltdKSB7XG4gICAgbGV0IGNhdGVnb3J5SW5kZXggPSAtMTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjYXRlZ29yeUlkKSAmJiBjYXRlZ29yeUlkPy5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIEhhbmRsZSBlbXB0eSBjYXRlZ29yeUlkIGFycmF5IGNhc2VcbiAgICAgIGNvbnN0IHVuY2F0ZWdvcml6ZWRJbmRleCA9XG4gICAgICAgIHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhLmZpbmRJbmRleChcbiAgICAgICAgICAoY2F0OiBhbnkpID0+IGNhdD8uY2F0ZWdvcnk/Ll9pZCA9PT0gJ3VuY2F0ZWdvcml6ZWQnXG4gICAgICAgICk7XG4gICAgICBpZiAodW5jYXRlZ29yaXplZEluZGV4ICE9PSAtMSkge1xuICAgICAgICByZXR1cm4gdW5jYXRlZ29yaXplZEluZGV4O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjYXRlZ29yeUluZGV4ID0gdGhpcy5saXN0T2JqZWN0Py5SSVNLX0NBVEVHT1JZPy5zZWxlY3RlZERhdGEuZmluZEluZGV4KFxuICAgICAgICAoY2F0OiBhbnkpID0+IGNhdD8uY2F0ZWdvcnk/LmNhdGVnb3J5X2lkID09PSBjYXRlZ29yeUlkXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcnlJbmRleDtcbiAgfVxuXG4gIHNldExpbmtSaXNrVGFiKHRhYkRldGFpbHM6IGFueSkge1xuICAgIHRoaXMub3RoZXJHUkNDYXJkID0gdGFiRGV0YWlscy5tYXAoKHRhYjogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogdGFiPy5sYWJlbCxcbiAgICAgICAgY291bnQ6IDAsXG4gICAgICAgIHNlbGVjdGVkQ291bnQ6IDAsXG4gICAgICAgIGtleTogdGFiPy5sYWJlbD8udG9Mb3dlckNhc2UoKSxcbiAgICAgICAgdHlwZTogaW5kZXgsXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHRoaXMuZ2V0T3RoZXJHUkNUYWJDb3VudCh7IHJjX2lkczogJycgfSk7XG4gIH1cblxuICBwb3B1bGF0ZUxpbmtSaXNrKHNlbGVjdGVkRGF0YTogYW55KSB7XG4gICAgbGV0IHVwZGF0ZWREYXRhID0gc2VsZWN0ZWREYXRhPy5tYXAoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgaWYgKGRhdGE/LmNhdGVnb3J5X2lkICYmIE9iamVjdD8ua2V5cyhkYXRhPy5jYXRlZ29yeV9pZCk/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgY2F0ZWdvcnk6IFVOQ0FURUdPUklaRURfTElOS19DQVRFR09SWSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIGNhdGVnb3J5OiB7XG4gICAgICAgICAgY2F0ZWdvcnlfaWQ6IGRhdGE/LmNhdGVnb3J5X2lkWzBdLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9KTtcbiAgICBpZiAodXBkYXRlZERhdGEubGVuZ3RoKSB7XG4gICAgICB0aGlzLmdyY0Zvcm0ubGlua1Jpc2sgPSB0cnVlO1xuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkxJTktfUklTS19DQVRFR09SSUVTX1JJU0tTID0gdHJ1ZTtcbiAgICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xuICAgIH1cbiAgICB0aGlzLmxpc3RPYmplY3QuUklTS19DQVRFR09SWS5zZWxlY3RlZERhdGEgPSB1cGRhdGVkRGF0YTtcbiAgICByZXR1cm4gdGhpcy5nZXRSaXNrQ2F0ZWdvcnlQYXlsb2FkKHVwZGF0ZWREYXRhKTtcbiAgfVxuXG4gIHBvcHVsYXRlTGlua1Jlc3BvbnNpYmlsaXR5KHNlbGVjdGVkRGF0YTogYW55KSB7XG4gICAgLy8gSWYgc2VsZWN0ZWREYXRhIGlzIGFuIGFycmF5IG9mIHsgcmlkLCBpZCB9XG4gICAgdGhpcy5saXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFkuc2VsZWN0ZWREYXRhID0gc2VsZWN0ZWREYXRhO1xuICAgIGlmIChzZWxlY3RlZERhdGE/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5ncmNGb3JtLmxpbmtQcm9ncmFtID0gdHJ1ZTtcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5MSU5LX1BST0dSQU0gPSB0cnVlO1xuICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSA9IHNlbGVjdGVkRGF0YTtcbiAgICByZXR1cm4gc2VsZWN0ZWREYXRhO1xuICB9XG5cbiAgZ2V0T3duZXJzRXhjZXB0RGVmYXVsdCh1c2VyczogYW55KSB7XG4gICAgY29uc3QgdXNlcnNJZCA9IHVzZXJzLmZpbHRlcihcbiAgICAgICh1c2VyOiBhbnkpID0+ICF0aGlzLmRpc2FibGVkSWRzLmluY2x1ZGVzKHVzZXIpXG4gICAgKTtcbiAgICByZXR1cm4gdXNlcnNJZCB8fCBbXTtcbiAgfVxuXG4gIHNldE1vcmVPcHRpb25zT25TdWJtaXQoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xuICAgIHRoaXMuc3VibWl0TG9hZGVyID0gZmFsc2U7XG4gIH1cblxuICByZXNldE90aGVyR1JDQ2FyZCgpIHtcbiAgICB0aGlzLm90aGVyR1JDQ2FyZC5mb3JFYWNoKCh0YWI6IGFueSkgPT4ge1xuICAgICAgdGFiLmNvdW50ID0gMDtcbiAgICAgIHRhYi5zZWxlY3RlZENvdW50ID0gMDtcbiAgICB9KTtcbiAgfVxuXG4gIHJlc2V0RGF0YU9uUkNDaGFuZ2UoKSB7XG4gICAgdGhpcy5saXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFkuc2VsZWN0ZWREYXRhID0gW107XG4gICAgdGhpcy5saXN0T2JqZWN0LlJJU0tfQ0FURUdPUlkuc2VsZWN0ZWREYXRhID0gW107XG4gICAgaWYgKHRoaXMubGlzdE9iamVjdC5SQy5zZWxlY3RlZERhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnJlc2V0TW9yZU9wdGlvbnNPblJDQ2hhbmdlKCk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRNb3JlT3B0aW9uc09uUkNDaGFuZ2UoKSB7XG4gICAgdGhpcy5ncmNGb3JtLmxpbmtQcm9ncmFtID0gZmFsc2U7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkxJTktfUFJPR1JBTSA9IGZhbHNlO1xuICAgIHRoaXMuZ3JjRm9ybS5saW5rUmlzayA9IGZhbHNlO1xuICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5MSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUyA9IGZhbHNlO1xuICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xuICB9XG5cbiAgZ2V0QWxsUmVzcG9uc2liaWxpdGllcygpIHtcbiAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0QWxsUmVzcG9uc2liaWxpdGllcygpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubGlua2VkUmVzcG9uc2liaWxpdGllcyA9IHtcbiAgICAgICAgICByZXNwb25zaWJpbGl0aWVzOiB7XG4gICAgICAgICAgICBsaW5rZWQ6IGRhdGE/LmxpbmtlZF9yZXNwb25zaWJpbGl0aWVzIHx8IFtdLFxuICAgICAgICAgICAgZGF0YTpcbiAgICAgICAgICAgICAgZGF0YT8ucmVzcG9uc2liaWxpdGllcz8ubWFwKChyZXNwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgUmVwb3J0SWQ6IHJlc3A/LmxpbmtlZF9yZXNwb25zaWJpbGl0aWVzX2RldGFpbHM/LnJpZCxcbiAgICAgICAgICAgICAgICBSZXBvcnROYW1lOiByZXNwPy5yZXBvcnRfbmFtZSxcbiAgICAgICAgICAgICAgICBDYXRlZ29yeUlkOiByZXNwPy5jYXRlZ29yeV9pZCxcbiAgICAgICAgICAgICAgICBDYXRlZ29yeU5hbWU6IHJlc3A/LmNhdGVnb3J5X25hbWUsXG4gICAgICAgICAgICAgICAgZnJlcXVlbmN5OiByZXNwPy5mcmVxdWVuY3ksXG4gICAgICAgICAgICAgICAgc3RhdHVzOiByZXNwPy5zdGF0dXMsXG4gICAgICAgICAgICAgIH0pKSB8fCBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93U21pbGV5XCI+XG4gIDxkaXYgY2xhc3M9XCJ3b3JrZmxvdy1ncmNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuZGlzYWJsZWRdPVwib3BlbmVkUG9wdXAgJiYgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcIlxuICAgICAgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gICAgICA8bGliLXRleHQtZmllbGQtaWNvbiBbZGlzYWJsZWRdPVwib3BlbmVkUG9wdXAgJiYgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcIiBbY2RuTGlua109XCJDRE5fTElOSy5ncmNUeXBlXCJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJ0cnVlXCIgZmllbGQtaWNvbnM+XG4gICAgICA8L2xpYi10ZXh0LWZpZWxkLWljb24+XG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+XG4gICAgICAgICAgICBHUkMgT0JKRUNUIFRZUEU8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIj5cbiAgICAgICAgICAgIDx0YWItc2VsZWN0b3IgW3NlbGVjdGVkSXRlbV09XCJncmNQYXlsb2FkLnR5cGVcIiBbZGlzcGxheUFycmF5XT1cIk9CSkVDVF9UWVBFXCJcbiAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImNoYW5nZUF0dHJpYnV0ZXNUeXBlKCRldmVudClcIj48L3RhYi1zZWxlY3Rvcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIE9iamVjdCBuYW1lIGZpZWxkIC0tPlxuICAgIDxsaWItdGV4dC1maWVsZCBbZGlzYWJsZWRdPVwiXG4gICAgICAgIG9wZW5lZFBvcHVwICYmXG4gICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFLm5hbWUgJiZcbiAgICAgICAgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcbiAgICAgIFwiIFtpc0VkaXRNb2RlXT1cImdyY1BheWxvYWQubmFtZSAmJiBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5uYW1lXCIgW3RpdGxlVGV4dF09XCJBTExfVEVYVD8uZ3JjT2JqZWN0TmFtZVwiXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNPYmplY3RQbGFjZWhvbGRlclwiIFsodGV4dFZhbHVlKV09XCJncmNQYXlsb2FkLm5hbWVcIlxuICAgICAgKHRleHRWYWx1ZUNoYW5nZSk9XCJvblRleHRDaGFuZ2UoJGV2ZW50KVwiIChjbGlja091dHNpZGUpPVwib25DbGlja091dHNpZGUoKVwiXG4gICAgICAob25DbGljayk9XCJvblBvcHVwT3BlbihJTlBVVF9UWVBFLm5hbWUpXCI+XG4gICAgICA8bGliLXRleHQtZmllbGQtaWNvbiBbY2RuTGlua109XCJDRE5fTElOSy5ncmNPYmplY3ROYW1lXCIgW2lzQ2hlY2tlZF09XCJncmNQYXlsb2FkLm5hbWVcIiBmaWVsZC1pY29ucz5cbiAgICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIiBpcy1yZXF1aXJlZD4qPC9zcGFuPlxuICAgICAgPGxpYi1lZGl0LW1vZGUgKm5nSWY9XCJncmNQYXlsb2FkLm5hbWUgJiYgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUubmFtZVwiIFtzZWxlY3RlZERhdGFdPVwiW2dyY1BheWxvYWRdXCJcbiAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCIgKGlzT25FZGl0KT1cIm9uRWRpdChJTlBVVF9UWVBFLm5hbWUpXCIgZWRpdC1tb2RlPjwvbGliLWVkaXQtbW9kZT5cbiAgICAgIDxwICpuZ0lmPVwiZ3JjVmFsaWRhdGlvbkNoZWNrIHx8IGlzRHVwbGljYXRlTmFtZVwiIFthcHBTY3JvbGxJblZpZXddPVwidHJ1ZVwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiIGVycm9yLW1lc3NhZ2U+XG4gICAgICAgIHt7IGdyY05hbWVWYWxpZGF0aW9uRXJyb3IgfX1cbiAgICAgIDwvcD5cbiAgICAgIDx2Y29tcGx5LWVkaXRvciBbZWRpdG9yQ29uZmlnXT1cIkVESVRPUl9DT05GSUdcIiBbKG5nTW9kZWwpXT1cImdyY1BheWxvYWQuZGVzY3JpcHRpb25cIlxuICAgICAgICByaWNoLXRleHQtZWRpdG9yPjwvdmNvbXBseS1lZGl0b3I+XG4gICAgPC9saWItdGV4dC1maWVsZD5cblxuICAgIDwhLS0gU3BlY2lmeSBPd25lcnMgLS0+XG4gICAgPGxpYi10ZXh0LWZpZWxkIFtkaXNhYmxlZF09XCJcbiAgICAgICAgb3BlbmVkUG9wdXAgJiZcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUub3duZXIgJiZcbiAgICAgICAgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcbiAgICAgIFwiIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRS5vd25lclwiIFtpc0VkaXRNb2RlXT1cIlxuICAgICAgICBsaXN0T2JqZWN0Lk9XTkVSPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCAmJlxuICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5vd25lclxuICAgICAgXCIgW3RpdGxlVGV4dF09XCJBTExfVEVYVD8uZ3JjT3duZXJzVGl0bGVcIiBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNPd25lcnNQbGFjZWhvbGRlclwiIFtpc1JlYWRPbmx5XT1cInRydWVcIlxuICAgICAgKG9uQ2xpY2spPVwib25Qb3B1cE9wZW4oSU5QVVRfVFlQRS5vd25lcilcIj5cbiAgICAgIDxsaWItdGV4dC1maWVsZC1pY29uIFtjZG5MaW5rXT1cIkNETl9MSU5LLmdyY093bmVyc1wiIFtpc0NoZWNrZWRdPVwibGlzdE9iamVjdC5PV05FUj8uc2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwXCJcbiAgICAgICAgZmllbGQtaWNvbnM+XG4gICAgICA8L2xpYi10ZXh0LWZpZWxkLWljb24+XG4gICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCIgaXMtcmVxdWlyZWQ+Kjwvc3Bhbj5cbiAgICAgIDxsaWItZWRpdC1tb2RlICpuZ0lmPVwiXG4gICAgICAgICAgbGlzdE9iamVjdC5PV05FUj8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcbiAgICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5vd25lclxuICAgICAgICBcIiBbbm9uUmVtb3ZhYmxlSWRzXT1cImRpc2FibGVkSWRzXCIgW2NvdW50Q29sb3JdPVwiJ2dyZWVuQmcnXCIgW3NlbGVjdGVkRGF0YV09XCJsaXN0T2JqZWN0Lk9XTkVSPy5zZWxlY3RlZERhdGFcIlxuICAgICAgICBbdHlwZV09XCInbGlzdCdcIiAoaXNPbkVkaXQpPVwib25FZGl0KElOUFVUX1RZUEUub3duZXIpXCIgKG9uUmVtb3ZlRGF0YSk9XCJvblJlbW92ZURhdGEoJGV2ZW50LCBJTlBVVF9UWVBFLm93bmVyKVwiXG4gICAgICAgIGVkaXQtbW9kZT48L2xpYi1lZGl0LW1vZGU+XG4gICAgPC9saWItdGV4dC1maWVsZD5cblxuICAgIDwhLS0gTGluayBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIChSQykgLS0+XG4gICAgPGxpYi10ZXh0LWZpZWxkIFtkaXNhYmxlZF09XCJcbiAgICAgICAgb3BlbmVkUG9wdXAgJiZcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUuUkMgJiZcbiAgICAgICAgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcbiAgICAgIFwiIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRS5SQ1wiIFtpc0VkaXRNb2RlXT1cIlxuICAgICAgICBsaXN0T2JqZWN0LlJDPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCAmJiBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5SQ1xuICAgICAgXCIgW3RpdGxlVGV4dF09XCJBTExfVEVYVD8uZ3JjUkNUaXRsZVwiIFtwbGFjZWhvbGRlclRleHRdPVwiQUxMX1RFWFQ/LmdyY1JDUGxhY2Vob2xkZXJcIiBbaXNSZWFkT25seV09XCJ0cnVlXCJcbiAgICAgIChvbkNsaWNrKT1cIm9uUG9wdXBPcGVuKElOUFVUX1RZUEUuUkMpXCI+XG4gICAgICA8bGliLXRleHQtZmllbGQtaWNvbiBbY2RuTGlua109XCJDRE5fTElOSy5ncmNSQ1wiIFtpc0NoZWNrZWRdPVwibGlzdE9iamVjdC5SQz8uc2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwXCIgZmllbGQtaWNvbnM+XG4gICAgICA8L2xpYi10ZXh0LWZpZWxkLWljb24+XG4gICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCIgaXMtcmVxdWlyZWQ+Kjwvc3Bhbj5cbiAgICAgIDxsaWItZWRpdC1tb2RlICpuZ0lmPVwiXG4gICAgICAgICAgbGlzdE9iamVjdC5SQz8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiYgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUuUkNcbiAgICAgICAgXCIgKG9uUmVtb3ZlRGF0YSk9XCJvblJlbW92ZURhdGEoJGV2ZW50LCBJTlBVVF9UWVBFLlJDKVwiIFtzZWxlY3RlZERhdGFdPVwibGlzdE9iamVjdC5SQz8uc2VsZWN0ZWREYXRhXCJcbiAgICAgICAgW3R5cGVdPVwiJ2xpc3QnXCIgKGlzT25FZGl0KT1cIm9uRWRpdChJTlBVVF9UWVBFLlJDKVwiIGVkaXQtbW9kZT48L2xpYi1lZGl0LW1vZGU+XG4gICAgICA8cCAqbmdJZj1cImlzRm9ybVN1Ym1pdHRlZCAmJiAhbGlzdE9iamVjdC5SQz8uc2VsZWN0ZWREYXRhPy5sZW5ndGhcIiBbYXBwU2Nyb2xsSW5WaWV3XT1cInRydWVcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxuICAgICAgICBlcnJvci1tZXNzYWdlPlxuICAgICAgICB7eyBWQUxJREFUSU9OX01FU1NBR0UuZ3JjUkMgfX1cbiAgICAgIDwvcD5cbiAgICA8L2xpYi10ZXh0LWZpZWxkPlxuXG4gICAgPCEtLSBMaW5rIFByb2dyYW0gYW5kIFJlc3BvbnNpYmlsaXR5IC0tPlxuICAgIDxsaWItdGV4dC1maWVsZCBbZGlzYWJsZWRdPVwiXG4gICAgICAgIG9wZW5lZFBvcHVwICYmXG4gICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFPy5wcm9ncmFtUmVzcG9uc2liaWxpdHkgJiZcbiAgICAgICAgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcbiAgICAgIFwiIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRT8ucHJvZ3JhbVJlc3BvbnNpYmlsaXR5XCIgKm5nSWY9XCJncmNGb3JtPy5saW5rUHJvZ3JhbVwiXG4gICAgICBbdGl0bGVUZXh0XT1cIkFMTF9URVhUPy5ncmNQcm9ncmFtUmVzcG9uc2liaWxpdHlUaXRsZVwiXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNQcm9ncmFtUmVzcG9uc2liaWxpdHlQbGFjZWhvbGRlclwiIFtpc1JlYWRPbmx5XT1cInRydWVcIlxuICAgICAgKG9uQ2xpY2spPVwib25Qb3B1cE9wZW4oSU5QVVRfVFlQRS5wcm9ncmFtUmVzcG9uc2liaWxpdHkpXCIgW2lzRWRpdE1vZGVdPVwiXG4gICAgICAgIGxpc3RPYmplY3Q/LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoICYmXG4gICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFPy5wcm9ncmFtUmVzcG9uc2liaWxpdHlcbiAgICAgIFwiPlxuICAgICAgPGxpYi10ZXh0LWZpZWxkLWljb24gW2NkbkxpbmtdPVwiQ0ROX0xJTksubGlua090aGVyc1wiXG4gICAgICAgIFtpc0NoZWNrZWRdPVwibGlzdE9iamVjdC5QUk9HUkFNX1JFU1BPTlNJQklMSVRZPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCA+IDBcIiBmaWVsZC1pY29ucz5cbiAgICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cblxuICAgICAgPGxpYi1lZGl0LW1vZGUgKm5nSWY9XCJcbiAgICAgICAgICBsaXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoICYmXG4gICAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEU/LlBST0dSQU1fUkVTUE9OU0lCSUxJVFlcbiAgICAgICAgXCIgKG9uUmVtb3ZlRGF0YSk9XCJvblJlbW92ZURhdGEoJGV2ZW50LCBJTlBVVF9UWVBFPy5wcm9ncmFtUmVzcG9uc2liaWxpdHkpXCJcbiAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJsaXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YSBcIiBbbmFtZURpc3BsYXlLZXldPVwiJ3RpdGxlJ1wiIFt0eXBlXT1cIidsaXN0J1wiXG4gICAgICAgIChpc09uRWRpdCk9XCJvbkVkaXQoSU5QVVRfVFlQRS5wcm9ncmFtUmVzcG9uc2liaWxpdHkpXCIgZWRpdC1tb2RlPlxuICAgICAgPC9saWItZWRpdC1tb2RlPlxuICAgIDwvbGliLXRleHQtZmllbGQ+XG5cbiAgICA8IS0tIExpbmsgUmlzayBDYXRlZ29yaWVzIGFuZCBSaXNrIC0tPlxuICAgIDxsaWItdGV4dC1maWVsZCBbZGlzYWJsZWRdPVwiXG4gICAgICAgIG9wZW5lZFBvcHVwICYmXG4gICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFPy5yaXNrQ2F0ZWdvcnkgJiZcbiAgICAgICAgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcbiAgICAgIFwiIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRT8ucmlza0NhdGVnb3J5XCIgKm5nSWY9XCJncmNGb3JtPy5saW5rUmlza1wiXG4gICAgICBbdGl0bGVUZXh0XT1cIkFMTF9URVhUPy5ncmNSaXNrQ2F0ZWdvcnlUaXRsZVwiIFtwbGFjZWhvbGRlclRleHRdPVwiQUxMX1RFWFQ/LmdyY1Jpc2tDYXRlZ29yeVBsYWNlaG9sZGVyXCJcbiAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIiAob25DbGljayk9XCJvblBvcHVwT3BlbihJTlBVVF9UWVBFLnJpc2tDYXRlZ29yeSlcIiBbaXNFZGl0TW9kZV09XCJcbiAgICAgICAgbGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEU/LnJpc2tDYXRlZ29yeVxuICAgICAgXCI+XG4gICAgICA8bGliLXRleHQtZmllbGQtaWNvbiBbY2RuTGlua109XCJDRE5fTElOSy5saW5rR1JDXCIgW2lzQ2hlY2tlZF09XCJsaXN0T2JqZWN0LlJJU0tfQ0FURUdPUlk/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMFwiXG4gICAgICAgIGZpZWxkLWljb25zPlxuICAgICAgPC9saWItdGV4dC1maWVsZC1pY29uPlxuXG4gICAgICA8bGliLWVkaXQtbW9kZSAqbmdJZj1cIlxuICAgICAgICAgIGxpc3RPYmplY3QuUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcbiAgICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5SSVNLX0NBVEVHT1JZXG4gICAgICAgIFwiIChvblJlbW92ZURhdGEpPVwib25SZW1vdmVEYXRhKCRldmVudCwgSU5QVVRfVFlQRT8ucmlza0NhdGVnb3J5KVwiIFtzZWxlY3RlZERhdGFdPVwic2VsZWN0ZWRSaXNrc1wiXG4gICAgICAgIFt0eXBlXT1cIidsaXN0J1wiIChpc09uRWRpdCk9XCJvbkVkaXQoSU5QVVRfVFlQRS5yaXNrQ2F0ZWdvcnksIGRhdGE/LmtleSlcIiBlZGl0LW1vZGU+XG4gICAgICA8L2xpYi1lZGl0LW1vZGU+XG4gICAgPC9saWItdGV4dC1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPCEtLSBMaW5rIE90aGVyIEdSQyBPYmplY3RzIC0tPlxuICA8bGliLXRleHQtZmllbGQgKm5nSWY9XCJncmNGb3JtPy5vdGhlckdyY09iamVjdHNcIiBbZGlzYWJsZWRdPVwiXG4gICAgICBvcGVuZWRQb3B1cCAmJlxuICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEU/Lm90aGVyR3JjT2JqZWN0cyAmJlxuICAgICAgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcbiAgICBcIiBbYWN0aXZlXT1cIm9wZW5lZFBvcHVwICYmIG9wZW5lZFBvcHVwID09IElOUFVUX1RZUEU/Lm90aGVyR3JjT2JqZWN0c1wiIFt0aXRsZVRleHRdPVwiQUxMX1RFWFQ/Lm90aGVyR1JDT2JqZWN0c1RpdGxlXCJcbiAgICBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5vdGhlckdSQ09iamVjdHNQbGFjZWhvbGRlclwiIFtpc1JlYWRPbmx5XT1cInRydWVcIlxuICAgIChvbkNsaWNrKT1cIm9uUG9wdXBPcGVuKElOUFVUX1RZUEUub3RoZXJHcmNPYmplY3RzKVwiIFtpc0VkaXRNb2RlXT1cIlxuICAgICAgbGlzdE9iamVjdD8uT1RIRVJfR1JDX09CSkVDVFM/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoICYmXG4gICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRT8ub3RoZXJHcmNPYmplY3RzXG4gICAgXCI+XG4gICAgPGxpYi10ZXh0LWZpZWxkLWljb24gW2NkbkxpbmtdPVwiQ0ROX0xJTksubGlua090aGVyc1wiXG4gICAgICBbaXNDaGVja2VkXT1cImxpc3RPYmplY3Q/Lk9USEVSX0dSQ19PQkpFQ1RTPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCA+IDBcIiBmaWVsZC1pY29ucz5cbiAgICA8L2xpYi10ZXh0LWZpZWxkLWljb24+XG5cbiAgICA8bGliLWVkaXQtbW9kZSAqbmdGb3I9XCJsZXQgZGF0YSBvZiBHUkNfVFlQRV9BUlJBWVwiXG4gICAgICAob25SZW1vdmVEYXRhKT1cIm9uUmVtb3ZlRGF0YSgkZXZlbnQsIElOUFVUX1RZUEU/Lm90aGVyR3JjT2JqZWN0cylcIiBbc2VsZWN0ZWREYXRhXT1cImdyY0RhdGFXaXRoVHlwZXNbZGF0YV1cIlxuICAgICAgW3R5cGVdPVwiJ2xpc3QnXCIgW2lzTXVsdGlwbGVdPVwidHJ1ZVwiIChpc09uRWRpdCk9XCJvbkVkaXQoSU5QVVRfVFlQRS5vdGhlckdyY09iamVjdHMsIGRhdGEpXCIgZWRpdC1tb2RlPlxuICAgICAgPGRpdiBjbGFzcz1cIndvcmtmbG93TGF2ZWwgdngtZnMtMTEgdngtZnctNTAwIHZ4LXBsLTEgdngtcHItMSB2eC1saC00IHZ4LW1yLTEgdngtdGV4dC1jZW50ZXJcIj5cbiAgICAgICAge3sgZGF0YSB8IHRpdGxlY2FzZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9saWItZWRpdC1tb2RlPlxuICA8L2xpYi10ZXh0LWZpZWxkPlxuICA8bGliLWF0dHJpYnV0ZXMgW2Rpc2FibGVkXT1cIm9wZW5lZFBvcHVwICYmIGRpYWxvZ0ZpZWxkcz8uaW5jbHVkZXMob3BlbmVkUG9wdXApXCJcbiAgICAqbmdJZj1cInNlbGVjdGVkQXR0cmlidXRlcz8uYXR0cmlidXRlcz8ubGVuZ3RoICYmIHRoaXMuZ3JjRm9ybS5ncmNPYmplY3RUeXBlXCIgW2F0dHJpYnV0ZXNJbmZvXT1cInNlbGVjdGVkQXR0cmlidXRlc1wiXG4gICAgW2lzRm9ybVN1Ym1pdHRlZF09XCJpc0Zvcm1TdWJtaXR0ZWRcIiAob25DbGljayk9XCJnZXRBdHRyaWJ1dGVTZWxlY3Rpb24oJGV2ZW50KVwiPjwvbGliLWF0dHJpYnV0ZXM+XG4gIDxsaWItbGlzdC1wb3B1cCBbb3BlbmVkUG9wdXBdPVwib3BlbmVkUG9wdXBcIiBbbGlzdE9iamVjdF09XCJsaXN0T2JqZWN0XCIgW3RhYmxlQ2FyZF09XCJvdGhlckdSQ0NhcmRcIlxuICAgIFtvdGhlckdyY0NhcmRMb2FkZXJdPVwiZ3JjVGFiTG9hZGVyXCIgW0dSQ1NlbGVjdGVkVGFiXT1cIkdSQ1NlbGVjdGVkVGFiXCIgW21vZGVdPVwiTU9ERVwiIFtvbkVkaXRHUkNJZF09XCJJRFwiXG4gICAgKG9uU2F2ZVNlbGVjdGVkTGlzdCk9XCJvblNhdmVTZWxlY3RlZExpc3QoJGV2ZW50KVwiXG4gICAgKGdldE90aGVyR1JDT2JqZWN0cyk9XCJnZXRPdGhlckdSQ09iamVjdHMoJGV2ZW50KVwiPjwvbGliLWxpc3QtcG9wdXA+XG48L25nLWNvbnRhaW5lcj5cbjxhcHAtc21pbGV5LWRpYWxvZy1pbmxpbmUgKm5nSWY9XCJzaG93U21pbGV5XCIgW21lc3NhZ2VdPVwic21pbGV5TWVzc2FnZVwiIFthY3Rpb25CdXR0b25zXT1cImFjdGlvbkJ1dHRvbnNcIlxuICAoYWN0aW9uKT1cInNtaWxleUFjdGlvbnMoJGV2ZW50KVwiIChjbG9zZVNtaWxleSk9XCJjbG9zZVNtaWxleSgkZXZlbnQpXCI+PC9hcHAtc21pbGV5LWRpYWxvZy1pbmxpbmU+XG48YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJpc0xvYWRpbmdcIj48L2FwcC1sb2FkZXItaW5saW5lPiJdfQ==