@colijnit/transaction 256.1.38 → 256.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/colijnit-transaction.umd.js +482 -248
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/lib/component/delivery-planning/delivery-planning.component.js +8 -4
- package/esm2015/lib/component/delivery-planning/service/delivery-planning.service.js +15 -40
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-popup/delivery-planning-overview-popup.component.js +53 -53
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/delivery-planning-overview-tile.component.js +48 -12
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile-settings-popup/delivery-planning-overview-tile-settings-popup.component.js +96 -136
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/delivery-planning-overview.component.js +82 -60
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-selection/delivery-planning-selection.component.js +36 -21
- package/esm2015/lib/component/delivery-planning-main/delivery-planning-main.component.js +8 -2
- package/esm2015/lib/component/transaction-cash-register-dialog/transaction-cash-register-dialog.component.js +31 -16
- package/esm2015/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.js +49 -35
- package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component.js +6 -2
- package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-send-method-base.component.js +24 -1
- package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +7 -2
- package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +103 -89
- package/esm2015/lib/enum/transaction-cfg-name.enum.js +3 -1
- package/esm2015/lib/service/transaction-connector-adapter.service.js +13 -1
- package/esm2015/lib/service/transaction-connector.service.js +6 -1
- package/esm2015/lib/service/transaction.service.js +6 -1
- package/esm2015/lib/transaction-version.js +3 -3
- package/fesm2015/colijnit-transaction.js +523 -415
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/component/delivery-planning/delivery-planning.component.d.ts +3 -0
- package/lib/component/delivery-planning/service/delivery-planning.service.d.ts +18 -20
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-popup/delivery-planning-overview-popup.component.d.ts +2 -2
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/delivery-planning-overview-tile.component.d.ts +9 -4
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile-settings-popup/delivery-planning-overview-tile-settings-popup.component.d.ts +12 -16
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/delivery-planning-overview.component.d.ts +27 -25
- package/lib/component/delivery-planning-main/component/delivery-planning-selection/delivery-planning-selection.component.d.ts +11 -6
- package/lib/component/delivery-planning-main/delivery-planning-main.component.d.ts +3 -1
- package/lib/component/transaction-cash-register-dialog/transaction-cash-register-dialog.component.d.ts +18 -3
- package/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.d.ts +5 -2
- package/lib/component/transaction-quick-access/transaction-quick-access-send-method-base.component.d.ts +8 -1
- package/lib/component/transaction-search/service/transaction-search.service.d.ts +3 -2
- package/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.d.ts +8 -6
- package/lib/enum/transaction-cfg-name.enum.d.ts +3 -1
- package/lib/service/transaction-connector-adapter.service.d.ts +1 -0
- package/lib/service/transaction-connector.service.d.ts +1 -0
- package/lib/service/transaction.service.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
1
2
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostBinding, HostListener, Output, ViewEncapsulation } from '@angular/core';
|
|
2
3
|
import { StockStatus } from '@colijnit/transactionapi/build/enum/refcode/stock-status.enum';
|
|
3
4
|
import { TransactionTypeCategory } from '../../../enum/transaction-type-category.enum';
|
|
@@ -11,8 +12,9 @@ import { DeliveryPlanningService } from '../../delivery-planning/service/deliver
|
|
|
11
12
|
import { TransactionLineBaseComponent } from '../../core/base/transaction-line-base.component';
|
|
12
13
|
import { TransactionHeaderService } from '../../core/base/service/transaction-header.service';
|
|
13
14
|
import { TransactionLineService } from '../../core/base/service/transaction-line.service';
|
|
15
|
+
import { TransactionDialogService } from '../../../service/transaction-dialog.service';
|
|
14
16
|
export class TransactionPlanningLineComponent extends TransactionLineBaseComponent {
|
|
15
|
-
constructor(transactionHeaderService, transactionLineService, transactionEventService, iconCacheService, screenConfigService, imageService, dictionaryService, transactionService, changeDetector, _deliveryPlanningService) {
|
|
17
|
+
constructor(transactionHeaderService, transactionLineService, transactionEventService, iconCacheService, screenConfigService, imageService, dictionaryService, transactionService, changeDetector, _deliveryPlanningService, _dialog, _dictionary) {
|
|
16
18
|
super(transactionHeaderService, transactionLineService, transactionEventService, iconCacheService, screenConfigService, imageService, dictionaryService, transactionService, changeDetector);
|
|
17
19
|
this.transactionHeaderService = transactionHeaderService;
|
|
18
20
|
this.transactionLineService = transactionLineService;
|
|
@@ -24,6 +26,8 @@ export class TransactionPlanningLineComponent extends TransactionLineBaseCompone
|
|
|
24
26
|
this.transactionService = transactionService;
|
|
25
27
|
this.changeDetector = changeDetector;
|
|
26
28
|
this._deliveryPlanningService = _deliveryPlanningService;
|
|
29
|
+
this._dialog = _dialog;
|
|
30
|
+
this._dictionary = _dictionary;
|
|
27
31
|
this.category = TransactionTypeCategory;
|
|
28
32
|
this.descriptionDblClick = new EventEmitter();
|
|
29
33
|
this.stock = StockStatus.Low;
|
|
@@ -89,38 +93,46 @@ export class TransactionPlanningLineComponent extends TransactionLineBaseCompone
|
|
|
89
93
|
}
|
|
90
94
|
dragStarted(ev) {
|
|
91
95
|
var _a, _b, _c;
|
|
92
|
-
this
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
dragImage.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
96
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
if (this.transactionLine.articleLineStatus.quantityAllocated <= 0) {
|
|
98
|
+
yield this._dialog.showError(this._dictionary.get('ORDER_CAN_NOT_BE_PLANNED'), true);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
this._deliveryPlanningService.currentTransId = this.transactionInfo.id;
|
|
103
|
+
(_a = ev.dataTransfer) === null || _a === void 0 ? void 0 : _a.setData('text', 'lines');
|
|
104
|
+
}
|
|
105
|
+
ev.target.classList.add('dragging');
|
|
106
|
+
const lineElement = ev.target.closest('co-transaction-base-line');
|
|
107
|
+
if (!lineElement)
|
|
108
|
+
return;
|
|
109
|
+
const dragBox = (_b = lineElement.querySelector('.co-transaction-line-image-and-description')) === null || _b === void 0 ? void 0 : _b.cloneNode(true);
|
|
110
|
+
const dragImage = document.createElement('div');
|
|
111
|
+
dragImage.style.display = 'flex';
|
|
112
|
+
dragImage.style.flexDirection = 'row';
|
|
113
|
+
dragImage.style.alignItems = 'center';
|
|
114
|
+
dragImage.style.justifyContent = 'space-around';
|
|
115
|
+
dragImage.style.width = '250px';
|
|
116
|
+
dragImage.style.minHeight = '50px';
|
|
117
|
+
dragImage.style.padding = '10px';
|
|
118
|
+
dragImage.style.backgroundColor = '#ffffff';
|
|
119
|
+
dragImage.style.border = '1px solid #ccc';
|
|
120
|
+
dragImage.style.boxShadow = '0 4px 6px rgba(0, 0, 0, 0.1)';
|
|
121
|
+
dragImage.style.borderRadius = '5px';
|
|
122
|
+
dragImage.style.fontSize = '12px';
|
|
123
|
+
if (dragBox) {
|
|
124
|
+
dragBox.style.flex = '1';
|
|
125
|
+
dragImage.appendChild(dragBox);
|
|
126
|
+
}
|
|
127
|
+
document.body.appendChild(dragImage);
|
|
128
|
+
dragImage.style.position = 'absolute';
|
|
129
|
+
dragImage.style.top = '-1000px';
|
|
130
|
+
dragImage.style.left = '-1000px';
|
|
131
|
+
// Set the custom drag image
|
|
132
|
+
(_c = ev.dataTransfer) === null || _c === void 0 ? void 0 : _c.setDragImage(dragImage, 50, 25);
|
|
133
|
+
// Cleanup: Remove the drag image after it's set
|
|
134
|
+
setTimeout(() => document.body.removeChild(dragImage), 0);
|
|
135
|
+
});
|
|
124
136
|
}
|
|
125
137
|
dragEnded(ev) {
|
|
126
138
|
ev.target.classList.remove('dragging');
|
|
@@ -260,7 +272,9 @@ TransactionPlanningLineComponent.ctorParameters = () => [
|
|
|
260
272
|
{ type: DictionaryService },
|
|
261
273
|
{ type: TransactionService },
|
|
262
274
|
{ type: ChangeDetectorRef },
|
|
263
|
-
{ type: DeliveryPlanningService }
|
|
275
|
+
{ type: DeliveryPlanningService },
|
|
276
|
+
{ type: TransactionDialogService },
|
|
277
|
+
{ type: DictionaryService }
|
|
264
278
|
];
|
|
265
279
|
TransactionPlanningLineComponent.propDecorators = {
|
|
266
280
|
descriptionDblClick: [{ type: Output }],
|
|
@@ -269,4 +283,4 @@ TransactionPlanningLineComponent.propDecorators = {
|
|
|
269
283
|
handleMouseLeave: [{ type: HostListener, args: ['mouseleave', ['$event'],] }],
|
|
270
284
|
dragEnded: [{ type: HostListener, args: ['dragend', ['$event'],] }]
|
|
271
285
|
};
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLXBsYW5uaW5nLWxpbmUvdHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUdaLE1BQU0sRUFDTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBR3JGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ2hILE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRXhFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBRWxHLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFN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LENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQztJQUNqSSxDQUFDOzs7WUF4UUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw4QkFBOEI7Z0JBQ3hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZHVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7OztZQXJITyx3QkFBd0I7WUFDeEIsc0JBQXNCO1lBWHRCLHVCQUF1QjtZQUN2QixnQkFBZ0I7WUFDaEIscUNBQXFDO1lBQ3JDLHVCQUF1QjtZQUN2QixpQkFBaUI7WUFDakIsa0JBQWtCO1lBbkJ4QixpQkFBaUI7WUFxQlgsdUJBQXVCOzs7a0NBNEg1QixNQUFNO3dCQUdOLFdBQVcsU0FBQyxvQ0FBb0M7OEJBS2hELFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7K0JBS3BDLFlBQVksU0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUM7d0JBMEhyQyxZQUFZLFNBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1N0b2NrU3RhdHVzfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9yZWZjb2RlL3N0b2NrLXN0YXR1cy5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0gZnJvbSAnLi4vLi4vLi4vZW51bS90cmFuc2FjdGlvbi10eXBlLWNhdGVnb3J5LmVudW0nO1xyXG5pbXBvcnQge1N0YXR1c0JhckNmZ05hbWVzfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2Uvc3RhdHVzLWJhci1jZmctbmFtZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtMaW5lRGlzY291bnRDZmdOYW1lc30gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlL2xpbmUtZGlzY291bnQtY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ibyc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1NlcnZpY2V9IGZyb20gJy4uLy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tbGluZS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2Uvc2VydmljZS90cmFuc2FjdGlvbi1oZWFkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL3NlcnZpY2UvdHJhbnNhY3Rpb24tbGluZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tdHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZScsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGNvLXRyYW5zYWN0aW9uLWJhc2UtbGluZVxyXG4gICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgW3ByZXZpZXddPVwicHJldmlld1wiXHJcbiAgICAgICAgICAgICAgW2lzRmlyc3RdPVwiaXNGaXJzdFwiXHJcbiAgICAgICAgICAgICAgW2RyYWdnYWJsZV09XCIhbGluZVBsYW5uZWRcIlxyXG4gICAgICAgICAgICAgIChkcmFnc3RhcnQpPVwiZHJhZ1N0YXJ0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrYm94XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2JveFZhbHVlXT1cInRyYW5zYWN0aW9uTGluZS5zZWxlY3RlZCB8fCAhdHJhbnNhY3Rpb25JbmZvPy5hbGxvd1BhcnRpYWxEZWxpdmVyeVwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrYm94UmVhZG9ubHldPVwiIXRyYW5zYWN0aW9uSW5mbz8uYWxsb3dQYXJ0aWFsRGVsaXZlcnlcIlxyXG4gICAgICAgICAgICAgIChjaGVja2JveFZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVDaGVja0JveFZhbHVlQ2hhbmdlZCgkZXZlbnQsIHRyYW5zYWN0aW9uTGluZSlcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVMaW5lQ2xpY2tlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHJhbnNhY3Rpb25MaW5lLmlzQXJ0aWNsZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj0hcHJldmlldyBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZXh0ZW5kZWQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbjFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlN0YXR1c0JhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwic3RhdHVzQmFyQ29uZmlnTmFtZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZUNhdGVnb3J5XT1cImNhdGVnb3J5LlNhbGVzT3JkZXJPdmVydmlld1wiPjwvY28tdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluc2lkZS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWwgW2luc2lkZUxhYmVsXT1cIidDT01NSVNTSU9OX0NPREUnXCI+PC9jby10cmFuc2FjdGlvbi1saW5lLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtY29tbWlzc2lvbi1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZUNvbW1pc3Npb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1jb21taXNzaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluc2lkZS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWwgW2luc2lkZUxhYmVsXT1cIidXQVJFSE9VU0UnXCI+PC9jby10cmFuc2FjdGlvbi1saW5lLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtd2FyZWhvdXNlLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lV2FyZWhvdXNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtd2FyZWhvdXNlLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluc2lkZS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWwgW2luc2lkZUxhYmVsXT1cIidERUxJVkVSWV9NRVRIT0QnXCI+PC9jby10cmFuc2FjdGlvbi1saW5lLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtZGVsaXZlcnktYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVEZWxpdmVyeU1ldGhvZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluc2lkZS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWwgW2luc2lkZUxhYmVsXT1cIidERUxJVkVSWV9EQVRFJ1wiPjwvY28tdHJhbnNhY3Rpb24tbGluZS1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWRhdGUtYnV0dG9uIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1kYXRlIHR3by1jb2x1bW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZURlbGl2ZXJ5RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWRhdGUtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbjRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZmllbGQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5zaWRlLWZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1sYWJlbCBbaW5zaWRlTGFiZWxdPVwiJ1ZBVCdcIj48L2NvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS12YXQtYnV0dG9uICpuZ0lmPVwiIXByZXZpZXdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lVmF0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtdmF0LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluc2lkZS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWwgW2luc2lkZUxhYmVsXT1cIidQUklDRSdcIj48L2NvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1wcmljZSBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtdG90YWxzLXByaWNlIHByaWNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVQcmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0xhYmVsXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0RWRpdE1vZGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1wcmljZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluc2lkZS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWwgW2luc2lkZUxhYmVsXT1cIidESVNDT1VOVCdcIj48L2NvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1kaXNjb3VudC1idXR0b24gKm5nSWY9XCIhcHJldmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZURpc2NvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwiZGlzY291bnRDb25maWdOYW1lc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWRpc2NvdW50LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluc2lkZS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWwgW2luc2lkZUxhYmVsXT1cIidRVUFOVElUWSdcIj48L2NvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1hbW91bnQgY2xhc3M9XCJhbW91bnQtbnVtYmVyLXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZUFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWFtb3VudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluc2lkZS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWwgW2luc2lkZUxhYmVsXT1cIidUT1RBTCdcIj48L2NvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tZWRpdGFibGUtbGFiZWwgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFscy10b3RhbCBwcmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cInRyYW5zYWN0aW9uTGluZS5kaXNwbGF5TmV0TGluZVRvdGFsIHwgY29DdXJyZW5jeTogdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VkaXRNb2RlbF09XCJ0cmFuc2FjdGlvbkxpbmUuZGlzcGxheU5ldExpbmVUb3RhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tZWRpdGFibGUtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvY28tdHJhbnNhY3Rpb24tYmFzZS1saW5lPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25QbGFubmluZ0xpbmVDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkxpbmVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBjYXRlZ29yeTogdHlwZW9mIFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5ID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZXNjcmlwdGlvbkRibENsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZScpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdmVyJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgaGFuZGxlTW91c2VPdmVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLm1vdXNlT3ZlciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgaGFuZGxlTW91c2VMZWF2ZShldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5tb3VzZU92ZXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9jazogU3RvY2tTdGF0dXMgPSBTdG9ja1N0YXR1cy5Mb3c7XHJcbiAgcHVibGljIG1vdXNlT3ZlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoYXNPcGVuZWRTaWRlUGFuZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIHN0YXR1c0JhckNvbmZpZ05hbWVzOiBTdGF0dXNCYXJDZmdOYW1lcyA9IHtcclxuICAgIHN0YXR1c0JhckJUOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckJULFxyXG4gICAgc3RhdHVzQmFyVEc6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyVEcsXHJcbiAgICBzdGF0dXNCYXJQQTogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJQQSxcclxuICAgIHN0YXR1c0JhclBWOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclBWLFxyXG4gICAgc3RhdHVzQmFyVFA6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyVFAsXHJcbiAgICBzdGF0dXNCYXJHVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHVCxcclxuICAgIHN0YXR1c0JhckdQOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckdQLFxyXG4gICAgc3RhdHVzQmFyR0w6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR0wsXHJcbiAgICBzdGF0dXNCYXJHRjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHRlxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBkaXNjb3VudENvbmZpZ05hbWVzOiBMaW5lRGlzY291bnRDZmdOYW1lcyA9IHtcclxuICAgIGxpbmVQcmljZUxpc3Q6IHRoaXMuY2ZnTmFtZXMuTGluZVByaWNlTGlzdCxcclxuICAgIGxpbmVEaXNjb3VudEFtb3VudDogdGhpcy5jZmdOYW1lcy5MaW5lRGlzY291bnRBbW91bnQsXHJcbiAgICBsaW5lRGlzY291bnRQZXJjZW50YWdlOiB0aGlzLmNmZ05hbWVzLkxpbmVEaXNjb3VudFBlcmNlbnRhZ2UsXHJcbiAgICBsaW5lRGlzY291bnRTcGVjaWFsOiB0aGlzLmNmZ05hbWVzLkxpbmVEaXNjb3VudFNwZWNpYWwsXHJcbiAgICBsaW5lRGlzY291bnRRdWFudHVtOiB0aGlzLmNmZ05hbWVzLkxpbmVEaXNjb3VudFF1YW50dW1cclxuICB9O1xyXG5cclxuICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lVG9CZVBpY2tlZENvbXBsZXRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2U6IFRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkxpbmVTZXJ2aWNlOiBUcmFuc2FjdGlvbkxpbmVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ1NlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfZGVsaXZlcnlQbGFubmluZ1NlcnZpY2U6IERlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIodHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlLCB0cmFuc2FjdGlvbkxpbmVTZXJ2aWNlLCB0cmFuc2FjdGlvbkV2ZW50U2VydmljZSwgaWNvbkNhY2hlU2VydmljZSwgc2NyZWVuQ29uZmlnU2VydmljZSwgaW1hZ2VTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSwgdHJhbnNhY3Rpb25TZXJ2aWNlLGNoYW5nZURldGVjdG9yKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5zZWxlY3RBbGxTYWxlc09yZGVyTGluZXNUb0JlUGlja2VkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uTGluZS5zZWxlY3RlZCA9IHZhbHVlICYmICF0aGlzLnRyYW5zYWN0aW9uTGluZVRvQmVQaWNrZWRDb21wbGV0ZWQ7XHJcbiAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgaWYgKHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnBsYW5PcmRlckRhdGUpIHtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UucGxhbk9yZGVyRGF0ZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ2hlY2tCb3hWYWx1ZUNoYW5nZWQodmFsdWU6IGJvb2xlYW4sIGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSAmJiAhdGhpcy5oYXNPcGVuZWRTaWRlUGFuZWwpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5vcGVuU2lkZVBhbmVsLm5leHQodGhpcy50cmFuc2FjdGlvbkxpbmUpO1xyXG4gICAgICB0aGlzLmhhc09wZW5lZFNpZGVQYW5lbCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uTGluZS5zZWxlY3RlZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlTGluZUNsaWNrZWQobW91c2VDbGljazogUG9pbnRlckV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UubGluZXNQbGFuT3JkZXI/LmxpbmVzPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UucGxhbk9yZGVyRGF0ZSA9IG5ldyBEYXRlKHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmxpbmVzUGxhbk9yZGVyLmxpbmVzWzBdLmRlbGl2ZXJ5RGF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZHJhZ1N0YXJ0ZWQoZXY6IERyYWdFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgIChldi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5hZGQoJ2RyYWdnaW5nJyk7XHJcbiAgICBjb25zdCBsaW5lRWxlbWVudCA9IChldi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJ2NvLXRyYW5zYWN0aW9uLWJhc2UtbGluZScpO1xyXG4gICAgaWYgKCFsaW5lRWxlbWVudCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGRyYWdCb3ggPSBsaW5lRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY28tdHJhbnNhY3Rpb24tbGluZS1pbWFnZS1hbmQtZGVzY3JpcHRpb24nKT8uY2xvbmVOb2RlKHRydWUpIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgIGNvbnN0IGRyYWdJbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUuZmxleERpcmVjdGlvbiA9ICdyb3cnO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLmFsaWduSXRlbXMgPSAnY2VudGVyJztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5qdXN0aWZ5Q29udGVudCA9ICdzcGFjZS1hcm91bmQnO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLndpZHRoID0gJzI1MHB4JztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5taW5IZWlnaHQgPSAnNTBweCc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUucGFkZGluZyA9ICcxMHB4JztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnI2ZmZmZmZic7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCAjY2NjJztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5ib3hTaGFkb3cgPSAnMCA0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xKSc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUuYm9yZGVyUmFkaXVzID0gJzVweCc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUuZm9udFNpemUgPSAnMTJweCc7XHJcblxyXG4gICAgaWYgKGRyYWdCb3gpIHtcclxuICAgICAgZHJhZ0JveC5zdHlsZS5mbGV4ID0gJzEnO1xyXG4gICAgICBkcmFnSW1hZ2UuYXBwZW5kQ2hpbGQoZHJhZ0JveCk7XHJcbiAgICB9XHJcblxyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkcmFnSW1hZ2UpO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS50b3AgPSAnLTEwMDBweCc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUubGVmdCA9ICctMTAwMHB4JztcclxuXHJcbiAgICAvLyBTZXQgdGhlIGN1c3RvbSBkcmFnIGltYWdlXHJcbiAgICBldi5kYXRhVHJhbnNmZXI/LnNldERyYWdJbWFnZShkcmFnSW1hZ2UsIDUwLCAyNSk7XHJcblxyXG4gICAgLy8gQ2xlYW51cDogUmVtb3ZlIHRoZSBkcmFnIGltYWdlIGFmdGVyIGl0J3Mgc2V0XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZHJhZ0ltYWdlKSwgMCk7XHJcblxyXG4gICAgZXYuZGF0YVRyYW5zZmVyPy5zZXREYXRhKCd0ZXh0JywgJ2xpbmVzJyk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkcmFnZW5kJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgZHJhZ0VuZGVkKGV2OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgIChldi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWdnaW5nJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGxpbmVQbGFubmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5saW5lc1BsYW5PcmRlcikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICF0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5saW5lc1BsYW5PcmRlcj8ubGluZXM/LmZpbmQobGluZSA9PiBsaW5lLm9yaWdpbmFsTGluZU5yID09PSB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLXBsYW5uaW5nLWxpbmUvdHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFHWixNQUFNLEVBQ04saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUdyRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNoSCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUVsRyxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUM3RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUM1RixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFB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Q0FBQzsrQkFLcEMsWUFBWSxTQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQzt3QkFnSXJDLFlBQVksU0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U3RvY2tTdGF0dXN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3JlZmNvZGUvc3RvY2stc3RhdHVzLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSBmcm9tICcuLi8uLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bSc7XHJcbmltcG9ydCB7U3RhdHVzQmFyQ2ZnTmFtZXN9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZS9zdGF0dXMtYmFyLWNmZy1uYW1lcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0xpbmVEaXNjb3VudENmZ05hbWVzfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2UvbGluZS1kaXNjb3VudC1jZmctbmFtZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkltYWdlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvJztcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nU2VydmljZX0gZnJvbSAnLi4vLi4vZGVsaXZlcnktcGxhbm5pbmcvc2VydmljZS9kZWxpdmVyeS1wbGFubmluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1saW5lLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS9zZXJ2aWNlL3RyYW5zYWN0aW9uLWhlYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVTZXJ2aWNlfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2Uvc2VydmljZS90cmFuc2FjdGlvbi1saW5lLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1kaWFsb2cuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLXBsYW5uaW5nLWxpbmUnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxjby10cmFuc2FjdGlvbi1iYXNlLWxpbmVcclxuICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgIFtwcmV2aWV3XT1cInByZXZpZXdcIlxyXG4gICAgICAgICAgICAgIFtpc0ZpcnN0XT1cImlzRmlyc3RcIlxyXG4gICAgICAgICAgICAgIFtkcmFnZ2FibGVdPVwiIWxpbmVQbGFubmVkXCJcclxuICAgICAgICAgICAgICAoZHJhZ3N0YXJ0KT1cImRyYWdTdGFydGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2JveF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbY2hlY2tib3hWYWx1ZV09XCJ0cmFuc2FjdGlvbkxpbmUuc2VsZWN0ZWQgfHwgIXRyYW5zYWN0aW9uSW5mbz8uYWxsb3dQYXJ0aWFsRGVsaXZlcnlcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2JveFJlYWRvbmx5XT1cIiF0cmFuc2FjdGlvbkluZm8/LmFsbG93UGFydGlhbERlbGl2ZXJ5XCJcclxuICAgICAgICAgICAgICAoY2hlY2tib3hWYWx1ZUNoYW5nZWQpPVwiaGFuZGxlQ2hlY2tCb3hWYWx1ZUNoYW5nZWQoJGV2ZW50LCB0cmFuc2FjdGlvbkxpbmUpXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlTGluZUNsaWNrZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyYW5zYWN0aW9uTGluZS5pc0FydGljbGVcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9IXByZXZpZXcgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWV4dGVuZGVkLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtc3RhdHVzYmFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5TdGF0dXNCYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ05hbWVzXT1cInN0YXR1c0JhckNvbmZpZ05hbWVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJjYXRlZ29yeS5TYWxlc09yZGVyT3ZlcnZpZXdcIj48L2NvLXRyYW5zYWN0aW9uLWxpbmUtc3RhdHVzYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnNpZGUtZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWxhYmVsIFtpbnNpZGVMYWJlbF09XCInQ09NTUlTU0lPTl9DT0RFJ1wiPjwvY28tdHJhbnNhY3Rpb24tbGluZS1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWNvbW1pc3Npb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVDb21taXNzaW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtY29tbWlzc2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnNpZGUtZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWxhYmVsIFtpbnNpZGVMYWJlbF09XCInV0FSRUhPVVNFJ1wiPjwvY28tdHJhbnNhY3Rpb24tbGluZS1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZVdhcmVob3VzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnNpZGUtZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWxhYmVsIFtpbnNpZGVMYWJlbF09XCInREVMSVZFUllfTUVUSE9EJ1wiPjwvY28tdHJhbnNhY3Rpb24tbGluZS1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lRGVsaXZlcnlNZXRob2RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnNpZGUtZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWxhYmVsIFtpbnNpZGVMYWJlbF09XCInREVMSVZFUllfREFURSdcIj48L2NvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1kYXRlLWJ1dHRvbiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZGVsaXZlcnktZGF0ZSB0d28tY29sdW1uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVEZWxpdmVyeURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1kYXRlLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW40XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluc2lkZS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWwgW2luc2lkZUxhYmVsXT1cIidWQVQnXCI+PC9jby10cmFuc2FjdGlvbi1saW5lLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtdmF0LWJ1dHRvbiAqbmdJZj1cIiFwcmV2aWV3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZVZhdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLXZhdC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnNpZGUtZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWxhYmVsIFtpbnNpZGVMYWJlbF09XCInUFJJQ0UnXCI+PC9jby10cmFuc2FjdGlvbi1saW5lLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtcHJpY2UgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFscy1wcmljZSBwcmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lUHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dMYWJlbF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdEVkaXRNb2RlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtcHJpY2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnNpZGUtZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWxhYmVsIFtpbnNpZGVMYWJlbF09XCInRElTQ09VTlQnXCI+PC9jby10cmFuc2FjdGlvbi1saW5lLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtZGlzY291bnQtYnV0dG9uICpuZ0lmPVwiIXByZXZpZXdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVEaXNjb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ05hbWVzXT1cImRpc2NvdW50Q29uZmlnTmFtZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1kaXNjb3VudC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnNpZGUtZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWxhYmVsIFtpbnNpZGVMYWJlbF09XCInUVVBTlRJVFknXCI+PC9jby10cmFuc2FjdGlvbi1saW5lLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtYW1vdW50IGNsYXNzPVwiYW1vdW50LW51bWJlci1waWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVBbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1hbW91bnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnNpZGUtZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWxhYmVsIFtpbnNpZGVMYWJlbF09XCInVE9UQUwnXCI+PC9jby10cmFuc2FjdGlvbi1saW5lLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWVkaXRhYmxlLWxhYmVsIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS10b3RhbHMtdG90YWwgcHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJ0cmFuc2FjdGlvbkxpbmUuZGlzcGxheU5ldExpbmVUb3RhbCB8IGNvQ3VycmVuY3k6IHRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlZGl0TW9kZWxdPVwidHJhbnNhY3Rpb25MaW5lLmRpc3BsYXlOZXRMaW5lVG90YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWVkaXRhYmxlLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2NvLXRyYW5zYWN0aW9uLWJhc2UtbGluZT5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uUGxhbm5pbmdMaW5lQ29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25MaW5lQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgY2F0ZWdvcnk6IHR5cGVvZiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZGVzY3JpcHRpb25EYmxDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLXBsYW5uaW5nLWxpbmUnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlb3ZlcicsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIGhhbmRsZU1vdXNlT3ZlcihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5tb3VzZU92ZXIgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIGhhbmRsZU1vdXNlTGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMubW91c2VPdmVyID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RvY2s6IFN0b2NrU3RhdHVzID0gU3RvY2tTdGF0dXMuTG93O1xyXG4gIHB1YmxpYyBtb3VzZU92ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaGFzT3BlbmVkU2lkZVBhbmVsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzdGF0dXNCYXJDb25maWdOYW1lczogU3RhdHVzQmFyQ2ZnTmFtZXMgPSB7XHJcbiAgICBzdGF0dXNCYXJCVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCVCxcclxuICAgIHN0YXR1c0JhclRHOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclRHLFxyXG4gICAgc3RhdHVzQmFyUEE6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyUEEsXHJcbiAgICBzdGF0dXNCYXJQVjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJQVixcclxuICAgIHN0YXR1c0JhclRQOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclRQLFxyXG4gICAgc3RhdHVzQmFyR1Q6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR1QsXHJcbiAgICBzdGF0dXNCYXJHUDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHUCxcclxuICAgIHN0YXR1c0JhckdMOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckdMLFxyXG4gICAgc3RhdHVzQmFyR0Y6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR0ZcclxuICB9O1xyXG5cclxuICBwdWJsaWMgZGlzY291bnRDb25maWdOYW1lczogTGluZURpc2NvdW50Q2ZnTmFtZXMgPSB7XHJcbiAgICBsaW5lUHJpY2VMaXN0OiB0aGlzLmNmZ05hbWVzLkxpbmVQcmljZUxpc3QsXHJcbiAgICBsaW5lRGlzY291bnRBbW91bnQ6IHRoaXMuY2ZnTmFtZXMuTGluZURpc2NvdW50QW1vdW50LFxyXG4gICAgbGluZURpc2NvdW50UGVyY2VudGFnZTogdGhpcy5jZmdOYW1lcy5MaW5lRGlzY291bnRQZXJjZW50YWdlLFxyXG4gICAgbGluZURpc2NvdW50U3BlY2lhbDogdGhpcy5jZmdOYW1lcy5MaW5lRGlzY291bnRTcGVjaWFsLFxyXG4gICAgbGluZURpc2NvdW50UXVhbnR1bTogdGhpcy5jZmdOYW1lcy5MaW5lRGlzY291bnRRdWFudHVtXHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uTGluZVRvQmVQaWNrZWRDb21wbGV0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlOiBUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lU2VydmljZTogVHJhbnNhY3Rpb25MaW5lU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyBzY3JlZW5Db25maWdTZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGltYWdlU2VydmljZTogVHJhbnNhY3Rpb25JbWFnZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlOiBEZWxpdmVyeVBsYW5uaW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZzogVHJhbnNhY3Rpb25EaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UsIHRyYW5zYWN0aW9uTGluZVNlcnZpY2UsIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCBzY3JlZW5Db25maWdTZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCB0cmFuc2FjdGlvblNlcnZpY2UsY2hhbmdlRGV0ZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnNlbGVjdEFsbFNhbGVzT3JkZXJMaW5lc1RvQmVQaWNrZWQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lLnNlbGVjdGVkID0gdmFsdWUgJiYgIXRoaXMudHJhbnNhY3Rpb25MaW5lVG9CZVBpY2tlZENvbXBsZXRlZDtcclxuICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBpZiAodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UucGxhbk9yZGVyRGF0ZSkge1xyXG4gICAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5wbGFuT3JkZXJEYXRlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDaGVja0JveFZhbHVlQ2hhbmdlZCh2YWx1ZTogYm9vbGVhbiwgbGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlICYmICF0aGlzLmhhc09wZW5lZFNpZGVQYW5lbCkge1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLm9wZW5TaWRlUGFuZWwubmV4dCh0aGlzLnRyYW5zYWN0aW9uTGluZSk7XHJcbiAgICAgIHRoaXMuaGFzT3BlbmVkU2lkZVBhbmVsID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lLnNlbGVjdGVkID0gdmFsdWU7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVMaW5lQ2xpY2tlZChtb3VzZUNsaWNrOiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5saW5lc1BsYW5PcmRlcj8ubGluZXM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5wbGFuT3JkZXJEYXRlID0gbmV3IERhdGUodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UubGluZXNQbGFuT3JkZXIubGluZXNbMF0uZGVsaXZlcnlEYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBkcmFnU3RhcnRlZChldjogRHJhZ0V2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZih0aGlzLnRyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eUFsbG9jYXRlZCA8PSAwKSB7XHJcbiAgICAgICBhd2FpdCB0aGlzLl9kaWFsb2cuc2hvd0Vycm9yKHRoaXMuX2RpY3Rpb25hcnkuZ2V0KCdPUkRFUl9DQU5fTk9UX0JFX1BMQU5ORUQnKSwgdHJ1ZSk7XHJcbiAgICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50VHJhbnNJZCA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgICBldi5kYXRhVHJhbnNmZXI/LnNldERhdGEoJ3RleHQnLCAnbGluZXMnKTtcclxuICAgIH1cclxuICAgIChldi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5hZGQoJ2RyYWdnaW5nJyk7XHJcbiAgICBjb25zdCBsaW5lRWxlbWVudCA9IChldi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJ2NvLXRyYW5zYWN0aW9uLWJhc2UtbGluZScpO1xyXG4gICAgaWYgKCFsaW5lRWxlbWVudCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGRyYWdCb3ggPSBsaW5lRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY28tdHJhbnNhY3Rpb24tbGluZS1pbWFnZS1hbmQtZGVzY3JpcHRpb24nKT8uY2xvbmVOb2RlKHRydWUpIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgIGNvbnN0IGRyYWdJbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUuZmxleERpcmVjdGlvbiA9ICdyb3cnO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLmFsaWduSXRlbXMgPSAnY2VudGVyJztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5qdXN0aWZ5Q29udGVudCA9ICdzcGFjZS1hcm91bmQnO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLndpZHRoID0gJzI1MHB4JztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5taW5IZWlnaHQgPSAnNTBweCc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUucGFkZGluZyA9ICcxMHB4JztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnI2ZmZmZmZic7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCAjY2NjJztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5ib3hTaGFkb3cgPSAnMCA0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xKSc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUuYm9yZGVyUmFkaXVzID0gJzVweCc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUuZm9udFNpemUgPSAnMTJweCc7XHJcblxyXG4gICAgaWYgKGRyYWdCb3gpIHtcclxuICAgICAgZHJhZ0JveC5zdHlsZS5mbGV4ID0gJzEnO1xyXG4gICAgICBkcmFnSW1hZ2UuYXBwZW5kQ2hpbGQoZHJhZ0JveCk7XHJcbiAgICB9XHJcblxyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkcmFnSW1hZ2UpO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS50b3AgPSAnLTEwMDBweCc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUubGVmdCA9ICctMTAwMHB4JztcclxuXHJcbiAgICAvLyBTZXQgdGhlIGN1c3RvbSBkcmFnIGltYWdlXHJcbiAgICBldi5kYXRhVHJhbnNmZXI/LnNldERyYWdJbWFnZShkcmFnSW1hZ2UsIDUwLCAyNSk7XHJcblxyXG4gICAgLy8gQ2xlYW51cDogUmVtb3ZlIHRoZSBkcmFnIGltYWdlIGFmdGVyIGl0J3Mgc2V0XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZHJhZ0ltYWdlKSwgMCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkcmFnZW5kJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgZHJhZ0VuZGVkKGV2OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgIChldi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWdnaW5nJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGxpbmVQbGFubmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5saW5lc1BsYW5PcmRlcikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICF0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5saW5lc1BsYW5PcmRlcj8ubGluZXM/LmZpbmQobGluZSA9PiBsaW5lLm9yaWdpbmFsTGluZU5yID09PSB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -121,10 +121,14 @@ TransactionQuickAccessOverviewComponent.decorators = [
|
|
|
121
121
|
[emailAddresses]="emailAddresses"
|
|
122
122
|
[emailLayouts]="emailLayouts"
|
|
123
123
|
[printLayouts]="printLayouts"
|
|
124
|
-
[isDocSignEnabled]="
|
|
124
|
+
[isDocSignEnabled]="isDocSignEnabled"
|
|
125
|
+
[isAdditionalDocEnabled]="isAdditionalDocEnabled"
|
|
126
|
+
[additionalFileContents]="additionalFileContents"
|
|
127
|
+
[additionalFileName]="additionalFileName"
|
|
125
128
|
[(reportingDocumentEmailRequest)]="reportDocumentEmailRequest"
|
|
126
129
|
[(reportingDocumentPrintRequest)]="reportDocumentPrintRequest"
|
|
127
130
|
[(reportingDocumentPdfRequest)]="reportDocumentPdfRequest"
|
|
131
|
+
(additionalFileChangeEvent)="upsertDocument($event)"
|
|
128
132
|
(closeClick)="showSendMethodDialog = false"
|
|
129
133
|
(okClick)="handleSendMethodOkClick($event)"
|
|
130
134
|
></co-send-method-dialog>
|
|
@@ -140,4 +144,4 @@ TransactionQuickAccessOverviewComponent.propDecorators = {
|
|
|
140
144
|
sendDocumentsComponent: [{ type: ViewChild, args: [TransactionSendDocumentsComponent,] }],
|
|
141
145
|
showClass: [{ type: HostBinding, args: ["class.co-transaction-quick-access-overview",] }]
|
|
142
146
|
};
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW92ZXJ2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3ZlcnZpZXcvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW92ZXJ2aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQVUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzNGLE9BQU8sRUFBQyw2Q0FBNkMsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JILE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHVFQUF1RSxDQUFDO0FBQ3hILE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBQ2xILE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLGdGQUFnRixDQUFDO0FBQ3JJLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLGdGQUFnRixDQUFDO0FBQ3JJLE9BQU8sRUFBQyxtQ0FBbUMsRUFBQyxNQUFNLDhFQUE4RSxDQUFDO0FBQ2pJLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHVFQUF1RSxDQUFDO0FBQ3BILE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHFFQUFxRSxDQUFDO0FBQ2hILE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHVFQUF1RSxDQUFDO0FBQ3BILE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsd0NBQXdDLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUN0SSxPQUFPLEVBQUMsd0NBQXdDLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztB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SUFFTyx1QkFBdUIsQ0FBQyxPQUE0SDtRQUMxSixPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQzNFLENBQUM7OztZQTlIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNDQUFzQztnQkFDaEQsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QlQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztxQ0FHRSxTQUFTLFNBQUMsaUNBQWlDO3dCQUczQyxXQUFXLFNBQUMsNENBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1lbWFpbC5ibyc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnR9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLXByaW50LmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblF1aWNrQWNjZXNzU2VuZE1ldGhvZEJhc2VDb21wb25lbnR9IGZyb20gJy4uL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1zZW5kLW1ldGhvZC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZW5kRG9jdW1lbnRzQ29tcG9uZW50fSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cy90cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wZGYtYmFzZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtFbWFpbEhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZW1haWwtaGlzdG9yaWMtb3JkZXItY29uZmlybWF0aW9uLXJlcXVlc3QnO1xyXG5pbXBvcnQge1ByaW50SGlzdG9yaWNPcmRlckNvbmZpcm1hdGlvblJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wcmludC1oaXN0b3JpYy1vcmRlci1jb25maXJtYXRpb24tcmVxdWVzdCc7XHJcbmltcG9ydCB7UGRmSGlzdG9yaWNPcmRlckNvbmZpcm1hdGlvblJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wZGYtaGlzdG9yaWMtb3JkZXItY29uZmlybWF0aW9uLXJlcXVlc3QnO1xyXG5pbXBvcnQge0VtYWlsT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZW1haWwtb3JkZXItY29uZmlybWF0aW9uLXJlcXVlc3QnO1xyXG5pbXBvcnQge1BkZk9yZGVyQ29uZmlybWF0aW9uUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BkZi1vcmRlci1jb25maXJtYXRpb24tcmVxdWVzdCc7XHJcbmltcG9ydCB7UHJpbnRPcmRlckNvbmZpcm1hdGlvblJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wcmludC1vcmRlci1jb25maXJtYXRpb24tcmVxdWVzdCc7XHJcbmltcG9ydCB7Q29Eb2N1bWVudH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9jdW1lbnQnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1lbWFpbC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wcmludC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW92ZXJ2aWV3XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby1xdWljay1zZW5kLWJ1dHRvblxyXG4gICAgICBbZGVmYXVsdE1ldGhvZEljb25dPVwiZGVmYXVsdFNlbmRNZXRob2RJY29uXCJcclxuICAgICAgW3Nob3dMb2FkZXJdPVwic2hvd0xvYWRlclwiXHJcbiAgICAgIChzZW5kSWNvbkNsaWNrZWQpPVwiaGFuZGxlU2VuZChkZWZhdWx0U2VuZE1ldGhvZClcIlxyXG4gICAgICAob3BlblNlbmRNZXRob2REaWFsb2cpPVwic2hvd1NlbmRNZXRob2REaWFsb2cgPSB0cnVlXCJcclxuICAgID48L2NvLXF1aWNrLXNlbmQtYnV0dG9uPlxyXG4gICAgPGNvLXRyYW5zYWN0aW9uLXNlbmQtZG9jdW1lbnRzXHJcbiAgICAgIFtoaXN0b3JpY1JlcG9ydHNdPVwiaGlzdG9yaWNSZXBvcnRzXCJcclxuICAgICAgW3RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5XT1cInRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJPdmVydmlld1wiXHJcbiAgICA+PC9jby10cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cz5cclxuICAgIDxjby1zZW5kLW1ldGhvZC1kaWFsb2cgKm5nSWY9XCJzaG93U2VuZE1ldGhvZERpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJUaXRsZV09XCInVmVyemVuZG1ldGhvZGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByaW50ZXJMaXN0XT1cInByaW50ZXJMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRTZW5kTWV0aG9kXT1cImRlZmF1bHRTZW5kTWV0aG9kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Zpc2libGVNZXRob2RzXT1cIltzZW5kTWV0aG9kVHlwZS5QcmludCwgc2VuZE1ldGhvZFR5cGUuRW1haWwsIHNlbmRNZXRob2RUeXBlLlBkZl1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1haWxBZGRyZXNzZXNdPVwiZW1haWxBZGRyZXNzZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1haWxMYXlvdXRzXT1cImVtYWlsTGF5b3V0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmludExheW91dHNdPVwicHJpbnRMYXlvdXRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzRG9jU2lnbkVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVwb3J0aW5nRG9jdW1lbnRFbWFpbFJlcXVlc3QpXT1cInJlcG9ydERvY3VtZW50RW1haWxSZXF1ZXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZXBvcnRpbmdEb2N1bWVudFByaW50UmVxdWVzdCldPVwicmVwb3J0RG9jdW1lbnRQcmludFJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlcG9ydGluZ0RvY3VtZW50UGRmUmVxdWVzdCldPVwicmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChva0NsaWNrKT1cImhhbmRsZVNlbmRNZXRob2RPa0NsaWNrKCRldmVudClcIlxyXG4gICAgPjwvY28tc2VuZC1tZXRob2QtZGlhbG9nPlxyXG4gICAgPGNvLWRpZ2l0YWwtc2lnbmF0dXJlXHJcbiAgICAgIFtkb2N1bWVudElkXT1cInNpZ25hdHVyZURvY3VtZW50SWRcIlxyXG4gICAgICAoZG9jdW1lbnRTdG9yZWQpPVwiY29tbWl0QW5kUmVmcmVzaFRyYW5zYWN0aW9uKClcIlxyXG4gICAgPjwvY28tZGlnaXRhbC1zaWduYXR1cmU+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblF1aWNrQWNjZXNzT3ZlcnZpZXdDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvblF1aWNrQWNjZXNzU2VuZE1ldGhvZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBAVmlld0NoaWxkKFRyYW5zYWN0aW9uU2VuZERvY3VtZW50c0NvbXBvbmVudClcclxuICBwdWJsaWMgc2VuZERvY3VtZW50c0NvbXBvbmVudDogVHJhbnNhY3Rpb25TZW5kRG9jdW1lbnRzQ29tcG9uZW50O1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3ZlcnZpZXdcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QgPSBuZXcgUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdCgpO1xyXG4gIHB1YmxpYyByZXBvcnREb2N1bWVudFByaW50UmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0KCk7XHJcbiAgcHVibGljIHJlcG9ydERvY3VtZW50UGRmUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KCk7XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBlbWFpbERvY3VtZW50KHJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QpIHtcclxuICAgIGlmICh0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuc2VsZWN0ZWQpIHtcclxuICAgICAgY29uc3QgZW1haWxIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uUmVxdWVzdDogRW1haWxIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgRW1haWxIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCgpLCByZXF1ZXN0KTtcclxuICAgICAgdGhpcy5fcHJlcGFyZUhpc3RvcmljUmVxdWVzdChlbWFpbEhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KTtcclxuICAgICAgYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZW1haWxIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uKGVtYWlsSGlzdG9yaWNPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBlbWFpbE9yZGVyQ29uZmlybWF0aW9uUmVxdWVzdDogRW1haWxPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IEVtYWlsT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KCksIHJlcXVlc3QpO1xyXG4gICAgICBjb25zdCByZXN1bHQ6IENvRG9jdW1lbnQgfCBib29sZWFuID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZW1haWxPcmRlckNvbmZpcm1hdGlvbihlbWFpbE9yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCk7XHJcbiAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBDb0RvY3VtZW50KSB7XHJcbiAgICAgICAgdGhpcy5zaWduYXR1cmVEb2N1bWVudElkID0gcmVzdWx0LmRvY3VtZW50SWQ7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldERlZmF1bHRFbWFpbEFkZHJlc3NMaXN0KCk6IFByb21pc2U8c3RyaW5nW10+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXREZWZhdWx0RW1haWxBZGRyZXNzTGlzdEZvck9yZGVyQ29uZmlybWF0aW9uKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEVtYWlsTGF5b3V0cygpOiBQcm9taXNlPFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsW10+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRPcmRlckNvbmZpcm1hdGlvbkVtYWlsTGF5b3V0cyh0aGlzLnRyYW5zYWN0aW9uSW5mby51dWlkKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRQcmludExheW91dHMoKTogUHJvbWlzZTxSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0T3JkZXJDb25maXJtYXRpb25QcmludExheW91dHModGhpcy50cmFuc2FjdGlvbkluZm8udXVpZCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgcGRmRG9jdW1lbnQocmVxdWVzdDogUGRmT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50LnNlbGVjdGVkKSB7XHJcbiAgICAgIGNvbnN0IHBkZkhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0OiBQZGZIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgUGRmSGlzdG9yaWNPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QoKSwgcmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVIaXN0b3JpY1JlcXVlc3QocGRmSGlzdG9yaWNPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QpO1xyXG4gICAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5wZGZIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uKHBkZkhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcGRmT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0OiBQZGZPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IFBkZk9yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCgpLCByZXF1ZXN0KTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UucGRmT3JkZXJDb25maXJtYXRpb24ocGRmT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KS50aGVuKChyZXN1bHQ6IENvRG9jdW1lbnQgfCBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIENvRG9jdW1lbnQpIHtcclxuICAgICAgICAgIHRoaXMuc2lnbmF0dXJlRG9jdW1lbnRJZCA9IHJlc3VsdC5kb2N1bWVudElkO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFzeW5jIHByaW50RG9jdW1lbnQocmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCkge1xyXG4gICAgaWYgKHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5zZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBwcmludEhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0OiBQcmludEhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBQcmludEhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KCksIHJlcXVlc3QpO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlSGlzdG9yaWNSZXF1ZXN0KHByaW50SGlzdG9yaWNPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QpO1xyXG4gICAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5wcmludEhpc3RvcmljT3JkZXJDb25maXJtYXRpb24ocHJpbnRIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHByaW50T3JkZXJDb25maXJtYXRpb25SZXF1ZXN0OiBQcmludE9yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgUHJpbnRPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QoKSwgcmVxdWVzdCk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnByaW50T3JkZXJDb25maXJtYXRpb24ocHJpbnRPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QpLnRoZW4oKHJlc3VsdDogQ29Eb2N1bWVudCB8IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgQ29Eb2N1bWVudCkge1xyXG4gICAgICAgICAgdGhpcy5zaWduYXR1cmVEb2N1bWVudElkID0gcmVzdWx0LmRvY3VtZW50SWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0RGVmYXVsdFNlbmRNZXRob2QoKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRPcmRlckNvbmZpcm1hdGlvbkRlZmF1bHRTZW5kTWV0aG9kKHRoaXMudHJhbnNhY3Rpb25JbmZvLnJlbGF0aW9uLnJlbGF0aW9uSWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZUhpc3RvcmljUmVxdWVzdChyZXF1ZXN0OiBFbWFpbEhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0IHwgUHJpbnRIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCB8IFBkZkhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KTogdm9pZCB7XHJcbiAgICByZXF1ZXN0LnJlcG9ydERhdGFJZCA9IHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5hY3RpdmVSZXBvcnQucmVwb3J0SWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW92ZXJ2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3ZlcnZpZXcvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW92ZXJ2aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQVUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzNGLE9BQU8sRUFBQyw2Q0FBNkMsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JILE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHVFQUF1RSxDQUFDO0FBQ3hILE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBQ2xILE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLGdGQUFnRixDQUFDO0FBQ3JJLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLGdGQUFnRixDQUFDO0FBQ3JJLE9BQU8sRUFBQyxtQ0FBbUMsRUFBQyxNQUFNLDhFQUE4RSxDQUFDO0FBQ2pJLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHVFQUF1RSxDQUFDO0FBQ3BILE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHFFQUFxRSxDQUFDO0FBQ2hILE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHVFQUF1RSxDQUFDO0FBQ3BILE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsd0NBQXdDLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUN0SSxPQUFPLEVBQUMsd0NBQXdDLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztB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SUFFTyx1QkFBdUIsQ0FBQyxPQUE0SDtRQUMxSixPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQzNFLENBQUM7OztZQWxJRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNDQUFzQztnQkFDaEQsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7cUNBR0UsU0FBUyxTQUFDLGlDQUFpQzt3QkFHM0MsV0FBVyxTQUFDLDRDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0LWxheW91dC1zZWxlY3Rpb24tZW1haWwuYm8nO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvblByaW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1wcmludC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25RdWlja0FjY2Vzc1NlbmRNZXRob2RCYXNlQ29tcG9uZW50fSBmcm9tICcuLi90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtc2VuZC1tZXRob2QtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VuZERvY3VtZW50c0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vdHJhbnNhY3Rpb24tc2VuZC1kb2N1bWVudHMvdHJhbnNhY3Rpb24tc2VuZC1kb2N1bWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHtSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnRpbmctZG9jdW1lbnQtcGRmLWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7RW1haWxIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2VtYWlsLWhpc3RvcmljLW9yZGVyLWNvbmZpcm1hdGlvbi1yZXF1ZXN0JztcclxuaW1wb3J0IHtQcmludEhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcHJpbnQtaGlzdG9yaWMtb3JkZXItY29uZmlybWF0aW9uLXJlcXVlc3QnO1xyXG5pbXBvcnQge1BkZkhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGRmLWhpc3RvcmljLW9yZGVyLWNvbmZpcm1hdGlvbi1yZXF1ZXN0JztcclxuaW1wb3J0IHtFbWFpbE9yZGVyQ29uZmlybWF0aW9uUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2VtYWlsLW9yZGVyLWNvbmZpcm1hdGlvbi1yZXF1ZXN0JztcclxuaW1wb3J0IHtQZGZPcmRlckNvbmZpcm1hdGlvblJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wZGYtb3JkZXItY29uZmlybWF0aW9uLXJlcXVlc3QnO1xyXG5pbXBvcnQge1ByaW50T3JkZXJDb25maXJtYXRpb25SZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcHJpbnQtb3JkZXItY29uZmlybWF0aW9uLXJlcXVlc3QnO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvY3VtZW50JztcclxuaW1wb3J0IHtSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnRpbmctZG9jdW1lbnQtZW1haWwtc2lnbi1kb2MtYmFzZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnRpbmctZG9jdW1lbnQtcHJpbnQtc2lnbi1kb2MtYmFzZS1yZXF1ZXN0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1vdmVydmlld1wiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tcXVpY2stc2VuZC1idXR0b25cclxuICAgICAgW2RlZmF1bHRNZXRob2RJY29uXT1cImRlZmF1bHRTZW5kTWV0aG9kSWNvblwiXHJcbiAgICAgIFtzaG93TG9hZGVyXT1cInNob3dMb2FkZXJcIlxyXG4gICAgICAoc2VuZEljb25DbGlja2VkKT1cImhhbmRsZVNlbmQoZGVmYXVsdFNlbmRNZXRob2QpXCJcclxuICAgICAgKG9wZW5TZW5kTWV0aG9kRGlhbG9nKT1cInNob3dTZW5kTWV0aG9kRGlhbG9nID0gdHJ1ZVwiXHJcbiAgICA+PC9jby1xdWljay1zZW5kLWJ1dHRvbj5cclxuICAgIDxjby10cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50c1xyXG4gICAgICBbaGlzdG9yaWNSZXBvcnRzXT1cImhpc3RvcmljUmVwb3J0c1wiXHJcbiAgICAgIFt0cmFuc2FjdGlvblR5cGVDYXRlZ29yeV09XCJ0cmFuc2FjdGlvblR5cGVDYXRlZ29yeS5TYWxlc09yZGVyT3ZlcnZpZXdcIlxyXG4gICAgPjwvY28tdHJhbnNhY3Rpb24tc2VuZC1kb2N1bWVudHM+XHJcbiAgICA8Y28tc2VuZC1tZXRob2QtZGlhbG9nICpuZ0lmPVwic2hvd1NlbmRNZXRob2REaWFsb2dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyVGl0bGVdPVwiJ1ZlcnplbmRtZXRob2RlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmludGVyTGlzdF09XCJwcmludGVyTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0U2VuZE1ldGhvZF09XCJkZWZhdWx0U2VuZE1ldGhvZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2aXNpYmxlTWV0aG9kc109XCJbc2VuZE1ldGhvZFR5cGUuUHJpbnQsIHNlbmRNZXRob2RUeXBlLkVtYWlsLCBzZW5kTWV0aG9kVHlwZS5QZGZdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VtYWlsQWRkcmVzc2VzXT1cImVtYWlsQWRkcmVzc2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VtYWlsTGF5b3V0c109XCJlbWFpbExheW91dHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJpbnRMYXlvdXRzXT1cInByaW50TGF5b3V0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0RvY1NpZ25FbmFibGVkXT1cImlzRG9jU2lnbkVuYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNBZGRpdGlvbmFsRG9jRW5hYmxlZF09XCJpc0FkZGl0aW9uYWxEb2NFbmFibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FkZGl0aW9uYWxGaWxlQ29udGVudHNdPVwiYWRkaXRpb25hbEZpbGVDb250ZW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFthZGRpdGlvbmFsRmlsZU5hbWVdPVwiYWRkaXRpb25hbEZpbGVOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZXBvcnRpbmdEb2N1bWVudEVtYWlsUmVxdWVzdCldPVwicmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlcG9ydGluZ0RvY3VtZW50UHJpbnRSZXF1ZXN0KV09XCJyZXBvcnREb2N1bWVudFByaW50UmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVwb3J0aW5nRG9jdW1lbnRQZGZSZXF1ZXN0KV09XCJyZXBvcnREb2N1bWVudFBkZlJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoYWRkaXRpb25hbEZpbGVDaGFuZ2VFdmVudCk9XCJ1cHNlcnREb2N1bWVudCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChva0NsaWNrKT1cImhhbmRsZVNlbmRNZXRob2RPa0NsaWNrKCRldmVudClcIlxyXG4gICAgPjwvY28tc2VuZC1tZXRob2QtZGlhbG9nPlxyXG4gICAgPGNvLWRpZ2l0YWwtc2lnbmF0dXJlXHJcbiAgICAgIFtkb2N1bWVudElkXT1cInNpZ25hdHVyZURvY3VtZW50SWRcIlxyXG4gICAgICAoZG9jdW1lbnRTdG9yZWQpPVwiY29tbWl0QW5kUmVmcmVzaFRyYW5zYWN0aW9uKClcIlxyXG4gICAgPjwvY28tZGlnaXRhbC1zaWduYXR1cmU+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblF1aWNrQWNjZXNzT3ZlcnZpZXdDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvblF1aWNrQWNjZXNzU2VuZE1ldGhvZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBAVmlld0NoaWxkKFRyYW5zYWN0aW9uU2VuZERvY3VtZW50c0NvbXBvbmVudClcclxuICBwdWJsaWMgc2VuZERvY3VtZW50c0NvbXBvbmVudDogVHJhbnNhY3Rpb25TZW5kRG9jdW1lbnRzQ29tcG9uZW50O1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3ZlcnZpZXdcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QgPSBuZXcgUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdCgpO1xyXG4gIHB1YmxpYyByZXBvcnREb2N1bWVudFByaW50UmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0KCk7XHJcbiAgcHVibGljIHJlcG9ydERvY3VtZW50UGRmUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KCk7XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBlbWFpbERvY3VtZW50KHJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QpIHtcclxuICAgIGlmICh0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuc2VsZWN0ZWQpIHtcclxuICAgICAgY29uc3QgZW1haWxIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uUmVxdWVzdDogRW1haWxIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgRW1haWxIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCgpLCByZXF1ZXN0KTtcclxuICAgICAgdGhpcy5fcHJlcGFyZUhpc3RvcmljUmVxdWVzdChlbWFpbEhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KTtcclxuICAgICAgYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZW1haWxIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uKGVtYWlsSGlzdG9yaWNPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBlbWFpbE9yZGVyQ29uZmlybWF0aW9uUmVxdWVzdDogRW1haWxPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IEVtYWlsT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KCksIHJlcXVlc3QpO1xyXG4gICAgICBjb25zdCByZXN1bHQ6IENvRG9jdW1lbnQgfCBib29sZWFuID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZW1haWxPcmRlckNvbmZpcm1hdGlvbihlbWFpbE9yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCk7XHJcbiAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBDb0RvY3VtZW50KSB7XHJcbiAgICAgICAgdGhpcy5zaWduYXR1cmVEb2N1bWVudElkID0gcmVzdWx0LmRvY3VtZW50SWQ7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldERlZmF1bHRFbWFpbEFkZHJlc3NMaXN0KCk6IFByb21pc2U8c3RyaW5nW10+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXREZWZhdWx0RW1haWxBZGRyZXNzTGlzdEZvck9yZGVyQ29uZmlybWF0aW9uKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEVtYWlsTGF5b3V0cygpOiBQcm9taXNlPFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsW10+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRPcmRlckNvbmZpcm1hdGlvbkVtYWlsTGF5b3V0cyh0aGlzLnRyYW5zYWN0aW9uSW5mby51dWlkKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRQcmludExheW91dHMoKTogUHJvbWlzZTxSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0T3JkZXJDb25maXJtYXRpb25QcmludExheW91dHModGhpcy50cmFuc2FjdGlvbkluZm8udXVpZCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgcGRmRG9jdW1lbnQocmVxdWVzdDogUGRmT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50LnNlbGVjdGVkKSB7XHJcbiAgICAgIGNvbnN0IHBkZkhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0OiBQZGZIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgUGRmSGlzdG9yaWNPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QoKSwgcmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVIaXN0b3JpY1JlcXVlc3QocGRmSGlzdG9yaWNPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QpO1xyXG4gICAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5wZGZIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uKHBkZkhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcGRmT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0OiBQZGZPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IFBkZk9yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCgpLCByZXF1ZXN0KTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UucGRmT3JkZXJDb25maXJtYXRpb24ocGRmT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KS50aGVuKChyZXN1bHQ6IENvRG9jdW1lbnQgfCBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIENvRG9jdW1lbnQpIHtcclxuICAgICAgICAgIHRoaXMuc2lnbmF0dXJlRG9jdW1lbnRJZCA9IHJlc3VsdC5kb2N1bWVudElkO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFzeW5jIHByaW50RG9jdW1lbnQocmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCkge1xyXG4gICAgaWYgKHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5zZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBwcmludEhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0OiBQcmludEhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBQcmludEhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KCksIHJlcXVlc3QpO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlSGlzdG9yaWNSZXF1ZXN0KHByaW50SGlzdG9yaWNPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QpO1xyXG4gICAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5wcmludEhpc3RvcmljT3JkZXJDb25maXJtYXRpb24ocHJpbnRIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHByaW50T3JkZXJDb25maXJtYXRpb25SZXF1ZXN0OiBQcmludE9yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgUHJpbnRPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QoKSwgcmVxdWVzdCk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnByaW50T3JkZXJDb25maXJtYXRpb24ocHJpbnRPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QpLnRoZW4oKHJlc3VsdDogQ29Eb2N1bWVudCB8IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgQ29Eb2N1bWVudCkge1xyXG4gICAgICAgICAgdGhpcy5zaWduYXR1cmVEb2N1bWVudElkID0gcmVzdWx0LmRvY3VtZW50SWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0RGVmYXVsdFNlbmRNZXRob2QoKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRPcmRlckNvbmZpcm1hdGlvbkRlZmF1bHRTZW5kTWV0aG9kKHRoaXMudHJhbnNhY3Rpb25JbmZvLnJlbGF0aW9uLnJlbGF0aW9uSWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZUhpc3RvcmljUmVxdWVzdChyZXF1ZXN0OiBFbWFpbEhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0IHwgUHJpbnRIaXN0b3JpY09yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCB8IFBkZkhpc3RvcmljT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KTogdm9pZCB7XHJcbiAgICByZXF1ZXN0LnJlcG9ydERhdGFJZCA9IHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5hY3RpdmVSZXBvcnQucmVwb3J0SWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -40,6 +40,8 @@ export class TransactionQuickAccessSendMethodBaseComponent extends TransactionHe
|
|
|
40
40
|
this.showSendMethodDialog = false;
|
|
41
41
|
this.sendMethods = sendMethodsWithIcon;
|
|
42
42
|
this.historicReports = [];
|
|
43
|
+
this.additionalFileContents = '';
|
|
44
|
+
this.additionalFileName = '';
|
|
43
45
|
}
|
|
44
46
|
ngOnInit() {
|
|
45
47
|
super.ngOnInit();
|
|
@@ -47,6 +49,11 @@ export class TransactionQuickAccessSendMethodBaseComponent extends TransactionHe
|
|
|
47
49
|
this._getDefaultSendMethod();
|
|
48
50
|
this._getEmailLayouts();
|
|
49
51
|
this._getPrintLayouts();
|
|
52
|
+
this.isDocSignEnabled = this.screenConfigService.getObjectConfigurationFor(this.cfgNames.IsDocSignEnabled).immediatelyVisible();
|
|
53
|
+
this.isAdditionalDocEnabled = this.screenConfigService.getObjectConfigurationFor(this.cfgNames.IsAdditionalDocEnabled).immediatelyVisible();
|
|
54
|
+
if (this.isAdditionalDocEnabled) {
|
|
55
|
+
this._getTermsAndConditionsForm();
|
|
56
|
+
}
|
|
50
57
|
}
|
|
51
58
|
transactionSet() {
|
|
52
59
|
this.reportDocumentEmailRequest.transId = this.transactionInfo.id;
|
|
@@ -117,6 +124,16 @@ export class TransactionQuickAccessSendMethodBaseComponent extends TransactionHe
|
|
|
117
124
|
commitAndRefreshTransaction() {
|
|
118
125
|
this.transactionService.commitAndRefreshTransaction();
|
|
119
126
|
}
|
|
127
|
+
upsertDocument(doc) {
|
|
128
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
const response = yield this.transactionService.mergeDocumentOnTransaction(this.transactionInfo.id.toString(), doc);
|
|
130
|
+
if (response) {
|
|
131
|
+
this.showSendMethodDialog = false;
|
|
132
|
+
yield this.dialogService.showToast('DATA_SAVED', true);
|
|
133
|
+
this.dialogService.hideToastAfterMs(2000);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
120
137
|
_getPrinters() {
|
|
121
138
|
this.transactionService.getPrinters().then((printerList) => {
|
|
122
139
|
this.printerList = printerList;
|
|
@@ -164,6 +181,12 @@ export class TransactionQuickAccessSendMethodBaseComponent extends TransactionHe
|
|
|
164
181
|
}
|
|
165
182
|
});
|
|
166
183
|
}
|
|
184
|
+
_getTermsAndConditionsForm() {
|
|
185
|
+
this.transactionService.getTermsAndConditionsForm(this.transactionInfo.id).then(result => {
|
|
186
|
+
this.additionalFileContents = result;
|
|
187
|
+
this.additionalFileName = this.transactionInfo.transactionKind + '_' + this.transactionInfo.transactionNr.toString();
|
|
188
|
+
});
|
|
189
|
+
}
|
|
167
190
|
}
|
|
168
191
|
TransactionQuickAccessSendMethodBaseComponent.decorators = [
|
|
169
192
|
{ type: Directive }
|
|
@@ -180,4 +203,4 @@ TransactionQuickAccessSendMethodBaseComponent.ctorParameters = () => [
|
|
|
180
203
|
{ type: ChangeDetectorRef },
|
|
181
204
|
{ type: TransactionDialogService }
|
|
182
205
|
];
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLXNlbmQtbWV0aG9kLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1zZW5kLW1ldGhvZC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUduRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUUzRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFFbEYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBSWxGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUdoRixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztB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QjtZQWdCakIsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1lbWFpbC5ibyc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnR9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLXByaW50LmJvJztcclxuaW1wb3J0IHtDb21tdW5pY2F0aW9uVHlwZX0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL2VudW0vY29tbXVuaWNhdGlvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQge0NvbnRhY3RPcHRpb259IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jb250YWN0LW9wdGlvbi5ibyc7XHJcbmltcG9ydCB7c2VuZE1ldGhvZHNXaXRoSWNvbn0gZnJvbSAnQGNvbGlqbml0L3NoYXJlZGNvbXBvbmVudHMnO1xyXG5pbXBvcnQge1NlbmRNZXRob2RUeXBlfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3NlbmQtbWV0aG9kLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LXBkZi1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0gZnJvbSAnLi4vLi4vZW51bS90cmFuc2FjdGlvbi10eXBlLWNhdGVnb3J5LmVudW0nO1xyXG5pbXBvcnQge1ByaW50ZXJ9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3ByaW50ZXIuYm8nO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1lbWFpbC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wcmludC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge0xheW91dENvZGV9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL2xheW91dC1jb2RlLmVudW0nO1xyXG5pbXBvcnQge0hpc3RvcmljUmVwb3J0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvaGlzdG9yaWMtcmVwb3J0LmJvJztcclxuaW1wb3J0IHtEaWFsb2dSZXNwb25zZUludGVyZmFjZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL2RpYWxvZy1yZXNwb25zZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7QXBwUG9wdXBCdXR0b25UeXBlfSBmcm9tICcuLi9jb3JlL2VudW0vYXBwLXBvcHVwLWJ1dHRvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyU2VydmljZX0gZnJvbSAnLi4vY29yZS9iYXNlL3NlcnZpY2UvdHJhbnNhY3Rpb24taGVhZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vdHJhbnNhY3Rpb24tc2VhcmNoL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWhlYWRlci1iYXNlLmNvbXBvbmVudCc7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NTZW5kTWV0aG9kQmFzZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uSGVhZGVyQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IHNlbmRNZXRob2RUeXBlOiB0eXBlb2YgU2VuZE1ldGhvZFR5cGUgPSBTZW5kTWV0aG9kVHlwZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk6IHR5cGVvZiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG5cclxuICBwdWJsaWMgcHJpbnRlckxpc3Q6IFByaW50ZXJbXSA9IFtdO1xyXG4gIHB1YmxpYyBlbWFpbExheW91dHM6IFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsW10gPSBbXTtcclxuICBwdWJsaWMgcHJpbnRMYXlvdXRzOiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludFtdID0gW107XHJcbiAgcHVibGljIGRlZmF1bHRTZW5kTWV0aG9kOiBzdHJpbmc7XHJcbiAgcHVibGljIGRlZmF1bHRTZW5kTWV0aG9kSWNvbjogc3RyaW5nO1xyXG4gIHB1YmxpYyBlbWFpbEFkZHJlc3Nlczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgc2hvd1NlbmRNZXRob2REaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2VuZE1ldGhvZHMgPSBzZW5kTWV0aG9kc1dpdGhJY29uO1xyXG4gIHB1YmxpYyBzaWduYXR1cmVEb2N1bWVudElkOiBudW1iZXI7XHJcbiAgcHVibGljIGhpc3RvcmljUmVwb3J0czogSGlzdG9yaWNSZXBvcnRbXSA9IFtdO1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3Q7XHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0O1xyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZXBvcnREb2N1bWVudFBkZlJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3Q7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHNlYXJjaFNlcnZpY2U6IFRyYW5zYWN0aW9uU2VhcmNoU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2U6IFRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyBzY3JlZW5Db25maWdTZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGltYWdlU2VydmljZTogVHJhbnNhY3Rpb25JbWFnZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByb3RlY3RlZCBkaWFsb2dTZXJ2aWNlOiBUcmFuc2FjdGlvbkRpYWxvZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSwgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsIGljb25DYWNoZVNlcnZpY2UsIHNjcmVlbkNvbmZpZ1NlcnZpY2UsIGltYWdlU2VydmljZSwgZGljdGlvbmFyeVNlcnZpY2UsIHRyYW5zYWN0aW9uU2VydmljZSwgY2hhbmdlRGV0ZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5fZ2V0UHJpbnRlcnMoKTtcclxuICAgIHRoaXMuX2dldERlZmF1bHRTZW5kTWV0aG9kKCk7XHJcbiAgICB0aGlzLl9nZXRFbWFpbExheW91dHMoKTtcclxuICAgIHRoaXMuX2dldFByaW50TGF5b3V0cygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uU2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdC50cmFuc0lkID0gdGhpcy50cmFuc2FjdGlvbkluZm8uaWQ7XHJcbiAgICB0aGlzLnJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0LnRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgIHRoaXMucmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0LnRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWxhdGlvblNldCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZW1haWxBZGRyZXNzZXMubGVuZ3RoID0gMDtcclxuICAgIGNvbnN0IGVtYWlsQ29udGFjdE9wdGlvbnM6IENvbnRhY3RPcHRpb25bXSA9IHRoaXMudHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlLnJlbGF0aW9uLmNvbnRhY3RPcHRpb25zLmZpbHRlcihjbyA9PiBjby50eXBlID09PSBDb21tdW5pY2F0aW9uVHlwZS5FbWFpbCk7XHJcbiAgICBjb25zdCBkZWZhdWx0RW1haWxDb250YWN0T3B0aW9uOiBDb250YWN0T3B0aW9uID0gZW1haWxDb250YWN0T3B0aW9ucy5maW5kKGNvID0+IGNvLmxvd2VzdFNlcXVlbmNlKTtcclxuICAgIHRoaXMuZW1haWxBZGRyZXNzZXMgPSBlbWFpbENvbnRhY3RPcHRpb25zLm1hcChlID0+IGUudmFsdWUpO1xyXG4gICAgdGhpcy5nZXREZWZhdWx0RW1haWxBZGRyZXNzTGlzdCgpLnRoZW4oKGFkZHJlc3Nlczogc3RyaW5nW10pID0+IHtcclxuICAgICAgaWYgKGFkZHJlc3NlcyAmJiBhZGRyZXNzZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMucmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3QudG9BZGRyZXNzZXMgPSBhZGRyZXNzZXMuam9pbignOycpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3QudG9BZGRyZXNzZXMgPSBkZWZhdWx0RW1haWxDb250YWN0T3B0aW9uID8gZGVmYXVsdEVtYWlsQ29udGFjdE9wdGlvbi52YWx1ZSA6ICcnO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIaXN0b3JpY0RvY3VtZW50cygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEhpc3RvcmljRG9jdW1lbnRzKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLCBMYXlvdXRDb2RlLk9yZGVyQ29uZmlybWF0aW9uKVxyXG4gICAgICAudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy5oaXN0b3JpY1JlcG9ydHMgPSByZXN1bHQ7XHJcbiAgICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVNlbmRNZXRob2RPa0NsaWNrKG1ldGhvZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5oaXN0b3JpY1JlcG9ydHMubGVuZ3RoID4gMCAmJiAobWV0aG9kID09PSBTZW5kTWV0aG9kVHlwZS5FbWFpbCB8fCBtZXRob2QgPT09IFNlbmRNZXRob2RUeXBlLlBkZikpIHtcclxuICAgICAgY29uc3QgcmVzcG9uc2U6IERpYWxvZ1Jlc3BvbnNlSW50ZXJmYWNlID0gYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dZZXNObygnUVVFU1RJT04nLCAnUVVFU1RJT05fRE9DVU1FTlRfQUxSRUFEWV9QUklOVEVEJyk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5idXR0b24gPT09IEFwcFBvcHVwQnV0dG9uVHlwZS5ZZXMpIHtcclxuICAgICAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gZmFsc2U7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVTZW5kKG1ldGhvZCk7XHJcbiAgICAgICAgdGhpcy5fc2V0RGVmYXVsdE1ldGhvZChtZXRob2QpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gZmFsc2U7XHJcbiAgICAgIGF3YWl0IHRoaXMuaGFuZGxlU2VuZChtZXRob2QpO1xyXG4gICAgICB0aGlzLl9zZXREZWZhdWx0TWV0aG9kKG1ldGhvZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2VuZChtZXRob2Q6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5zaG93TG9hZGVyID0gdHJ1ZTtcclxuICAgIHN3aXRjaCAobWV0aG9kKSB7XHJcbiAgICAgIGNhc2UgU2VuZE1ldGhvZFR5cGUuUHJpbnQ6XHJcbiAgICAgICAgYXdhaXQgdGhpcy5wcmludERvY3VtZW50KHRoaXMucmVwb3J0RG9jdW1lbnRQcmludFJlcXVlc3QpO1xyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFNlbmRNZXRob2RUeXBlLkVtYWlsOlxyXG4gICAgICAgIGF3YWl0IHRoaXMuZW1haWxEb2N1bWVudCh0aGlzLnJlcG9ydERvY3VtZW50RW1haWxSZXF1ZXN0KTtcclxuICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTZW5kTWV0aG9kVHlwZS5QZGY6XHJcbiAgICAgICAgYXdhaXQgdGhpcy5wZGZEb2N1bWVudCh0aGlzLnJlcG9ydERvY3VtZW50UGRmUmVxdWVzdCk7XHJcbiAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuZ2V0SGlzdG9yaWNEb2N1bWVudHMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb21taXRBbmRSZWZyZXNoVHJhbnNhY3Rpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5jb21taXRBbmRSZWZyZXNoVHJhbnNhY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBwcmludERvY3VtZW50KHJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3QpO1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZW1haWxEb2N1bWVudChyZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0KTtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHBkZkRvY3VtZW50KHJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3QpO1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RW1haWxMYXlvdXRzKCk6IFByb21pc2U8UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWxbXT47XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRQcmludExheW91dHMoKTogUHJvbWlzZTxSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludFtdPjtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldERlZmF1bHRFbWFpbEFkZHJlc3NMaXN0KCk6IFByb21pc2U8c3RyaW5nW10+O1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RGVmYXVsdFNlbmRNZXRob2QoKTogUHJvbWlzZTxudW1iZXI+O1xyXG5cclxuICBwcml2YXRlIF9nZXRQcmludGVycygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldFByaW50ZXJzKCkudGhlbigocHJpbnRlckxpc3Q6IFByaW50ZXJbXSkgPT4ge1xyXG4gICAgICB0aGlzLnByaW50ZXJMaXN0ID0gcHJpbnRlckxpc3Q7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldERlZmF1bHRTZW5kTWV0aG9kKCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXREZWZhdWx0U2VuZE1ldGhvZCgpLnRoZW4oKG1ldGhvZDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGlmIChtZXRob2QgIT09IG51bGwgJiYgbWV0aG9kICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLl9zZXREZWZhdWx0TWV0aG9kKG1ldGhvZC50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX3NldERlZmF1bHRNZXRob2QobWV0aG9kOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNlbmRNZXRob2QgPSB0aGlzLnNlbmRNZXRob2RzLmZpbmQoc20gPT4gc20uY29kZSA9PT0gbWV0aG9kKTtcclxuICAgIGlmIChzZW5kTWV0aG9kKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdFNlbmRNZXRob2QgPSBzZW5kTWV0aG9kLmNvZGU7XHJcbiAgICAgIHRoaXMuZGVmYXVsdFNlbmRNZXRob2RJY29uID0gc2VuZE1ldGhvZC5pY29uO1xyXG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldEVtYWlsTGF5b3V0cygpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0RW1haWxMYXlvdXRzKCkudGhlbigobGF5b3V0czogUmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWxbXSkgPT4ge1xyXG4gICAgICB0aGlzLmVtYWlsTGF5b3V0cyA9IGxheW91dHM7XHJcbiAgICAgIGlmICh0aGlzLmVtYWlsTGF5b3V0cyAmJiB0aGlzLmVtYWlsTGF5b3V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdExheW91dDogUmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWwgPSB0aGlzLmVtYWlsTGF5b3V0cy5maW5kKGUgPT4gZS5pc0RlZmF1bHQpO1xyXG4gICAgICAgIGlmIChkZWZhdWx0TGF5b3V0KSB7XHJcbiAgICAgICAgICB0aGlzLnJlcG9ydERvY3VtZW50RW1haWxSZXF1ZXN0LnJlcG9ydElkID0gZGVmYXVsdExheW91dC5yZXBvcnRJZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0UHJpbnRMYXlvdXRzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRQcmludExheW91dHMoKS50aGVuKChsYXlvdXRzOiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludFtdKSA9PiB7XHJcbiAgICAgIHRoaXMucHJpbnRMYXlvdXRzID0gbGF5b3V0cztcclxuICAgICAgaWYgKHRoaXMucHJpbnRMYXlvdXRzICYmIHRoaXMucHJpbnRMYXlvdXRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCBkZWZhdWx0TGF5b3V0OiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludCA9IHRoaXMucHJpbnRMYXlvdXRzLmZpbmQocCA9PiBwLmlzRGVmYXVsdCk7XHJcbiAgICAgICAgaWYgKGRlZmF1bHRMYXlvdXQpIHtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVwb3J0RG9jdW1lbnRQcmludFJlcXVlc3QucmVwb3J0SWQgPSBkZWZhdWx0TGF5b3V0LnJlcG9ydElkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMucmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0LnJlcG9ydElkID0gZGVmYXVsdExheW91dC5yZXBvcnRJZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLXNlbmQtbWV0aG9kLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1zZW5kLW1ldGhvZC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUduRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUUzRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFFbEYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBUWxGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUdoRixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztB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QUF3QjtZQVB4Qix1QkFBdUI7WUFDdkIsZ0JBQWdCO1lBQ2hCLHFDQUFxQztZQUNyQyx1QkFBdUI7WUFDdkIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQTFCbEIsaUJBQWlCO1lBb0JqQix3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWx9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLWVtYWlsLmJvJztcclxuaW1wb3J0IHtSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0LWxheW91dC1zZWxlY3Rpb24tcHJpbnQuYm8nO1xyXG5pbXBvcnQge0NvbW11bmljYXRpb25UeXBlfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvZW51bS9jb21tdW5pY2F0aW9uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7Q29udGFjdE9wdGlvbn0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2NvbnRhY3Qtb3B0aW9uLmJvJztcclxuaW1wb3J0IHtzZW5kTWV0aG9kc1dpdGhJY29ufSBmcm9tICdAY29saWpuaXQvc2hhcmVkY29tcG9uZW50cyc7XHJcbmltcG9ydCB7U2VuZE1ldGhvZFR5cGV9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vc2VuZC1tZXRob2QtdHlwZS5lbnVtJztcclxuaW1wb3J0IHtSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnRpbmctZG9jdW1lbnQtcGRmLWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bSc7XHJcbmltcG9ydCB7UHJpbnRlcn0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcHJpbnRlci5ibyc7XHJcbmltcG9ydCB7XHJcbiAgUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdFxyXG59IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1lbWFpbC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1xyXG4gIFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3RcclxufSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnRpbmctZG9jdW1lbnQtcHJpbnQtc2lnbi1kb2MtYmFzZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtMYXlvdXRDb2RlfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9sYXlvdXQtY29kZS5lbnVtJztcclxuaW1wb3J0IHtIaXN0b3JpY1JlcG9ydH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2hpc3RvcmljLXJlcG9ydC5ibyc7XHJcbmltcG9ydCB7RGlhbG9nUmVzcG9uc2VJbnRlcmZhY2V9IGZyb20gJy4uLy4uL2ludGVyZmFjZS9kaWFsb2ctcmVzcG9uc2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkRpYWxvZ1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0FwcFBvcHVwQnV0dG9uVHlwZX0gZnJvbSAnLi4vY29yZS9lbnVtL2FwcC1wb3B1cC1idXR0b24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2V9IGZyb20gJy4uL2NvcmUvYmFzZS9zZXJ2aWNlL3RyYW5zYWN0aW9uLWhlYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2V9IGZyb20gJy4uL3RyYW5zYWN0aW9uLXNlYXJjaC9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNlYXJjaC5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlckJhc2VDb21wb25lbnR9IGZyb20gJy4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1oZWFkZXItYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudFwiO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvblF1aWNrQWNjZXNzU2VuZE1ldGhvZEJhc2VDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkhlYWRlckJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gIHB1YmxpYyByZWFkb25seSBzZW5kTWV0aG9kVHlwZTogdHlwZW9mIFNlbmRNZXRob2RUeXBlID0gU2VuZE1ldGhvZFR5cGU7XHJcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5OiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuXHJcbiAgcHVibGljIHByaW50ZXJMaXN0OiBQcmludGVyW10gPSBbXTtcclxuICBwdWJsaWMgZW1haWxMYXlvdXRzOiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbFtdID0gW107XHJcbiAgcHVibGljIHByaW50TGF5b3V0czogUmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnRbXSA9IFtdO1xyXG4gIHB1YmxpYyBkZWZhdWx0U2VuZE1ldGhvZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBkZWZhdWx0U2VuZE1ldGhvZEljb246IHN0cmluZztcclxuICBwdWJsaWMgZW1haWxBZGRyZXNzZXM6IHN0cmluZ1tdID0gW107XHJcbiAgcHVibGljIHNob3dTZW5kTWV0aG9kRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNlbmRNZXRob2RzID0gc2VuZE1ldGhvZHNXaXRoSWNvbjtcclxuICBwdWJsaWMgc2lnbmF0dXJlRG9jdW1lbnRJZDogbnVtYmVyO1xyXG4gIHB1YmxpYyBoaXN0b3JpY1JlcG9ydHM6IEhpc3RvcmljUmVwb3J0W10gPSBbXTtcclxuICBwdWJsaWMgaXNEb2NTaWduRW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgaXNBZGRpdGlvbmFsRG9jRW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgYWRkaXRpb25hbEZpbGVDb250ZW50czogYW55ID0gJyc7XHJcbiAgcHVibGljIGFkZGl0aW9uYWxGaWxlTmFtZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdDtcclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVwb3J0RG9jdW1lbnRQcmludFJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3Q7XHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlcG9ydERvY3VtZW50UGRmUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VhcmNoU2VydmljZTogVHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uSGVhZGVyU2VydmljZTogVHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ1NlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IFRyYW5zYWN0aW9uRGlhbG9nU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIodHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlLCB0cmFuc2FjdGlvbkV2ZW50U2VydmljZSwgaWNvbkNhY2hlU2VydmljZSwgc2NyZWVuQ29uZmlnU2VydmljZSwgaW1hZ2VTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSwgdHJhbnNhY3Rpb25TZXJ2aWNlLCBjaGFuZ2VEZXRlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLl9nZXRQcmludGVycygpO1xyXG4gICAgdGhpcy5fZ2V0RGVmYXVsdFNlbmRNZXRob2QoKTtcclxuICAgIHRoaXMuX2dldEVtYWlsTGF5b3V0cygpO1xyXG4gICAgdGhpcy5fZ2V0UHJpbnRMYXlvdXRzKCk7XHJcbiAgICB0aGlzLmlzRG9jU2lnbkVuYWJsZWQgPSB0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLklzRG9jU2lnbkVuYWJsZWQpLmltbWVkaWF0ZWx5VmlzaWJsZSgpXHJcbiAgICB0aGlzLmlzQWRkaXRpb25hbERvY0VuYWJsZWQgPSB0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLklzQWRkaXRpb25hbERvY0VuYWJsZWQpLmltbWVkaWF0ZWx5VmlzaWJsZSgpXHJcblxyXG4gICAgaWYgKHRoaXMuaXNBZGRpdGlvbmFsRG9jRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLl9nZXRUZXJtc0FuZENvbmRpdGlvbnNGb3JtKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNhY3Rpb25TZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcG9ydERvY3VtZW50RW1haWxSZXF1ZXN0LnRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgIHRoaXMucmVwb3J0RG9jdW1lbnRQcmludFJlcXVlc3QudHJhbnNJZCA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgdGhpcy5yZXBvcnREb2N1bWVudFBkZlJlcXVlc3QudHJhbnNJZCA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbGF0aW9uU2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbWFpbEFkZHJlc3Nlcy5sZW5ndGggPSAwO1xyXG4gICAgY29uc3QgZW1haWxDb250YWN0T3B0aW9uczogQ29udGFjdE9wdGlvbltdID0gdGhpcy50cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UucmVsYXRpb24uY29udGFjdE9wdGlvbnMuZmlsdGVyKGNvID0+IGNvLnR5cGUgPT09IENvbW11bmljYXRpb25UeXBlLkVtYWlsKTtcclxuICAgIGNvbnN0IGRlZmF1bHRFbWFpbENvbnRhY3RPcHRpb246IENvbnRhY3RPcHRpb24gPSBlbWFpbENvbnRhY3RPcHRpb25zLmZpbmQoY28gPT4gY28ubG93ZXN0U2VxdWVuY2UpO1xyXG4gICAgdGhpcy5lbWFpbEFkZHJlc3NlcyA9IGVtYWlsQ29udGFjdE9wdGlvbnMubWFwKGUgPT4gZS52YWx1ZSk7XHJcbiAgICB0aGlzLmdldERlZmF1bHRFbWFpbEFkZHJlc3NMaXN0KCkudGhlbigoYWRkcmVzc2VzOiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgICBpZiAoYWRkcmVzc2VzICYmIGFkZHJlc3Nlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5yZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdC50b0FkZHJlc3NlcyA9IGFkZHJlc3Nlcy5qb2luKCc7Jyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdC50b0FkZHJlc3NlcyA9IGRlZmF1bHRFbWFpbENvbnRhY3RPcHRpb24gPyBkZWZhdWx0RW1haWxDb250YWN0T3B0aW9uLnZhbHVlIDogJyc7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEhpc3RvcmljRG9jdW1lbnRzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0SGlzdG9yaWNEb2N1bWVudHModGhpcy50cmFuc2FjdGlvbkluZm8uaWQsIExheW91dENvZGUuT3JkZXJDb25maXJtYXRpb24pXHJcbiAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICB0aGlzLmhpc3RvcmljUmVwb3J0cyA9IHJlc3VsdDtcclxuICAgICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2VuZE1ldGhvZE9rQ2xpY2sobWV0aG9kOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmhpc3RvcmljUmVwb3J0cy5sZW5ndGggPiAwICYmIChtZXRob2QgPT09IFNlbmRNZXRob2RUeXBlLkVtYWlsIHx8IG1ldGhvZCA9PT0gU2VuZE1ldGhvZFR5cGUuUGRmKSkge1xyXG4gICAgICBjb25zdCByZXNwb25zZTogRGlhbG9nUmVzcG9uc2VJbnRlcmZhY2UgPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1llc05vKCdRVUVTVElPTicsICdRVUVTVElPTl9ET0NVTUVOVF9BTFJFQURZX1BSSU5URUQnKTtcclxuICAgICAgaWYgKHJlc3BvbnNlLmJ1dHRvbiA9PT0gQXBwUG9wdXBCdXR0b25UeXBlLlllcykge1xyXG4gICAgICAgIHRoaXMuc2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZTtcclxuICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZVNlbmQobWV0aG9kKTtcclxuICAgICAgICB0aGlzLl9zZXREZWZhdWx0TWV0aG9kKG1ldGhvZCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZTtcclxuICAgICAgYXdhaXQgdGhpcy5oYW5kbGVTZW5kKG1ldGhvZCk7XHJcbiAgICAgIHRoaXMuX3NldERlZmF1bHRNZXRob2QobWV0aG9kKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTZW5kKG1ldGhvZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xyXG4gICAgc3dpdGNoIChtZXRob2QpIHtcclxuICAgICAgY2FzZSBTZW5kTWV0aG9kVHlwZS5QcmludDpcclxuICAgICAgICBhd2FpdCB0aGlzLnByaW50RG9jdW1lbnQodGhpcy5yZXBvcnREb2N1bWVudFByaW50UmVxdWVzdCk7XHJcbiAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgU2VuZE1ldGhvZFR5cGUuRW1haWw6XHJcbiAgICAgICAgYXdhaXQgdGhpcy5lbWFpbERvY3VtZW50KHRoaXMucmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3QpO1xyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFNlbmRNZXRob2RUeXBlLlBkZjpcclxuICAgICAgICBhd2FpdCB0aGlzLnBkZkRvY3VtZW50KHRoaXMucmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0KTtcclxuICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5nZXRIaXN0b3JpY0RvY3VtZW50cygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbW1pdEFuZFJlZnJlc2hUcmFuc2FjdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmNvbW1pdEFuZFJlZnJlc2hUcmFuc2FjdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHVwc2VydERvY3VtZW50KGRvYzogQ29Eb2N1bWVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IENvRG9jdW1lbnQgPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5tZXJnZURvY3VtZW50T25UcmFuc2FjdGlvbih0aGlzLnRyYW5zYWN0aW9uSW5mby5pZC50b1N0cmluZygpLCBkb2MpO1xyXG4gICAgaWYgKHJlc3BvbnNlKSB7XHJcbiAgICAgIHRoaXMuc2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZTtcclxuICAgICAgYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dUb2FzdCgnREFUQV9TQVZFRCcsIHRydWUpO1xyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuaGlkZVRvYXN0QWZ0ZXJNcygyMDAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcHJpbnREb2N1bWVudChyZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0KTtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGVtYWlsRG9jdW1lbnQocmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdCk7XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBwZGZEb2N1bWVudChyZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KTtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldEVtYWlsTGF5b3V0cygpOiBQcm9taXNlPFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsW10+O1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0UHJpbnRMYXlvdXRzKCk6IFByb21pc2U8UmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnRbXT47XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXREZWZhdWx0RW1haWxBZGRyZXNzTGlzdCgpOiBQcm9taXNlPHN0cmluZ1tdPjtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldERlZmF1bHRTZW5kTWV0aG9kKCk6IFByb21pc2U8bnVtYmVyPjtcclxuXHJcbiAgcHJpdmF0ZSBfZ2V0UHJpbnRlcnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRQcmludGVycygpLnRoZW4oKHByaW50ZXJMaXN0OiBQcmludGVyW10pID0+IHtcclxuICAgICAgdGhpcy5wcmludGVyTGlzdCA9IHByaW50ZXJMaXN0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXREZWZhdWx0U2VuZE1ldGhvZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0RGVmYXVsdFNlbmRNZXRob2QoKS50aGVuKChtZXRob2Q6IG51bWJlcikgPT4ge1xyXG4gICAgICBpZiAobWV0aG9kICE9PSBudWxsICYmIG1ldGhvZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0RGVmYXVsdE1ldGhvZChtZXRob2QudG9TdHJpbmcoKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9zZXREZWZhdWx0TWV0aG9kKG1ldGhvZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZW5kTWV0aG9kID0gdGhpcy5zZW5kTWV0aG9kcy5maW5kKHNtID0+IHNtLmNvZGUgPT09IG1ldGhvZCk7XHJcbiAgICBpZiAoc2VuZE1ldGhvZCkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRTZW5kTWV0aG9kID0gc2VuZE1ldGhvZC5jb2RlO1xyXG4gICAgICB0aGlzLmRlZmF1bHRTZW5kTWV0aG9kSWNvbiA9IHNlbmRNZXRob2QuaWNvbjtcclxuICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRFbWFpbExheW91dHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEVtYWlsTGF5b3V0cygpLnRoZW4oKGxheW91dHM6IFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsW10pID0+IHtcclxuICAgICAgdGhpcy5lbWFpbExheW91dHMgPSBsYXlvdXRzO1xyXG4gICAgICBpZiAodGhpcy5lbWFpbExheW91dHMgJiYgdGhpcy5lbWFpbExheW91dHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRMYXlvdXQ6IFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsID0gdGhpcy5lbWFpbExheW91dHMuZmluZChlID0+IGUuaXNEZWZhdWx0KTtcclxuICAgICAgICBpZiAoZGVmYXVsdExheW91dCkge1xyXG4gICAgICAgICAgdGhpcy5yZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdC5yZXBvcnRJZCA9IGRlZmF1bHRMYXlvdXQucmVwb3J0SWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFByaW50TGF5b3V0cygpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0UHJpbnRMYXlvdXRzKCkudGhlbigobGF5b3V0czogUmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnRbXSkgPT4ge1xyXG4gICAgICB0aGlzLnByaW50TGF5b3V0cyA9IGxheW91dHM7XHJcbiAgICAgIGlmICh0aGlzLnByaW50TGF5b3V0cyAmJiB0aGlzLnByaW50TGF5b3V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdExheW91dDogUmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnQgPSB0aGlzLnByaW50TGF5b3V0cy5maW5kKHAgPT4gcC5pc0RlZmF1bHQpO1xyXG4gICAgICAgIGlmIChkZWZhdWx0TGF5b3V0KSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5yZXBvcnREb2N1bWVudFByaW50UmVxdWVzdCkge1xyXG4gICAgICAgICAgICB0aGlzLnJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0LnJlcG9ydElkID0gZGVmYXVsdExheW91dC5yZXBvcnRJZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnJlcG9ydERvY3VtZW50UGRmUmVxdWVzdCkge1xyXG4gICAgICAgICAgICB0aGlzLnJlcG9ydERvY3VtZW50UGRmUmVxdWVzdC5yZXBvcnRJZCA9IGRlZmF1bHRMYXlvdXQucmVwb3J0SWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFRlcm1zQW5kQ29uZGl0aW9uc0Zvcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRUZXJtc0FuZENvbmRpdGlvbnNGb3JtKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgIHRoaXMuYWRkaXRpb25hbEZpbGVDb250ZW50cyA9IHJlc3VsdDtcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsRmlsZU5hbWUgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgKyAnXycgKyB0aGlzLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbk5yLnRvU3RyaW5nKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|