@colijnit/transaction 12.1.2 → 12.1.3
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/app/component/core/base/transaction-base.component.d.ts +10 -0
- package/app/component/{shopping-cart → core}/characteristic-answer/characteristic-answer.component.d.ts +0 -0
- package/app/component/core/warehouse/warehouse.component.d.ts +35 -0
- package/app/component/service-order/service-order.component.d.ts +9 -4
- package/app/component/service-order/transaction-manager/transaction-manager.component.d.ts +63 -0
- package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +1 -1
- package/app/service/transaction.service.d.ts +14 -8
- package/bundles/colijnit-transaction.umd.js +850 -115
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +20 -18
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/app/component/core/base/transaction-base.component.js +35 -12
- package/esm2015/app/component/core/characteristic-answer/characteristic-answer.component.js +100 -0
- package/esm2015/app/component/core/warehouse/warehouse.component.js +133 -0
- package/esm2015/app/component/service-order/ione-service-order-module.js +7 -2
- package/esm2015/app/component/service-order/service-order.component.js +35 -6
- package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +16 -5
- package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js +305 -0
- package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +3 -3
- package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +1 -1
- package/esm2015/app/service/transaction.service.js +72 -23
- package/esm2015/assets/dictionary/text.properties.js +5 -1
- package/esm2015/colijnit-transaction.js +21 -19
- package/fesm2015/colijnit-transaction.js +584 -45
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/package.json +1 -1
- package/esm2015/app/component/shopping-cart/characteristic-answer/characteristic-answer.component.js +0 -99
package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js
ADDED
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Component, EventEmitter, Output, ViewChild } from "@angular/core";
|
|
3
|
+
import { TransactionService } from "../../../service/transaction.service";
|
|
4
|
+
import { NumberUtils } from "@colijnit/transactionapi/build/utils/number-utils";
|
|
5
|
+
import { TransactionEventService } from "../../../service/transaction-event.service";
|
|
6
|
+
import { ResolvePendingLineReasonRequest } from "@colijnit/transactionapi/build/model/resolve-pending-reason-request.bo";
|
|
7
|
+
import { TransactionLineType } from "@colijnit/transactionapi/build/enum/transaction-line-type.enum";
|
|
8
|
+
import { PendingReasonType } from "@colijnit/transactionapi/build/enum/pending-reason-type.enum";
|
|
9
|
+
import { DictionaryService } from "../../../service/dictionary.service";
|
|
10
|
+
import { PositionGridRow } from "../../../../enum/position-grid-row.enum";
|
|
11
|
+
import { TransactionBaseComponent } from "../../core/base/transaction-base.component";
|
|
12
|
+
import { PromptService } from "@colijnit/corecomponents_v12";
|
|
13
|
+
export class TransactionManagerComponent extends TransactionBaseComponent {
|
|
14
|
+
constructor(service, transactionEvents, promptService, _dictionaryService) {
|
|
15
|
+
super(service);
|
|
16
|
+
this.service = service;
|
|
17
|
+
this.transactionEvents = transactionEvents;
|
|
18
|
+
this.promptService = promptService;
|
|
19
|
+
this._dictionaryService = _dictionaryService;
|
|
20
|
+
this.linesChanged = new EventEmitter();
|
|
21
|
+
this.articleAdded = new EventEmitter();
|
|
22
|
+
this.columns = [];
|
|
23
|
+
this._inOutCollection = [];
|
|
24
|
+
this._showCharacteristic = false;
|
|
25
|
+
this._subs = [];
|
|
26
|
+
this._subs.push(this.service.transactionLoaded.subscribe((transactionInfoResponse) => {
|
|
27
|
+
if (transactionInfoResponse.isSuccess) {
|
|
28
|
+
this.transaction = transactionInfoResponse;
|
|
29
|
+
}
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
get amountOfLines() {
|
|
33
|
+
return NumberUtils.NrOrDefault(this.service.articleAmount, 0);
|
|
34
|
+
}
|
|
35
|
+
get showCharacteristicDialog() {
|
|
36
|
+
return this._showCharacteristic;
|
|
37
|
+
}
|
|
38
|
+
set showCharacteristicDialog(value) {
|
|
39
|
+
this._showCharacteristic = value;
|
|
40
|
+
}
|
|
41
|
+
ngOnDestroy() {
|
|
42
|
+
this._subs.forEach(sub => sub.unsubscribe());
|
|
43
|
+
}
|
|
44
|
+
addArticleLine(transactionUuid, sku, amount, lineNr, beforeOrAfter) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const goodId = yield this.service.getGoodIdFromArticleNr(sku);
|
|
47
|
+
if (goodId) {
|
|
48
|
+
yield this._loadArticle(goodId);
|
|
49
|
+
yield this._handleAddArticleLineAt(amount, lineNr, beforeOrAfter);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
this.promptService.showError(this._dictionaryService.get("ARTICLE_UNKNOWN"));
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
changeLineSequence(fromIndex, toIndex) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
let fromLine = this._getTransactionLineInfoByIndex(fromIndex);
|
|
59
|
+
let toLine = this._getTransactionLineInfoByIndex(toIndex);
|
|
60
|
+
let aboveLineNr;
|
|
61
|
+
let belowLineNr;
|
|
62
|
+
if (fromIndex > toIndex) {
|
|
63
|
+
aboveLineNr = toLine.lineNr;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
belowLineNr = toLine.lineNr;
|
|
67
|
+
}
|
|
68
|
+
yield this.service.changeLineSequence(fromLine.uuid, aboveLineNr, belowLineNr, false)
|
|
69
|
+
.then((value) => {
|
|
70
|
+
this.handleLineOperationStatus(value);
|
|
71
|
+
}, (error) => this.promptService.showError(error));
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
showStockManager(line) {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
this.warehouse.selectedWarehouseNr = line.warehouseNumber;
|
|
77
|
+
this.warehouse.amount = line.amount;
|
|
78
|
+
this.warehouse.commissionCode = line.commissionCode;
|
|
79
|
+
this.warehouse.message = this.currentOperationStatus.pendingReason;
|
|
80
|
+
this.warehouse.show(line.articleNumber);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
warehouseOkClick() {
|
|
84
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
if (this.warehouse.commissionCode !== undefined) {
|
|
86
|
+
this.currentReason.commissionCode = this.warehouse.commissionCode;
|
|
87
|
+
}
|
|
88
|
+
if (this.warehouse.amount !== undefined) {
|
|
89
|
+
this.currentReason.quantity = this.warehouse.amount;
|
|
90
|
+
}
|
|
91
|
+
if (this.warehouse.selectedWarehouseNr !== undefined) {
|
|
92
|
+
this.currentReason.warehouseNr = this.warehouse.selectedWarehouseNr;
|
|
93
|
+
}
|
|
94
|
+
if (this.currentReason) {
|
|
95
|
+
yield this.service.resolvePendingLineReason(this.currentReason, false)
|
|
96
|
+
.then((value) => {
|
|
97
|
+
this.handleLineOperationStatus(value);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
warehouseCancelClick() {
|
|
103
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
104
|
+
if (this.currentReason) {
|
|
105
|
+
yield this._cancelArticle(this.currentReason.lineUuid);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
handleCharacteristicAnswerOkClick(answer) {
|
|
110
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
111
|
+
this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
|
|
112
|
+
this.currentReason.textualUserInput = answer;
|
|
113
|
+
yield this.service.resolvePendingLineReason(this.currentReason, false)
|
|
114
|
+
.then((value) => {
|
|
115
|
+
this.handleLineOperationStatus(value);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
_handleAddArticle(amount = 1) {
|
|
120
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
121
|
+
yield this.service.addTransactionLine(TransactionLineType.ArticleLine, this.newArticleNr, amount, this.newArticle.standardWareHouse, this.newArticle.commissionCode, false, 0, 0, false)
|
|
122
|
+
.then((value) => {
|
|
123
|
+
this.handleLineOperationStatus(value);
|
|
124
|
+
}, (error) => this.promptService.showError(error));
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
_handleAddArticleLineAt(amount, lineNr, beforeOrAfter) {
|
|
128
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
yield this.service.addArticleToTransaction(this.transactionInfo.uuid, this.newArticleNr, amount, this.newArticle.standardWareHouse, this.newArticle.commissionCode, false, beforeOrAfter === PositionGridRow.Before ? lineNr : undefined, beforeOrAfter === PositionGridRow.After ? lineNr : undefined)
|
|
130
|
+
.then((value) => {
|
|
131
|
+
this.lineOperationStatuses = value.lineOperationStatuses;
|
|
132
|
+
this.handleLineOperationStatus(value);
|
|
133
|
+
}, (error) => this.promptService.showError(error));
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
_getWareHouseNoFromArticle() {
|
|
137
|
+
if (this.newArticle !== undefined && this.newArticle.stockLocations !== undefined && this.newArticle.stockLocations.length) {
|
|
138
|
+
return this.newArticle.stockLocations[0].warehouseNr;
|
|
139
|
+
}
|
|
140
|
+
return 0;
|
|
141
|
+
}
|
|
142
|
+
isLineOperationStatus(lineOperationStatuses) {
|
|
143
|
+
this.currentOperationStatus = this.service.pendingLineOperationStatus(lineOperationStatuses);
|
|
144
|
+
if (this.currentOperationStatus !== undefined) {
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
_confirmAction() {
|
|
150
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
151
|
+
this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
|
|
152
|
+
const pendingReasonText = yield this._getPendingReasonText(this.currentOperationStatus.pendingReason);
|
|
153
|
+
this.currentReason.confirmation = yield this.promptService.showYesNo(pendingReasonText, " ");
|
|
154
|
+
yield this.service.resolvePendingLineReason(this.currentReason, false)
|
|
155
|
+
.then((value) => {
|
|
156
|
+
this.handleLineOperationStatus(value);
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
_showInformation() {
|
|
161
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
162
|
+
this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
|
|
163
|
+
const pendingReasonText = yield this._getPendingReasonText(this.currentOperationStatus.pendingReason);
|
|
164
|
+
yield this.promptService.showOkModal(pendingReasonText, " ");
|
|
165
|
+
yield this.service.resolvePendingLineReason(this.currentReason, false)
|
|
166
|
+
.then((value) => {
|
|
167
|
+
this.handleLineOperationStatus(value);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
_getPendingReasonText(pendingReason) {
|
|
172
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
173
|
+
if (pendingReason === "ARTICLE_IS_DISCONTINUED_DO_YOU_WANT_TO_CONTINUE_PLEASE_CONFIRM") {
|
|
174
|
+
return this._dictionaryService.get("ARTICLE_IN_OUT_COLLECTION").replace("|~", yield this.getInOutCollectionOfArticle());
|
|
175
|
+
}
|
|
176
|
+
return this._dictionaryService.get(pendingReason);
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
getInOutCollectionOfArticle() {
|
|
180
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
181
|
+
if (!this._inOutCollection.length) {
|
|
182
|
+
this._inOutCollection = yield this.service.getInOutCollection("NL");
|
|
183
|
+
}
|
|
184
|
+
const domainValue = this._inOutCollection.find(element => element.code === this.newArticle.inOutCollection);
|
|
185
|
+
if (domainValue) {
|
|
186
|
+
return domainValue.description;
|
|
187
|
+
}
|
|
188
|
+
return "";
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
handleLineOperationStatus(lineOperationResponse) {
|
|
192
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
193
|
+
if (this.isLineOperationStatus(lineOperationResponse.lineOperationStatuses)) {
|
|
194
|
+
this.transaction = lineOperationResponse;
|
|
195
|
+
this.articleAdded.emit(this.transaction);
|
|
196
|
+
yield this._handlePendingLine(this.currentOperationStatus.uuid).then();
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
yield this._saveTransaction();
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
_handlePendingLine(lineUuid) {
|
|
204
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
205
|
+
this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
|
|
206
|
+
this.currentPendingLine = this.transactionLines.find(l => l.uuid === lineUuid);
|
|
207
|
+
switch (this.currentOperationStatus.pendingReasonType) {
|
|
208
|
+
case PendingReasonType.ABORTED:
|
|
209
|
+
case PendingReasonType.CANCELLED:
|
|
210
|
+
yield this._cancelArticle(this.currentPendingLine.uuid);
|
|
211
|
+
break;
|
|
212
|
+
case PendingReasonType.CONFIRMATION_NEEDED:
|
|
213
|
+
yield this._confirmAction();
|
|
214
|
+
break;
|
|
215
|
+
case PendingReasonType.INVALID_LOGISTICS:
|
|
216
|
+
yield this.showStockManager(this.currentPendingLine);
|
|
217
|
+
break;
|
|
218
|
+
case PendingReasonType.NON_CRITICAL_DISCONTINUATION:
|
|
219
|
+
yield this._showInformation();
|
|
220
|
+
break;
|
|
221
|
+
case PendingReasonType.CHARACTERISTICS_ANSWER_NEEDED:
|
|
222
|
+
this.CharacteristicsAnswerNeeded();
|
|
223
|
+
break;
|
|
224
|
+
case PendingReasonType.NONE:
|
|
225
|
+
default:
|
|
226
|
+
this.currentReason = undefined;
|
|
227
|
+
this.currentPendingLine = undefined;
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
_saveTransaction() {
|
|
233
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
234
|
+
if (this.transactionInfo) {
|
|
235
|
+
const success = yield this.service.saveTransactionByUuid(this.transactionInfo.uuid);
|
|
236
|
+
if (!success) {
|
|
237
|
+
this.promptService.showError("Transaction could not be saved!");
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
_loadArticle(goodId) {
|
|
243
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
244
|
+
this.newArticle = yield this.service.getArticleFullObject(goodId);
|
|
245
|
+
this.newArticleNr = this.newArticle.articleNr;
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
addEmailAddressToTransaction(emailAddress) {
|
|
249
|
+
this.service.emailAddress = emailAddress;
|
|
250
|
+
}
|
|
251
|
+
CharacteristicsAnswerNeeded() {
|
|
252
|
+
this.characteristicAnswer.question = this.currentOperationStatus.characteristic.question;
|
|
253
|
+
this.characteristicAnswer.title = this.newArticle.description;
|
|
254
|
+
this.characteristicAnswer.value = this.currentOperationStatus.characteristic.value;
|
|
255
|
+
this.characteristicAnswer.characteristics = this.currentOperationStatus.characteristic.transactionLineCharacteristicChoices;
|
|
256
|
+
setTimeout(() => {
|
|
257
|
+
this.characteristicAnswer.open();
|
|
258
|
+
// eslint-disable-next-line no-magic-numbers
|
|
259
|
+
}, 1000);
|
|
260
|
+
}
|
|
261
|
+
_getTransactionLineInfoByIndex(index) {
|
|
262
|
+
if (index >= 0 && index < this.transactionLines.length) {
|
|
263
|
+
return this.service.currentLines[index];
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
_cancelArticle(uuid) {
|
|
267
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
268
|
+
yield this.service.cancelAddTransactionLine(uuid, false)
|
|
269
|
+
.then((response) => {
|
|
270
|
+
this.transaction = response;
|
|
271
|
+
this.articleAdded.emit(response);
|
|
272
|
+
});
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
TransactionManagerComponent.decorators = [
|
|
277
|
+
{ type: Component, args: [{
|
|
278
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
279
|
+
selector: "transaction-manager",
|
|
280
|
+
template: `
|
|
281
|
+
<warehouse #warehouse
|
|
282
|
+
(okClick)="warehouseOkClick()"
|
|
283
|
+
(cancelClick)="warehouseCancelClick()"
|
|
284
|
+
></warehouse>
|
|
285
|
+
<characteristic-answer
|
|
286
|
+
#characteristicAnswer
|
|
287
|
+
(okClick)="handleCharacteristicAnswerOkClick($event)"
|
|
288
|
+
></characteristic-answer>
|
|
289
|
+
`,
|
|
290
|
+
styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center,.warehouse-line-container{display:flex}.flex-center,.warehouse-line-container{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field,.commission-fields{margin-left:11px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}::ng-deep #warehouseDialog{align-items:center;max-height:100%}::ng-deep #warehouseDialog ::ng-deep co-form{height:100%;width:500px}::ng-deep #warehouseDialog ::ng-deep .form-content{height:calc(100% - 80px);width:100%}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field{height:20px;word-wrap:break-word;white-space:normal}co-button:not(:last-child){margin-right:10px}.commission-fields{justify-content:space-between;margin:10px 0}.warehouse-description-item{width:15rem}.warehouse-nr-item{width:5rem}co-input-number-picker co-button{max-width:20px}\n"]
|
|
291
|
+
},] }
|
|
292
|
+
];
|
|
293
|
+
TransactionManagerComponent.ctorParameters = () => [
|
|
294
|
+
{ type: TransactionService },
|
|
295
|
+
{ type: TransactionEventService },
|
|
296
|
+
{ type: PromptService },
|
|
297
|
+
{ type: DictionaryService }
|
|
298
|
+
];
|
|
299
|
+
TransactionManagerComponent.propDecorators = {
|
|
300
|
+
warehouse: [{ type: ViewChild, args: ["warehouse",] }],
|
|
301
|
+
characteristicAnswer: [{ type: ViewChild, args: ["characteristicAnswer",] }],
|
|
302
|
+
linesChanged: [{ type: Output }],
|
|
303
|
+
articleAdded: [{ type: Output }]
|
|
304
|
+
};
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbWFuYWdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudC9zZXJ2aWNlLW9yZGVyL3RyYW5zYWN0aW9uLW1hbmFnZXIvdHJhbnNhY3Rpb24tbWFuYWdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRTlFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBRW5GLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ3ZILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBR25HLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBRS9GLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRXRFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUV4RSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUdwRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFpQjNELE1BQU0sT0FBTywyQkFBNEIsU0FBUSx3QkFBd0I7SUF3Q3ZFLFlBQ1MsT0FBMkIsRUFDM0IsaUJBQTBDLEVBQzFDLGFBQTRCLEVBQzVCLGtCQUFxQztRQUU1QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFMUixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixzQkFBaUIsR0FBakIsaUJBQWlC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QUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQ0YsQ0FBQztRQUNOLENBQUM7S0FBQTs7O1lBaFVGLFNBQVMsU0FBQztnQkFDVCw4REFBOEQ7Z0JBQzlELFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFFBQVEsRUFBRTs7Ozs7Ozs7O0dBU1Q7O2FBRUY7OztZQWxDTyxrQkFBa0I7WUFHbEIsdUJBQXVCO1lBZXZCLGFBQWE7WUFQYixpQkFBaUI7Ozt3QkF5QnRCLFNBQVMsU0FBQyxXQUFXO21DQUdyQixTQUFTLFNBQUMsc0JBQXNCOzJCQUdoQyxNQUFNOzJCQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7TnVtYmVyVXRpbHN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvdXRpbHMvbnVtYmVyLXV0aWxzXCI7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcbmltcG9ydCB7UmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZXNvbHZlLXBlbmRpbmctcmVhc29uLXJlcXVlc3QuYm9cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWxpbmUtdHlwZS5lbnVtXCI7XG5pbXBvcnQge0NvRG9tYWluVmFsdWV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY28tZG9tYWluLXZhbHVlLmJvXCI7XG5pbXBvcnQge0xpbmVPcGVyYXRpb25TdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tc3RhdHVzLmJvXCI7XG5pbXBvcnQge1BlbmRpbmdSZWFzb25UeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcGVuZGluZy1yZWFzb24tdHlwZS5lbnVtXCI7XG5pbXBvcnQge0FydGljbGVGdWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZnVsbC1vYmplY3RcIjtcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xuaW1wb3J0IHtMaW5lT3BlcmF0aW9uUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tcmVzcG9uc2UuYm9cIjtcbmltcG9ydCB7UG9zaXRpb25HcmlkUm93fSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9wb3NpdGlvbi1ncmlkLXJvdy5lbnVtXCI7XG5pbXBvcnQge0NoYXJhY3RlcmlzdGljQW5zd2VyQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vY29yZS9jaGFyYWN0ZXJpc3RpYy1hbnN3ZXIvY2hhcmFjdGVyaXN0aWMtYW5zd2VyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gXCIuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnRcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xuaW1wb3J0IHtXYXJlaG91c2VDb21wb25lbnR9IGZyb20gXCIuLi8uLi9jb3JlL3dhcmVob3VzZS93YXJlaG91c2UuY29tcG9uZW50XCI7XG5pbXBvcnQge1Byb21wdFNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogXCJ0cmFuc2FjdGlvbi1tYW5hZ2VyXCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHdhcmVob3VzZSAjd2FyZWhvdXNlXG4gICAgICAgIChva0NsaWNrKT1cIndhcmVob3VzZU9rQ2xpY2soKVwiXG4gICAgICAgIChjYW5jZWxDbGljayk9XCJ3YXJlaG91c2VDYW5jZWxDbGljaygpXCJcbiAgICA+PC93YXJlaG91c2U+XG4gICAgPGNoYXJhY3RlcmlzdGljLWFuc3dlclxuICAgICAgI2NoYXJhY3RlcmlzdGljQW5zd2VyXG4gICAgICAob2tDbGljayk9XCJoYW5kbGVDaGFyYWN0ZXJpc3RpY0Fuc3dlck9rQ2xpY2soJGV2ZW50KVwiXG4gICAgPjwvY2hhcmFjdGVyaXN0aWMtYW5zd2VyPlxuICBgLFxuICBzdHlsZVVybHM6IFtcIi4vdHJhbnNhY3Rpb24tbWFuYWdlci5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbk1hbmFnZXJDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKFwid2FyZWhvdXNlXCIpXG4gIHB1YmxpYyB3YXJlaG91c2U6IFdhcmVob3VzZUNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKFwiY2hhcmFjdGVyaXN0aWNBbnN3ZXJcIilcbiAgcHVibGljIGNoYXJhY3RlcmlzdGljQW5zd2VyOiBDaGFyYWN0ZXJpc3RpY0Fuc3dlckNvbXBvbmVudDtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGxpbmVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgYXJ0aWNsZUFkZGVkOiBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4oKTtcblxuICBwdWJsaWMgZ2V0IGFtb3VudE9mTGluZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTnVtYmVyVXRpbHMuTnJPckRlZmF1bHQodGhpcy5zZXJ2aWNlLmFydGljbGVBbW91bnQsIDApO1xuICB9XG5cbiAgcHVibGljIGdldCBzaG93Q2hhcmFjdGVyaXN0aWNEaWFsb2coKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dDaGFyYWN0ZXJpc3RpYztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgc2hvd0NoYXJhY3RlcmlzdGljRGlhbG9nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0NoYXJhY3RlcmlzdGljID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgbmV3QXJ0aWNsZU5yOiBzdHJpbmc7XG4gIHB1YmxpYyBuZXdBcnRpY2xlOiBBcnRpY2xlRnVsbE9iamVjdDtcbiAgcHVibGljIHNlbGVjdGVkV2FyZWhvdXNlTnI6IG51bWJlcjtcbiAgcHVibGljIGFtb3VudDogbnVtYmVyO1xuXG4gIHB1YmxpYyBjb2x1bW5zOiBhbnlbXSA9IFtdO1xuXG4gIHB1YmxpYyBjdXJyZW50UGVuZGluZ0xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm87XG4gIHB1YmxpYyBjdXJyZW50UmVhc29uOiBSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0O1xuXG4gIHByaXZhdGUgY3VycmVudE9wZXJhdGlvblN0YXR1czogTGluZU9wZXJhdGlvblN0YXR1cztcbiAgcHJpdmF0ZSBfaW5PdXRDb2xsZWN0aW9uOiBDb0RvbWFpblZhbHVlW10gPSBbXTtcbiAgcHJpdmF0ZSBfc2hvd0NoYXJhY3RlcmlzdGljOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudHM6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyBwcm9tcHRTZXJ2aWNlOiBQcm9tcHRTZXJ2aWNlLFxuICAgIHB1YmxpYyBfZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxuICApIHtcbiAgICBzdXBlcihzZXJ2aWNlKTtcblxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuc2VydmljZS50cmFuc2FjdGlvbkxvYWRlZC5zdWJzY3JpYmUoKHRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAodHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UuaXNTdWNjZXNzKSB7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZEFydGljbGVMaW5lKHRyYW5zYWN0aW9uVXVpZDogc3RyaW5nLCBza3U6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIGxpbmVOcjogbnVtYmVyLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3cpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBnb29kSWQ6IG51bWJlciA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRHb29kSWRGcm9tQXJ0aWNsZU5yKHNrdSk7XG4gICAgaWYgKGdvb2RJZCkge1xuICAgICAgYXdhaXQgdGhpcy5fbG9hZEFydGljbGUoZ29vZElkKTtcbiAgICAgIGF3YWl0IHRoaXMuX2hhbmRsZUFkZEFydGljbGVMaW5lQXQoYW1vdW50LCBsaW5lTnIsIGJlZm9yZU9yQWZ0ZXIpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMucHJvbXB0U2VydmljZS5zaG93RXJyb3IodGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiQVJUSUNMRV9VTktOT1dOXCIpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2hhbmdlTGluZVNlcXVlbmNlKGZyb21JbmRleDogbnVtYmVyLCB0b0luZGV4OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBsZXQgZnJvbUxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8gPSB0aGlzLl9nZXRUcmFuc2FjdGlvbkxpbmVJbmZvQnlJbmRleChmcm9tSW5kZXgpXG4gICAgbGV0IHRvTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyA9IHRoaXMuX2dldFRyYW5zYWN0aW9uTGluZUluZm9CeUluZGV4KHRvSW5kZXgpO1xuICAgIGxldCBhYm92ZUxpbmVOcjogbnVtYmVyO1xuICAgIGxldCBiZWxvd0xpbmVOcjogbnVtYmVyO1xuXG4gICAgaWYgKGZyb21JbmRleCA+IHRvSW5kZXgpIHtcbiAgICAgIGFib3ZlTGluZU5yID0gdG9MaW5lLmxpbmVOcjtcbiAgICB9IGVsc2Uge1xuICAgICAgYmVsb3dMaW5lTnIgPSB0b0xpbmUubGluZU5yO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuc2VydmljZS5jaGFuZ2VMaW5lU2VxdWVuY2UoZnJvbUxpbmUudXVpZCwgYWJvdmVMaW5lTnIsIGJlbG93TGluZU5yLCBmYWxzZSlcbiAgICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKHZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB0aGlzLnByb21wdFNlcnZpY2Uuc2hvd0Vycm9yKGVycm9yKSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2hvd1N0b2NrTWFuYWdlcihsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy53YXJlaG91c2Uuc2VsZWN0ZWRXYXJlaG91c2VOciA9IGxpbmUud2FyZWhvdXNlTnVtYmVyO1xuICAgIHRoaXMud2FyZWhvdXNlLmFtb3VudCA9IGxpbmUuYW1vdW50O1xuICAgIHRoaXMud2FyZWhvdXNlLmNvbW1pc3Npb25Db2RlID0gbGluZS5jb21taXNzaW9uQ29kZTtcbiAgICB0aGlzLndhcmVob3VzZS5tZXNzYWdlID0gdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb247XG4gICAgdGhpcy53YXJlaG91c2Uuc2hvdyhsaW5lLmFydGljbGVOdW1iZXIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHdhcmVob3VzZU9rQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMud2FyZWhvdXNlLmNvbW1pc3Npb25Db2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY3VycmVudFJlYXNvbi5jb21taXNzaW9uQ29kZSA9IHRoaXMud2FyZWhvdXNlLmNvbW1pc3Npb25Db2RlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLndhcmVob3VzZS5hbW91bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jdXJyZW50UmVhc29uLnF1YW50aXR5ID0gdGhpcy53YXJlaG91c2UuYW1vdW50O1xuICAgIH1cblxuICAgIGlmICh0aGlzLndhcmVob3VzZS5zZWxlY3RlZFdhcmVob3VzZU5yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY3VycmVudFJlYXNvbi53YXJlaG91c2VOciA9IHRoaXMud2FyZWhvdXNlLnNlbGVjdGVkV2FyZWhvdXNlTnI7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VycmVudFJlYXNvbikge1xuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbih0aGlzLmN1cnJlbnRSZWFzb24sIGZhbHNlKVxuICAgICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cyh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB3YXJlaG91c2VDYW5jZWxDbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5jdXJyZW50UmVhc29uKSB7XG4gICAgICBhd2FpdCB0aGlzLl9jYW5jZWxBcnRpY2xlKHRoaXMuY3VycmVudFJlYXNvbi5saW5lVXVpZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGhhbmRsZUNoYXJhY3RlcmlzdGljQW5zd2VyT2tDbGljayhhbnN3ZXI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY3VycmVudFJlYXNvbiA9IG5ldyBSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy51dWlkLCB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcbiAgICB0aGlzLmN1cnJlbnRSZWFzb24udGV4dHVhbFVzZXJJbnB1dCA9IGFuc3dlcjtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbiwgZmFsc2UpXG4gICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXModmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVBZGRBcnRpY2xlKGFtb3VudDogbnVtYmVyID0gMSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc2VydmljZS5hZGRUcmFuc2FjdGlvbkxpbmUoVHJhbnNhY3Rpb25MaW5lVHlwZS5BcnRpY2xlTGluZSxcbiAgICAgIHRoaXMubmV3QXJ0aWNsZU5yLFxuICAgICAgYW1vdW50LFxuICAgICAgdGhpcy5uZXdBcnRpY2xlLnN0YW5kYXJkV2FyZUhvdXNlLFxuICAgICAgdGhpcy5uZXdBcnRpY2xlLmNvbW1pc3Npb25Db2RlLFxuICAgICAgZmFsc2UsXG4gICAgICAwLFxuICAgICAgMCxcbiAgICAgIGZhbHNlKVxuICAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKHZhbHVlKTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHRoaXMucHJvbXB0U2VydmljZS5zaG93RXJyb3IoZXJyb3IpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZUFkZEFydGljbGVMaW5lQXQoYW1vdW50OiBudW1iZXIsIGxpbmVOcjogbnVtYmVyLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3cpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UuYWRkQXJ0aWNsZVRvVHJhbnNhY3Rpb24odGhpcy50cmFuc2FjdGlvbkluZm8udXVpZCxcbiAgICAgIHRoaXMubmV3QXJ0aWNsZU5yLFxuICAgICAgYW1vdW50LFxuICAgICAgdGhpcy5uZXdBcnRpY2xlLnN0YW5kYXJkV2FyZUhvdXNlLFxuICAgICAgdGhpcy5uZXdBcnRpY2xlLmNvbW1pc3Npb25Db2RlLFxuICAgICAgZmFsc2UsXG4gICAgICBiZWZvcmVPckFmdGVyID09PSBQb3NpdGlvbkdyaWRSb3cuQmVmb3JlID8gbGluZU5yIDogdW5kZWZpbmVkLFxuICAgICAgYmVmb3JlT3JBZnRlciA9PT0gUG9zaXRpb25HcmlkUm93LkFmdGVyID8gbGluZU5yIDogdW5kZWZpbmVkKVxuICAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmxpbmVPcGVyYXRpb25TdGF0dXNlcyA9IHZhbHVlLmxpbmVPcGVyYXRpb25TdGF0dXNlcztcbiAgICAgICAgICB0aGlzLmhhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXModmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHRoaXMucHJvbXB0U2VydmljZS5zaG93RXJyb3IoZXJyb3IpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFdhcmVIb3VzZU5vRnJvbUFydGljbGUoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5uZXdBcnRpY2xlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5uZXdBcnRpY2xlLnN0b2NrTG9jYXRpb25zICE9PSB1bmRlZmluZWQgJiYgdGhpcy5uZXdBcnRpY2xlLnN0b2NrTG9jYXRpb25zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMubmV3QXJ0aWNsZS5zdG9ja0xvY2F0aW9uc1swXS53YXJlaG91c2VOcjtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBwdWJsaWMgaXNMaW5lT3BlcmF0aW9uU3RhdHVzKGxpbmVPcGVyYXRpb25TdGF0dXNlczogTGluZU9wZXJhdGlvblN0YXR1c1tdKTogYm9vbGVhbiB7XG4gICAgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzID0gdGhpcy5zZXJ2aWNlLnBlbmRpbmdMaW5lT3BlcmF0aW9uU3RhdHVzKGxpbmVPcGVyYXRpb25TdGF0dXNlcyk7XG4gICAgaWYgKHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfY29uZmlybUFjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmN1cnJlbnRSZWFzb24gPSBuZXcgUmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdCh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMudXVpZCwgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24sIHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSk7XG4gICAgY29uc3QgcGVuZGluZ1JlYXNvblRleHQ6IHN0cmluZyA9IGF3YWl0IHRoaXMuX2dldFBlbmRpbmdSZWFzb25UZXh0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uKTtcbiAgICB0aGlzLmN1cnJlbnRSZWFzb24uY29uZmlybWF0aW9uICA9IGF3YWl0IHRoaXMucHJvbXB0U2VydmljZS5zaG93WWVzTm8ocGVuZGluZ1JlYXNvblRleHQsIFwiIFwiKTtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbiwgZmFsc2UpXG4gICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXModmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9zaG93SW5mb3JtYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jdXJyZW50UmVhc29uID0gbmV3IFJlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3QodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnV1aWQsIHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uLCB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpO1xuICAgIGNvbnN0IHBlbmRpbmdSZWFzb25UZXh0OiBzdHJpbmcgPSBhd2FpdCB0aGlzLl9nZXRQZW5kaW5nUmVhc29uVGV4dCh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbik7XG4gICAgYXdhaXQgdGhpcy5wcm9tcHRTZXJ2aWNlLnNob3dPa01vZGFsKHBlbmRpbmdSZWFzb25UZXh0LCBcIiBcIik7XG4gICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbih0aGlzLmN1cnJlbnRSZWFzb24sIGZhbHNlKVxuICAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKHZhbHVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfZ2V0UGVuZGluZ1JlYXNvblRleHQocGVuZGluZ1JlYXNvbjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAocGVuZGluZ1JlYXNvbiA9PT0gXCJBUlRJQ0xFX0lTX0RJU0NPTlRJTlVFRF9ET19ZT1VfV0FOVF9UT19DT05USU5VRV9QTEVBU0VfQ09ORklSTVwiKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiQVJUSUNMRV9JTl9PVVRfQ09MTEVDVElPTlwiKS5yZXBsYWNlKFwifH5cIiwgYXdhaXQgdGhpcy5nZXRJbk91dENvbGxlY3Rpb25PZkFydGljbGUoKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQocGVuZGluZ1JlYXNvbik7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEluT3V0Q29sbGVjdGlvbk9mQXJ0aWNsZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5faW5PdXRDb2xsZWN0aW9uLmxlbmd0aCkge1xuICAgICAgdGhpcy5faW5PdXRDb2xsZWN0aW9uID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldEluT3V0Q29sbGVjdGlvbihcIk5MXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGRvbWFpblZhbHVlOiBDb0RvbWFpblZhbHVlID0gdGhpcy5faW5PdXRDb2xsZWN0aW9uLmZpbmQoZWxlbWVudCA9PiBlbGVtZW50LmNvZGUgPT09IHRoaXMubmV3QXJ0aWNsZS5pbk91dENvbGxlY3Rpb24pO1xuICAgIGlmIChkb21haW5WYWx1ZSkge1xuICAgICAgcmV0dXJuIGRvbWFpblZhbHVlLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKGxpbmVPcGVyYXRpb25SZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaXNMaW5lT3BlcmF0aW9uU3RhdHVzKGxpbmVPcGVyYXRpb25SZXNwb25zZS5saW5lT3BlcmF0aW9uU3RhdHVzZXMpKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uID0gbGluZU9wZXJhdGlvblJlc3BvbnNlO1xuICAgICAgdGhpcy5hcnRpY2xlQWRkZWQuZW1pdCh0aGlzLnRyYW5zYWN0aW9uKTtcbiAgICAgIGF3YWl0IHRoaXMuX2hhbmRsZVBlbmRpbmdMaW5lKHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy51dWlkKS50aGVuKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5fc2F2ZVRyYW5zYWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSAgYXN5bmMgX2hhbmRsZVBlbmRpbmdMaW5lKGxpbmVVdWlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmN1cnJlbnRSZWFzb24gPSBuZXcgUmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdCh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMudXVpZCwgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24sIHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSk7XG4gICAgdGhpcy5jdXJyZW50UGVuZGluZ0xpbmUgPSB0aGlzLnRyYW5zYWN0aW9uTGluZXMuZmluZChsID0+IGwudXVpZCA9PT0gbGluZVV1aWQpO1xuXG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpIHtcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQUJPUlRFRDpcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ0FOQ0VMTEVEOlxuICAgICAgICBhd2FpdCB0aGlzLl9jYW5jZWxBcnRpY2xlKHRoaXMuY3VycmVudFBlbmRpbmdMaW5lLnV1aWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ09ORklSTUFUSU9OX05FRURFRDpcbiAgICAgICAgYXdhaXQgdGhpcy5fY29uZmlybUFjdGlvbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuSU5WQUxJRF9MT0dJU1RJQ1M6XG4gICAgICAgIGF3YWl0IHRoaXMuc2hvd1N0b2NrTWFuYWdlcih0aGlzLmN1cnJlbnRQZW5kaW5nTGluZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5OT05fQ1JJVElDQUxfRElTQ09OVElOVUFUSU9OOlxuICAgICAgICBhd2FpdCB0aGlzLl9zaG93SW5mb3JtYXRpb24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkNIQVJBQ1RFUklTVElDU19BTlNXRVJfTkVFREVEOlxuICAgICAgICB0aGlzLkNoYXJhY3RlcmlzdGljc0Fuc3dlck5lZWRlZCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuTk9ORTpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuY3VycmVudFJlYXNvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jdXJyZW50UGVuZGluZ0xpbmUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3NhdmVUcmFuc2FjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbkluZm8pIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uQnlVdWlkKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQpO1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIHRoaXMucHJvbXB0U2VydmljZS5zaG93RXJyb3IoXCJUcmFuc2FjdGlvbiBjb3VsZCBub3QgYmUgc2F2ZWQhXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2xvYWRBcnRpY2xlKGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5uZXdBcnRpY2xlID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldEFydGljbGVGdWxsT2JqZWN0KGdvb2RJZCk7XG4gICAgdGhpcy5uZXdBcnRpY2xlTnIgPSB0aGlzLm5ld0FydGljbGUuYXJ0aWNsZU5yO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRFbWFpbEFkZHJlc3NUb1RyYW5zYWN0aW9uKGVtYWlsQWRkcmVzczogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLmVtYWlsQWRkcmVzcyA9IGVtYWlsQWRkcmVzcztcbiAgfVxuXG4gIHByaXZhdGUgQ2hhcmFjdGVyaXN0aWNzQW5zd2VyTmVlZGVkKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhcmFjdGVyaXN0aWNBbnN3ZXIucXVlc3Rpb24gPSB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMuY2hhcmFjdGVyaXN0aWMucXVlc3Rpb247XG4gICAgdGhpcy5jaGFyYWN0ZXJpc3RpY0Fuc3dlci50aXRsZSA9IHRoaXMubmV3QXJ0aWNsZS5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLmNoYXJhY3RlcmlzdGljQW5zd2VyLnZhbHVlID0gdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLmNoYXJhY3RlcmlzdGljLnZhbHVlO1xuICAgIHRoaXMuY2hhcmFjdGVyaXN0aWNBbnN3ZXIuY2hhcmFjdGVyaXN0aWNzID0gdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLmNoYXJhY3RlcmlzdGljLnRyYW5zYWN0aW9uTGluZUNoYXJhY3RlcmlzdGljQ2hvaWNlcztcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jaGFyYWN0ZXJpc3RpY0Fuc3dlci5vcGVuKCk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbWFnaWMtbnVtYmVyc1xuICAgIH0sIDEwMDApO1xuXG4gIH1cblxuICBwcml2YXRlIF9nZXRUcmFuc2FjdGlvbkxpbmVJbmZvQnlJbmRleChpbmRleDogbnVtYmVyKTogVHJhbnNhY3Rpb25MaW5lSW5mbyB7XG4gICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCB0aGlzLnRyYW5zYWN0aW9uTGluZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmN1cnJlbnRMaW5lc1tpbmRleF1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9jYW5jZWxBcnRpY2xlKHV1aWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc2VydmljZS5jYW5jZWxBZGRUcmFuc2FjdGlvbkxpbmUodXVpZCwgZmFsc2UpXG4gICAgICAudGhlbigocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb24gPSByZXNwb25zZTtcbiAgICAgICAgdGhpcy5hcnRpY2xlQWRkZWQuZW1pdChyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -11,7 +11,7 @@ import { TransactionService } from "../../service/transaction.service";
|
|
|
11
11
|
import { OptionsService } from "../../service/options.service";
|
|
12
12
|
import { IoneShoppingCartComponent } from "./ione-shopping-cart.component";
|
|
13
13
|
import { CoreModule } from "../core/core.module";
|
|
14
|
-
import { CharacteristicAnswerComponent } from "
|
|
14
|
+
import { CharacteristicAnswerComponent } from "../core/characteristic-answer/characteristic-answer.component";
|
|
15
15
|
import { CommonModule } from "@angular/common";
|
|
16
16
|
export class IoneShoppingCartModule {
|
|
17
17
|
}
|
|
@@ -55,8 +55,8 @@ IoneShoppingCartModule.decorators = [
|
|
|
55
55
|
entryComponents: [
|
|
56
56
|
IoneShoppingCartComponent
|
|
57
57
|
],
|
|
58
|
-
exports: [IoneShoppingCartComponent, StockStatusIndicatorComponent],
|
|
58
|
+
exports: [IoneShoppingCartComponent, StockStatusIndicatorComponent, CharacteristicAnswerComponent],
|
|
59
59
|
bootstrap: [IoneShoppingCartComponent]
|
|
60
60
|
},] }
|
|
61
61
|
];
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uZS1zaG9wcGluZy1jYXJ0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50L3Nob3BwaW5nLWNhcnQvaW9uZS1zaG9wcGluZy1jYXJ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxZQUFZLEVBQ1osY0FBYyxFQUNkLG9CQUFvQixFQUNwQixZQUFZLEVBQ1osZUFBZSxFQUNmLGNBQWMsRUFDZCxVQUFVLEVBQ1YsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixXQUFXLEdBQ1osTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDckcsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDNUYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDOUcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUM1RyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUE0QzdDLE1BQU0sT0FBTyxzQkFBc0I7OztZQTFDbEMsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRTtvQkFDWiw0QkFBNEI7b0JBQzVCLHFCQUFxQjtvQkFDckIseUJBQXlCO29CQUN6Qiw2QkFBNkI7b0JBQzdCLHlCQUF5QjtvQkFDekIsNkJBQTZCO2lCQUM5QjtnQkFDQyxPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixVQUFVO29CQUNWLGVBQWU7b0JBQ2YsbUJBQW1CO29CQUNuQixzQkFBc0I7b0JBQ3RCLFVBQVU7b0JBQ1YsbUJBQW1CO29CQUNuQixxQkFBcUI7b0JBQ3JCLHVCQUF1QjtvQkFDdkIsY0FBYztvQkFDZCxvQkFBb0I7b0JBQ3BCLFlBQVk7b0JBQ1osVUFBVTtvQkFDVixxQkFBcUI7b0JBQ3JCLGdCQUFnQjtvQkFDaEIsY0FBYztvQkFDZCxXQUFXLENBQUMsT0FBTyxFQUFFO29CQUNyQixlQUFlO29CQUNmLFlBQVk7b0JBQ1osVUFBVTtpQkFDYjtnQkFDSCxTQUFTLEVBQUU7b0JBQ1QsaUJBQWlCO29CQUNqQixrQkFBa0I7b0JBQ2xCLGNBQWM7aUJBQ2Y7Z0JBQ0QsZUFBZSxFQUFFO29CQUNmLHlCQUF5QjtpQkFDMUI7Z0JBQ0QsT0FBTyxFQUFFLENBQUMseUJBQXlCLEVBQUUsNkJBQTZCLEVBQUUsNkJBQTZCLENBQUM7Z0JBQ2xHLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2FBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgQ29EaWFsb2dNb2R1bGUsXG4gIENvRGlhbG9nUHJvbXB0TW9kdWxlLFxuICBDb0dyaWRNb2R1bGUsXG4gIENvU2lkZWJhck1vZHVsZSxcbiAgRHJvcERvd25Nb2R1bGUsXG4gIEZvcm1Nb2R1bGUsXG4gIEljb25Nb2R1bGUsXG4gIElucHV0Q2hlY2tib3hNb2R1bGUsXG4gIElucHV0Q29tYm9Cb3hNb2R1bGUsXG4gIElucHV0RGF0ZVBpY2tlck1vZHVsZSxcbiAgSW5wdXROdW1iZXJQaWNrZXJNb2R1bGUsXG4gIElucHV0UmFkaW9CdXR0b25Nb2R1bGUsXG4gIElucHV0VGV4dE1vZHVsZSxcbiAgTXVsdGlTZWxlY3RMaXN0TW9kdWxlLFxuICBQb3B1cE1vZHVsZSxcbn0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcbmltcG9ydCB7RmxleE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2ZsZXgtbGF5b3V0XCI7XG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcbmltcG9ydCB7U2hvcHBpbmdDYXJ0TWFuYWdlckNvbXBvbmVudH0gZnJvbSBcIi4vc2hvcHBpbmctY2FydC1tYW5hZ2VyL3Nob3BwaW5nLWNhcnQtbWFuYWdlci5jb21wb25lbnRcIjtcbmltcG9ydCB7U2hvcHBpbmdDYXJ0Q29tcG9uZW50fSBmcm9tIFwiLi9zaG9wcGluZy1jYXJ0L3Nob3BwaW5nLWNhcnQuY29tcG9uZW50XCI7XG5pbXBvcnQge1Nob3BwaW5nQ2FydExpbmVDb21wb25lbnR9IGZyb20gXCIuL3Nob3BwaW5nLWNhcnQtbGluZS9zaG9wcGluZy1jYXJ0LWxpbmUuY29tcG9uZW50XCI7XG5pbXBvcnQge1N0b2NrU3RhdHVzSW5kaWNhdG9yQ29tcG9uZW50fSBmcm9tIFwiLi4vY29yZS9zdG9jay1zdGF0dXMtaW5kaWNhdG9yL3N0b2NrLXN0YXR1cy1pbmRpY2F0b3IuY29tcG9uZW50XCI7XG5pbXBvcnQge01hdFN0ZXBwZXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xuaW1wb3J0IHtPcHRpb25zU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uvb3B0aW9ucy5zZXJ2aWNlXCI7XG5pbXBvcnQge0lvbmVTaG9wcGluZ0NhcnRDb21wb25lbnR9IGZyb20gXCIuL2lvbmUtc2hvcHBpbmctY2FydC5jb21wb25lbnRcIjtcbmltcG9ydCB7Q29yZU1vZHVsZX0gZnJvbSBcIi4uL2NvcmUvY29yZS5tb2R1bGVcIjtcbmltcG9ydCB7Q2hhcmFjdGVyaXN0aWNBbnN3ZXJDb21wb25lbnR9IGZyb20gXCIuLi9jb3JlL2NoYXJhY3RlcmlzdGljLWFuc3dlci9jaGFyYWN0ZXJpc3RpYy1hbnN3ZXIuY29tcG9uZW50XCI7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTaG9wcGluZ0NhcnRNYW5hZ2VyQ29tcG9uZW50LFxuICAgIFNob3BwaW5nQ2FydENvbXBvbmVudCxcbiAgICBTaG9wcGluZ0NhcnRMaW5lQ29tcG9uZW50LFxuICAgIFN0b2NrU3RhdHVzSW5kaWNhdG9yQ29tcG9uZW50LFxuICAgIElvbmVTaG9wcGluZ0NhcnRDb21wb25lbnQsXG4gICAgQ2hhcmFjdGVyaXN0aWNBbnN3ZXJDb21wb25lbnQsXG4gIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEljb25Nb2R1bGUsXG4gICAgICAgIElucHV0VGV4dE1vZHVsZSxcbiAgICAgICAgSW5wdXRDaGVja2JveE1vZHVsZSxcbiAgICAgICAgSW5wdXRSYWRpb0J1dHRvbk1vZHVsZSxcbiAgICAgICAgRm9ybU1vZHVsZSxcbiAgICAgICAgSW5wdXRDb21ib0JveE1vZHVsZSxcbiAgICAgICAgSW5wdXREYXRlUGlja2VyTW9kdWxlLFxuICAgICAgICBJbnB1dE51bWJlclBpY2tlck1vZHVsZSxcbiAgICAgICAgQ29EaWFsb2dNb2R1bGUsXG4gICAgICAgIENvRGlhbG9nUHJvbXB0TW9kdWxlLFxuICAgICAgICBCdXR0b25Nb2R1bGUsXG4gICAgICAgIEZsZXhNb2R1bGUsXG4gICAgICAgIE11bHRpU2VsZWN0TGlzdE1vZHVsZSxcbiAgICAgICAgTWF0U3RlcHBlck1vZHVsZSxcbiAgICAgICAgRHJvcERvd25Nb2R1bGUsXG4gICAgICAgIFBvcHVwTW9kdWxlLmZvclJvb3QoKSxcbiAgICAgICAgQ29TaWRlYmFyTW9kdWxlLFxuICAgICAgICBDb0dyaWRNb2R1bGUsXG4gICAgICAgIENvcmVNb2R1bGVcbiAgICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBEaWN0aW9uYXJ5U2VydmljZSxcbiAgICBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgT3B0aW9uc1NlcnZpY2VcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgSW9uZVNob3BwaW5nQ2FydENvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbSW9uZVNob3BwaW5nQ2FydENvbXBvbmVudCwgU3RvY2tTdGF0dXNJbmRpY2F0b3JDb21wb25lbnQsIENoYXJhY3RlcmlzdGljQW5zd2VyQ29tcG9uZW50XSxcbiAgYm9vdHN0cmFwOiBbSW9uZVNob3BwaW5nQ2FydENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSW9uZVNob3BwaW5nQ2FydE1vZHVsZSB7fVxuIl19
|