@fundamental-ngx/platform 0.48.0-rc.20 → 0.48.0-rc.21
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/button/button.component.d.ts +4 -1
- package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +2 -2
- package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +2 -2
- package/esm2022/approval-flow/approval-flow.component.mjs +2 -2
- package/esm2022/button/button.component.mjs +8 -3
- package/esm2022/feed-input/feed-input.component.mjs +2 -2
- package/esm2022/form/combobox/combobox/combobox.component.mjs +2 -2
- package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +2 -2
- package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +2 -2
- package/esm2022/form/multi-input/multi-input.component.mjs +2 -2
- package/esm2022/form/select/commons/base-select.mjs +7 -2
- package/esm2022/form/select/select/select.component.mjs +3 -3
- package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +3 -3
- package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +3 -3
- package/esm2022/list/standard-list-item/standard-list-item.component.mjs +2 -2
- package/esm2022/menu-button/menu-button.component.mjs +8 -3
- package/esm2022/message-popover/components/message-view/message-view.component.mjs +2 -2
- package/esm2022/message-popover/message-popover.component.mjs +2 -2
- package/esm2022/object-marker/object-marker.component.mjs +8 -3
- package/esm2022/object-status/object-status.component.mjs +8 -3
- package/esm2022/search-field/search-field.component.mjs +2 -2
- package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +2 -2
- package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +2 -2
- package/esm2022/split-menu-button/split-menu-button.component.mjs +8 -3
- package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +2 -2
- package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +1 -1
- package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +2 -2
- package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +2 -2
- package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +2 -2
- package/esm2022/table/components/table-row/table-row.component.mjs +6 -4
- package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +2 -2
- package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +2 -2
- package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +2 -2
- package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +2 -2
- package/esm2022/variant-management/variant-management.component.mjs +2 -2
- package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +2 -2
- package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-button.mjs +7 -2
- package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +12 -8
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu-button.mjs +7 -2
- package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-marker.mjs +7 -2
- package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-object-status.mjs +7 -2
- package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-search-field.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +7 -2
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +10 -9
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/form/select/commons/base-select.d.ts +4 -1
- package/fundamental-ngx-platform-v0.48.0-rc.21.tgz +0 -0
- package/menu-button/menu-button.component.d.ts +5 -2
- package/object-marker/object-marker.component.d.ts +4 -1
- package/object-status/object-status.component.d.ts +4 -1
- package/package.json +4 -4
- package/split-menu-button/split-menu-button.component.d.ts +5 -2
- package/fundamental-ngx-platform-v0.48.0-rc.20.tgz +0 -0
|
@@ -224,7 +224,7 @@ export class ApprovalFlowNodeComponent {
|
|
|
224
224
|
: NODE_STATUS_CLASS_MAP[this.node.status]);
|
|
225
225
|
}
|
|
226
226
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ApprovalFlowNodeComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.RtlService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
227
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: ApprovalFlowNodeComponent, isStandalone: true, selector: "fdp-approval-flow-node", inputs: { node: "node", meta: "meta", renderArrow: "renderArrow", checkDueDate: "checkDueDate", dueDateThreshold: "dueDateThreshold", allNodesInColumnApproved: "allNodesInColumnApproved", approvalStatusTemplate: "approvalStatusTemplate", statusColorMapping: "statusColorMapping", isEdit: "isEdit", isNextNodeBlank: "isNextNodeBlank" }, outputs: { onAdd: "onAdd", onEdit: "onEdit", onDelete: "onDelete" }, host: { properties: { "class.fdp-approval-flow-node--first-root": "meta?.firstOfMultipleRootNodes", "class.fdp-approval-flow-node--first-final": "meta?.firstOfMultipleFinalNodes", "class.fdp-approval-flow-node--edit-mode": "this.isEdit", "class.fdp-approval-flow-node--next-blank": "this.isNextNodeBlank", "class.fdp-approval-flow-node--blank": "this._blank", "class.fdp-approval-flow-node--space": "this._space", "class.fdp-approval-flow-node--root": "this._isRoot", "class.fdp-approval-flow-node--final": "this._isFinal", "class.fdp-approval-flow-node--line-before": "this._renderLineBefore", "class.fdp-approval-flow-node--line-after": "this._renderLineAfter", "class.fdp-approval-flow-node--approved": "this._isApproved", "class.fdp-approval-flow-node--parent-approved": "this._isParentApproved", "class.fdp-approval-flow-node--selected": "this._isNodeSelected", "class.fdp-approval-flow-node--parallel-start": "this._isParallelStart", "class.fdp-approval-flow-node--parallel-end": "this._isParallelEnd", "class.fdp-approval-flow-node--first-in-parallel": "this._isFirstInParallel", "class.fdp-approval-flow-node--last-in-parallel": "this._isLastInParallel", "class.fdp-approval-flow-node--last-blank": "this._lastBlank" }, classAttribute: "fdp-approval-flow-node" }, queries: [{ propertyName: "_gridListItem", first: true, predicate: GridListItemComponent, descendants: true }], viewQueries: [{ propertyName: "_menu", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "_overflowMenuButton", first: true, predicate: ["overflowMenuButton"], descendants: true }, { propertyName: "_nodeContent", first: true, predicate: ["nodeContent"], descendants: true }, { propertyName: "_dropZones", predicate: ApprovalFlowDropZoneDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (meta?.renderVerticalLineBefore) {\n <div\n class=\"fdp-approval-flow-node__vertical-line-before\"\n [class.fdp-approval-flow-node__vertical-line-before-solid]=\"_isVerticalLineBeforeSolid\"\n ></div>\n}\n@if (meta?.renderVerticalLineAfter) {\n <div\n class=\"fdp-approval-flow-node__vertical-line-after\"\n [class.fdp-approval-flow-node__vertical-line-after-solid]=\"_isVerticalLineAfterSolid\"\n ></div>\n}\n@if (!_blank && !_space) {\n @if (renderArrow) {\n <div class=\"fdp-approval-flow-node__arrow\"></div>\n }\n @if (_isRoot && meta?.nodeIndex === 0) {\n <div class=\"fdp-approval-flow-node__carousel-start-marker\"></div>\n }\n @if (_isFinal && meta?.nodeIndex === 0) {\n <div class=\"fdp-approval-flow-node__carousel-end-marker\"></div>\n }\n <ng-content></ng-content>\n}\n<ng-template #overflowMenuButton>\n <!-- Actually just the fd-grid-item action button but with some hardcode to be used as menu trigger -->\n @if (!node?.disableActions) {\n <button\n class=\"fdp-approval-flow-node__menu-button\"\n fd-button\n fdType=\"transparent\"\n tabindex=\"0\"\n glyph=\"overflow\"\n [title]=\"'platformApprovalFlow.nodeMenuButtonTitle' | fdTranslate\"\n fdCompact\n [fdMenuTrigger]=\"menu\"\n [disabled]=\"_isEditActionsAvailable\"\n (click)=\"$event.stopPropagation()\"\n ></button>\n }\n</ng-template>\n<ng-template #nodeContent>\n <div class=\"fdp-approval-flow-node__info\">\n <div\n class=\"fdp-approval-flow-node__name\"\n [class.fdp-approval-flow-node__name--members-count]=\"node.approvers.length > 1\"\n [id]=\"approvalFlowNodeId\"\n >\n @if (node.approvers.length === 1) {\n {{ node.approvers[0].name }}\n } @else {\n {{ 'platformApprovalFlow.nodeMembersCount' | fdTranslate: { count: node.approvers.length } }}\n }\n </div>\n <div class=\"fdp-approval-flow-node__description\">\n @if (!node.variousTeams) {\n {{\n node.approvers.length > 1\n ? node.description\n : node.approvers.length\n ? node.approvers[0].description\n : ''\n }}\n } @else {\n {{ 'platformApprovalFlow.nodeVariousTeams' | fdTranslate }}\n }\n <ng-template #variousTeams> {{ 'platformApprovalFlow.nodeVariousTeams' | fdTranslate }} </ng-template>\n </div>\n <fdp-object-status [status]=\"_objectStatus\" [inverted]=\"true\">\n <ng-template fdpObjectStatusText>\n @if (approvalStatusTemplate) {\n @if (!checkDueDate || !_showDueDateWarning) {\n @if (approvalStatusTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"approvalStatusTemplate\"\n [ngTemplateOutletContext]=\"{ node: node }\"\n >\n </ng-template>\n }\n }\n } @else {\n @if (!checkDueDate || !_showDueDateWarning) {\n @switch (node.status) {\n @case ('approved') {\n {{ 'platformApprovalFlow.statusApproved' | fdTranslate }}\n }\n @case ('rejected') {\n {{ 'platformApprovalFlow.statusRejected' | fdTranslate }}\n }\n @case ('in progress') {\n {{ 'platformApprovalFlow.statusInProgress' | fdTranslate }}\n }\n @case ('not started') {\n {{ 'platformApprovalFlow.statusNotStarted' | fdTranslate }}\n }\n }\n }\n }\n @if (checkDueDate && _showDueDateWarning) {\n @if (_dueIn === dueDateThreshold) {\n {{ 'platformApprovalFlow.nodeStatusDueToday' | fdTranslate }}\n }\n @if (_dueIn < dueDateThreshold) {\n {{\n 'platformApprovalFlow.nodeStatusDueInXDays'\n | fdTranslate: { count: dueDateThreshold - _dueIn }\n }}\n }\n @if (_dueIn > dueDateThreshold) {\n {{\n 'platformApprovalFlow.nodeStatusXDaysOverdue'\n | fdTranslate: { count: _dueIn - dueDateThreshold }\n }}\n }\n }\n </ng-template>\n </fdp-object-status>\n </div>\n</ng-template>\n@if (_showAddButton && meta?.canAddNodeBeforeAll && !node?.actionsConfig?.disableAddBefore) {\n <ng-template\n [ngTemplateOutlet]=\"addNodeButton\"\n [ngTemplateOutletContext]=\"{ placement: 'before-all' }\"\n ></ng-template>\n}\n@if (_showAddButton && meta?.canAddNodeBefore && !node?.actionsConfig?.disableAddBefore) {\n <ng-template [ngTemplateOutlet]=\"addNodeButton\" [ngTemplateOutletContext]=\"{ placement: 'before' }\"></ng-template>\n}\n@if (\n _showAddButton && meta?.canAddNodeAfter && meta?.renderAddNodeAfterButton && !node?.actionsConfig?.disableAddAfter\n) {\n <ng-template [ngTemplateOutlet]=\"addNodeButton\" [ngTemplateOutletContext]=\"{ placement: 'after' }\"></ng-template>\n}\n@if (\n _showAfterAllAddButton &&\n meta?.canAddNodeAfterAll &&\n meta?.renderAddNodeAfterButton &&\n !node?.actionsConfig?.disableAddAfter\n) {\n <ng-template\n [ngTemplateOutlet]=\"addNodeButton\"\n [ngTemplateOutletContext]=\"{ placement: 'after-all' }\"\n ></ng-template>\n}\n<ng-template #addNodeButton let-placement=\"placement\">\n @if (node.status !== 'approved') {\n <button\n fd-button\n glyph=\"add\"\n [title]=\"'platformApprovalFlow.addNodeButtonTitle' | fdTranslate\"\n fdCompact\n class=\"fdp-approval-flow-node__add\"\n [class.fdp-approval-flow-node__add--blank]=\"this._blank\"\n [class.fdp-approval-flow-node__add--before]=\"\n !this._blank && (placement === 'before' || placement === 'before-all')\n \"\n [class.fdp-approval-flow-node__add--before-all]=\"!this._blank && placement === 'before-all'\"\n [class.fdp-approval-flow-node__add--after]=\"\n !this._blank && (placement === 'after' || placement === 'after-all')\n \"\n [class.fdp-approval-flow-node__add--after-all]=\"placement === 'after-all'\"\n [style.visibility]=\"dropZone.active ? 'hidden' : ''\"\n (click)=\"onAdd.emit(placement)\"\n ></button>\n }\n <div\n #dropZone=\"fdp-approval-flow-drop-zone\"\n fdp-approval-flow-drop-zone\n [placement]=\"placement\"\n class=\"fdp-approval-flow-node__drop-zone\"\n [class.fdp-approval-flow-node__drop-zone--active]=\"dropZone.active\"\n [class.fdp-approval-flow-node__drop-zone--blank]=\"isNextNodeBlank\"\n [class.fdp-approval-flow-node__drop-zone--partial]=\"_dropZonePartial(placement)\"\n ></div>\n</ng-template>\n<fd-menu #menu fdContentDensity placement=\"bottom-end\" (isOpenChange)=\"_onMenuOpen()\">\n @if (meta?.canAddNodeBefore && !this.node?.actionsConfig?.disableAddBefore) {\n <li fd-menu-item (click)=\"menu.close(); onAdd.emit('before')\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ 'platformApprovalFlow.nodeActionAddApproversBefore' | fdTranslate }}</span>\n </div>\n </li>\n }\n @if (meta?.canAddNodeAfter && !this.node?.actionsConfig?.disableAddAfter) {\n <li fd-menu-item (click)=\"menu.close(); onAdd.emit('after')\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ 'platformApprovalFlow.nodeActionAddApproversAfter' | fdTranslate }}</span>\n </div>\n </li>\n }\n @if (meta?.canAddParallel && !this.node?.actionsConfig?.disableAddParallel) {\n <li fd-menu-item (click)=\"menu.close(); onAdd.emit('parallel')\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ 'platformApprovalFlow.nodeActionAddApproversParallel' | fdTranslate }}</span>\n </div>\n </li>\n }\n @if (_isNotStarted && !this.node?.actionsConfig?.disableEdit) {\n <li fd-menu-item (click)=\"menu.close(); onEdit.emit()\">\n <div fd-menu-interactive>\n <span fd-menu-title> {{ 'platformApprovalFlow.nodeActionEditApprover' | fdTranslate }}</span>\n </div>\n </li>\n }\n @if (!this.node?.actionsConfig?.disableRemove) {\n <li fd-menu-item (click)=\"menu.close(); onDelete.emit()\">\n <div fd-menu-interactive>\n <span fd-menu-title> {{ 'platformApprovalFlow.nodeActionRemove' | fdTranslate }}</span>\n </div>\n </li>\n }\n</fd-menu>\n", styles: [".fdp-approval-flow-node{display:block;box-sizing:border-box;position:relative;width:17.375rem;height:5.875rem;margin-bottom:1rem}.fdp-approval-flow-node.fdp-approval-flow-node--edit-mode{height:7.875rem}.fdp-approval-flow-node.fdp-approval-flow-node--edit-mode .fdp-approval-flow-node__vertical-line-before:before,.fdp-approval-flow-node.fdp-approval-flow-node--edit-mode .fdp-approval-flow-node__vertical-line-after:after{top:-4.9375rem;height:8.875rem}.fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-before:before,.fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-after:after{content:\"\";display:block;position:absolute;top:-3.9375rem;height:6.875rem}.fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-before:before{left:-2.0625rem;border-right:.125rem dashed #d9d9d9;border-right:.125rem dashed var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:url(\"data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' width='2' height='2' fill='%23C4C4C4'/%3E%3C/svg%3E%0A\") 2 round}.fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-before-solid:before{border-right:.125rem solid #d9d9d9;border-right:.125rem solid var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:none}.fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-after:after{right:-2.0625rem;border-right:.125rem dashed #d9d9d9;border-right:.125rem dashed var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:url(\"data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' width='2' height='2' fill='%23C4C4C4'/%3E%3C/svg%3E%0A\") 2 round}.fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-after-solid:after{border-right:.125rem solid #d9d9d9;border-right:.125rem solid var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:none}[dir=rtl] .fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-before:before,.fdp-approval-flow-node[dir=rtl] .fdp-approval-flow-node__vertical-line-before:before{left:auto;right:-2.0625rem}[dir=rtl] .fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-after:after,.fdp-approval-flow-node[dir=rtl] .fdp-approval-flow-node__vertical-line-after:after{right:auto;left:-2.0625rem}.fdp-approval-flow-node .fdp-approval-flow-node__add{position:absolute;z-index:10;margin:calc(3.4375rem - 1px) auto auto;inset:0;border-radius:100%;min-width:1rem;max-width:1rem;min-height:1rem;max-height:1rem}.fdp-approval-flow-node .fdp-approval-flow-node__add fd-icon{line-height:1rem;font-size:.7rem;font-weight:900}.fdp-approval-flow-node .fdp-approval-flow-node__add.fdp-approval-flow-node__add--before{left:-2.5rem;right:auto}.fdp-approval-flow-node .fdp-approval-flow-node__add.fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone{left:-2.8rem}.fdp-approval-flow-node .fdp-approval-flow-node__add.fdp-approval-flow-node__add--after{right:-2.5rem;left:auto}.fdp-approval-flow-node .fdp-approval-flow-node__add.fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone{right:-2.8rem;left:auto}.fdp-approval-flow-node .fdp-approval-flow-node__drop-zone{border-radius:.25rem;position:absolute;height:100%;z-index:1}.fdp-approval-flow-node .fdp-approval-flow-node__drop-zone.fdp-approval-flow-node__drop-zone--active{background:#e5f0fa;background:var(--sapList_SelectionBackgroundColor, #e5f0fa);border:.125rem solid #0854a0;border:.125rem solid var(--sapButton_IconColor, #0854a0)}.fdp-approval-flow-node .fdp-approval-flow-node__drop-zone.fdp-approval-flow-node__drop-zone--blank{width:100%;top:0}.fdp-approval-flow-node .fdp-approval-flow-node__drop-zone.fdp-approval-flow-node__drop-zone--partial{width:10%;left:0;top:0}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--blank{background:transparent;box-shadow:none;pointer-events:none;cursor:default}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--blank:before{content:\"\";display:block;position:absolute;width:calc(100% + 4rem);height:0;left:-2rem;top:calc(50% - .0625rem);border-top:.125rem dashed #d9d9d9;border-top:.125rem dashed var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:url(\"data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' width='2' height='2' fill='%23C4C4C4'/%3E%3C/svg%3E%0A\") 2 round}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--blank.fdp-approval-flow-node--first-final:before{width:calc(100% + 2rem)}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--blank:not(.fdp-approval-flow-node--last-blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone{width:100%}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--line-before:before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--line-after:after{content:\"\";width:2rem;height:0;display:block;position:absolute;top:calc(50% - .0625rem);bottom:0;pointer-events:none;border-top:.125rem dashed #d9d9d9;border-top:.125rem dashed var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:url(\"data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' width='2' height='2' fill='%23C4C4C4'/%3E%3C/svg%3E%0A\") 2 round}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--line-before:before{left:-2rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--line-after:after{right:-2rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--approved.fdp-approval-flow-node--line-after:after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--approved.fdp-approval-flow-node--blank:before{border-top:.125rem solid #d9d9d9;border-top:.125rem solid var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:none}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parent-approved.fdp-approval-flow-node--line-before:before{left:-2rem;border-top:.125rem solid #d9d9d9;border-top:.125rem solid var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:none}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--edit-mode.fdp-approval-flow-node--blank{pointer-events:auto}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--edit-mode .fdp-approval-flow-node__carousel-start-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--edit-mode .fdp-approval-flow-node__carousel-end-marker{top:3.4375rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--edit-mode .fdp-approval-flow-node__arrow{display:none}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel .fdp-approval-flow-node__add--after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start .fdp-approval-flow-node__add--after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final .fdp-approval-flow-node__add--after{right:-1.5rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone{right:-1.8rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all{right:-3.5rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone{right:-3.8rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before{left:-1.5rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone{left:-1.8rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before-all{left:-3.5rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone{left:-3.8rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-blank .fdp-approval-flow-node__add--after-all{left:19.875rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-blank .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone{left:calc(100% + 2rem)}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--next-blank .fdp-approval-flow-node__add--after{right:-12.6875rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--next-blank .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone{left:calc(100% + 4rem)}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-root.fdp-approval-flow-node--line-before:before{width:4rem;left:-4rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-root .fdp-approval-flow-node__carousel-start-marker{left:-4rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-final.fdp-approval-flow-node--line-after:after{width:4rem;right:-4rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-final .fdp-approval-flow-node__carousel-end-marker{right:-4rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).cdk-drag-dragging:before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).cdk-drag-dragging:after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).cdk-drag-dragging .fdp-approval-flow-node__add,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).cdk-drag-dragging .fdp-approval-flow-node__carousel-start-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).cdk-drag-dragging .fdp-approval-flow-node__carousel-end-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).cdk-drag-dragging .fdp-approval-flow-node__vertical-line-before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).cdk-drag-dragging .fdp-approval-flow-node__vertical-line-after{visibility:hidden}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__name{font-size:1rem;line-height:1.25rem;margin-bottom:.1rem;color:#32363a;color:var(--sapTextColor, #32363a)}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__description{font-size:.875rem;line-height:1rem;color:#6a6d70;color:var(--sapContent_LabelColor, #6a6d70);margin-bottom:.4rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__arrow{width:0;height:0;border-style:solid;border-width:.375rem 0 .375rem .5rem;border-color:transparent transparent transparent #d9d9d9;border-color:transparent transparent transparent var(--sapGroup_TitleBorderColor, #d9d9d9);position:absolute;left:-.5rem;top:0;bottom:0;margin:auto}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__carousel-start-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__carousel-end-marker{z-index:1;background:#d9d9d9;background:var(--sapGroup_TitleBorderColor, #d9d9d9);display:block;position:absolute;width:.25rem;height:1rem;top:2.4375rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__carousel-start-marker{left:-2rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__carousel-end-marker{right:-2rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__arrow,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__arrow{left:auto;right:-.5rem;border-width:.375rem .5rem .375rem 0;border-color:transparent #d9d9d9 transparent transparent;border-color:transparent var(--sapGroup_TitleBorderColor, #d9d9d9) transparent transparent}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__carousel-start-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__carousel-start-marker{left:auto;right:-2rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__carousel-end-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__carousel-end-marker{right:auto;left:-2rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--line-before:before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--line-before:before{left:auto;right:-2rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--line-after:after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--line-after:after{right:auto;left:-2rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__name.fdp-approval-flow-node__name--members-count,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__name.fdp-approval-flow-node__name--members-count{direction:ltr;text-align:right}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__add--before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__add--before{right:-2.5rem;left:auto}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone{right:-2.8rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__add--after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__add--after{left:-2.5rem;right:auto}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone{left:-2.8rem;right:auto}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel .fdp-approval-flow-node__add--after,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start .fdp-approval-flow-node__add--after,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final .fdp-approval-flow-node__add--after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--last-in-parallel .fdp-approval-flow-node__add--after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-start .fdp-approval-flow-node__add--after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--final .fdp-approval-flow-node__add--after{left:-1.5rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--last-in-parallel .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-start .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--final .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone{left:-1.8rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--last-in-parallel:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-start:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--final:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all{left:-3.5rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--last-in-parallel:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-start:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--final:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone{left:-3.8rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--root .fdp-approval-flow-node__add--before{right:-1.5rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--root .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone{right:-1.8rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before-all,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before-all,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--root .fdp-approval-flow-node__add--before-all{right:-3.5rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--root .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone{right:-3.8rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-blank .fdp-approval-flow-node__add--after-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--last-blank .fdp-approval-flow-node__add--after-all{right:19.875rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-blank .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--last-blank .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone{right:calc(100% + 2rem)}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--next-blank .fdp-approval-flow-node__add--after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--next-blank .fdp-approval-flow-node__add--after{left:-12.6875rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--next-blank .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--next-blank .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone{right:calc(100% + 4rem)}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-root.fdp-approval-flow-node--line-before:before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-root.fdp-approval-flow-node--line-before:before{left:auto;right:-4rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-root .fdp-approval-flow-node__carousel-start-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-root .fdp-approval-flow-node__carousel-start-marker{left:auto;right:-4rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-final.fdp-approval-flow-node--line-after:after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-final.fdp-approval-flow-node--line-after:after{right:auto;left:-4rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-final .fdp-approval-flow-node__carousel-end-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-final .fdp-approval-flow-node__carousel-end-marker{right:auto;left:-4rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--blank.fdp-approval-flow-node--first-final:before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--blank.fdp-approval-flow-node--first-final:before{left:0}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "directive", type: MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: ObjectStatusComponent, selector: "fdp-object-status", inputs: ["status", "glyph", "indicationColor", "secondaryIndication", "clickable", "inverted", "large", "label", "ariaLabel", "title"], outputs: ["objectStatusClick"] }, { kind: "directive", type: PlatformObjectStatusTextDirective, selector: "[fdpObjectStatusText]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ApprovalFlowDropZoneDirective, selector: "[fdp-approval-flow-drop-zone]", inputs: ["placement"], exportAs: ["fdp-approval-flow-drop-zone"] }, { kind: "component", type: MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
227
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: ApprovalFlowNodeComponent, isStandalone: true, selector: "fdp-approval-flow-node", inputs: { node: "node", meta: "meta", renderArrow: "renderArrow", checkDueDate: "checkDueDate", dueDateThreshold: "dueDateThreshold", allNodesInColumnApproved: "allNodesInColumnApproved", approvalStatusTemplate: "approvalStatusTemplate", statusColorMapping: "statusColorMapping", isEdit: "isEdit", isNextNodeBlank: "isNextNodeBlank" }, outputs: { onAdd: "onAdd", onEdit: "onEdit", onDelete: "onDelete" }, host: { properties: { "class.fdp-approval-flow-node--first-root": "meta?.firstOfMultipleRootNodes", "class.fdp-approval-flow-node--first-final": "meta?.firstOfMultipleFinalNodes", "class.fdp-approval-flow-node--edit-mode": "this.isEdit", "class.fdp-approval-flow-node--next-blank": "this.isNextNodeBlank", "class.fdp-approval-flow-node--blank": "this._blank", "class.fdp-approval-flow-node--space": "this._space", "class.fdp-approval-flow-node--root": "this._isRoot", "class.fdp-approval-flow-node--final": "this._isFinal", "class.fdp-approval-flow-node--line-before": "this._renderLineBefore", "class.fdp-approval-flow-node--line-after": "this._renderLineAfter", "class.fdp-approval-flow-node--approved": "this._isApproved", "class.fdp-approval-flow-node--parent-approved": "this._isParentApproved", "class.fdp-approval-flow-node--selected": "this._isNodeSelected", "class.fdp-approval-flow-node--parallel-start": "this._isParallelStart", "class.fdp-approval-flow-node--parallel-end": "this._isParallelEnd", "class.fdp-approval-flow-node--first-in-parallel": "this._isFirstInParallel", "class.fdp-approval-flow-node--last-in-parallel": "this._isLastInParallel", "class.fdp-approval-flow-node--last-blank": "this._lastBlank" }, classAttribute: "fdp-approval-flow-node" }, queries: [{ propertyName: "_gridListItem", first: true, predicate: GridListItemComponent, descendants: true }], viewQueries: [{ propertyName: "_menu", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "_overflowMenuButton", first: true, predicate: ["overflowMenuButton"], descendants: true }, { propertyName: "_nodeContent", first: true, predicate: ["nodeContent"], descendants: true }, { propertyName: "_dropZones", predicate: ApprovalFlowDropZoneDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (meta?.renderVerticalLineBefore) {\n <div\n class=\"fdp-approval-flow-node__vertical-line-before\"\n [class.fdp-approval-flow-node__vertical-line-before-solid]=\"_isVerticalLineBeforeSolid\"\n ></div>\n}\n@if (meta?.renderVerticalLineAfter) {\n <div\n class=\"fdp-approval-flow-node__vertical-line-after\"\n [class.fdp-approval-flow-node__vertical-line-after-solid]=\"_isVerticalLineAfterSolid\"\n ></div>\n}\n@if (!_blank && !_space) {\n @if (renderArrow) {\n <div class=\"fdp-approval-flow-node__arrow\"></div>\n }\n @if (_isRoot && meta?.nodeIndex === 0) {\n <div class=\"fdp-approval-flow-node__carousel-start-marker\"></div>\n }\n @if (_isFinal && meta?.nodeIndex === 0) {\n <div class=\"fdp-approval-flow-node__carousel-end-marker\"></div>\n }\n <ng-content></ng-content>\n}\n<ng-template #overflowMenuButton>\n <!-- Actually just the fd-grid-item action button but with some hardcode to be used as menu trigger -->\n @if (!node?.disableActions) {\n <button\n class=\"fdp-approval-flow-node__menu-button\"\n fd-button\n fdType=\"transparent\"\n tabindex=\"0\"\n glyph=\"overflow\"\n [title]=\"'platformApprovalFlow.nodeMenuButtonTitle' | fdTranslate\"\n fdCompact\n [fdMenuTrigger]=\"menu\"\n [disabled]=\"_isEditActionsAvailable\"\n (click)=\"$event.stopPropagation()\"\n ></button>\n }\n</ng-template>\n<ng-template #nodeContent>\n <div class=\"fdp-approval-flow-node__info\">\n <div\n class=\"fdp-approval-flow-node__name\"\n [class.fdp-approval-flow-node__name--members-count]=\"node.approvers.length > 1\"\n [id]=\"approvalFlowNodeId\"\n >\n @if (node.approvers.length === 1) {\n {{ node.approvers[0].name }}\n } @else {\n {{ 'platformApprovalFlow.nodeMembersCount' | fdTranslate: { count: node.approvers.length } }}\n }\n </div>\n <div class=\"fdp-approval-flow-node__description\">\n @if (!node.variousTeams) {\n {{\n node.approvers.length > 1\n ? node.description\n : node.approvers.length\n ? node.approvers[0].description\n : ''\n }}\n } @else {\n {{ 'platformApprovalFlow.nodeVariousTeams' | fdTranslate }}\n }\n <ng-template #variousTeams> {{ 'platformApprovalFlow.nodeVariousTeams' | fdTranslate }} </ng-template>\n </div>\n <fdp-object-status [status]=\"_objectStatus\" [inverted]=\"true\">\n <ng-template fdpObjectStatusText>\n @if (approvalStatusTemplate) {\n @if (!checkDueDate || !_showDueDateWarning) {\n @if (approvalStatusTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"approvalStatusTemplate\"\n [ngTemplateOutletContext]=\"{ node: node }\"\n >\n </ng-template>\n }\n }\n } @else {\n @if (!checkDueDate || !_showDueDateWarning) {\n @switch (node.status) {\n @case ('approved') {\n {{ 'platformApprovalFlow.statusApproved' | fdTranslate }}\n }\n @case ('rejected') {\n {{ 'platformApprovalFlow.statusRejected' | fdTranslate }}\n }\n @case ('in progress') {\n {{ 'platformApprovalFlow.statusInProgress' | fdTranslate }}\n }\n @case ('not started') {\n {{ 'platformApprovalFlow.statusNotStarted' | fdTranslate }}\n }\n }\n }\n }\n @if (checkDueDate && _showDueDateWarning) {\n @if (_dueIn === dueDateThreshold) {\n {{ 'platformApprovalFlow.nodeStatusDueToday' | fdTranslate }}\n }\n @if (_dueIn < dueDateThreshold) {\n {{\n 'platformApprovalFlow.nodeStatusDueInXDays'\n | fdTranslate: { count: dueDateThreshold - _dueIn }\n }}\n }\n @if (_dueIn > dueDateThreshold) {\n {{\n 'platformApprovalFlow.nodeStatusXDaysOverdue'\n | fdTranslate: { count: _dueIn - dueDateThreshold }\n }}\n }\n }\n </ng-template>\n </fdp-object-status>\n </div>\n</ng-template>\n@if (_showAddButton && meta?.canAddNodeBeforeAll && !node?.actionsConfig?.disableAddBefore) {\n <ng-template\n [ngTemplateOutlet]=\"addNodeButton\"\n [ngTemplateOutletContext]=\"{ placement: 'before-all' }\"\n ></ng-template>\n}\n@if (_showAddButton && meta?.canAddNodeBefore && !node?.actionsConfig?.disableAddBefore) {\n <ng-template [ngTemplateOutlet]=\"addNodeButton\" [ngTemplateOutletContext]=\"{ placement: 'before' }\"></ng-template>\n}\n@if (\n _showAddButton && meta?.canAddNodeAfter && meta?.renderAddNodeAfterButton && !node?.actionsConfig?.disableAddAfter\n) {\n <ng-template [ngTemplateOutlet]=\"addNodeButton\" [ngTemplateOutletContext]=\"{ placement: 'after' }\"></ng-template>\n}\n@if (\n _showAfterAllAddButton &&\n meta?.canAddNodeAfterAll &&\n meta?.renderAddNodeAfterButton &&\n !node?.actionsConfig?.disableAddAfter\n) {\n <ng-template\n [ngTemplateOutlet]=\"addNodeButton\"\n [ngTemplateOutletContext]=\"{ placement: 'after-all' }\"\n ></ng-template>\n}\n<ng-template #addNodeButton let-placement=\"placement\">\n @if (node.status !== 'approved') {\n <button\n fd-button\n glyph=\"add\"\n [title]=\"'platformApprovalFlow.addNodeButtonTitle' | fdTranslate\"\n fdCompact\n class=\"fdp-approval-flow-node__add\"\n [class.fdp-approval-flow-node__add--blank]=\"this._blank\"\n [class.fdp-approval-flow-node__add--before]=\"\n !this._blank && (placement === 'before' || placement === 'before-all')\n \"\n [class.fdp-approval-flow-node__add--before-all]=\"!this._blank && placement === 'before-all'\"\n [class.fdp-approval-flow-node__add--after]=\"\n !this._blank && (placement === 'after' || placement === 'after-all')\n \"\n [class.fdp-approval-flow-node__add--after-all]=\"placement === 'after-all'\"\n [style.visibility]=\"dropZone.active ? 'hidden' : ''\"\n (click)=\"onAdd.emit(placement)\"\n ></button>\n }\n <div\n #dropZone=\"fdp-approval-flow-drop-zone\"\n fdp-approval-flow-drop-zone\n [placement]=\"placement\"\n class=\"fdp-approval-flow-node__drop-zone\"\n [class.fdp-approval-flow-node__drop-zone--active]=\"dropZone.active\"\n [class.fdp-approval-flow-node__drop-zone--blank]=\"isNextNodeBlank\"\n [class.fdp-approval-flow-node__drop-zone--partial]=\"_dropZonePartial(placement)\"\n ></div>\n</ng-template>\n<fd-menu #menu fdContentDensity placement=\"bottom-end\" (isOpenChange)=\"_onMenuOpen()\">\n @if (meta?.canAddNodeBefore && !this.node?.actionsConfig?.disableAddBefore) {\n <li fd-menu-item (click)=\"menu.close(); onAdd.emit('before')\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ 'platformApprovalFlow.nodeActionAddApproversBefore' | fdTranslate }}</span>\n </div>\n </li>\n }\n @if (meta?.canAddNodeAfter && !this.node?.actionsConfig?.disableAddAfter) {\n <li fd-menu-item (click)=\"menu.close(); onAdd.emit('after')\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ 'platformApprovalFlow.nodeActionAddApproversAfter' | fdTranslate }}</span>\n </div>\n </li>\n }\n @if (meta?.canAddParallel && !this.node?.actionsConfig?.disableAddParallel) {\n <li fd-menu-item (click)=\"menu.close(); onAdd.emit('parallel')\">\n <div fd-menu-interactive>\n <span fd-menu-title>{{ 'platformApprovalFlow.nodeActionAddApproversParallel' | fdTranslate }}</span>\n </div>\n </li>\n }\n @if (_isNotStarted && !this.node?.actionsConfig?.disableEdit) {\n <li fd-menu-item (click)=\"menu.close(); onEdit.emit()\">\n <div fd-menu-interactive>\n <span fd-menu-title> {{ 'platformApprovalFlow.nodeActionEditApprover' | fdTranslate }}</span>\n </div>\n </li>\n }\n @if (!this.node?.actionsConfig?.disableRemove) {\n <li fd-menu-item (click)=\"menu.close(); onDelete.emit()\">\n <div fd-menu-interactive>\n <span fd-menu-title> {{ 'platformApprovalFlow.nodeActionRemove' | fdTranslate }}</span>\n </div>\n </li>\n }\n</fd-menu>\n", styles: [".fdp-approval-flow-node{display:block;box-sizing:border-box;position:relative;width:17.375rem;height:5.875rem;margin-bottom:1rem}.fdp-approval-flow-node.fdp-approval-flow-node--edit-mode{height:7.875rem}.fdp-approval-flow-node.fdp-approval-flow-node--edit-mode .fdp-approval-flow-node__vertical-line-before:before,.fdp-approval-flow-node.fdp-approval-flow-node--edit-mode .fdp-approval-flow-node__vertical-line-after:after{top:-4.9375rem;height:8.875rem}.fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-before:before,.fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-after:after{content:\"\";display:block;position:absolute;top:-3.9375rem;height:6.875rem}.fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-before:before{left:-2.0625rem;border-right:.125rem dashed #d9d9d9;border-right:.125rem dashed var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:url(\"data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' width='2' height='2' fill='%23C4C4C4'/%3E%3C/svg%3E%0A\") 2 round}.fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-before-solid:before{border-right:.125rem solid #d9d9d9;border-right:.125rem solid var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:none}.fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-after:after{right:-2.0625rem;border-right:.125rem dashed #d9d9d9;border-right:.125rem dashed var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:url(\"data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' width='2' height='2' fill='%23C4C4C4'/%3E%3C/svg%3E%0A\") 2 round}.fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-after-solid:after{border-right:.125rem solid #d9d9d9;border-right:.125rem solid var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:none}[dir=rtl] .fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-before:before,.fdp-approval-flow-node[dir=rtl] .fdp-approval-flow-node__vertical-line-before:before{left:auto;right:-2.0625rem}[dir=rtl] .fdp-approval-flow-node .fdp-approval-flow-node__vertical-line-after:after,.fdp-approval-flow-node[dir=rtl] .fdp-approval-flow-node__vertical-line-after:after{right:auto;left:-2.0625rem}.fdp-approval-flow-node .fdp-approval-flow-node__add{position:absolute;z-index:10;margin:calc(3.4375rem - 1px) auto auto;inset:0;border-radius:100%;min-width:1rem;max-width:1rem;min-height:1rem;max-height:1rem}.fdp-approval-flow-node .fdp-approval-flow-node__add fd-icon{line-height:1rem;font-size:.7rem;font-weight:900}.fdp-approval-flow-node .fdp-approval-flow-node__add.fdp-approval-flow-node__add--before{left:-2.5rem;right:auto}.fdp-approval-flow-node .fdp-approval-flow-node__add.fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone{left:-2.8rem}.fdp-approval-flow-node .fdp-approval-flow-node__add.fdp-approval-flow-node__add--after{right:-2.5rem;left:auto}.fdp-approval-flow-node .fdp-approval-flow-node__add.fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone{right:-2.8rem;left:auto}.fdp-approval-flow-node .fdp-approval-flow-node__drop-zone{border-radius:.25rem;position:absolute;height:100%;z-index:1}.fdp-approval-flow-node .fdp-approval-flow-node__drop-zone.fdp-approval-flow-node__drop-zone--active{background:#e5f0fa;background:var(--sapList_SelectionBackgroundColor, #e5f0fa);border:.125rem solid #0854a0;border:.125rem solid var(--sapButton_IconColor, #0854a0)}.fdp-approval-flow-node .fdp-approval-flow-node__drop-zone.fdp-approval-flow-node__drop-zone--blank{width:100%;top:0}.fdp-approval-flow-node .fdp-approval-flow-node__drop-zone.fdp-approval-flow-node__drop-zone--partial{width:10%;left:0;top:0}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--blank{background:transparent;box-shadow:none;pointer-events:none;cursor:default}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--blank:before{content:\"\";display:block;position:absolute;width:calc(100% + 4rem);height:0;left:-2rem;top:calc(50% - .0625rem);border-top:.125rem dashed #d9d9d9;border-top:.125rem dashed var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:url(\"data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' width='2' height='2' fill='%23C4C4C4'/%3E%3C/svg%3E%0A\") 2 round}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--blank.fdp-approval-flow-node--first-final:before{width:calc(100% + 2rem)}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--blank:not(.fdp-approval-flow-node--last-blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone{width:100%}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--line-before:before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--line-after:after{content:\"\";width:2rem;height:0;display:block;position:absolute;top:calc(50% - .0625rem);bottom:0;pointer-events:none;border-top:.125rem dashed #d9d9d9;border-top:.125rem dashed var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:url(\"data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' y='3' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='6' width='2' height='2' fill='%23C4C4C4'/%3E%3Crect x='3' width='2' height='2' fill='%23C4C4C4'/%3E%3C/svg%3E%0A\") 2 round}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--line-before:before{left:-2rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--line-after:after{right:-2rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--approved.fdp-approval-flow-node--line-after:after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--approved.fdp-approval-flow-node--blank:before{border-top:.125rem solid #d9d9d9;border-top:.125rem solid var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:none}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parent-approved.fdp-approval-flow-node--line-before:before{left:-2rem;border-top:.125rem solid #d9d9d9;border-top:.125rem solid var(--sapGroup_TitleBorderColor, #d9d9d9);border-image:none}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--edit-mode.fdp-approval-flow-node--blank{pointer-events:auto}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--edit-mode .fdp-approval-flow-node__carousel-start-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--edit-mode .fdp-approval-flow-node__carousel-end-marker{top:3.4375rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--edit-mode .fdp-approval-flow-node__arrow{display:none}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel .fdp-approval-flow-node__add--after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start .fdp-approval-flow-node__add--after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final .fdp-approval-flow-node__add--after{right:-1.5rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone{right:-1.8rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all{right:-3.5rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone{right:-3.8rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before{left:-1.5rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone{left:-1.8rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before-all{left:-3.5rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone{left:-3.8rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-blank .fdp-approval-flow-node__add--after-all{left:19.875rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-blank .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone{left:calc(100% + 2rem)}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--next-blank .fdp-approval-flow-node__add--after{right:-12.6875rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--next-blank .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone{left:calc(100% + 4rem)}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-root.fdp-approval-flow-node--line-before:before{width:4rem;left:-4rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-root .fdp-approval-flow-node__carousel-start-marker{left:-4rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-final.fdp-approval-flow-node--line-after:after{width:4rem;right:-4rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-final .fdp-approval-flow-node__carousel-end-marker{right:-4rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).cdk-drag-dragging:before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).cdk-drag-dragging:after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).cdk-drag-dragging .fdp-approval-flow-node__add,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).cdk-drag-dragging .fdp-approval-flow-node__carousel-start-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).cdk-drag-dragging .fdp-approval-flow-node__carousel-end-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).cdk-drag-dragging .fdp-approval-flow-node__vertical-line-before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space).cdk-drag-dragging .fdp-approval-flow-node__vertical-line-after{visibility:hidden}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__name{font-size:1rem;line-height:1.25rem;margin-bottom:.1rem;color:#32363a;color:var(--sapTextColor, #32363a)}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__description{font-size:.875rem;line-height:1rem;color:#6a6d70;color:var(--sapContent_LabelColor, #6a6d70);margin-bottom:.4rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__arrow{width:0;height:0;border-style:solid;border-width:.375rem 0 .375rem .5rem;border-color:transparent transparent transparent #d9d9d9;border-color:transparent transparent transparent var(--sapGroup_TitleBorderColor, #d9d9d9);position:absolute;left:-.5rem;top:0;bottom:0;margin:auto}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__carousel-start-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__carousel-end-marker{z-index:1;background:#d9d9d9;background:var(--sapGroup_TitleBorderColor, #d9d9d9);display:block;position:absolute;width:.25rem;height:1rem;top:2.4375rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__carousel-start-marker{left:-2rem}.fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__carousel-end-marker{right:-2rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__arrow,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__arrow{left:auto;right:-.5rem;border-width:.375rem .5rem .375rem 0;border-color:transparent #d9d9d9 transparent transparent;border-color:transparent var(--sapGroup_TitleBorderColor, #d9d9d9) transparent transparent}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__carousel-start-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__carousel-start-marker{left:auto;right:-2rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__carousel-end-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__carousel-end-marker{right:auto;left:-2rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--line-before:before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--line-before:before{left:auto;right:-2rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--line-after:after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--line-after:after{right:auto;left:-2rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__name.fdp-approval-flow-node__name--members-count,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__name.fdp-approval-flow-node__name--members-count{direction:ltr;text-align:right}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__add--before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__add--before{right:-2.5rem;left:auto}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone{right:-2.8rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__add--after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__add--after{left:-2.5rem;right:auto}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space) .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl] .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone{left:-2.8rem;right:auto}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel .fdp-approval-flow-node__add--after,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start .fdp-approval-flow-node__add--after,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final .fdp-approval-flow-node__add--after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--last-in-parallel .fdp-approval-flow-node__add--after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-start .fdp-approval-flow-node__add--after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--final .fdp-approval-flow-node__add--after{left:-1.5rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--last-in-parallel .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-start .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--final .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone{left:-1.8rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--last-in-parallel:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-start:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--final:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all{left:-3.5rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-in-parallel:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-start:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--final:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--last-in-parallel:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-start:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--final:not(.fdp-approval-flow-node--blank) .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone{left:-3.8rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--root .fdp-approval-flow-node__add--before{right:-1.5rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--root .fdp-approval-flow-node__add--before+.fdp-approval-flow-node__drop-zone{right:-1.8rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before-all,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before-all,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--root .fdp-approval-flow-node__add--before-all{right:-3.5rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone,[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--root .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-in-parallel .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--parallel-end .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--root .fdp-approval-flow-node__add--before-all+.fdp-approval-flow-node__drop-zone{right:-3.8rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-blank .fdp-approval-flow-node__add--after-all,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--last-blank .fdp-approval-flow-node__add--after-all{right:19.875rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--last-blank .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--last-blank .fdp-approval-flow-node__add--after-all+.fdp-approval-flow-node__drop-zone{right:calc(100% + 2rem)}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--next-blank .fdp-approval-flow-node__add--after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--next-blank .fdp-approval-flow-node__add--after{left:-12.6875rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--next-blank .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--next-blank .fdp-approval-flow-node__add--after+.fdp-approval-flow-node__drop-zone{right:calc(100% + 4rem)}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-root.fdp-approval-flow-node--line-before:before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-root.fdp-approval-flow-node--line-before:before{left:auto;right:-4rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-root .fdp-approval-flow-node__carousel-start-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-root .fdp-approval-flow-node__carousel-start-marker{left:auto;right:-4rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-final.fdp-approval-flow-node--line-after:after,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-final.fdp-approval-flow-node--line-after:after{right:auto;left:-4rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--first-final .fdp-approval-flow-node__carousel-end-marker,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--first-final .fdp-approval-flow-node__carousel-end-marker{right:auto;left:-4rem}[dir=rtl] .fdp-approval-flow-node:not(.fdp-approval-flow-node--space).fdp-approval-flow-node--blank.fdp-approval-flow-node--first-final:before,.fdp-approval-flow-node:not(.fdp-approval-flow-node--space)[dir=rtl].fdp-approval-flow-node--blank.fdp-approval-flow-node--first-final:before{left:0}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "directive", type: MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: ObjectStatusComponent, selector: "fdp-object-status", inputs: ["status", "glyph", "glyphFont", "indicationColor", "secondaryIndication", "clickable", "inverted", "large", "label", "ariaLabel", "title"], outputs: ["objectStatusClick"] }, { kind: "directive", type: PlatformObjectStatusTextDirective, selector: "[fdpObjectStatusText]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ApprovalFlowDropZoneDirective, selector: "[fdp-approval-flow-drop-zone]", inputs: ["placement"], exportAs: ["fdp-approval-flow-drop-zone"] }, { kind: "component", type: MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "focusAutoCapture", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "directive", type: MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
228
228
|
}
|
|
229
229
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ApprovalFlowNodeComponent, decorators: [{
|
|
230
230
|
type: Component,
|
|
@@ -344,4 +344,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
344
344
|
type: ContentChild,
|
|
345
345
|
args: [GridListItemComponent]
|
|
346
346
|
}] } });
|
|
347
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXBwcm92YWwtZmxvdy9hcHByb3ZhbC1mbG93LW5vZGUvYXBwcm92YWwtZmxvdy1ub2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXBwcm92YWwtZmxvdy9hcHByb3ZhbC1mbG93LW5vZGUvYXBwcm92YWwtZmxvdy1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDdkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUs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QUFXO3VCQUFDLDhDQUE4QztnQkFPdkQsY0FBYztzQkFEakIsV0FBVzt1QkFBQyw0Q0FBNEM7Z0JBT3JELGtCQUFrQjtzQkFEckIsV0FBVzt1QkFBQyxpREFBaUQ7Z0JBTzFELGlCQUFpQjtzQkFEcEIsV0FBVzt1QkFBQyxnREFBZ0Q7Z0JBT3pELFVBQVU7c0JBRGIsV0FBVzt1QkFBQywwQ0FBMEM7O1FBcUJ2RCwrREFBK0Q7UUFDL0QsS0FBSztzQkFGSixNQUFNOztRQU1QLCtEQUErRDtRQUMvRCxNQUFNO3NCQUZMLE1BQU07O1FBTVAsK0RBQStEO1FBQy9ELFFBQVE7c0JBRlAsTUFBTTtnQkFNUCxLQUFLO3NCQURKLFNBQVM7dUJBQUMsYUFBYTtnQkFLeEIsbUJBQW1CO3NCQURsQixTQUFTO3VCQUFDLG9CQUFvQjtnQkFLL0IsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGFBQWE7Z0JBS3hCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyw2QkFBNkI7Z0JBSzNDLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBHcmlkTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZ3JpZC1saXN0JztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVudSc7XG5pbXBvcnQgeyBPYmplY3RTdGF0dXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvb2JqZWN0LXN0YXR1cyc7XG5cbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHtcbiAgICBNZW51SW50ZXJhY3RpdmVDb21wb25lbnQsXG4gICAgTWVudUl0ZW1Db21wb25lbnQsXG4gICAgTWVudVRpdGxlRGlyZWN0aXZlLFxuICAgIE1lbnVUcmlnZ2VyRGlyZWN0aXZlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tZW51JztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRpb25SZXNvbHZlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBPYmplY3RTdGF0dXNDb21wb25lbnQsIFBsYXRmb3JtT2JqZWN0U3RhdHVzVGV4dERpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vb2JqZWN0LXN0YXR1cyc7XG5pbXBvcnQgeyBBcHByb3ZhbEZsb3dOb2RlVGFyZ2V0IH0gZnJvbSAnLi4vYXBwcm92YWwtZmxvdy1hZGQtbm9kZS9hcHByb3ZhbC1mbG93LWFkZC1ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpc05vZGVBcHByb3ZlZCwgaXNOb2RlU3RhcnRlZCB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgQXBwcm92YWxHcmFwaE5vZGUsIEFwcHJvdmFsR3JhcGhOb2RlTWV0YWRhdGEsIEFwcHJvdmFsU3RhdHVzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBcHByb3ZhbEZsb3dEcm9wWm9uZURpcmVjdGl2ZSB9IGZyb20gJy4vYXBwcm92YWwtZmxvdy1kcm9wLXpvbmUuZGlyZWN0aXZlJztcblxuY29uc3QgTk9ERV9TVEFUVVNfQ0xBU1NfTUFQID0ge1xuICAgIGFwcHJvdmVkOiAncG9zaXRpdmUnLFxuICAgIHJlamVjdGVkOiAnbmVnYXRpdmUnLFxuICAgICdpbiBwcm9ncmVzcyc6ICdpbmZvcm1hdGl2ZScsXG4gICAgJ25vdCBzdGFydGVkJzogJydcbn07XG5cbmNvbnN0IERBWV9JTl9NSUxMSVNFQ09ORFMgPSAxMDAwICogNjAgKiA2MCAqIDI0O1xuXG5sZXQgZGVmYXVsdElkID0gMDtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogQXBwcm92YWxGbG93Tm9kZSBjb21wb25lbnQgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDAuNDAuMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1hcHByb3ZhbC1mbG93LW5vZGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1mbG93LW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9hcHByb3ZhbC1mbG93LW5vZGUuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkcC1hcHByb3ZhbC1mbG93LW5vZGUnLFxuICAgICAgICAnW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLWZpcnN0LXJvb3RdJzogJ21ldGE/LmZpcnN0T2ZNdWx0aXBsZVJvb3ROb2RlcycsXG4gICAgICAgICdbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tZmlyc3QtZmluYWxdJzogJ21ldGE/LmZpcnN0T2ZNdWx0aXBsZUZpbmFsTm9kZXMnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSxcbiAgICAgICAgTWVudVRyaWdnZXJEaXJlY3RpdmUsXG4gICAgICAgIE9iamVjdFN0YXR1c0NvbXBvbmVudCxcbiAgICAgICAgUGxhdGZvcm1PYmplY3RTdGF0dXNUZXh0RGlyZWN0aXZlLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBBcHByb3ZhbEZsb3dEcm9wWm9uZURpcmVjdGl2ZSxcbiAgICAgICAgTWVudUNvbXBvbmVudCxcbiAgICAgICAgTWVudUl0ZW1Db21wb25lbnQsXG4gICAgICAgIE1lbnVJbnRlcmFjdGl2ZUNvbXBvbmVudCxcbiAgICAgICAgTWVudVRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBGZFRyYW5zbGF0ZVBpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsRmxvd05vZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICAvKiogQXBwcm92YWwgZmxvdyBncmFwaCBub2RlICovXG4gICAgQElucHV0KCkgbm9kZTogQXBwcm92YWxHcmFwaE5vZGU7XG5cbiAgICAvKiogTm9kZSBtZXRhZGF0YSAqL1xuICAgIEBJbnB1dCgpIG1ldGE6IEFwcHJvdmFsR3JhcGhOb2RlTWV0YWRhdGE7XG5cbiAgICAvKiogV2hldGhlciBub2RlIGVsZW1lbnQgaGFzIGFycm93IG9uIHRoZSBsZWZ0IHNpZGUgcG9pbnRpbmcgdG8gdGhlIG5vZGUgKi9cbiAgICBASW5wdXQoKSByZW5kZXJBcnJvdyA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSBkdWUgZGF0ZSB3YXJuaW5nIGluIHN0YXR1cyAqL1xuICAgIEBJbnB1dCgpIGNoZWNrRHVlRGF0ZSA9IGZhbHNlO1xuXG4gICAgLyoqIE51bWJlciBvZiBkYXlzIGJlZm9yZSBkdWUgZGF0ZSB3aGVuIHN0YXR1cyBjaGFuZ2VzIHRvIGB3YXJuaW5nYCB3aXRoIHRleHQgJ0R1ZSBpbiBYIGRheXMnLlxuICAgICAqICBOb3QgdXNlZCBpZiAnY2hlY2tEdWVEYXRlJyBlcXVhbHMgZmFsc2UgKi9cbiAgICBASW5wdXQoKSBkdWVEYXRlVGhyZXNob2xkID0gNztcblxuICAgIC8qKiBXaGV0aGVyIG5vZGVzIGluIGNvbHVtbiBpbiB3aGljaCBjdXJyZW50IG5vZGUgcGxhY2VkIGFyZSBhcHByb3ZlZFxuICAgICAqICBVc2VkIHRvIHJlbmRlciBhcHByb3ByaWF0ZSB2ZXJ0aWNhbCBsaW5lIGFmdGVyIChkYXNoZWQvc29saWQpXG4gICAgICovXG4gICAgQElucHV0KCkgYWxsTm9kZXNJbkNvbHVtbkFwcHJvdmVkID0gZmFsc2U7XG5cbiAgICAvKiogQSByZWZlcmVuY2UgdG8gdGhlIGFwcCBjdXN0b20gc3RhdHVzZXMgKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcHJvdmFsU3RhdHVzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQ3VzdG9tIHN0YXR1cyB0byBjb2xvciBtYXBwaW5nICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdHVzQ29sb3JNYXBwaW5nOiBSZWNvcmQ8QXBwcm92YWxTdGF0dXMsIE9iamVjdFN0YXR1cz47XG5cbiAgICAvKiogV2hldGhlciB0aGUgbm9kZSBpcyBpbiBlZGl0IG1vZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tZWRpdC1tb2RlJylcbiAgICBpc0VkaXQ6IGJvb2xlYW47XG5cbiAgICAvKiogV2hldGhlciB0aGUgbm9kZSBhZnRlciBpcyBibGFuayAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1uZXh0LWJsYW5rJylcbiAgICBpc05leHROb2RlQmxhbms6IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tYmxhbmsnKVxuICAgIGdldCBfYmxhbmsoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubm9kZT8uYmxhbms7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLXNwYWNlJylcbiAgICBnZXQgX3NwYWNlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLm5vZGU/LnNwYWNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1yb290JylcbiAgICBnZXQgX2lzUm9vdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWV0YT8uaXNSb290O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1maW5hbCcpXG4gICAgZ2V0IF9pc0ZpbmFsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXRhPy5pc0ZpbmFsO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1saW5lLWJlZm9yZScpXG4gICAgZ2V0IF9yZW5kZXJMaW5lQmVmb3JlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMubm9kZT8uYmxhbms7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLWxpbmUtYWZ0ZXInKVxuICAgIGdldCBfcmVuZGVyTGluZUFmdGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMubm9kZT8uYmxhbmsgfHwgdGhpcy5faXNGaW5hbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tYXBwcm92ZWQnKVxuICAgIGdldCBfaXNBcHByb3ZlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZSAmJiBpc05vZGVBcHByb3ZlZCh0aGlzLm5vZGUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1wYXJlbnQtYXBwcm92ZWQnKVxuICAgIGdldCBfaXNQYXJlbnRBcHByb3ZlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLm1ldGE/LnBhcmVudHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuICEhdGhpcy5tZXRhPy5yb290Tm9kZXNBcHByb3ZlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1ldGEucGFyZW50cy5ldmVyeSgobm9kZSkgPT4gaXNOb2RlQXBwcm92ZWQobm9kZSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1zZWxlY3RlZCcpXG4gICAgZ2V0IF9pc05vZGVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFZGl0ICYmIHRoaXMuX2lzU2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLXBhcmFsbGVsLXN0YXJ0JylcbiAgICBnZXQgX2lzUGFyYWxsZWxTdGFydCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5tZXRhPy5wYXJhbGxlbFN0YXJ0KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tcGFyYWxsZWwtZW5kJylcbiAgICBnZXQgX2lzUGFyYWxsZWxFbmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMubWV0YT8ucGFyYWxsZWxFbmQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1maXJzdC1pbi1wYXJhbGxlbCcpXG4gICAgZ2V0IF9pc0ZpcnN0SW5QYXJhbGxlbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5tZXRhPy5pc0ZpcnN0SW5QYXJhbGxlbCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLWxhc3QtaW4tcGFyYWxsZWwnKVxuICAgIGdldCBfaXNMYXN0SW5QYXJhbGxlbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5tZXRhPy5pc0xhc3RJblBhcmFsbGVsKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgbm9kZSBpcyBibGFuayBhbmQgdGhlIGZpbmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1sYXN0LWJsYW5rJylcbiAgICBnZXQgX2xhc3RCbGFuaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JsYW5rICYmIHRoaXMubm9kZS50YXJnZXRzLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5ub2RlLnNlbGVjdGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29iamVjdFN0YXR1czogT2JqZWN0U3RhdHVzO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2hvd0R1ZURhdGVXYXJuaW5nID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kdWVJbiA9IDA7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBvbiBhZGQgbm9kZSBidXR0b24gY2xpY2tlZCwgdmFsdWUgaXMgdGhlIHBsYWNlbWVudCBmb3IgdGhlIG5ldyBub2RlICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgb25BZGQgPSBuZXcgRXZlbnRFbWl0dGVyPEFwcHJvdmFsRmxvd05vZGVUYXJnZXQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBvbiBlZGl0IG5vZGUgYnV0dG9uIGNsaWNrZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICBvbkVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBvbiBkZWxldGUgbm9kZSBidXR0b24gY2xpY2tlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIG9uRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKE1lbnVDb21wb25lbnQpXG4gICAgX21lbnU6IE1lbnVDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ292ZXJmbG93TWVudUJ1dHRvbicpXG4gICAgX292ZXJmbG93TWVudUJ1dHRvbjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnbm9kZUNvbnRlbnQnKVxuICAgIF9ub2RlQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZHJlbihBcHByb3ZhbEZsb3dEcm9wWm9uZURpcmVjdGl2ZSlcbiAgICBfZHJvcFpvbmVzOiBRdWVyeUxpc3Q8QXBwcm92YWxGbG93RHJvcFpvbmVEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKEdyaWRMaXN0SXRlbUNvbXBvbmVudClcbiAgICBfZ3JpZExpc3RJdGVtOiBHcmlkTGlzdEl0ZW1Db21wb25lbnQ8QXBwcm92YWxHcmFwaE5vZGU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBhcHByb3ZhbEZsb3dOb2RlSWQgPSAnZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0nICsgZGVmYXVsdElkKys7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyYW5zbGF0aW9uUmVzb2x2ZXIgPSBuZXcgVHJhbnNsYXRpb25SZXNvbHZlcigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9pc05vdFN0YXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhaXNOb2RlU3RhcnRlZCh0aGlzLm5vZGUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9pc0VkaXRBY3Rpb25zQXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ub2RlLnN0YXR1cyA9PT0gJ2FwcHJvdmVkJyB8fCB0aGlzLm5vZGUuc3RhdHVzID09PSAncmVqZWN0ZWQnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9hY3RpdmVEcm9wWm9uZXMoKTogQXBwcm92YWxGbG93RHJvcFpvbmVEaXJlY3RpdmVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kcm9wWm9uZXMuZmlsdGVyKCh6KSA9PiB6LmFjdGl2ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2lzQW55RHJvcFpvbmVBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVEcm9wWm9uZXMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNWZXJ0aWNhbExpbmVCZWZvcmVTb2xpZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLm1ldGE/LnBhcmVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gISF0aGlzLm1ldGE/LmlzVmVydGljYWxMaW5lQmVmb3JlU29saWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tZXRhLnBhcmVudHMuZXZlcnkoKHBhcmVudE5vZGUpID0+IGlzTm9kZUFwcHJvdmVkKHBhcmVudE5vZGUpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNWZXJ0aWNhbExpbmVBZnRlclNvbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMubm9kZT8udGFyZ2V0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXRoaXMubWV0YT8uaXNWZXJ0aWNhbExpbmVBZnRlclNvbGlkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmVydGljYWxMaW5lQmVmb3JlU29saWQgJiYgdGhpcy5hbGxOb2Rlc0luQ29sdW1uQXBwcm92ZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX3Nob3dBZGRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRWRpdCAmJiAhdGhpcy5fYmxhbmsgJiYgIXRoaXMuX3NwYWNlICYmICF0aGlzLm5vZGU/LmRpc2FibGVBY3Rpb25zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9zaG93QWZ0ZXJBbGxBZGRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRWRpdCAmJiAhdGhpcy5fc3BhY2UgJiYgIXRoaXMubm9kZT8uZGlzYWJsZUFjdGlvbnM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZHJvcFpvbmVQYXJ0aWFsKHBsYWNlbWVudDogQXBwcm92YWxGbG93Tm9kZVRhcmdldCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKCF0aGlzLl9ibGFuayAmJiAoIXRoaXMuaXNOZXh0Tm9kZUJsYW5rIHx8IHBsYWNlbWVudCA9PT0gJ2JlZm9yZScpKSB8fFxuICAgICAgICAgICAgKHRoaXMuX2xhc3RCbGFuayAmJiBwbGFjZW1lbnQgPT09ICdhZnRlci1hbGwnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoZWNrTm9kZVN0YXR1cygpO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hlY2tOb2RlU3RhdHVzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uTWVudU9wZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX21lbnUucmVmcmVzaFBvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9ncmlkTGlzdEl0ZW0/LmZvY3VzKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2RlYWN0aXZhdGVEcm9wWm9uZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Ryb3Bab25lcy5mb3JFYWNoKChkcm9wWm9uZSkgPT4gKGRyb3Bab25lLmFjdGl2ZSA9IGZhbHNlKSk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2hlY2tJZk5vZGVEcmFnZ2VkSW5Ecm9wWm9uZShub2RlUmVjdDogRE9NUmVjdCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kcm9wWm9uZXMuZm9yRWFjaCgoZHJvcFpvbmUpID0+IGRyb3Bab25lLl9jaGVja0lmTm9kZURyYWdnZWRJbkRyb3Bab25lKG5vZGVSZWN0KSk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jaGVja05vZGVTdGF0dXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5ub2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jaGVja0R1ZURhdGUgJiYgdGhpcy5ub2RlLmR1ZURhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGR1ZVRocmVzaG9sZCA9IE51bWJlcihuZXcgRGF0ZSh0aGlzLm5vZGUuZHVlRGF0ZSkpIC0gdGhpcy5kdWVEYXRlVGhyZXNob2xkICogREFZX0lOX01JTExJU0VDT05EUztcbiAgICAgICAgICAgIGNvbnN0IG5vd0FuZER1ZURpZmYgPSBEYXRlLm5vdygpIC0gZHVlVGhyZXNob2xkO1xuXG4gICAgICAgICAgICB0aGlzLl9kdWVJbiA9IE1hdGgucm91bmQobm93QW5kRHVlRGlmZiAvIERBWV9JTl9NSUxMSVNFQ09ORFMpO1xuICAgICAgICAgICAgdGhpcy5fc2hvd0R1ZURhdGVXYXJuaW5nID0gIWlzTm9kZUFwcHJvdmVkKHRoaXMubm9kZSkgJiYgZHVlVGhyZXNob2xkIDwgRGF0ZS5ub3coKTtcbiAgICAgICAgICAgIHRoaXMuX29iamVjdFN0YXR1cyA9IHRoaXMuX3Nob3dEdWVEYXRlV2FybmluZyA/ICdjcml0aWNhbCcgOiB0aGlzLl9nZXROb2RlU3RhdHVzQ2xhc3MoKTtcblxuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fb2JqZWN0U3RhdHVzID0gdGhpcy5fZ2V0Tm9kZVN0YXR1c0NsYXNzKCk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXROb2RlU3RhdHVzQ2xhc3MoKTogT2JqZWN0U3RhdHVzIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzQ29sb3JNYXBwaW5nXG4gICAgICAgICAgICAgICAgPyB0aGlzLnN0YXR1c0NvbG9yTWFwcGluZ1t0aGlzLm5vZGUuc3RhdHVzXVxuICAgICAgICAgICAgICAgIDogTk9ERV9TVEFUVVNfQ0xBU1NfTUFQW3RoaXMubm9kZS5zdGF0dXNdXG4gICAgICAgICkgYXMgT2JqZWN0U3RhdHVzO1xuICAgIH1cbn1cbiIsIkBpZiAobWV0YT8ucmVuZGVyVmVydGljYWxMaW5lQmVmb3JlKSB7XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX3ZlcnRpY2FsLWxpbmUtYmVmb3JlXCJcbiAgICAgICAgW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX3ZlcnRpY2FsLWxpbmUtYmVmb3JlLXNvbGlkXT1cIl9pc1ZlcnRpY2FsTGluZUJlZm9yZVNvbGlkXCJcbiAgICA+PC9kaXY+XG59XG5AaWYgKG1ldGE/LnJlbmRlclZlcnRpY2FsTGluZUFmdGVyKSB7XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX3ZlcnRpY2FsLWxpbmUtYWZ0ZXJcIlxuICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fdmVydGljYWwtbGluZS1hZnRlci1zb2xpZF09XCJfaXNWZXJ0aWNhbExpbmVBZnRlclNvbGlkXCJcbiAgICA+PC9kaXY+XG59XG5AaWYgKCFfYmxhbmsgJiYgIV9zcGFjZSkge1xuICAgIEBpZiAocmVuZGVyQXJyb3cpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2Fycm93XCI+PC9kaXY+XG4gICAgfVxuICAgIEBpZiAoX2lzUm9vdCAmJiBtZXRhPy5ub2RlSW5kZXggPT09IDApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2Nhcm91c2VsLXN0YXJ0LW1hcmtlclwiPjwvZGl2PlxuICAgIH1cbiAgICBAaWYgKF9pc0ZpbmFsICYmIG1ldGE/Lm5vZGVJbmRleCA9PT0gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fY2Fyb3VzZWwtZW5kLW1hcmtlclwiPjwvZGl2PlxuICAgIH1cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG59XG48bmctdGVtcGxhdGUgI292ZXJmbG93TWVudUJ1dHRvbj5cbiAgICA8IS0tIEFjdHVhbGx5IGp1c3QgdGhlIGZkLWdyaWQtaXRlbSBhY3Rpb24gYnV0dG9uIGJ1dCB3aXRoIHNvbWUgaGFyZGNvZGUgdG8gYmUgdXNlZCBhcyBtZW51IHRyaWdnZXIgLS0+XG4gICAgQGlmICghbm9kZT8uZGlzYWJsZUFjdGlvbnMpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX19tZW51LWJ1dHRvblwiXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICBnbHlwaD1cIm92ZXJmbG93XCJcbiAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZU1lbnVCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBmZENvbXBhY3RcbiAgICAgICAgICAgIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9pc0VkaXRBY3Rpb25zQXZhaWxhYmxlXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbm9kZUNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2luZm9cIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX19uYW1lXCJcbiAgICAgICAgICAgIFtjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlX19uYW1lLS1tZW1iZXJzLWNvdW50XT1cIm5vZGUuYXBwcm92ZXJzLmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgW2lkXT1cImFwcHJvdmFsRmxvd05vZGVJZFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAobm9kZS5hcHByb3ZlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAge3sgbm9kZS5hcHByb3ZlcnNbMF0ubmFtZSB9fVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVNZW1iZXJzQ291bnQnIHwgZmRUcmFuc2xhdGU6IHsgY291bnQ6IG5vZGUuYXBwcm92ZXJzLmxlbmd0aCB9IH19XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIEBpZiAoIW5vZGUudmFyaW91c1RlYW1zKSB7XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hcHByb3ZlcnMubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBub2RlLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG5vZGUuYXBwcm92ZXJzLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IG5vZGUuYXBwcm92ZXJzWzBdLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVWYXJpb3VzVGVhbXMnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdmFyaW91c1RlYW1zPiB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZVZhcmlvdXNUZWFtcycgfCBmZFRyYW5zbGF0ZSB9fSA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGZkcC1vYmplY3Qtc3RhdHVzIFtzdGF0dXNdPVwiX29iamVjdFN0YXR1c1wiIFtpbnZlcnRlZF09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRwT2JqZWN0U3RhdHVzVGV4dD5cbiAgICAgICAgICAgICAgICBAaWYgKGFwcHJvdmFsU3RhdHVzVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICghY2hlY2tEdWVEYXRlIHx8ICFfc2hvd0R1ZURhdGVXYXJuaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGFwcHJvdmFsU3RhdHVzVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYXBwcm92YWxTdGF0dXNUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IG5vZGU6IG5vZGUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICghY2hlY2tEdWVEYXRlIHx8ICFfc2hvd0R1ZURhdGVXYXJuaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAc3dpdGNoIChub2RlLnN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnYXBwcm92ZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5zdGF0dXNBcHByb3ZlZCcgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ3JlamVjdGVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cuc3RhdHVzUmVqZWN0ZWQnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdpbiBwcm9ncmVzcycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93LnN0YXR1c0luUHJvZ3Jlc3MnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdub3Qgc3RhcnRlZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93LnN0YXR1c05vdFN0YXJ0ZWQnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChjaGVja0R1ZURhdGUgJiYgX3Nob3dEdWVEYXRlV2FybmluZykge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKF9kdWVJbiA9PT0gZHVlRGF0ZVRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVTdGF0dXNEdWVUb2RheScgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoX2R1ZUluIDwgZHVlRGF0ZVRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZVN0YXR1c0R1ZUluWERheXMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZmRUcmFuc2xhdGU6IHsgY291bnQ6IGR1ZURhdGVUaHJlc2hvbGQgLSBfZHVlSW4gfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKF9kdWVJbiA+IGR1ZURhdGVUaHJlc2hvbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVTdGF0dXNYRGF5c092ZXJkdWUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZmRUcmFuc2xhdGU6IHsgY291bnQ6IF9kdWVJbiAtIGR1ZURhdGVUaHJlc2hvbGQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZmRwLW9iamVjdC1zdGF0dXM+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuQGlmIChfc2hvd0FkZEJ1dHRvbiAmJiBtZXRhPy5jYW5BZGROb2RlQmVmb3JlQWxsICYmICFub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlQWRkQmVmb3JlKSB7XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFkZE5vZGVCdXR0b25cIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBwbGFjZW1lbnQ6ICdiZWZvcmUtYWxsJyB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbn1cbkBpZiAoX3Nob3dBZGRCdXR0b24gJiYgbWV0YT8uY2FuQWRkTm9kZUJlZm9yZSAmJiAhbm9kZT8uYWN0aW9uc0NvbmZpZz8uZGlzYWJsZUFkZEJlZm9yZSkge1xuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJhZGROb2RlQnV0dG9uXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcGxhY2VtZW50OiAnYmVmb3JlJyB9XCI+PC9uZy10ZW1wbGF0ZT5cbn1cbkBpZiAoXG4gICAgX3Nob3dBZGRCdXR0b24gJiYgbWV0YT8uY2FuQWRkTm9kZUFmdGVyICYmIG1ldGE/LnJlbmRlckFkZE5vZGVBZnRlckJ1dHRvbiAmJiAhbm9kZT8uYWN0aW9uc0NvbmZpZz8uZGlzYWJsZUFkZEFmdGVyXG4pIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWRkTm9kZUJ1dHRvblwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHBsYWNlbWVudDogJ2FmdGVyJyB9XCI+PC9uZy10ZW1wbGF0ZT5cbn1cbkBpZiAoXG4gICAgX3Nob3dBZnRlckFsbEFkZEJ1dHRvbiAmJlxuICAgIG1ldGE/LmNhbkFkZE5vZGVBZnRlckFsbCAmJlxuICAgIG1ldGE/LnJlbmRlckFkZE5vZGVBZnRlckJ1dHRvbiAmJlxuICAgICFub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlQWRkQWZ0ZXJcbikge1xuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJhZGROb2RlQnV0dG9uXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcGxhY2VtZW50OiAnYWZ0ZXItYWxsJyB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbn1cbjxuZy10ZW1wbGF0ZSAjYWRkTm9kZUJ1dHRvbiBsZXQtcGxhY2VtZW50PVwicGxhY2VtZW50XCI+XG4gICAgQGlmIChub2RlLnN0YXR1cyAhPT0gJ2FwcHJvdmVkJykge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGdseXBoPVwiYWRkXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1BcHByb3ZhbEZsb3cuYWRkTm9kZUJ1dHRvblRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIGZkQ29tcGFjdFxuICAgICAgICAgICAgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX19hZGRcIlxuICAgICAgICAgICAgW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2FkZC0tYmxhbmtdPVwidGhpcy5fYmxhbmtcIlxuICAgICAgICAgICAgW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2FkZC0tYmVmb3JlXT1cIlxuICAgICAgICAgICAgICAgICF0aGlzLl9ibGFuayAmJiAocGxhY2VtZW50ID09PSAnYmVmb3JlJyB8fCBwbGFjZW1lbnQgPT09ICdiZWZvcmUtYWxsJylcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fYWRkLS1iZWZvcmUtYWxsXT1cIiF0aGlzLl9ibGFuayAmJiBwbGFjZW1lbnQgPT09ICdiZWZvcmUtYWxsJ1wiXG4gICAgICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fYWRkLS1hZnRlcl09XCJcbiAgICAgICAgICAgICAgICAhdGhpcy5fYmxhbmsgJiYgKHBsYWNlbWVudCA9PT0gJ2FmdGVyJyB8fCBwbGFjZW1lbnQgPT09ICdhZnRlci1hbGwnKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlX19hZGQtLWFmdGVyLWFsbF09XCJwbGFjZW1lbnQgPT09ICdhZnRlci1hbGwnXCJcbiAgICAgICAgICAgIFtzdHlsZS52aXNpYmlsaXR5XT1cImRyb3Bab25lLmFjdGl2ZSA/ICdoaWRkZW4nIDogJydcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWRkLmVtaXQocGxhY2VtZW50KVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICB9XG4gICAgPGRpdlxuICAgICAgICAjZHJvcFpvbmU9XCJmZHAtYXBwcm92YWwtZmxvdy1kcm9wLXpvbmVcIlxuICAgICAgICBmZHAtYXBwcm92YWwtZmxvdy1kcm9wLXpvbmVcbiAgICAgICAgW3BsYWNlbWVudF09XCJwbGFjZW1lbnRcIlxuICAgICAgICBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2Ryb3Atem9uZVwiXG4gICAgICAgIFtjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlX19kcm9wLXpvbmUtLWFjdGl2ZV09XCJkcm9wWm9uZS5hY3RpdmVcIlxuICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fZHJvcC16b25lLS1ibGFua109XCJpc05leHROb2RlQmxhbmtcIlxuICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fZHJvcC16b25lLS1wYXJ0aWFsXT1cIl9kcm9wWm9uZVBhcnRpYWwocGxhY2VtZW50KVwiXG4gICAgPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxmZC1tZW51ICNtZW51IGZkQ29udGVudERlbnNpdHkgcGxhY2VtZW50PVwiYm90dG9tLWVuZFwiIChpc09wZW5DaGFuZ2UpPVwiX29uTWVudU9wZW4oKVwiPlxuICAgIEBpZiAobWV0YT8uY2FuQWRkTm9kZUJlZm9yZSAmJiAhdGhpcy5ub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlQWRkQmVmb3JlKSB7XG4gICAgICAgIDxsaSBmZC1tZW51LWl0ZW0gKGNsaWNrKT1cIm1lbnUuY2xvc2UoKTsgb25BZGQuZW1pdCgnYmVmb3JlJylcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5ub2RlQWN0aW9uQWRkQXBwcm92ZXJzQmVmb3JlJyB8IGZkVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuICAgIEBpZiAobWV0YT8uY2FuQWRkTm9kZUFmdGVyICYmICF0aGlzLm5vZGU/LmFjdGlvbnNDb25maWc/LmRpc2FibGVBZGRBZnRlcikge1xuICAgICAgICA8bGkgZmQtbWVudS1pdGVtIChjbGljayk9XCJtZW51LmNsb3NlKCk7IG9uQWRkLmVtaXQoJ2FmdGVyJylcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5ub2RlQWN0aW9uQWRkQXBwcm92ZXJzQWZ0ZXInIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICB9XG4gICAgQGlmIChtZXRhPy5jYW5BZGRQYXJhbGxlbCAmJiAhdGhpcy5ub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlQWRkUGFyYWxsZWwpIHtcbiAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSAoY2xpY2spPVwibWVudS5jbG9zZSgpOyBvbkFkZC5lbWl0KCdwYXJhbGxlbCcpXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT57eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZUFjdGlvbkFkZEFwcHJvdmVyc1BhcmFsbGVsJyB8IGZkVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuICAgIEBpZiAoX2lzTm90U3RhcnRlZCAmJiAhdGhpcy5ub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlRWRpdCkge1xuICAgICAgICA8bGkgZmQtbWVudS1pdGVtIChjbGljayk9XCJtZW51LmNsb3NlKCk7IG9uRWRpdC5lbWl0KClcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPiB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZUFjdGlvbkVkaXRBcHByb3ZlcicgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgIH1cbiAgICBAaWYgKCF0aGlzLm5vZGU/LmFjdGlvbnNDb25maWc/LmRpc2FibGVSZW1vdmUpIHtcbiAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSAoY2xpY2spPVwibWVudS5jbG9zZSgpOyBvbkRlbGV0ZS5lbWl0KClcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPiB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZUFjdGlvblJlbW92ZScgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgIH1cbjwvZmQtbWVudT5cbiJdfQ==
|
|
347
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy1ub2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXBwcm92YWwtZmxvdy9hcHByb3ZhbC1mbG93LW5vZGUvYXBwcm92YWwtZmxvdy1ub2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXBwcm92YWwtZmxvdy9hcHByb3ZhbC1mbG93LW5vZGUvYXBwcm92YWwtZmxvdy1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDdkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUs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QUFXO3VCQUFDLDhDQUE4QztnQkFPdkQsY0FBYztzQkFEakIsV0FBVzt1QkFBQyw0Q0FBNEM7Z0JBT3JELGtCQUFrQjtzQkFEckIsV0FBVzt1QkFBQyxpREFBaUQ7Z0JBTzFELGlCQUFpQjtzQkFEcEIsV0FBVzt1QkFBQyxnREFBZ0Q7Z0JBT3pELFVBQVU7c0JBRGIsV0FBVzt1QkFBQywwQ0FBMEM7O1FBcUJ2RCwrREFBK0Q7UUFDL0QsS0FBSztzQkFGSixNQUFNOztRQU1QLCtEQUErRDtRQUMvRCxNQUFNO3NCQUZMLE1BQU07O1FBTVAsK0RBQStEO1FBQy9ELFFBQVE7c0JBRlAsTUFBTTtnQkFNUCxLQUFLO3NCQURKLFNBQVM7dUJBQUMsYUFBYTtnQkFLeEIsbUJBQW1CO3NCQURsQixTQUFTO3VCQUFDLG9CQUFvQjtnQkFLL0IsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGFBQWE7Z0JBS3hCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyw2QkFBNkI7Z0JBSzNDLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBHcmlkTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZ3JpZC1saXN0JztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVudSc7XG5pbXBvcnQgeyBPYmplY3RTdGF0dXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvb2JqZWN0LXN0YXR1cyc7XG5cbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHtcbiAgICBNZW51SW50ZXJhY3RpdmVDb21wb25lbnQsXG4gICAgTWVudUl0ZW1Db21wb25lbnQsXG4gICAgTWVudVRpdGxlRGlyZWN0aXZlLFxuICAgIE1lbnVUcmlnZ2VyRGlyZWN0aXZlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tZW51JztcbmltcG9ydCB7IEZkVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRpb25SZXNvbHZlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBPYmplY3RTdGF0dXNDb21wb25lbnQsIFBsYXRmb3JtT2JqZWN0U3RhdHVzVGV4dERpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vb2JqZWN0LXN0YXR1cyc7XG5pbXBvcnQgeyBBcHByb3ZhbEZsb3dOb2RlVGFyZ2V0IH0gZnJvbSAnLi4vYXBwcm92YWwtZmxvdy1hZGQtbm9kZS9hcHByb3ZhbC1mbG93LWFkZC1ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpc05vZGVBcHByb3ZlZCwgaXNOb2RlU3RhcnRlZCB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgQXBwcm92YWxHcmFwaE5vZGUsIEFwcHJvdmFsR3JhcGhOb2RlTWV0YWRhdGEsIEFwcHJvdmFsU3RhdHVzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBcHByb3ZhbEZsb3dEcm9wWm9uZURpcmVjdGl2ZSB9IGZyb20gJy4vYXBwcm92YWwtZmxvdy1kcm9wLXpvbmUuZGlyZWN0aXZlJztcblxuY29uc3QgTk9ERV9TVEFUVVNfQ0xBU1NfTUFQID0ge1xuICAgIGFwcHJvdmVkOiAncG9zaXRpdmUnLFxuICAgIHJlamVjdGVkOiAnbmVnYXRpdmUnLFxuICAgICdpbiBwcm9ncmVzcyc6ICdpbmZvcm1hdGl2ZScsXG4gICAgJ25vdCBzdGFydGVkJzogJydcbn07XG5cbmNvbnN0IERBWV9JTl9NSUxMSVNFQ09ORFMgPSAxMDAwICogNjAgKiA2MCAqIDI0O1xuXG5sZXQgZGVmYXVsdElkID0gMDtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogQXBwcm92YWxGbG93Tm9kZSBjb21wb25lbnQgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDAuNDAuMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1hcHByb3ZhbC1mbG93LW5vZGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1mbG93LW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9hcHByb3ZhbC1mbG93LW5vZGUuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkcC1hcHByb3ZhbC1mbG93LW5vZGUnLFxuICAgICAgICAnW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLWZpcnN0LXJvb3RdJzogJ21ldGE/LmZpcnN0T2ZNdWx0aXBsZVJvb3ROb2RlcycsXG4gICAgICAgICdbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tZmlyc3QtZmluYWxdJzogJ21ldGE/LmZpcnN0T2ZNdWx0aXBsZUZpbmFsTm9kZXMnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSxcbiAgICAgICAgTWVudVRyaWdnZXJEaXJlY3RpdmUsXG4gICAgICAgIE9iamVjdFN0YXR1c0NvbXBvbmVudCxcbiAgICAgICAgUGxhdGZvcm1PYmplY3RTdGF0dXNUZXh0RGlyZWN0aXZlLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBBcHByb3ZhbEZsb3dEcm9wWm9uZURpcmVjdGl2ZSxcbiAgICAgICAgTWVudUNvbXBvbmVudCxcbiAgICAgICAgTWVudUl0ZW1Db21wb25lbnQsXG4gICAgICAgIE1lbnVJbnRlcmFjdGl2ZUNvbXBvbmVudCxcbiAgICAgICAgTWVudVRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBGZFRyYW5zbGF0ZVBpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsRmxvd05vZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICAvKiogQXBwcm92YWwgZmxvdyBncmFwaCBub2RlICovXG4gICAgQElucHV0KCkgbm9kZTogQXBwcm92YWxHcmFwaE5vZGU7XG5cbiAgICAvKiogTm9kZSBtZXRhZGF0YSAqL1xuICAgIEBJbnB1dCgpIG1ldGE6IEFwcHJvdmFsR3JhcGhOb2RlTWV0YWRhdGE7XG5cbiAgICAvKiogV2hldGhlciBub2RlIGVsZW1lbnQgaGFzIGFycm93IG9uIHRoZSBsZWZ0IHNpZGUgcG9pbnRpbmcgdG8gdGhlIG5vZGUgKi9cbiAgICBASW5wdXQoKSByZW5kZXJBcnJvdyA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSBkdWUgZGF0ZSB3YXJuaW5nIGluIHN0YXR1cyAqL1xuICAgIEBJbnB1dCgpIGNoZWNrRHVlRGF0ZSA9IGZhbHNlO1xuXG4gICAgLyoqIE51bWJlciBvZiBkYXlzIGJlZm9yZSBkdWUgZGF0ZSB3aGVuIHN0YXR1cyBjaGFuZ2VzIHRvIGB3YXJuaW5nYCB3aXRoIHRleHQgJ0R1ZSBpbiBYIGRheXMnLlxuICAgICAqICBOb3QgdXNlZCBpZiAnY2hlY2tEdWVEYXRlJyBlcXVhbHMgZmFsc2UgKi9cbiAgICBASW5wdXQoKSBkdWVEYXRlVGhyZXNob2xkID0gNztcblxuICAgIC8qKiBXaGV0aGVyIG5vZGVzIGluIGNvbHVtbiBpbiB3aGljaCBjdXJyZW50IG5vZGUgcGxhY2VkIGFyZSBhcHByb3ZlZFxuICAgICAqICBVc2VkIHRvIHJlbmRlciBhcHByb3ByaWF0ZSB2ZXJ0aWNhbCBsaW5lIGFmdGVyIChkYXNoZWQvc29saWQpXG4gICAgICovXG4gICAgQElucHV0KCkgYWxsTm9kZXNJbkNvbHVtbkFwcHJvdmVkID0gZmFsc2U7XG5cbiAgICAvKiogQSByZWZlcmVuY2UgdG8gdGhlIGFwcCBjdXN0b20gc3RhdHVzZXMgKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcHJvdmFsU3RhdHVzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQ3VzdG9tIHN0YXR1cyB0byBjb2xvciBtYXBwaW5nICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdHVzQ29sb3JNYXBwaW5nOiBSZWNvcmQ8QXBwcm92YWxTdGF0dXMsIE9iamVjdFN0YXR1cz47XG5cbiAgICAvKiogV2hldGhlciB0aGUgbm9kZSBpcyBpbiBlZGl0IG1vZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tZWRpdC1tb2RlJylcbiAgICBpc0VkaXQ6IGJvb2xlYW47XG5cbiAgICAvKiogV2hldGhlciB0aGUgbm9kZSBhZnRlciBpcyBibGFuayAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1uZXh0LWJsYW5rJylcbiAgICBpc05leHROb2RlQmxhbms6IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tYmxhbmsnKVxuICAgIGdldCBfYmxhbmsoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubm9kZT8uYmxhbms7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLXNwYWNlJylcbiAgICBnZXQgX3NwYWNlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLm5vZGU/LnNwYWNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1yb290JylcbiAgICBnZXQgX2lzUm9vdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWV0YT8uaXNSb290O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1maW5hbCcpXG4gICAgZ2V0IF9pc0ZpbmFsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXRhPy5pc0ZpbmFsO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1saW5lLWJlZm9yZScpXG4gICAgZ2V0IF9yZW5kZXJMaW5lQmVmb3JlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMubm9kZT8uYmxhbms7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLWxpbmUtYWZ0ZXInKVxuICAgIGdldCBfcmVuZGVyTGluZUFmdGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMubm9kZT8uYmxhbmsgfHwgdGhpcy5faXNGaW5hbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tYXBwcm92ZWQnKVxuICAgIGdldCBfaXNBcHByb3ZlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZSAmJiBpc05vZGVBcHByb3ZlZCh0aGlzLm5vZGUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1wYXJlbnQtYXBwcm92ZWQnKVxuICAgIGdldCBfaXNQYXJlbnRBcHByb3ZlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLm1ldGE/LnBhcmVudHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuICEhdGhpcy5tZXRhPy5yb290Tm9kZXNBcHByb3ZlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1ldGEucGFyZW50cy5ldmVyeSgobm9kZSkgPT4gaXNOb2RlQXBwcm92ZWQobm9kZSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1zZWxlY3RlZCcpXG4gICAgZ2V0IF9pc05vZGVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFZGl0ICYmIHRoaXMuX2lzU2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLXBhcmFsbGVsLXN0YXJ0JylcbiAgICBnZXQgX2lzUGFyYWxsZWxTdGFydCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5tZXRhPy5wYXJhbGxlbFN0YXJ0KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0tcGFyYWxsZWwtZW5kJylcbiAgICBnZXQgX2lzUGFyYWxsZWxFbmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMubWV0YT8ucGFyYWxsZWxFbmQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1maXJzdC1pbi1wYXJhbGxlbCcpXG4gICAgZ2V0IF9pc0ZpcnN0SW5QYXJhbGxlbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5tZXRhPy5pc0ZpcnN0SW5QYXJhbGxlbCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGUtLWxhc3QtaW4tcGFyYWxsZWwnKVxuICAgIGdldCBfaXNMYXN0SW5QYXJhbGxlbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5tZXRhPy5pc0xhc3RJblBhcmFsbGVsKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgbm9kZSBpcyBibGFuayBhbmQgdGhlIGZpbmFsICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlLS1sYXN0LWJsYW5rJylcbiAgICBnZXQgX2xhc3RCbGFuaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JsYW5rICYmIHRoaXMubm9kZS50YXJnZXRzLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5ub2RlLnNlbGVjdGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29iamVjdFN0YXR1czogT2JqZWN0U3RhdHVzO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2hvd0R1ZURhdGVXYXJuaW5nID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kdWVJbiA9IDA7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBvbiBhZGQgbm9kZSBidXR0b24gY2xpY2tlZCwgdmFsdWUgaXMgdGhlIHBsYWNlbWVudCBmb3IgdGhlIG5ldyBub2RlICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgb25BZGQgPSBuZXcgRXZlbnRFbWl0dGVyPEFwcHJvdmFsRmxvd05vZGVUYXJnZXQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBvbiBlZGl0IG5vZGUgYnV0dG9uIGNsaWNrZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICBvbkVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBvbiBkZWxldGUgbm9kZSBidXR0b24gY2xpY2tlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIG9uRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKE1lbnVDb21wb25lbnQpXG4gICAgX21lbnU6IE1lbnVDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ292ZXJmbG93TWVudUJ1dHRvbicpXG4gICAgX292ZXJmbG93TWVudUJ1dHRvbjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnbm9kZUNvbnRlbnQnKVxuICAgIF9ub2RlQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZHJlbihBcHByb3ZhbEZsb3dEcm9wWm9uZURpcmVjdGl2ZSlcbiAgICBfZHJvcFpvbmVzOiBRdWVyeUxpc3Q8QXBwcm92YWxGbG93RHJvcFpvbmVEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKEdyaWRMaXN0SXRlbUNvbXBvbmVudClcbiAgICBfZ3JpZExpc3RJdGVtOiBHcmlkTGlzdEl0ZW1Db21wb25lbnQ8QXBwcm92YWxHcmFwaE5vZGU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBhcHByb3ZhbEZsb3dOb2RlSWQgPSAnZmRwLWFwcHJvdmFsLWZsb3ctbm9kZS0nICsgZGVmYXVsdElkKys7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyYW5zbGF0aW9uUmVzb2x2ZXIgPSBuZXcgVHJhbnNsYXRpb25SZXNvbHZlcigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9pc05vdFN0YXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhaXNOb2RlU3RhcnRlZCh0aGlzLm5vZGUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9pc0VkaXRBY3Rpb25zQXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ub2RlLnN0YXR1cyA9PT0gJ2FwcHJvdmVkJyB8fCB0aGlzLm5vZGUuc3RhdHVzID09PSAncmVqZWN0ZWQnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9hY3RpdmVEcm9wWm9uZXMoKTogQXBwcm92YWxGbG93RHJvcFpvbmVEaXJlY3RpdmVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kcm9wWm9uZXMuZmlsdGVyKCh6KSA9PiB6LmFjdGl2ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2lzQW55RHJvcFpvbmVBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVEcm9wWm9uZXMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNWZXJ0aWNhbExpbmVCZWZvcmVTb2xpZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLm1ldGE/LnBhcmVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gISF0aGlzLm1ldGE/LmlzVmVydGljYWxMaW5lQmVmb3JlU29saWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tZXRhLnBhcmVudHMuZXZlcnkoKHBhcmVudE5vZGUpID0+IGlzTm9kZUFwcHJvdmVkKHBhcmVudE5vZGUpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNWZXJ0aWNhbExpbmVBZnRlclNvbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMubm9kZT8udGFyZ2V0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXRoaXMubWV0YT8uaXNWZXJ0aWNhbExpbmVBZnRlclNvbGlkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmVydGljYWxMaW5lQmVmb3JlU29saWQgJiYgdGhpcy5hbGxOb2Rlc0luQ29sdW1uQXBwcm92ZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX3Nob3dBZGRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRWRpdCAmJiAhdGhpcy5fYmxhbmsgJiYgIXRoaXMuX3NwYWNlICYmICF0aGlzLm5vZGU/LmRpc2FibGVBY3Rpb25zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9zaG93QWZ0ZXJBbGxBZGRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRWRpdCAmJiAhdGhpcy5fc3BhY2UgJiYgIXRoaXMubm9kZT8uZGlzYWJsZUFjdGlvbnM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZHJvcFpvbmVQYXJ0aWFsKHBsYWNlbWVudDogQXBwcm92YWxGbG93Tm9kZVRhcmdldCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKCF0aGlzLl9ibGFuayAmJiAoIXRoaXMuaXNOZXh0Tm9kZUJsYW5rIHx8IHBsYWNlbWVudCA9PT0gJ2JlZm9yZScpKSB8fFxuICAgICAgICAgICAgKHRoaXMuX2xhc3RCbGFuayAmJiBwbGFjZW1lbnQgPT09ICdhZnRlci1hbGwnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoZWNrTm9kZVN0YXR1cygpO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hlY2tOb2RlU3RhdHVzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uTWVudU9wZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX21lbnUucmVmcmVzaFBvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9ncmlkTGlzdEl0ZW0/LmZvY3VzKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2RlYWN0aXZhdGVEcm9wWm9uZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Ryb3Bab25lcy5mb3JFYWNoKChkcm9wWm9uZSkgPT4gKGRyb3Bab25lLmFjdGl2ZSA9IGZhbHNlKSk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2hlY2tJZk5vZGVEcmFnZ2VkSW5Ecm9wWm9uZShub2RlUmVjdDogRE9NUmVjdCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kcm9wWm9uZXMuZm9yRWFjaCgoZHJvcFpvbmUpID0+IGRyb3Bab25lLl9jaGVja0lmTm9kZURyYWdnZWRJbkRyb3Bab25lKG5vZGVSZWN0KSk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jaGVja05vZGVTdGF0dXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5ub2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jaGVja0R1ZURhdGUgJiYgdGhpcy5ub2RlLmR1ZURhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGR1ZVRocmVzaG9sZCA9IE51bWJlcihuZXcgRGF0ZSh0aGlzLm5vZGUuZHVlRGF0ZSkpIC0gdGhpcy5kdWVEYXRlVGhyZXNob2xkICogREFZX0lOX01JTExJU0VDT05EUztcbiAgICAgICAgICAgIGNvbnN0IG5vd0FuZER1ZURpZmYgPSBEYXRlLm5vdygpIC0gZHVlVGhyZXNob2xkO1xuXG4gICAgICAgICAgICB0aGlzLl9kdWVJbiA9IE1hdGgucm91bmQobm93QW5kRHVlRGlmZiAvIERBWV9JTl9NSUxMSVNFQ09ORFMpO1xuICAgICAgICAgICAgdGhpcy5fc2hvd0R1ZURhdGVXYXJuaW5nID0gIWlzTm9kZUFwcHJvdmVkKHRoaXMubm9kZSkgJiYgZHVlVGhyZXNob2xkIDwgRGF0ZS5ub3coKTtcbiAgICAgICAgICAgIHRoaXMuX29iamVjdFN0YXR1cyA9IHRoaXMuX3Nob3dEdWVEYXRlV2FybmluZyA/ICdjcml0aWNhbCcgOiB0aGlzLl9nZXROb2RlU3RhdHVzQ2xhc3MoKTtcblxuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fb2JqZWN0U3RhdHVzID0gdGhpcy5fZ2V0Tm9kZVN0YXR1c0NsYXNzKCk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXROb2RlU3RhdHVzQ2xhc3MoKTogT2JqZWN0U3RhdHVzIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzQ29sb3JNYXBwaW5nXG4gICAgICAgICAgICAgICAgPyB0aGlzLnN0YXR1c0NvbG9yTWFwcGluZ1t0aGlzLm5vZGUuc3RhdHVzXVxuICAgICAgICAgICAgICAgIDogTk9ERV9TVEFUVVNfQ0xBU1NfTUFQW3RoaXMubm9kZS5zdGF0dXNdXG4gICAgICAgICkgYXMgT2JqZWN0U3RhdHVzO1xuICAgIH1cbn1cbiIsIkBpZiAobWV0YT8ucmVuZGVyVmVydGljYWxMaW5lQmVmb3JlKSB7XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX3ZlcnRpY2FsLWxpbmUtYmVmb3JlXCJcbiAgICAgICAgW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX3ZlcnRpY2FsLWxpbmUtYmVmb3JlLXNvbGlkXT1cIl9pc1ZlcnRpY2FsTGluZUJlZm9yZVNvbGlkXCJcbiAgICA+PC9kaXY+XG59XG5AaWYgKG1ldGE/LnJlbmRlclZlcnRpY2FsTGluZUFmdGVyKSB7XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX3ZlcnRpY2FsLWxpbmUtYWZ0ZXJcIlxuICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fdmVydGljYWwtbGluZS1hZnRlci1zb2xpZF09XCJfaXNWZXJ0aWNhbExpbmVBZnRlclNvbGlkXCJcbiAgICA+PC9kaXY+XG59XG5AaWYgKCFfYmxhbmsgJiYgIV9zcGFjZSkge1xuICAgIEBpZiAocmVuZGVyQXJyb3cpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2Fycm93XCI+PC9kaXY+XG4gICAgfVxuICAgIEBpZiAoX2lzUm9vdCAmJiBtZXRhPy5ub2RlSW5kZXggPT09IDApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2Nhcm91c2VsLXN0YXJ0LW1hcmtlclwiPjwvZGl2PlxuICAgIH1cbiAgICBAaWYgKF9pc0ZpbmFsICYmIG1ldGE/Lm5vZGVJbmRleCA9PT0gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fY2Fyb3VzZWwtZW5kLW1hcmtlclwiPjwvZGl2PlxuICAgIH1cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG59XG48bmctdGVtcGxhdGUgI292ZXJmbG93TWVudUJ1dHRvbj5cbiAgICA8IS0tIEFjdHVhbGx5IGp1c3QgdGhlIGZkLWdyaWQtaXRlbSBhY3Rpb24gYnV0dG9uIGJ1dCB3aXRoIHNvbWUgaGFyZGNvZGUgdG8gYmUgdXNlZCBhcyBtZW51IHRyaWdnZXIgLS0+XG4gICAgQGlmICghbm9kZT8uZGlzYWJsZUFjdGlvbnMpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX19tZW51LWJ1dHRvblwiXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICBnbHlwaD1cIm92ZXJmbG93XCJcbiAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZU1lbnVCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBmZENvbXBhY3RcbiAgICAgICAgICAgIFtmZE1lbnVUcmlnZ2VyXT1cIm1lbnVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9pc0VkaXRBY3Rpb25zQXZhaWxhYmxlXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbm9kZUNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2luZm9cIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX19uYW1lXCJcbiAgICAgICAgICAgIFtjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlX19uYW1lLS1tZW1iZXJzLWNvdW50XT1cIm5vZGUuYXBwcm92ZXJzLmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgW2lkXT1cImFwcHJvdmFsRmxvd05vZGVJZFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAobm9kZS5hcHByb3ZlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAge3sgbm9kZS5hcHByb3ZlcnNbMF0ubmFtZSB9fVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVNZW1iZXJzQ291bnQnIHwgZmRUcmFuc2xhdGU6IHsgY291bnQ6IG5vZGUuYXBwcm92ZXJzLmxlbmd0aCB9IH19XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIEBpZiAoIW5vZGUudmFyaW91c1RlYW1zKSB7XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hcHByb3ZlcnMubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBub2RlLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG5vZGUuYXBwcm92ZXJzLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IG5vZGUuYXBwcm92ZXJzWzBdLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVWYXJpb3VzVGVhbXMnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdmFyaW91c1RlYW1zPiB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZVZhcmlvdXNUZWFtcycgfCBmZFRyYW5zbGF0ZSB9fSA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGZkcC1vYmplY3Qtc3RhdHVzIFtzdGF0dXNdPVwiX29iamVjdFN0YXR1c1wiIFtpbnZlcnRlZF09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRwT2JqZWN0U3RhdHVzVGV4dD5cbiAgICAgICAgICAgICAgICBAaWYgKGFwcHJvdmFsU3RhdHVzVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICghY2hlY2tEdWVEYXRlIHx8ICFfc2hvd0R1ZURhdGVXYXJuaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGFwcHJvdmFsU3RhdHVzVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYXBwcm92YWxTdGF0dXNUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IG5vZGU6IG5vZGUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICghY2hlY2tEdWVEYXRlIHx8ICFfc2hvd0R1ZURhdGVXYXJuaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAc3dpdGNoIChub2RlLnN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnYXBwcm92ZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5zdGF0dXNBcHByb3ZlZCcgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ3JlamVjdGVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cuc3RhdHVzUmVqZWN0ZWQnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdpbiBwcm9ncmVzcycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93LnN0YXR1c0luUHJvZ3Jlc3MnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdub3Qgc3RhcnRlZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93LnN0YXR1c05vdFN0YXJ0ZWQnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChjaGVja0R1ZURhdGUgJiYgX3Nob3dEdWVEYXRlV2FybmluZykge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKF9kdWVJbiA9PT0gZHVlRGF0ZVRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVTdGF0dXNEdWVUb2RheScgfCBmZFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoX2R1ZUluIDwgZHVlRGF0ZVRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZVN0YXR1c0R1ZUluWERheXMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZmRUcmFuc2xhdGU6IHsgY291bnQ6IGR1ZURhdGVUaHJlc2hvbGQgLSBfZHVlSW4gfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKF9kdWVJbiA+IGR1ZURhdGVUaHJlc2hvbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3JtQXBwcm92YWxGbG93Lm5vZGVTdGF0dXNYRGF5c092ZXJkdWUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZmRUcmFuc2xhdGU6IHsgY291bnQ6IF9kdWVJbiAtIGR1ZURhdGVUaHJlc2hvbGQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZmRwLW9iamVjdC1zdGF0dXM+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuQGlmIChfc2hvd0FkZEJ1dHRvbiAmJiBtZXRhPy5jYW5BZGROb2RlQmVmb3JlQWxsICYmICFub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlQWRkQmVmb3JlKSB7XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFkZE5vZGVCdXR0b25cIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBwbGFjZW1lbnQ6ICdiZWZvcmUtYWxsJyB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbn1cbkBpZiAoX3Nob3dBZGRCdXR0b24gJiYgbWV0YT8uY2FuQWRkTm9kZUJlZm9yZSAmJiAhbm9kZT8uYWN0aW9uc0NvbmZpZz8uZGlzYWJsZUFkZEJlZm9yZSkge1xuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJhZGROb2RlQnV0dG9uXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcGxhY2VtZW50OiAnYmVmb3JlJyB9XCI+PC9uZy10ZW1wbGF0ZT5cbn1cbkBpZiAoXG4gICAgX3Nob3dBZGRCdXR0b24gJiYgbWV0YT8uY2FuQWRkTm9kZUFmdGVyICYmIG1ldGE/LnJlbmRlckFkZE5vZGVBZnRlckJ1dHRvbiAmJiAhbm9kZT8uYWN0aW9uc0NvbmZpZz8uZGlzYWJsZUFkZEFmdGVyXG4pIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWRkTm9kZUJ1dHRvblwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHBsYWNlbWVudDogJ2FmdGVyJyB9XCI+PC9uZy10ZW1wbGF0ZT5cbn1cbkBpZiAoXG4gICAgX3Nob3dBZnRlckFsbEFkZEJ1dHRvbiAmJlxuICAgIG1ldGE/LmNhbkFkZE5vZGVBZnRlckFsbCAmJlxuICAgIG1ldGE/LnJlbmRlckFkZE5vZGVBZnRlckJ1dHRvbiAmJlxuICAgICFub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlQWRkQWZ0ZXJcbikge1xuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJhZGROb2RlQnV0dG9uXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgcGxhY2VtZW50OiAnYWZ0ZXItYWxsJyB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbn1cbjxuZy10ZW1wbGF0ZSAjYWRkTm9kZUJ1dHRvbiBsZXQtcGxhY2VtZW50PVwicGxhY2VtZW50XCI+XG4gICAgQGlmIChub2RlLnN0YXR1cyAhPT0gJ2FwcHJvdmVkJykge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGdseXBoPVwiYWRkXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1BcHByb3ZhbEZsb3cuYWRkTm9kZUJ1dHRvblRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIGZkQ29tcGFjdFxuICAgICAgICAgICAgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy1ub2RlX19hZGRcIlxuICAgICAgICAgICAgW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2FkZC0tYmxhbmtdPVwidGhpcy5fYmxhbmtcIlxuICAgICAgICAgICAgW2NsYXNzLmZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2FkZC0tYmVmb3JlXT1cIlxuICAgICAgICAgICAgICAgICF0aGlzLl9ibGFuayAmJiAocGxhY2VtZW50ID09PSAnYmVmb3JlJyB8fCBwbGFjZW1lbnQgPT09ICdiZWZvcmUtYWxsJylcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fYWRkLS1iZWZvcmUtYWxsXT1cIiF0aGlzLl9ibGFuayAmJiBwbGFjZW1lbnQgPT09ICdiZWZvcmUtYWxsJ1wiXG4gICAgICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fYWRkLS1hZnRlcl09XCJcbiAgICAgICAgICAgICAgICAhdGhpcy5fYmxhbmsgJiYgKHBsYWNlbWVudCA9PT0gJ2FmdGVyJyB8fCBwbGFjZW1lbnQgPT09ICdhZnRlci1hbGwnKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlX19hZGQtLWFmdGVyLWFsbF09XCJwbGFjZW1lbnQgPT09ICdhZnRlci1hbGwnXCJcbiAgICAgICAgICAgIFtzdHlsZS52aXNpYmlsaXR5XT1cImRyb3Bab25lLmFjdGl2ZSA/ICdoaWRkZW4nIDogJydcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWRkLmVtaXQocGxhY2VtZW50KVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICB9XG4gICAgPGRpdlxuICAgICAgICAjZHJvcFpvbmU9XCJmZHAtYXBwcm92YWwtZmxvdy1kcm9wLXpvbmVcIlxuICAgICAgICBmZHAtYXBwcm92YWwtZmxvdy1kcm9wLXpvbmVcbiAgICAgICAgW3BsYWNlbWVudF09XCJwbGFjZW1lbnRcIlxuICAgICAgICBjbGFzcz1cImZkcC1hcHByb3ZhbC1mbG93LW5vZGVfX2Ryb3Atem9uZVwiXG4gICAgICAgIFtjbGFzcy5mZHAtYXBwcm92YWwtZmxvdy1ub2RlX19kcm9wLXpvbmUtLWFjdGl2ZV09XCJkcm9wWm9uZS5hY3RpdmVcIlxuICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fZHJvcC16b25lLS1ibGFua109XCJpc05leHROb2RlQmxhbmtcIlxuICAgICAgICBbY2xhc3MuZmRwLWFwcHJvdmFsLWZsb3ctbm9kZV9fZHJvcC16b25lLS1wYXJ0aWFsXT1cIl9kcm9wWm9uZVBhcnRpYWwocGxhY2VtZW50KVwiXG4gICAgPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxmZC1tZW51ICNtZW51IGZkQ29udGVudERlbnNpdHkgcGxhY2VtZW50PVwiYm90dG9tLWVuZFwiIChpc09wZW5DaGFuZ2UpPVwiX29uTWVudU9wZW4oKVwiPlxuICAgIEBpZiAobWV0YT8uY2FuQWRkTm9kZUJlZm9yZSAmJiAhdGhpcy5ub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlQWRkQmVmb3JlKSB7XG4gICAgICAgIDxsaSBmZC1tZW51LWl0ZW0gKGNsaWNrKT1cIm1lbnUuY2xvc2UoKTsgb25BZGQuZW1pdCgnYmVmb3JlJylcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5ub2RlQWN0aW9uQWRkQXBwcm92ZXJzQmVmb3JlJyB8IGZkVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuICAgIEBpZiAobWV0YT8uY2FuQWRkTm9kZUFmdGVyICYmICF0aGlzLm5vZGU/LmFjdGlvbnNDb25maWc/LmRpc2FibGVBZGRBZnRlcikge1xuICAgICAgICA8bGkgZmQtbWVudS1pdGVtIChjbGljayk9XCJtZW51LmNsb3NlKCk7IG9uQWRkLmVtaXQoJ2FmdGVyJylcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPnt7ICdwbGF0Zm9ybUFwcHJvdmFsRmxvdy5ub2RlQWN0aW9uQWRkQXBwcm92ZXJzQWZ0ZXInIHwgZmRUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICB9XG4gICAgQGlmIChtZXRhPy5jYW5BZGRQYXJhbGxlbCAmJiAhdGhpcy5ub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlQWRkUGFyYWxsZWwpIHtcbiAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSAoY2xpY2spPVwibWVudS5jbG9zZSgpOyBvbkFkZC5lbWl0KCdwYXJhbGxlbCcpXCI+XG4gICAgICAgICAgICA8ZGl2IGZkLW1lbnUtaW50ZXJhY3RpdmU+XG4gICAgICAgICAgICAgICAgPHNwYW4gZmQtbWVudS10aXRsZT57eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZUFjdGlvbkFkZEFwcHJvdmVyc1BhcmFsbGVsJyB8IGZkVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuICAgIEBpZiAoX2lzTm90U3RhcnRlZCAmJiAhdGhpcy5ub2RlPy5hY3Rpb25zQ29uZmlnPy5kaXNhYmxlRWRpdCkge1xuICAgICAgICA8bGkgZmQtbWVudS1pdGVtIChjbGljayk9XCJtZW51LmNsb3NlKCk7IG9uRWRpdC5lbWl0KClcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPiB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZUFjdGlvbkVkaXRBcHByb3ZlcicgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgIH1cbiAgICBAaWYgKCF0aGlzLm5vZGU/LmFjdGlvbnNDb25maWc/LmRpc2FibGVSZW1vdmUpIHtcbiAgICAgICAgPGxpIGZkLW1lbnUtaXRlbSAoY2xpY2spPVwibWVudS5jbG9zZSgpOyBvbkRlbGV0ZS5lbWl0KClcIj5cbiAgICAgICAgICAgIDxkaXYgZmQtbWVudS1pbnRlcmFjdGl2ZT5cbiAgICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPiB7eyAncGxhdGZvcm1BcHByb3ZhbEZsb3cubm9kZUFjdGlvblJlbW92ZScgfCBmZFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgIH1cbjwvZmQtbWVudT5cbiJdfQ==
|