@colijnit/transaction 257.1.0 → 257.1.2
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 +1109 -1034
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +653 -654
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/colijnit-transaction.js +654 -655
- package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +3 -3
- package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +3 -3
- package/esm2015/lib/component/checkout/checkout.component.js +4 -4
- package/esm2015/lib/component/checkout/checkout.module.js +6 -8
- package/esm2015/lib/component/core/base/transaction-lines-base.component.js +41 -4
- package/esm2015/lib/component/purchase-confirmation-lines/purchase-confirmation-lines.component.js +10 -2
- package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.js +143 -111
- package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.module.js +4 -2
- package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line-base.component.js +2 -2
- package/esm2015/lib/component/transaction-line-purchase-confirmation/transaction-line-purchase-confirmation.component.js +37 -21
- package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +16 -14
- package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.js +4 -36
- package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +8 -37
- package/esm2015/lib/component/transaction-lines-popup/transaction-lines-popup.component.js +15 -10
- package/esm2015/lib/component/transaction-navigation-button/transaction-navigation-button.component.js +4 -2
- package/esm2015/lib/component/transaction-navigation-button-list/transaction-navigation-button-list.component.js +12 -5
- package/esm2015/lib/enum/checkout-cfg-name.enum.js +4 -4
- package/esm2015/lib/model/transaction-line-view-model.js +7 -0
- package/esm2015/lib/service/line-selection.service.js +18 -3
- package/esm2015/lib/service/purchase-confirmation.service.js +48 -1
- package/esm2015/lib/service/transaction-base.service.js +10 -6
- package/esm2015/lib/service/transaction-event.service.js +2 -1
- package/esm2015/lib/transaction-version.js +3 -3
- package/fesm2015/colijnit-transaction.js +583 -508
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.d.ts +2 -2
- package/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +2 -2
- package/lib/component/checkout/checkout.component.d.ts +2 -2
- package/lib/component/core/base/transaction-lines-base.component.d.ts +23 -2
- package/lib/component/transaction-line/transaction-line-label/style/_layout.scss +6 -0
- package/lib/component/transaction-line/transaction-overview-line/style/_layout.scss +15 -0
- package/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.d.ts +8 -2
- package/lib/component/transaction-line-purchase-confirmation/transaction-line-purchase-confirmation.component.d.ts +16 -9
- package/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.d.ts +5 -4
- package/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.d.ts +0 -19
- package/lib/component/transaction-lines/transaction-lines.component.d.ts +1 -19
- package/lib/component/transaction-lines-popup/style/_layout.scss +4 -0
- package/lib/component/transaction-lines-popup/transaction-lines-popup.component.d.ts +3 -1
- package/lib/component/transaction-navigation-button/transaction-navigation-button.component.d.ts +1 -0
- package/lib/component/transaction-navigation-button-list/style/_layout.scss +2 -0
- package/lib/component/transaction-navigation-button-list/transaction-navigation-button-list.component.d.ts +4 -0
- package/lib/enum/checkout-cfg-name.enum.d.ts +3 -3
- package/lib/model/transaction-line-view-model.d.ts +7 -0
- package/lib/service/line-selection.service.d.ts +6 -0
- package/lib/service/purchase-confirmation.service.d.ts +14 -4
- package/lib/service/transaction-event.service.d.ts +1 -0
- package/package.json +1 -1
- package/esm2015/lib/component/checkout/service/checkout-screen-configuration.service.js +0 -48
- package/lib/component/checkout/service/checkout-screen-configuration.service.d.ts +0 -12
|
@@ -1,27 +1,34 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
import { Component, HostBinding,
|
|
2
|
+
import { ChangeDetectorRef, Component, HostBinding, ViewEncapsulation } from '@angular/core';
|
|
3
3
|
import { FormMasterService } from '@colijnit/corecomponents_v12';
|
|
4
4
|
import { DocDeliveryBatch } from '@colijnit/transactionapi/build/model/doc-delivery-batch.bo';
|
|
5
5
|
import { TransactionTypeCategory } from '../../enum/transaction-type-category.enum';
|
|
6
|
-
import { TransactionLineInfo } from '@colijnit/transactionapi/build/model/transaction-line-info.bo';
|
|
7
6
|
import { TransactionEventService } from '../../service/transaction-event.service';
|
|
8
7
|
import { TransactionService } from '../../service/transaction.service';
|
|
9
8
|
import { IconCacheService } from '../../service/icon-cache.service';
|
|
9
|
+
import { TransactionScreenConfigurationService } from '../../service/transaction-screen-configuration.service';
|
|
10
|
+
import { DictionaryService } from '../../service/dictionary.service';
|
|
11
|
+
import { TransactionImageService } from '../../service/transaction-image.service';
|
|
10
12
|
import { PurchaseConfirmationService } from '../../service/purchase-confirmation.service';
|
|
13
|
+
import { TransactionLineBaseComponent } from '../core/base/transaction-line-base.component';
|
|
11
14
|
import { TransactionHeaderService } from '../core/base/service/transaction-header.service';
|
|
12
|
-
import {
|
|
15
|
+
import { TransactionLineService } from '../core/base/service/transaction-line.service';
|
|
13
16
|
import { Icon } from '../../enum/icon.enum';
|
|
14
|
-
export class TransactionLinePurchaseConfirmationComponent {
|
|
15
|
-
constructor(transactionHeaderService, iconCacheService, purchaseConfirmationService,
|
|
17
|
+
export class TransactionLinePurchaseConfirmationComponent extends TransactionLineBaseComponent {
|
|
18
|
+
constructor(transactionHeaderService, transactionLineService, transactionEventService, service, iconCacheService, transactionScreenConfigurationService, purchaseConfirmationService, dictionaryService, imageService, changeDetector) {
|
|
19
|
+
super(transactionHeaderService, transactionLineService, transactionEventService, iconCacheService, transactionScreenConfigurationService, imageService, dictionaryService, service, changeDetector);
|
|
16
20
|
this.transactionHeaderService = transactionHeaderService;
|
|
21
|
+
this.transactionLineService = transactionLineService;
|
|
22
|
+
this.transactionEventService = transactionEventService;
|
|
23
|
+
this.service = service;
|
|
17
24
|
this.iconCacheService = iconCacheService;
|
|
25
|
+
this.transactionScreenConfigurationService = transactionScreenConfigurationService;
|
|
18
26
|
this.purchaseConfirmationService = purchaseConfirmationService;
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
27
|
+
this.dictionaryService = dictionaryService;
|
|
28
|
+
this.imageService = imageService;
|
|
29
|
+
this.changeDetector = changeDetector;
|
|
21
30
|
this.icons = Icon;
|
|
22
31
|
this.transactionTypeCategory = TransactionTypeCategory;
|
|
23
|
-
this.transactionInfo = new TransactionInfo();
|
|
24
|
-
this.transactionLine = new TransactionLineInfo();
|
|
25
32
|
this.docDeliveryBatch = new DocDeliveryBatch();
|
|
26
33
|
this.filteredDocBatchArray = [];
|
|
27
34
|
this.maxDocAmount = 0;
|
|
@@ -33,12 +40,12 @@ export class TransactionLinePurchaseConfirmationComponent {
|
|
|
33
40
|
return true;
|
|
34
41
|
}
|
|
35
42
|
ngOnInit() {
|
|
36
|
-
|
|
43
|
+
super.ngOnInit();
|
|
44
|
+
this._subs.push(this.transactionEventService.transactionLineChanged.subscribe((line) => {
|
|
37
45
|
if (line.lineNr === this.transactionLine.lineNr) {
|
|
38
|
-
this.transactionLine = line;
|
|
39
46
|
this._updateBatchArray();
|
|
40
47
|
}
|
|
41
|
-
}), this.
|
|
48
|
+
}), this.transactionEventService.orderConfirmationReset.subscribe(() => {
|
|
42
49
|
this.showPurchaseConfirmationAI = false;
|
|
43
50
|
}), this.purchaseConfirmationService.confirmationNeeded.subscribe((needed) => {
|
|
44
51
|
this.showPurchaseConfirmationAI = needed;
|
|
@@ -48,6 +55,7 @@ export class TransactionLinePurchaseConfirmationComponent {
|
|
|
48
55
|
}
|
|
49
56
|
ngOnDestroy() {
|
|
50
57
|
this._subs.forEach(s => s.unsubscribe());
|
|
58
|
+
super.ngOnDestroy();
|
|
51
59
|
}
|
|
52
60
|
handleSaveDetailsEdit() {
|
|
53
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -67,7 +75,7 @@ export class TransactionLinePurchaseConfirmationComponent {
|
|
|
67
75
|
this.transactionLine.purchasePortalLine.docBatchArray.push(this.docDeliveryBatch);
|
|
68
76
|
}
|
|
69
77
|
this.transactionLine.purchasePortalLine.docKind = 'IB';
|
|
70
|
-
const success = yield this.
|
|
78
|
+
const success = yield this.transactionService.updatePurchasePortalLines(this.transactionInfo.id, this.transactionInfo.version, this.transactionLine.purchasePortalLine);
|
|
71
79
|
if (success) {
|
|
72
80
|
this._initNewDocDeliveryBatch();
|
|
73
81
|
this.confirmingOrder = false;
|
|
@@ -82,7 +90,7 @@ export class TransactionLinePurchaseConfirmationComponent {
|
|
|
82
90
|
return __awaiter(this, void 0, void 0, function* () {
|
|
83
91
|
row.deleteLine = 'T';
|
|
84
92
|
this.transactionLine.purchasePortalLine.docKind = 'IB';
|
|
85
|
-
const success = yield this.
|
|
93
|
+
const success = yield this.transactionService.updatePurchasePortalLines(this.transactionInfo.id, this.transactionInfo.version, this.transactionLine.purchasePortalLine);
|
|
86
94
|
if (success) {
|
|
87
95
|
this._initNewDocDeliveryBatch();
|
|
88
96
|
}
|
|
@@ -99,7 +107,12 @@ export class TransactionLinePurchaseConfirmationComponent {
|
|
|
99
107
|
handleDeliveryBatchChange() {
|
|
100
108
|
this._setMaxDocAmount();
|
|
101
109
|
}
|
|
110
|
+
transactionLineSet() {
|
|
111
|
+
super.transactionLineSet();
|
|
112
|
+
this._updateBatchArray();
|
|
113
|
+
}
|
|
102
114
|
_updateBatchArray() {
|
|
115
|
+
this._initNewDocDeliveryBatch();
|
|
103
116
|
this.filteredDocBatchArray = this.transactionLine.purchasePortalLine.docBatchArray.filter(value => value.historical.toLowerCase() === 'h' && value.docAmount >= 0);
|
|
104
117
|
this._setMaxDocAmount();
|
|
105
118
|
}
|
|
@@ -132,8 +145,8 @@ export class TransactionLinePurchaseConfirmationComponent {
|
|
|
132
145
|
.forEach((d => {
|
|
133
146
|
alreadyConfirmed = alreadyConfirmed + d.docAmount;
|
|
134
147
|
}));
|
|
135
|
-
this.docDeliveryBatch.docAmount = this.transactionLine.amount - alreadyConfirmed;
|
|
136
|
-
this.docDeliveryBatch.confirmedPrice = +this.transactionLine.purchasePortalLine.netOrderPrice;
|
|
148
|
+
this.docDeliveryBatch.docAmount = (this.transactionLine.amount !== undefined ? this.transactionLine.amount : 0) - alreadyConfirmed;
|
|
149
|
+
this.docDeliveryBatch.confirmedPrice = this.transactionLine.purchasePortalLine.netOrderPrice ? +this.transactionLine.purchasePortalLine.netOrderPrice : 0;
|
|
137
150
|
this._setMaxDocAmount();
|
|
138
151
|
}
|
|
139
152
|
}
|
|
@@ -227,14 +240,17 @@ TransactionLinePurchaseConfirmationComponent.decorators = [
|
|
|
227
240
|
];
|
|
228
241
|
TransactionLinePurchaseConfirmationComponent.ctorParameters = () => [
|
|
229
242
|
{ type: TransactionHeaderService },
|
|
243
|
+
{ type: TransactionLineService },
|
|
244
|
+
{ type: TransactionEventService },
|
|
245
|
+
{ type: TransactionService },
|
|
230
246
|
{ type: IconCacheService },
|
|
247
|
+
{ type: TransactionScreenConfigurationService },
|
|
231
248
|
{ type: PurchaseConfirmationService },
|
|
232
|
-
{ type:
|
|
233
|
-
{ type:
|
|
249
|
+
{ type: DictionaryService },
|
|
250
|
+
{ type: TransactionImageService },
|
|
251
|
+
{ type: ChangeDetectorRef }
|
|
234
252
|
];
|
|
235
253
|
TransactionLinePurchaseConfirmationComponent.propDecorators = {
|
|
236
|
-
transactionInfo: [{ type: Input }],
|
|
237
|
-
transactionLine: [{ type: Input }],
|
|
238
254
|
showClass: [{ type: HostBinding, args: ['class.co-transaction-line-purchase-confirmation',] }]
|
|
239
255
|
};
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1wdXJjaGFzZS1jb25maXJtYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tbGluZS1wdXJjaGFzZS1jb25maXJtYXRpb24vdHJhbnNhY3Rpb24tbGluZS1wdXJjaGFzZS1jb25maXJtYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNySCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUU1RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUNsRyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUlsRSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUd4RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUV6RixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDekYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBd0YxQyxNQUFNLE9BQU8sNENBQTRDO0lBdUJ2RCxZQUNTLHdCQUFrRCxFQUNsRCxnQkFBa0MsRUFD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QUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsYUFBYTthQUNoRCxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcsQ0FBQzthQUNuRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNaLGdCQUFnQixHQUFHLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNSLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUM7UUFDakYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDO1FBQzlGLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7OztZQXJPRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDJDQUEyQztnQkFDckQsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4RVQ7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGlCQUFpQjtpQkFDbEI7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQTFGTyx3QkFBd0I7WUFQeEIsZ0JBQWdCO1lBSWhCLDJCQUEyQjtZQU4zQix1QkFBdUI7WUFDdkIsa0JBQWtCOzs7OEJBdUd2QixLQUFLOzhCQUdMLEtBQUs7d0JBR0wsV0FBVyxTQUFDLGlEQUFpRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1NYXN0ZXJTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtEb2NEZWxpdmVyeUJhdGNofSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZG9jLWRlbGl2ZXJ5LWJhdGNoLmJvJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7UHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3B1cmNoYXNlLWNvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVCYXNlQ29tcG9uZW50fSBmcm9tICcuLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tbGluZS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QXJ0aWNsZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXJ0aWNsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2V9IGZyb20gJy4uL2NvcmUvYmFzZS9zZXJ2aWNlL3RyYW5zYWN0aW9uLWhlYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVTZXJ2aWNlfSBmcm9tICcuLi9jb3JlL2Jhc2Uvc2VydmljZS90cmFuc2FjdGlvbi1saW5lLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8uYm8nO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tdHJhbnNhY3Rpb24tbGluZS1wdXJjaGFzZS1jb25maXJtYXRpb24nLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhaS10b2dnbGUtYnV0dG9uLXdyYXBwZXJcIiAqbmdJZj1cInB1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZS5jb25maXJtYXRpb25BbmFseXNpc0lkXCI+XHJcbiAgICAgICAgPGNvLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidQVVJDSEFTRV9DT05GSVJNQVRJT04nIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgW2lzVG9nZ2xlQnV0dG9uXT1cInRydWVcIiBcclxuICAgICAgICAgICAgICAgIFtpc1RvZ2dsZWRdPVwic2hvd1B1cmNoYXNlQ29uZmlybWF0aW9uQUlcIiBcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93UHVyY2hhc2VDb25maXJtYXRpb25BSSA9ICFzaG93UHVyY2hhc2VDb25maXJtYXRpb25BSVwiXHJcbiAgICAgICAgPjwvY28tYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbmZpcm1hdGlvbi1kZXRhaWxzLXdyYXBwZXIgZm9ybS1hbmQtYnV0dG9uc1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93UHVyY2hhc2VDb25maXJtYXRpb25BSVwiPlxyXG4gICAgICAgICAgICAgIDxjby1mb3JtPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tZGl2IGNsYXNzPVwiaGVhZGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidTVEFURScgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXN0YXR1c2JhciBjbGFzcz1cInN0YXR1cy1iYXItd3JhcHBlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwidHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtc3RhdHVzYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdi0tPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZS1wYW5lbC1pbnB1dC1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1udW1iZXItcGlja2VyIGNsYXNzPVwic2lkZS1wYW5lbC1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJkb2NEZWxpdmVyeUJhdGNoLmRvY0Ftb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVjaW1hbHNdPVwidHJhbnNhY3Rpb25MaW5lLnNhbGVzVW5pdERlY2ltYWxzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIm1heERvY0Ftb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1udW1iZXItcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LWRhdGUgY2xhc3M9XCJzaWRlLXBhbmVsLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQ09ORklSTUVEX0RBVEUnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiZG9jRGVsaXZlcnlCYXRjaC5kb2NEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1kYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxhYmVsZWQtcHJpY2UtaW5wdXQgY2xhc3M9XCJzaWRlLXBhbmVsLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImRvY0RlbGl2ZXJ5QmF0Y2guY29uZmlybWVkUHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRFZGl0TW9kZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0NPTkZJUk1FRF9QUklDRScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1sYWJlbGVkLXByaWNlLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGUtcGFuZWwtaW5wdXQtcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBjbGFzcz1cInNpZGUtcGFuZWwtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiZG9jRGVsaXZlcnlCYXRjaC5yZWZlcmVuY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidSRUZFUkVOQ0UnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IGNsYXNzPVwic2lkZS1wYW5lbC1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJkb2NEZWxpdmVyeUJhdGNoLmRlbGl2ZXJ5QmF0Y2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZURlbGl2ZXJ5QmF0Y2hDaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RFTElWRVJZX0JBVENIJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvY28tZm9ybT5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dQdXJjaGFzZUNvbmZpcm1hdGlvbkFJXCI+XHJcbiAgICAgICAgICAgICAgPGNvLXB1cmNoYXNlLWNvbmZpcm1hdGlvbi1saW5lc1xyXG4gICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uSGVhZGVyU2VydmljZS50cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAgICAgPjwvY28tcHVyY2hhc2UtY29uZmlybWF0aW9uLWxpbmVzPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dQdXJjaGFzZUNvbmZpcm1hdGlvbkFJXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhdmUtY2FuY2VsLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNoZWNrRHVvdG9uZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0aGlzLmNvbmZpcm1pbmdPcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNhdmVEZXRhaWxzRWRpdCgpXCJcclxuICAgICAgICAgICAgICAgICAgPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc3NraW5ueSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDYW5jZWxDbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8Y28tdHJhbnNhY3Rpb24tY29uZmlybWF0aW9uLWhpc3RvcnkgKm5nSWY9XCIhc2hvd1B1cmNoYXNlQ29uZmlybWF0aW9uQUlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwiZmlsdGVyZWREb2NCYXRjaEFycmF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWxldGVSb3cpPVwiaGFuZGxlRGVsZXRlSGlzdG9yeVJvdygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RSb3cpPVwiaGFuZGxlU2VsZWN0SGlzdG9yeVJvdygkZXZlbnQpXCJcclxuICAgICAgPjwvY28tdHJhbnNhY3Rpb24tY29uZmlybWF0aW9uLWhpc3Rvcnk+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEZvcm1NYXN0ZXJTZXJ2aWNlXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVQdXJjaGFzZUNvbmZpcm1hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk6IHR5cGVvZiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkluZm86IFRyYW5zYWN0aW9uSW5mbyA9IG5ldyBUcmFuc2FjdGlvbkluZm8oKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvID0gbmV3IFRyYW5zYWN0aW9uTGluZUluZm8oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby10cmFuc2FjdGlvbi1saW5lLXB1cmNoYXNlLWNvbmZpcm1hdGlvbicpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRvY0RlbGl2ZXJ5QmF0Y2g6IERvY0RlbGl2ZXJ5QmF0Y2ggPSBuZXcgRG9jRGVsaXZlcnlCYXRjaCgpO1xyXG4gIHB1YmxpYyBmaWx0ZXJlZERvY0JhdGNoQXJyYXk6IERvY0RlbGl2ZXJ5QmF0Y2hbXSA9IFtdO1xyXG4gIHB1YmxpYyBtYXhEb2NBbW91bnQ6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIHNob3dQdXJjaGFzZUNvbmZpcm1hdGlvbkFJOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGNvbmZpcm1pbmdPcmRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2U6IFRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHB1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZTogUHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UudHJhbnNhY3Rpb25MaW5lQ2hhbmdlZC5zdWJzY3JpYmUoKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pID0+IHtcclxuICAgICAgICBpZiAobGluZS5saW5lTnIgPT09IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcikge1xyXG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgICAgICAgdGhpcy5fdXBkYXRlQmF0Y2hBcnJheSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLm9yZGVyQ29uZmlybWF0aW9uUmVzZXQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNob3dQdXJjaGFzZUNvbmZpcm1hdGlvbkFJID0gZmFsc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnB1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZS5jb25maXJtYXRpb25OZWVkZWQuc3Vic2NyaWJlKChuZWVkZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICB0aGlzLnNob3dQdXJjaGFzZUNvbmZpcm1hdGlvbkFJID0gbmVlZGVkO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHRoaXMuX2luaXROZXdEb2NEZWxpdmVyeUJhdGNoKCk7XHJcbiAgICB0aGlzLl91cGRhdGVCYXRjaEFycmF5KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2F2ZURldGFpbHNFZGl0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuZG9jRGVsaXZlcnlCYXRjaC5kb2NBbW91bnQgJiYgdGhpcy5kb2NEZWxpdmVyeUJhdGNoLmNvbmZpcm1lZFByaWNlKSB7XHJcbiAgICAgIHRoaXMuY29uZmlybWluZ09yZGVyID0gdHJ1ZTtcclxuICAgICAgLy8gY2hlY2sgaWYgdGhlcmUgaXMgYSBjb3JyZXNwb25kaW5nIFwiRyByZWNvcmRcIlxyXG4gICAgICBjb25zdCBleGlzdGluZ0JhdGNoID0gdGhpcy50cmFuc2FjdGlvbkxpbmUucHVyY2hhc2VQb3J0YWxMaW5lLmRvY0JhdGNoQXJyYXkuZmluZChiYSA9PiBiYS5kZWxpdmVyeUJhdGNoID09PSB0aGlzLmRvY0RlbGl2ZXJ5QmF0Y2guZGVsaXZlcnlCYXRjaCAmJiBiYS5oaXN0b3JpY2FsID09PSBcIkdcIik7XHJcbiAgICAgIGlmIChleGlzdGluZ0JhdGNoKSB7IC8vIGNoYW5nZSB0aGF0IG9uZVxyXG4gICAgICAgIGV4aXN0aW5nQmF0Y2guY29uZmlybWVkUHJpY2UgPSB0aGlzLmRvY0RlbGl2ZXJ5QmF0Y2guY29uZmlybWVkUHJpY2U7XHJcbiAgICAgICAgZXhpc3RpbmdCYXRjaC5kb2NBbW91bnQgPSB0aGlzLmRvY0RlbGl2ZXJ5QmF0Y2guZG9jQW1vdW50O1xyXG4gICAgICAgIGV4aXN0aW5nQmF0Y2guZG9jRGF0ZSA9IHRoaXMuZG9jRGVsaXZlcnlCYXRjaC5kb2NEYXRlO1xyXG4gICAgICAgIGV4aXN0aW5nQmF0Y2gucmVmZXJlbmNlID0gdGhpcy5kb2NEZWxpdmVyeUJhdGNoLnJlZmVyZW5jZTtcclxuICAgICAgfSBlbHNlIHsgLy8gb3IgY3JlYXRlIGEgbmV3IG9uZVxyXG4gICAgICAgIHRoaXMuZG9jRGVsaXZlcnlCYXRjaC5kZWxldGVMaW5lID0gJ0YnO1xyXG4gICAgICAgIHRoaXMuZG9jRGVsaXZlcnlCYXRjaC5oaXN0b3JpY2FsID0gJ0cnO1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lLnB1cmNoYXNlUG9ydGFsTGluZS5kb2NCYXRjaEFycmF5LnB1c2godGhpcy5kb2NEZWxpdmVyeUJhdGNoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUucHVyY2hhc2VQb3J0YWxMaW5lLmRvY0tpbmQgPSAnSUInO1xyXG4gICAgICBjb25zdCBzdWNjZXNzOiBib29sZWFuID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25TZXJ2aWNlLnVwZGF0ZVB1cmNoYXNlUG9ydGFsTGluZXModGhpcy50cmFuc2FjdGlvbkluZm8uaWQsIHRoaXMudHJhbnNhY3Rpb25JbmZvLnZlcnNpb24sIHRoaXMudHJhbnNhY3Rpb25MaW5lLnB1cmNoYXNlUG9ydGFsTGluZSk7XHJcblxyXG4gICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgIHRoaXMuX2luaXROZXdEb2NEZWxpdmVyeUJhdGNoKCk7XHJcbiAgICAgICAgdGhpcy5jb25maXJtaW5nT3JkZXIgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZURlbGV0ZUhpc3RvcnlSb3cocm93OiBEb2NEZWxpdmVyeUJhdGNoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByb3cuZGVsZXRlTGluZSA9ICdUJztcclxuICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lLnB1cmNoYXNlUG9ydGFsTGluZS5kb2NLaW5kID0gJ0lCJztcclxuICAgIGNvbnN0IHN1Y2Nlc3M6IGJvb2xlYW4gPSBhd2FpdCB0aGlzLl90cmFuc2FjdGlvblNlcnZpY2UudXBkYXRlUHVyY2hhc2VQb3J0YWxMaW5lcyh0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCwgdGhpcy50cmFuc2FjdGlvbkluZm8udmVyc2lvbiwgdGhpcy50cmFuc2FjdGlvbkxpbmUucHVyY2hhc2VQb3J0YWxMaW5lKTtcclxuICAgIGlmIChzdWNjZXNzKSB7XHJcbiAgICAgIHRoaXMuX2luaXROZXdEb2NEZWxpdmVyeUJhdGNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2VsZWN0SGlzdG9yeVJvdyhyb3c6IERvY0RlbGl2ZXJ5QmF0Y2gpOiB2b2lkIHtcclxuICAgIHRoaXMuZG9jRGVsaXZlcnlCYXRjaCA9IHJvdztcclxuICAgIHRoaXMuZG9jRGVsaXZlcnlCYXRjaC5kb2NEYXRlID0gbmV3IERhdGUocm93LmRvY0RhdGUpO1xyXG4gICAgdGhpcy5fc2V0TWF4RG9jQW1vdW50KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ2FuY2VsQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pbml0TmV3RG9jRGVsaXZlcnlCYXRjaCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZURlbGl2ZXJ5QmF0Y2hDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXRNYXhEb2NBbW91bnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZUJhdGNoQXJyYXkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbHRlcmVkRG9jQmF0Y2hBcnJheSA9IHRoaXMudHJhbnNhY3Rpb25MaW5lLnB1cmNoYXNlUG9ydGFsTGluZS5kb2NCYXRjaEFycmF5LmZpbHRlcih2YWx1ZSA9PiB2YWx1ZS5oaXN0b3JpY2FsLnRvTG93ZXJDYXNlKCkgPT09ICdoJyAmJiB2YWx1ZS5kb2NBbW91bnQgPj0gMCk7XHJcbiAgICB0aGlzLl9zZXRNYXhEb2NBbW91bnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldE1heERvY0Ftb3VudCgpOiB2b2lkIHtcclxuICAgIGxldCBhbHJlYWR5Q29uZmlybWVkOiBudW1iZXIgPSAwO1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkxpbmUucHVyY2hhc2VQb3J0YWxMaW5lLmRvY0JhdGNoQXJyYXlcclxuICAgICAgICAuZmlsdGVyKGRiYSA9PiBkYmEuaGlzdG9yaWNhbC50b0xvd2VyQ2FzZSgpID09PSAnZycpXHJcbiAgICAgICAgLmZvckVhY2goKGQgPT4ge1xyXG4gICAgICAgICAgYWxyZWFkeUNvbmZpcm1lZCA9IGFscmVhZHlDb25maXJtZWQgKyBkLmRvY0Ftb3VudDtcclxuICAgICAgICB9KSk7XHJcbiAgICBhbHJlYWR5Q29uZmlybWVkID0gYWxyZWFkeUNvbmZpcm1lZCAtIHRoaXMuZG9jRGVsaXZlcnlCYXRjaC5kb2NBbW91bnQ7XHJcbiAgICBjb25zdCBleGlzdGluZ0dyb3VwUmVjb3JkOiBEb2NEZWxpdmVyeUJhdGNoID0gdGhpcy50cmFuc2FjdGlvbkxpbmUucHVyY2hhc2VQb3J0YWxMaW5lLmRvY0JhdGNoQXJyYXkuZmluZChcclxuICAgICAgICB2YWx1ZSA9PiB2YWx1ZS5oaXN0b3JpY2FsLnRvTG93ZXJDYXNlKCkgPT09ICdnJyAmJiB2YWx1ZS5kZWxpdmVyeUJhdGNoID09PSB0aGlzLmRvY0RlbGl2ZXJ5QmF0Y2guZGVsaXZlcnlCYXRjaCk7XHJcbiAgICBpZiAoZXhpc3RpbmdHcm91cFJlY29yZCkge1xyXG4gICAgICB0aGlzLm1heERvY0Ftb3VudCA9IE1hdGgubWluKHRoaXMudHJhbnNhY3Rpb25MaW5lLmFtb3VudCAtIGFscmVhZHlDb25maXJtZWQsIGV4aXN0aW5nR3JvdXBSZWNvcmQuZG9jQW1vdW50ICsgZXhpc3RpbmdHcm91cFJlY29yZC5hbW91bnROb3RDb25maXJtZWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICB0aGlzLm1heERvY0Ftb3VudCA9IE1hdGgubWluKHRoaXMudHJhbnNhY3Rpb25MaW5lLmFtb3VudCAtIGFscmVhZHlDb25maXJtZWQsICt0aGlzLnRyYW5zYWN0aW9uTGluZS5wdXJjaGFzZVBvcnRhbExpbmUuYW1vdW50T3JkZXJlZCAtICt0aGlzLnRyYW5zYWN0aW9uTGluZS5wdXJjaGFzZVBvcnRhbExpbmUuYW1vdW50Q29uZmlybWVkKTtcclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIHRoaXMubWF4RG9jQW1vdW50ID0gTWF0aC5taW4odGhpcy50cmFuc2FjdGlvbkxpbmUuYW1vdW50IC0gYWxyZWFkeUNvbmZpcm1lZCwgK3RoaXMudHJhbnNhY3Rpb25MaW5lLnB1cmNoYXNlUG9ydGFsTGluZS5hbW91bnRPcmRlcmVkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaW5pdE5ld0RvY0RlbGl2ZXJ5QmF0Y2goKTogdm9pZCB7XHJcbiAgICB0aGlzLmRvY0RlbGl2ZXJ5QmF0Y2ggPSBuZXcgRG9jRGVsaXZlcnlCYXRjaCgpO1xyXG4gICAgbGV0IGFscmVhZHlDb25maXJtZWQ6IG51bWJlciA9IDA7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uTGluZS5wdXJjaGFzZVBvcnRhbExpbmUuZG9jQmF0Y2hBcnJheVxyXG4gICAgICAgIC5maWx0ZXIoZGJhID0+IGRiYS5oaXN0b3JpY2FsLnRvTG93ZXJDYXNlKCkgPT09ICdnJylcclxuICAgICAgICAuZm9yRWFjaCgoZCA9PiB7XHJcbiAgICAgICAgICBhbHJlYWR5Q29uZmlybWVkID0gYWxyZWFkeUNvbmZpcm1lZCArIGQuZG9jQW1vdW50O1xyXG4gICAgICAgIH0pKTtcclxuICAgIHRoaXMuZG9jRGVsaXZlcnlCYXRjaC5kb2NBbW91bnQgPSB0aGlzLnRyYW5zYWN0aW9uTGluZS5hbW91bnQgLSBhbHJlYWR5Q29uZmlybWVkO1xyXG4gICAgdGhpcy5kb2NEZWxpdmVyeUJhdGNoLmNvbmZpcm1lZFByaWNlID0gK3RoaXMudHJhbnNhY3Rpb25MaW5lLnB1cmNoYXNlUG9ydGFsTGluZS5uZXRPcmRlclByaWNlO1xyXG4gICAgdGhpcy5fc2V0TWF4RG9jQW1vdW50KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1wdXJjaGFzZS1jb25maXJtYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tbGluZS1wdXJjaGFzZS1jb25maXJtYXRpb24vdHJhbnNhY3Rpb24tbGluZS1wdXJjaGFzZS1jb25maXJtYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBNEIsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFDLGlCQUFpQixFQUFpQixNQUFNLDhCQUE4QixDQUFDO0FBQy9FLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBRTVGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBRWxGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzdHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ3hGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBRTFGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9B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LENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztRQUNuSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUosSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQzs7O1lBNU9GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMkNBQTJDO2dCQUNyRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThFVDtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsaUJBQWlCO2lCQUNsQjtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBMUZPLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFWdEIsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIscUNBQXFDO1lBR3JDLDJCQUEyQjtZQUYzQixpQkFBaUI7WUFDakIsdUJBQXVCO1lBWHZCLGlCQUFpQjs7O3dCQThHdEIsV0FBVyxTQUFDLGlEQUFpRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1NYXN0ZXJTZXJ2aWNlLCBPdmVybGF5U2VydmljZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7RG9jRGVsaXZlcnlCYXRjaH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RvYy1kZWxpdmVyeS1iYXRjaC5ibyc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0gZnJvbSAnLi4vLi4vZW51bS90cmFuc2FjdGlvbi10eXBlLWNhdGVnb3J5LmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9wdXJjaGFzZS1jb25maXJtYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWxpbmUtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0FydGljbGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FydGljbGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlfSBmcm9tICcuLi9jb3JlL2Jhc2Uvc2VydmljZS90cmFuc2FjdGlvbi1oZWFkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lU2VydmljZX0gZnJvbSAnLi4vY29yZS9iYXNlL3NlcnZpY2UvdHJhbnNhY3Rpb24tbGluZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLmJvJztcclxuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi9lbnVtL2ljb24uZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLWxpbmUtcHVyY2hhc2UtY29uZmlybWF0aW9uJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWktdG9nZ2xlLWJ1dHRvbi13cmFwcGVyXCIgKm5nSWY9XCJwdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybWF0aW9uQW5hbHlzaXNJZFwiPlxyXG4gICAgICAgIDxjby1idXR0b25cclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInUFVSQ0hBU0VfQ09ORklSTUFUSU9OJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgIFtpc1RvZ2dsZUJ1dHRvbl09XCJ0cnVlXCIgXHJcbiAgICAgICAgICAgICAgICBbaXNUb2dnbGVkXT1cInNob3dQdXJjaGFzZUNvbmZpcm1hdGlvbkFJXCIgXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd1B1cmNoYXNlQ29uZmlybWF0aW9uQUkgPSAhc2hvd1B1cmNoYXNlQ29uZmlybWF0aW9uQUlcIlxyXG4gICAgICAgID48L2NvLWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb25maXJtYXRpb24tZGV0YWlscy13cmFwcGVyIGZvcm0tYW5kLWJ1dHRvbnNcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd1B1cmNoYXNlQ29uZmlybWF0aW9uQUlcIj5cclxuICAgICAgICAgICAgICA8Y28tZm9ybT5cclxuICAgICAgICAgICAgICAgICAgPCEtLWRpdiBjbGFzcz1cImhlYWRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInU1RBVEUnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXIgY2xhc3M9XCJzdGF0dXMtYmFyLXdyYXBwZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZUNhdGVnb3J5XT1cInRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLXN0YXR1c2Jhcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXYtLT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGUtcGFuZWwtaW5wdXQtcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtbnVtYmVyLXBpY2tlciBjbGFzcz1cInNpZGUtcGFuZWwtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiZG9jRGVsaXZlcnlCYXRjaC5kb2NBbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlY2ltYWxzXT1cInRyYW5zYWN0aW9uTGluZS5zYWxlc1VuaXREZWNpbWFsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJtYXhEb2NBbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtbnVtYmVyLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1kYXRlIGNsYXNzPVwic2lkZS1wYW5lbC1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0NPTkZJUk1FRF9EQVRFJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImRvY0RlbGl2ZXJ5QmF0Y2guZG9jRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1sYWJlbGVkLXByaWNlLWlucHV0IGNsYXNzPVwic2lkZS1wYW5lbC1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJkb2NEZWxpdmVyeUJhdGNoLmNvbmZpcm1lZFByaWNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0RWRpdE1vZGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidDT05GSVJNRURfUFJJQ0UnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGFiZWxlZC1wcmljZS1pbnB1dD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlLXBhbmVsLWlucHV0LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgY2xhc3M9XCJzaWRlLXBhbmVsLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImRvY0RlbGl2ZXJ5QmF0Y2gucmVmZXJlbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInUkVGRVJFTkNFJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBjbGFzcz1cInNpZGUtcGFuZWwtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiZG9jRGVsaXZlcnlCYXRjaC5kZWxpdmVyeUJhdGNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVEZWxpdmVyeUJhdGNoQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidERUxJVkVSWV9CQVRDSCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2NvLWZvcm0+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93UHVyY2hhc2VDb25maXJtYXRpb25BSVwiPlxyXG4gICAgICAgICAgICAgIDxjby1wdXJjaGFzZS1jb25maXJtYXRpb24tbGluZXNcclxuICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UudHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgID48L2NvLXB1cmNoYXNlLWNvbmZpcm1hdGlvbi1saW5lcz5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93UHVyY2hhc2VDb25maXJtYXRpb25BSVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYXZlLWNhbmNlbC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1idXR0b24gW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidGhpcy5jb25maXJtaW5nT3JkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVTYXZlRGV0YWlsc0VkaXQoKVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3Nza2lubnkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2FuY2VsQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGNvLXRyYW5zYWN0aW9uLWNvbmZpcm1hdGlvbi1oaXN0b3J5ICpuZ0lmPVwiIXNob3dQdXJjaGFzZUNvbmZpcm1hdGlvbkFJXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cImZpbHRlcmVkRG9jQmF0Y2hBcnJheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlUm93KT1cImhhbmRsZURlbGV0ZUhpc3RvcnlSb3coJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0Um93KT1cImhhbmRsZVNlbGVjdEhpc3RvcnlSb3coJGV2ZW50KVwiXHJcbiAgICAgID48L2NvLXRyYW5zYWN0aW9uLWNvbmZpcm1hdGlvbi1oaXN0b3J5PlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBGb3JtTWFzdGVyU2VydmljZVxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25MaW5lUHVyY2hhc2VDb25maXJtYXRpb25Db21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkxpbmVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvblR5cGVDYXRlZ29yeTogdHlwZW9mIFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5ID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24tbGluZS1wdXJjaGFzZS1jb25maXJtYXRpb24nKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkb2NEZWxpdmVyeUJhdGNoOiBEb2NEZWxpdmVyeUJhdGNoID0gbmV3IERvY0RlbGl2ZXJ5QmF0Y2goKTtcclxuICBwdWJsaWMgZmlsdGVyZWREb2NCYXRjaEFycmF5OiBEb2NEZWxpdmVyeUJhdGNoW10gPSBbXTtcclxuICBwdWJsaWMgbWF4RG9jQW1vdW50OiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBzaG93UHVyY2hhc2VDb25maXJtYXRpb25BSTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjb25maXJtaW5nT3JkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlOiBUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lU2VydmljZTogVHJhbnNhY3Rpb25MaW5lU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBwdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2U6IFB1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UsIHRyYW5zYWN0aW9uTGluZVNlcnZpY2UsIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCBzZXJ2aWNlLCBjaGFuZ2VEZXRlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UudHJhbnNhY3Rpb25MaW5lQ2hhbmdlZC5zdWJzY3JpYmUoKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pID0+IHtcclxuICAgICAgICBpZiAobGluZS5saW5lTnIgPT09IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcikge1xyXG4gICAgICAgICAgdGhpcy5fdXBkYXRlQmF0Y2hBcnJheSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3JkZXJDb25maXJtYXRpb25SZXNldC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd1B1cmNoYXNlQ29uZmlybWF0aW9uQUkgPSBmYWxzZTtcclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMucHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm1hdGlvbk5lZWRlZC5zdWJzY3JpYmUoKG5lZWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd1B1cmNoYXNlQ29uZmlybWF0aW9uQUkgPSBuZWVkZWQ7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5faW5pdE5ld0RvY0RlbGl2ZXJ5QmF0Y2goKTtcclxuICAgIHRoaXMuX3VwZGF0ZUJhdGNoQXJyYXkoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2F2ZURldGFpbHNFZGl0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuZG9jRGVsaXZlcnlCYXRjaC5kb2NBbW91bnQgJiYgdGhpcy5kb2NEZWxpdmVyeUJhdGNoLmNvbmZpcm1lZFByaWNlKSB7XHJcbiAgICAgIHRoaXMuY29uZmlybWluZ09yZGVyID0gdHJ1ZTtcclxuICAgICAgLy8gY2hlY2sgaWYgdGhlcmUgaXMgYSBjb3JyZXNwb25kaW5nIFwiRyByZWNvcmRcIlxyXG4gICAgICBjb25zdCBleGlzdGluZ0JhdGNoID0gdGhpcy50cmFuc2FjdGlvbkxpbmUucHVyY2hhc2VQb3J0YWxMaW5lLmRvY0JhdGNoQXJyYXkuZmluZChiYSA9PiBiYS5kZWxpdmVyeUJhdGNoID09PSB0aGlzLmRvY0RlbGl2ZXJ5QmF0Y2guZGVsaXZlcnlCYXRjaCAmJiBiYS5oaXN0b3JpY2FsID09PSBcIkdcIik7XHJcbiAgICAgIGlmIChleGlzdGluZ0JhdGNoKSB7IC8vIGNoYW5nZSB0aGF0IG9uZVxyXG4gICAgICAgIGV4aXN0aW5nQmF0Y2guY29uZmlybWVkUHJpY2UgPSB0aGlzLmRvY0RlbGl2ZXJ5QmF0Y2guY29uZmlybWVkUHJpY2U7XHJcbiAgICAgICAgZXhpc3RpbmdCYXRjaC5kb2NBbW91bnQgPSB0aGlzLmRvY0RlbGl2ZXJ5QmF0Y2guZG9jQW1vdW50O1xyXG4gICAgICAgIGV4aXN0aW5nQmF0Y2guZG9jRGF0ZSA9IHRoaXMuZG9jRGVsaXZlcnlCYXRjaC5kb2NEYXRlO1xyXG4gICAgICAgIGV4aXN0aW5nQmF0Y2gucmVmZXJlbmNlID0gdGhpcy5kb2NEZWxpdmVyeUJhdGNoLnJlZmVyZW5jZTtcclxuICAgICAgfSBlbHNlIHsgLy8gb3IgY3JlYXRlIGEgbmV3IG9uZVxyXG4gICAgICAgIHRoaXMuZG9jRGVsaXZlcnlCYXRjaC5kZWxldGVMaW5lID0gJ0YnO1xyXG4gICAgICAgIHRoaXMuZG9jRGVsaXZlcnlCYXRjaC5oaXN0b3JpY2FsID0gJ0cnO1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lLnB1cmNoYXNlUG9ydGFsTGluZS5kb2NCYXRjaEFycmF5LnB1c2godGhpcy5kb2NEZWxpdmVyeUJhdGNoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUucHVyY2hhc2VQb3J0YWxMaW5lLmRvY0tpbmQgPSAnSUInO1xyXG4gICAgICBjb25zdCBzdWNjZXNzOiBib29sZWFuID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UudXBkYXRlUHVyY2hhc2VQb3J0YWxMaW5lcyh0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCwgdGhpcy50cmFuc2FjdGlvbkluZm8udmVyc2lvbiwgdGhpcy50cmFuc2FjdGlvbkxpbmUucHVyY2hhc2VQb3J0YWxMaW5lKTtcclxuXHJcbiAgICAgIGlmIChzdWNjZXNzKSB7XHJcbiAgICAgICAgdGhpcy5faW5pdE5ld0RvY0RlbGl2ZXJ5QmF0Y2goKTtcclxuICAgICAgICB0aGlzLmNvbmZpcm1pbmdPcmRlciA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlRGVsZXRlSGlzdG9yeVJvdyhyb3c6IERvY0RlbGl2ZXJ5QmF0Y2gpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJvdy5kZWxldGVMaW5lID0gJ1QnO1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkxpbmUucHVyY2hhc2VQb3J0YWxMaW5lLmRvY0tpbmQgPSAnSUInO1xyXG4gICAgY29uc3Qgc3VjY2VzczogYm9vbGVhbiA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnVwZGF0ZVB1cmNoYXNlUG9ydGFsTGluZXModGhpcy50cmFuc2FjdGlvbkluZm8uaWQsIHRoaXMudHJhbnNhY3Rpb25JbmZvLnZlcnNpb24sIHRoaXMudHJhbnNhY3Rpb25MaW5lLnB1cmNoYXNlUG9ydGFsTGluZSk7XHJcbiAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICB0aGlzLl9pbml0TmV3RG9jRGVsaXZlcnlCYXRjaCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlbGVjdEhpc3RvcnlSb3cocm93OiBEb2NEZWxpdmVyeUJhdGNoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRvY0RlbGl2ZXJ5QmF0Y2ggPSByb3c7XHJcbiAgICB0aGlzLmRvY0RlbGl2ZXJ5QmF0Y2guZG9jRGF0ZSA9IG5ldyBEYXRlKHJvdy5kb2NEYXRlKTtcclxuICAgIHRoaXMuX3NldE1heERvY0Ftb3VudCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNhbmNlbENsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5faW5pdE5ld0RvY0RlbGl2ZXJ5QmF0Y2goKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEZWxpdmVyeUJhdGNoQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2V0TWF4RG9jQW1vdW50KCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25MaW5lU2V0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIudHJhbnNhY3Rpb25MaW5lU2V0KCk7XHJcbiAgICB0aGlzLl91cGRhdGVCYXRjaEFycmF5KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVCYXRjaEFycmF5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5faW5pdE5ld0RvY0RlbGl2ZXJ5QmF0Y2goKTtcclxuICAgIHRoaXMuZmlsdGVyZWREb2NCYXRjaEFycmF5ID0gdGhpcy50cmFuc2FjdGlvbkxpbmUucHVyY2hhc2VQb3J0YWxMaW5lLmRvY0JhdGNoQXJyYXkuZmlsdGVyKHZhbHVlID0+IHZhbHVlLmhpc3RvcmljYWwudG9Mb3dlckNhc2UoKSA9PT0gJ2gnICYmIHZhbHVlLmRvY0Ftb3VudCA+PSAwKTtcclxuICAgIHRoaXMuX3NldE1heERvY0Ftb3VudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0TWF4RG9jQW1vdW50KCk6IHZvaWQge1xyXG4gICAgbGV0IGFscmVhZHlDb25maXJtZWQ6IG51bWJlciA9IDA7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uTGluZS5wdXJjaGFzZVBvcnRhbExpbmUuZG9jQmF0Y2hBcnJheVxyXG4gICAgICAgIC5maWx0ZXIoZGJhID0+IGRiYS5oaXN0b3JpY2FsLnRvTG93ZXJDYXNlKCkgPT09ICdnJylcclxuICAgICAgICAuZm9yRWFjaCgoZCA9PiB7XHJcbiAgICAgICAgICBhbHJlYWR5Q29uZmlybWVkID0gYWxyZWFkeUNvbmZpcm1lZCArIGQuZG9jQW1vdW50O1xyXG4gICAgICAgIH0pKTtcclxuICAgIGFscmVhZHlDb25maXJtZWQgPSBhbHJlYWR5Q29uZmlybWVkIC0gdGhpcy5kb2NEZWxpdmVyeUJhdGNoLmRvY0Ftb3VudDtcclxuICAgIGNvbnN0IGV4aXN0aW5nR3JvdXBSZWNvcmQ6IERvY0RlbGl2ZXJ5QmF0Y2ggPSB0aGlzLnRyYW5zYWN0aW9uTGluZS5wdXJjaGFzZVBvcnRhbExpbmUuZG9jQmF0Y2hBcnJheS5maW5kKFxyXG4gICAgICAgIHZhbHVlID0+IHZhbHVlLmhpc3RvcmljYWwudG9Mb3dlckNhc2UoKSA9PT0gJ2cnICYmIHZhbHVlLmRlbGl2ZXJ5QmF0Y2ggPT09IHRoaXMuZG9jRGVsaXZlcnlCYXRjaC5kZWxpdmVyeUJhdGNoKTtcclxuICAgIGlmIChleGlzdGluZ0dyb3VwUmVjb3JkKSB7XHJcbiAgICAgIHRoaXMubWF4RG9jQW1vdW50ID0gTWF0aC5taW4odGhpcy50cmFuc2FjdGlvbkxpbmUuYW1vdW50IC0gYWxyZWFkeUNvbmZpcm1lZCwgZXhpc3RpbmdHcm91cFJlY29yZC5kb2NBbW91bnQgKyBleGlzdGluZ0dyb3VwUmVjb3JkLmFtb3VudE5vdENvbmZpcm1lZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMubWF4RG9jQW1vdW50ID0gTWF0aC5taW4odGhpcy50cmFuc2FjdGlvbkxpbmUuYW1vdW50IC0gYWxyZWFkeUNvbmZpcm1lZCwgK3RoaXMudHJhbnNhY3Rpb25MaW5lLnB1cmNoYXNlUG9ydGFsTGluZS5hbW91bnRPcmRlcmVkIC0gK3RoaXMudHJhbnNhY3Rpb25MaW5lLnB1cmNoYXNlUG9ydGFsTGluZS5hbW91bnRDb25maXJtZWQpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgdGhpcy5tYXhEb2NBbW91bnQgPSBNYXRoLm1pbih0aGlzLnRyYW5zYWN0aW9uTGluZS5hbW91bnQgLSBhbHJlYWR5Q29uZmlybWVkLCArdGhpcy50cmFuc2FjdGlvbkxpbmUucHVyY2hhc2VQb3J0YWxMaW5lLmFtb3VudE9yZGVyZWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0TmV3RG9jRGVsaXZlcnlCYXRjaCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZG9jRGVsaXZlcnlCYXRjaCA9IG5ldyBEb2NEZWxpdmVyeUJhdGNoKCk7XHJcbiAgICBsZXQgYWxyZWFkeUNvbmZpcm1lZDogbnVtYmVyID0gMDtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lLnB1cmNoYXNlUG9ydGFsTGluZS5kb2NCYXRjaEFycmF5XHJcbiAgICAgICAgLmZpbHRlcihkYmEgPT4gZGJhLmhpc3RvcmljYWwudG9Mb3dlckNhc2UoKSA9PT0gJ2cnKVxyXG4gICAgICAgIC5mb3JFYWNoKChkID0+IHtcclxuICAgICAgICAgIGFscmVhZHlDb25maXJtZWQgPSBhbHJlYWR5Q29uZmlybWVkICsgZC5kb2NBbW91bnQ7XHJcbiAgICAgICAgfSkpO1xyXG4gICAgdGhpcy5kb2NEZWxpdmVyeUJhdGNoLmRvY0Ftb3VudCA9ICh0aGlzLnRyYW5zYWN0aW9uTGluZS5hbW91bnQgIT09IHVuZGVmaW5lZCA/IHRoaXMudHJhbnNhY3Rpb25MaW5lLmFtb3VudCA6IDApIC0gYWxyZWFkeUNvbmZpcm1lZDtcclxuICAgIHRoaXMuZG9jRGVsaXZlcnlCYXRjaC5jb25maXJtZWRQcmljZSA9IHRoaXMudHJhbnNhY3Rpb25MaW5lLnB1cmNoYXNlUG9ydGFsTGluZS5uZXRPcmRlclByaWNlID8gK3RoaXMudHJhbnNhY3Rpb25MaW5lLnB1cmNoYXNlUG9ydGFsTGluZS5uZXRPcmRlclByaWNlIDogMDtcclxuICAgIHRoaXMuX3NldE1heERvY0Ftb3VudCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { TransactionLineInfo } from '@colijnit/transactionapi/build/model/transaction-line-info.bo';
|
|
1
|
+
import { ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
3
2
|
import { Icon } from '../../enum/icon.enum';
|
|
4
3
|
import { TransactionKind } from '@colijnit/transactionapi/build/enum/transaction-kind.enum';
|
|
5
4
|
import { TransactionTypeCategory } from '../../enum/transaction-type-category.enum';
|
|
@@ -10,20 +9,22 @@ import { TransactionMappingService } from '../../service/transaction-mapping.ser
|
|
|
10
9
|
import { PurchaseConfirmationService } from '../../service/purchase-confirmation.service';
|
|
11
10
|
import { TransactionLineService } from '../core/base/service/transaction-line.service';
|
|
12
11
|
import { TransactionHeaderService } from '../core/base/service/transaction-header.service';
|
|
12
|
+
import { LineSelectionService } from '../../service/line-selection.service';
|
|
13
13
|
export class TransactionLineSidePanelComponent {
|
|
14
|
-
constructor(_service, _transactionHeaderService, _transactionLineService, _transactionEventService, _transactionMappingService, _purchaseConfirmationService) {
|
|
14
|
+
constructor(_service, _transactionHeaderService, _transactionLineService, _transactionEventService, _transactionMappingService, _purchaseConfirmationService, _lineSelectionService, _changeDetector) {
|
|
15
15
|
this._service = _service;
|
|
16
16
|
this._transactionHeaderService = _transactionHeaderService;
|
|
17
17
|
this._transactionLineService = _transactionLineService;
|
|
18
18
|
this._transactionEventService = _transactionEventService;
|
|
19
19
|
this._transactionMappingService = _transactionMappingService;
|
|
20
20
|
this._purchaseConfirmationService = _purchaseConfirmationService;
|
|
21
|
+
this._lineSelectionService = _lineSelectionService;
|
|
22
|
+
this._changeDetector = _changeDetector;
|
|
21
23
|
this.icons = Icon;
|
|
22
24
|
this.categories = TransactionTypeCategory;
|
|
23
25
|
this.transactionTypes = TransactionKind;
|
|
24
26
|
this.TransactionTypeCategory = TransactionTypeCategory;
|
|
25
27
|
this.wide = false;
|
|
26
|
-
this.transactionLine = new TransactionLineInfo();
|
|
27
28
|
this.cancelClick = new EventEmitter();
|
|
28
29
|
this._subs = [];
|
|
29
30
|
}
|
|
@@ -37,10 +38,14 @@ export class TransactionLineSidePanelComponent {
|
|
|
37
38
|
return this._transactionHeaderService.transactionInfo;
|
|
38
39
|
}
|
|
39
40
|
ngOnInit() {
|
|
40
|
-
this._transactionLineService.transactionLine = this.transactionLine;
|
|
41
41
|
this.activeCategoryButton = this._transactionMappingService.getButtonBar(this._transactionHeaderService.transactionKind)
|
|
42
42
|
.find((button) => button.category === this.activeCategory);
|
|
43
|
-
this._subs.push(this.
|
|
43
|
+
this._subs.push(this._lineSelectionService.selectedTransactionLineChanged.subscribe((line) => {
|
|
44
|
+
if (line) {
|
|
45
|
+
this._transactionLineService.transactionLine = line;
|
|
46
|
+
this._changeDetector.detectChanges();
|
|
47
|
+
}
|
|
48
|
+
}), this._purchaseConfirmationService.ordersTotalObservable.subscribe((value) => {
|
|
44
49
|
this.ordersTotal = value;
|
|
45
50
|
}));
|
|
46
51
|
}
|
|
@@ -77,11 +82,7 @@ TransactionLineSidePanelComponent.decorators = [
|
|
|
77
82
|
<div class="transaction-line-side-panel-content co-small-scrollbar">
|
|
78
83
|
<ng-container [ngSwitch]="transactionInfo.transactionKind">
|
|
79
84
|
<ng-container *ngSwitchCase="transactionTypes.PurchaseOrder">
|
|
80
|
-
<co-transaction-line-side-panel-purchase
|
|
81
|
-
[categoryType]="activeCategory"
|
|
82
|
-
[transactionLine]="transactionLine"
|
|
83
|
-
[transactionInfo]="transaction.transactionInfo"
|
|
84
|
-
></co-transaction-line-side-panel-purchase>
|
|
85
|
+
<co-transaction-line-side-panel-purchase [categoryType]="activeCategory"></co-transaction-line-side-panel-purchase>
|
|
85
86
|
</ng-container>
|
|
86
87
|
<ng-container *ngSwitchCase="transactionTypes.SalesOrder">
|
|
87
88
|
<co-transaction-line-side-panel-sales [categoryType]="activeCategory"></co-transaction-line-side-panel-sales>
|
|
@@ -112,13 +113,14 @@ TransactionLineSidePanelComponent.ctorParameters = () => [
|
|
|
112
113
|
{ type: TransactionLineService },
|
|
113
114
|
{ type: TransactionEventService },
|
|
114
115
|
{ type: TransactionMappingService },
|
|
115
|
-
{ type: PurchaseConfirmationService }
|
|
116
|
+
{ type: PurchaseConfirmationService },
|
|
117
|
+
{ type: LineSelectionService },
|
|
118
|
+
{ type: ChangeDetectorRef }
|
|
116
119
|
];
|
|
117
120
|
TransactionLineSidePanelComponent.propDecorators = {
|
|
118
121
|
wide: [{ type: Input }],
|
|
119
122
|
activeCategory: [{ type: Input }],
|
|
120
|
-
transactionLine: [{ type: Input }],
|
|
121
123
|
cancelClick: [{ type: Output }],
|
|
122
124
|
showClass: [{ type: HostBinding, args: ["class.co-transaction-line-side-panel",] }]
|
|
123
125
|
};
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC90cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUNsRyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRWhGLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0UsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFHcEYsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFFeEYsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDckYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFxRHpGLE1BQU0sT0FBTyxpQ0FBaUM7SUFvQzVDLFlBQ1UsUUFBNEIsRUFDNUIseUJBQW1ELEVBQ25ELHVCQUErQyxFQUMvQyx3QkFBaUQsRUFDakQsMEJBQXFELEVBQ3JELDRCQUF5RDtRQUx6RCxhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUM1Qiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTBCO1FBQ25ELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBd0I7UUFDL0MsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF5QjtRQUNqRCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTJCO1FBQ3JELGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBNkI7UUF6Q25ELFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBQzFCLGVBQVUsR0FBbUMsdUJBQXVCLENBQUM7UUFDckUscUJBQWdCLEdBQTJCLGVBQWUsQ0FBQztRQUMzRCw0QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztRQUczRCxTQUFJLEdBQVksS0FBSyxDQUFDO1FBTXRCLG9CQUFlLEdBQXdCLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUdqRSxnQkFBVyxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBa0J0RSxVQUFLLEdBQW1CLEVBQUUsQ0FBQztJQVVuQyxDQUFDO0lBekJNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDO0lBQ3hELENBQUM7SUFpQk0sUUFBUTtRQUNiLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNwRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDO2FBQ3JILElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2IsSUFBSSxDQUFDLDRCQUE0QixDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FDakUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxNQUE0QjtRQUN0RCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDdEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQztJQUNyQyxDQUFDOzs7WUF0SEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQ0FBZ0M7Z0JBQzFDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0NUO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxzQkFBc0I7aUJBQ3ZCO2dCQUNELFVBQVUsRUFBRTtvQkFDVixPQUFPLENBQUMsbUJBQW1CLEVBQUU7d0JBQzNCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFDLENBQUMsQ0FBQzt3QkFDckQsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLENBQUMsQ0FBQzt3QkFDL0MsVUFBVSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztxQkFDdkQsQ0FBQztpQkFDSDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBOURPLGtCQUFrQjtZQVVsQix3QkFBd0I7WUFEeEIsc0JBQXNCO1lBUnRCLHVCQUF1QjtZQUd2Qix5QkFBeUI7WUFHekIsMkJBQTJCOzs7bUJBOERoQyxLQUFLOzZCQUdMLEtBQUs7OEJBR0wsS0FBSzswQkFHTCxNQUFNO3dCQUdOLFdBQVcsU0FBQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvJztcclxuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi9lbnVtL2ljb24uZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8uYm8nO1xyXG5pbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25NYXBwaW5nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1tYXBwaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFyQnV0dG9ufSBmcm9tICcuLi8uLi9tb2RlbC90cmFuc2FjdGlvbi1iYXItYnV0dG9uJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge1B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9wdXJjaGFzZS1jb25maXJtYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZVNlcnZpY2V9IGZyb20gJy4uL2NvcmUvYmFzZS9zZXJ2aWNlL3RyYW5zYWN0aW9uLWxpbmUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlfSBmcm9tICcuLi9jb3JlL2Jhc2Uvc2VydmljZS90cmFuc2FjdGlvbi1oZWFkZXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWxcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC13cmFwcGVyXCIgW2NsYXNzLndpZGVdPVwid2lkZVwiIEBzaG93SGlkZVNpZGVQYW5lbD5cclxuICAgICAgPGljb24gKGNsaWNrKT1cImNhbmNlbENsaWNrLmVtaXQoJGV2ZW50KVwiIFtpY29uXT1cImljb25zLkNyb3Nzc2tpbm55XCIgY2xhc3M9XCJzaWRlLXBhbmVsIGNsb3NlLWJ1dHRvblwiPjwvaWNvbj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1oZWFkZXJcIj5cclxuICAgICAgICA8aWNvbiBbaWNvbl09XCJhY3RpdmVDYXRlZ29yeUJ1dHRvbj8uaWNvblwiPjwvaWNvbj5cclxuICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiYWN0aXZlQ2F0ZWdvcnlCdXR0b24/LnRpdGxlIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLW5hdi1iYXJcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tYnV0dG9uLWJhclxyXG4gICAgICAgICAgW3NpZGVQYW5lbF09XCJ0cnVlXCJcclxuICAgICAgICAgIFtzZWxlY3RlZENhdGVnb3J5XT1cImFjdGl2ZUNhdGVnb3J5XCJcclxuICAgICAgICAgIChidXR0b25DbGlja2VkKT1cInVwZGF0ZUFjdGl2ZUNhdGVnb3J5KCRldmVudClcIlxyXG4gICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWJ1dHRvbi1iYXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidG90YWwtYW1vdW50XCIgKm5nSWY9XCJhY3RpdmVDYXRlZ29yeSA9PT0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9uXCI+XHJcbiAgICAgICAgPHNwYW4+VG90YWFsIGV4Y2wuIEJUVzwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwib3JkZXJzVG90YWwgfCBjb0N1cnJlbmN5XCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1jb250ZW50IGNvLXNtYWxsLXNjcm9sbGJhclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmRcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInRyYW5zYWN0aW9uVHlwZXMuUHVyY2hhc2VPcmRlclwiPlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLXB1cmNoYXNlIFxyXG4gICAgICAgICAgICAgICAgICAgIFtjYXRlZ29yeVR5cGVdPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1wdXJjaGFzZT5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidHJhbnNhY3Rpb25UeXBlcy5TYWxlc09yZGVyXCI+XHJcbiAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtc2FsZXMgW2NhdGVnb3J5VHlwZV09XCJhY3RpdmVDYXRlZ29yeVwiPjwvY28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLXNhbGVzPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtcHVyY2hhc2UgW2NhdGVnb3J5VHlwZV09XCJhY3RpdmVDYXRlZ29yeVwiPjwvY28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLXB1cmNoYXNlPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFRyYW5zYWN0aW9uTGluZVNlcnZpY2VcclxuICBdLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoXCJzaG93SGlkZVNpZGVQYW5lbFwiLCBbXHJcbiAgICAgIHN0YXRlKFwidm9pZFwiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoMTAwJSlcIn0pKSxcclxuICAgICAgc3RhdGUoXCIqXCIsIHN0eWxlKHt0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgwKVwifSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKFwidm9pZCA8PT4gKlwiLCBhbmltYXRlKFwiMjAwbXMgZWFzZS1pbi1vdXRcIikpXHJcbiAgICBdKVxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25MaW5lU2lkZVBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gIHB1YmxpYyByZWFkb25seSBjYXRlZ29yaWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNhY3Rpb25UeXBlczogdHlwZW9mIFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZDtcclxuICBwdWJsaWMgcmVhZG9ubHkgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgd2lkZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhY3RpdmVDYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyA9IG5ldyBUcmFuc2FjdGlvbkxpbmVJbmZvKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBjYW5jZWxDbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWxcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UudHJhbnNhY3Rpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uSW5mbygpOiBUcmFuc2FjdGlvbkluZm8ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uSGVhZGVyU2VydmljZS50cmFuc2FjdGlvbkluZm87XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWN0aXZlQ2F0ZWdvcnlCdXR0b246IFRyYW5zYWN0aW9uQmFyQnV0dG9uO1xyXG5cclxuICBwdWJsaWMgb3JkZXJzVG90YWw6IG51bWJlcjtcclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uSGVhZGVyU2VydmljZTogVHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25MaW5lU2VydmljZTogVHJhbnNhY3Rpb25MaW5lU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uTWFwcGluZ1NlcnZpY2U6IFRyYW5zYWN0aW9uTWFwcGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2U6IFB1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb25MaW5lU2VydmljZS50cmFuc2FjdGlvbkxpbmUgPSB0aGlzLnRyYW5zYWN0aW9uTGluZTtcclxuICAgIHRoaXMuYWN0aXZlQ2F0ZWdvcnlCdXR0b24gPSB0aGlzLl90cmFuc2FjdGlvbk1hcHBpbmdTZXJ2aWNlLmdldEJ1dHRvbkJhcih0aGlzLl90cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UudHJhbnNhY3Rpb25LaW5kKVxyXG4gICAgICAuZmluZCgoYnV0dG9uKSA9PiBidXR0b24uY2F0ZWdvcnkgPT09IHRoaXMuYWN0aXZlQ2F0ZWdvcnkpO1xyXG5cclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5fcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLm9yZGVyc1RvdGFsT2JzZXJ2YWJsZS5zdWJzY3JpYmUoXHJcbiAgICAgICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHRoaXMub3JkZXJzVG90YWwgPSB2YWx1ZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZS5yZXNldCgpO1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVBY3RpdmVDYXRlZ29yeShidXR0b246IFRyYW5zYWN0aW9uQmFyQnV0dG9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gYnV0dG9uLmNhdGVnb3J5O1xyXG4gICAgdGhpcy5hY3RpdmVDYXRlZ29yeUJ1dHRvbiA9IGJ1dHRvbjtcclxuICB9XHJcbn1cclxuIl19
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC90cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUzSSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRWhGLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0UsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFHcEYsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFFeEYsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDckYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDekYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFpRDFFLE1BQU0sT0FBTyxpQ0FBaUM7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QUFTLEVBQUUsa0JBQWtCLEVBQUMsQ0FBQyxDQUFDO3dCQUNyRCxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUMsQ0FBQyxDQUFDO3dCQUMvQyxVQUFVLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO3FCQUN2RCxDQUFDO2lCQUNIO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUEzRE8sa0JBQWtCO1lBVWxCLHdCQUF3QjtZQUR4QixzQkFBc0I7WUFSdEIsdUJBQXVCO1lBR3ZCLHlCQUF5QjtZQUd6QiwyQkFBMkI7WUFJM0Isb0JBQW9CO1lBaEJwQixpQkFBaUI7OzttQkF1RXRCLEtBQUs7NkJBR0wsS0FBSzswQkFHTCxNQUFNO3dCQUdOLFdBQVcsU0FBQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ibyc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0gZnJvbSAnLi4vLi4vZW51bS90cmFuc2FjdGlvbi10eXBlLWNhdGVnb3J5LmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLmJvJztcclxuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTWFwcGluZ1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tbWFwcGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhckJ1dHRvbn0gZnJvbSAnLi4vLi4vbW9kZWwvdHJhbnNhY3Rpb24tYmFyLWJ1dHRvbic7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvJztcclxuaW1wb3J0IHtQdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvcHVyY2hhc2UtY29uZmlybWF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVTZXJ2aWNlfSBmcm9tICcuLi9jb3JlL2Jhc2Uvc2VydmljZS90cmFuc2FjdGlvbi1saW5lLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyU2VydmljZX0gZnJvbSAnLi4vY29yZS9iYXNlL3NlcnZpY2UvdHJhbnNhY3Rpb24taGVhZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0xpbmVTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2xpbmUtc2VsZWN0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtd3JhcHBlclwiIFtjbGFzcy53aWRlXT1cIndpZGVcIiBAc2hvd0hpZGVTaWRlUGFuZWw+XHJcbiAgICAgIDxpY29uIChjbGljayk9XCJjYW5jZWxDbGljay5lbWl0KCRldmVudClcIiBbaWNvbl09XCJpY29ucy5Dcm9zc3NraW5ueVwiIGNsYXNzPVwic2lkZS1wYW5lbCBjbG9zZS1idXR0b25cIj48L2ljb24+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtaGVhZGVyXCI+XHJcbiAgICAgICAgPGljb24gW2ljb25dPVwiYWN0aXZlQ2F0ZWdvcnlCdXR0b24/Lmljb25cIj48L2ljb24+XHJcbiAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImFjdGl2ZUNhdGVnb3J5QnV0dG9uPy50aXRsZSB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1uYXYtYmFyXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWJ1dHRvbi1iYXJcclxuICAgICAgICAgIFtzaWRlUGFuZWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbc2VsZWN0ZWRDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJ1cGRhdGVBY3RpdmVDYXRlZ29yeSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1idXR0b24tYmFyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRvdGFsLWFtb3VudFwiICpuZ0lmPVwiYWN0aXZlQ2F0ZWdvcnkgPT09IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvblwiPlxyXG4gICAgICAgIDxzcGFuPlRvdGFhbCBleGNsLiBCVFc8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIm9yZGVyc1RvdGFsIHwgY29DdXJyZW5jeVwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtY29udGVudCBjby1zbWFsbC1zY3JvbGxiYXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0cmFuc2FjdGlvblR5cGVzLlB1cmNoYXNlT3JkZXJcIj5cclxuICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1wdXJjaGFzZSBbY2F0ZWdvcnlUeXBlXT1cImFjdGl2ZUNhdGVnb3J5XCI+PC9jby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtcHVyY2hhc2U+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInRyYW5zYWN0aW9uVHlwZXMuU2FsZXNPcmRlclwiPlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLXNhbGVzIFtjYXRlZ29yeVR5cGVdPVwiYWN0aXZlQ2F0ZWdvcnlcIj48L2NvLXRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1zYWxlcz5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLXB1cmNoYXNlIFtjYXRlZ29yeVR5cGVdPVwiYWN0aXZlQ2F0ZWdvcnlcIj48L2NvLXRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1wdXJjaGFzZT5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBUcmFuc2FjdGlvbkxpbmVTZXJ2aWNlXHJcbiAgXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKFwic2hvd0hpZGVTaWRlUGFuZWxcIiwgW1xyXG4gICAgICBzdGF0ZShcInZvaWRcIiwgc3R5bGUoe3RyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKDEwMCUpXCJ9KSksXHJcbiAgICAgIHN0YXRlKFwiKlwiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoMClcIn0pKSxcclxuICAgICAgdHJhbnNpdGlvbihcInZvaWQgPD0+ICpcIiwgYW5pbWF0ZShcIjIwMG1zIGVhc2UtaW4tb3V0XCIpKVxyXG4gICAgXSlcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTGluZVNpZGVQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICBwdWJsaWMgcmVhZG9ubHkgY2F0ZWdvcmllczogdHlwZW9mIFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5ID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zYWN0aW9uVHlwZXM6IHR5cGVvZiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgcHVibGljIHJlYWRvbmx5IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5ID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHdpZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWN0aXZlQ2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2FuY2VsQ2xpY2s6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlLnRyYW5zYWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0cmFuc2FjdGlvbkluZm8oKTogVHJhbnNhY3Rpb25JbmZvIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UudHJhbnNhY3Rpb25JbmZvO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFjdGl2ZUNhdGVnb3J5QnV0dG9uOiBUcmFuc2FjdGlvbkJhckJ1dHRvbjtcclxuICBwdWJsaWMgb3JkZXJzVG90YWw6IG51bWJlcjtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkhlYWRlclNlcnZpY2U6IFRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uTGluZVNlcnZpY2U6IFRyYW5zYWN0aW9uTGluZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbk1hcHBpbmdTZXJ2aWNlOiBUcmFuc2FjdGlvbk1hcHBpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlOiBQdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9saW5lU2VsZWN0aW9uU2VydmljZTogTGluZVNlbGVjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZlQ2F0ZWdvcnlCdXR0b24gPSB0aGlzLl90cmFuc2FjdGlvbk1hcHBpbmdTZXJ2aWNlLmdldEJ1dHRvbkJhcih0aGlzLl90cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UudHJhbnNhY3Rpb25LaW5kKVxyXG4gICAgICAuZmluZCgoYnV0dG9uKSA9PiBidXR0b24uY2F0ZWdvcnkgPT09IHRoaXMuYWN0aXZlQ2F0ZWdvcnkpO1xyXG5cclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5fbGluZVNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0ZWRUcmFuc2FjdGlvbkxpbmVDaGFuZ2VkLnN1YnNjcmliZSgobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbykgPT4ge1xyXG4gICAgICAgIGlmIChsaW5lKSB7XHJcbiAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkxpbmVTZXJ2aWNlLnRyYW5zYWN0aW9uTGluZSA9IGxpbmU7XHJcbiAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLm9yZGVyc1RvdGFsT2JzZXJ2YWJsZS5zdWJzY3JpYmUoXHJcbiAgICAgICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHRoaXMub3JkZXJzVG90YWwgPSB2YWx1ZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZS5yZXNldCgpO1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVBY3RpdmVDYXRlZ29yeShidXR0b246IFRyYW5zYWN0aW9uQmFyQnV0dG9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gYnV0dG9uLmNhdGVnb3J5O1xyXG4gICAgdGhpcy5hY3RpdmVDYXRlZ29yeUJ1dHRvbiA9IGJ1dHRvbjtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,34 +1,12 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { TransactionTypeCategory } from '../../enum/transaction-type-category.enum';
|
|
3
|
-
import { TransactionService } from '../../service/transaction.service';
|
|
4
|
-
import { TransactionEventService } from '../../service/transaction-event.service';
|
|
5
|
-
import { DocDeliveryBatch } from '@colijnit/transactionapi/build/model/doc-delivery-batch.bo';
|
|
6
|
-
import { GoodsReceiptHistory } from '@colijnit/transactionapi/build/model/goods-receipt-history.bo';
|
|
7
|
-
import { TransactionLineInfo } from '@colijnit/transactionapi/build/model/transaction-line-info.bo';
|
|
8
|
-
import { TransactionInfo } from '@colijnit/transactionapi/build/model/transaction-info.bo';
|
|
9
3
|
export class TransactionLineSidePanelPurchaseComponent {
|
|
10
|
-
constructor(
|
|
11
|
-
this._service = _service;
|
|
12
|
-
this._transactionEventService = _transactionEventService;
|
|
4
|
+
constructor() {
|
|
13
5
|
this.categories = TransactionTypeCategory;
|
|
14
|
-
this.transactionInfo = new TransactionInfo();
|
|
15
|
-
this.transactionLine = new TransactionLineInfo();
|
|
16
|
-
this.quantityToReceiveChange = new EventEmitter();
|
|
17
|
-
this.goodsReceiptStatus = new GoodsReceiptHistory();
|
|
18
|
-
this.selectedLineDocBatchArray = new DocDeliveryBatch();
|
|
19
|
-
this.isDocBatchSaved = false;
|
|
20
|
-
this.editingMode = false;
|
|
21
6
|
}
|
|
22
7
|
showClass() {
|
|
23
8
|
return true;
|
|
24
9
|
}
|
|
25
|
-
fillInputOnClick(data) {
|
|
26
|
-
this.selectedLineDocBatchArray = data;
|
|
27
|
-
this.editingMode = true;
|
|
28
|
-
}
|
|
29
|
-
docBatchSaved(data) {
|
|
30
|
-
this.isDocBatchSaved = data;
|
|
31
|
-
}
|
|
32
10
|
}
|
|
33
11
|
TransactionLineSidePanelPurchaseComponent.decorators = [
|
|
34
12
|
{ type: Component, args: [{
|
|
@@ -36,10 +14,7 @@ TransactionLineSidePanelPurchaseComponent.decorators = [
|
|
|
36
14
|
template: `
|
|
37
15
|
<ng-container [ngSwitch]="categoryType">
|
|
38
16
|
<ng-container *ngSwitchCase="categories.PurchaseOrderOrderConfirmation">
|
|
39
|
-
<co-transaction-line-purchase-confirmation
|
|
40
|
-
[transactionInfo]="transactionInfo"
|
|
41
|
-
[transactionLine]="transactionLine"
|
|
42
|
-
></co-transaction-line-purchase-confirmation>
|
|
17
|
+
<co-transaction-line-purchase-confirmation></co-transaction-line-purchase-confirmation>
|
|
43
18
|
</ng-container>
|
|
44
19
|
<ng-container *ngSwitchCase="categories.PurchaseOrderReceivedGoods">
|
|
45
20
|
<co-transaction-line-purchase-receive-goods></co-transaction-line-purchase-receive-goods>
|
|
@@ -52,15 +27,8 @@ TransactionLineSidePanelPurchaseComponent.decorators = [
|
|
|
52
27
|
encapsulation: ViewEncapsulation.None
|
|
53
28
|
},] }
|
|
54
29
|
];
|
|
55
|
-
TransactionLineSidePanelPurchaseComponent.ctorParameters = () => [
|
|
56
|
-
{ type: TransactionService },
|
|
57
|
-
{ type: TransactionEventService }
|
|
58
|
-
];
|
|
59
30
|
TransactionLineSidePanelPurchaseComponent.propDecorators = {
|
|
60
|
-
transactionInfo: [{ type: Input }],
|
|
61
|
-
transactionLine: [{ type: Input }],
|
|
62
31
|
categoryType: [{ type: Input }],
|
|
63
|
-
quantityToReceiveChange: [{ type: Output }],
|
|
64
32
|
showClass: [{ type: HostBinding, args: ["class.co-transaction-line-side-panel-purchase",] }]
|
|
65
33
|
};
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLXB1cmNoYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1wdXJjaGFzZS90cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtcHVyY2hhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQW1CbEYsTUFBTSxPQUFPLHlDQUF5QztJQWpCdEQ7UUFrQmtCLGVBQVUsR0FBbUMsdUJBQXVCLENBQUM7SUFTdkYsQ0FBQztJQUhRLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OztZQTFCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlDQUF5QztnQkFDbkQsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7R0FZVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7OzJCQUlFLEtBQUs7d0JBR0wsV0FBVyxTQUFDLCtDQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0gZnJvbSAnLi4vLi4vZW51bS90cmFuc2FjdGlvbi10eXBlLWNhdGVnb3J5LmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLXB1cmNoYXNlXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNhdGVnb3J5VHlwZVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjYXRlZ29yaWVzLlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvblwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXB1cmNoYXNlLWNvbmZpcm1hdGlvbj48L2NvLXRyYW5zYWN0aW9uLWxpbmUtcHVyY2hhc2UtY29uZmlybWF0aW9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY2F0ZWdvcmllcy5QdXJjaGFzZU9yZGVyUmVjZWl2ZWRHb29kc1wiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXB1cmNoYXNlLXJlY2VpdmUtZ29vZHM+PC9jby10cmFuc2FjdGlvbi1saW5lLXB1cmNoYXNlLXJlY2VpdmUtZ29vZHM+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1kZWZhdWx0PjwvY28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLWRlZmF1bHQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVTaWRlUGFuZWxQdXJjaGFzZUNvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3JpZXM6IHR5cGVvZiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjYXRlZ29yeVR5cGU6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtcHVyY2hhc2VcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,26 +1,9 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { TransactionLinesBaseComponent } from '../core/base/transaction-lines-base.component';
|
|
3
3
|
import { TransactionLineInfo } from '@colijnit/transactionapi/build/model/transaction-line-info.bo';
|
|
4
|
-
import { TransactionHeaderService } from '../core/base/service/transaction-header.service';
|
|
5
|
-
import { TransactionEventService } from '../../service/transaction-event.service';
|
|
6
|
-
import { TransactionService } from '../../service/transaction.service';
|
|
7
|
-
import { IconCacheService } from '../../service/icon-cache.service';
|
|
8
|
-
import { TransactionScreenConfigurationService } from '../../service/transaction-screen-configuration.service';
|
|
9
|
-
import { DictionaryService } from '../../service/dictionary.service';
|
|
10
|
-
import { TransactionImageService } from '../../service/transaction-image.service';
|
|
11
|
-
import { PurchaseConfirmationService } from '../../service/purchase-confirmation.service';
|
|
12
4
|
export class TransactionLinesComponent extends TransactionLinesBaseComponent {
|
|
13
|
-
constructor(
|
|
14
|
-
super(
|
|
15
|
-
this.transactionHeaderService = transactionHeaderService;
|
|
16
|
-
this.transactionEventService = transactionEventService;
|
|
17
|
-
this.service = service;
|
|
18
|
-
this.iconCacheService = iconCacheService;
|
|
19
|
-
this.transactionScreenConfigurationService = transactionScreenConfigurationService;
|
|
20
|
-
this.dictionaryService = dictionaryService;
|
|
21
|
-
this.imageService = imageService;
|
|
22
|
-
this.changeDetector = changeDetector;
|
|
23
|
-
this._purchaseConfirmationService = _purchaseConfirmationService;
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
24
7
|
this.customerPortal = false;
|
|
25
8
|
this.showSidePanel = false;
|
|
26
9
|
this.showSidePanelForConfirmationAI = false;
|
|
@@ -32,7 +15,7 @@ export class TransactionLinesComponent extends TransactionLinesBaseComponent {
|
|
|
32
15
|
}
|
|
33
16
|
ngOnInit() {
|
|
34
17
|
super.ngOnInit();
|
|
35
|
-
this._subs.push(this.
|
|
18
|
+
this._subs.push(this.purchaseConfirmationService.confirmationNeeded.subscribe((needed) => {
|
|
36
19
|
if (needed) {
|
|
37
20
|
this.showSidePanelForConfirmationAI = true;
|
|
38
21
|
this.showSidePanel = true;
|
|
@@ -56,7 +39,8 @@ export class TransactionLinesComponent extends TransactionLinesBaseComponent {
|
|
|
56
39
|
}
|
|
57
40
|
_checkActiveLine() {
|
|
58
41
|
if (this.showSidePanelForConfirmationAI && this.transactionLines && this.transactionLines.length > 0) {
|
|
59
|
-
this.activeTransactionLine = this.transactionLines[0];
|
|
42
|
+
// this.activeTransactionLine = this.transactionLines[0];
|
|
43
|
+
this.lineSelectionService.selectedTransactionLine = this.transactionLines[0];
|
|
60
44
|
}
|
|
61
45
|
}
|
|
62
46
|
}
|
|
@@ -124,10 +108,8 @@ TransactionLinesComponent.decorators = [
|
|
|
124
108
|
</div>
|
|
125
109
|
</ng-container>
|
|
126
110
|
</div>
|
|
127
|
-
<co-transaction-line-side-panel *ngIf="showSidePanel"
|
|
111
|
+
<co-transaction-line-side-panel *ngIf="showSidePanel"
|
|
128
112
|
[activeCategory]="activeCategory"
|
|
129
|
-
[transactionLine]="activeTransactionLine"
|
|
130
|
-
(clickOutside)="showSidePanel = false"
|
|
131
113
|
(cancelClick)="showSidePanel = false">
|
|
132
114
|
</co-transaction-line-side-panel>
|
|
133
115
|
`,
|
|
@@ -135,19 +117,8 @@ TransactionLinesComponent.decorators = [
|
|
|
135
117
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
136
118
|
},] }
|
|
137
119
|
];
|
|
138
|
-
TransactionLinesComponent.ctorParameters = () => [
|
|
139
|
-
{ type: TransactionHeaderService },
|
|
140
|
-
{ type: TransactionEventService },
|
|
141
|
-
{ type: TransactionService },
|
|
142
|
-
{ type: IconCacheService },
|
|
143
|
-
{ type: TransactionScreenConfigurationService },
|
|
144
|
-
{ type: DictionaryService },
|
|
145
|
-
{ type: TransactionImageService },
|
|
146
|
-
{ type: ChangeDetectorRef },
|
|
147
|
-
{ type: PurchaseConfirmationService }
|
|
148
|
-
];
|
|
149
120
|
TransactionLinesComponent.propDecorators = {
|
|
150
121
|
showClass: [{ type: HostBinding, args: ["class.co-transaction-lines",] }],
|
|
151
122
|
customerPortal: [{ type: Input }]
|
|
152
123
|
};
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tbGluZXMvdHJhbnNhY3Rpb24tbGluZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBcUIsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUksT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDNUYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDbEcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDekYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0csT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFFaEYsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUEyRXhGLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSw2QkFBNkI7SUFlMUUsWUFDUyx3QkFBa0QsRUFDbEQsdUJBQWdELEVBQ2hELE9BQTJCLEVBQzNCLGdCQUFrQyxFQUNsQyxxQ0FBNEUsRUFDekUsaUJBQW9DLEVBQ3BDLFlBQXFDLEVBQ3JDLGNBQWlD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Q0FBcUM7WUFDckMsaUJBQWlCO1lBQ2pCLHVCQUF1QjtZQVRFLGlCQUFpQjtZQVcxQywyQkFBMkI7Ozt3QkE0RWhDLFdBQVcsU0FBQyw0QkFBNEI7NkJBS3hDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lc0Jhc2VDb21wb25lbnR9IGZyb20gJy4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1saW5lcy1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlfSBmcm9tICcuLi9jb3JlL2Jhc2Uvc2VydmljZS90cmFuc2FjdGlvbi1oZWFkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtQdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvcHVyY2hhc2UtY29uZmlybWF0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tbGluZXNcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiAqbmdJZj1cImN1c3RvbWVyUG9ydGFsXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkcmFnZ2FibGUtdHJhbnNhY3Rpb24tbGluZVwiICpuZ0Zvcj1cImxldCBsaW5lIG9mIChoaXN0b3JpY1RyYW5zYWN0aW9uTGluZXMgPyBoaXN0b3JpY1RyYW5zYWN0aW9uTGluZXMgOiB0cmFuc2FjdGlvbkxpbmVzKTtcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZVxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJsaW5lXCJcclxuICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJjYXRlZ29yeS5TYWxlc0N1c3RvbWVyUG9ydGFsXCJcclxuICAgICAgICAgIFtwcmV2aWV3XT1cInByZXZpZXdcIlxyXG4gICAgICAgICAgW3JlYWRvbmx5XT1cImhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyAhPT0gbnVsbFwiXHJcbiAgICAgICAgICAod2FpdGluZ0ZvclVzZXJBY3Rpb24pPVwidXNlckFjdGlvblJlcXVpcmVkID0gJGV2ZW50XCJcclxuICAgICAgICAgIFtjbGFzcy5jdXN0b21lci1saW5lXT1cImN1c3RvbWVyUG9ydGFsXCJcclxuICAgICAgICAgIG9ic2VydmVWaXNpYmlsaXR5ICNvYnNlcnZlcj12aXNpYmlsaXR5T2JzZXJ2ZSAodmlzaWJpbGl0eUNoYW5nZSk9XCJoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlKGxpbmUsICRldmVudClcIlxyXG4gICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cIiFjdXN0b21lclBvcnRhbFwiICNkcm9wTGlzdCBjZGtEcm9wTGlzdCBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwidmVydGljYWxcIlxyXG4gICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLWRyYWctZHJvcC1saXN0XCJcclxuICAgICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwicHJldmlldyB8fCB1c2VyQWN0aW9uUmVxdWlyZWRcIlxyXG4gICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cInRyYW5zYWN0aW9uTGluZXNcIlxyXG4gICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJoYW5kbGVDYW5EcmFnRHJvcFwiXHJcbiAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiaGFuZGxlRHJvcCgkZXZlbnQpXCJcclxuICAgICAgICAgKGNka0Ryb3BMaXN0RW50ZXJlZCk9XCJoYW5kbGVEcm9wTGlzdEVudGVyZWQoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkcmFnZ2FibGUtdHJhbnNhY3Rpb24tbGluZVwiICpuZ0Zvcj1cImxldCBsaW5lIG9mIChoaXN0b3JpY1RyYW5zYWN0aW9uTGluZXMgPyBoaXN0b3JpY1RyYW5zYWN0aW9uTGluZXMgOiB0cmFuc2FjdGlvbkxpbmVzKTtsZXQgaXNGaXJzdCA9IGZpcnN0OyB0cmFja0J5OnRyYWNrQnlGbjtcIiBjZGtEcmFnPlxyXG4gICAgICAgIDxjby1pY29uICpuZ0lmPVwiIXByZXZpZXdcIiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZHJhZy1oYW5kbGVcIlxyXG4gICAgICAgICAgICAgICAgIFtjbGFzcy5zaG93XT1cImxpbmUgPT09IHNlbGVjdGVkVHJhbnNhY3Rpb25MaW5lICYmIHRyYW5zYWN0aW9uTGluZXMubGVuZ3RoID4gMVwiIGNka0RyYWdIYW5kbGVcclxuICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkdyaXBEb3RzVmVydGljYWxTb2xpZClcIj5cclxuICAgICAgICA8L2NvLWljb24+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmVcclxuICAgICAgICAgIFtkcmFnZ2VkT3Zlcl09XCJsaW5lRHJhZ2dlZE92ZXIgPT09IGxpbmUubGluZU5yXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwibGluZVwiXHJcbiAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgW3ByZXZpZXddPVwicHJldmlld1wiXHJcbiAgICAgICAgICBbaXNGaXJzdF09XCJpc0ZpcnN0XCJcclxuICAgICAgICAgIFtyZWFkb25seV09XCJoaXN0b3JpY1RyYW5zYWN0aW9uTGluZXMgIT09IG51bGxcIlxyXG4gICAgICAgICAgKHdhaXRpbmdGb3JVc2VyQWN0aW9uKT1cInVzZXJBY3Rpb25SZXF1aXJlZCA9ICRldmVudFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRUcmFuc2FjdGlvbkxpbmUgPSBsaW5lXCJcclxuICAgICAgICAgIChkZXNjcmlwdGlvbkRibENsaWNrKT1cIm9uRGVzY3JpcHRpb25EYmxDbGljayhsaW5lKVwiXHJcbiAgICAgICAgICBvYnNlcnZlVmlzaWJpbGl0eSAjb2JzZXJ2ZXI9dmlzaWJpbGl0eU9ic2VydmUgKHZpc2liaWxpdHlDaGFuZ2UpPVwiaGFuZGxlVmlzaWJpbGl0eUNoYW5nZShsaW5lLCAkZXZlbnQpXCJcclxuICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yeS5TYWxlc09yZGVyRGVsaXZlcnlOb3RlIHx8IGFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yeS5TYWxlc09yZGVySW52b2ljZSB8fCBhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcnkuU2FsZXNPcmRlclBsYW5uaW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyYWdnYWJsZS10cmFuc2FjdGlvbi1saW5lXCIgKm5nRm9yPVwibGV0IGxpbmUgb2YgZGVsaXZlcnlDb3N0TGluZXM7IHRyYWNrQnk6dHJhY2tCeUZuO1wiIGNka0RyYWc+XHJcbiAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cIiFwcmV2aWV3XCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWRyYWctaGFuZGxlXCJcclxuICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zaG93XT1cImxpbmUgPT09IHNlbGVjdGVkVHJhbnNhY3Rpb25MaW5lXCIgY2RrRHJhZ0hhbmRsZVxyXG4gICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5HcmlwRG90c1ZlcnRpY2FsU29saWQpXCI+XHJcbiAgICAgICAgICA8L2NvLWljb24+XHJcbiAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZVxyXG4gICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cImxpbmVcIlxyXG4gICAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICBbcHJldmlld109XCJwcmV2aWV3XCJcclxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cImhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyAhPT0gbnVsbFwiXHJcbiAgICAgICAgICAgIFtpc0ZpcnN0XT1cImlzRmlyc3RcIlxyXG4gICAgICAgICAgICAod2FpdGluZ0ZvclVzZXJBY3Rpb24pPVwidXNlckFjdGlvblJlcXVpcmVkID0gJGV2ZW50XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkVHJhbnNhY3Rpb25MaW5lID0gbGluZVwiXHJcbiAgICAgICAgICAgIChkZXNjcmlwdGlvbkRibENsaWNrKT1cIm9uRGVzY3JpcHRpb25EYmxDbGljayhsaW5lKVwiXHJcbiAgICAgICAgICAgIG9ic2VydmVWaXNpYmlsaXR5ICNvYnNlcnZlcj12aXNpYmlsaXR5T2JzZXJ2ZSAodmlzaWJpbGl0eUNoYW5nZSk9XCJoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlKGxpbmUsICRldmVudClcIlxyXG4gICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwgKm5nSWY9XCJzaG93U2lkZVBhbmVsXCIgY2xpY2tPdXRzaWRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwiYWN0aXZlVHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrT3V0c2lkZSk9XCJzaG93U2lkZVBhbmVsID0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwic2hvd1NpZGVQYW5lbCA9IGZhbHNlXCI+XHJcbiAgICA8L2NvLXRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbD5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTGluZXNDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkxpbmVzQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1saW5lc1wiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGN1c3RvbWVyUG9ydGFsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzaG93U2lkZVBhbmVsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dTaWRlUGFuZWxGb3JDb25maXJtYXRpb25BSTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBhY3RpdmVUcmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm89IG5ldyBUcmFuc2FjdGlvbkxpbmVJbmZvKCk7XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uSGVhZGVyU2VydmljZTogVHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IFRyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZTogUHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UsIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCBzZXJ2aWNlLCBjaGFuZ2VEZXRlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLl9wdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybWF0aW9uTmVlZGVkLnN1YnNjcmliZSgobmVlZGVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKG5lZWRlZCkge1xyXG4gICAgICAgICAgdGhpcy5zaG93U2lkZVBhbmVsRm9yQ29uZmlybWF0aW9uQUkgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zaG93U2lkZVBhbmVsID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuX2NoZWNrQWN0aXZlTGluZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dTaWRlUGFuZWxGb3JDb25maXJtYXRpb25BSSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3BlblNpZGVQYW5lbC5zdWJzY3JpYmUoKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pID0+IHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVRyYW5zYWN0aW9uTGluZSA9IGxpbmU7XHJcbiAgICAgICAgdGhpcy5zaG93U2lkZVBhbmVsID0gdHJ1ZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0cmFuc2FjdGlvblNldCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLnRyYW5zYWN0aW9uU2V0KCk7XHJcbiAgICB0aGlzLl9jaGVja0FjdGl2ZUxpbmUoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfY2hlY2tBY3RpdmVMaW5lKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2hvd1NpZGVQYW5lbEZvckNvbmZpcm1hdGlvbkFJICYmIHRoaXMudHJhbnNhY3Rpb25MaW5lcyAmJiB0aGlzLnRyYW5zYWN0aW9uTGluZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRyYW5zYWN0aW9uTGluZSA9IHRoaXMudHJhbnNhY3Rpb25MaW5lc1swXTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tbGluZXMvdHJhbnNhY3Rpb24tbGluZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBcUIsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0gsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDNUYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUEwRWxHLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSw2QkFBNkI7SUF2RTVFOztRQThFUyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUVoQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixtQ0FBOEIsR0FBWSxLQUFLLENBQUM7UUFDaEQsMEJBQXFCLEdBQXVCLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUVyRSxVQUFLLEdBQW1CLEVBQUUsQ0FBQztJQXFDckMsQ0FBQztJQWhEUSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBV00sUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixJQUFJLENBQUMsMkJBQTJCLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBZSxFQUFFLEVBQUU7WUFDaEYsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLDhCQUE4QixHQUFHLElBQUksQ0FBQztnQkFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxLQUFLLENBQUM7YUFDN0M7UUFDSCxDQUFDLENBQUMsRUFDRixJQUFJLENBQUMsdUJBQXVCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQXlCLEVBQUUsRUFBRTtZQUNqRixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRVMsY0FBYztRQUN0QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixJQUFJLElBQUksQ0FBQyw4QkFBOEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDcEcseURBQXlEO1lBQ3pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUU7SUFDSCxDQUFDOzs7WUF4SEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRVQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOzs7d0JBRUUsV0FBVyxTQUFDLDRCQUE0Qjs2QkFLeEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZXNCYXNlQ29tcG9uZW50fSBmcm9tICcuLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tbGluZXMtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm8nO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1saW5lc1wiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2ICpuZ0lmPVwiY3VzdG9tZXJQb3J0YWxcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRyYWdnYWJsZS10cmFuc2FjdGlvbi1saW5lXCIgKm5nRm9yPVwibGV0IGxpbmUgb2YgKGhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyA/IGhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyA6IHRyYW5zYWN0aW9uTGluZXMpO1wiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cImxpbmVcIlxyXG4gICAgICAgICAgW2FjdGl2ZUNhdGVnb3J5XT1cImNhdGVnb3J5LlNhbGVzQ3VzdG9tZXJQb3J0YWxcIlxyXG4gICAgICAgICAgW3ByZXZpZXddPVwicHJldmlld1wiXHJcbiAgICAgICAgICBbcmVhZG9ubHldPVwiaGlzdG9yaWNUcmFuc2FjdGlvbkxpbmVzICE9PSBudWxsXCJcclxuICAgICAgICAgICh3YWl0aW5nRm9yVXNlckFjdGlvbik9XCJ1c2VyQWN0aW9uUmVxdWlyZWQgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgW2NsYXNzLmN1c3RvbWVyLWxpbmVdPVwiY3VzdG9tZXJQb3J0YWxcIlxyXG4gICAgICAgICAgb2JzZXJ2ZVZpc2liaWxpdHkgI29ic2VydmVyPXZpc2liaWxpdHlPYnNlcnZlICh2aXNpYmlsaXR5Q2hhbmdlKT1cImhhbmRsZVZpc2liaWxpdHlDaGFuZ2UobGluZSwgJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiIWN1c3RvbWVyUG9ydGFsXCIgI2Ryb3BMaXN0IGNka0Ryb3BMaXN0IGNka0Ryb3BMaXN0T3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXHJcbiAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZXMtZHJhZy1kcm9wLWxpc3RcIlxyXG4gICAgICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCJwcmV2aWV3IHx8IHVzZXJBY3Rpb25SZXF1aXJlZFwiXHJcbiAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwidHJhbnNhY3Rpb25MaW5lc1wiXHJcbiAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImhhbmRsZUNhbkRyYWdEcm9wXCJcclxuICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxyXG4gICAgICAgICAoY2RrRHJvcExpc3RFbnRlcmVkKT1cImhhbmRsZURyb3BMaXN0RW50ZXJlZCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImRyYWdnYWJsZS10cmFuc2FjdGlvbi1saW5lXCIgKm5nRm9yPVwibGV0IGxpbmUgb2YgKGhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyA/IGhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyA6IHRyYW5zYWN0aW9uTGluZXMpO2xldCBpc0ZpcnN0ID0gZmlyc3Q7IHRyYWNrQnk6dHJhY2tCeUZuO1wiIGNka0RyYWc+XHJcbiAgICAgICAgPGNvLWljb24gKm5nSWY9XCIhcHJldmlld1wiIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1kcmFnLWhhbmRsZVwiXHJcbiAgICAgICAgICAgICAgICAgW2NsYXNzLnNob3ddPVwibGluZSA9PT0gc2VsZWN0ZWRUcmFuc2FjdGlvbkxpbmUgJiYgdHJhbnNhY3Rpb25MaW5lcy5sZW5ndGggPiAxXCIgY2RrRHJhZ0hhbmRsZVxyXG4gICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuR3JpcERvdHNWZXJ0aWNhbFNvbGlkKVwiPlxyXG4gICAgICAgIDwvY28taWNvbj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZVxyXG4gICAgICAgICAgW2RyYWdnZWRPdmVyXT1cImxpbmVEcmFnZ2VkT3ZlciA9PT0gbGluZS5saW5lTnJcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJsaW5lXCJcclxuICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICBbcHJldmlld109XCJwcmV2aWV3XCJcclxuICAgICAgICAgIFtpc0ZpcnN0XT1cImlzRmlyc3RcIlxyXG4gICAgICAgICAgW3JlYWRvbmx5XT1cImhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyAhPT0gbnVsbFwiXHJcbiAgICAgICAgICAod2FpdGluZ0ZvclVzZXJBY3Rpb24pPVwidXNlckFjdGlvblJlcXVpcmVkID0gJGV2ZW50XCJcclxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZFRyYW5zYWN0aW9uTGluZSA9IGxpbmVcIlxyXG4gICAgICAgICAgKGRlc2NyaXB0aW9uRGJsQ2xpY2spPVwib25EZXNjcmlwdGlvbkRibENsaWNrKGxpbmUpXCJcclxuICAgICAgICAgIG9ic2VydmVWaXNpYmlsaXR5ICNvYnNlcnZlcj12aXNpYmlsaXR5T2JzZXJ2ZSAodmlzaWJpbGl0eUNoYW5nZSk9XCJoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlKGxpbmUsICRldmVudClcIlxyXG4gICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3J5LlNhbGVzT3JkZXJEZWxpdmVyeU5vdGUgfHwgYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3J5LlNhbGVzT3JkZXJJbnZvaWNlIHx8IGFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yeS5TYWxlc09yZGVyUGxhbm5pbmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhZ2dhYmxlLXRyYW5zYWN0aW9uLWxpbmVcIiAqbmdGb3I9XCJsZXQgbGluZSBvZiBkZWxpdmVyeUNvc3RMaW5lczsgdHJhY2tCeTp0cmFja0J5Rm47XCIgY2RrRHJhZz5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwiIXByZXZpZXdcIiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZHJhZy1oYW5kbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgW2NsYXNzLnNob3ddPVwibGluZSA9PT0gc2VsZWN0ZWRUcmFuc2FjdGlvbkxpbmVcIiBjZGtEcmFnSGFuZGxlXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkdyaXBEb3RzVmVydGljYWxTb2xpZClcIj5cclxuICAgICAgICAgIDwvY28taWNvbj5cclxuICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lXHJcbiAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwibGluZVwiXHJcbiAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgIFtwcmV2aWV3XT1cInByZXZpZXdcIlxyXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwiaGlzdG9yaWNUcmFuc2FjdGlvbkxpbmVzICE9PSBudWxsXCJcclxuICAgICAgICAgICAgW2lzRmlyc3RdPVwiaXNGaXJzdFwiXHJcbiAgICAgICAgICAgICh3YWl0aW5nRm9yVXNlckFjdGlvbik9XCJ1c2VyQWN0aW9uUmVxdWlyZWQgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRUcmFuc2FjdGlvbkxpbmUgPSBsaW5lXCJcclxuICAgICAgICAgICAgKGRlc2NyaXB0aW9uRGJsQ2xpY2spPVwib25EZXNjcmlwdGlvbkRibENsaWNrKGxpbmUpXCJcclxuICAgICAgICAgICAgb2JzZXJ2ZVZpc2liaWxpdHkgI29ic2VydmVyPXZpc2liaWxpdHlPYnNlcnZlICh2aXNpYmlsaXR5Q2hhbmdlKT1cImhhbmRsZVZpc2liaWxpdHlDaGFuZ2UobGluZSwgJGV2ZW50KVwiXHJcbiAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbCAqbmdJZj1cInNob3dTaWRlUGFuZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwic2hvd1NpZGVQYW5lbCA9IGZhbHNlXCI+XHJcbiAgICA8L2NvLXRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbD5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTGluZXNDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkxpbmVzQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1saW5lc1wiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGN1c3RvbWVyUG9ydGFsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzaG93U2lkZVBhbmVsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dTaWRlUGFuZWxGb3JDb25maXJtYXRpb25BSTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBhY3RpdmVUcmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm89IG5ldyBUcmFuc2FjdGlvbkxpbmVJbmZvKCk7XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMucHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm1hdGlvbk5lZWRlZC5zdWJzY3JpYmUoKG5lZWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChuZWVkZWQpIHtcclxuICAgICAgICAgIHRoaXMuc2hvd1NpZGVQYW5lbEZvckNvbmZpcm1hdGlvbkFJID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc2hvd1NpZGVQYW5lbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLl9jaGVja0FjdGl2ZUxpbmUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zaG93U2lkZVBhbmVsRm9yQ29uZmlybWF0aW9uQUkgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLm9wZW5TaWRlUGFuZWwuc3Vic2NyaWJlKChsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVUcmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgICAgIHRoaXMuc2hvd1NpZGVQYW5lbCA9IHRydWU7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci50cmFuc2FjdGlvblNldCgpO1xyXG4gICAgdGhpcy5fY2hlY2tBY3RpdmVMaW5lKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2NoZWNrQWN0aXZlTGluZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNob3dTaWRlUGFuZWxGb3JDb25maXJtYXRpb25BSSAmJiB0aGlzLnRyYW5zYWN0aW9uTGluZXMgJiYgdGhpcy50cmFuc2FjdGlvbkxpbmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgLy8gdGhpcy5hY3RpdmVUcmFuc2FjdGlvbkxpbmUgPSB0aGlzLnRyYW5zYWN0aW9uTGluZXNbMF07XHJcbiAgICAgIHRoaXMubGluZVNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0ZWRUcmFuc2FjdGlvbkxpbmUgPSB0aGlzLnRyYW5zYWN0aW9uTGluZXNbMF07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
|