vcomply-workflow-engine 3.4.0 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/workflow/grc-object/grc-object-container/grc-object-container.component.mjs +5 -4
- package/esm2020/lib/workflow/grc-object/grc-object.module.mjs +7 -3
- package/esm2020/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.mjs +9 -5
- package/esm2020/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.mjs +6 -3
- package/esm2020/lib/workflow/shared/workflow-pipes/unique-responsibilities.pipe.mjs +24 -0
- package/esm2020/lib/workflow/shared/workflow-pipes/workflow-pipes.module.mjs +17 -4
- package/fesm2015/vcomply-workflow-engine.mjs +143 -102
- package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
- package/fesm2020/vcomply-workflow-engine.mjs +140 -99
- package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/workflow/grc-object/grc-object.module.d.ts +2 -1
- package/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.d.ts +2 -1
- package/lib/workflow/shared/workflow-pipes/unique-responsibilities.pipe.d.ts +7 -0
- package/lib/workflow/shared/workflow-pipes/workflow-pipes.module.d.ts +3 -2
- package/package.json +1 -1
package/esm2020/lib/workflow/grc-object/grc-object-container/grc-object-container.component.mjs
CHANGED
|
@@ -21,6 +21,7 @@ import * as i12 from "../../shared/components/edit-mode/edit-mode.component";
|
|
|
21
21
|
import * as i13 from "../../shared/components/attributes/attributes.component";
|
|
22
22
|
import * as i14 from "../../../ui-kit/smiley-dialog-inline/smiley-dialog-inline.component";
|
|
23
23
|
import * as i15 from "../../../sharedComponents/v-loader/loader-inline/loader-inline.component";
|
|
24
|
+
import * as i16 from "../../shared/workflow-pipes/unique-responsibilities.pipe";
|
|
24
25
|
export class GrcObjectContainerComponent {
|
|
25
26
|
constructor(grcService, apiService, authService, uiKitService) {
|
|
26
27
|
this.grcService = grcService;
|
|
@@ -772,7 +773,7 @@ export class GrcObjectContainerComponent {
|
|
|
772
773
|
program: {
|
|
773
774
|
programId: data?.parentId,
|
|
774
775
|
},
|
|
775
|
-
category: [].concat.apply([], Object.values(data?.category_id)),
|
|
776
|
+
category: [data?.parentId].concat.apply([], Object.values(data?.category_id)),
|
|
776
777
|
responsibility: data?.responsibility_ids || [],
|
|
777
778
|
};
|
|
778
779
|
});
|
|
@@ -814,7 +815,7 @@ export class GrcObjectContainerComponent {
|
|
|
814
815
|
}
|
|
815
816
|
}
|
|
816
817
|
GrcObjectContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GrcObjectContainerComponent, deps: [{ token: i1.GrcService }, { token: i2.ResponsibilityService }, { token: i3.AuthService }, { token: i4.UiKitService }], target: i0.ɵɵFactoryTarget.Component });
|
|
817
|
-
GrcObjectContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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\">\r\n <div class=\"workflow-grc\">\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n *ngIf=\"!isLoading\"\r\n >\r\n <lib-text-field-icon\r\n [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n [cdnLink]=\"CDN_LINK.grcType\"\r\n [isChecked]=\"true\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n GRC OBJECT TYPE<span class=\"required\">*</span>\r\n </label>\r\n <div class=\"select\">\r\n <tab-selector\r\n [selectedItem]=\"grcPayload.type\"\r\n [displayArray]=\"OBJECT_TYPE\"\r\n (onValueChanged)=\"changeAttributesType($event)\"\r\n ></tab-selector>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Object name field -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.name &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [isEditMode]=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\"\r\n [titleText]=\"ALL_TEXT?.grcObjectName\"\r\n [placeholderText]=\"ALL_TEXT?.grcObjectPlaceholder\"\r\n [(textValue)]=\"grcPayload.name\"\r\n (textValueChange)=\"onTextChange($event)\"\r\n (clickOutside)=\"onClickOutside()\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.name)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcObjectName\"\r\n [isChecked]=\"grcPayload.name\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\"\r\n [selectedData]=\"[grcPayload]\"\r\n [type]=\"'text'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.name)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n <p\r\n *ngIf=\"grcValidationCheck || isDuplicateName\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n error-message\r\n >\r\n {{ grcNameValidationError }}\r\n </p>\r\n <vcomply-editor\r\n [editorConfig]=\"EDITOR_CONFIG\"\r\n [(ngModel)]=\"grcPayload.description\"\r\n rich-text-editor\r\n ></vcomply-editor>\r\n </lib-text-field>\r\n\r\n <!-- Specify Owners -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.owner &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE.owner\"\r\n [isEditMode]=\"\r\n listObject.OWNER?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.owner\r\n \"\r\n [titleText]=\"ALL_TEXT?.grcOwnersTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcOwnersPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.owner)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcOwners\"\r\n [isChecked]=\"listObject.OWNER?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.OWNER?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.owner\r\n \"\r\n [nonRemovableIds]=\"disabledIds\"\r\n [countColor]=\"'greenBg'\"\r\n [selectedData]=\"listObject.OWNER?.selectedData\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.owner)\"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.owner)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n </lib-text-field>\r\n\r\n <!-- Link Responsibility Centers (RC) -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.RC &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE.RC\"\r\n [isEditMode]=\"\r\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\r\n \"\r\n [titleText]=\"ALL_TEXT?.grcRCTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcRCPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.RC)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcRC\"\r\n [isChecked]=\"listObject.RC?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.RC)\"\r\n [selectedData]=\"listObject.RC?.selectedData\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.RC)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n <p\r\n *ngIf=\"isFormSubmitted && !listObject.RC?.selectedData?.length\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n error-message\r\n >\r\n {{ VALIDATION_MESSAGE.grcRC }}\r\n </p>\r\n </lib-text-field>\r\n\r\n <!-- Link Program and Responsibility -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.programResponsibility &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.programResponsibility\"\r\n *ngIf=\"grcForm?.linkProgram\"\r\n [titleText]=\"ALL_TEXT?.grcProgramResponsibilityTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcProgramResponsibilityPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.programResponsibility)\"\r\n [isEditMode]=\"\r\n listObject?.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.programResponsibility\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkOthers\"\r\n [isChecked]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.PROGRAM_RESPONSIBILITY\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.programResponsibility)\"\r\n [selectedData]=\"selectedResponsibility\"\r\n [nameDisplayKey]=\"'ReportName'\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.programResponsibility)\"\r\n edit-mode\r\n >\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n\r\n <!-- Link Risk Categories and Risk -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.riskCategory &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.riskCategory\"\r\n *ngIf=\"grcForm?.linkRisk\"\r\n [titleText]=\"ALL_TEXT?.grcRiskCategoryTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcRiskCategoryPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.riskCategory)\"\r\n [isEditMode]=\"\r\n listObject?.RISK_CATEGORY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.riskCategory\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkGRC\"\r\n [isChecked]=\"listObject.RISK_CATEGORY?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.RISK_CATEGORY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.RISK_CATEGORY\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.riskCategory)\"\r\n [selectedData]=\"selectedRisks\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.riskCategory, data?.key)\"\r\n edit-mode\r\n >\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n </div>\r\n\r\n <!-- Link Other GRC Objects -->\r\n <lib-text-field\r\n *ngIf=\"grcForm?.otherGrcObjects\"\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.otherGrcObjects &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.otherGrcObjects\"\r\n [titleText]=\"ALL_TEXT?.otherGRCObjectsTitle\"\r\n [placeholderText]=\"ALL_TEXT?.otherGRCObjectsPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.otherGrcObjects)\"\r\n [isEditMode]=\"\r\n listObject?.OTHER_GRC_OBJECTS?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.otherGrcObjects\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkOthers\"\r\n [isChecked]=\"listObject?.OTHER_GRC_OBJECTS?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngFor=\"let data of GRC_TYPE_ARRAY\"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.otherGrcObjects)\"\r\n [selectedData]=\"grcDataWithTypes[data]\"\r\n [type]=\"'list'\"\r\n [isMultiple]=\"true\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.otherGrcObjects, data)\"\r\n edit-mode\r\n >\r\n <div\r\n class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\r\n >\r\n {{ data | titlecase }}\r\n </div>\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n <lib-attributes\r\n [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n *ngIf=\"selectedAttributes?.attributes?.length && this.grcForm.grcObjectType\"\r\n [attributesInfo]=\"selectedAttributes\"\r\n [isFormSubmitted]=\"isFormSubmitted\"\r\n (onClick)=\"getAttributeSelection($event)\"\r\n ></lib-attributes>\r\n <lib-list-popup\r\n [openedPopup]=\"openedPopup\"\r\n [listObject]=\"listObject\"\r\n [tableCard]=\"otherGRCCard\"\r\n [otherGrcCardLoader]=\"grcTabLoader\"\r\n [GRCSelectedTab]=\"GRCSelectedTab\"\r\n [mode]=\"MODE\"\r\n [onEditGRCId]=\"ID\"\r\n (onSaveSelectedList)=\"onSaveSelectedList($event)\"\r\n (getOtherGRCObjects)=\"getOtherGRCObjects($event)\"\r\n ></lib-list-popup>\r\n</ng-container>\r\n<app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"smileyMessage\"\r\n [actionButtons]=\"actionButtons\"\r\n (action)=\"smileyActions($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\"\r\n></app-smiley-dialog-inline>\r\n<app-loader-inline *ngIf=\"isLoading\"></app-loader-inline>\r\n", 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 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 .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:#ffffff;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:#ffffff}::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:#ffffff;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{-webkit-appearance:none;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:#ffffff;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:#ffffff;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:#ffffff;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 vcomply-editor{margin-top:8px;display:block}::ng-deep .vx-form-group vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group 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 vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group 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 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 vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group 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 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 vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group 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:#ffffff}::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.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:208px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top: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:#ffffff;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:#ffffff;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:#ffffff;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:#ffffff;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}dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}dp-date-picker input:focus{outline:none}dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}dp-date-picker .dp-popup dp-day-calendar,dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}dp-date-picker .dp-popup dp-day-calendar button,dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-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}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,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}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,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}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,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}dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@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:#ffffff}::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%,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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:#ffffff}::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%,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.TextFieldComponent, selector: "lib-text-field", inputs: ["titleText", "placeholderText", "textValue", "isReadOnly", "isEditMode", "disabled", "active"], outputs: ["textValueChange", "onClick", "clickOutside"] }, { kind: "component", type: i8.TextFieldIconComponent, selector: "lib-text-field-icon", inputs: ["cdnLink", "altName", "isChecked"] }, { kind: "component", type: i9.MarxEditorComponent, selector: "vcomply-editor", inputs: ["editorConfig"], outputs: ["comment", "sendSavedFiles", "popup"] }, { kind: "component", type: i10.ListPopupComponent, selector: "lib-list-popup", inputs: ["openedPopup", "listObject", "tableCard", "GRCSelectedTab", "onEditGRCId", "mode"], outputs: ["onSaveSelectedList", "getOtherGRCObjects"] }, { kind: "component", type: i11.TabSelector, selector: "tab-selector", inputs: ["disabled", "selectedItem", "displayArray"], outputs: ["onValueChanged"] }, { kind: "component", type: i12.EditModeComponent, selector: "lib-edit-mode", inputs: ["selectedData", "type", "nonRemovableIds", "isMultiple", "countColor", "nameDisplayKey"], outputs: ["isOnEdit", "onRemoveData"] }, { kind: "component", type: i13.AttributesComponent, selector: "lib-attributes", inputs: ["attributesInfo", "isFormSubmitted", "disabled"], outputs: ["onAttributesSelection", "onClick"] }, { kind: "component", type: i14.SmileyDialogInlineComponent, selector: "app-smiley-dialog-inline", inputs: ["message", "actionButtons"], outputs: ["action", "closeSmiley"] }, { kind: "component", type: i15.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }] });
|
|
818
|
+
GrcObjectContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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\">\r\n <div class=\"workflow-grc\">\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n *ngIf=\"!isLoading\"\r\n >\r\n <lib-text-field-icon\r\n [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n [cdnLink]=\"CDN_LINK.grcType\"\r\n [isChecked]=\"true\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n GRC OBJECT TYPE<span class=\"required\">*</span>\r\n </label>\r\n <div class=\"select\">\r\n <tab-selector\r\n [selectedItem]=\"grcPayload.type\"\r\n [displayArray]=\"OBJECT_TYPE\"\r\n (onValueChanged)=\"changeAttributesType($event)\"\r\n ></tab-selector>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Object name field -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.name &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [isEditMode]=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\"\r\n [titleText]=\"ALL_TEXT?.grcObjectName\"\r\n [placeholderText]=\"ALL_TEXT?.grcObjectPlaceholder\"\r\n [(textValue)]=\"grcPayload.name\"\r\n (textValueChange)=\"onTextChange($event)\"\r\n (clickOutside)=\"onClickOutside()\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.name)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcObjectName\"\r\n [isChecked]=\"grcPayload.name\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\"\r\n [selectedData]=\"[grcPayload]\"\r\n [type]=\"'text'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.name)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n <p\r\n *ngIf=\"grcValidationCheck || isDuplicateName\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n error-message\r\n >\r\n {{ grcNameValidationError }}\r\n </p>\r\n <vcomply-editor\r\n [editorConfig]=\"EDITOR_CONFIG\"\r\n [(ngModel)]=\"grcPayload.description\"\r\n rich-text-editor\r\n ></vcomply-editor>\r\n </lib-text-field>\r\n\r\n <!-- Specify Owners -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.owner &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE.owner\"\r\n [isEditMode]=\"\r\n listObject.OWNER?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.owner\r\n \"\r\n [titleText]=\"ALL_TEXT?.grcOwnersTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcOwnersPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.owner)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcOwners\"\r\n [isChecked]=\"listObject.OWNER?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.OWNER?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.owner\r\n \"\r\n [nonRemovableIds]=\"disabledIds\"\r\n [countColor]=\"'greenBg'\"\r\n [selectedData]=\"listObject.OWNER?.selectedData\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.owner)\"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.owner)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n </lib-text-field>\r\n\r\n <!-- Link Responsibility Centers (RC) -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.RC &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE.RC\"\r\n [isEditMode]=\"\r\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\r\n \"\r\n [titleText]=\"ALL_TEXT?.grcRCTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcRCPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.RC)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcRC\"\r\n [isChecked]=\"listObject.RC?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.RC)\"\r\n [selectedData]=\"listObject.RC?.selectedData\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.RC)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n <p\r\n *ngIf=\"isFormSubmitted && !listObject.RC?.selectedData?.length\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n error-message\r\n >\r\n {{ VALIDATION_MESSAGE.grcRC }}\r\n </p>\r\n </lib-text-field>\r\n\r\n <!-- Link Program and Responsibility -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.programResponsibility &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.programResponsibility\"\r\n *ngIf=\"grcForm?.linkProgram\"\r\n [titleText]=\"ALL_TEXT?.grcProgramResponsibilityTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcProgramResponsibilityPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.programResponsibility)\"\r\n [isEditMode]=\"\r\n listObject?.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.programResponsibility\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkOthers\"\r\n [isChecked]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.PROGRAM_RESPONSIBILITY\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.programResponsibility)\"\r\n [selectedData]=\"selectedResponsibility | uniqueResponsibilities : 'entireObject'\"\r\n [nameDisplayKey]=\"'ReportName'\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.programResponsibility)\"\r\n edit-mode\r\n >\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n\r\n <!-- Link Risk Categories and Risk -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.riskCategory &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.riskCategory\"\r\n *ngIf=\"grcForm?.linkRisk\"\r\n [titleText]=\"ALL_TEXT?.grcRiskCategoryTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcRiskCategoryPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.riskCategory)\"\r\n [isEditMode]=\"\r\n listObject?.RISK_CATEGORY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.riskCategory\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkGRC\"\r\n [isChecked]=\"listObject.RISK_CATEGORY?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.RISK_CATEGORY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.RISK_CATEGORY\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.riskCategory)\"\r\n [selectedData]=\"selectedRisks\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.riskCategory, data?.key)\"\r\n edit-mode\r\n >\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n </div>\r\n\r\n <!-- Link Other GRC Objects -->\r\n <lib-text-field\r\n *ngIf=\"grcForm?.otherGrcObjects\"\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.otherGrcObjects &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.otherGrcObjects\"\r\n [titleText]=\"ALL_TEXT?.otherGRCObjectsTitle\"\r\n [placeholderText]=\"ALL_TEXT?.otherGRCObjectsPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.otherGrcObjects)\"\r\n [isEditMode]=\"\r\n listObject?.OTHER_GRC_OBJECTS?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.otherGrcObjects\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkOthers\"\r\n [isChecked]=\"listObject?.OTHER_GRC_OBJECTS?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngFor=\"let data of GRC_TYPE_ARRAY\"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.otherGrcObjects)\"\r\n [selectedData]=\"grcDataWithTypes[data]\"\r\n [type]=\"'list'\"\r\n [isMultiple]=\"true\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.otherGrcObjects, data)\"\r\n edit-mode\r\n >\r\n <div\r\n class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\r\n >\r\n {{ data | titlecase }}\r\n </div>\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n <lib-attributes\r\n [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n *ngIf=\"selectedAttributes?.attributes?.length && this.grcForm.grcObjectType\"\r\n [attributesInfo]=\"selectedAttributes\"\r\n [isFormSubmitted]=\"isFormSubmitted\"\r\n (onClick)=\"getAttributeSelection($event)\"\r\n ></lib-attributes>\r\n <lib-list-popup\r\n [openedPopup]=\"openedPopup\"\r\n [listObject]=\"listObject\"\r\n [tableCard]=\"otherGRCCard\"\r\n [otherGrcCardLoader]=\"grcTabLoader\"\r\n [GRCSelectedTab]=\"GRCSelectedTab\"\r\n [mode]=\"MODE\"\r\n [onEditGRCId]=\"ID\"\r\n (onSaveSelectedList)=\"onSaveSelectedList($event)\"\r\n (getOtherGRCObjects)=\"getOtherGRCObjects($event)\"\r\n ></lib-list-popup>\r\n</ng-container>\r\n<app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"smileyMessage\"\r\n [actionButtons]=\"actionButtons\"\r\n (action)=\"smileyActions($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\"\r\n></app-smiley-dialog-inline>\r\n<app-loader-inline *ngIf=\"isLoading\"></app-loader-inline>\r\n", 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 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 .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:#ffffff;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:#ffffff}::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:#ffffff;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{-webkit-appearance:none;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:#ffffff;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:#ffffff;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:#ffffff;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 vcomply-editor{margin-top:8px;display:block}::ng-deep .vx-form-group vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group 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 vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group 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 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 vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group 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 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 vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group 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:#ffffff}::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.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:208px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top: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:#ffffff;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:#ffffff;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:#ffffff;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:#ffffff;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}dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}dp-date-picker input:focus{outline:none}dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}dp-date-picker .dp-popup dp-day-calendar,dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}dp-date-picker .dp-popup dp-day-calendar button,dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-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}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,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}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,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}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,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}dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@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:#ffffff}::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%,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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:#ffffff}::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%,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.TextFieldComponent, selector: "lib-text-field", inputs: ["titleText", "placeholderText", "textValue", "isReadOnly", "isEditMode", "disabled", "active"], outputs: ["textValueChange", "onClick", "clickOutside"] }, { kind: "component", type: i8.TextFieldIconComponent, selector: "lib-text-field-icon", inputs: ["cdnLink", "altName", "isChecked"] }, { kind: "component", type: i9.MarxEditorComponent, selector: "vcomply-editor", inputs: ["editorConfig"], outputs: ["comment", "sendSavedFiles", "popup"] }, { kind: "component", type: i10.ListPopupComponent, selector: "lib-list-popup", inputs: ["openedPopup", "listObject", "tableCard", "GRCSelectedTab", "onEditGRCId", "mode"], outputs: ["onSaveSelectedList", "getOtherGRCObjects"] }, { kind: "component", type: i11.TabSelector, selector: "tab-selector", inputs: ["disabled", "selectedItem", "displayArray"], outputs: ["onValueChanged"] }, { kind: "component", type: i12.EditModeComponent, selector: "lib-edit-mode", inputs: ["selectedData", "type", "nonRemovableIds", "isMultiple", "countColor", "nameDisplayKey"], outputs: ["isOnEdit", "onRemoveData"] }, { kind: "component", type: i13.AttributesComponent, selector: "lib-attributes", inputs: ["attributesInfo", "isFormSubmitted", "disabled"], outputs: ["onAttributesSelection", "onClick"] }, { kind: "component", type: i14.SmileyDialogInlineComponent, selector: "app-smiley-dialog-inline", inputs: ["message", "actionButtons"], outputs: ["action", "closeSmiley"] }, { kind: "component", type: i15.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i16.UniqueResponsibilitiesPipe, name: "uniqueResponsibilities" }] });
|
|
818
819
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GrcObjectContainerComponent, decorators: [{
|
|
819
820
|
type: Component,
|
|
820
821
|
args: [{ selector: 'lib-grc-object-container', outputs: [
|
|
@@ -824,6 +825,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
824
825
|
'disconnectRefresh',
|
|
825
826
|
'resetForm',
|
|
826
827
|
'hideElementsFromMoreOptions',
|
|
827
|
-
], inputs: ['grcType', 'MODE', 'ID'], template: "<ng-container *ngIf=\"!showSmiley\">\r\n <div class=\"workflow-grc\">\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n *ngIf=\"!isLoading\"\r\n >\r\n <lib-text-field-icon\r\n [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n [cdnLink]=\"CDN_LINK.grcType\"\r\n [isChecked]=\"true\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n GRC OBJECT TYPE<span class=\"required\">*</span>\r\n </label>\r\n <div class=\"select\">\r\n <tab-selector\r\n [selectedItem]=\"grcPayload.type\"\r\n [displayArray]=\"OBJECT_TYPE\"\r\n (onValueChanged)=\"changeAttributesType($event)\"\r\n ></tab-selector>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Object name field -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.name &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [isEditMode]=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\"\r\n [titleText]=\"ALL_TEXT?.grcObjectName\"\r\n [placeholderText]=\"ALL_TEXT?.grcObjectPlaceholder\"\r\n [(textValue)]=\"grcPayload.name\"\r\n (textValueChange)=\"onTextChange($event)\"\r\n (clickOutside)=\"onClickOutside()\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.name)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcObjectName\"\r\n [isChecked]=\"grcPayload.name\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\"\r\n [selectedData]=\"[grcPayload]\"\r\n [type]=\"'text'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.name)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n <p\r\n *ngIf=\"grcValidationCheck || isDuplicateName\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n error-message\r\n >\r\n {{ grcNameValidationError }}\r\n </p>\r\n <vcomply-editor\r\n [editorConfig]=\"EDITOR_CONFIG\"\r\n [(ngModel)]=\"grcPayload.description\"\r\n rich-text-editor\r\n ></vcomply-editor>\r\n </lib-text-field>\r\n\r\n <!-- Specify Owners -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.owner &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE.owner\"\r\n [isEditMode]=\"\r\n listObject.OWNER?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.owner\r\n \"\r\n [titleText]=\"ALL_TEXT?.grcOwnersTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcOwnersPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.owner)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcOwners\"\r\n [isChecked]=\"listObject.OWNER?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.OWNER?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.owner\r\n \"\r\n [nonRemovableIds]=\"disabledIds\"\r\n [countColor]=\"'greenBg'\"\r\n [selectedData]=\"listObject.OWNER?.selectedData\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.owner)\"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.owner)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n </lib-text-field>\r\n\r\n <!-- Link Responsibility Centers (RC) -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.RC &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE.RC\"\r\n [isEditMode]=\"\r\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\r\n \"\r\n [titleText]=\"ALL_TEXT?.grcRCTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcRCPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.RC)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcRC\"\r\n [isChecked]=\"listObject.RC?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.RC)\"\r\n [selectedData]=\"listObject.RC?.selectedData\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.RC)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n <p\r\n *ngIf=\"isFormSubmitted && !listObject.RC?.selectedData?.length\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n error-message\r\n >\r\n {{ VALIDATION_MESSAGE.grcRC }}\r\n </p>\r\n </lib-text-field>\r\n\r\n <!-- Link Program and Responsibility -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.programResponsibility &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.programResponsibility\"\r\n *ngIf=\"grcForm?.linkProgram\"\r\n [titleText]=\"ALL_TEXT?.grcProgramResponsibilityTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcProgramResponsibilityPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.programResponsibility)\"\r\n [isEditMode]=\"\r\n listObject?.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.programResponsibility\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkOthers\"\r\n [isChecked]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.PROGRAM_RESPONSIBILITY\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.programResponsibility)\"\r\n [selectedData]=\"selectedResponsibility\"\r\n [nameDisplayKey]=\"'ReportName'\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.programResponsibility)\"\r\n edit-mode\r\n >\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n\r\n <!-- Link Risk Categories and Risk -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.riskCategory &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.riskCategory\"\r\n *ngIf=\"grcForm?.linkRisk\"\r\n [titleText]=\"ALL_TEXT?.grcRiskCategoryTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcRiskCategoryPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.riskCategory)\"\r\n [isEditMode]=\"\r\n listObject?.RISK_CATEGORY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.riskCategory\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkGRC\"\r\n [isChecked]=\"listObject.RISK_CATEGORY?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.RISK_CATEGORY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.RISK_CATEGORY\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.riskCategory)\"\r\n [selectedData]=\"selectedRisks\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.riskCategory, data?.key)\"\r\n edit-mode\r\n >\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n </div>\r\n\r\n <!-- Link Other GRC Objects -->\r\n <lib-text-field\r\n *ngIf=\"grcForm?.otherGrcObjects\"\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.otherGrcObjects &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.otherGrcObjects\"\r\n [titleText]=\"ALL_TEXT?.otherGRCObjectsTitle\"\r\n [placeholderText]=\"ALL_TEXT?.otherGRCObjectsPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.otherGrcObjects)\"\r\n [isEditMode]=\"\r\n listObject?.OTHER_GRC_OBJECTS?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.otherGrcObjects\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkOthers\"\r\n [isChecked]=\"listObject?.OTHER_GRC_OBJECTS?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngFor=\"let data of GRC_TYPE_ARRAY\"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.otherGrcObjects)\"\r\n [selectedData]=\"grcDataWithTypes[data]\"\r\n [type]=\"'list'\"\r\n [isMultiple]=\"true\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.otherGrcObjects, data)\"\r\n edit-mode\r\n >\r\n <div\r\n class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\r\n >\r\n {{ data | titlecase }}\r\n </div>\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n <lib-attributes\r\n [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n *ngIf=\"selectedAttributes?.attributes?.length && this.grcForm.grcObjectType\"\r\n [attributesInfo]=\"selectedAttributes\"\r\n [isFormSubmitted]=\"isFormSubmitted\"\r\n (onClick)=\"getAttributeSelection($event)\"\r\n ></lib-attributes>\r\n <lib-list-popup\r\n [openedPopup]=\"openedPopup\"\r\n [listObject]=\"listObject\"\r\n [tableCard]=\"otherGRCCard\"\r\n [otherGrcCardLoader]=\"grcTabLoader\"\r\n [GRCSelectedTab]=\"GRCSelectedTab\"\r\n [mode]=\"MODE\"\r\n [onEditGRCId]=\"ID\"\r\n (onSaveSelectedList)=\"onSaveSelectedList($event)\"\r\n (getOtherGRCObjects)=\"getOtherGRCObjects($event)\"\r\n ></lib-list-popup>\r\n</ng-container>\r\n<app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"smileyMessage\"\r\n [actionButtons]=\"actionButtons\"\r\n (action)=\"smileyActions($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\"\r\n></app-smiley-dialog-inline>\r\n<app-loader-inline *ngIf=\"isLoading\"></app-loader-inline>\r\n", 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 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 .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:#ffffff;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:#ffffff}::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:#ffffff;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{-webkit-appearance:none;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:#ffffff;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:#ffffff;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:#ffffff;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 vcomply-editor{margin-top:8px;display:block}::ng-deep .vx-form-group vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group 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 vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group 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 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 vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group 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 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 vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group 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:#ffffff}::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.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:208px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top: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:#ffffff;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:#ffffff;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:#ffffff;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:#ffffff;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}dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}dp-date-picker input:focus{outline:none}dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}dp-date-picker .dp-popup dp-day-calendar,dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}dp-date-picker .dp-popup dp-day-calendar button,dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-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}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,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}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,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}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,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}dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@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:#ffffff}::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%,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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:#ffffff}::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%,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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}\n"] }]
|
|
828
|
+
], inputs: ['grcType', 'MODE', 'ID'], template: "<ng-container *ngIf=\"!showSmiley\">\r\n <div class=\"workflow-grc\">\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n *ngIf=\"!isLoading\"\r\n >\r\n <lib-text-field-icon\r\n [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n [cdnLink]=\"CDN_LINK.grcType\"\r\n [isChecked]=\"true\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n GRC OBJECT TYPE<span class=\"required\">*</span>\r\n </label>\r\n <div class=\"select\">\r\n <tab-selector\r\n [selectedItem]=\"grcPayload.type\"\r\n [displayArray]=\"OBJECT_TYPE\"\r\n (onValueChanged)=\"changeAttributesType($event)\"\r\n ></tab-selector>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Object name field -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.name &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [isEditMode]=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\"\r\n [titleText]=\"ALL_TEXT?.grcObjectName\"\r\n [placeholderText]=\"ALL_TEXT?.grcObjectPlaceholder\"\r\n [(textValue)]=\"grcPayload.name\"\r\n (textValueChange)=\"onTextChange($event)\"\r\n (clickOutside)=\"onClickOutside()\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.name)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcObjectName\"\r\n [isChecked]=\"grcPayload.name\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"grcPayload.name && openedPopup !== INPUT_TYPE.name\"\r\n [selectedData]=\"[grcPayload]\"\r\n [type]=\"'text'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.name)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n <p\r\n *ngIf=\"grcValidationCheck || isDuplicateName\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n error-message\r\n >\r\n {{ grcNameValidationError }}\r\n </p>\r\n <vcomply-editor\r\n [editorConfig]=\"EDITOR_CONFIG\"\r\n [(ngModel)]=\"grcPayload.description\"\r\n rich-text-editor\r\n ></vcomply-editor>\r\n </lib-text-field>\r\n\r\n <!-- Specify Owners -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.owner &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE.owner\"\r\n [isEditMode]=\"\r\n listObject.OWNER?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.owner\r\n \"\r\n [titleText]=\"ALL_TEXT?.grcOwnersTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcOwnersPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.owner)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcOwners\"\r\n [isChecked]=\"listObject.OWNER?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.OWNER?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.owner\r\n \"\r\n [nonRemovableIds]=\"disabledIds\"\r\n [countColor]=\"'greenBg'\"\r\n [selectedData]=\"listObject.OWNER?.selectedData\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.owner)\"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.owner)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n </lib-text-field>\r\n\r\n <!-- Link Responsibility Centers (RC) -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE.RC &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE.RC\"\r\n [isEditMode]=\"\r\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\r\n \"\r\n [titleText]=\"ALL_TEXT?.grcRCTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcRCPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.RC)\"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.grcRC\"\r\n [isChecked]=\"listObject.RC?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n <span class=\"required\" is-required>*</span>\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.RC?.selectedData?.length && openedPopup !== INPUT_TYPE.RC\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE.RC)\"\r\n [selectedData]=\"listObject.RC?.selectedData\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.RC)\"\r\n edit-mode\r\n ></lib-edit-mode>\r\n <p\r\n *ngIf=\"isFormSubmitted && !listObject.RC?.selectedData?.length\"\r\n [appScrollInView]=\"true\"\r\n class=\"error-message\"\r\n error-message\r\n >\r\n {{ VALIDATION_MESSAGE.grcRC }}\r\n </p>\r\n </lib-text-field>\r\n\r\n <!-- Link Program and Responsibility -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.programResponsibility &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.programResponsibility\"\r\n *ngIf=\"grcForm?.linkProgram\"\r\n [titleText]=\"ALL_TEXT?.grcProgramResponsibilityTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcProgramResponsibilityPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.programResponsibility)\"\r\n [isEditMode]=\"\r\n listObject?.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.programResponsibility\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkOthers\"\r\n [isChecked]=\"listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.PROGRAM_RESPONSIBILITY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.PROGRAM_RESPONSIBILITY\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.programResponsibility)\"\r\n [selectedData]=\"selectedResponsibility | uniqueResponsibilities : 'entireObject'\"\r\n [nameDisplayKey]=\"'ReportName'\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.programResponsibility)\"\r\n edit-mode\r\n >\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n\r\n <!-- Link Risk Categories and Risk -->\r\n <lib-text-field\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.riskCategory &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.riskCategory\"\r\n *ngIf=\"grcForm?.linkRisk\"\r\n [titleText]=\"ALL_TEXT?.grcRiskCategoryTitle\"\r\n [placeholderText]=\"ALL_TEXT?.grcRiskCategoryPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.riskCategory)\"\r\n [isEditMode]=\"\r\n listObject?.RISK_CATEGORY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.riskCategory\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkGRC\"\r\n [isChecked]=\"listObject.RISK_CATEGORY?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngIf=\"\r\n listObject.RISK_CATEGORY?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE.RISK_CATEGORY\r\n \"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.riskCategory)\"\r\n [selectedData]=\"selectedRisks\"\r\n [type]=\"'list'\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.riskCategory, data?.key)\"\r\n edit-mode\r\n >\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n </div>\r\n\r\n <!-- Link Other GRC Objects -->\r\n <lib-text-field\r\n *ngIf=\"grcForm?.otherGrcObjects\"\r\n [disabled]=\"\r\n openedPopup &&\r\n openedPopup !== INPUT_TYPE?.otherGrcObjects &&\r\n dialogFields?.includes(openedPopup)\r\n \"\r\n [active]=\"openedPopup && openedPopup == INPUT_TYPE?.otherGrcObjects\"\r\n [titleText]=\"ALL_TEXT?.otherGRCObjectsTitle\"\r\n [placeholderText]=\"ALL_TEXT?.otherGRCObjectsPlaceholder\"\r\n [isReadOnly]=\"true\"\r\n (onClick)=\"onPopupOpen(INPUT_TYPE.otherGrcObjects)\"\r\n [isEditMode]=\"\r\n listObject?.OTHER_GRC_OBJECTS?.selectedData?.length &&\r\n openedPopup !== INPUT_TYPE?.otherGrcObjects\r\n \"\r\n >\r\n <lib-text-field-icon\r\n [cdnLink]=\"CDN_LINK.linkOthers\"\r\n [isChecked]=\"listObject?.OTHER_GRC_OBJECTS?.selectedData?.length > 0\"\r\n field-icons\r\n >\r\n </lib-text-field-icon>\r\n\r\n <lib-edit-mode\r\n *ngFor=\"let data of GRC_TYPE_ARRAY\"\r\n (onRemoveData)=\"onRemoveData($event, INPUT_TYPE?.otherGrcObjects)\"\r\n [selectedData]=\"grcDataWithTypes[data]\"\r\n [type]=\"'list'\"\r\n [isMultiple]=\"true\"\r\n (isOnEdit)=\"onEdit(INPUT_TYPE.otherGrcObjects, data)\"\r\n edit-mode\r\n >\r\n <div\r\n class=\"workflowLavel vx-fs-11 vx-fw-500 vx-pl-1 vx-pr-1 vx-lh-4 vx-mr-1 vx-text-center\"\r\n >\r\n {{ data | titlecase }}\r\n </div>\r\n </lib-edit-mode>\r\n </lib-text-field>\r\n <lib-attributes\r\n [disabled]=\"openedPopup && dialogFields?.includes(openedPopup)\"\r\n *ngIf=\"selectedAttributes?.attributes?.length && this.grcForm.grcObjectType\"\r\n [attributesInfo]=\"selectedAttributes\"\r\n [isFormSubmitted]=\"isFormSubmitted\"\r\n (onClick)=\"getAttributeSelection($event)\"\r\n ></lib-attributes>\r\n <lib-list-popup\r\n [openedPopup]=\"openedPopup\"\r\n [listObject]=\"listObject\"\r\n [tableCard]=\"otherGRCCard\"\r\n [otherGrcCardLoader]=\"grcTabLoader\"\r\n [GRCSelectedTab]=\"GRCSelectedTab\"\r\n [mode]=\"MODE\"\r\n [onEditGRCId]=\"ID\"\r\n (onSaveSelectedList)=\"onSaveSelectedList($event)\"\r\n (getOtherGRCObjects)=\"getOtherGRCObjects($event)\"\r\n ></lib-list-popup>\r\n</ng-container>\r\n<app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"smileyMessage\"\r\n [actionButtons]=\"actionButtons\"\r\n (action)=\"smileyActions($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\"\r\n></app-smiley-dialog-inline>\r\n<app-loader-inline *ngIf=\"isLoading\"></app-loader-inline>\r\n", 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 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 .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:#ffffff;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:#ffffff}::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:#ffffff;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{-webkit-appearance:none;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:#ffffff;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:#ffffff;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:#ffffff;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 vcomply-editor{margin-top:8px;display:block}::ng-deep .vx-form-group vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group 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 vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group 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 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 vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group 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 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 vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group 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:#ffffff}::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.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:208px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top: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:#ffffff;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:#ffffff;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:#ffffff;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:#ffffff;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}dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}dp-date-picker input:focus{outline:none}dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}dp-date-picker .dp-popup dp-day-calendar,dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}dp-date-picker .dp-popup dp-day-calendar button,dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-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}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,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}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,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}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,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}dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@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:#ffffff}::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%,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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:#ffffff}::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%,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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%,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);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}\n"] }]
|
|
828
829
|
}], ctorParameters: function () { return [{ type: i1.GrcService }, { type: i2.ResponsibilityService }, { type: i3.AuthService }, { type: i4.UiKitService }]; } });
|
|
829
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JjLW9iamVjdC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3cvZ3JjLW9iamVjdC9ncmMtb2JqZWN0LWNvbnRhaW5lci9ncmMtb2JqZWN0LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy9ncmMtb2JqZWN0L2dyYy1vYmplY3QtY29udGFpbmVyL2dyYy1vYmplY3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBV3hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUcvRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLDJCQUEyQixHQUM1QixNQUFNLDJDQUEyQyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQjNFLE1BQU0sT0FBTywyQkFBMkI7SUFpRnRDLFlBQ1UsVUFBc0IsRUFDdEIsVUFBaUMsRUFDakMsV0FBd0IsRUFDeEIsWUFBMEI7UUFIMUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUNqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXBGcEMsU0FBSSxHQUFzQixRQUFRLENBQUM7UUFDbkMsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUNoQixhQUFRLEdBQUcsVUFBVSxDQUFDO1FBQ3RCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsdUJBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxjQUFjLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ3pDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFFMUQsZUFBVSxHQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLGtCQUFhLEdBQVcsZUFBZSxDQUFDLGNBQWMsQ0FBQztRQUN2RCxlQUFVLEdBQWM7WUFDdEIsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsT0FBTztZQUNkLEVBQUUsRUFBRSxJQUFJO1lBQ1IsWUFBWSxFQUFFLGVBQWU7WUFDN0IsZUFBZSxFQUFFLG1CQUFtQjtZQUNwQyxxQkFBcUIsRUFBRSx3QkFBd0I7U0FDaEQsQ0FBQztRQUVGLGlCQUFZLEdBQWtCO1lBQzVCLElBQUk7WUFDSixPQUFPO1lBQ1AsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixZQUFZO1lBQ1osd0JBQXdCO1NBQ3pCLENBQUM7UUFDRixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixZQUFPLEdBQWtCLENBQUMsQ0FBQztRQUMzQixnQkFBVyxHQUFrQixFQUFFLENBQUM7UUFDaEMsZ0JBQVcsR0FBd0IsRUFBRSxDQUFDO1FBQ3RDLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIscUJBQWdCLEdBQVE7WUFDdEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsMEJBQTBCLEVBQUUsS0FBSztZQUNqQyxpQkFBaUIsRUFBRSxLQUFLO1NBQ3pCLENBQUM7UUFDRixZQUFPLEdBQVE7WUFDYixhQUFhLEVBQUUsS0FBSztZQUNwQixXQUFXLEVBQUUsS0FBSztZQUNsQixRQUFRLEVBQUUsS0FBSztZQUNmLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCLENBQUM7UUFJRixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGtCQUFhLEdBQWEsY0FBYyxDQUFDO1FBQ3pDLHFCQUFnQixHQUFRO1lBQ3RCLE1BQU0sRUFBRSxFQUFFO1lBQ1YsU0FBUyxFQUFFLEVBQUU7WUFDYixPQUFPLEVBQUUsRUFBRTtZQUNYLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztRQUNGLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLHFCQUFnQixHQUFHLG1CQUFtQixDQUFDO1FBQ3ZDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLDJCQUFzQixHQUFXLEVBQUUsQ0FBQztRQUNwQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQix1QkFBa0IsR0FBVSxFQUFFLENBQUM7UUFDL0Isa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFFMUIsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFDNUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsb0JBQWUsR0FBVSxFQUFFLENBQUM7UUFDNUIsMkJBQXNCLEdBQVUsRUFBRSxDQUFDO1FBRW5DLG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCxrQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3RELHNCQUFpQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFELGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsRCxnQ0FBMkIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdwRSxtQkFBYyxHQUFRLEVBQUUsQ0FBQztRQVF2QixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3BELE1BQU0sY0FBYyxHQUNsQixHQUFHLEVBQUUsV0FBVyxDQUNkLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxDQUNwRSxDQUFDO1lBQ0osSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7YUFDeEQ7WUFDRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUM5QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixzQkFBc0I7UUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDNUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3BELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDdkMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzVCO1NBQ0Y7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsV0FBVyxDQUFDLEtBQVU7UUFDcEIsUUFBUSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ25CLEtBQUssWUFBWTtnQkFDZixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxLQUFLLEVBQUUsT0FBTyxDQUFDO2dCQUM1QyxNQUFNO1lBQ1IsS0FBSyxjQUFjO2dCQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsT0FBTyxDQUFDO2dCQUMxQyxNQUFNO1lBQ1IsS0FBSyw0QkFBNEI7Z0JBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssRUFBRSxPQUFPLENBQUM7Z0JBQ3ZDLE1BQU07WUFDUixLQUFLLG1CQUFtQjtnQkFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQztnQkFDOUMsTUFBTTtTQUNUO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixZQUFZLENBQUMsS0FBVTtRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLFdBQVcsQ0FBQyxJQUF5QjtRQUNuQyxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxJQUFJO2dCQUNQLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUIsTUFBTTtZQUNSLEtBQUssbUJBQW1CO2dCQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUIsTUFBTTtZQUNSLEtBQUssZUFBZTtnQkFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLE1BQU07WUFDUixLQUFLLHdCQUF3QjtnQkFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLE1BQU07WUFDUixRQUFRO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssbUJBQW1CLEVBQUU7WUFDNUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7U0FDaEM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQVU7UUFDOUIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUM3RCxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDOUIsQ0FBQztTQUNIO1FBRUQsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ2pCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDMUQsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQ3pCLENBQUM7WUFDRixJQUNFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3RFO2dCQUNBLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQzVCO1NBQ0Y7UUFDRCxJQUFJLElBQUksS0FBSyxtQkFBbUIsRUFBRTtZQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWM7Z0JBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDaEQsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ3hCLENBQUM7U0FDTDtRQUNELElBQUksSUFBSSxLQUFLLGVBQWUsRUFBRTtZQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FDN0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUM3QyxDQUFDO1NBQ0g7UUFDRCxJQUFJLElBQUksS0FBSyx3QkFBd0IsRUFBRTtZQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQjtnQkFDbEMsSUFBSSxDQUFDLCtCQUErQixDQUNsQyxJQUFJLENBQUMsVUFBVSxFQUFFLHNCQUFzQixFQUFFLFlBQVksQ0FDdEQsQ0FBQztTQUNMO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWix3QkFBd0I7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFVLEVBQUUsT0FBZTtRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLEtBQUssS0FBSyxtQkFBbUIsRUFBRTtZQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDMUM7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLDRDQUE0QztTQUM3QztRQUNELElBQUksS0FBSyxLQUFLLGVBQWUsSUFBSSxLQUFLLEtBQUssd0JBQXdCLEVBQUU7WUFDbkUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FDVixLQUFVLEVBQ1YsSUFLNEI7UUFFNUIsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLElBQUk7Z0JBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzFELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUMzQixNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMxRCxNQUFNO1lBQ1IsS0FBSyxtQkFBbUI7Z0JBQ3RCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3hDLE1BQU07WUFDUixLQUFLLGVBQWU7Z0JBQ2xCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2pFLE1BQU07WUFDUixLQUFLLHdCQUF3QjtnQkFDM0IsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0MsTUFBTTtTQUNUO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBVTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN4QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsZUFBZSxDQUFDLGlCQUFpQixDQUFDO1NBQ3hEO2FBQU07WUFDTCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLDhCQUE4QjtTQUMvQjtJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDMUMsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztZQUNuRCxLQUFLLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFFLENBQUM7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssV0FBVyxDQUFDLFFBQWE7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUNwRSxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUN0QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbEQ7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FDbkUsZUFBZSxDQUNoQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztTQUN2RTthQUFNO1lBQ0wsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ2pFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUNqRSxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUNqRSxDQUFDO1lBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDaEUsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQzlCLENBQUM7SUFDSixDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3JDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FDM0MsQ0FBQzthQUNIO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3hDLElBQUksRUFBRSxDQUFDLElBQWUsRUFBRSxFQUFFO2dCQUN4Qiw2QkFBNkI7Z0JBQzdCLE1BQU0sWUFBWSxHQUFRO29CQUN4QixNQUFNLEVBQUUsT0FBTztvQkFDZixTQUFTLEVBQUUsU0FBUztvQkFDcEIsT0FBTyxFQUFFLFFBQVE7b0JBQ2pCLFNBQVMsRUFBRSxXQUFXO2lCQUN2QixDQUFDO2dCQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxLQUFhLEVBQUUsRUFBRTtvQkFDdkQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7b0JBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDO29CQUNyRSxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ2pDLENBQUM7Z0JBRUYsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtvQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVTt3QkFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7b0JBRTdCLElBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUMxQyxFQUNEO3dCQUNBLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQzt3QkFDbEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7d0JBQ3hDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO3FCQUMvQjtpQkFDRjtnQkFDRCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQztTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLElBQUksQ0FBQyxrQkFBa0I7WUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDL0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxTQUFTO1lBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUztnQkFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsU0FBUztnQkFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTO2dCQUMzQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBVztRQUM1QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDekM7UUFDRCxJQUFJLEtBQUssRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxLQUFLLEVBQUUsWUFBWSxFQUFFO1lBQ3RFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ25ELHNEQUFzRDtRQUN0RCxnQ0FBZ0M7UUFDaEMsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVTthQUN4QyxVQUFVLENBQUMsS0FBSyxDQUFDO2FBQ2pCLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDcEQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtnQkFDeEIsZ0VBQWdFO2dCQUNoRSxzRUFBc0U7Z0JBQ3RFLEtBQUs7Z0JBQ0wsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUU7b0JBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztvQkFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztvQkFDL0MsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7aUJBQy9CO2FBQ0Y7WUFDRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFXO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLHNEQUFzRDtRQUN0RCxnQ0FBZ0M7UUFDaEMsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQzdELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxpQkFBaUIsQ0FBQztZQUNyRCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7WUFDeEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxFQUFFLGtCQUFrQixDQUFDO1lBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxvQkFBb0IsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFXLEVBQUUsSUFBVSxJQUFHLENBQUM7SUFFL0MsMEJBQTBCO0lBRTFCLG1CQUFtQixDQUFDLEtBQWE7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDbkQsSUFBSSxFQUFFLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztnQkFFM0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZSxDQUFDLElBQVM7UUFDL0IsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUNwQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQy9DLElBQUksU0FBUyxHQUFRO2dCQUNuQixNQUFNLEVBQUUsRUFBRTtnQkFDVixTQUFTLEVBQUUsRUFBRTtnQkFDYixPQUFPLEVBQUUsRUFBRTtnQkFDWCxTQUFTLEVBQUUsRUFBRTthQUNkLENBQUM7WUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwRSxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUM7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUN6QixTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUM7WUFDbkQsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1lBQ2xDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUNPLGVBQWUsQ0FBQyxJQUFTO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxNQUFNLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxFQUFFLGNBQWMsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQjtZQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxFQUFFLG9CQUFvQixFQUFFLE1BQU07WUFDdkUsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7WUFDN0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksRUFBRSxVQUFVLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLEVBQUUsV0FBVyxDQUFDO1FBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksRUFBRSxTQUFTLENBQUM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxFQUFFLGNBQWMsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLDZCQUE2QjtZQUMzQyxJQUFJLEVBQUUsNkJBQTZCLENBQUM7SUFDeEMsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDO1NBQ2pFO1FBQ0QsSUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FDN0IsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FDM0IsRUFDRDtZQUNBLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNsQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUN4QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU87YUFDUjtZQUNELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUMxRCxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUM5QyxJQUFJLEVBQUUsQ0FBQyxJQUFTLEVBQUUsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO29CQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7b0JBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixDQUFDO2dCQUNELEtBQUssRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDdkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDNUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTt3QkFDaEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7d0JBQzVCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO3dCQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDOzRCQUNmLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYTt5QkFDL0MsQ0FBQyxDQUFDO3dCQUNILElBQUksQ0FBQyxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7cUJBQzdEO2dCQUNILENBQUM7YUFDRixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsT0FBTztTQUNSO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjthQUFNLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtZQUMzQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFFbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLEdBQVcsQ0FBQztRQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2hELEdBQUcsR0FBRyxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsdUJBQXVCLENBQUM7U0FDbEU7YUFBTTtZQUNMLEdBQUc7Z0JBQ0QsVUFBVTtvQkFDVixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUk7b0JBQ3BCLG9DQUFvQyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN4QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3RFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQVU7UUFDOUIsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsWUFBWTtZQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQ25ELENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLEtBQUssRUFBRSxHQUFHLENBQ3RDLENBQUM7UUFDSixJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWE7WUFDaEMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQztZQUNyRCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ04sSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQVUsRUFBRSxJQUFZO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUMvRCxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxLQUFLLEVBQUUsR0FBRyxDQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsZ0JBQWdCLEdBQUc7WUFDdEIsTUFBTSxFQUFFLEVBQUU7WUFDVixTQUFTLEVBQUUsRUFBRTtZQUNiLE9BQU8sRUFBRSxFQUFFO1lBQ1gsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQ2pELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUM7U0FDaEU7UUFDRCxPQUFPLENBQ0wsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUN4RSxDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQixDQUFDLFlBQWlCO1FBQ3RDLE1BQU0sbUJBQW1CLEdBQVEsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDN0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ2pDLG1CQUFtQixDQUFDLElBQUksQ0FBQztnQkFDdkIsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO2dCQUNoRCxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7YUFDeEQsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFFRCwrQkFBK0IsQ0FBQyxZQUFpQjtRQUMvQyxNQUFNLHlCQUF5QixHQUFRLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNqQyxNQUFNLFFBQVEsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQztZQUMxQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUM7Z0JBQzdCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixXQUFXLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUN0QyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FDM0MsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLENBQzlCO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLHlCQUF5QixDQUFDO0lBQ25DLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzFELE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMxRCxJQUFJLEVBQUUsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzVDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7b0JBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO29CQUM1QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztpQkFDN0Q7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELDRCQUE0QjtRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWM7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNoRCxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDeEIsQ0FBQztJQUNOLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxVQUFrQixFQUFFLElBQVM7UUFDOUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksYUFBYSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3hCLHFDQUFxQztZQUNyQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQzVELGFBQWEsQ0FDZCxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzVELElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQzFDLGFBQWEsQ0FDZCxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQy9CO1lBRUQsSUFDRSxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSztnQkFDaEUsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUNoQjtnQkFDQSwrQ0FBK0M7Z0JBQy9DLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3ZFO1NBQ0Y7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FDN0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELDRCQUE0QixDQUFDLGNBQW1CO1FBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsWUFBWTtZQUNqRCxJQUFJLENBQUMsVUFBVSxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxHQUFHLENBQ3hELENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxzQkFBc0IsR0FBRyxJQUFJLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FDdkQsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEtBQUssY0FBYyxFQUFFLEdBQUcsQ0FDakQsQ0FBQztnQkFDRixPQUFPO29CQUNMLEdBQUcsSUFBSTtvQkFDUCxjQUFjLEVBQUUsc0JBQXNCO29CQUN0QyxRQUFRLEVBQUU7d0JBQ1IsR0FBRyxDQUFDLElBQUksR0FBRyxDQUNULHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUNqRSxJQUFJLEVBQUUsQ0FBQztxQkFDVDtpQkFDRixDQUFDO1lBQ0osQ0FBQyxDQUNGLENBQUM7UUFFSixJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLFlBQVk7WUFDakQsSUFBSSxDQUFDLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUMxRCxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUNaLE9BQU8sSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLENBQUMsQ0FDRixDQUFDO1FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsK0JBQStCLENBQ3pFLElBQUksQ0FBQyxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxDQUN0RCxDQUFDO0lBQ0osQ0FBQztJQUVELHdCQUF3QixDQUFDLFVBQTZCO1FBQ3BELElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN6RCxxQ0FBcUM7WUFDckMsTUFBTSxrQkFBa0IsR0FDdEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FDcEQsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLGVBQWUsQ0FDckQsQ0FBQztZQUNKLElBQUksa0JBQWtCLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQzdCLE9BQU8sa0JBQWtCLENBQUM7YUFDM0I7U0FDRjthQUFNO1lBQ0wsYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQ3BFLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsS0FBSyxVQUFVLENBQ3hELENBQUM7U0FDSDtRQUNELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxjQUFjLENBQUMsVUFBZTtRQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDN0QsT0FBTztnQkFDTCxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUs7Z0JBQ2pCLEtBQUssRUFBRSxDQUFDO2dCQUNSLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7Z0JBQzlCLElBQUksRUFBRSxLQUFLO2FBQ1osQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGdCQUFnQixDQUFDLFlBQWlCO1FBQ2hDLElBQUksV0FBVyxHQUFHLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNoRCxJQUFJLElBQUksRUFBRSxXQUFXLElBQUksTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDdEUsT0FBTztvQkFDTCxHQUFHLElBQUk7b0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEMsQ0FBQzthQUNIO1lBQ0QsT0FBTztnQkFDTCxHQUFHLElBQUk7Z0JBQ1AsUUFBUSxFQUFFO29CQUNSLFdBQVcsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztpQkFDbEM7YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7WUFDeEQsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDL0I7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxZQUFpQjtRQUMxQyxJQUFJLFdBQVcsR0FBRyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDaEQsT0FBTztnQkFDTCxPQUFPLEVBQUU7b0JBQ1AsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRO2lCQUMxQjtnQkFDRCxRQUFRLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUMvRCxjQUFjLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixJQUFJLEVBQUU7YUFDL0MsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUMxQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUMvQjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztRQUNsRSxPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBVTtRQUMvQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUMxQixDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FDaEQsQ0FBQztRQUNGLE9BQU8sT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNyQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNkLEdBQUcsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUNoRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsR0FBRyxLQUFLLENBQUM7UUFDekQsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQzs7d0hBeDZCVSwyQkFBMkI7NEdBQTNCLDJCQUEyQixtV0MxQ3hDLDYxVkErU0E7MkZEclFhLDJCQUEyQjtrQkFkdkMsU0FBUzsrQkFDRSwwQkFBMEIsV0FHM0I7d0JBQ1AsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLDZCQUE2QjtxQkFDOUIsVUFDTyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZJRUxEX1RFWFQgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL2ZpZWxkLXRleHQuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBMSU5LUyB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMvY2RuLWxpbmsuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBWQUxJREFUSU9OX01FU1NBR0UgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL3ZhbGlkYXRpb24tbWVzc2FnZS5jb25zdGFudCc7XHJcbmltcG9ydCB7XHJcbiAgQWRkR3JjLFxyXG4gIEF0dHJpYnV0ZXMsXHJcbiAgQnV0dG9uLFxyXG4gIEdSQ1R5cGUsXHJcbiAgSW5wdXRUeXBlLFxyXG4gIExpc3RPYmplY3QsXHJcbiAgT3BlbmVkUG9wdXAsXHJcbiAgUkNMaXN0LFxyXG59IGZyb20gJy4uLy4uL3NoYXJlZC9pbnRlcmZhY2VzL2FkZC1ncmMnO1xyXG5pbXBvcnQgeyBHcmNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2dyYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVzcG9uc2liaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvcmVzcG9uc2liaWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBHUkNfVFlQRV9BUlJBWSxcclxuICBPVEhFUl9HUkNfQ0FSRCxcclxuICBPVEhFUl9HUkNfVEFCX0lOREVYLFxyXG4gIFNNSUxFWV9CVVRUT05TLFxyXG4gIFVOQ0FURUdPUklaRURfTElOS19DQVRFR09SWSxcclxufSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL2dyY09iamVjdC5jb25zdGFudCc7XHJcbmltcG9ydCB7IFNVQ0NFU1NfTUVTU0FHRSB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMvbWVzc2FnZS5jb250c3RhbnQnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVWlLaXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvdWkta2l0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZ3JjLW9iamVjdC1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmMtb2JqZWN0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JjLW9iamVjdC1jb250YWluZXIuY29tcG9uZW50Lmxlc3MnLCAnLi4vLi4vLi4vZm9ybXMubGVzcyddLFxyXG4gIG91dHB1dHM6IFtcclxuICAgICdwb3B1bGF0ZU9wdGlvbicsXHJcbiAgICAncGlja2VyQ2hhbmdlZCcsXHJcbiAgICAnY2xvc2VXb3JrZmxvdycsXHJcbiAgICAnZGlzY29ubmVjdFJlZnJlc2gnLFxyXG4gICAgJ3Jlc2V0Rm9ybScsXHJcbiAgICAnaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zJyxcclxuICBdLFxyXG4gIGlucHV0czogWydncmNUeXBlJywgJ01PREUnLCAnSUQnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyY09iamVjdENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBNT0RFOiAnQ1JFQVRFJyB8ICdFRElUJyA9ICdDUkVBVEUnO1xyXG4gIElEOiBzdHJpbmcgPSAnJztcclxuICBBTExfVEVYVCA9IEZJRUxEX1RFWFQ7XHJcbiAgQ0ROX0xJTksgPSBMSU5LUztcclxuICBWQUxJREFUSU9OX01FU1NBR0UgPSBWQUxJREFUSU9OX01FU1NBR0U7XHJcbiAgR1JDX1RZUEVfQVJSQVkgPSBHUkNfVFlQRV9BUlJBWTtcclxuICBFRElUT1JfQ09ORklHID0gR3JjU2VydmljZS5FRElUT1JfQ09ORklHO1xyXG4gIG90aGVyR1JDQ2FyZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoT1RIRVJfR1JDX0NBUkQpKTtcclxuICBPQkpFQ1RfVFlQRSE6IEdSQ1R5cGVbXTtcclxuICBMSVNUX1BPUFVQOiBBcnJheTxzdHJpbmc+ID0gWydSQyddO1xyXG4gIHNtaWxleU1lc3NhZ2U6IHN0cmluZyA9IFNVQ0NFU1NfTUVTU0FHRS5BRERfR1JDX09CSkVDVDtcclxuICBJTlBVVF9UWVBFOiBJbnB1dFR5cGUgPSB7XHJcbiAgICBuYW1lOiAnTkFNRScsXHJcbiAgICBvd25lcjogJ09XTkVSJyxcclxuICAgIFJDOiAnUkMnLFxyXG4gICAgcmlza0NhdGVnb3J5OiAnUklTS19DQVRFR09SWScsXHJcbiAgICBvdGhlckdyY09iamVjdHM6ICdPVEhFUl9HUkNfT0JKRUNUUycsXHJcbiAgICBwcm9ncmFtUmVzcG9uc2liaWxpdHk6ICdQUk9HUkFNX1JFU1BPTlNJQklMSVRZJyxcclxuICB9O1xyXG4gIE9SSUdJTkFMX0dSQ19BVFRSSUJVVEVTOiBhbnk7IC8vIERvbid0IGNoYW5nZSB0aGUgdmFsdWUgb25jZSBpdCBpcyBhc3NpZ25lZFxyXG4gIGRpYWxvZ0ZpZWxkczogQXJyYXk8c3RyaW5nPiA9IFtcclxuICAgICdSQycsXHJcbiAgICAnT1dORVInLFxyXG4gICAgJ09USEVSX0dSQ19PQkpFQ1RTJyxcclxuICAgICdSSVNLX0NBVEVHT1JZJyxcclxuICAgICdBVFRSSUJVVEVTJyxcclxuICAgICdQUk9HUkFNX1JFU1BPTlNJQklMSVRZJyxcclxuICBdO1xyXG4gIHNjcm9sbFRvQm90dG9tID0gZmFsc2U7XHJcbiAgZ3JjVHlwZTogMCB8IDEgfCAyIHwgMyA9IDA7XHJcbiAgZGlzYWJsZWRJZHM6IEFycmF5PG51bWJlcj4gPSBbXTtcclxuICBvcGVuZWRQb3B1cDogT3BlbmVkUG9wdXBbJ3R5cGUnXSA9ICcnO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgYWRkaXRpb25hbE9wdGlvbjogYW55ID0ge1xyXG4gICAgQVRUUklCVVRFUzogZmFsc2UsXHJcbiAgICBMSU5LX1BST0dSQU06IGZhbHNlLFxyXG4gICAgTElOS19SSVNLX0NBVEVHT1JJRVNfUklTS1M6IGZhbHNlLFxyXG4gICAgT1RIRVJfR1JDX09CSkVDVFM6IGZhbHNlLFxyXG4gIH07XHJcbiAgZ3JjRm9ybTogYW55ID0ge1xyXG4gICAgZ3JjT2JqZWN0VHlwZTogZmFsc2UsXHJcbiAgICBsaW5rUHJvZ3JhbTogZmFsc2UsXHJcbiAgICBsaW5rUmlzazogZmFsc2UsXHJcbiAgICBvdGhlckdyY09iamVjdHM6IGZhbHNlLFxyXG4gIH07XHJcbiAgZ3JjUGF5bG9hZCE6IEFkZEdyYztcclxuICBsaXN0T2JqZWN0ITogTGlzdE9iamVjdDtcclxuICBzZWxlY3RlZEF0dHJpYnV0ZXMhOiBHUkNUeXBlO1xyXG4gIHNob3dTbWlsZXk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhY3Rpb25CdXR0b25zOiBCdXR0b25bXSA9IFNNSUxFWV9CVVRUT05TO1xyXG4gIGdyY0RhdGFXaXRoVHlwZXM6IGFueSA9IHtcclxuICAgIGFzc2V0czogW10sXHJcbiAgICBwcm9jZXNzZXM6IFtdLFxyXG4gICAgdmVuZG9yczogW10sXHJcbiAgICBpbnZlbnRvcnk6IFtdLFxyXG4gIH07XHJcbiAgR1JDU2VsZWN0ZWRUYWI6IG51bWJlciA9IDA7XHJcbiAgb3RoZXJHUkNUYWJJbmRleCA9IE9USEVSX0dSQ19UQUJfSU5ERVg7XHJcbiAgaXNGb3JtU3VibWl0dGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZ3JjTmFtZVZhbGlkYXRpb25FcnJvcjogc3RyaW5nID0gJyc7XHJcbiAgaXNEdXBsaWNhdGVOYW1lOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGV0YWlsc0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkQ2F0ZWdvcmllczogYW55W10gPSBbXTtcclxuICBzZWxlY3RlZFJpc2tzOiBhbnlbXSA9IFtdO1xyXG4gIGFkZGVkR1JDOiBhbnk7XHJcbiAgb3RoZXJHUkNTZWFyY2g6IHN0cmluZyA9ICcnO1xyXG4gIGdyY1RhYkxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkUHJvZ3JhbTogYW55W10gPSBbXTtcclxuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5OiBhbnlbXSA9IFtdO1xyXG5cclxuICBwb3B1bGF0ZU9wdGlvbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcGlja2VyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgY2xvc2VXb3JrZmxvdzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgZGlzY29ubmVjdFJlZnJlc2g6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHJlc2V0Rm9ybTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgb3RoZXJHUkNTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgaGlkZU1vcmVPcHRpb246IGFueSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZ3JjU2VydmljZTogR3JjU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpU2VydmljZTogUmVzcG9uc2liaWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHVpS2l0U2VydmljZTogVWlLaXRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXJJbmZvKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCByaXNrUGVybWlzc2lvbiA9XHJcbiAgICAgICAgcmVzPy5yb2xlQWN0aW9uc1tcclxuICAgICAgICAgIHJlcz8ucm9sZUFjdGlvbnM/LmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5tb2R1bGVOYW1lID09ICdyaXNrJylcclxuICAgICAgICBdO1xyXG4gICAgICBpZiAoIXJpc2tQZXJtaXNzaW9uPy5pc0FjdGl2ZSkge1xyXG4gICAgICAgIHRoaXMuaGlkZU1vcmVPcHRpb24ucHVzaCgnTElOS19SSVNLX0NBVEVHT1JJRVNfUklTS1MnKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucy5lbWl0KHRoaXMuaGlkZU1vcmVPcHRpb24pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXNldEdSQ0Zvcm0oKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmdyY1NlcnZpY2UuR1JDX1BBWUxPQUQpKTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC50eXBlID0gdGhpcy5ncmNUeXBlO1xyXG4gICAgdGhpcy5saXN0T2JqZWN0ID0gdGhpcy5ncmNTZXJ2aWNlLkxJU1RfT0JKRUNUO1xyXG4gICAgdGhpcy5faW5pdGlhdGVBUEkoKTtcclxuICB9XHJcblxyXG4gIC8vVE9ETzogaW1wbGVtZW50IHRoaXNcclxuICBwb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCkge1xyXG4gICAgY29uc3QgYWN0aXZhdGVkT3B0aW9ucyA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5hZGRpdGlvbmFsT3B0aW9uKSkge1xyXG4gICAgICBpZiAodGhpcy5hZGRpdGlvbmFsT3B0aW9uW2tleV0gPT09IHRydWUpIHtcclxuICAgICAgICBhY3RpdmF0ZWRPcHRpb25zLnB1c2goa2V5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb24uZW1pdChhY3RpdmF0ZWRPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8vVE9ETzogaW1wbGVtZW50IHRoaXNcclxuICBhZGRNb3JlSW5mbyhldmVudDogYW55KSB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50Py5jb2RlKSB7XHJcbiAgICAgIGNhc2UgJ0FUVFJJQlVURVMnOlxyXG4gICAgICAgIHRoaXMuZ3JjRm9ybS5ncmNPYmplY3RUeXBlID0gZXZlbnQ/LmNoZWNrZWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0xJTktfUFJPR1JBTSc6XHJcbiAgICAgICAgdGhpcy5ncmNGb3JtLmxpbmtQcm9ncmFtID0gZXZlbnQ/LmNoZWNrZWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0xJTktfUklTS19DQVRFR09SSUVTX1JJU0tTJzpcclxuICAgICAgICB0aGlzLmdyY0Zvcm0ubGlua1Jpc2sgPSBldmVudD8uY2hlY2tlZDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnT1RIRVJfR1JDX09CSkVDVFMnOlxyXG4gICAgICAgIHRoaXMuZ3JjRm9ybS5vdGhlckdyY09iamVjdHMgPSBldmVudD8uY2hlY2tlZDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9UT0RPOiBpbXBsZW1lbnQgdGhpc1xyXG4gIG9uVGV4dENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmdyY1BheWxvYWQubmFtZSA9IGV2ZW50LnRyaW0oKTtcclxuICAgIHRoaXMub3BlbmVkUG9wdXAgPSAnJztcclxuICAgIHRoaXMuZ3JjTmFtZVZhbGlkYXRpb25FcnJvciA9ICcnO1xyXG4gICAgdGhpcy5pc0R1cGxpY2F0ZU5hbWUgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vVE9ETzogaW1wbGVtZW50IHRoaXNcclxuICBvblBvcHVwT3Blbih0eXBlOiBPcGVuZWRQb3B1cFsndHlwZSddKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnT1dORVInOlxyXG4gICAgICBjYXNlICdSQyc6XHJcbiAgICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9IHR5cGU7XHJcbiAgICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ09USEVSX0dSQ19PQkpFQ1RTJzpcclxuICAgICAgICB0aGlzLm9wZW5lZFBvcHVwID0gdHlwZTtcclxuICAgICAgICB0aGlzLmdldE90aGVyR1JDT2JqZWN0cyh7IHJjX2lkczogJycgfSk7XHJcbiAgICAgICAgdGhpcy5nZXRPdGhlckdSQ1RhYkNvdW50KHsgcmNfaWRzOiAnJyB9KTtcclxuICAgICAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdCh0cnVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnUklTS19DQVRFR09SWSc6XHJcbiAgICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9IHR5cGU7XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5wcmV2aWV3UGFuZWwubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdCh0cnVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnUFJPR1JBTV9SRVNQT05TSUJJTElUWSc6XHJcbiAgICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9IHR5cGU7XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5wcmV2aWV3UGFuZWwubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdCh0cnVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2F2ZVNlbGVjdGVkTGlzdChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmxpc3RPYmplY3QgPSBldmVudDtcclxuICAgIGlmICh0aGlzLm9wZW5lZFBvcHVwID09PSAnT1RIRVJfR1JDX09CSkVDVFMnKSB7XHJcbiAgICAgIHRoaXMuc2V0T3RoZXJHUkNUeXBlc0Zvcm1hdGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0TGlzdFBheWxvYWQodGhpcy5vcGVuZWRQb3B1cCk7XHJcbiAgICB0aGlzLm9wZW5lZFBvcHVwID0gJyc7XHJcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLnByZXZpZXdQYW5lbC5uZXh0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGdldEF0dHJpYnV0ZVNlbGVjdGlvbihldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9ICcnO1xyXG4gICAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdCh0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSAnJztcclxuICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnByZXZpZXdQYW5lbC5uZXh0KGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldExpc3RQYXlsb2FkKHR5cGU6IHN0cmluZykge1xyXG4gICAgaWYgKHR5cGUgPT09ICdPV05FUicpIHtcclxuICAgICAgdGhpcy5ncmNQYXlsb2FkLm93bmVycyA9IHRoaXMubGlzdE9iamVjdC5PV05FUi5zZWxlY3RlZERhdGEubWFwKFxyXG4gICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0ubWVtYmVyX2lkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGUgPT09ICdSQycpIHtcclxuICAgICAgbGV0IHByZXZpb3VzUkNJZHMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjUGF5bG9hZC5yY19pZHMpKTtcclxuICAgICAgdGhpcy5ncmNQYXlsb2FkLnJjX2lkcyA9IHRoaXMubGlzdE9iamVjdC5SQy5zZWxlY3RlZERhdGEubWFwKFxyXG4gICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0/Ll9pZFxyXG4gICAgICApO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIXByZXZpb3VzUkNJZHMuZXZlcnkoKGlkOiBhbnkpID0+IHRoaXMuZ3JjUGF5bG9hZC5yY19pZHMuaW5jbHVkZXMoaWQpKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnJlc2V0RGF0YU9uUkNDaGFuZ2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHR5cGUgPT09ICdPVEhFUl9HUkNfT0JKRUNUUycpIHtcclxuICAgICAgdGhpcy5ncmNQYXlsb2FkLmxpbmtlZF9HUkNfaWRzID1cclxuICAgICAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhLm1hcChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uX2lkXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlID09PSAnUklTS19DQVRFR09SWScpIHtcclxuICAgICAgdGhpcy5ncmNQYXlsb2FkLnJpc2tfY2F0ZWdvcnlfaWRzID0gdGhpcy5nZXRSaXNrQ2F0ZWdvcnlQYXlsb2FkKFxyXG4gICAgICAgIHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZSA9PT0gJ1BST0dSQU1fUkVTUE9OU0lCSUxJVFknKSB7XHJcbiAgICAgIHRoaXMuZ3JjUGF5bG9hZC5wcm9ncmFtX2NhdGVnb3J5X2lkcyA9XHJcbiAgICAgICAgdGhpcy5nZXRQcm9ncmFtUmVzcG9uc2liaWxpdHlQYXlsb2FkKFxyXG4gICAgICAgICAgdGhpcy5saXN0T2JqZWN0Py5QUk9HUkFNX1JFU1BPTlNJQklMSVRZPy5zZWxlY3RlZERhdGFcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbGlja091dHNpZGUoKSB7XHJcbiAgICAvL3RoaXMub3BlbmVkUG9wdXAgPSAnJztcclxuICB9XHJcblxyXG4gIG9uRWRpdChldmVudDogYW55LCBzdWJUeXBlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub3BlbmVkUG9wdXAgPSBldmVudDtcclxuICAgIGlmIChldmVudCA9PT0gJ09USEVSX0dSQ19PQkpFQ1RTJykge1xyXG4gICAgICB0aGlzLkdSQ1NlbGVjdGVkVGFiID0gdGhpcy5vdGhlckdSQ1RhYkluZGV4W3N1YlR5cGVdID8/IDA7XHJcbiAgICAgIHRoaXMuZ2V0T3RoZXJHUkNPYmplY3RzKHsgdHlwZTogdGhpcy5HUkNTZWxlY3RlZFRhYiwgcmNfaWRzOiAnJyB9KTtcclxuICAgICAgdGhpcy5nZXRPdGhlckdSQ1RhYkNvdW50KHsgcmNfaWRzOiAnJyB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLkxJU1RfUE9QVVAuaW5jbHVkZXMoZXZlbnQpKSB7XHJcbiAgICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KHRydWUpO1xyXG4gICAgICAvLyB0aGlzLmF1dGhTZXJ2aWNlLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50ID09PSAnUklTS19DQVRFR09SWScgfHwgZXZlbnQgPT09ICdQUk9HUkFNX1JFU1BPTlNJQklMSVRZJykge1xyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25SZW1vdmVEYXRhKFxyXG4gICAgZXZlbnQ6IGFueSxcclxuICAgIHR5cGU6XHJcbiAgICAgIHwgJ1JDJ1xyXG4gICAgICB8ICdPV05FUidcclxuICAgICAgfCAnT1RIRVJfR1JDX09CSkVDVFMnXHJcbiAgICAgIHwgJ1JJU0tfQ0FURUdPUlknXHJcbiAgICAgIHwgJ1BST0dSQU1fUkVTUE9OU0lCSUxJVFknXHJcbiAgKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnUkMnOlxyXG4gICAgICAgIHRoaXMubGlzdE9iamVjdFt0eXBlXS5zZWxlY3RlZERhdGEuc3BsaWNlKGV2ZW50LmluZGV4LCAxKTtcclxuICAgICAgICB0aGlzLnJlc2V0RGF0YU9uUkNDaGFuZ2UoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnT1dORVInOlxyXG4gICAgICAgIHRoaXMubGlzdE9iamVjdFt0eXBlXS5zZWxlY3RlZERhdGEuc3BsaWNlKGV2ZW50LmluZGV4LCAxKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnT1RIRVJfR1JDX09CSkVDVFMnOlxyXG4gICAgICAgIHRoaXMucmVtb3ZlT3RoZXJHUkNPYmplY3RzKGV2ZW50Py5kYXRhKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnUklTS19DQVRFR09SWSc6XHJcbiAgICAgICAgdGhpcy5kZWxldGVTZWxlY3RlZFJpc2soZXZlbnQuZGF0YT8uQ2F0ZWdvcnlJZHNbMF0sIGV2ZW50Py5kYXRhKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnUFJPR1JBTV9SRVNQT05TSUJJTElUWSc6XHJcbiAgICAgICAgdGhpcy5kZWxldGVTZWxlY3RlZFJlc3BvbnNpYmlsaXR5KGV2ZW50Py5kYXRhKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuc2V0TGlzdFBheWxvYWQodHlwZSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VBdHRyaWJ1dGVzVHlwZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmdyY1R5cGUgPSBldmVudDtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC50eXBlID0gZXZlbnQ7XHJcbiAgICB0aGlzLnNldERlZmF1bHRHUkNPYmplY3RUeXBlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0aWF0ZUFQSSgpIHtcclxuICAgIGlmICh0aGlzLk1PREUgPT09ICdFRElUJykge1xyXG4gICAgICB0aGlzLmdldEdSQ09iamVjdERldGFpbHModGhpcy5JRCk7XHJcbiAgICAgIHRoaXMuc21pbGV5TWVzc2FnZSA9IFNVQ0NFU1NfTUVTU0FHRS5VUERBVEVfR1JDX09CSkVDVDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGV0YWlsc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLl9nZXRHUkNPYmplY3RUeXBlKCk7XHJcbiAgICAgIHRoaXMuX2dldE93bmVyTGlzdCgpO1xyXG4gICAgICB0aGlzLl9nZXRSQ0xpc3QoKTtcclxuICAgICAgdGhpcy5nZXRPdGhlckdSQ09iamVjdHMoeyByY19pZHM6ICcnIH0pO1xyXG4gICAgICAvLyB0aGlzLmdldE90aGVyR1JDVGFiQ291bnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldE93bmVyTGlzdCgpIHtcclxuICAgIHRoaXMubGlzdE9iamVjdC5PV05FUi5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmdldEdSQ093bmVyTGlzdCgpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICh1c2VyTGlzdDogYW55KSA9PiB0aGlzLm1hcFVzZXJMaXN0KHVzZXJMaXN0KSxcclxuICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7fSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGZ1bmN0aW9uIGBtYXBVc2VyTGlzdGAgbWFwcyB0aGUgdXNlciBsaXN0IGRhdGEgYW5kIHBlcmZvcm1zIHNvbWUgYWRkaXRpb25hbCBvcGVyYXRpb25zIG9uIGVhY2hcclxuICAgKiB1c2VyIG9iamVjdC5cclxuICAgKiBAcGFyYW0ge2FueX0gdXNlckxpc3QgLSBUaGUgYHVzZXJMaXN0YCBwYXJhbWV0ZXIgaXMgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMgYSBgZGF0YWAgcHJvcGVydHkuIFRoZVxyXG4gICAqIGBkYXRhYCBwcm9wZXJ0eSBpcyBhbiBhcnJheSBvZiB1c2VyIG9iamVjdHMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtYXBVc2VyTGlzdCh1c2VyTGlzdDogYW55KSB7XHJcbiAgICB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ11bJ2RhdGEnXSA9IHt9O1xyXG4gICAgdGhpcy5saXN0T2JqZWN0WydPV05FUiddLnNlbGVjdGVkRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5kaXNhYmxlZElkcyA9IFtdO1xyXG4gICAgLy8gTWFwIHdpbGwgZ2V0IHJlbW92ZSBvbmNlIEFQSSBjaGFuZ2VcclxuICAgIHRoaXMubGlzdE9iamVjdFsnT1dORVInXVsnZGF0YSddWydhc3NpZ25lZXNMaXN0J10gPSB1c2VyTGlzdD8uZGF0YS5tYXAoXHJcbiAgICAgICh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgICB1c2VyLml0ZW1fbmFtZSA9IHVzZXIubWVtYmVyX25hbWU7XHJcbiAgICAgICAgdXNlci5lbXBsb3llZV9uYW1lID0gdXNlci5tZW1iZXJfbmFtZTtcclxuICAgICAgICB1c2VyLm15X21lbWJlcl9pZCA9IHVzZXIubWVtYmVyX2lkO1xyXG4gICAgICAgIHVzZXIuaXRlbV9pZCA9IHVzZXIubWVtYmVyX2lkO1xyXG4gICAgICAgIGlmIChbJ0FETUlOJywgJ0tFWV9BRE1JTiddLmluY2x1ZGVzKHVzZXIudXNlcl9yb2xlKSkge1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlZElkcy5wdXNoKHVzZXIubWVtYmVyX2lkKTtcclxuICAgICAgICAgIHRoaXMubGlzdE9iamVjdFsnT1dORVInXS5zZWxlY3RlZERhdGEucHVzaCh1c2VyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHVzZXI7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5NT0RFID09PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5saXN0T2JqZWN0Lk9XTkVSLnNlbGVjdGVkRGF0YSA9IHRoaXMubGlzdE9iamVjdFsnT1dORVInXVsnZGF0YSddW1xyXG4gICAgICAgICdhc3NpZ25lZXNMaXN0J1xyXG4gICAgICBdLmZpbHRlcigoaXRlbTogYW55KSA9PiB0aGlzLmdyY1BheWxvYWQub3duZXJzLmluY2x1ZGVzKGl0ZW0/Lm1lbWJlcl9pZCkpO1xyXG4gICAgICB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ10uZGlzYWJsZWRJZHMgPSBbLi4ubmV3IFNldCh0aGlzLmRpc2FibGVkSWRzKV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRlZmF1bHRTZWxlY3RlZFVzZXIoKTtcclxuICAgIH1cclxuICAgIHRoaXMubGlzdE9iamVjdC5PV05FUi5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuY2hlY2tJc0RhdGFMb2FkZWQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBmdW5jdGlvbiBgZGVmYXVsdFNlbGVjdGVkVXNlcigpYCBzZXRzIHRoZSBkZWZhdWx0IHNlbGVjdGVkIHVzZXIgYmFzZWQgb24gdGhlIGN1cnJlbnQgdXNlcidzIHJvbGVcclxuICAgKiBhbmQgYXNzaWducyBpdCB0byB0aGUgYE9XTkVSYCBsaXN0IG9iamVjdC5cclxuICAgKi9cclxuICBwcml2YXRlIGRlZmF1bHRTZWxlY3RlZFVzZXIoKSB7XHJcbiAgICBpZiAoIXRoaXMuYXV0aFNlcnZpY2UuaXNBZG1pbigpICYmICF0aGlzLmF1dGhTZXJ2aWNlLmlzS2V5QWRtaW4oKSkge1xyXG4gICAgICBjb25zdCBVU0VSID0gdGhpcy5saXN0T2JqZWN0WydPV05FUiddWydkYXRhJ11bJ2Fzc2lnbmVlc0xpc3QnXS5maW5kKFxyXG4gICAgICAgICh1c2VyOiBhbnkpID0+IHVzZXIubWVtYmVyX2lkID09PSB0aGlzLmF1dGhTZXJ2aWNlLmdldE1lbWJlcklkKClcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5saXN0T2JqZWN0WydPV05FUiddLnNlbGVjdGVkRGF0YS5wdXNoKFVTRVIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5saXN0T2JqZWN0WydPV05FUiddWydkaXNhYmxlZElkcyddID0gWy4uLnRoaXMuZGlzYWJsZWRJZHNdO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLm93bmVycyA9IHRoaXMubGlzdE9iamVjdFsnT1dORVInXS5zZWxlY3RlZERhdGEubWFwKFxyXG4gICAgICAodXNlcjogYW55KSA9PiB1c2VyLm1lbWJlcl9pZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFJDTGlzdCgpIHtcclxuICAgIHRoaXMubGlzdE9iamVjdC5SQy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmdldFJlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdCgpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdFsnUkMnXVsnZGF0YSddID0gZGF0YTtcclxuICAgICAgdGhpcy5saXN0T2JqZWN0LlJDLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBpZiAodGhpcy5NT0RFID09PSAnRURJVCcpIHtcclxuICAgICAgICB0aGlzLmxpc3RPYmplY3QuUkMuc2VsZWN0ZWREYXRhID0gZGF0YS5maWx0ZXIoKGl0ZW06IGFueSkgPT5cclxuICAgICAgICAgIHRoaXMuZ3JjUGF5bG9hZC5yY19pZHMuaW5jbHVkZXMoaXRlbT8uX2lkKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja0lzRGF0YUxvYWRlZCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRHUkNPYmplY3RUeXBlKCkge1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmdldE9iamVjdFR5cGUoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZGF0YTogR1JDVHlwZVtdKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5zZXRMaW5rUmlza1RhYihkYXRhKTtcclxuICAgICAgICBjb25zdCBPQkpFQ1RfTEFCRUw6IGFueSA9IHtcclxuICAgICAgICAgIEFTU0VUUzogJ0Fzc2V0JyxcclxuICAgICAgICAgIFBST0NFU1NFUzogJ1Byb2Nlc3MnLFxyXG4gICAgICAgICAgVkVORE9SUzogJ1ZlbmRvcicsXHJcbiAgICAgICAgICBJTlZFTlRPUlk6ICdJbnZlbnRvcnknLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5PQkpFQ1RfVFlQRSA9IGRhdGEubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGl0ZW0udmFsdWUgPSBpbmRleDtcclxuICAgICAgICAgIGl0ZW0ubGFiZWwgPSBPQkpFQ1RfTEFCRUxbaXRlbT8ubGFiZWw/LnRvVXBwZXJDYXNlKCldID8/IGl0ZW0/LmxhYmVsO1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuT1JJR0lOQUxfR1JDX0FUVFJJQlVURVMgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5PQkpFQ1RfVFlQRSlcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5NT0RFID09PSAnRURJVCcpIHtcclxuICAgICAgICAgIHRoaXMuT0JKRUNUX1RZUEVbdGhpcy5ncmNUeXBlXS5hdHRyaWJ1dGVzID1cclxuICAgICAgICAgICAgdGhpcy5ncmNQYXlsb2FkLmF0dHJpYnV0ZXM7XHJcblxyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLmdyY1NlcnZpY2UuY2hlY2tBdHRyaWJ1dGVzU2VsZWN0ZWQoXHJcbiAgICAgICAgICAgICAgdGhpcy5PQkpFQ1RfVFlQRVt0aGlzLmdyY1R5cGVdLmF0dHJpYnV0ZXNcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JjRm9ybS5ncmNPYmplY3RUeXBlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkFUVFJJQlVURVMgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0R1JDT2JqZWN0VHlwZSgpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tJc0RhdGFMb2FkZWQoKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7fSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREZWZhdWx0R1JDT2JqZWN0VHlwZSgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGVzID1cclxuICAgICAgdGhpcy5PQkpFQ1RfVFlQRS5maW5kKChlbGU6IGFueSkgPT4gZWxlLnZhbHVlID09PSB0aGlzLmdyY1R5cGUpID8/XHJcbiAgICAgIHRoaXMuT0JKRUNUX1RZUEVbMF07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrSXNEYXRhTG9hZGVkKCkge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPVxyXG4gICAgICB0aGlzLmxpc3RPYmplY3QuT1dORVIuaXNMb2FkaW5nIHx8XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdC5SQy5pc0xvYWRpbmcgfHxcclxuICAgICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLmlzTG9hZGluZyB8fFxyXG4gICAgICAodGhpcy5NT0RFID09PSAnRURJVCcgJiYgdGhpcy5kZXRhaWxzTG9hZGVyKTtcclxuICB9XHJcblxyXG4gIGdldE90aGVyR1JDT2JqZWN0cyhldmVudD86IGFueSkge1xyXG4gICAgaWYgKHRoaXMub3RoZXJHUkNTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5vdGhlckdSQ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50Py5zZWFyY2hTdHJpbmcgJiYgdGhpcy5vdGhlckdSQ1NlYXJjaCAhPT0gZXZlbnQ/LnNlYXJjaFN0cmluZykge1xyXG4gICAgICB0aGlzLmdldE90aGVyR1JDVGFiQ291bnQoZXZlbnQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vdGhlckdSQ1NlYXJjaCA9IGV2ZW50Py5zZWFyY2hTdHJpbmcgPz8gJyc7XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIC8vIGV2ZW50WydyY19pZHMnXSA9IHRoaXMubGlzdE9iamVjdD8uUkM/LnNlbGVjdGVkRGF0YVxyXG4gICAgLy8gICA/Lm1hcCgocmM6IGFueSkgPT4gcmM/Ll9pZClcclxuICAgIC8vICAgLmpvaW4oJywnKTtcclxuICAgIHRoaXMub3RoZXJHUkNTdWJzY3JpcHRpb24gPSB0aGlzLmdyY1NlcnZpY2VcclxuICAgICAgLmdldEdSQ0xpc3QoZXZlbnQpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdE9iamVjdC5PVEhFUl9HUkNfT0JKRUNUUy5kYXRhID0gZGF0YTtcclxuICAgICAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMuTU9ERSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgICAgICAvLyB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhID0gZGF0YS5maWx0ZXIoXHJcbiAgICAgICAgICAvLyAgIChpdGVtOiBhbnkpID0+IHRoaXMuZ3JjUGF5bG9hZC5saW5rZWRfR1JDX2lkcy5pbmNsdWRlcyhpdGVtPy5faWQpXHJcbiAgICAgICAgICAvLyApO1xyXG4gICAgICAgICAgaWYgKHRoaXMuZ3JjUGF5bG9hZC5saW5rZWRfR1JDX2lkcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JjRm9ybS5vdGhlckdyY09iamVjdHMgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uT1RIRVJfR1JDX09CSkVDVFMgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jaGVja0lzRGF0YUxvYWRlZCgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldE90aGVyR1JDVGFiQ291bnQoZXZlbnQ/OiBhbnkpIHtcclxuICAgIHRoaXMuZ3JjVGFiTG9hZGVyID0gdHJ1ZTtcclxuICAgIC8vIGV2ZW50WydyY19pZHMnXSA9IHRoaXMubGlzdE9iamVjdD8uUkM/LnNlbGVjdGVkRGF0YVxyXG4gICAgLy8gICA/Lm1hcCgocmM6IGFueSkgPT4gcmM/Ll9pZClcclxuICAgIC8vICAgLmpvaW4oJywnKTtcclxuICAgIHRoaXMuZ3JjU2VydmljZS5nZXRHUkNUYWJzQ291bnQoZXZlbnQpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JjVGFiTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMub3RoZXJHUkNDYXJkWzBdLmNvdW50ID0gZGF0YT8uYXNzZXRzX3R5cGVfY291bnQ7XHJcbiAgICAgIHRoaXMub3RoZXJHUkNDYXJkWzFdLmNvdW50ID0gZGF0YT8ucHJvY2Vzc2VzX3R5cGVfY291bnQ7XHJcbiAgICAgIHRoaXMub3RoZXJHUkNDYXJkWzJdLmNvdW50ID0gZGF0YT8udmVuZG9yc190eXBlX2NvdW50O1xyXG4gICAgICB0aGlzLm90aGVyR1JDQ2FyZFszXS5jb3VudCA9IGRhdGE/LmludmVudG9yeV90eXBlX2NvdW50O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRPdGhlckdSQ1RhYkluZGV4KGV2ZW50PzogYW55LCBkYXRhPzogYW55KSB7fVxyXG5cclxuICAvL1BvcHVsYXRlL0VkaXQgR1JDIE9iamVjdFxyXG5cclxuICBnZXRHUkNPYmplY3REZXRhaWxzKGdyY0lkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS5nZXRHUkNPYmplY3REZXRhaWxzKGdyY0lkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9ICcnO1xyXG4gICAgICAgIHRoaXMucG9wdWxhdGVQYXlsb2FkKGRhdGEpO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlR1JDT2JqZWN0KGRhdGE/LmxpbmtlZEdyY0RldGFpbHMpO1xyXG4gICAgICAgIHRoaXMuZGV0YWlsc0xvYWRlciA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLl9nZXRSQ0xpc3QoKTtcclxuICAgICAgICB0aGlzLl9nZXRPd25lckxpc3QoKTtcclxuICAgICAgICB0aGlzLl9nZXRHUkNPYmplY3RUeXBlKCk7XHJcbiAgICAgICAgdGhpcy5nZXRPdGhlckdSQ09iamVjdHMoeyByY19pZHM6ICcnIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvcicsIGVycm9yKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVHUkNPYmplY3QoZGF0YTogYW55KSB7XHJcbiAgICBpZiAoZGF0YT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZ3JjRm9ybS5vdGhlckdyY09iamVjdHMgPSB0cnVlO1xyXG4gICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uT1RIRVJfR1JDX09CSkVDVFMgPSB0cnVlO1xyXG4gICAgICBsZXQgR1JDT2JqZWN0OiBhbnkgPSB7XHJcbiAgICAgICAgYXNzZXRzOiBbXSxcclxuICAgICAgICBwcm9jZXNzZXM6IFtdLFxyXG4gICAgICAgIHZlbmRvcnM6IFtdLFxyXG4gICAgICAgIGludmVudG9yeTogW10sXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdC5PVEhFUl9HUkNfT0JKRUNUUy5zZWxlY3RlZERhdGEgPSBbLi4ubmV3IFNldChkYXRhKV07XHJcbiAgICAgIGNvbnN0IEdSQ19UWVBFID0gR1JDX1RZUEVfQVJSQVk7XHJcbiAgICAgIGRhdGEuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgR1JDT2JqZWN0W0dSQ19UWVBFW2l0ZW0/LnR5cGUgPz8gMV1dLnB1c2goaXRlbSk7XHJcbiAgICAgICAgdGhpcy5vdGhlckdSQ0NhcmRbaXRlbT8udHlwZV0uc2VsZWN0ZWRDb3VudCArPSAxO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuZ3JjRGF0YVdpdGhUeXBlcyA9IEdSQ09iamVjdDtcclxuICAgICAgdGhpcy51cGRhdGVPdGhlckdSQ09iamVjdHNQYXlsb2FkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgcG9wdWxhdGVQYXlsb2FkKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLm5hbWUgPSBkYXRhPy5uYW1lO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLnR5cGUgPSBkYXRhPy50eXBlO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLm93bmVycyA9IGRhdGE/Lm93bmVycztcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5yY19pZHMgPSBkYXRhPy5yY19pZHM7XHJcbiAgICB0aGlzLmdyY1BheWxvYWQubGlua2VkX0dSQ19pZHMgPSBkYXRhPy5saW5rZWRfR1JDX2lkcztcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5yaXNrX2NhdGVnb3J5X2lkcyA9XHJcbiAgICAgIHRoaXMucG9wdWxhdGVMaW5rUmlzayhkYXRhPy5yaXNrX2NhdGVnb3J5X2lkcykgPz8gW107XHJcbiAgICB0aGlzLmdyY1BheWxvYWQucHJvZ3JhbV9jYXRlZ29yeV9pZHMgPSBkYXRhPy5wcm9ncmFtX2NhdGVnb3J5X2lkcz8ubGVuZ3RoXHJcbiAgICAgID8gdGhpcy5wb3B1bGF0ZUxpbmtSZXNwb25zaWJpbGl0eShkYXRhPy5wcm9ncmFtX2NhdGVnb3J5X2lkcylcclxuICAgICAgOiBbXTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5hdHRyaWJ1dGVzID0gZGF0YT8uYXR0cmlidXRlcztcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5zdGF0ZSA9IGRhdGE/LnN0YXRlO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLmRlc2NyaXB0aW9uID0gZGF0YT8uZGVzY3JpcHRpb247XHJcbiAgICB0aGlzLmdyY1BheWxvYWQuZnJlcXVlbmN5ID0gZGF0YT8uZnJlcXVlbmN5O1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLnBhcmVudF9ncmNfaWRzID0gZGF0YT8ucGFyZW50X2dyY19pZHM7XHJcbiAgICB0aGlzLmdyY1BheWxvYWQuZW1haWxfbm90aWZpY2F0aW9uX21lbWJlcl9pZHMgPVxyXG4gICAgICBkYXRhPy5lbWFpbF9ub3RpZmljYXRpb25fbWVtYmVyX2lkcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlR1JDT2JqZWN0KCkge1xyXG4gICAgdGhpcy5pc0Zvcm1TdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZ3JjRm9ybS5ncmNPYmplY3RUeXBlKSB7XHJcbiAgICAgIHRoaXMuZ3JjUGF5bG9hZC5hdHRyaWJ1dGVzID0gdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZXMuYXR0cmlidXRlcztcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5ncmNTZXJ2aWNlLmNoZWNrVmFsaWRhdGlvbihcclxuICAgICAgICB0aGlzLmdyY1BheWxvYWQsXHJcbiAgICAgICAgdGhpcy5ncmNGb3JtLmdyY09iamVjdFR5cGVcclxuICAgICAgKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSB0cnVlO1xyXG4gICAgICBpZiAodGhpcy5NT0RFID09PSAnRURJVCcpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUdSQ09iamVjdCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgUEFZTE9BRCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ncmNQYXlsb2FkKSk7XHJcbiAgICAgIFBBWUxPQUQub3duZXJzID0gdGhpcy5nZXRPd25lcnNFeGNlcHREZWZhdWx0KFBBWUxPQUQub3duZXJzKTtcclxuICAgICAgdGhpcy5hcGlTZXJ2aWNlLmFkZEdSQ09iamVjdChQQVlMT0FEKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNldE1vcmVPcHRpb25zT25TdWJtaXQoKTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5hZGRlZEdSQyA9IGRhdGE7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvcicsIGVycm9yLCBlcnJvci5zdGF0dXMpO1xyXG4gICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA5IHx8IGVycm9yLnN0YXR1cyA9PT0gNDAzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNEdXBsaWNhdGVOYW1lID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zZXRNb3JlT3B0aW9uc09uU3VibWl0KCk7XHJcbiAgICAgICAgICAgIHRoaXMubWFwVXNlckxpc3Qoe1xyXG4gICAgICAgICAgICAgIGRhdGE6IHRoaXMubGlzdE9iamVjdC5PV05FUi5kYXRhLmFzc2lnbmVlc0xpc3QsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmdyY05hbWVWYWxpZGF0aW9uRXJyb3IgPSBWQUxJREFUSU9OX01FU1NBR0UuZ3JjX2V4aXN0cztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0R1JDT2JqZWN0KCkge1xyXG4gICAgdGhpcy5NT0RFID0gJ0NSRUFURSc7XHJcbiAgICB0aGlzLnNtaWxleU1lc3NhZ2UgPSBTVUNDRVNTX01FU1NBR0UuQUREX0dSQ19PQkpFQ1Q7XHJcbiAgICB0aGlzLmdyY1BheWxvYWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjU2VydmljZS5HUkNfUEFZTE9BRCkpO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLnR5cGUgPSB0aGlzLmdyY1R5cGU7XHJcbiAgICB0aGlzLmlzRm9ybVN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0R1cGxpY2F0ZU5hbWUgPSBmYWxzZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSBmYWxzZTtcclxuICAgIHRoaXMuaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zLmVtaXQodGhpcy5oaWRlTW9yZU9wdGlvbik7XHJcbiAgICB0aGlzLk9CSkVDVF9UWVBFID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLk9SSUdJTkFMX0dSQ19BVFRSSUJVVEVTKSk7XHJcbiAgICB0aGlzLm90aGVyR1JDQ2FyZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoT1RIRVJfR1JDX0NBUkQpKTtcclxuICAgIHRoaXMucmVzZXRPdGhlckdSQ0NhcmQoKTtcclxuICAgIHRoaXMuc2V0RGVmYXVsdEdSQ09iamVjdFR5cGUoKTtcclxuICAgIHRoaXMucmVzZXRHUkNEYXRhV2l0aFR5cGVzKCk7XHJcbiAgICB0aGlzLnJlc2V0TGlzdE9iamVjdFNlbGVjdGlvbigpO1xyXG4gICAgdGhpcy5tYXBVc2VyTGlzdCh7IGRhdGE6IHRoaXMubGlzdE9iamVjdC5PV05FUi5kYXRhLmFzc2lnbmVlc0xpc3QgfSk7XHJcbiAgfVxyXG5cclxuICByZXNldExpc3RPYmplY3RTZWxlY3Rpb24oKSB7XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuT1dORVIuc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuUkMuc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuUklTS19DQVRFR09SWS5zZWxlY3RlZERhdGEgPSBbXTtcclxuICAgIHRoaXMubGlzdE9iamVjdC5QUk9HUkFNX1JFU1BPTlNJQklMSVRZLnNlbGVjdGVkRGF0YSA9IFtdO1xyXG4gIH1cclxuXHJcbiAgc21pbGV5QWN0aW9ucyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICBpZiAoZXZlbnQgPT09ICdhZGRNb3JlJykge1xyXG4gICAgICB0aGlzLnJlc2V0R1JDRm9ybSgpO1xyXG4gICAgfSBlbHNlIGlmIChldmVudCA9PT0gJ3ZpZXcnKSB7XHJcbiAgICAgIHRoaXMucmVzZXRHUkNGb3JtKCk7XHJcbiAgICAgIHRoaXMudmlld0dSQygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VTbWlsZXkoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5yZXNldEdSQ0Zvcm0oKTtcclxuICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHsgZXZ0OiB0aGlzLmFkZGVkR1JDLCBjb25maXJtOiBmYWxzZSB9KTtcclxuICB9XHJcblxyXG4gIHJlc2V0R1JDRm9ybSgpIHtcclxuICAgIHRoaXMuTU9ERSA9ICdDUkVBVEUnO1xyXG4gICAgdGhpcy5yZXNldEdSQ09iamVjdCgpO1xyXG4gICAgdGhpcy5ncmNGb3JtLm90aGVyR3JjT2JqZWN0cyA9IGZhbHNlO1xyXG4gICAgdGhpcy5ncmNGb3JtLmxpbmtSaXNrID0gZmFsc2U7XHJcbiAgICB0aGlzLmdyY0Zvcm0ubGlua1Byb2dyYW0gPSBmYWxzZTtcclxuICAgIHRoaXMuZ3JjRm9ybS5ncmNPYmplY3RUeXBlID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5yZXNldEZvcm0uZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHZpZXdHUkMoKSB7XHJcbiAgICBsZXQgdXJsOiBzdHJpbmc7XHJcbiAgICB0aGlzLmRpc2Nvbm5lY3RSZWZyZXNoLmVtaXQoZmFsc2UpO1xyXG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoJ2xvY2FsaG9zdCcpKSB7XHJcbiAgICAgIHVybCA9ICdodHRwOi8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0ICsgJy8jL21hbmFnZS1ncmMtb2JqZWN0cyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cmwgPVxyXG4gICAgICAgICdodHRwczovLycgK1xyXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ob3N0ICtcclxuICAgICAgICAnL29yZ2FuaXphdGlvbi8jL21hbmFnZS1ncmMtb2JqZWN0cyc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuTU9ERSAhPT0gJ0VESVQnKSB7XHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZXNldEdSQ0Zvcm0oKTtcclxuICAgIHRoaXMuY2xvc2VTbWlsZXkoJycpO1xyXG4gICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoeyBldnQ6IHRoaXMuYWRkZWRHUkMsIGNvbmZpcm06IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0T3RoZXJHUkNUeXBlc0Zvcm1hdGUoKSB7XHJcbiAgICBjb25zdCBncmNUeXBlcyA9IEdSQ19UWVBFX0FSUkFZO1xyXG4gICAgdGhpcy5yZXNldEdSQ0RhdGFXaXRoVHlwZXMoKTtcclxuICAgIHRoaXMubGlzdE9iamVjdD8uT1RIRVJfR1JDX09CSkVDVFM/LnNlbGVjdGVkRGF0YT8uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JjRGF0YVdpdGhUeXBlc1tncmNUeXBlc1tpdGVtPy50eXBlXV0/LnB1c2goaXRlbSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudXBkYXRlT3RoZXJHUkNPYmplY3RzUGF5bG9hZCgpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlT3RoZXJHUkNPYmplY3RzKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGdyY1R5cGVzID0gR1JDX1RZUEVfQVJSQVk7XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhID1cclxuICAgICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLnNlbGVjdGVkRGF0YS5maWx0ZXIoXHJcbiAgICAgICAgKGdyYzogYW55KSA9PiBncmM/Ll9pZCAhPT0gZXZlbnQ/Ll9pZFxyXG4gICAgICApO1xyXG4gICAgdGhpcy5maWx0ZXJPdGhlckdSQ0RhdGEoZXZlbnQsIGdyY1R5cGVzW2V2ZW50Py50eXBlXSk7XHJcbiAgICB0aGlzLm90aGVyR1JDQ2FyZFswXS5zZWxlY3RlZENvdW50XHJcbiAgICAgID8gKHRoaXMub3RoZXJHUkNDYXJkW2V2ZW50Py50eXBlXS5zZWxlY3RlZENvdW50IC09IDEpXHJcbiAgICAgIDogMDtcclxuICAgIHRoaXMudXBkYXRlT3RoZXJHUkNPYmplY3RzUGF5bG9hZCgpO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyT3RoZXJHUkNEYXRhKGV2ZW50OiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5ncmNEYXRhV2l0aFR5cGVzW3R5cGVdID0gdGhpcy5ncmNEYXRhV2l0aFR5cGVzW3R5cGVdPy5maWx0ZXIoXHJcbiAgICAgIChncmM6IGFueSkgPT4gZ3JjPy5faWQgIT09IGV2ZW50Py5faWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXNldEdSQ0RhdGFXaXRoVHlwZXMoKSB7XHJcbiAgICB0aGlzLmdyY0RhdGFXaXRoVHlwZXMgPSB7XHJcbiAgICAgIGFzc2V0czogW10sXHJcbiAgICAgIHByb2Nlc3NlczogW10sXHJcbiAgICAgIHZlbmRvcnM6IFtdLFxyXG4gICAgICBpbnZlbnRvcnk6IFtdLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldCBncmNWYWxpZGF0aW9uQ2hlY2soKSB7XHJcbiAgICBpZiAodGhpcy5pc0Zvcm1TdWJtaXR0ZWQgJiYgIXRoaXMuZ3JjUGF5bG9hZC5uYW1lKSB7XHJcbiAgICAgIHRoaXMuZ3JjTmFtZVZhbGlkYXRpb25FcnJvciA9IFZBTElEQVRJT05fTUVTU0FHRS5ncmNPYmplY3ROYW1lO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5pc0Zvcm1TdWJtaXR0ZWQgJiYgISh0aGlzLmdyY1BheWxvYWQubmFtZSB8fCB0aGlzLmlzRHVwbGljYXRlTmFtZSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRSaXNrQ2F0ZWdvcnlQYXlsb2FkKHNlbGVjdGVkRGF0YTogYW55KSB7XHJcbiAgICBjb25zdCByaXNrQ2F0ZWdvcnlQYXlsb2FkOiBhbnkgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSaXNrcyA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3JpZXMgPSBbXTtcclxuICAgIHNlbGVjdGVkRGF0YS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgcmlza0NhdGVnb3J5UGF5bG9hZC5wdXNoKHtcclxuICAgICAgICBjYXRlZ29yeV9pZDogW2l0ZW0/LmNhdGVnb3J5Py5jYXRlZ29yeV9pZCA/PyBbXV0sXHJcbiAgICAgICAgcmlza19pZHM6IGl0ZW0/LnJpc2tzPy5tYXAoKHJpc2s6IGFueSkgPT4gcmlzaz8uUmlza0lkKSxcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSaXNrcz8ucHVzaCguLi5pdGVtPy5yaXNrcyk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzLnB1c2goaXRlbT8uY2F0ZWdvcnkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmlza0NhdGVnb3J5UGF5bG9hZDtcclxuICB9XHJcblxyXG4gIGdldFByb2dyYW1SZXNwb25zaWJpbGl0eVBheWxvYWQoc2VsZWN0ZWREYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHJpc2tSZXNwb25zaWJpbGl0eVBheWxvYWQ6IGFueSA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5ID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkUHJvZ3JhbSA9IFtdO1xyXG4gICAgc2VsZWN0ZWREYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBwYXJlbnRJZCA9IGl0ZW0/LnByb2dyYW0/LnByb2dyYW1JZDtcclxuICAgICAgcmlza1Jlc3BvbnNpYmlsaXR5UGF5bG9hZC5wdXNoKHtcclxuICAgICAgICBwYXJlbnRJZDogcGFyZW50SWQsXHJcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IFsuLi5pdGVtPy5jYXRlZ29yeV0gfHwgW10sXHJcbiAgICAgICAgcmVzcG9uc2liaWxpdHlfaWRzOiBpdGVtPy5yZXNwb25zaWJpbGl0eT8ubWFwKFxyXG4gICAgICAgICAgKHJlc3A6IGFueSkgPT4gcmVzcD8uUmVwb3J0SWRcclxuICAgICAgICApLFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Py5wdXNoKC4uLml0ZW0/LnJlc3BvbnNpYmlsaXR5KTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFByb2dyYW0ucHVzaChpdGVtPy5wcm9ncmFtKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJpc2tSZXNwb25zaWJpbGl0eVBheWxvYWQ7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVHUkNPYmplY3QoKSB7XHJcbiAgICBsZXQgUEFZTE9BRCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ncmNQYXlsb2FkKSk7XHJcbiAgICBQQVlMT0FELm93bmVycyA9IHRoaXMuZ2V0T3duZXJzRXhjZXB0RGVmYXVsdChQQVlMT0FELm93bmVycyk7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UudXBkYXRlR1JDT2JqZWN0KFBBWUxPQUQsIHRoaXMuSUQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2V0TW9yZU9wdGlvbnNPblN1Ym1pdCgpO1xyXG4gICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYWRkZWRHUkMgPSBkYXRhO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yJywgZXJyb3IsIGVycm9yLnN0YXR1cyk7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA5KSB7XHJcbiAgICAgICAgICB0aGlzLmlzRHVwbGljYXRlTmFtZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNldE1vcmVPcHRpb25zT25TdWJtaXQoKTtcclxuICAgICAgICAgIHRoaXMuZ3JjTmFtZVZhbGlkYXRpb25FcnJvciA9IFZBTElEQVRJT05fTUVTU0FHRS5ncmNfZXhpc3RzO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICB1cGRhdGVPdGhlckdSQ09iamVjdHNQYXlsb2FkKCkge1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLmxpbmtlZF9HUkNfaWRzID1cclxuICAgICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLnNlbGVjdGVkRGF0YS5tYXAoXHJcbiAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5faWRcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVNlbGVjdGVkUmlzayhjYXRlZ29yeUlkOiBudW1iZXIsIHJpc2s6IGFueSkge1xyXG4gICAgY29uc3QgY2F0ZWdvcnlJbmRleCA9IHRoaXMuZmluZENoZWNrZWRDYXRlZ29yeUluZGV4KGNhdGVnb3J5SWQpO1xyXG4gICAgaWYgKGNhdGVnb3J5SW5kZXggIT09IC0xKSB7XHJcbiAgICAgIC8vIENhdGVnb3J5IGV4aXN0cywgdXBkYXRlIHJpc2sgdmFsdWVcclxuICAgICAgY29uc3Qgcmlza0luZGV4ID0gdGhpcy5saXN0T2JqZWN0Py5SSVNLX0NBVEVHT1JZPy5zZWxlY3RlZERhdGFbXHJcbiAgICAgICAgY2F0ZWdvcnlJbmRleFxyXG4gICAgICBdPy5yaXNrcz8uZmluZEluZGV4KChpdGVtOiBhbnkpID0+IGl0ZW0/Ll9pZCA9PT0gcmlzaz8uX2lkKTtcclxuICAgICAgaWYgKHJpc2tJbmRleCAhPT0gLTEpIHtcclxuICAgICAgICB0aGlzLmxpc3RPYmplY3Q/LlJJU0tfQ0FURUdPUlk/LnNlbGVjdGVkRGF0YVtcclxuICAgICAgICAgIGNhdGVnb3J5SW5kZXhcclxuICAgICAgICBdPy5yaXNrcy5zcGxpY2Uocmlza0luZGV4LCAxKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhW2NhdGVnb3J5SW5kZXhdPy5yaXNrc1xyXG4gICAgICAgICAgPy5sZW5ndGggPT09IDBcclxuICAgICAgKSB7XHJcbiAgICAgICAgLy8gUmVtb3ZlIGNhdGVnb3J5IGlmIHNlbGVjdGVkTGlzdERhdGEgaXMgZW1wdHlcclxuICAgICAgICB0aGlzLmxpc3RPYmplY3Q/LlJJU0tfQ0FURUdPUlk/LnNlbGVjdGVkRGF0YS5zcGxpY2UoY2F0ZWdvcnlJbmRleCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5yaXNrX2NhdGVnb3J5X2lkcyA9IHRoaXMuZ2V0Umlza0NhdGVnb3J5UGF5bG9hZChcclxuICAgICAgdGhpcy5saXN0T2JqZWN0Py5SSVNLX0NBVEVHT1JZPy5zZWxlY3RlZERhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVTZWxlY3RlZFJlc3BvbnNpYmlsaXR5KHJlc3BvbnNpYmlsaXR5OiBhbnkpIHtcclxuICAgIHRoaXMubGlzdE9iamVjdC5QUk9HUkFNX1JFU1BPTlNJQklMSVRZLnNlbGVjdGVkRGF0YSA9XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdD8uUFJPR1JBTV9SRVNQT05TSUJJTElUWT8uc2VsZWN0ZWREYXRhPy5tYXAoXHJcbiAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IGZpbHRlcmVkUmVzcG9uc2liaWxpdHkgPSBkYXRhPy5yZXNwb25zaWJpbGl0eT8uZmlsdGVyKFxyXG4gICAgICAgICAgICAocmVzcDogYW55KSA9PiByZXNwPy5faWQgIT09IHJlc3BvbnNpYmlsaXR5Py5faWRcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5kYXRhLFxyXG4gICAgICAgICAgICByZXNwb25zaWJpbGl0eTogZmlsdGVyZWRSZXNwb25zaWJpbGl0eSxcclxuICAgICAgICAgICAgY2F0ZWdvcnk6IFtcclxuICAgICAgICAgICAgICAuLi4obmV3IFNldChcclxuICAgICAgICAgICAgICAgIGZpbHRlcmVkUmVzcG9uc2liaWxpdHkubWFwKChvYmo6IGFueSkgPT4gZGF0YT8uY2F0ZWdvcnkpPy5mbGF0KClcclxuICAgICAgICAgICAgICApIHx8IFtdKSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG5cclxuICAgIHRoaXMubGlzdE9iamVjdC5QUk9HUkFNX1JFU1BPTlNJQklMSVRZLnNlbGVjdGVkRGF0YSA9XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdD8uUFJPR1JBTV9SRVNQT05TSUJJTElUWT8uc2VsZWN0ZWREYXRhLmZpbHRlcihcclxuICAgICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZGF0YT8ucmVzcG9uc2liaWxpdHk/Lmxlbmd0aCA+IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLnByb2dyYW1fY2F0ZWdvcnlfaWRzID0gdGhpcy5nZXRQcm9ncmFtUmVzcG9uc2liaWxpdHlQYXlsb2FkKFxyXG4gICAgICB0aGlzLmxpc3RPYmplY3Q/LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGZpbmRDaGVja2VkQ2F0ZWdvcnlJbmRleChjYXRlZ29yeUlkOiBudW1iZXIgfCBudW1iZXJbXSkge1xyXG4gICAgbGV0IGNhdGVnb3J5SW5kZXggPSAtMTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNhdGVnb3J5SWQpICYmIGNhdGVnb3J5SWQ/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAvLyBIYW5kbGUgZW1wdHkgY2F0ZWdvcnlJZCBhcnJheSBjYXNlXHJcbiAgICAgIGNvbnN0IHVuY2F0ZWdvcml6ZWRJbmRleCA9XHJcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0Py5SSVNLX0NBVEVHT1JZPy5zZWxlY3RlZERhdGEuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGNhdDogYW55KSA9PiBjYXQ/LmNhdGVnb3J5Py5faWQgPT09ICd1bmNhdGVnb3JpemVkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgIGlmICh1bmNhdGVnb3JpemVkSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgcmV0dXJuIHVuY2F0ZWdvcml6ZWRJbmRleDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY2F0ZWdvcnlJbmRleCA9IHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhLmZpbmRJbmRleChcclxuICAgICAgICAoY2F0OiBhbnkpID0+IGNhdD8uY2F0ZWdvcnk/LmNhdGVnb3J5X2lkID09PSBjYXRlZ29yeUlkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2F0ZWdvcnlJbmRleDtcclxuICB9XHJcblxyXG4gIHNldExpbmtSaXNrVGFiKHRhYkRldGFpbHM6IGFueSkge1xyXG4gICAgdGhpcy5vdGhlckdSQ0NhcmQgPSB0YWJEZXRhaWxzLm1hcCgodGFiOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB0aXRsZTogdGFiPy5sYWJlbCxcclxuICAgICAgICBjb3VudDogMCxcclxuICAgICAgICBzZWxlY3RlZENvdW50OiAwLFxyXG4gICAgICAgIGtleTogdGFiPy5sYWJlbD8udG9Mb3dlckNhc2UoKSxcclxuICAgICAgICB0eXBlOiBpbmRleCxcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5nZXRPdGhlckdSQ1RhYkNvdW50KHsgcmNfaWRzOiAnJyB9KTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlTGlua1Jpc2soc2VsZWN0ZWREYXRhOiBhbnkpIHtcclxuICAgIGxldCB1cGRhdGVkRGF0YSA9IHNlbGVjdGVkRGF0YT8ubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGRhdGE/LmNhdGVnb3J5X2lkICYmIE9iamVjdD8ua2V5cyhkYXRhPy5jYXRlZ29yeV9pZCk/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5kYXRhLFxyXG4gICAgICAgICAgY2F0ZWdvcnk6IFVOQ0FURUdPUklaRURfTElOS19DQVRFR09SWSxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uZGF0YSxcclxuICAgICAgICBjYXRlZ29yeToge1xyXG4gICAgICAgICAgY2F0ZWdvcnlfaWQ6IGRhdGE/LmNhdGVnb3J5X2lkWzBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICAgIGlmICh1cGRhdGVkRGF0YS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5ncmNGb3JtLmxpbmtSaXNrID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkxJTktfUklTS19DQVRFR09SSUVTX1JJU0tTID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuUklTS19DQVRFR09SWS5zZWxlY3RlZERhdGEgPSB1cGRhdGVkRGF0YTtcclxuICAgIHJldHVybiB0aGlzLmdldFJpc2tDYXRlZ29yeVBheWxvYWQodXBkYXRlZERhdGEpO1xyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVMaW5rUmVzcG9uc2liaWxpdHkoc2VsZWN0ZWREYXRhOiBhbnkpIHtcclxuICAgIGxldCB1cGRhdGVkRGF0YSA9IHNlbGVjdGVkRGF0YT8ubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBwcm9ncmFtOiB7XHJcbiAgICAgICAgICBwcm9ncmFtSWQ6IGRhdGE/LnBhcmVudElkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY2F0ZWdvcnk6IFtdLmNvbmNhdC5hcHBseShbXSwgT2JqZWN0LnZhbHVlcyhkYXRhPy5jYXRlZ29yeV9pZCkpLFxyXG4gICAgICAgIHJlc3BvbnNpYmlsaXR5OiBkYXRhPy5yZXNwb25zaWJpbGl0eV9pZHMgfHwgW10sXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICAgIGlmICh1cGRhdGVkRGF0YS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5ncmNGb3JtLmxpbmtQcm9ncmFtID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkxJTktfUFJPR1JBTSA9IHRydWU7XHJcbiAgICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5saXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFkuc2VsZWN0ZWREYXRhID0gdXBkYXRlZERhdGE7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9ncmFtUmVzcG9uc2liaWxpdHlQYXlsb2FkKHVwZGF0ZWREYXRhKTtcclxuICB9XHJcblxyXG4gIGdldE93bmVyc0V4Y2VwdERlZmF1bHQodXNlcnM6IGFueSkge1xyXG4gICAgY29uc3QgdXNlcnNJZCA9IHVzZXJzLmZpbHRlcihcclxuICAgICAgKHVzZXI6IGFueSkgPT4gIXRoaXMuZGlzYWJsZWRJZHMuaW5jbHVkZXModXNlcilcclxuICAgICk7XHJcbiAgICByZXR1cm4gdXNlcnNJZCB8fCBbXTtcclxuICB9XHJcblxyXG4gIHNldE1vcmVPcHRpb25zT25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlc2V0T3RoZXJHUkNDYXJkKCkge1xyXG4gICAgdGhpcy5vdGhlckdSQ0NhcmQuZm9yRWFjaCgodGFiOiBhbnkpID0+IHtcclxuICAgICAgdGFiLmNvdW50ID0gMDtcclxuICAgICAgdGFiLnNlbGVjdGVkQ291bnQgPSAwO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZXNldERhdGFPblJDQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5saXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFkuc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuUklTS19DQVRFR09SWS5zZWxlY3RlZERhdGEgPSBbXTtcclxuICAgIGlmICh0aGlzLmxpc3RPYmplY3QuUkMuc2VsZWN0ZWREYXRhLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnJlc2V0TW9yZU9wdGlvbnNPblJDQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldE1vcmVPcHRpb25zT25SQ0NoYW5nZSgpIHtcclxuICAgIHRoaXMuZ3JjRm9ybS5saW5rUHJvZ3JhbSA9IGZhbHNlO1xyXG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkxJTktfUFJPR1JBTSA9IGZhbHNlO1xyXG4gICAgdGhpcy5ncmNGb3JtLmxpbmtSaXNrID0gZmFsc2U7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uTElOS19SSVNLX0NBVEVHT1JJRVNfUklTS1MgPSBmYWxzZTtcclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dTbWlsZXlcIj5cclxuICA8ZGl2IGNsYXNzPVwid29ya2Zsb3ctZ3JjXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwib3BlbmVkUG9wdXAgJiYgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcIlxyXG4gICAgICAqbmdJZj1cIiFpc0xvYWRpbmdcIlxyXG4gICAgPlxyXG4gICAgICA8bGliLXRleHQtZmllbGQtaWNvblxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJvcGVuZWRQb3B1cCAmJiBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVwiXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksuZ3JjVHlwZVwiXHJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJ0cnVlXCJcclxuICAgICAgICBmaWVsZC1pY29uc1xyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5cclxuICAgICAgICAgICAgR1JDIE9CSkVDVCBUWVBFPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiPlxyXG4gICAgICAgICAgICA8dGFiLXNlbGVjdG9yXHJcbiAgICAgICAgICAgICAgW3NlbGVjdGVkSXRlbV09XCJncmNQYXlsb2FkLnR5cGVcIlxyXG4gICAgICAgICAgICAgIFtkaXNwbGF5QXJyYXldPVwiT0JKRUNUX1RZUEVcIlxyXG4gICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJjaGFuZ2VBdHRyaWJ1dGVzVHlwZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvdGFiLXNlbGVjdG9yPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIE9iamVjdCBuYW1lIGZpZWxkIC0tPlxyXG4gICAgPGxpYi10ZXh0LWZpZWxkXHJcbiAgICAgIFtkaXNhYmxlZF09XCJcclxuICAgICAgICBvcGVuZWRQb3B1cCAmJlxyXG4gICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFLm5hbWUgJiZcclxuICAgICAgICBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVxyXG4gICAgICBcIlxyXG4gICAgICBbaXNFZGl0TW9kZV09XCJncmNQYXlsb2FkLm5hbWUgJiYgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUubmFtZVwiXHJcbiAgICAgIFt0aXRsZVRleHRdPVwiQUxMX1RFWFQ/LmdyY09iamVjdE5hbWVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNPYmplY3RQbGFjZWhvbGRlclwiXHJcbiAgICAgIFsodGV4dFZhbHVlKV09XCJncmNQYXlsb2FkLm5hbWVcIlxyXG4gICAgICAodGV4dFZhbHVlQ2hhbmdlKT1cIm9uVGV4dENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZSgpXCJcclxuICAgICAgKG9uQ2xpY2spPVwib25Qb3B1cE9wZW4oSU5QVVRfVFlQRS5uYW1lKVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaWItdGV4dC1maWVsZC1pY29uXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksuZ3JjT2JqZWN0TmFtZVwiXHJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJncmNQYXlsb2FkLm5hbWVcIlxyXG4gICAgICAgIGZpZWxkLWljb25zXHJcbiAgICAgID5cclxuICAgICAgPC9saWItdGV4dC1maWVsZC1pY29uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCIgaXMtcmVxdWlyZWQ+Kjwvc3Bhbj5cclxuICAgICAgPGxpYi1lZGl0LW1vZGVcclxuICAgICAgICAqbmdJZj1cImdyY1BheWxvYWQubmFtZSAmJiBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5uYW1lXCJcclxuICAgICAgICBbc2VsZWN0ZWREYXRhXT1cIltncmNQYXlsb2FkXVwiXHJcbiAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCJcclxuICAgICAgICAoaXNPbkVkaXQpPVwib25FZGl0KElOUFVUX1RZUEUubmFtZSlcIlxyXG4gICAgICAgIGVkaXQtbW9kZVxyXG4gICAgICA+PC9saWItZWRpdC1tb2RlPlxyXG4gICAgICA8cFxyXG4gICAgICAgICpuZ0lmPVwiZ3JjVmFsaWRhdGlvbkNoZWNrIHx8IGlzRHVwbGljYXRlTmFtZVwiXHJcbiAgICAgICAgW2FwcFNjcm9sbEluVmlld109XCJ0cnVlXCJcclxuICAgICAgICBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxyXG4gICAgICAgIGVycm9yLW1lc3NhZ2VcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGdyY05hbWVWYWxpZGF0aW9uRXJyb3IgfX1cclxuICAgICAgPC9wPlxyXG4gICAgICA8dmNvbXBseS1lZGl0b3JcclxuICAgICAgICBbZWRpdG9yQ29uZmlnXT1cIkVESVRPUl9DT05GSUdcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiZ3JjUGF5bG9hZC5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgcmljaC10ZXh0LWVkaXRvclxyXG4gICAgICA+PC92Y29tcGx5LWVkaXRvcj5cclxuICAgIDwvbGliLXRleHQtZmllbGQ+XHJcblxyXG4gICAgPCEtLSBTcGVjaWZ5IE93bmVycyAtLT5cclxuICAgIDxsaWItdGV4dC1maWVsZFxyXG4gICAgICBbZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgJiZcclxuICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5vd25lciAmJlxyXG4gICAgICAgIGRpYWxvZ0ZpZWxkcz8uaW5jbHVkZXMob3BlbmVkUG9wdXApXHJcbiAgICAgIFwiXHJcbiAgICAgIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRS5vd25lclwiXHJcbiAgICAgIFtpc0VkaXRNb2RlXT1cIlxyXG4gICAgICAgIGxpc3RPYmplY3QuT1dORVI/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoICYmXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUub3duZXJcclxuICAgICAgXCJcclxuICAgICAgW3RpdGxlVGV4dF09XCJBTExfVEVYVD8uZ3JjT3duZXJzVGl0bGVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNPd25lcnNQbGFjZWhvbGRlclwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgICAob25DbGljayk9XCJvblBvcHVwT3BlbihJTlBVVF9UWVBFLm93bmVyKVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaWItdGV4dC1maWVsZC1pY29uXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksuZ3JjT3duZXJzXCJcclxuICAgICAgICBbaXNDaGVja2VkXT1cImxpc3RPYmplY3QuT1dORVI/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgZmllbGQtaWNvbnNcclxuICAgICAgPlxyXG4gICAgICA8L2xpYi10ZXh0LWZpZWxkLWljb24+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIiBpcy1yZXF1aXJlZD4qPC9zcGFuPlxyXG4gICAgICA8bGliLWVkaXQtbW9kZVxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsaXN0T2JqZWN0Lk9XTkVSPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCAmJlxyXG4gICAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUub3duZXJcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtub25SZW1vdmFibGVJZHNdPVwiZGlzYWJsZWRJZHNcIlxyXG4gICAgICAgIFtjb3VudENvbG9yXT1cIidncmVlbkJnJ1wiXHJcbiAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJsaXN0T2JqZWN0Lk9XTkVSPy5zZWxlY3RlZERhdGFcIlxyXG4gICAgICAgIFt0eXBlXT1cIidsaXN0J1wiXHJcbiAgICAgICAgKGlzT25FZGl0KT1cIm9uRWRpdChJTlBVVF9UWVBFLm93bmVyKVwiXHJcbiAgICAgICAgKG9uUmVtb3ZlRGF0YSk9XCJvblJlbW92ZURhdGEoJGV2ZW50LCBJTlBVVF9UWVBFLm93bmVyKVwiXHJcbiAgICAgICAgZWRpdC1tb2RlXHJcbiAgICAgID48L2xpYi1lZGl0LW1vZGU+XHJcbiAgICA8L2xpYi10ZXh0LWZpZWxkPlxyXG5cclxuICAgIDwhLS0gTGluayBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIChSQykgLS0+XHJcbiAgICA8bGliLXRleHQtZmllbGRcclxuICAgICAgW2Rpc2FibGVkXT1cIlxyXG4gICAgICAgIG9wZW5lZFBvcHVwICYmXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUuUkMgJiZcclxuICAgICAgICBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVxyXG4gICAgICBcIlxyXG4gICAgICBbYWN0aXZlXT1cIm9wZW5lZFBvcHVwICYmIG9wZW5lZFBvcHVwID09IElOUFVUX1RZUEUuUkNcIlxyXG4gICAgICBbaXNFZGl0TW9kZV09XCJcclxuICAgICAgICBsaXN0T2JqZWN0LlJDPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCAmJiBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5SQ1xyXG4gICAgICBcIlxyXG4gICAgICBbdGl0bGVUZXh0XT1cIkFMTF9URVhUPy5ncmNSQ1RpdGxlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyVGV4dF09XCJBTExfVEVYVD8uZ3JjUkNQbGFjZWhvbGRlclwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgICAob25DbGljayk9XCJvblBvcHVwT3BlbihJTlBVVF9UWVBFLlJDKVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaWItdGV4dC1maWVsZC1pY29uXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksuZ3JjUkNcIlxyXG4gICAgICAgIFtpc0NoZWNrZWRdPVwibGlzdE9iamVjdC5SQz8uc2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwXCJcclxuICAgICAgICBmaWVsZC1pY29uc1xyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiIGlzLXJlcXVpcmVkPio8L3NwYW4+XHJcbiAgICAgIDxsaWItZWRpdC1tb2RlXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxpc3RPYmplY3QuUkM/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoICYmIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFLlJDXHJcbiAgICAgICAgXCJcclxuICAgICAgICAob25SZW1vdmVEYXRhKT1cIm9uUmVtb3ZlRGF0YSgkZXZlbnQsIElOUFVUX1RZUEUuUkMpXCJcclxuICAgICAgICBbc2VsZWN0ZWREYXRhXT1cImxpc3RPYmplY3QuUkM/LnNlbGVjdGVkRGF0YVwiXHJcbiAgICAgICAgW3R5cGVdPVwiJ2xpc3QnXCJcclxuICAgICAgICAoaXNPbkVkaXQpPVwib25FZGl0KElOUFVUX1RZUEUuUkMpXCJcclxuICAgICAgICBlZGl0LW1vZGVcclxuICAgICAgPjwvbGliLWVkaXQtbW9kZT5cclxuICAgICAgPHBcclxuICAgICAgICAqbmdJZj1cImlzRm9ybVN1Ym1pdHRlZCAmJiAhbGlzdE9iamVjdC5SQz8uc2VsZWN0ZWREYXRhPy5sZW5ndGhcIlxyXG4gICAgICAgIFthcHBTY3JvbGxJblZpZXddPVwidHJ1ZVwiXHJcbiAgICAgICAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcclxuICAgICAgICBlcnJvci1tZXNzYWdlXHJcbiAgICAgID5cclxuICAgICAgICB7eyBWQUxJREFUSU9OX01FU1NBR0UuZ3JjUkMgfX1cclxuICAgICAgPC9wPlxyXG4gICAgPC9saWItdGV4dC1maWVsZD5cclxuXHJcbiAgICA8IS0tIExpbmsgUHJvZ3JhbSBhbmQgUmVzcG9uc2liaWxpdHkgLS0+XHJcbiAgICA8bGliLXRleHQtZmllbGRcclxuICAgICAgW2Rpc2FibGVkXT1cIlxyXG4gICAgICAgIG9wZW5lZFBvcHVwICYmXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEU/LnByb2dyYW1SZXNwb25zaWJpbGl0eSAmJlxyXG4gICAgICAgIGRpYWxvZ0ZpZWxkcz8uaW5jbHVkZXMob3BlbmVkUG9wdXApXHJcbiAgICAgIFwiXHJcbiAgICAgIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRT8ucHJvZ3JhbVJlc3BvbnNpYmlsaXR5XCJcclxuICAgICAgKm5nSWY9XCJncmNGb3JtPy5saW5rUHJvZ3JhbVwiXHJcbiAgICAgIFt0aXRsZVRleHRdPVwiQUxMX1RFWFQ/LmdyY1Byb2dyYW1SZXNwb25zaWJpbGl0eVRpdGxlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyVGV4dF09XCJBTExfVEVYVD8uZ3JjUHJvZ3JhbVJlc3BvbnNpYmlsaXR5UGxhY2Vob2xkZXJcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJ0cnVlXCJcclxuICAgICAgKG9uQ2xpY2spPVwib25Qb3B1cE9wZW4oSU5QVVRfVFlQRS5wcm9ncmFtUmVzcG9uc2liaWxpdHkpXCJcclxuICAgICAgW2lzRWRpdE1vZGVdPVwiXHJcbiAgICAgICAgbGlzdE9iamVjdD8uUFJPR1JBTV9SRVNQT05TSUJJTElUWT8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcclxuICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRT8ucHJvZ3JhbVJlc3BvbnNpYmlsaXR5XHJcbiAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgIDxsaWItdGV4dC1maWVsZC1pY29uXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksubGlua090aGVyc1wiXHJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJsaXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgZmllbGQtaWNvbnNcclxuICAgICAgPlxyXG4gICAgICA8L2xpYi10ZXh0LWZpZWxkLWljb24+XHJcblxyXG4gICAgICA8bGliLWVkaXQtbW9kZVxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsaXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRT8uUFJPR1JBTV9SRVNQT05TSUJJTElUWVxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgKG9uUmVtb3ZlRGF0YSk9XCJvblJlbW92ZURhdGEoJGV2ZW50LCBJTlBVVF9UWVBFPy5wcm9ncmFtUmVzcG9uc2liaWxpdHkpXCJcclxuICAgICAgICBbc2VsZWN0ZWREYXRhXT1cInNlbGVjdGVkUmVzcG9uc2liaWxpdHlcIlxyXG4gICAgICAgIFtuYW1lRGlzcGxheUtleV09XCInUmVwb3J0TmFtZSdcIlxyXG4gICAgICAgIFt0eXBlXT1cIidsaXN0J1wiXHJcbiAgICAgICAgKGlzT25FZGl0KT1cIm9uRWRpdChJTlBVVF9UWVBFLnByb2dyYW1SZXNwb25zaWJpbGl0eSlcIlxyXG4gICAgICAgIGVkaXQtbW9kZVxyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLWVkaXQtbW9kZT5cclxuICAgIDwvbGliLXRleHQtZmllbGQ+XHJcblxyXG4gICAgPCEtLSBMaW5rIFJpc2sgQ2F0ZWdvcmllcyBhbmQgUmlzayAtLT5cclxuICAgIDxsaWItdGV4dC1maWVsZFxyXG4gICAgICBbZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgJiZcclxuICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRT8ucmlza0NhdGVnb3J5ICYmXHJcbiAgICAgICAgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcclxuICAgICAgXCJcclxuICAgICAgW2FjdGl2ZV09XCJvcGVuZWRQb3B1cCAmJiBvcGVuZWRQb3B1cCA9PSBJTlBVVF9UWVBFPy5yaXNrQ2F0ZWdvcnlcIlxyXG4gICAgICAqbmdJZj1cImdyY0Zvcm0/LmxpbmtSaXNrXCJcclxuICAgICAgW3RpdGxlVGV4dF09XCJBTExfVEVYVD8uZ3JjUmlza0NhdGVnb3J5VGl0bGVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNSaXNrQ2F0ZWdvcnlQbGFjZWhvbGRlclwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgICAob25DbGljayk9XCJvblBvcHVwT3BlbihJTlBVVF9UWVBFLnJpc2tDYXRlZ29yeSlcIlxyXG4gICAgICBbaXNFZGl0TW9kZV09XCJcclxuICAgICAgICBsaXN0T2JqZWN0Py5SSVNLX0NBVEVHT1JZPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCAmJlxyXG4gICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFPy5yaXNrQ2F0ZWdvcnlcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPGxpYi10ZXh0LWZpZWxkLWljb25cclxuICAgICAgICBbY2RuTGlua109XCJDRE5fTElOSy5saW5rR1JDXCJcclxuICAgICAgICBbaXNDaGVja2VkXT1cImxpc3RPYmplY3QuUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwXCJcclxuICAgICAgICBmaWVsZC1pY29uc1xyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cclxuXHJcbiAgICAgIDxsaWItZWRpdC1tb2RlXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxpc3RPYmplY3QuUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcclxuICAgICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFLlJJU0tfQ0FURUdPUllcclxuICAgICAgICBcIlxyXG4gICAgICAgIChvblJlbW92ZURhdGEpPVwib25SZW1vdmVEYXRhKCRldmVudCwgSU5QVVRfVFlQRT8ucmlza0NhdGVnb3J5KVwiXHJcbiAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJzZWxlY3RlZFJpc2tzXCJcclxuICAgICAgICBbdHlwZV09XCInbGlzdCdcIlxyXG4gICAgICAgIChpc09uRWRpdCk9XCJvbkVkaXQoSU5QVVRfVFlQRS5yaXNrQ2F0ZWdvcnksIGRhdGE/LmtleSlcIlxyXG4gICAgICAgIGVkaXQtbW9kZVxyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLWVkaXQtbW9kZT5cclxuICAgIDwvbGliLXRleHQtZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gTGluayBPdGhlciBHUkMgT2JqZWN0cyAtLT5cclxuICA8bGliLXRleHQtZmllbGRcclxuICAgICpuZ0lmPVwiZ3JjRm9ybT8ub3RoZXJHcmNPYmplY3RzXCJcclxuICAgIFtkaXNhYmxlZF09XCJcclxuICAgICAgb3BlbmVkUG9wdXAgJiZcclxuICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEU/Lm90aGVyR3JjT2JqZWN0cyAmJlxyXG4gICAgICBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVxyXG4gICAgXCJcclxuICAgIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRT8ub3RoZXJHcmNPYmplY3RzXCJcclxuICAgIFt0aXRsZVRleHRdPVwiQUxMX1RFWFQ/Lm90aGVyR1JDT2JqZWN0c1RpdGxlXCJcclxuICAgIFtwbGFjZWhvbGRlclRleHRdPVwiQUxMX1RFWFQ/Lm90aGVyR1JDT2JqZWN0c1BsYWNlaG9sZGVyXCJcclxuICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgKG9uQ2xpY2spPVwib25Qb3B1cE9wZW4oSU5QVVRfVFlQRS5vdGhlckdyY09iamVjdHMpXCJcclxuICAgIFtpc0VkaXRNb2RlXT1cIlxyXG4gICAgICBsaXN0T2JqZWN0Py5PVEhFUl9HUkNfT0JKRUNUUz8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcclxuICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEU/Lm90aGVyR3JjT2JqZWN0c1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8bGliLXRleHQtZmllbGQtaWNvblxyXG4gICAgICBbY2RuTGlua109XCJDRE5fTElOSy5saW5rT3RoZXJzXCJcclxuICAgICAgW2lzQ2hlY2tlZF09XCJsaXN0T2JqZWN0Py5PVEhFUl9HUkNfT0JKRUNUUz8uc2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwXCJcclxuICAgICAgZmllbGQtaWNvbnNcclxuICAgID5cclxuICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cclxuXHJcbiAgICA8bGliLWVkaXQtbW9kZVxyXG4gICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiBHUkNfVFlQRV9BUlJBWVwiXHJcbiAgICAgIChvblJlbW92ZURhdGEpPVwib25SZW1vdmVEYXRhKCRldmVudCwgSU5QVVRfVFlQRT8ub3RoZXJHcmNPYmplY3RzKVwiXHJcbiAgICAgIFtzZWxlY3RlZERhdGFdPVwiZ3JjRGF0YVdpdGhUeXBlc1tkYXRhXVwiXHJcbiAgICAgIFt0eXBlXT1cIidsaXN0J1wiXHJcbiAgICAgIFtpc011bHRpcGxlXT1cInRydWVcIlxyXG4gICAgICAoaXNPbkVkaXQpPVwib25FZGl0KElOUFVUX1RZUEUub3RoZXJHcmNPYmplY3RzLCBkYXRhKVwiXHJcbiAgICAgIGVkaXQtbW9kZVxyXG4gICAgPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ3b3JrZmxvd0xhdmVsIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wbC0xIHZ4LXByLTEgdngtbGgtNCB2eC1tci0xIHZ4LXRleHQtY2VudGVyXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGRhdGEgfCB0aXRsZWNhc2UgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2xpYi1lZGl0LW1vZGU+XHJcbiAgPC9saWItdGV4dC1maWVsZD5cclxuICA8bGliLWF0dHJpYnV0ZXNcclxuICAgIFtkaXNhYmxlZF09XCJvcGVuZWRQb3B1cCAmJiBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVwiXHJcbiAgICAqbmdJZj1cInNlbGVjdGVkQXR0cmlidXRlcz8uYXR0cmlidXRlcz8ubGVuZ3RoICYmIHRoaXMuZ3JjRm9ybS5ncmNPYmplY3RUeXBlXCJcclxuICAgIFthdHRyaWJ1dGVzSW5mb109XCJzZWxlY3RlZEF0dHJpYnV0ZXNcIlxyXG4gICAgW2lzRm9ybVN1Ym1pdHRlZF09XCJpc0Zvcm1TdWJtaXR0ZWRcIlxyXG4gICAgKG9uQ2xpY2spPVwiZ2V0QXR0cmlidXRlU2VsZWN0aW9uKCRldmVudClcIlxyXG4gID48L2xpYi1hdHRyaWJ1dGVzPlxyXG4gIDxsaWItbGlzdC1wb3B1cFxyXG4gICAgW29wZW5lZFBvcHVwXT1cIm9wZW5lZFBvcHVwXCJcclxuICAgIFtsaXN0T2JqZWN0XT1cImxpc3RPYmplY3RcIlxyXG4gICAgW3RhYmxlQ2FyZF09XCJvdGhlckdSQ0NhcmRcIlxyXG4gICAgW290aGVyR3JjQ2FyZExvYWRlcl09XCJncmNUYWJMb2FkZXJcIlxyXG4gICAgW0dSQ1NlbGVjdGVkVGFiXT1cIkdSQ1NlbGVjdGVkVGFiXCJcclxuICAgIFttb2RlXT1cIk1PREVcIlxyXG4gICAgW29uRWRpdEdSQ0lkXT1cIklEXCJcclxuICAgIChvblNhdmVTZWxlY3RlZExpc3QpPVwib25TYXZlU2VsZWN0ZWRMaXN0KCRldmVudClcIlxyXG4gICAgKGdldE90aGVyR1JDT2JqZWN0cyk9XCJnZXRPdGhlckdSQ09iamVjdHMoJGV2ZW50KVwiXHJcbiAgPjwvbGliLWxpc3QtcG9wdXA+XHJcbjwvbmctY29udGFpbmVyPlxyXG48YXBwLXNtaWxleS1kaWFsb2ctaW5saW5lXHJcbiAgKm5nSWY9XCJzaG93U21pbGV5XCJcclxuICBbbWVzc2FnZV09XCJzbWlsZXlNZXNzYWdlXCJcclxuICBbYWN0aW9uQnV0dG9uc109XCJhY3Rpb25CdXR0b25zXCJcclxuICAoYWN0aW9uKT1cInNtaWxleUFjdGlvbnMoJGV2ZW50KVwiXHJcbiAgKGNsb3NlU21pbGV5KT1cImNsb3NlU21pbGV5KCRldmVudClcIlxyXG4+PC9hcHAtc21pbGV5LWRpYWxvZy1pbmxpbmU+XHJcbjxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImlzTG9hZGluZ1wiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcbiJdfQ==
|
|
830
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JjLW9iamVjdC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3cvZ3JjLW9iamVjdC9ncmMtb2JqZWN0LWNvbnRhaW5lci9ncmMtb2JqZWN0LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy9ncmMtb2JqZWN0L2dyYy1vYmplY3QtY29udGFpbmVyL2dyYy1vYmplY3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBV3hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUcvRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLDJCQUEyQixHQUM1QixNQUFNLDJDQUEyQyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0IzRSxNQUFNLE9BQU8sMkJBQTJCO0lBaUZ0QyxZQUNVLFVBQXNCLEVBQ3RCLFVBQWlDLEVBQ2pDLFdBQXdCLEVBQ3hCLFlBQTBCO1FBSDFCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7UUFDakMsZ0JBQVcsR0FBWCxX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S0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxDQUFDO1FBQ3pELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7O3dIQTM2QlUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsbVdDMUN4Qyx1NFZBK1NBOzJGRHJRYSwyQkFBMkI7a0JBZHZDLFNBQVM7K0JBQ0UsMEJBQTBCLFdBRzNCO3dCQUNQLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCw2QkFBNkI7cUJBQzlCLFVBQ08sQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGSUVMRF9URVhUIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbnN0YW50cy9maWVsZC10ZXh0LmNvbnN0YW50JztcclxuaW1wb3J0IHsgTElOS1MgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL2Nkbi1saW5rLmNvbnN0YW50JztcclxuaW1wb3J0IHsgVkFMSURBVElPTl9NRVNTQUdFIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbnN0YW50cy92YWxpZGF0aW9uLW1lc3NhZ2UuY29uc3RhbnQnO1xyXG5pbXBvcnQge1xyXG4gIEFkZEdyYyxcclxuICBBdHRyaWJ1dGVzLFxyXG4gIEJ1dHRvbixcclxuICBHUkNUeXBlLFxyXG4gIElucHV0VHlwZSxcclxuICBMaXN0T2JqZWN0LFxyXG4gIE9wZW5lZFBvcHVwLFxyXG4gIFJDTGlzdCxcclxufSBmcm9tICcuLi8uLi9zaGFyZWQvaW50ZXJmYWNlcy9hZGQtZ3JjJztcclxuaW1wb3J0IHsgR3JjU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9ncmMuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlc3BvbnNpYmlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL3Jlc3BvbnNpYmlsaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgR1JDX1RZUEVfQVJSQVksXHJcbiAgT1RIRVJfR1JDX0NBUkQsXHJcbiAgT1RIRVJfR1JDX1RBQl9JTkRFWCxcclxuICBTTUlMRVlfQlVUVE9OUyxcclxuICBVTkNBVEVHT1JJWkVEX0xJTktfQ0FURUdPUlksXHJcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbnN0YW50cy9ncmNPYmplY3QuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBTVUNDRVNTX01FU1NBR0UgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL21lc3NhZ2UuY29udHN0YW50JztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFVpS2l0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL3VpLWtpdC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWdyYy1vYmplY3QtY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ3JjLW9iamVjdC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2dyYy1vYmplY3QtY29udGFpbmVyLmNvbXBvbmVudC5sZXNzJywgJy4uLy4uLy4uL2Zvcm1zLmxlc3MnXSxcclxuICBvdXRwdXRzOiBbXHJcbiAgICAncG9wdWxhdGVPcHRpb24nLFxyXG4gICAgJ3BpY2tlckNoYW5nZWQnLFxyXG4gICAgJ2Nsb3NlV29ya2Zsb3cnLFxyXG4gICAgJ2Rpc2Nvbm5lY3RSZWZyZXNoJyxcclxuICAgICdyZXNldEZvcm0nLFxyXG4gICAgJ2hpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucycsXHJcbiAgXSxcclxuICBpbnB1dHM6IFsnZ3JjVHlwZScsICdNT0RFJywgJ0lEJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHcmNPYmplY3RDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgTU9ERTogJ0NSRUFURScgfCAnRURJVCcgPSAnQ1JFQVRFJztcclxuICBJRDogc3RyaW5nID0gJyc7XHJcbiAgQUxMX1RFWFQgPSBGSUVMRF9URVhUO1xyXG4gIENETl9MSU5LID0gTElOS1M7XHJcbiAgVkFMSURBVElPTl9NRVNTQUdFID0gVkFMSURBVElPTl9NRVNTQUdFO1xyXG4gIEdSQ19UWVBFX0FSUkFZID0gR1JDX1RZUEVfQVJSQVk7XHJcbiAgRURJVE9SX0NPTkZJRyA9IEdyY1NlcnZpY2UuRURJVE9SX0NPTkZJRztcclxuICBvdGhlckdSQ0NhcmQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KE9USEVSX0dSQ19DQVJEKSk7XHJcbiAgT0JKRUNUX1RZUEUhOiBHUkNUeXBlW107XHJcbiAgTElTVF9QT1BVUDogQXJyYXk8c3RyaW5nPiA9IFsnUkMnXTtcclxuICBzbWlsZXlNZXNzYWdlOiBzdHJpbmcgPSBTVUNDRVNTX01FU1NBR0UuQUREX0dSQ19PQkpFQ1Q7XHJcbiAgSU5QVVRfVFlQRTogSW5wdXRUeXBlID0ge1xyXG4gICAgbmFtZTogJ05BTUUnLFxyXG4gICAgb3duZXI6ICdPV05FUicsXHJcbiAgICBSQzogJ1JDJyxcclxuICAgIHJpc2tDYXRlZ29yeTogJ1JJU0tfQ0FURUdPUlknLFxyXG4gICAgb3RoZXJHcmNPYmplY3RzOiAnT1RIRVJfR1JDX09CSkVDVFMnLFxyXG4gICAgcHJvZ3JhbVJlc3BvbnNpYmlsaXR5OiAnUFJPR1JBTV9SRVNQT05TSUJJTElUWScsXHJcbiAgfTtcclxuICBPUklHSU5BTF9HUkNfQVRUUklCVVRFUzogYW55OyAvLyBEb24ndCBjaGFuZ2UgdGhlIHZhbHVlIG9uY2UgaXQgaXMgYXNzaWduZWRcclxuICBkaWFsb2dGaWVsZHM6IEFycmF5PHN0cmluZz4gPSBbXHJcbiAgICAnUkMnLFxyXG4gICAgJ09XTkVSJyxcclxuICAgICdPVEhFUl9HUkNfT0JKRUNUUycsXHJcbiAgICAnUklTS19DQVRFR09SWScsXHJcbiAgICAnQVRUUklCVVRFUycsXHJcbiAgICAnUFJPR1JBTV9SRVNQT05TSUJJTElUWScsXHJcbiAgXTtcclxuICBzY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xyXG4gIGdyY1R5cGU6IDAgfCAxIHwgMiB8IDMgPSAwO1xyXG4gIGRpc2FibGVkSWRzOiBBcnJheTxudW1iZXI+ID0gW107XHJcbiAgb3BlbmVkUG9wdXA6IE9wZW5lZFBvcHVwWyd0eXBlJ10gPSAnJztcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGFkZGl0aW9uYWxPcHRpb246IGFueSA9IHtcclxuICAgIEFUVFJJQlVURVM6IGZhbHNlLFxyXG4gICAgTElOS19QUk9HUkFNOiBmYWxzZSxcclxuICAgIExJTktfUklTS19DQVRFR09SSUVTX1JJU0tTOiBmYWxzZSxcclxuICAgIE9USEVSX0dSQ19PQkpFQ1RTOiBmYWxzZSxcclxuICB9O1xyXG4gIGdyY0Zvcm06IGFueSA9IHtcclxuICAgIGdyY09iamVjdFR5cGU6IGZhbHNlLFxyXG4gICAgbGlua1Byb2dyYW06IGZhbHNlLFxyXG4gICAgbGlua1Jpc2s6IGZhbHNlLFxyXG4gICAgb3RoZXJHcmNPYmplY3RzOiBmYWxzZSxcclxuICB9O1xyXG4gIGdyY1BheWxvYWQhOiBBZGRHcmM7XHJcbiAgbGlzdE9iamVjdCE6IExpc3RPYmplY3Q7XHJcbiAgc2VsZWN0ZWRBdHRyaWJ1dGVzITogR1JDVHlwZTtcclxuICBzaG93U21pbGV5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWN0aW9uQnV0dG9uczogQnV0dG9uW10gPSBTTUlMRVlfQlVUVE9OUztcclxuICBncmNEYXRhV2l0aFR5cGVzOiBhbnkgPSB7XHJcbiAgICBhc3NldHM6IFtdLFxyXG4gICAgcHJvY2Vzc2VzOiBbXSxcclxuICAgIHZlbmRvcnM6IFtdLFxyXG4gICAgaW52ZW50b3J5OiBbXSxcclxuICB9O1xyXG4gIEdSQ1NlbGVjdGVkVGFiOiBudW1iZXIgPSAwO1xyXG4gIG90aGVyR1JDVGFiSW5kZXggPSBPVEhFUl9HUkNfVEFCX0lOREVYO1xyXG4gIGlzRm9ybVN1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGdyY05hbWVWYWxpZGF0aW9uRXJyb3I6IHN0cmluZyA9ICcnO1xyXG4gIGlzRHVwbGljYXRlTmFtZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRldGFpbHNMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RlZENhdGVnb3JpZXM6IGFueVtdID0gW107XHJcbiAgc2VsZWN0ZWRSaXNrczogYW55W10gPSBbXTtcclxuICBhZGRlZEdSQzogYW55O1xyXG4gIG90aGVyR1JDU2VhcmNoOiBzdHJpbmcgPSAnJztcclxuICBncmNUYWJMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RlZFByb2dyYW06IGFueVtdID0gW107XHJcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eTogYW55W10gPSBbXTtcclxuXHJcbiAgcG9wdWxhdGVPcHRpb246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHBpY2tlckNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGNsb3NlV29ya2Zsb3c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGRpc2Nvbm5lY3RSZWZyZXNoOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICByZXNldEZvcm06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9uczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIG90aGVyR1JDU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG4gIGhpZGVNb3JlT3B0aW9uOiBhbnkgPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGdyY1NlcnZpY2U6IEdyY1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IFJlc3BvbnNpYmlsaXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1aUtpdFNlcnZpY2U6IFVpS2l0U2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5nZXRVc2VySW5mbygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgY29uc3Qgcmlza1Blcm1pc3Npb24gPVxyXG4gICAgICAgIHJlcz8ucm9sZUFjdGlvbnNbXHJcbiAgICAgICAgICByZXM/LnJvbGVBY3Rpb25zPy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUubW9kdWxlTmFtZSA9PSAncmlzaycpXHJcbiAgICAgICAgXTtcclxuICAgICAgaWYgKCFyaXNrUGVybWlzc2lvbj8uaXNBY3RpdmUpIHtcclxuICAgICAgICB0aGlzLmhpZGVNb3JlT3B0aW9uLnB1c2goJ0xJTktfUklTS19DQVRFR09SSUVTX1JJU0tTJyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5oaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMuZW1pdCh0aGlzLmhpZGVNb3JlT3B0aW9uKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVzZXRHUkNGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ncmNTZXJ2aWNlLkdSQ19QQVlMT0FEKSk7XHJcbiAgICB0aGlzLmdyY1BheWxvYWQudHlwZSA9IHRoaXMuZ3JjVHlwZTtcclxuICAgIHRoaXMubGlzdE9iamVjdCA9IHRoaXMuZ3JjU2VydmljZS5MSVNUX09CSkVDVDtcclxuICAgIHRoaXMuX2luaXRpYXRlQVBJKCk7XHJcbiAgfVxyXG5cclxuICAvL1RPRE86IGltcGxlbWVudCB0aGlzXHJcbiAgcG9wdWxhdGVPcHRpb25hbEZpZWxkcygpIHtcclxuICAgIGNvbnN0IGFjdGl2YXRlZE9wdGlvbnMgPSBbXTtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuYWRkaXRpb25hbE9wdGlvbikpIHtcclxuICAgICAgaWYgKHRoaXMuYWRkaXRpb25hbE9wdGlvbltrZXldID09PSB0cnVlKSB7XHJcbiAgICAgICAgYWN0aXZhdGVkT3B0aW9ucy5wdXNoKGtleSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uLmVtaXQoYWN0aXZhdGVkT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvL1RPRE86IGltcGxlbWVudCB0aGlzXHJcbiAgYWRkTW9yZUluZm8oZXZlbnQ6IGFueSkge1xyXG4gICAgc3dpdGNoIChldmVudD8uY29kZSkge1xyXG4gICAgICBjYXNlICdBVFRSSUJVVEVTJzpcclxuICAgICAgICB0aGlzLmdyY0Zvcm0uZ3JjT2JqZWN0VHlwZSA9IGV2ZW50Py5jaGVja2VkO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdMSU5LX1BST0dSQU0nOlxyXG4gICAgICAgIHRoaXMuZ3JjRm9ybS5saW5rUHJvZ3JhbSA9IGV2ZW50Py5jaGVja2VkO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdMSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUyc6XHJcbiAgICAgICAgdGhpcy5ncmNGb3JtLmxpbmtSaXNrID0gZXZlbnQ/LmNoZWNrZWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ09USEVSX0dSQ19PQkpFQ1RTJzpcclxuICAgICAgICB0aGlzLmdyY0Zvcm0ub3RoZXJHcmNPYmplY3RzID0gZXZlbnQ/LmNoZWNrZWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNjcm9sbFRvQm90dG9tID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vVE9ETzogaW1wbGVtZW50IHRoaXNcclxuICBvblRleHRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLm5hbWUgPSBldmVudC50cmltKCk7XHJcbiAgICB0aGlzLm9wZW5lZFBvcHVwID0gJyc7XHJcbiAgICB0aGlzLmdyY05hbWVWYWxpZGF0aW9uRXJyb3IgPSAnJztcclxuICAgIHRoaXMuaXNEdXBsaWNhdGVOYW1lID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvL1RPRE86IGltcGxlbWVudCB0aGlzXHJcbiAgb25Qb3B1cE9wZW4odHlwZTogT3BlbmVkUG9wdXBbJ3R5cGUnXSkge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ09XTkVSJzpcclxuICAgICAgY2FzZSAnUkMnOlxyXG4gICAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSB0eXBlO1xyXG4gICAgICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KHRydWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdPVEhFUl9HUkNfT0JKRUNUUyc6XHJcbiAgICAgICAgdGhpcy5vcGVuZWRQb3B1cCA9IHR5cGU7XHJcbiAgICAgICAgdGhpcy5nZXRPdGhlckdSQ09iamVjdHMoeyByY19pZHM6ICcnIH0pO1xyXG4gICAgICAgIHRoaXMuZ2V0T3RoZXJHUkNUYWJDb3VudCh7IHJjX2lkczogJycgfSk7XHJcbiAgICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1JJU0tfQ0FURUdPUlknOlxyXG4gICAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSB0eXBlO1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UucHJldmlld1BhbmVsLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1BST0dSQU1fUkVTUE9OU0lCSUxJVFknOlxyXG4gICAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSB0eXBlO1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UucHJldmlld1BhbmVsLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNhdmVTZWxlY3RlZExpc3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5saXN0T2JqZWN0ID0gZXZlbnQ7XHJcbiAgICBpZiAodGhpcy5vcGVuZWRQb3B1cCA9PT0gJ09USEVSX0dSQ19PQkpFQ1RTJykge1xyXG4gICAgICB0aGlzLnNldE90aGVyR1JDVHlwZXNGb3JtYXRlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldExpc3RQYXlsb2FkKHRoaXMub3BlbmVkUG9wdXApO1xyXG4gICAgdGhpcy5vcGVuZWRQb3B1cCA9ICcnO1xyXG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBnZXRBdHRyaWJ1dGVTZWxlY3Rpb24oZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSAnJztcclxuICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9wZW5lZFBvcHVwID0gJyc7XHJcbiAgICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRMaXN0UGF5bG9hZCh0eXBlOiBzdHJpbmcpIHtcclxuICAgIGlmICh0eXBlID09PSAnT1dORVInKSB7XHJcbiAgICAgIHRoaXMuZ3JjUGF5bG9hZC5vd25lcnMgPSB0aGlzLmxpc3RPYmplY3QuT1dORVIuc2VsZWN0ZWREYXRhLm1hcChcclxuICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLm1lbWJlcl9pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlID09PSAnUkMnKSB7XHJcbiAgICAgIGxldCBwcmV2aW91c1JDSWRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmdyY1BheWxvYWQucmNfaWRzKSk7XHJcbiAgICAgIHRoaXMuZ3JjUGF5bG9hZC5yY19pZHMgPSB0aGlzLmxpc3RPYmplY3QuUkMuc2VsZWN0ZWREYXRhLm1hcChcclxuICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtPy5faWRcclxuICAgICAgKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICFwcmV2aW91c1JDSWRzLmV2ZXJ5KChpZDogYW55KSA9PiB0aGlzLmdyY1BheWxvYWQucmNfaWRzLmluY2x1ZGVzKGlkKSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5yZXNldERhdGFPblJDQ2hhbmdlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0eXBlID09PSAnT1RIRVJfR1JDX09CSkVDVFMnKSB7XHJcbiAgICAgIHRoaXMuZ3JjUGF5bG9hZC5saW5rZWRfR1JDX2lkcyA9XHJcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLnNlbGVjdGVkRGF0YS5tYXAoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLl9pZFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZSA9PT0gJ1JJU0tfQ0FURUdPUlknKSB7XHJcbiAgICAgIHRoaXMuZ3JjUGF5bG9hZC5yaXNrX2NhdGVnb3J5X2lkcyA9IHRoaXMuZ2V0Umlza0NhdGVnb3J5UGF5bG9hZChcclxuICAgICAgICB0aGlzLmxpc3RPYmplY3Q/LlJJU0tfQ0FURUdPUlk/LnNlbGVjdGVkRGF0YVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGUgPT09ICdQUk9HUkFNX1JFU1BPTlNJQklMSVRZJykge1xyXG4gICAgICB0aGlzLmdyY1BheWxvYWQucHJvZ3JhbV9jYXRlZ29yeV9pZHMgPVxyXG4gICAgICAgIHRoaXMuZ2V0UHJvZ3JhbVJlc3BvbnNpYmlsaXR5UGF5bG9hZChcclxuICAgICAgICAgIHRoaXMubGlzdE9iamVjdD8uUFJPR1JBTV9SRVNQT05TSUJJTElUWT8uc2VsZWN0ZWREYXRhXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2tPdXRzaWRlKCkge1xyXG4gICAgLy90aGlzLm9wZW5lZFBvcHVwID0gJyc7XHJcbiAgfVxyXG5cclxuICBvbkVkaXQoZXZlbnQ6IGFueSwgc3ViVHlwZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9wZW5lZFBvcHVwID0gZXZlbnQ7XHJcbiAgICBpZiAoZXZlbnQgPT09ICdPVEhFUl9HUkNfT0JKRUNUUycpIHtcclxuICAgICAgdGhpcy5HUkNTZWxlY3RlZFRhYiA9IHRoaXMub3RoZXJHUkNUYWJJbmRleFtzdWJUeXBlXSA/PyAwO1xyXG4gICAgICB0aGlzLmdldE90aGVyR1JDT2JqZWN0cyh7IHR5cGU6IHRoaXMuR1JDU2VsZWN0ZWRUYWIsIHJjX2lkczogJycgfSk7XHJcbiAgICAgIHRoaXMuZ2V0T3RoZXJHUkNUYWJDb3VudCh7IHJjX2lkczogJycgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5MSVNUX1BPUFVQLmluY2x1ZGVzKGV2ZW50KSkge1xyXG4gICAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdCh0cnVlKTtcclxuICAgICAgLy8gdGhpcy5hdXRoU2VydmljZS5wcmV2aWV3UGFuZWwubmV4dCh0cnVlKTtcclxuICAgIH1cclxuICAgIGlmIChldmVudCA9PT0gJ1JJU0tfQ0FURUdPUlknIHx8IGV2ZW50ID09PSAnUFJPR1JBTV9SRVNQT05TSUJJTElUWScpIHtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5wcmV2aWV3UGFuZWwubmV4dCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUmVtb3ZlRGF0YShcclxuICAgIGV2ZW50OiBhbnksXHJcbiAgICB0eXBlOlxyXG4gICAgICB8ICdSQydcclxuICAgICAgfCAnT1dORVInXHJcbiAgICAgIHwgJ09USEVSX0dSQ19PQkpFQ1RTJ1xyXG4gICAgICB8ICdSSVNLX0NBVEVHT1JZJ1xyXG4gICAgICB8ICdQUk9HUkFNX1JFU1BPTlNJQklMSVRZJ1xyXG4gICkge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ1JDJzpcclxuICAgICAgICB0aGlzLmxpc3RPYmplY3RbdHlwZV0uc2VsZWN0ZWREYXRhLnNwbGljZShldmVudC5pbmRleCwgMSk7XHJcbiAgICAgICAgdGhpcy5yZXNldERhdGFPblJDQ2hhbmdlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ09XTkVSJzpcclxuICAgICAgICB0aGlzLmxpc3RPYmplY3RbdHlwZV0uc2VsZWN0ZWREYXRhLnNwbGljZShldmVudC5pbmRleCwgMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ09USEVSX0dSQ19PQkpFQ1RTJzpcclxuICAgICAgICB0aGlzLnJlbW92ZU90aGVyR1JDT2JqZWN0cyhldmVudD8uZGF0YSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1JJU0tfQ0FURUdPUlknOlxyXG4gICAgICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWRSaXNrKGV2ZW50LmRhdGE/LkNhdGVnb3J5SWRzWzBdLCBldmVudD8uZGF0YSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1BST0dSQU1fUkVTUE9OU0lCSUxJVFknOlxyXG4gICAgICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWRSZXNwb25zaWJpbGl0eShldmVudD8uZGF0YSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldExpc3RQYXlsb2FkKHR5cGUpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlQXR0cmlidXRlc1R5cGUoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ncmNUeXBlID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdyY1BheWxvYWQudHlwZSA9IGV2ZW50O1xyXG4gICAgdGhpcy5zZXREZWZhdWx0R1JDT2JqZWN0VHlwZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdGlhdGVBUEkoKSB7XHJcbiAgICBpZiAodGhpcy5NT0RFID09PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5nZXRHUkNPYmplY3REZXRhaWxzKHRoaXMuSUQpO1xyXG4gICAgICB0aGlzLnNtaWxleU1lc3NhZ2UgPSBTVUNDRVNTX01FU1NBR0UuVVBEQVRFX0dSQ19PQkpFQ1Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRldGFpbHNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5fZ2V0R1JDT2JqZWN0VHlwZSgpO1xyXG4gICAgICB0aGlzLl9nZXRPd25lckxpc3QoKTtcclxuICAgICAgdGhpcy5fZ2V0UkNMaXN0KCk7XHJcbiAgICAgIHRoaXMuZ2V0T3RoZXJHUkNPYmplY3RzKHsgcmNfaWRzOiAnJyB9KTtcclxuICAgICAgLy8gdGhpcy5nZXRPdGhlckdSQ1RhYkNvdW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRPd25lckxpc3QoKSB7XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuT1dORVIuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuYXBpU2VydmljZS5nZXRHUkNPd25lckxpc3QoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAodXNlckxpc3Q6IGFueSkgPT4gdGhpcy5tYXBVc2VyTGlzdCh1c2VyTGlzdCksXHJcbiAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge30sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBmdW5jdGlvbiBgbWFwVXNlckxpc3RgIG1hcHMgdGhlIHVzZXIgbGlzdCBkYXRhIGFuZCBwZXJmb3JtcyBzb21lIGFkZGl0aW9uYWwgb3BlcmF0aW9ucyBvbiBlYWNoXHJcbiAgICogdXNlciBvYmplY3QuXHJcbiAgICogQHBhcmFtIHthbnl9IHVzZXJMaXN0IC0gVGhlIGB1c2VyTGlzdGAgcGFyYW1ldGVyIGlzIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIGEgYGRhdGFgIHByb3BlcnR5LiBUaGVcclxuICAgKiBgZGF0YWAgcHJvcGVydHkgaXMgYW4gYXJyYXkgb2YgdXNlciBvYmplY3RzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgbWFwVXNlckxpc3QodXNlckxpc3Q6IGFueSkge1xyXG4gICAgdGhpcy5saXN0T2JqZWN0WydPV05FUiddWydkYXRhJ10gPSB7fTtcclxuICAgIHRoaXMubGlzdE9iamVjdFsnT1dORVInXS5zZWxlY3RlZERhdGEgPSBbXTtcclxuICAgIHRoaXMuZGlzYWJsZWRJZHMgPSBbXTtcclxuICAgIC8vIE1hcCB3aWxsIGdldCByZW1vdmUgb25jZSBBUEkgY2hhbmdlXHJcbiAgICB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ11bJ2RhdGEnXVsnYXNzaWduZWVzTGlzdCddID0gdXNlckxpc3Q/LmRhdGEubWFwKFxyXG4gICAgICAodXNlcjogYW55KSA9PiB7XHJcbiAgICAgICAgdXNlci5pdGVtX25hbWUgPSB1c2VyLm1lbWJlcl9uYW1lO1xyXG4gICAgICAgIHVzZXIuZW1wbG95ZWVfbmFtZSA9IHVzZXIubWVtYmVyX25hbWU7XHJcbiAgICAgICAgdXNlci5teV9tZW1iZXJfaWQgPSB1c2VyLm1lbWJlcl9pZDtcclxuICAgICAgICB1c2VyLml0ZW1faWQgPSB1c2VyLm1lbWJlcl9pZDtcclxuICAgICAgICBpZiAoWydBRE1JTicsICdLRVlfQURNSU4nXS5pbmNsdWRlcyh1c2VyLnVzZXJfcm9sZSkpIHtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZWRJZHMucHVzaCh1c2VyLm1lbWJlcl9pZCk7XHJcbiAgICAgICAgICB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ10uc2VsZWN0ZWREYXRhLnB1c2godXNlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1c2VyO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuTU9ERSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdC5PV05FUi5zZWxlY3RlZERhdGEgPSB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ11bJ2RhdGEnXVtcclxuICAgICAgICAnYXNzaWduZWVzTGlzdCdcclxuICAgICAgXS5maWx0ZXIoKGl0ZW06IGFueSkgPT4gdGhpcy5ncmNQYXlsb2FkLm93bmVycy5pbmNsdWRlcyhpdGVtPy5tZW1iZXJfaWQpKTtcclxuICAgICAgdGhpcy5saXN0T2JqZWN0WydPV05FUiddLmRpc2FibGVkSWRzID0gWy4uLm5ldyBTZXQodGhpcy5kaXNhYmxlZElkcyldO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWRVc2VyKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuT1dORVIuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLmNoZWNrSXNEYXRhTG9hZGVkKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgZnVuY3Rpb24gYGRlZmF1bHRTZWxlY3RlZFVzZXIoKWAgc2V0cyB0aGUgZGVmYXVsdCBzZWxlY3RlZCB1c2VyIGJhc2VkIG9uIHRoZSBjdXJyZW50IHVzZXIncyByb2xlXHJcbiAgICogYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGBPV05FUmAgbGlzdCBvYmplY3QuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZWZhdWx0U2VsZWN0ZWRVc2VyKCkge1xyXG4gICAgaWYgKCF0aGlzLmF1dGhTZXJ2aWNlLmlzQWRtaW4oKSAmJiAhdGhpcy5hdXRoU2VydmljZS5pc0tleUFkbWluKCkpIHtcclxuICAgICAgY29uc3QgVVNFUiA9IHRoaXMubGlzdE9iamVjdFsnT1dORVInXVsnZGF0YSddWydhc3NpZ25lZXNMaXN0J10uZmluZChcclxuICAgICAgICAodXNlcjogYW55KSA9PiB1c2VyLm1lbWJlcl9pZCA9PT0gdGhpcy5hdXRoU2VydmljZS5nZXRNZW1iZXJJZCgpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdFsnT1dORVInXS5zZWxlY3RlZERhdGEucHVzaChVU0VSKTtcclxuICAgIH1cclxuICAgIHRoaXMubGlzdE9iamVjdFsnT1dORVInXVsnZGlzYWJsZWRJZHMnXSA9IFsuLi50aGlzLmRpc2FibGVkSWRzXTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5vd25lcnMgPSB0aGlzLmxpc3RPYmplY3RbJ09XTkVSJ10uc2VsZWN0ZWREYXRhLm1hcChcclxuICAgICAgKHVzZXI6IGFueSkgPT4gdXNlci5tZW1iZXJfaWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRSQ0xpc3QoKSB7XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuUkMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuYXBpU2VydmljZS5nZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmxpc3RPYmplY3RbJ1JDJ11bJ2RhdGEnXSA9IGRhdGE7XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdC5SQy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuTU9ERSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0LlJDLnNlbGVjdGVkRGF0YSA9IGRhdGEuZmlsdGVyKChpdGVtOiBhbnkpID0+XHJcbiAgICAgICAgICB0aGlzLmdyY1BheWxvYWQucmNfaWRzLmluY2x1ZGVzKGl0ZW0/Ll9pZClcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tJc0RhdGFMb2FkZWQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0R1JDT2JqZWN0VHlwZSgpIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS5nZXRPYmplY3RUeXBlKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGRhdGE6IEdSQ1R5cGVbXSkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMuc2V0TGlua1Jpc2tUYWIoZGF0YSk7XHJcbiAgICAgICAgY29uc3QgT0JKRUNUX0xBQkVMOiBhbnkgPSB7XHJcbiAgICAgICAgICBBU1NFVFM6ICdBc3NldCcsXHJcbiAgICAgICAgICBQUk9DRVNTRVM6ICdQcm9jZXNzJyxcclxuICAgICAgICAgIFZFTkRPUlM6ICdWZW5kb3InLFxyXG4gICAgICAgICAgSU5WRU5UT1JZOiAnSW52ZW50b3J5JyxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuT0JKRUNUX1RZUEUgPSBkYXRhLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICBpdGVtLnZhbHVlID0gaW5kZXg7XHJcbiAgICAgICAgICBpdGVtLmxhYmVsID0gT0JKRUNUX0xBQkVMW2l0ZW0/LmxhYmVsPy50b1VwcGVyQ2FzZSgpXSA/PyBpdGVtPy5sYWJlbDtcclxuICAgICAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLk9SSUdJTkFMX0dSQ19BVFRSSUJVVEVTID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuT0JKRUNUX1RZUEUpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuTU9ERSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgICAgICB0aGlzLk9CSkVDVF9UWVBFW3RoaXMuZ3JjVHlwZV0uYXR0cmlidXRlcyA9XHJcbiAgICAgICAgICAgIHRoaXMuZ3JjUGF5bG9hZC5hdHRyaWJ1dGVzO1xyXG5cclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5ncmNTZXJ2aWNlLmNoZWNrQXR0cmlidXRlc1NlbGVjdGVkKFxyXG4gICAgICAgICAgICAgIHRoaXMuT0JKRUNUX1RZUEVbdGhpcy5ncmNUeXBlXS5hdHRyaWJ1dGVzXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLmdyY0Zvcm0uZ3JjT2JqZWN0VHlwZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5BVFRSSUJVVEVTID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdEdSQ09iamVjdFR5cGUoKTtcclxuICAgICAgICB0aGlzLmNoZWNrSXNEYXRhTG9hZGVkKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge30sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RGVmYXVsdEdSQ09iamVjdFR5cGUoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXR0cmlidXRlcyA9XHJcbiAgICAgIHRoaXMuT0JKRUNUX1RZUEUuZmluZCgoZWxlOiBhbnkpID0+IGVsZS52YWx1ZSA9PT0gdGhpcy5ncmNUeXBlKSA/P1xyXG4gICAgICB0aGlzLk9CSkVDVF9UWVBFWzBdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0lzRGF0YUxvYWRlZCgpIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID1cclxuICAgICAgdGhpcy5saXN0T2JqZWN0Lk9XTkVSLmlzTG9hZGluZyB8fFxyXG4gICAgICB0aGlzLmxpc3RPYmplY3QuUkMuaXNMb2FkaW5nIHx8XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdC5PVEhFUl9HUkNfT0JKRUNUUy5pc0xvYWRpbmcgfHxcclxuICAgICAgKHRoaXMuTU9ERSA9PT0gJ0VESVQnICYmIHRoaXMuZGV0YWlsc0xvYWRlcik7XHJcbiAgfVxyXG5cclxuICBnZXRPdGhlckdSQ09iamVjdHMoZXZlbnQ/OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLm90aGVyR1JDU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMub3RoZXJHUkNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGlmIChldmVudD8uc2VhcmNoU3RyaW5nICYmIHRoaXMub3RoZXJHUkNTZWFyY2ggIT09IGV2ZW50Py5zZWFyY2hTdHJpbmcpIHtcclxuICAgICAgdGhpcy5nZXRPdGhlckdSQ1RhYkNvdW50KGV2ZW50KTtcclxuICAgIH1cclxuICAgIHRoaXMub3RoZXJHUkNTZWFyY2ggPSBldmVudD8uc2VhcmNoU3RyaW5nID8/ICcnO1xyXG4gICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAvLyBldmVudFsncmNfaWRzJ10gPSB0aGlzLmxpc3RPYmplY3Q/LlJDPy5zZWxlY3RlZERhdGFcclxuICAgIC8vICAgPy5tYXAoKHJjOiBhbnkpID0+IHJjPy5faWQpXHJcbiAgICAvLyAgIC5qb2luKCcsJyk7XHJcbiAgICB0aGlzLm90aGVyR1JDU3Vic2NyaXB0aW9uID0gdGhpcy5ncmNTZXJ2aWNlXHJcbiAgICAgIC5nZXRHUkNMaXN0KGV2ZW50KVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLk1PREUgPT09ICdFRElUJykge1xyXG4gICAgICAgICAgLy8gdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLnNlbGVjdGVkRGF0YSA9IGRhdGEuZmlsdGVyKFxyXG4gICAgICAgICAgLy8gICAoaXRlbTogYW55KSA9PiB0aGlzLmdyY1BheWxvYWQubGlua2VkX0dSQ19pZHMuaW5jbHVkZXMoaXRlbT8uX2lkKVxyXG4gICAgICAgICAgLy8gKTtcclxuICAgICAgICAgIGlmICh0aGlzLmdyY1BheWxvYWQubGlua2VkX0dSQ19pZHM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmdyY0Zvcm0ub3RoZXJHcmNPYmplY3RzID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLk9USEVSX0dSQ19PQkpFQ1RTID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2hlY2tJc0RhdGFMb2FkZWQoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRPdGhlckdSQ1RhYkNvdW50KGV2ZW50PzogYW55KSB7XHJcbiAgICB0aGlzLmdyY1RhYkxvYWRlciA9IHRydWU7XHJcbiAgICAvLyBldmVudFsncmNfaWRzJ10gPSB0aGlzLmxpc3RPYmplY3Q/LlJDPy5zZWxlY3RlZERhdGFcclxuICAgIC8vICAgPy5tYXAoKHJjOiBhbnkpID0+IHJjPy5faWQpXHJcbiAgICAvLyAgIC5qb2luKCcsJyk7XHJcbiAgICB0aGlzLmdyY1NlcnZpY2UuZ2V0R1JDVGFic0NvdW50KGV2ZW50KS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmdyY1RhYkxvYWRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm90aGVyR1JDQ2FyZFswXS5jb3VudCA9IGRhdGE/LmFzc2V0c190eXBlX2NvdW50O1xyXG4gICAgICB0aGlzLm90aGVyR1JDQ2FyZFsxXS5jb3VudCA9IGRhdGE/LnByb2Nlc3Nlc190eXBlX2NvdW50O1xyXG4gICAgICB0aGlzLm90aGVyR1JDQ2FyZFsyXS5jb3VudCA9IGRhdGE/LnZlbmRvcnNfdHlwZV9jb3VudDtcclxuICAgICAgdGhpcy5vdGhlckdSQ0NhcmRbM10uY291bnQgPSBkYXRhPy5pbnZlbnRvcnlfdHlwZV9jb3VudDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3RoZXJHUkNUYWJJbmRleChldmVudD86IGFueSwgZGF0YT86IGFueSkge31cclxuXHJcbiAgLy9Qb3B1bGF0ZS9FZGl0IEdSQyBPYmplY3RcclxuXHJcbiAgZ2V0R1JDT2JqZWN0RGV0YWlscyhncmNJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0R1JDT2JqZWN0RGV0YWlscyhncmNJZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMub3BlbmVkUG9wdXAgPSAnJztcclxuICAgICAgICB0aGlzLnBvcHVsYXRlUGF5bG9hZChkYXRhKTtcclxuICAgICAgICB0aGlzLmNyZWF0ZUdSQ09iamVjdChkYXRhPy5saW5rZWRHcmNEZXRhaWxzKTtcclxuICAgICAgICB0aGlzLmRldGFpbHNMb2FkZXIgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5fZ2V0UkNMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5fZ2V0T3duZXJMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5fZ2V0R1JDT2JqZWN0VHlwZSgpO1xyXG4gICAgICAgIHRoaXMuZ2V0T3RoZXJHUkNPYmplY3RzKHsgcmNfaWRzOiAnJyB9KTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3InLCBlcnJvcik7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlR1JDT2JqZWN0KGRhdGE6IGFueSkge1xyXG4gICAgaWYgKGRhdGE/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmdyY0Zvcm0ub3RoZXJHcmNPYmplY3RzID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLk9USEVSX0dSQ19PQkpFQ1RTID0gdHJ1ZTtcclxuICAgICAgbGV0IEdSQ09iamVjdDogYW55ID0ge1xyXG4gICAgICAgIGFzc2V0czogW10sXHJcbiAgICAgICAgcHJvY2Vzc2VzOiBbXSxcclxuICAgICAgICB2ZW5kb3JzOiBbXSxcclxuICAgICAgICBpbnZlbnRvcnk6IFtdLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmxpc3RPYmplY3QuT1RIRVJfR1JDX09CSkVDVFMuc2VsZWN0ZWREYXRhID0gWy4uLm5ldyBTZXQoZGF0YSldO1xyXG4gICAgICBjb25zdCBHUkNfVFlQRSA9IEdSQ19UWVBFX0FSUkFZO1xyXG4gICAgICBkYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIEdSQ09iamVjdFtHUkNfVFlQRVtpdGVtPy50eXBlID8/IDFdXS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIHRoaXMub3RoZXJHUkNDYXJkW2l0ZW0/LnR5cGVdLnNlbGVjdGVkQ291bnQgKz0gMTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmdyY0RhdGFXaXRoVHlwZXMgPSBHUkNPYmplY3Q7XHJcbiAgICAgIHRoaXMudXBkYXRlT3RoZXJHUkNPYmplY3RzUGF5bG9hZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIHBvcHVsYXRlUGF5bG9hZChkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5uYW1lID0gZGF0YT8ubmFtZTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC50eXBlID0gZGF0YT8udHlwZTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5vd25lcnMgPSBkYXRhPy5vd25lcnM7XHJcbiAgICB0aGlzLmdyY1BheWxvYWQucmNfaWRzID0gZGF0YT8ucmNfaWRzO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLmxpbmtlZF9HUkNfaWRzID0gZGF0YT8ubGlua2VkX0dSQ19pZHM7XHJcbiAgICB0aGlzLmdyY1BheWxvYWQucmlza19jYXRlZ29yeV9pZHMgPVxyXG4gICAgICB0aGlzLnBvcHVsYXRlTGlua1Jpc2soZGF0YT8ucmlza19jYXRlZ29yeV9pZHMpID8/IFtdO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLnByb2dyYW1fY2F0ZWdvcnlfaWRzID0gZGF0YT8ucHJvZ3JhbV9jYXRlZ29yeV9pZHM/Lmxlbmd0aFxyXG4gICAgICA/IHRoaXMucG9wdWxhdGVMaW5rUmVzcG9uc2liaWxpdHkoZGF0YT8ucHJvZ3JhbV9jYXRlZ29yeV9pZHMpXHJcbiAgICAgIDogW107XHJcbiAgICB0aGlzLmdyY1BheWxvYWQuYXR0cmlidXRlcyA9IGRhdGE/LmF0dHJpYnV0ZXM7XHJcbiAgICB0aGlzLmdyY1BheWxvYWQuc3RhdGUgPSBkYXRhPy5zdGF0ZTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5kZXNjcmlwdGlvbiA9IGRhdGE/LmRlc2NyaXB0aW9uO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLmZyZXF1ZW5jeSA9IGRhdGE/LmZyZXF1ZW5jeTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5wYXJlbnRfZ3JjX2lkcyA9IGRhdGE/LnBhcmVudF9ncmNfaWRzO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkLmVtYWlsX25vdGlmaWNhdGlvbl9tZW1iZXJfaWRzID1cclxuICAgICAgZGF0YT8uZW1haWxfbm90aWZpY2F0aW9uX21lbWJlcl9pZHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUdSQ09iamVjdCgpIHtcclxuICAgIHRoaXMuaXNGb3JtU3VibWl0dGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmdyY0Zvcm0uZ3JjT2JqZWN0VHlwZSkge1xyXG4gICAgICB0aGlzLmdyY1BheWxvYWQuYXR0cmlidXRlcyA9IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGVzLmF0dHJpYnV0ZXM7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZ3JjU2VydmljZS5jaGVja1ZhbGlkYXRpb24oXHJcbiAgICAgICAgdGhpcy5ncmNQYXlsb2FkLFxyXG4gICAgICAgIHRoaXMuZ3JjRm9ybS5ncmNPYmplY3RUeXBlXHJcbiAgICAgIClcclxuICAgICkge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gdHJ1ZTtcclxuICAgICAgaWYgKHRoaXMuTU9ERSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVHUkNPYmplY3QoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgbGV0IFBBWUxPQUQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjUGF5bG9hZCkpO1xyXG4gICAgICBQQVlMT0FELm93bmVycyA9IHRoaXMuZ2V0T3duZXJzRXhjZXB0RGVmYXVsdChQQVlMT0FELm93bmVycyk7XHJcbiAgICAgIHRoaXMuYXBpU2VydmljZS5hZGRHUkNPYmplY3QoUEFZTE9BRCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zZXRNb3JlT3B0aW9uc09uU3VibWl0KCk7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuYWRkZWRHUkMgPSBkYXRhO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3InLCBlcnJvciwgZXJyb3Iuc3RhdHVzKTtcclxuICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwOSB8fCBlcnJvci5zdGF0dXMgPT09IDQwMykge1xyXG4gICAgICAgICAgICB0aGlzLmlzRHVwbGljYXRlTmFtZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TW9yZU9wdGlvbnNPblN1Ym1pdCgpO1xyXG4gICAgICAgICAgICB0aGlzLm1hcFVzZXJMaXN0KHtcclxuICAgICAgICAgICAgICBkYXRhOiB0aGlzLmxpc3RPYmplY3QuT1dORVIuZGF0YS5hc3NpZ25lZXNMaXN0LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5ncmNOYW1lVmFsaWRhdGlvbkVycm9yID0gVkFMSURBVElPTl9NRVNTQUdFLmdyY19leGlzdHM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldEdSQ09iamVjdCgpIHtcclxuICAgIHRoaXMuTU9ERSA9ICdDUkVBVEUnO1xyXG4gICAgdGhpcy5zbWlsZXlNZXNzYWdlID0gU1VDQ0VTU19NRVNTQUdFLkFERF9HUkNfT0JKRUNUO1xyXG4gICAgdGhpcy5ncmNQYXlsb2FkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmdyY1NlcnZpY2UuR1JDX1BBWUxPQUQpKTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC50eXBlID0gdGhpcy5ncmNUeXBlO1xyXG4gICAgdGhpcy5pc0Zvcm1TdWJtaXR0ZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNEdXBsaWNhdGVOYW1lID0gZmFsc2U7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XHJcbiAgICB0aGlzLmhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucy5lbWl0KHRoaXMuaGlkZU1vcmVPcHRpb24pO1xyXG4gICAgdGhpcy5PQkpFQ1RfVFlQRSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5PUklHSU5BTF9HUkNfQVRUUklCVVRFUykpO1xyXG4gICAgdGhpcy5vdGhlckdSQ0NhcmQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KE9USEVSX0dSQ19DQVJEKSk7XHJcbiAgICB0aGlzLnJlc2V0T3RoZXJHUkNDYXJkKCk7XHJcbiAgICB0aGlzLnNldERlZmF1bHRHUkNPYmplY3RUeXBlKCk7XHJcbiAgICB0aGlzLnJlc2V0R1JDRGF0YVdpdGhUeXBlcygpO1xyXG4gICAgdGhpcy5yZXNldExpc3RPYmplY3RTZWxlY3Rpb24oKTtcclxuICAgIHRoaXMubWFwVXNlckxpc3QoeyBkYXRhOiB0aGlzLmxpc3RPYmplY3QuT1dORVIuZGF0YS5hc3NpZ25lZXNMaXN0IH0pO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRMaXN0T2JqZWN0U2VsZWN0aW9uKCkge1xyXG4gICAgdGhpcy5saXN0T2JqZWN0Lk9XTkVSLnNlbGVjdGVkRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5saXN0T2JqZWN0LlJDLnNlbGVjdGVkRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLnNlbGVjdGVkRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5saXN0T2JqZWN0LlJJU0tfQ0FURUdPUlkuc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuUFJPR1JBTV9SRVNQT05TSUJJTElUWS5zZWxlY3RlZERhdGEgPSBbXTtcclxuICB9XHJcblxyXG4gIHNtaWxleUFjdGlvbnMoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgaWYgKGV2ZW50ID09PSAnYWRkTW9yZScpIHtcclxuICAgICAgdGhpcy5yZXNldEdSQ0Zvcm0oKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQgPT09ICd2aWV3Jykge1xyXG4gICAgICB0aGlzLnJlc2V0R1JDRm9ybSgpO1xyXG4gICAgICB0aGlzLnZpZXdHUkMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlU21pbGV5KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSBmYWxzZTtcclxuICAgIHRoaXMucmVzZXRHUkNGb3JtKCk7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5hZGRlZEdSQywgY29uZmlybTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICByZXNldEdSQ0Zvcm0oKSB7XHJcbiAgICB0aGlzLk1PREUgPSAnQ1JFQVRFJztcclxuICAgIHRoaXMucmVzZXRHUkNPYmplY3QoKTtcclxuICAgIHRoaXMuZ3JjRm9ybS5vdGhlckdyY09iamVjdHMgPSBmYWxzZTtcclxuICAgIHRoaXMuZ3JjRm9ybS5saW5rUmlzayA9IGZhbHNlO1xyXG4gICAgdGhpcy5ncmNGb3JtLmxpbmtQcm9ncmFtID0gZmFsc2U7XHJcbiAgICB0aGlzLmdyY0Zvcm0uZ3JjT2JqZWN0VHlwZSA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMucmVzZXRGb3JtLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICB2aWV3R1JDKCkge1xyXG4gICAgbGV0IHVybDogc3RyaW5nO1xyXG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcclxuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKCdsb2NhbGhvc3QnKSkge1xyXG4gICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvIy9tYW5hZ2UtZ3JjLW9iamVjdHMnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXJsID1cclxuICAgICAgICAnaHR0cHM6Ly8nICtcclxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaG9zdCArXHJcbiAgICAgICAgJy9vcmdhbml6YXRpb24vIy9tYW5hZ2UtZ3JjLW9iamVjdHMnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLk1PREUgIT09ICdFRElUJykge1xyXG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcclxuICAgIH1cclxuICAgIHRoaXMucmVzZXRHUkNGb3JtKCk7XHJcbiAgICB0aGlzLmNsb3NlU21pbGV5KCcnKTtcclxuICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHsgZXZ0OiB0aGlzLmFkZGVkR1JDLCBjb25maXJtOiBmYWxzZSB9KTtcclxuICB9XHJcblxyXG4gIHNldE90aGVyR1JDVHlwZXNGb3JtYXRlKCkge1xyXG4gICAgY29uc3QgZ3JjVHlwZXMgPSBHUkNfVFlQRV9BUlJBWTtcclxuICAgIHRoaXMucmVzZXRHUkNEYXRhV2l0aFR5cGVzKCk7XHJcbiAgICB0aGlzLmxpc3RPYmplY3Q/Lk9USEVSX0dSQ19PQkpFQ1RTPy5zZWxlY3RlZERhdGE/LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmdyY0RhdGFXaXRoVHlwZXNbZ3JjVHlwZXNbaXRlbT8udHlwZV1dPy5wdXNoKGl0ZW0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnVwZGF0ZU90aGVyR1JDT2JqZWN0c1BheWxvYWQoKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZU90aGVyR1JDT2JqZWN0cyhldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBncmNUeXBlcyA9IEdSQ19UWVBFX0FSUkFZO1xyXG4gICAgdGhpcy5saXN0T2JqZWN0Lk9USEVSX0dSQ19PQkpFQ1RTLnNlbGVjdGVkRGF0YSA9XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdC5PVEhFUl9HUkNfT0JKRUNUUy5zZWxlY3RlZERhdGEuZmlsdGVyKFxyXG4gICAgICAgIChncmM6IGFueSkgPT4gZ3JjPy5faWQgIT09IGV2ZW50Py5faWRcclxuICAgICAgKTtcclxuICAgIHRoaXMuZmlsdGVyT3RoZXJHUkNEYXRhKGV2ZW50LCBncmNUeXBlc1tldmVudD8udHlwZV0pO1xyXG4gICAgdGhpcy5vdGhlckdSQ0NhcmRbMF0uc2VsZWN0ZWRDb3VudFxyXG4gICAgICA/ICh0aGlzLm90aGVyR1JDQ2FyZFtldmVudD8udHlwZV0uc2VsZWN0ZWRDb3VudCAtPSAxKVxyXG4gICAgICA6IDA7XHJcbiAgICB0aGlzLnVwZGF0ZU90aGVyR1JDT2JqZWN0c1BheWxvYWQoKTtcclxuICB9XHJcblxyXG4gIGZpbHRlck90aGVyR1JDRGF0YShldmVudDogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZ3JjRGF0YVdpdGhUeXBlc1t0eXBlXSA9IHRoaXMuZ3JjRGF0YVdpdGhUeXBlc1t0eXBlXT8uZmlsdGVyKFxyXG4gICAgICAoZ3JjOiBhbnkpID0+IGdyYz8uX2lkICE9PSBldmVudD8uX2lkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRHUkNEYXRhV2l0aFR5cGVzKCkge1xyXG4gICAgdGhpcy5ncmNEYXRhV2l0aFR5cGVzID0ge1xyXG4gICAgICBhc3NldHM6IFtdLFxyXG4gICAgICBwcm9jZXNzZXM6IFtdLFxyXG4gICAgICB2ZW5kb3JzOiBbXSxcclxuICAgICAgaW52ZW50b3J5OiBbXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXQgZ3JjVmFsaWRhdGlvbkNoZWNrKCkge1xyXG4gICAgaWYgKHRoaXMuaXNGb3JtU3VibWl0dGVkICYmICF0aGlzLmdyY1BheWxvYWQubmFtZSkge1xyXG4gICAgICB0aGlzLmdyY05hbWVWYWxpZGF0aW9uRXJyb3IgPSBWQUxJREFUSU9OX01FU1NBR0UuZ3JjT2JqZWN0TmFtZTtcclxuICAgIH1cclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuaXNGb3JtU3VibWl0dGVkICYmICEodGhpcy5ncmNQYXlsb2FkLm5hbWUgfHwgdGhpcy5pc0R1cGxpY2F0ZU5hbWUpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Umlza0NhdGVnb3J5UGF5bG9hZChzZWxlY3RlZERhdGE6IGFueSkge1xyXG4gICAgY29uc3Qgcmlza0NhdGVnb3J5UGF5bG9hZDogYW55ID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkUmlza3MgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzID0gW107XHJcbiAgICBzZWxlY3RlZERhdGEuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIHJpc2tDYXRlZ29yeVBheWxvYWQucHVzaCh7XHJcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IFtpdGVtPy5jYXRlZ29yeT8uY2F0ZWdvcnlfaWQgPz8gW11dLFxyXG4gICAgICAgIHJpc2tfaWRzOiBpdGVtPy5yaXNrcz8ubWFwKChyaXNrOiBhbnkpID0+IHJpc2s/LlJpc2tJZCksXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUmlza3M/LnB1c2goLi4uaXRlbT8ucmlza3MpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcy5wdXNoKGl0ZW0/LmNhdGVnb3J5KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJpc2tDYXRlZ29yeVBheWxvYWQ7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9ncmFtUmVzcG9uc2liaWxpdHlQYXlsb2FkKHNlbGVjdGVkRGF0YTogYW55KSB7XHJcbiAgICBjb25zdCByaXNrUmVzcG9uc2liaWxpdHlQYXlsb2FkOiBhbnkgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFByb2dyYW0gPSBbXTtcclxuICAgIHNlbGVjdGVkRGF0YS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgcGFyZW50SWQgPSBpdGVtPy5wcm9ncmFtPy5wcm9ncmFtSWQ7XHJcbiAgICAgIHJpc2tSZXNwb25zaWJpbGl0eVBheWxvYWQucHVzaCh7XHJcbiAgICAgICAgcGFyZW50SWQ6IHBhcmVudElkLFxyXG4gICAgICAgIGNhdGVnb3J5X2lkOiBbLi4uaXRlbT8uY2F0ZWdvcnldIHx8IFtdLFxyXG4gICAgICAgIHJlc3BvbnNpYmlsaXR5X2lkczogaXRlbT8ucmVzcG9uc2liaWxpdHk/Lm1hcChcclxuICAgICAgICAgIChyZXNwOiBhbnkpID0+IHJlc3A/LlJlcG9ydElkXHJcbiAgICAgICAgKSxcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eT8ucHVzaCguLi5pdGVtPy5yZXNwb25zaWJpbGl0eSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtLnB1c2goaXRlbT8ucHJvZ3JhbSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByaXNrUmVzcG9uc2liaWxpdHlQYXlsb2FkO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlR1JDT2JqZWN0KCkge1xyXG4gICAgbGV0IFBBWUxPQUQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JjUGF5bG9hZCkpO1xyXG4gICAgUEFZTE9BRC5vd25lcnMgPSB0aGlzLmdldE93bmVyc0V4Y2VwdERlZmF1bHQoUEFZTE9BRC5vd25lcnMpO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLnVwZGF0ZUdSQ09iamVjdChQQVlMT0FELCB0aGlzLklEKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldE1vcmVPcHRpb25zT25TdWJtaXQoKTtcclxuICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmFkZGVkR1JDID0gZGF0YTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvcicsIGVycm9yLCBlcnJvci5zdGF0dXMpO1xyXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwOSkge1xyXG4gICAgICAgICAgdGhpcy5pc0R1cGxpY2F0ZU5hbWUgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zZXRNb3JlT3B0aW9uc09uU3VibWl0KCk7XHJcbiAgICAgICAgICB0aGlzLmdyY05hbWVWYWxpZGF0aW9uRXJyb3IgPSBWQUxJREFUSU9OX01FU1NBR0UuZ3JjX2V4aXN0cztcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgdXBkYXRlT3RoZXJHUkNPYmplY3RzUGF5bG9hZCgpIHtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5saW5rZWRfR1JDX2lkcyA9XHJcbiAgICAgIHRoaXMubGlzdE9iamVjdC5PVEhFUl9HUkNfT0JKRUNUUy5zZWxlY3RlZERhdGEubWFwKFxyXG4gICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uX2lkXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVTZWxlY3RlZFJpc2soY2F0ZWdvcnlJZDogbnVtYmVyLCByaXNrOiBhbnkpIHtcclxuICAgIGNvbnN0IGNhdGVnb3J5SW5kZXggPSB0aGlzLmZpbmRDaGVja2VkQ2F0ZWdvcnlJbmRleChjYXRlZ29yeUlkKTtcclxuICAgIGlmIChjYXRlZ29yeUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAvLyBDYXRlZ29yeSBleGlzdHMsIHVwZGF0ZSByaXNrIHZhbHVlXHJcbiAgICAgIGNvbnN0IHJpc2tJbmRleCA9IHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhW1xyXG4gICAgICAgIGNhdGVnb3J5SW5kZXhcclxuICAgICAgXT8ucmlza3M/LmZpbmRJbmRleCgoaXRlbTogYW55KSA9PiBpdGVtPy5faWQgPT09IHJpc2s/Ll9pZCk7XHJcbiAgICAgIGlmIChyaXNrSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0Py5SSVNLX0NBVEVHT1JZPy5zZWxlY3RlZERhdGFbXHJcbiAgICAgICAgICBjYXRlZ29yeUluZGV4XHJcbiAgICAgICAgXT8ucmlza3Muc3BsaWNlKHJpc2tJbmRleCwgMSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmxpc3RPYmplY3Q/LlJJU0tfQ0FURUdPUlk/LnNlbGVjdGVkRGF0YVtjYXRlZ29yeUluZGV4XT8ucmlza3NcclxuICAgICAgICAgID8ubGVuZ3RoID09PSAwXHJcbiAgICAgICkge1xyXG4gICAgICAgIC8vIFJlbW92ZSBjYXRlZ29yeSBpZiBzZWxlY3RlZExpc3REYXRhIGlzIGVtcHR5XHJcbiAgICAgICAgdGhpcy5saXN0T2JqZWN0Py5SSVNLX0NBVEVHT1JZPy5zZWxlY3RlZERhdGEuc3BsaWNlKGNhdGVnb3J5SW5kZXgsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyY1BheWxvYWQucmlza19jYXRlZ29yeV9pZHMgPSB0aGlzLmdldFJpc2tDYXRlZ29yeVBheWxvYWQoXHJcbiAgICAgIHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlU2VsZWN0ZWRSZXNwb25zaWJpbGl0eShyZXNwb25zaWJpbGl0eTogYW55KSB7XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuUFJPR1JBTV9SRVNQT05TSUJJTElUWS5zZWxlY3RlZERhdGEgPVxyXG4gICAgICB0aGlzLmxpc3RPYmplY3Q/LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YT8ubWFwKFxyXG4gICAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCBmaWx0ZXJlZFJlc3BvbnNpYmlsaXR5ID0gZGF0YT8ucmVzcG9uc2liaWxpdHk/LmZpbHRlcihcclxuICAgICAgICAgICAgKHJlc3A6IGFueSkgPT4gcmVzcD8uX2lkICE9PSByZXNwb25zaWJpbGl0eT8uX2lkXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4uZGF0YSxcclxuICAgICAgICAgICAgcmVzcG9uc2liaWxpdHk6IGZpbHRlcmVkUmVzcG9uc2liaWxpdHksXHJcbiAgICAgICAgICAgIGNhdGVnb3J5OiBbXHJcbiAgICAgICAgICAgICAgLi4uKG5ldyBTZXQoXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJlZFJlc3BvbnNpYmlsaXR5Lm1hcCgob2JqOiBhbnkpID0+IGRhdGE/LmNhdGVnb3J5KT8uZmxhdCgpXHJcbiAgICAgICAgICAgICAgKSB8fCBbXSksXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICB0aGlzLmxpc3RPYmplY3QuUFJPR1JBTV9SRVNQT05TSUJJTElUWS5zZWxlY3RlZERhdGEgPVxyXG4gICAgICB0aGlzLmxpc3RPYmplY3Q/LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YS5maWx0ZXIoXHJcbiAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGRhdGE/LnJlc3BvbnNpYmlsaXR5Py5sZW5ndGggPiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIHRoaXMuZ3JjUGF5bG9hZC5wcm9ncmFtX2NhdGVnb3J5X2lkcyA9IHRoaXMuZ2V0UHJvZ3JhbVJlc3BvbnNpYmlsaXR5UGF5bG9hZChcclxuICAgICAgdGhpcy5saXN0T2JqZWN0Py5QUk9HUkFNX1JFU1BPTlNJQklMSVRZPy5zZWxlY3RlZERhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBmaW5kQ2hlY2tlZENhdGVnb3J5SW5kZXgoY2F0ZWdvcnlJZDogbnVtYmVyIHwgbnVtYmVyW10pIHtcclxuICAgIGxldCBjYXRlZ29yeUluZGV4ID0gLTE7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjYXRlZ29yeUlkKSAmJiBjYXRlZ29yeUlkPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgLy8gSGFuZGxlIGVtcHR5IGNhdGVnb3J5SWQgYXJyYXkgY2FzZVxyXG4gICAgICBjb25zdCB1bmNhdGVnb3JpemVkSW5kZXggPVxyXG4gICAgICAgIHRoaXMubGlzdE9iamVjdD8uUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhLmZpbmRJbmRleChcclxuICAgICAgICAgIChjYXQ6IGFueSkgPT4gY2F0Py5jYXRlZ29yeT8uX2lkID09PSAndW5jYXRlZ29yaXplZCdcclxuICAgICAgICApO1xyXG4gICAgICBpZiAodW5jYXRlZ29yaXplZEluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgIHJldHVybiB1bmNhdGVnb3JpemVkSW5kZXg7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNhdGVnb3J5SW5kZXggPSB0aGlzLmxpc3RPYmplY3Q/LlJJU0tfQ0FURUdPUlk/LnNlbGVjdGVkRGF0YS5maW5kSW5kZXgoXHJcbiAgICAgICAgKGNhdDogYW55KSA9PiBjYXQ/LmNhdGVnb3J5Py5jYXRlZ29yeV9pZCA9PT0gY2F0ZWdvcnlJZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNhdGVnb3J5SW5kZXg7XHJcbiAgfVxyXG5cclxuICBzZXRMaW5rUmlza1RhYih0YWJEZXRhaWxzOiBhbnkpIHtcclxuICAgIHRoaXMub3RoZXJHUkNDYXJkID0gdGFiRGV0YWlscy5tYXAoKHRhYjogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdGl0bGU6IHRhYj8ubGFiZWwsXHJcbiAgICAgICAgY291bnQ6IDAsXHJcbiAgICAgICAgc2VsZWN0ZWRDb3VudDogMCxcclxuICAgICAgICBrZXk6IHRhYj8ubGFiZWw/LnRvTG93ZXJDYXNlKCksXHJcbiAgICAgICAgdHlwZTogaW5kZXgsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZ2V0T3RoZXJHUkNUYWJDb3VudCh7IHJjX2lkczogJycgfSk7XHJcbiAgfVxyXG5cclxuICBwb3B1bGF0ZUxpbmtSaXNrKHNlbGVjdGVkRGF0YTogYW55KSB7XHJcbiAgICBsZXQgdXBkYXRlZERhdGEgPSBzZWxlY3RlZERhdGE/Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChkYXRhPy5jYXRlZ29yeV9pZCAmJiBPYmplY3Q/LmtleXMoZGF0YT8uY2F0ZWdvcnlfaWQpPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uZGF0YSxcclxuICAgICAgICAgIGNhdGVnb3J5OiBVTkNBVEVHT1JJWkVEX0xJTktfQ0FURUdPUlksXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLmRhdGEsXHJcbiAgICAgICAgY2F0ZWdvcnk6IHtcclxuICAgICAgICAgIGNhdGVnb3J5X2lkOiBkYXRhPy5jYXRlZ29yeV9pZFswXSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgICBpZiAodXBkYXRlZERhdGEubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZ3JjRm9ybS5saW5rUmlzayA9IHRydWU7XHJcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5MSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUyA9IHRydWU7XHJcbiAgICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5saXN0T2JqZWN0LlJJU0tfQ0FURUdPUlkuc2VsZWN0ZWREYXRhID0gdXBkYXRlZERhdGE7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRSaXNrQ2F0ZWdvcnlQYXlsb2FkKHVwZGF0ZWREYXRhKTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlTGlua1Jlc3BvbnNpYmlsaXR5KHNlbGVjdGVkRGF0YTogYW55KSB7XHJcbiAgICBsZXQgdXBkYXRlZERhdGEgPSBzZWxlY3RlZERhdGE/Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgcHJvZ3JhbToge1xyXG4gICAgICAgICAgcHJvZ3JhbUlkOiBkYXRhPy5wYXJlbnRJZCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNhdGVnb3J5OiBbZGF0YT8ucGFyZW50SWRdLmNvbmNhdC5hcHBseShcclxuICAgICAgICAgIFtdLFxyXG4gICAgICAgICAgT2JqZWN0LnZhbHVlcyhkYXRhPy5jYXRlZ29yeV9pZClcclxuICAgICAgICApLFxyXG4gICAgICAgIHJlc3BvbnNpYmlsaXR5OiBkYXRhPy5yZXNwb25zaWJpbGl0eV9pZHMgfHwgW10sXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICAgIGlmICh1cGRhdGVkRGF0YS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5ncmNGb3JtLmxpbmtQcm9ncmFtID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkxJTktfUFJPR1JBTSA9IHRydWU7XHJcbiAgICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5saXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFkuc2VsZWN0ZWREYXRhID0gdXBkYXRlZERhdGE7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRQcm9ncmFtUmVzcG9uc2liaWxpdHlQYXlsb2FkKHVwZGF0ZWREYXRhKTtcclxuICB9XHJcblxyXG4gIGdldE93bmVyc0V4Y2VwdERlZmF1bHQodXNlcnM6IGFueSkge1xyXG4gICAgY29uc3QgdXNlcnNJZCA9IHVzZXJzLmZpbHRlcihcclxuICAgICAgKHVzZXI6IGFueSkgPT4gIXRoaXMuZGlzYWJsZWRJZHMuaW5jbHVkZXModXNlcilcclxuICAgICk7XHJcbiAgICByZXR1cm4gdXNlcnNJZCB8fCBbXTtcclxuICB9XHJcblxyXG4gIHNldE1vcmVPcHRpb25zT25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlc2V0T3RoZXJHUkNDYXJkKCkge1xyXG4gICAgdGhpcy5vdGhlckdSQ0NhcmQuZm9yRWFjaCgodGFiOiBhbnkpID0+IHtcclxuICAgICAgdGFiLmNvdW50ID0gMDtcclxuICAgICAgdGFiLnNlbGVjdGVkQ291bnQgPSAwO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZXNldERhdGFPblJDQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5saXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFkuc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICB0aGlzLmxpc3RPYmplY3QuUklTS19DQVRFR09SWS5zZWxlY3RlZERhdGEgPSBbXTtcclxuICAgIGlmICh0aGlzLmxpc3RPYmplY3QuUkMuc2VsZWN0ZWREYXRhLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnJlc2V0TW9yZU9wdGlvbnNPblJDQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldE1vcmVPcHRpb25zT25SQ0NoYW5nZSgpIHtcclxuICAgIHRoaXMuZ3JjRm9ybS5saW5rUHJvZ3JhbSA9IGZhbHNlO1xyXG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkxJTktfUFJPR1JBTSA9IGZhbHNlO1xyXG4gICAgdGhpcy5ncmNGb3JtLmxpbmtSaXNrID0gZmFsc2U7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uTElOS19SSVNLX0NBVEVHT1JJRVNfUklTS1MgPSBmYWxzZTtcclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dTbWlsZXlcIj5cclxuICA8ZGl2IGNsYXNzPVwid29ya2Zsb3ctZ3JjXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwib3BlbmVkUG9wdXAgJiYgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcIlxyXG4gICAgICAqbmdJZj1cIiFpc0xvYWRpbmdcIlxyXG4gICAgPlxyXG4gICAgICA8bGliLXRleHQtZmllbGQtaWNvblxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJvcGVuZWRQb3B1cCAmJiBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVwiXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksuZ3JjVHlwZVwiXHJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJ0cnVlXCJcclxuICAgICAgICBmaWVsZC1pY29uc1xyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5cclxuICAgICAgICAgICAgR1JDIE9CSkVDVCBUWVBFPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiPlxyXG4gICAgICAgICAgICA8dGFiLXNlbGVjdG9yXHJcbiAgICAgICAgICAgICAgW3NlbGVjdGVkSXRlbV09XCJncmNQYXlsb2FkLnR5cGVcIlxyXG4gICAgICAgICAgICAgIFtkaXNwbGF5QXJyYXldPVwiT0JKRUNUX1RZUEVcIlxyXG4gICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJjaGFuZ2VBdHRyaWJ1dGVzVHlwZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvdGFiLXNlbGVjdG9yPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIE9iamVjdCBuYW1lIGZpZWxkIC0tPlxyXG4gICAgPGxpYi10ZXh0LWZpZWxkXHJcbiAgICAgIFtkaXNhYmxlZF09XCJcclxuICAgICAgICBvcGVuZWRQb3B1cCAmJlxyXG4gICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFLm5hbWUgJiZcclxuICAgICAgICBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVxyXG4gICAgICBcIlxyXG4gICAgICBbaXNFZGl0TW9kZV09XCJncmNQYXlsb2FkLm5hbWUgJiYgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUubmFtZVwiXHJcbiAgICAgIFt0aXRsZVRleHRdPVwiQUxMX1RFWFQ/LmdyY09iamVjdE5hbWVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNPYmplY3RQbGFjZWhvbGRlclwiXHJcbiAgICAgIFsodGV4dFZhbHVlKV09XCJncmNQYXlsb2FkLm5hbWVcIlxyXG4gICAgICAodGV4dFZhbHVlQ2hhbmdlKT1cIm9uVGV4dENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZSgpXCJcclxuICAgICAgKG9uQ2xpY2spPVwib25Qb3B1cE9wZW4oSU5QVVRfVFlQRS5uYW1lKVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaWItdGV4dC1maWVsZC1pY29uXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksuZ3JjT2JqZWN0TmFtZVwiXHJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJncmNQYXlsb2FkLm5hbWVcIlxyXG4gICAgICAgIGZpZWxkLWljb25zXHJcbiAgICAgID5cclxuICAgICAgPC9saWItdGV4dC1maWVsZC1pY29uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCIgaXMtcmVxdWlyZWQ+Kjwvc3Bhbj5cclxuICAgICAgPGxpYi1lZGl0LW1vZGVcclxuICAgICAgICAqbmdJZj1cImdyY1BheWxvYWQubmFtZSAmJiBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5uYW1lXCJcclxuICAgICAgICBbc2VsZWN0ZWREYXRhXT1cIltncmNQYXlsb2FkXVwiXHJcbiAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCJcclxuICAgICAgICAoaXNPbkVkaXQpPVwib25FZGl0KElOUFVUX1RZUEUubmFtZSlcIlxyXG4gICAgICAgIGVkaXQtbW9kZVxyXG4gICAgICA+PC9saWItZWRpdC1tb2RlPlxyXG4gICAgICA8cFxyXG4gICAgICAgICpuZ0lmPVwiZ3JjVmFsaWRhdGlvbkNoZWNrIHx8IGlzRHVwbGljYXRlTmFtZVwiXHJcbiAgICAgICAgW2FwcFNjcm9sbEluVmlld109XCJ0cnVlXCJcclxuICAgICAgICBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxyXG4gICAgICAgIGVycm9yLW1lc3NhZ2VcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGdyY05hbWVWYWxpZGF0aW9uRXJyb3IgfX1cclxuICAgICAgPC9wPlxyXG4gICAgICA8dmNvbXBseS1lZGl0b3JcclxuICAgICAgICBbZWRpdG9yQ29uZmlnXT1cIkVESVRPUl9DT05GSUdcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiZ3JjUGF5bG9hZC5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgcmljaC10ZXh0LWVkaXRvclxyXG4gICAgICA+PC92Y29tcGx5LWVkaXRvcj5cclxuICAgIDwvbGliLXRleHQtZmllbGQ+XHJcblxyXG4gICAgPCEtLSBTcGVjaWZ5IE93bmVycyAtLT5cclxuICAgIDxsaWItdGV4dC1maWVsZFxyXG4gICAgICBbZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgJiZcclxuICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5vd25lciAmJlxyXG4gICAgICAgIGRpYWxvZ0ZpZWxkcz8uaW5jbHVkZXMob3BlbmVkUG9wdXApXHJcbiAgICAgIFwiXHJcbiAgICAgIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRS5vd25lclwiXHJcbiAgICAgIFtpc0VkaXRNb2RlXT1cIlxyXG4gICAgICAgIGxpc3RPYmplY3QuT1dORVI/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoICYmXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUub3duZXJcclxuICAgICAgXCJcclxuICAgICAgW3RpdGxlVGV4dF09XCJBTExfVEVYVD8uZ3JjT3duZXJzVGl0bGVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNPd25lcnNQbGFjZWhvbGRlclwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgICAob25DbGljayk9XCJvblBvcHVwT3BlbihJTlBVVF9UWVBFLm93bmVyKVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaWItdGV4dC1maWVsZC1pY29uXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksuZ3JjT3duZXJzXCJcclxuICAgICAgICBbaXNDaGVja2VkXT1cImxpc3RPYmplY3QuT1dORVI/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgZmllbGQtaWNvbnNcclxuICAgICAgPlxyXG4gICAgICA8L2xpYi10ZXh0LWZpZWxkLWljb24+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIiBpcy1yZXF1aXJlZD4qPC9zcGFuPlxyXG4gICAgICA8bGliLWVkaXQtbW9kZVxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsaXN0T2JqZWN0Lk9XTkVSPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCAmJlxyXG4gICAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUub3duZXJcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtub25SZW1vdmFibGVJZHNdPVwiZGlzYWJsZWRJZHNcIlxyXG4gICAgICAgIFtjb3VudENvbG9yXT1cIidncmVlbkJnJ1wiXHJcbiAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJsaXN0T2JqZWN0Lk9XTkVSPy5zZWxlY3RlZERhdGFcIlxyXG4gICAgICAgIFt0eXBlXT1cIidsaXN0J1wiXHJcbiAgICAgICAgKGlzT25FZGl0KT1cIm9uRWRpdChJTlBVVF9UWVBFLm93bmVyKVwiXHJcbiAgICAgICAgKG9uUmVtb3ZlRGF0YSk9XCJvblJlbW92ZURhdGEoJGV2ZW50LCBJTlBVVF9UWVBFLm93bmVyKVwiXHJcbiAgICAgICAgZWRpdC1tb2RlXHJcbiAgICAgID48L2xpYi1lZGl0LW1vZGU+XHJcbiAgICA8L2xpYi10ZXh0LWZpZWxkPlxyXG5cclxuICAgIDwhLS0gTGluayBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIChSQykgLS0+XHJcbiAgICA8bGliLXRleHQtZmllbGRcclxuICAgICAgW2Rpc2FibGVkXT1cIlxyXG4gICAgICAgIG9wZW5lZFBvcHVwICYmXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEUuUkMgJiZcclxuICAgICAgICBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVxyXG4gICAgICBcIlxyXG4gICAgICBbYWN0aXZlXT1cIm9wZW5lZFBvcHVwICYmIG9wZW5lZFBvcHVwID09IElOUFVUX1RZUEUuUkNcIlxyXG4gICAgICBbaXNFZGl0TW9kZV09XCJcclxuICAgICAgICBsaXN0T2JqZWN0LlJDPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCAmJiBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRS5SQ1xyXG4gICAgICBcIlxyXG4gICAgICBbdGl0bGVUZXh0XT1cIkFMTF9URVhUPy5ncmNSQ1RpdGxlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyVGV4dF09XCJBTExfVEVYVD8uZ3JjUkNQbGFjZWhvbGRlclwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgICAob25DbGljayk9XCJvblBvcHVwT3BlbihJTlBVVF9UWVBFLlJDKVwiXHJcbiAgICA+XHJcbiAgICAgIDxsaWItdGV4dC1maWVsZC1pY29uXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksuZ3JjUkNcIlxyXG4gICAgICAgIFtpc0NoZWNrZWRdPVwibGlzdE9iamVjdC5SQz8uc2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwXCJcclxuICAgICAgICBmaWVsZC1pY29uc1xyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiIGlzLXJlcXVpcmVkPio8L3NwYW4+XHJcbiAgICAgIDxsaWItZWRpdC1tb2RlXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxpc3RPYmplY3QuUkM/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoICYmIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFLlJDXHJcbiAgICAgICAgXCJcclxuICAgICAgICAob25SZW1vdmVEYXRhKT1cIm9uUmVtb3ZlRGF0YSgkZXZlbnQsIElOUFVUX1RZUEUuUkMpXCJcclxuICAgICAgICBbc2VsZWN0ZWREYXRhXT1cImxpc3RPYmplY3QuUkM/LnNlbGVjdGVkRGF0YVwiXHJcbiAgICAgICAgW3R5cGVdPVwiJ2xpc3QnXCJcclxuICAgICAgICAoaXNPbkVkaXQpPVwib25FZGl0KElOUFVUX1RZUEUuUkMpXCJcclxuICAgICAgICBlZGl0LW1vZGVcclxuICAgICAgPjwvbGliLWVkaXQtbW9kZT5cclxuICAgICAgPHBcclxuICAgICAgICAqbmdJZj1cImlzRm9ybVN1Ym1pdHRlZCAmJiAhbGlzdE9iamVjdC5SQz8uc2VsZWN0ZWREYXRhPy5sZW5ndGhcIlxyXG4gICAgICAgIFthcHBTY3JvbGxJblZpZXddPVwidHJ1ZVwiXHJcbiAgICAgICAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcclxuICAgICAgICBlcnJvci1tZXNzYWdlXHJcbiAgICAgID5cclxuICAgICAgICB7eyBWQUxJREFUSU9OX01FU1NBR0UuZ3JjUkMgfX1cclxuICAgICAgPC9wPlxyXG4gICAgPC9saWItdGV4dC1maWVsZD5cclxuXHJcbiAgICA8IS0tIExpbmsgUHJvZ3JhbSBhbmQgUmVzcG9uc2liaWxpdHkgLS0+XHJcbiAgICA8bGliLXRleHQtZmllbGRcclxuICAgICAgW2Rpc2FibGVkXT1cIlxyXG4gICAgICAgIG9wZW5lZFBvcHVwICYmXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEU/LnByb2dyYW1SZXNwb25zaWJpbGl0eSAmJlxyXG4gICAgICAgIGRpYWxvZ0ZpZWxkcz8uaW5jbHVkZXMob3BlbmVkUG9wdXApXHJcbiAgICAgIFwiXHJcbiAgICAgIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRT8ucHJvZ3JhbVJlc3BvbnNpYmlsaXR5XCJcclxuICAgICAgKm5nSWY9XCJncmNGb3JtPy5saW5rUHJvZ3JhbVwiXHJcbiAgICAgIFt0aXRsZVRleHRdPVwiQUxMX1RFWFQ/LmdyY1Byb2dyYW1SZXNwb25zaWJpbGl0eVRpdGxlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyVGV4dF09XCJBTExfVEVYVD8uZ3JjUHJvZ3JhbVJlc3BvbnNpYmlsaXR5UGxhY2Vob2xkZXJcIlxyXG4gICAgICBbaXNSZWFkT25seV09XCJ0cnVlXCJcclxuICAgICAgKG9uQ2xpY2spPVwib25Qb3B1cE9wZW4oSU5QVVRfVFlQRS5wcm9ncmFtUmVzcG9uc2liaWxpdHkpXCJcclxuICAgICAgW2lzRWRpdE1vZGVdPVwiXHJcbiAgICAgICAgbGlzdE9iamVjdD8uUFJPR1JBTV9SRVNQT05TSUJJTElUWT8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcclxuICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRT8ucHJvZ3JhbVJlc3BvbnNpYmlsaXR5XHJcbiAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgIDxsaWItdGV4dC1maWVsZC1pY29uXHJcbiAgICAgICAgW2NkbkxpbmtdPVwiQ0ROX0xJTksubGlua090aGVyc1wiXHJcbiAgICAgICAgW2lzQ2hlY2tlZF09XCJsaXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgZmllbGQtaWNvbnNcclxuICAgICAgPlxyXG4gICAgICA8L2xpYi10ZXh0LWZpZWxkLWljb24+XHJcblxyXG4gICAgICA8bGliLWVkaXQtbW9kZVxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsaXN0T2JqZWN0LlBST0dSQU1fUkVTUE9OU0lCSUxJVFk/LnNlbGVjdGVkRGF0YT8ubGVuZ3RoICYmXHJcbiAgICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRT8uUFJPR1JBTV9SRVNQT05TSUJJTElUWVxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgKG9uUmVtb3ZlRGF0YSk9XCJvblJlbW92ZURhdGEoJGV2ZW50LCBJTlBVVF9UWVBFPy5wcm9ncmFtUmVzcG9uc2liaWxpdHkpXCJcclxuICAgICAgICBbc2VsZWN0ZWREYXRhXT1cInNlbGVjdGVkUmVzcG9uc2liaWxpdHkgfCB1bmlxdWVSZXNwb25zaWJpbGl0aWVzIDogJ2VudGlyZU9iamVjdCdcIlxyXG4gICAgICAgIFtuYW1lRGlzcGxheUtleV09XCInUmVwb3J0TmFtZSdcIlxyXG4gICAgICAgIFt0eXBlXT1cIidsaXN0J1wiXHJcbiAgICAgICAgKGlzT25FZGl0KT1cIm9uRWRpdChJTlBVVF9UWVBFLnByb2dyYW1SZXNwb25zaWJpbGl0eSlcIlxyXG4gICAgICAgIGVkaXQtbW9kZVxyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLWVkaXQtbW9kZT5cclxuICAgIDwvbGliLXRleHQtZmllbGQ+XHJcblxyXG4gICAgPCEtLSBMaW5rIFJpc2sgQ2F0ZWdvcmllcyBhbmQgUmlzayAtLT5cclxuICAgIDxsaWItdGV4dC1maWVsZFxyXG4gICAgICBbZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgb3BlbmVkUG9wdXAgJiZcclxuICAgICAgICBvcGVuZWRQb3B1cCAhPT0gSU5QVVRfVFlQRT8ucmlza0NhdGVnb3J5ICYmXHJcbiAgICAgICAgZGlhbG9nRmllbGRzPy5pbmNsdWRlcyhvcGVuZWRQb3B1cClcclxuICAgICAgXCJcclxuICAgICAgW2FjdGl2ZV09XCJvcGVuZWRQb3B1cCAmJiBvcGVuZWRQb3B1cCA9PSBJTlBVVF9UWVBFPy5yaXNrQ2F0ZWdvcnlcIlxyXG4gICAgICAqbmdJZj1cImdyY0Zvcm0/LmxpbmtSaXNrXCJcclxuICAgICAgW3RpdGxlVGV4dF09XCJBTExfVEVYVD8uZ3JjUmlza0NhdGVnb3J5VGl0bGVcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJUZXh0XT1cIkFMTF9URVhUPy5ncmNSaXNrQ2F0ZWdvcnlQbGFjZWhvbGRlclwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgICAob25DbGljayk9XCJvblBvcHVwT3BlbihJTlBVVF9UWVBFLnJpc2tDYXRlZ29yeSlcIlxyXG4gICAgICBbaXNFZGl0TW9kZV09XCJcclxuICAgICAgICBsaXN0T2JqZWN0Py5SSVNLX0NBVEVHT1JZPy5zZWxlY3RlZERhdGE/Lmxlbmd0aCAmJlxyXG4gICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFPy5yaXNrQ2F0ZWdvcnlcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPGxpYi10ZXh0LWZpZWxkLWljb25cclxuICAgICAgICBbY2RuTGlua109XCJDRE5fTElOSy5saW5rR1JDXCJcclxuICAgICAgICBbaXNDaGVja2VkXT1cImxpc3RPYmplY3QuUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwXCJcclxuICAgICAgICBmaWVsZC1pY29uc1xyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cclxuXHJcbiAgICAgIDxsaWItZWRpdC1tb2RlXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxpc3RPYmplY3QuUklTS19DQVRFR09SWT8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcclxuICAgICAgICAgIG9wZW5lZFBvcHVwICE9PSBJTlBVVF9UWVBFLlJJU0tfQ0FURUdPUllcclxuICAgICAgICBcIlxyXG4gICAgICAgIChvblJlbW92ZURhdGEpPVwib25SZW1vdmVEYXRhKCRldmVudCwgSU5QVVRfVFlQRT8ucmlza0NhdGVnb3J5KVwiXHJcbiAgICAgICAgW3NlbGVjdGVkRGF0YV09XCJzZWxlY3RlZFJpc2tzXCJcclxuICAgICAgICBbdHlwZV09XCInbGlzdCdcIlxyXG4gICAgICAgIChpc09uRWRpdCk9XCJvbkVkaXQoSU5QVVRfVFlQRS5yaXNrQ2F0ZWdvcnksIGRhdGE/LmtleSlcIlxyXG4gICAgICAgIGVkaXQtbW9kZVxyXG4gICAgICA+XHJcbiAgICAgIDwvbGliLWVkaXQtbW9kZT5cclxuICAgIDwvbGliLXRleHQtZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gTGluayBPdGhlciBHUkMgT2JqZWN0cyAtLT5cclxuICA8bGliLXRleHQtZmllbGRcclxuICAgICpuZ0lmPVwiZ3JjRm9ybT8ub3RoZXJHcmNPYmplY3RzXCJcclxuICAgIFtkaXNhYmxlZF09XCJcclxuICAgICAgb3BlbmVkUG9wdXAgJiZcclxuICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEU/Lm90aGVyR3JjT2JqZWN0cyAmJlxyXG4gICAgICBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVxyXG4gICAgXCJcclxuICAgIFthY3RpdmVdPVwib3BlbmVkUG9wdXAgJiYgb3BlbmVkUG9wdXAgPT0gSU5QVVRfVFlQRT8ub3RoZXJHcmNPYmplY3RzXCJcclxuICAgIFt0aXRsZVRleHRdPVwiQUxMX1RFWFQ/Lm90aGVyR1JDT2JqZWN0c1RpdGxlXCJcclxuICAgIFtwbGFjZWhvbGRlclRleHRdPVwiQUxMX1RFWFQ/Lm90aGVyR1JDT2JqZWN0c1BsYWNlaG9sZGVyXCJcclxuICAgIFtpc1JlYWRPbmx5XT1cInRydWVcIlxyXG4gICAgKG9uQ2xpY2spPVwib25Qb3B1cE9wZW4oSU5QVVRfVFlQRS5vdGhlckdyY09iamVjdHMpXCJcclxuICAgIFtpc0VkaXRNb2RlXT1cIlxyXG4gICAgICBsaXN0T2JqZWN0Py5PVEhFUl9HUkNfT0JKRUNUUz8uc2VsZWN0ZWREYXRhPy5sZW5ndGggJiZcclxuICAgICAgb3BlbmVkUG9wdXAgIT09IElOUFVUX1RZUEU/Lm90aGVyR3JjT2JqZWN0c1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8bGliLXRleHQtZmllbGQtaWNvblxyXG4gICAgICBbY2RuTGlua109XCJDRE5fTElOSy5saW5rT3RoZXJzXCJcclxuICAgICAgW2lzQ2hlY2tlZF09XCJsaXN0T2JqZWN0Py5PVEhFUl9HUkNfT0JKRUNUUz8uc2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwXCJcclxuICAgICAgZmllbGQtaWNvbnNcclxuICAgID5cclxuICAgIDwvbGliLXRleHQtZmllbGQtaWNvbj5cclxuXHJcbiAgICA8bGliLWVkaXQtbW9kZVxyXG4gICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiBHUkNfVFlQRV9BUlJBWVwiXHJcbiAgICAgIChvblJlbW92ZURhdGEpPVwib25SZW1vdmVEYXRhKCRldmVudCwgSU5QVVRfVFlQRT8ub3RoZXJHcmNPYmplY3RzKVwiXHJcbiAgICAgIFtzZWxlY3RlZERhdGFdPVwiZ3JjRGF0YVdpdGhUeXBlc1tkYXRhXVwiXHJcbiAgICAgIFt0eXBlXT1cIidsaXN0J1wiXHJcbiAgICAgIFtpc011bHRpcGxlXT1cInRydWVcIlxyXG4gICAgICAoaXNPbkVkaXQpPVwib25FZGl0KElOUFVUX1RZUEUub3RoZXJHcmNPYmplY3RzLCBkYXRhKVwiXHJcbiAgICAgIGVkaXQtbW9kZVxyXG4gICAgPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ3b3JrZmxvd0xhdmVsIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wbC0xIHZ4LXByLTEgdngtbGgtNCB2eC1tci0xIHZ4LXRleHQtY2VudGVyXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGRhdGEgfCB0aXRsZWNhc2UgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2xpYi1lZGl0LW1vZGU+XHJcbiAgPC9saWItdGV4dC1maWVsZD5cclxuICA8bGliLWF0dHJpYnV0ZXNcclxuICAgIFtkaXNhYmxlZF09XCJvcGVuZWRQb3B1cCAmJiBkaWFsb2dGaWVsZHM/LmluY2x1ZGVzKG9wZW5lZFBvcHVwKVwiXHJcbiAgICAqbmdJZj1cInNlbGVjdGVkQXR0cmlidXRlcz8uYXR0cmlidXRlcz8ubGVuZ3RoICYmIHRoaXMuZ3JjRm9ybS5ncmNPYmplY3RUeXBlXCJcclxuICAgIFthdHRyaWJ1dGVzSW5mb109XCJzZWxlY3RlZEF0dHJpYnV0ZXNcIlxyXG4gICAgW2lzRm9ybVN1Ym1pdHRlZF09XCJpc0Zvcm1TdWJtaXR0ZWRcIlxyXG4gICAgKG9uQ2xpY2spPVwiZ2V0QXR0cmlidXRlU2VsZWN0aW9uKCRldmVudClcIlxyXG4gID48L2xpYi1hdHRyaWJ1dGVzPlxyXG4gIDxsaWItbGlzdC1wb3B1cFxyXG4gICAgW29wZW5lZFBvcHVwXT1cIm9wZW5lZFBvcHVwXCJcclxuICAgIFtsaXN0T2JqZWN0XT1cImxpc3RPYmplY3RcIlxyXG4gICAgW3RhYmxlQ2FyZF09XCJvdGhlckdSQ0NhcmRcIlxyXG4gICAgW290aGVyR3JjQ2FyZExvYWRlcl09XCJncmNUYWJMb2FkZXJcIlxyXG4gICAgW0dSQ1NlbGVjdGVkVGFiXT1cIkdSQ1NlbGVjdGVkVGFiXCJcclxuICAgIFttb2RlXT1cIk1PREVcIlxyXG4gICAgW29uRWRpdEdSQ0lkXT1cIklEXCJcclxuICAgIChvblNhdmVTZWxlY3RlZExpc3QpPVwib25TYXZlU2VsZWN0ZWRMaXN0KCRldmVudClcIlxyXG4gICAgKGdldE90aGVyR1JDT2JqZWN0cyk9XCJnZXRPdGhlckdSQ09iamVjdHMoJGV2ZW50KVwiXHJcbiAgPjwvbGliLWxpc3QtcG9wdXA+XHJcbjwvbmctY29udGFpbmVyPlxyXG48YXBwLXNtaWxleS1kaWFsb2ctaW5saW5lXHJcbiAgKm5nSWY9XCJzaG93U21pbGV5XCJcclxuICBbbWVzc2FnZV09XCJzbWlsZXlNZXNzYWdlXCJcclxuICBbYWN0aW9uQnV0dG9uc109XCJhY3Rpb25CdXR0b25zXCJcclxuICAoYWN0aW9uKT1cInNtaWxleUFjdGlvbnMoJGV2ZW50KVwiXHJcbiAgKGNsb3NlU21pbGV5KT1cImNsb3NlU21pbGV5KCRldmVudClcIlxyXG4+PC9hcHAtc21pbGV5LWRpYWxvZy1pbmxpbmU+XHJcbjxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImlzTG9hZGluZ1wiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcbiJdfQ==
|