@colijnit/transaction 255.1.38 → 255.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/colijnit-transaction.umd.js +414 -91
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction-255.1.39.tgz +0 -0
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/lib/component/core/base/transaction-payment-base.component.js +12 -4
- package/esm2015/lib/component/delivery-planning/service/delivery-planning.service.js +18 -1
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-popup/delivery-planning-overview-popup.component.js +53 -33
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/component/delivery-planning-overview-tile-line/delivery-planning-overview-tile-line.component.js +21 -11
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/delivery-planning-overview-tile.component.js +12 -2
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile-settings-popup/delivery-planning-overview-tile-settings-popup.component.js +53 -3
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/delivery-planning-overview.component.js +79 -24
- package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.component.js +2 -1
- package/esm2015/lib/component/transaction/transaction.component.js +4 -1
- package/esm2015/lib/component/transaction-card/transaction-card-planning/transaction-card-planning.component.js +33 -4
- package/esm2015/lib/component/transaction-internal/transaction-internal.component.js +7 -4
- package/esm2015/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.js +2 -1
- package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.component.js +2 -2
- package/esm2015/lib/component/transaction-line-side-panel-planning/transaction-line-side-panel-planning.component.js +2 -2
- package/esm2015/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales-reservation/transaction-line-side-panel-sales-reservation/transaction-line-side-panel-sales-reservation.component.js +21 -8
- package/esm2015/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.module.js +3 -2
- package/esm2015/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/transaction-lines-side-panel-cash-desk.component.js +22 -7
- package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +2 -1
- package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-purchase-reservation-order-tile/transaction-purchase-reservation-order-tile.component.js +4 -14
- package/esm2015/lib/component/transaction-service-overview/components/transaction-service-message.component.js +3 -3
- package/esm2015/lib/component/transaction-service-overview/components/transaction-service-message.module.js +4 -3
- package/esm2015/lib/component/transaction-service-overview/transaction-service-overview.component.js +5 -3
- package/esm2015/lib/enum/icon.enum.js +7 -1
- package/esm2015/lib/enum/transaction-cfg-name.enum.js +3 -1
- package/esm2015/lib/model/icon-svg.js +7 -1
- package/esm2015/lib/service/transaction-create.service.js +12 -1
- package/esm2015/lib/service/transaction-payment.service.js +9 -3
- package/esm2015/lib/service/transaction.service.js +11 -4
- package/esm2015/lib/transaction-version.js +3 -3
- package/fesm2015/colijnit-transaction.js +368 -117
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/component/core/base/transaction-payment-base.component.d.ts +5 -2
- package/lib/component/delivery-planning/service/delivery-planning.service.d.ts +4 -0
- package/lib/component/delivery-planning/style/_layout.scss +22 -1
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-popup/delivery-planning-overview-popup.component.d.ts +9 -6
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/component/delivery-planning-overview-tile-line/delivery-planning-overview-tile-line.component.d.ts +3 -0
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/component/delivery-planning-overview-tile-line/style/_layout.scss +25 -10
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/delivery-planning-overview-tile.component.d.ts +9 -0
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/style/_layout.scss +13 -0
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile-settings-popup/delivery-planning-overview-tile-settings-popup.component.d.ts +14 -3
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/delivery-planning-overview.component.d.ts +16 -0
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/style/_layout.scss +9 -6
- package/lib/component/delivery-planning-main/style/_layout.scss +0 -1
- package/lib/component/transaction/transaction.component.d.ts +1 -0
- package/lib/component/transaction-card/transaction-card-planning/transaction-card-planning.component.d.ts +19 -0
- package/lib/component/transaction-internal/style/_layout.scss +6 -0
- package/lib/component/transaction-internal/transaction-internal.component.d.ts +1 -0
- package/lib/component/transaction-line-side-panel-planning/style/_layout.scss +20 -17
- package/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales-reservation/transaction-line-side-panel-sales-reservation/style/_layout.scss +16 -4
- package/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales-reservation/transaction-line-side-panel-sales-reservation/transaction-line-side-panel-sales-reservation.component.d.ts +5 -1
- package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/transaction-lines-side-panel-cash-desk.component.d.ts +2 -1
- package/lib/component/transaction-search/transaction-search-tile/transaction-purchase-reservation-order-tile/style/_layout.scss +26 -20
- package/lib/component/transaction-service-overview/transaction-service-overview.component.d.ts +2 -0
- package/lib/enum/icon.enum.d.ts +6 -0
- package/lib/enum/transaction-cfg-name.enum.d.ts +2 -1
- package/lib/service/transaction-create.service.d.ts +2 -0
- package/lib/service/transaction-payment.service.d.ts +3 -1
- package/lib/service/transaction.service.d.ts +2 -1
- package/package.json +1 -1
|
@@ -25,6 +25,7 @@ export class DeliveryPlanningOverviewComponent {
|
|
|
25
25
|
this.icons = Icon;
|
|
26
26
|
this.tileModes = DeliveryPlanningTileModes;
|
|
27
27
|
this.deliveryPlanningViewModes = DeliveryPlanningViewModes;
|
|
28
|
+
this.availability = [];
|
|
28
29
|
this.columnNum = 3; //initial count
|
|
29
30
|
this.planOrders = [];
|
|
30
31
|
this.currentMode = DeliveryPlanningCalendarModes.Week;
|
|
@@ -39,7 +40,6 @@ export class DeliveryPlanningOverviewComponent {
|
|
|
39
40
|
this.showSettingsDialog = false;
|
|
40
41
|
}
|
|
41
42
|
set tiles(tiles) {
|
|
42
|
-
this._deliveryPlanningService;
|
|
43
43
|
this.tilesQueryList = tiles;
|
|
44
44
|
}
|
|
45
45
|
;
|
|
@@ -75,6 +75,8 @@ export class DeliveryPlanningOverviewComponent {
|
|
|
75
75
|
dropped(ev, week, transportDay, transportDays) {
|
|
76
76
|
return __awaiter(this, void 0, void 0, function* () {
|
|
77
77
|
ev.preventDefault();
|
|
78
|
+
ev.stopPropagation();
|
|
79
|
+
this._deliveryPlanningService.dragging = false;
|
|
78
80
|
const data = ev.dataTransfer.getData("text");
|
|
79
81
|
let index = transportDays.indexOf(transportDay);
|
|
80
82
|
let tile = this.tilesQueryList.get(index);
|
|
@@ -85,15 +87,7 @@ export class DeliveryPlanningOverviewComponent {
|
|
|
85
87
|
yield this._transaction.getTransactionById(parseInt(data));
|
|
86
88
|
const planOrder = yield this._transactionCon.getPlanOrder(parseInt(data));
|
|
87
89
|
if (planOrder) {
|
|
88
|
-
this.
|
|
89
|
-
this._changeDetector.markForCheck();
|
|
90
|
-
this._changeDetector.detectChanges();
|
|
91
|
-
if (this.planningPopupRef) {
|
|
92
|
-
this.planningPopupRef.planOrder = planOrder;
|
|
93
|
-
this.planningPopupRef.transportDay = transportDay;
|
|
94
|
-
this.planningPopupRef.week = week;
|
|
95
|
-
this.planningPopupRef.transaction = this._transaction.currentTransaction;
|
|
96
|
-
}
|
|
90
|
+
this.openPlanningPopup(planOrder, transportDay, week);
|
|
97
91
|
}
|
|
98
92
|
}
|
|
99
93
|
else {
|
|
@@ -182,10 +176,6 @@ export class DeliveryPlanningOverviewComponent {
|
|
|
182
176
|
request.planningId = this._deliveryPlanningService.currentPlanning.planningId;
|
|
183
177
|
request.date = transportDay.date;
|
|
184
178
|
request.transportId = transportDay.transport.transportId;
|
|
185
|
-
order.startTime = transportDay.transport.startTime;
|
|
186
|
-
let endDate = new Date(transportDay.transport.startTime);
|
|
187
|
-
this.addHours(endDate, 1);
|
|
188
|
-
order.endTime = endDate;
|
|
189
179
|
transportDay.plannedOrders = yield this._transactionCon.getTransportOrders(request);
|
|
190
180
|
transportDay.ordersLoaded = true;
|
|
191
181
|
});
|
|
@@ -234,8 +224,10 @@ export class DeliveryPlanningOverviewComponent {
|
|
|
234
224
|
}
|
|
235
225
|
}
|
|
236
226
|
});
|
|
237
|
-
|
|
238
|
-
|
|
227
|
+
let correctOrder = transportDay.plannedOrders.find(order => order.transactionNr === planOrder.transactionNr);
|
|
228
|
+
transportDay.plannedOrders.splice(transportDay.plannedOrders.indexOf(correctOrder), 1);
|
|
229
|
+
if (correctOrder.lines.length > originalPlannedLineCount) {
|
|
230
|
+
this.openPlanningPopup(correctOrder, transportDay, week);
|
|
239
231
|
}
|
|
240
232
|
}
|
|
241
233
|
else {
|
|
@@ -269,6 +261,69 @@ export class DeliveryPlanningOverviewComponent {
|
|
|
269
261
|
this.showSettingsDialog = true;
|
|
270
262
|
}
|
|
271
263
|
}
|
|
264
|
+
handleCalendarPlanEvent(data, transportWeekDay, week) {
|
|
265
|
+
var _a;
|
|
266
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
267
|
+
let planOrder;
|
|
268
|
+
if (data.data === "false" && this._deliveryPlanningService.currentTransId) {
|
|
269
|
+
planOrder = yield this._transactionCon.getPlanOrder((_a = this._deliveryPlanningService) === null || _a === void 0 ? void 0 : _a.currentTransId);
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
planOrder = yield this._transactionCon.getPlanOrder(parseInt(data.data));
|
|
273
|
+
}
|
|
274
|
+
if (planOrder && data.currentHour) {
|
|
275
|
+
planOrder.startTime = this.calculateStartTime(transportWeekDay, data.currentHour);
|
|
276
|
+
planOrder.endTime = this.calculateEndTime(planOrder.startTime, data.currentHour, planOrder);
|
|
277
|
+
yield this.getTransportOrders(planOrder, transportWeekDay);
|
|
278
|
+
yield this.getSequenceOrderValue(planOrder);
|
|
279
|
+
yield this.getOrderLinesPlanned(planOrder);
|
|
280
|
+
yield this.planOrderLines(planOrder, transportWeekDay, week);
|
|
281
|
+
this._deliveryPlanningService.currentTransId = undefined;
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
calculateStartTime(transportWeekDay, currentHour) {
|
|
286
|
+
let startDate = new Date(transportWeekDay.date);
|
|
287
|
+
let startTime = parseInt(currentHour.split(":")[0]);
|
|
288
|
+
startDate.setHours(startTime);
|
|
289
|
+
startDate.setMinutes(parseInt(currentHour.split(":")[1]) > 0 ? parseInt(currentHour.split(":")[1]) : 0);
|
|
290
|
+
startDate.setSeconds(0);
|
|
291
|
+
return startDate;
|
|
292
|
+
}
|
|
293
|
+
calculateEndTime(startDate, currentHour, planOrder) {
|
|
294
|
+
let endTime = new Date(startDate);
|
|
295
|
+
let splitHour = currentHour.split(":");
|
|
296
|
+
const newEndMinutes = splitHour[1] === "00" ? 30 : 0;
|
|
297
|
+
const newEndHour = splitHour[1] === "30" ? (parseInt(splitHour[0]) + 1) : parseInt(splitHour[0]);
|
|
298
|
+
endTime.setHours(newEndHour);
|
|
299
|
+
endTime.setMinutes(newEndMinutes);
|
|
300
|
+
let assemblyTime = this._deliveryPlanningService.totalAssemblyTime(planOrder) * 60 * 1000;
|
|
301
|
+
endTime.setTime(endTime.getTime() + assemblyTime);
|
|
302
|
+
return endTime;
|
|
303
|
+
}
|
|
304
|
+
openPlanningPopup(planOrder, transportDay, week) {
|
|
305
|
+
this.showNoteDialog = true;
|
|
306
|
+
this._changeDetector.markForCheck();
|
|
307
|
+
this._changeDetector.detectChanges();
|
|
308
|
+
if (this.planningPopupRef) {
|
|
309
|
+
this.planningPopupRef.planOrder = planOrder;
|
|
310
|
+
this.planningPopupRef.transportDay = transportDay;
|
|
311
|
+
this.planningPopupRef.week = week;
|
|
312
|
+
this.planningPopupRef.transaction = this._transaction.currentTransaction;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
handleAvailabilityChecked(value) {
|
|
316
|
+
this.availability.push(value);
|
|
317
|
+
}
|
|
318
|
+
checkAvailable(transportDay) {
|
|
319
|
+
let transport = this.availability.find(transportObject => transportObject.transportDay === transportDay);
|
|
320
|
+
if (transport && !transport.available) {
|
|
321
|
+
return true;
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
return false;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
272
327
|
}
|
|
273
328
|
DeliveryPlanningOverviewComponent.decorators = [
|
|
274
329
|
{ type: Component, args: [{
|
|
@@ -276,22 +331,21 @@ DeliveryPlanningOverviewComponent.decorators = [
|
|
|
276
331
|
template: `
|
|
277
332
|
<co-delivery-planning-overview-popup #planningPopup *ngIf="showNoteDialog" (closeEvent)="showNoteDialog = false"
|
|
278
333
|
(onSucceededPlanAction)="handlePopupPlanEvent($event)"></co-delivery-planning-overview-popup>
|
|
279
|
-
<co-delivery-planning-overview-tile-settings-popup *ngIf="showSettingsDialog" [transportDay]="selectedTransportDay" (onSaveAction)="handleSettingsSave($event)" (closeEvent)="showSettingsDialog = false"></co-delivery-planning-overview-tile-settings-popup>
|
|
334
|
+
<co-delivery-planning-overview-tile-settings-popup *ngIf="showSettingsDialog" [transportDay]="selectedTransportDay" (availabilityChecked)="handleAvailabilityChecked($event)" (onSaveAction)="handleSettingsSave($event)" (closeEvent)="showSettingsDialog = false"></co-delivery-planning-overview-tile-settings-popup>
|
|
280
335
|
<div class="delivery-overview-wrapper" [class.sidebar]="currentViewMode === 'DAYS_AROUND'">
|
|
336
|
+
<div class="tile-view-modes row">
|
|
337
|
+
<co-icon (click)="currentTileMode = tileModes.Normal" [class.active]="currentTileMode === tileModes.Normal" [iconData]="iconCacheService.getIcon(icons.CalendarLinesRegular)"></co-icon>
|
|
338
|
+
<co-icon (click)="currentTileMode = tileModes.Calendar" [class.active]="currentTileMode === tileModes.Calendar" [iconData]="iconCacheService.getIcon(icons.CalendarDayRegular)"></co-icon>
|
|
339
|
+
</div>
|
|
281
340
|
<div class="planning-component-wrapper">
|
|
282
341
|
<co-date-planning [view]="currentViewMode" [selectedDate]="date"
|
|
283
342
|
(rangeChange)="handleDateRangeChange($event)"></co-date-planning>
|
|
284
343
|
</div>
|
|
285
|
-
|
|
286
|
-
<div class="tile-view-modes row">
|
|
287
|
-
<co-icon (click)="currentTileMode = tileModes.Normal" [class.active]="currentTileMode === tileModes.Normal" [iconData]="iconCacheService.getIcon(icons.ObjectIntersectSolid)"></co-icon>
|
|
288
|
-
<co-icon (click)="currentTileMode = tileModes.Calendar" [class.active]="currentTileMode === tileModes.Calendar" [iconData]="iconCacheService.getIcon(icons.CalendarDayRegular)"></co-icon>
|
|
289
|
-
</div>
|
|
290
344
|
<div class="row date-planning" #rowContainer *ngFor="let transportWeekRow of planTransportWeek">
|
|
291
345
|
<div class="column" #columnElem
|
|
292
346
|
*ngFor="let transPortDay of filterWeekArray(weekArray(transportWeekRow)); index as i">
|
|
293
347
|
<co-delivery-planning-overview-tile
|
|
294
|
-
[class.disabled]="!transPortDay.availableOnDate || transPortDay.maxMinutes === 0"
|
|
348
|
+
[class.disabled]="!transPortDay.availableOnDate || transPortDay.maxMinutes === 0 || checkAvailable(transPortDay)"
|
|
295
349
|
[disabled]="!transPortDay.availableOnDate || transPortDay.maxMinutes === 0"
|
|
296
350
|
(dragover)="allowDrop($event, transPortDay)"
|
|
297
351
|
(drop)="dropped($event, transportWeekRow, transPortDay, filterWeekArray(weekArray(transportWeekRow)))"
|
|
@@ -301,6 +355,7 @@ DeliveryPlanningOverviewComponent.decorators = [
|
|
|
301
355
|
(deleteLineEvent)="handleDeleteOrder($event, transportWeekRow)"
|
|
302
356
|
(updatePlanningTransportWeek)="updatePlanningTransportEvent.emit(transportWeekRow)"
|
|
303
357
|
(openSettingsDialogEvent)="openSettingsDialog($event)"
|
|
358
|
+
(calendarPlanEvent)="handleCalendarPlanEvent($event, transPortDay, transportWeekRow)"
|
|
304
359
|
></co-delivery-planning-overview-tile>
|
|
305
360
|
|
|
306
361
|
</div>
|
|
@@ -334,4 +389,4 @@ DeliveryPlanningOverviewComponent.propDecorators = {
|
|
|
334
389
|
showClass: [{ type: HostBinding, args: ["class.co-delivery-planning-overview",] }],
|
|
335
390
|
onResize: [{ type: HostListener, args: ['window:resize', ['$event'],] }]
|
|
336
391
|
};
|
|
337
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctbWFpbi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUNyRyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUM3RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUk5RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUMvRyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUNwRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFJN0csT0FBTyxFQUNMLHFDQUFxQyxFQUN0QyxNQUFNLHVGQUF1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b0IsR0FBRyxZQUFZLENBQUM7UUFDekMsSUFBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztTQUNoQztJQUNILENBQUM7OztZQW5WRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtnQkFDekMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBNURPLHVCQUF1QjtZQUN2QixrQkFBa0I7WUFDbEIsMkJBQTJCO1lBTTNCLGFBQWE7WUF4Qm5CLGlCQUFpQjtZQWdDWCxnQkFBZ0I7OztvQkFrRHJCLFlBQVksU0FBQyxxQ0FBcUM7MkJBTWxELFNBQVMsU0FBQyxjQUFjO3lCQUd4QixTQUFTLFNBQUMsWUFBWTtxQ0FHdEIsU0FBUyxTQUFDLGVBQWU7eUJBT3pCLEtBQUs7MEJBR0wsS0FBSzs4QkFHTCxLQUFLO3NDQUdMLEtBQUs7MkNBR0wsTUFBTTswQ0FHTixNQUFNO3dCQTZDTixXQUFXLFNBQUMscUNBQXFDO3VCQU9qRCxZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdDaGVja2VkLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge0NhbGVuZGFyVmlld30gZnJvbSAnQGNvbGlqbml0L3NoYXJlZGNvbXBvbmVudHMnO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdDYWxlbmRhck1vZGVzfSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9kZWxpdmVyeS1wbGFubmluZy1jYWxlbmRhci1tb2Rlcy5lbnVtXCI7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1ZpZXdNb2Rlc30gZnJvbSBcIi4uLy4uLy4uLy4uL2VudW0vZGVsaXZlcnktcGxhbm5pbmctdmlldy1tb2Rlcy5lbnVtXCI7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9kZWxpdmVyeS1wbGFubmluZy9zZXJ2aWNlL2RlbGl2ZXJ5LXBsYW5uaW5nLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UGxhbm5pbmdUcmFuc3BvcnRXZWVrfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLXRyYW5zcG9ydC13ZWVrLmJvXCI7XHJcbmltcG9ydCB7UGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLXRyYW5zcG9ydC13ZWVrLWRheS5ib1wiO1xyXG5pbXBvcnQge1BsYW5PcmRlcn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFuLW9yZGVyLmJvXCI7XHJcbmltcG9ydCB7R2V0VHJhbnNwb3J0T3JkZXJzUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9nZXQtdHJhbnNwb3J0LW9yZGVycy1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7UGxhbm5pbmdGaWx0ZXJPYmplY3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmctZmlsdGVyLW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7T3JkZXJMaW5lc1BsYW5uZWRSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLWxpbmVzLXBsYW5uZWQtcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge1xyXG4gIERlbGl2ZXJ5UGxhbm5pbmdPdmVydmlld1BvcHVwQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4vY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXBvcHVwL2RlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXBvcHVwLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGl2ZXJ5UGxhbm5pbmdPdmVydmlld1RpbGVDb21wb25lbnRcclxufSBmcm9tIFwiLi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS9kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdUaWxlTW9kZXN9IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLXRpbGUtbW9kZXMuZW51bVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy1wb3B1cCAjcGxhbm5pbmdQb3B1cCAqbmdJZj1cInNob3dOb3RlRGlhbG9nXCIgKGNsb3NlRXZlbnQpPVwic2hvd05vdGVEaWFsb2cgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uU3VjY2VlZGVkUGxhbkFjdGlvbik9XCJoYW5kbGVQb3B1cFBsYW5FdmVudCgkZXZlbnQpXCI+PC9jby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy1wb3B1cD5cclxuICAgIDxjby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlLXNldHRpbmdzLXBvcHVwICpuZ0lmPVwic2hvd1NldHRpbmdzRGlhbG9nXCIgW3RyYW5zcG9ydERheV09XCJzZWxlY3RlZFRyYW5zcG9ydERheVwiIChvblNhdmVBY3Rpb24pPVwiaGFuZGxlU2V0dGluZ3NTYXZlKCRldmVudClcIiAoY2xvc2VFdmVudCk9XCJzaG93U2V0dGluZ3NEaWFsb2cgPSBmYWxzZVwiPjwvY28tZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS1zZXR0aW5ncy1wb3B1cD5cclxuICAgIDxkaXYgY2xhc3M9XCJkZWxpdmVyeS1vdmVydmlldy13cmFwcGVyXCIgW2NsYXNzLnNpZGViYXJdPVwiY3VycmVudFZpZXdNb2RlID09PSAnREFZU19BUk9VTkQnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy1jb21wb25lbnQtd3JhcHBlclwiPlxyXG4gICAgICAgIDxjby1kYXRlLXBsYW5uaW5nIFt2aWV3XT1cImN1cnJlbnRWaWV3TW9kZVwiIFtzZWxlY3RlZERhdGVdPVwiZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHJhbmdlQ2hhbmdlKT1cImhhbmRsZURhdGVSYW5nZUNoYW5nZSgkZXZlbnQpXCI+PC9jby1kYXRlLXBsYW5uaW5nPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aWxlLXZpZXctbW9kZXMgcm93XCI+XHJcbiAgICAgICAgPGNvLWljb24gKGNsaWNrKT1cImN1cnJlbnRUaWxlTW9kZSA9IHRpbGVNb2Rlcy5Ob3JtYWxcIiBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRUaWxlTW9kZSA9PT0gdGlsZU1vZGVzLk5vcm1hbFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuT2JqZWN0SW50ZXJzZWN0U29saWQpXCI+PC9jby1pY29uPlxyXG4gICAgICAgIDxjby1pY29uIChjbGljayk9XCJjdXJyZW50VGlsZU1vZGUgPSB0aWxlTW9kZXMuQ2FsZW5kYXJcIiBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRUaWxlTW9kZSA9PT0gdGlsZU1vZGVzLkNhbGVuZGFyXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DYWxlbmRhckRheVJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBkYXRlLXBsYW5uaW5nXCIgI3Jvd0NvbnRhaW5lciAqbmdGb3I9XCJsZXQgdHJhbnNwb3J0V2Vla1JvdyBvZiBwbGFuVHJhbnNwb3J0V2Vla1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIiAjY29sdW1uRWxlbVxyXG4gICAgICAgICAgICAgKm5nRm9yPVwibGV0IHRyYW5zUG9ydERheSBvZiBmaWx0ZXJXZWVrQXJyYXkod2Vla0FycmF5KHRyYW5zcG9ydFdlZWtSb3cpKTsgaW5kZXggYXMgaVwiPlxyXG4gICAgICAgICAgPGNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXRpbGVcclxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiF0cmFuc1BvcnREYXkuYXZhaWxhYmxlT25EYXRlIHx8IHRyYW5zUG9ydERheS5tYXhNaW51dGVzID09PSAwXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiF0cmFuc1BvcnREYXkuYXZhaWxhYmxlT25EYXRlIHx8IHRyYW5zUG9ydERheS5tYXhNaW51dGVzID09PSAwXCJcclxuICAgICAgICAgICAgKGRyYWdvdmVyKT1cImFsbG93RHJvcCgkZXZlbnQsIHRyYW5zUG9ydERheSlcIlxyXG4gICAgICAgICAgICAoZHJvcCk9XCJkcm9wcGVkKCRldmVudCwgdHJhbnNwb3J0V2Vla1JvdywgdHJhbnNQb3J0RGF5LCBmaWx0ZXJXZWVrQXJyYXkod2Vla0FycmF5KHRyYW5zcG9ydFdlZWtSb3cpKSlcIlxyXG4gICAgICAgICAgICAoZHJhZ2VuZCk9XCJkcmFnRW5kKCRldmVudClcIlxyXG5cclxuICAgICAgICAgICAgW3RyYW5zcG9ydERheV09XCJ0cmFuc1BvcnREYXlcIlxyXG4gICAgICAgICAgICAoZGVsZXRlTGluZUV2ZW50KT1cImhhbmRsZURlbGV0ZU9yZGVyKCRldmVudCwgdHJhbnNwb3J0V2Vla1JvdylcIlxyXG4gICAgICAgICAgICAodXBkYXRlUGxhbm5pbmdUcmFuc3BvcnRXZWVrKT1cInVwZGF0ZVBsYW5uaW5nVHJhbnNwb3J0RXZlbnQuZW1pdCh0cmFuc3BvcnRXZWVrUm93KVwiXHJcbiAgICAgICAgICAgIChvcGVuU2V0dGluZ3NEaWFsb2dFdmVudCk9XCJvcGVuU2V0dGluZ3NEaWFsb2coJGV2ZW50KVwiXHJcbiAgICAgICAgICA+PC9jby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVsaXZlcnlQbGFubmluZ092ZXJ2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IHRpbGVNb2RlczogdHlwZW9mIERlbGl2ZXJ5UGxhbm5pbmdUaWxlTW9kZXMgPSBEZWxpdmVyeVBsYW5uaW5nVGlsZU1vZGVzO1xyXG4gIHB1YmxpYyBkZWxpdmVyeVBsYW5uaW5nVmlld01vZGVzOiB0eXBlb2YgRGVsaXZlcnlQbGFubmluZ1ZpZXdNb2RlcyA9IERlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXM7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oRGVsaXZlcnlQbGFubmluZ092ZXJ2aWV3VGlsZUNvbXBvbmVudClcclxuICBwdWJsaWMgc2V0IHRpbGVzKHRpbGVzOiBRdWVyeUxpc3Q8RGVsaXZlcnlQbGFubmluZ092ZXJ2aWV3VGlsZUNvbXBvbmVudD4pIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlXHJcbiAgICB0aGlzLnRpbGVzUXVlcnlMaXN0ID0gdGlsZXM7XHJcbiAgfTtcclxuXHJcbiAgQFZpZXdDaGlsZCgncm93Q29udGFpbmVyJykgcm93Q29udGFpbmVyO1xyXG5cclxuXHJcbiAgQFZpZXdDaGlsZCgnY29sdW1uRWxlbScpIGNvbHVtbkVsZW07XHJcbiAgcHVibGljIGNvbHVtbk51bSA9IDM7IC8vaW5pdGlhbCBjb3VudFxyXG5cclxuICBAVmlld0NoaWxkKCdwbGFubmluZ1BvcHVwJylcclxuICBwdWJsaWMgc2V0IHBsYW5uaW5nUG9wdXBDb21wb25lbnQodmFsdWU6IERlbGl2ZXJ5UGxhbm5pbmdPdmVydmlld1BvcHVwQ29tcG9uZW50KSB7XHJcbiAgICB0aGlzLnBsYW5uaW5nUG9wdXBSZWYgPSB2YWx1ZTtcclxuICB9O1xyXG5cclxuXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBsYW5PcmRlcnM6IFBsYW5PcmRlcltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGN1cnJlbnRNb2RlOiBEZWxpdmVyeVBsYW5uaW5nQ2FsZW5kYXJNb2RlcyA9IERlbGl2ZXJ5UGxhbm5pbmdDYWxlbmRhck1vZGVzLldlZWs7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGN1cnJlbnRWaWV3TW9kZTogQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3LldlZWtWaWV3O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjdXJyZW50UGxhbm5pbmdWaWV3TW9kZTogRGVsaXZlcnlQbGFubmluZ1ZpZXdNb2RlcyA9IHRoaXMuZGVsaXZlcnlQbGFubmluZ1ZpZXdNb2Rlcy5GdWxsc2NyZWVuO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgdXBkYXRlUGxhbm5pbmdUcmFuc3BvcnRFdmVudDogRXZlbnRFbWl0dGVyPFBsYW5uaW5nVHJhbnNwb3J0V2Vlaz4gPSBuZXcgRXZlbnRFbWl0dGVyPFBsYW5uaW5nVHJhbnNwb3J0V2Vlaz4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlc2V0UGxhbm5pbmdUcmFuc3BvcnRFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBwdWJsaWMgdGlsZVNpemUgPSAzMDA7IC8vb25lIHRpbGUgc2hvdWxkIGhhdmUgdGhpcyB3aWR0aFxyXG4gIHB1YmxpYyBwbGFubmluZ1BvcHVwUmVmOiBEZWxpdmVyeVBsYW5uaW5nT3ZlcnZpZXdQb3B1cENvbXBvbmVudDtcclxuXHJcbiAgcHVibGljIGRhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIHB1YmxpYyBhdmFpbGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd05vdGVEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1NldHRpbmdzRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHRpbGVzUXVlcnlMaXN0OiBRdWVyeUxpc3Q8RGVsaXZlcnlQbGFubmluZ092ZXJ2aWV3VGlsZUNvbXBvbmVudD47XHJcbiAgcHVibGljIHNlbGVjdGVkVHJhbnNwb3J0RGF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXk7XHJcblxyXG4gIHB1YmxpYyBnZXQgcGxhblRyYW5zcG9ydFdlZWsoKSB7XHJcbiAgICBpZiAodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UucGxhblRyYW5zcG9ydFdlZWsubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5wbGFuVHJhbnNwb3J0V2VlaztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGN1cnJlbnRUaWxlTW9kZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50VGlsZU1vZGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IGN1cnJlbnRUaWxlTW9kZSh0aWxlTW9kZSA6IERlbGl2ZXJ5UGxhbm5pbmdUaWxlTW9kZXMpIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRUaWxlTW9kZSA9IHRpbGVNb2RlO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlOiBEZWxpdmVyeVBsYW5uaW5nU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uQ29uOiBUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZGlhbG9nOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZVxyXG4gICAgICAgICAgICAgICkge1xyXG4gIH1cclxuXHJcbiAgLy9jYWxjdWxhdGluZyB1cG9uIGxvYWRpbmdcclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICB0aGlzLnNldENvbE51bSgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXdcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9yZWNhbGN1bGF0aW5nIHVwb24gYnJvd3NlciB3aW5kb3cgcmVzaXplXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgb25SZXNpemUoZXZlbnQpIHtcclxuICAgIHRoaXMuc2V0Q29sTnVtKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGFzeW5jIGRyb3BwZWQoZXY6IERyYWdFdmVudCwgd2VlazogUGxhbm5pbmdUcmFuc3BvcnRXZWVrLCB0cmFuc3BvcnREYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSwgdHJhbnNwb3J0RGF5czogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5W10pIHtcclxuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCBkYXRhID0gZXYuZGF0YVRyYW5zZmVyLmdldERhdGEoXCJ0ZXh0XCIpO1xyXG4gICAgbGV0IGluZGV4ID0gdHJhbnNwb3J0RGF5cy5pbmRleE9mKHRyYW5zcG9ydERheSlcclxuICAgIGxldCB0aWxlID0gdGhpcy50aWxlc1F1ZXJ5TGlzdC5nZXQoaW5kZXgpO1xyXG4gICAgaWYgKCF0aWxlLmV4cGFuZGVkKSB7XHJcbiAgICAgIHRpbGUuZXhwYW5kZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGRhdGEgIT0gXCJsaW5lc1wiKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uLmdldFRyYW5zYWN0aW9uQnlJZChwYXJzZUludChkYXRhKSlcclxuICAgICAgY29uc3QgcGxhbk9yZGVyID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25Db24uZ2V0UGxhbk9yZGVyKHBhcnNlSW50KGRhdGEpKVxyXG4gICAgICBpZiAocGxhbk9yZGVyKSB7XHJcbiAgICAgICAgdGhpcy5zaG93Tm90ZURpYWxvZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIGlmICh0aGlzLnBsYW5uaW5nUG9wdXBSZWYpIHtcclxuICAgICAgICAgIHRoaXMucGxhbm5pbmdQb3B1cFJlZi5wbGFuT3JkZXIgPSBwbGFuT3JkZXI7XHJcbiAgICAgICAgICB0aGlzLnBsYW5uaW5nUG9wdXBSZWYudHJhbnNwb3J0RGF5ID0gdHJhbnNwb3J0RGF5O1xyXG4gICAgICAgICAgdGhpcy5wbGFubmluZ1BvcHVwUmVmLndlZWsgPSB3ZWVrO1xyXG4gICAgICAgICAgdGhpcy5wbGFubmluZ1BvcHVwUmVmLnRyYW5zYWN0aW9uID0gdGhpcy5fdHJhbnNhY3Rpb24uY3VycmVudFRyYW5zYWN0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzLmZpbmQodHJhbnNhY3Rpb25MaW5lID0+IHRyYW5zYWN0aW9uTGluZS5zZWxlY3RlZCkpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLnBsYW5TZWxlY3RlZExpbmVzKHRyYW5zcG9ydERheSwgd2VlaylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFsbG93RHJvcChldiwgdHJhbnNwb3J0RGF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXkpIHtcclxuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBpZiAodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZHJhZ2dpbmcgJiYgdHJhbnNwb3J0RGF5Lm1heE1pbnV0ZXMgPiAwICYmIHRyYW5zcG9ydERheS5hdmFpbGFibGVPbkRhdGUpIHtcclxuICAgICAgcmV0dXJuIHRyYW5zcG9ydERheS5taW51dGVzICsgdHJhbnNwb3J0RGF5Lm1pbnV0ZXMgPCB0cmFuc3BvcnREYXkubWF4TWludXRlcyAmJiB0cmFuc3BvcnREYXkubWF4T3JkZXJBbW91bnQgPCB0cmFuc3BvcnREYXkub3JkZXJBbW91bnQgJiYgdHJhbnNwb3J0RGF5LmF2YWlsYWJsZU9uRGF0ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgc2V0Q29sTnVtKCkge1xyXG4gICAgaWYgKHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnZpZXdNb2RlID09PSBEZWxpdmVyeVBsYW5uaW5nVmlld01vZGVzLlNpZGViYXIpIHtcclxuICAgICAgdGhpcy5jb2x1bW5OdW0gPSAxO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IHdpZHRoID0gdGhpcy5yb3dDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/Lm9mZnNldFdpZHRoO1xyXG4gICAgICBpZiAod2lkdGgpIHtcclxuICAgICAgICB0aGlzLmNvbHVtbk51bSA9IE1hdGgudHJ1bmMod2lkdGggLyB0aGlzLnRpbGVTaXplKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBkcmFnRW5kKGV2KSB7XHJcbiAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZHJhZ2dpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgd2Vla0FycmF5KGFycjogUGxhbm5pbmdUcmFuc3BvcnRXZWVrKTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5W10ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGFycikuc29ydCgpLm1hcChrZXkgPT4gYXJyW2tleV0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbHRlcldlZWtBcnJheSh3ZWVrQXJyYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheVtdKSB7XHJcbiAgICByZXR1cm4gd2Vla0FycmF5LnNsaWNlKDAsIHRoaXMuY29sdW1uTnVtKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRIb3VycyhkYXRlLCBob3Vycykge1xyXG4gICAgY29uc3QgaG91cnNUb0FkZCA9IGhvdXJzICogNjAgKiA2MCAqIDEwMDA7XHJcbiAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgKyBob3Vyc1RvQWRkKTtcclxuICAgIHJldHVybiBkYXRlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZURhdGVSYW5nZUNoYW5nZShuZXdEYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50U3RhcnREYXRlID0gbmV3RGF0ZTtcclxuICAgIHRoaXMucmVzZXRQbGFubmluZ1RyYW5zcG9ydEV2ZW50LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVEZWxldGVPcmRlcihkZWxldGVSZXN1bHQ6IFtQbGFuT3JkZXIsIFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheV0sIHBsYW5uaW5nVHJhbnNwb3J0V2VlazogUGxhbm5pbmdUcmFuc3BvcnRXZWVrKSB7XHJcbiAgICBsZXQgb3JkZXIgPSBkZWxldGVSZXN1bHRbMF07XHJcbiAgICBpZiAob3JkZXIpIHtcclxuICAgICAgYXdhaXQgdGhpcy5nZXRUcmFuc3BvcnRPcmRlcnMoZGVsZXRlUmVzdWx0WzBdLCBkZWxldGVSZXN1bHRbMV0pO1xyXG4gICAgICBhd2FpdCB0aGlzLmdldE9yZGVyTGluZXNQbGFubmVkKG9yZGVyKTtcclxuICAgICAgaWYgKGRlbGV0ZVJlc3VsdFswXS5saW5lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgb3JkZXI/LmxpbmVzLmZvckVhY2gobGluZSA9PiB7XHJcbiAgICAgICAgICBsaW5lLnBsYW5uZWQgPSBmYWxzZTtcclxuICAgICAgICAgIGxpbmUuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBvcmRlci5saW5lcyA9IFtdXHJcbiAgICAgICAgZGVsZXRlUmVzdWx0WzFdLnBsYW5uZWRPcmRlcnMuc3BsaWNlKGRlbGV0ZVJlc3VsdFsxXS5wbGFubmVkT3JkZXJzLmluZGV4T2Yob3JkZXIpLCAxKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVBsYW5uaW5nVHJhbnNwb3J0RXZlbnQuZW1pdChwbGFubmluZ1RyYW5zcG9ydFdlZWspO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5zaG93RXJyb3IoXCJOT19MSU5FU19UT19ERUxFVEVcIiwgdHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRPcmRlckxpbmVzUGxhbm5lZChvcmRlcjogUGxhbk9yZGVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgcmVxdWVzdDogT3JkZXJMaW5lc1BsYW5uZWRSZXF1ZXN0ID0gbmV3IE9yZGVyTGluZXNQbGFubmVkUmVxdWVzdCgpO1xyXG4gICAgbGV0IGZpbHRlck9iajogUGxhbm5pbmdGaWx0ZXJPYmplY3QgPSBuZXcgUGxhbm5pbmdGaWx0ZXJPYmplY3QoKTtcclxuICAgIHJlcXVlc3QucGxhbm5lZCA9IHRydWU7XHJcbiAgICByZXF1ZXN0LnBsYW5uaW5nSWQgPSB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50UGxhbm5pbmcucGxhbm5pbmdJZDtcclxuICAgIHJlcXVlc3QudHJhbnNJZCA9IG9yZGVyLnRyYW5zSWQ7XHJcbiAgICByZXF1ZXN0LnBsYW5uZWRMaW5lSWQgPSBvcmRlci5wbGFubmVkTGluZUlkO1xyXG4gICAgZmlsdGVyT2JqLm9ubHlDdXJyZW50V2VlayA9IHRydWU7XHJcbiAgICBmaWx0ZXJPYmouYmVnaW5DdXJyZW50V2VlayA9IG5ldyBEYXRlKCk7XHJcbiAgICBmaWx0ZXJPYmouY2hlY2tPcmRlckxpbmVzID0gMTtcclxuICAgIHJlcXVlc3QuZmlsdGVyT2JqZWN0ID0gZmlsdGVyT2JqO1xyXG4gICAgb3JkZXIubGluZXMucHVzaCguLi5hd2FpdCB0aGlzLl90cmFuc2FjdGlvbkNvbi5nZXRPcmRlckxpbmVzUGxhbm5lZChyZXF1ZXN0KSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFRyYW5zcG9ydE9yZGVycyhvcmRlcjogUGxhbk9yZGVyLCB0cmFuc3BvcnREYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHJlcXVlc3Q6IEdldFRyYW5zcG9ydE9yZGVyc1JlcXVlc3QgPSBuZXcgR2V0VHJhbnNwb3J0T3JkZXJzUmVxdWVzdCgpO1xyXG4gICAgcmVxdWVzdC5wbGFubmluZ0lkID0gdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFBsYW5uaW5nLnBsYW5uaW5nSWQ7XHJcbiAgICByZXF1ZXN0LmRhdGUgPSB0cmFuc3BvcnREYXkuZGF0ZTtcclxuICAgIHJlcXVlc3QudHJhbnNwb3J0SWQgPSB0cmFuc3BvcnREYXkudHJhbnNwb3J0LnRyYW5zcG9ydElkO1xyXG4gICAgb3JkZXIuc3RhcnRUaW1lID0gdHJhbnNwb3J0RGF5LnRyYW5zcG9ydC5zdGFydFRpbWU7XHJcbiAgICBsZXQgZW5kRGF0ZSA9IG5ldyBEYXRlKHRyYW5zcG9ydERheS50cmFuc3BvcnQuc3RhcnRUaW1lKTtcclxuICAgIHRoaXMuYWRkSG91cnMoZW5kRGF0ZSwgMSk7XHJcbiAgICBvcmRlci5lbmRUaW1lID0gZW5kRGF0ZTtcclxuICAgIHRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25Db24uZ2V0VHJhbnNwb3J0T3JkZXJzKHJlcXVlc3QpO1xyXG4gICAgdHJhbnNwb3J0RGF5Lm9yZGVyc0xvYWRlZCA9IHRydWU7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHBsYW5PcmRlckxpbmVzKG9yZGVyOiBQbGFuT3JkZXIsIHRyYW5zcG9ydERheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5LCB3ZWVrOiBQbGFubmluZ1RyYW5zcG9ydFdlZWspOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChvcmRlci5saW5lcy5sZW5ndGgpIHtcclxuICAgICAgb3JkZXIubGluZXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICBvcmRlci50YXNrcyA9IFtdO1xyXG4gICAgICBvcmRlci50YXNrc0xvYWRlZCA9IHRydWU7XHJcbiAgICAgIG9yZGVyLmxpbmVzLmZvckVhY2gobGluZSA9PiB7XHJcbiAgICAgICAgbGluZS5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoIXRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzIHx8IHRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzID0gW29yZGVyXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycy5wdXNoKG9yZGVyKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnVwZGF0ZVBsYW5uaW5nVHJhbnNwb3J0RXZlbnQuZW1pdCh3ZWVrKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2RpYWxvZy5zaG93RXJyb3IoXCJOT19MSU5FU19UT19QTEFOXCIsIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHBsYW5TZWxlY3RlZExpbmVzKHRyYW5zcG9ydERheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5LCB3ZWVrOiBQbGFubmluZ1RyYW5zcG9ydFdlZWspOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCBwbGFuT3JkZXIgPSBhd2FpdCB0aGlzLl90cmFuc2FjdGlvbkNvbi5nZXRQbGFuT3JkZXIodGhpcy5fdHJhbnNhY3Rpb24uY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCk7XHJcbiAgICBsZXQgbGluZXNUb1BsYW4gPSBwbGFuT3JkZXIubGluZXM7XHJcbiAgICBwbGFuT3JkZXIubGluZXMgPSBbXTtcclxuXHJcbiAgICBhd2FpdCB0aGlzLmdldFRyYW5zcG9ydE9yZGVycyhwbGFuT3JkZXIsIHRyYW5zcG9ydERheSk7XHJcbiAgICBhd2FpdCB0aGlzLmdldFNlcXVlbmNlT3JkZXJWYWx1ZShwbGFuT3JkZXIpO1xyXG4gICAgYXdhaXQgdGhpcy5nZXRPcmRlckxpbmVzUGxhbm5lZChwbGFuT3JkZXIpO1xyXG5cclxuICAgIGxldCBvcmlnaW5hbFBsYW5uZWRMaW5lQ291bnQgPSBwbGFuT3JkZXIubGluZXMubGVuZ3RoO1xyXG5cclxuICAgIGlmICghdHJhbnNwb3J0RGF5LnBsYW5uZWRPcmRlcnMuZmluZChvcmRlciA9PiBvcmRlci50cmFuc0lkID09PSBwbGFuT3JkZXIudHJhbnNJZCkpIHtcclxuICAgICAgdHJhbnNwb3J0RGF5LnBsYW5uZWRPcmRlcnMucHVzaChwbGFuT3JkZXIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAobGluZXNUb1BsYW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbi5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcy5maWx0ZXIodHJhbnNMaW5lcyA9PiB0cmFuc0xpbmVzLnNlbGVjdGVkKS5mb3JFYWNoKHNlbGVjdGVkVHJhbnNMaW5lID0+IHtcclxuICAgICAgICBpZiAobGluZXNUb1BsYW4uZmluZChwbGFuTGluZSA9PiBwbGFuTGluZS5vcmlnaW5hbExpbmVOciA9PT0gc2VsZWN0ZWRUcmFuc0xpbmUubGluZU5yKSkge1xyXG4gICAgICAgICAgbGV0IG1hdGNoZWRMaW5lID0gbGluZXNUb1BsYW4uZmluZChwbGFuTGluZSA9PiBwbGFuTGluZS5vcmlnaW5hbExpbmVOciA9PT0gc2VsZWN0ZWRUcmFuc0xpbmUubGluZU5yKTtcclxuICAgICAgICAgIGlmICghcGxhbk9yZGVyLmxpbmVzLmZpbmQocGxhbm5lZExpbmUgPT4gcGxhbm5lZExpbmUub3JpZ2luYWxMaW5lTnIgPT09IG1hdGNoZWRMaW5lLm9yaWdpbmFsTGluZU5yKSkge1xyXG4gICAgICAgICAgICBtYXRjaGVkTGluZS5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzLmZpbmQob3JkZXIgPT4gb3JkZXIudHJhbnNJZCA9PT0gbWF0Y2hlZExpbmUudHJhbnNJZCkubGluZXMucHVzaChtYXRjaGVkTGluZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmICh0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycy5maW5kKG9yZGVyID0+IG9yZGVyLnRyYW5zSWQgPT09IHBsYW5PcmRlci50cmFuc0lkKS5saW5lcy5sZW5ndGggPiBvcmlnaW5hbFBsYW5uZWRMaW5lQ291bnQpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVBsYW5uaW5nVHJhbnNwb3J0RXZlbnQuZW1pdCh3ZWVrKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZGlhbG9nLnNob3dFcnJvcihcIk5PX0xJTkVTX1RPX1BMQU5cIiwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U2VxdWVuY2VPcmRlclZhbHVlKG9yZGVyOiBQbGFuT3JkZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIG9yZGVyLnBsYW5uZWRMaW5lSWQgPSBhd2FpdCB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5nZXRPcmRlclNlcXVlbmNlVmFsdWUoKTtcclxuICAgIG9yZGVyLmNoYWluZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlUG9wdXBQbGFuRXZlbnQoZXZlbnQ6IFtQbGFuT3JkZXIsIFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSwgUGxhbm5pbmdUcmFuc3BvcnRXZWVrXSkge1xyXG4gICAgdGhpcy5zaG93Tm90ZURpYWxvZyA9IGZhbHNlO1xyXG4gICAgYXdhaXQgdGhpcy5nZXRUcmFuc3BvcnRPcmRlcnMoZXZlbnRbMF0sIGV2ZW50WzFdKTtcclxuICAgIGF3YWl0IHRoaXMuZ2V0U2VxdWVuY2VPcmRlclZhbHVlKGV2ZW50WzBdKVxyXG4gICAgYXdhaXQgdGhpcy5nZXRPcmRlckxpbmVzUGxhbm5lZChldmVudFswXSlcclxuICAgIGF3YWl0IHRoaXMucGxhbk9yZGVyTGluZXMoZXZlbnRbMF0sIGV2ZW50WzFdLCBldmVudFsyXSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNldHRpbmdzU2F2ZShjaGFuZ2VkOiBib29sZWFuKSB7XHJcbiAgICBpZihjaGFuZ2VkKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlUGxhbm5pbmdUcmFuc3BvcnRFdmVudC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlblNldHRpbmdzRGlhbG9nKHRyYW5zcG9ydERheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVHJhbnNwb3J0RGF5ID0gdHJhbnNwb3J0RGF5O1xyXG4gICAgaWYodGhpcy5zZWxlY3RlZFRyYW5zcG9ydERheSkge1xyXG4gICAgICB0aGlzLnNob3dTZXR0aW5nc0RpYWxvZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
392
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctbWFpbi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUNyRyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUM3RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUk5RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUMvRyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUNwRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFJN0csT0FBTyxFQUNMLHFDQUFxQyxFQUN0QyxNQUFNLHVGQUF1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Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQTNETyx1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLDJCQUEyQjtZQU0zQixhQUFhO1lBeEJuQixpQkFBaUI7WUFnQ1gsZ0JBQWdCOzs7b0JBbURyQixZQUFZLFNBQUMscUNBQXFDOzJCQUtsRCxTQUFTLFNBQUMsY0FBYzt5QkFHeEIsU0FBUyxTQUFDLFlBQVk7cUNBR3RCLFNBQVMsU0FBQyxlQUFlO3lCQU96QixLQUFLOzBCQUdMLEtBQUs7OEJBR0wsS0FBSztzQ0FHTCxLQUFLOzJDQUdMLE1BQU07MENBR04sTUFBTTt3QkE2Q04sV0FBVyxTQUFDLHFDQUFxQzt1QkFPakQsWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtDYWxlbmRhclZpZXd9IGZyb20gJ0Bjb2xpam5pdC9zaGFyZWRjb21wb25lbnRzJztcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nQ2FsZW5kYXJNb2Rlc30gZnJvbSBcIi4uLy4uLy4uLy4uL2VudW0vZGVsaXZlcnktcGxhbm5pbmctY2FsZW5kYXItbW9kZXMuZW51bVwiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXN9IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLXZpZXctbW9kZXMuZW51bVwiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vZGVsaXZlcnktcGxhbm5pbmcvc2VydmljZS9kZWxpdmVyeS1wbGFubmluZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge1BsYW5uaW5nVHJhbnNwb3J0V2Vla30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy10cmFuc3BvcnQtd2Vlay5ib1wiO1xyXG5pbXBvcnQge1BsYW5uaW5nVHJhbnNwb3J0V2Vla0RheX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy10cmFuc3BvcnQtd2Vlay1kYXkuYm9cIjtcclxuaW1wb3J0IHtQbGFuT3JkZXJ9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1vcmRlci5ib1wiO1xyXG5pbXBvcnQge0dldFRyYW5zcG9ydE9yZGVyc1JlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZ2V0LXRyYW5zcG9ydC1vcmRlcnMtcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge1BsYW5uaW5nRmlsdGVyT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLWZpbHRlci1vYmplY3QuYm9cIjtcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQge09yZGVyTGluZXNQbGFubmVkUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9vcmRlci1saW5lcy1wbGFubmVkLXJlcXVlc3QuYm9cIjtcclxuaW1wb3J0IHtcclxuICBEZWxpdmVyeVBsYW5uaW5nT3ZlcnZpZXdQb3B1cENvbXBvbmVudFxyXG59IGZyb20gXCIuL2NvbXBvbmVudC9kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy1wb3B1cC9kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy1wb3B1cC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtcclxuICBEZWxpdmVyeVBsYW5uaW5nT3ZlcnZpZXdUaWxlQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4vY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXRpbGUvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nVGlsZU1vZGVzfSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9kZWxpdmVyeS1wbGFubmluZy10aWxlLW1vZGVzLmVudW1cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy1wb3B1cCAjcGxhbm5pbmdQb3B1cCAqbmdJZj1cInNob3dOb3RlRGlhbG9nXCIgKGNsb3NlRXZlbnQpPVwic2hvd05vdGVEaWFsb2cgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uU3VjY2VlZGVkUGxhbkFjdGlvbik9XCJoYW5kbGVQb3B1cFBsYW5FdmVudCgkZXZlbnQpXCI+PC9jby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy1wb3B1cD5cclxuICAgIDxjby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlLXNldHRpbmdzLXBvcHVwICpuZ0lmPVwic2hvd1NldHRpbmdzRGlhbG9nXCIgW3RyYW5zcG9ydERheV09XCJzZWxlY3RlZFRyYW5zcG9ydERheVwiIChhdmFpbGFiaWxpdHlDaGVja2VkKT1cImhhbmRsZUF2YWlsYWJpbGl0eUNoZWNrZWQoJGV2ZW50KVwiIChvblNhdmVBY3Rpb24pPVwiaGFuZGxlU2V0dGluZ3NTYXZlKCRldmVudClcIiAoY2xvc2VFdmVudCk9XCJzaG93U2V0dGluZ3NEaWFsb2cgPSBmYWxzZVwiPjwvY28tZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS1zZXR0aW5ncy1wb3B1cD5cclxuICAgIDxkaXYgY2xhc3M9XCJkZWxpdmVyeS1vdmVydmlldy13cmFwcGVyXCIgW2NsYXNzLnNpZGViYXJdPVwiY3VycmVudFZpZXdNb2RlID09PSAnREFZU19BUk9VTkQnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aWxlLXZpZXctbW9kZXMgcm93XCI+XHJcbiAgICAgICAgPGNvLWljb24gKGNsaWNrKT1cImN1cnJlbnRUaWxlTW9kZSA9IHRpbGVNb2Rlcy5Ob3JtYWxcIiBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRUaWxlTW9kZSA9PT0gdGlsZU1vZGVzLk5vcm1hbFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2FsZW5kYXJMaW5lc1JlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICAgIDxjby1pY29uIChjbGljayk9XCJjdXJyZW50VGlsZU1vZGUgPSB0aWxlTW9kZXMuQ2FsZW5kYXJcIiBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRUaWxlTW9kZSA9PT0gdGlsZU1vZGVzLkNhbGVuZGFyXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DYWxlbmRhckRheVJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBsYW5uaW5nLWNvbXBvbmVudC13cmFwcGVyXCI+XHJcbiAgICAgICAgPGNvLWRhdGUtcGxhbm5pbmcgW3ZpZXddPVwiY3VycmVudFZpZXdNb2RlXCIgW3NlbGVjdGVkRGF0ZV09XCJkYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAocmFuZ2VDaGFuZ2UpPVwiaGFuZGxlRGF0ZVJhbmdlQ2hhbmdlKCRldmVudClcIj48L2NvLWRhdGUtcGxhbm5pbmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGRhdGUtcGxhbm5pbmdcIiAjcm93Q29udGFpbmVyICpuZ0Zvcj1cImxldCB0cmFuc3BvcnRXZWVrUm93IG9mIHBsYW5UcmFuc3BvcnRXZWVrXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiICNjb2x1bW5FbGVtXHJcbiAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdHJhbnNQb3J0RGF5IG9mIGZpbHRlcldlZWtBcnJheSh3ZWVrQXJyYXkodHJhbnNwb3J0V2Vla1JvdykpOyBpbmRleCBhcyBpXCI+XHJcbiAgICAgICAgICA8Y28tZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZVxyXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIXRyYW5zUG9ydERheS5hdmFpbGFibGVPbkRhdGUgfHwgdHJhbnNQb3J0RGF5Lm1heE1pbnV0ZXMgPT09IDAgfHwgY2hlY2tBdmFpbGFibGUodHJhbnNQb3J0RGF5KVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhdHJhbnNQb3J0RGF5LmF2YWlsYWJsZU9uRGF0ZSB8fCB0cmFuc1BvcnREYXkubWF4TWludXRlcyA9PT0gMFwiXHJcbiAgICAgICAgICAgIChkcmFnb3Zlcik9XCJhbGxvd0Ryb3AoJGV2ZW50LCB0cmFuc1BvcnREYXkpXCJcclxuICAgICAgICAgICAgKGRyb3ApPVwiZHJvcHBlZCgkZXZlbnQsIHRyYW5zcG9ydFdlZWtSb3csIHRyYW5zUG9ydERheSwgZmlsdGVyV2Vla0FycmF5KHdlZWtBcnJheSh0cmFuc3BvcnRXZWVrUm93KSkpXCJcclxuICAgICAgICAgICAgKGRyYWdlbmQpPVwiZHJhZ0VuZCgkZXZlbnQpXCJcclxuXHJcbiAgICAgICAgICAgIFt0cmFuc3BvcnREYXldPVwidHJhbnNQb3J0RGF5XCJcclxuICAgICAgICAgICAgKGRlbGV0ZUxpbmVFdmVudCk9XCJoYW5kbGVEZWxldGVPcmRlcigkZXZlbnQsIHRyYW5zcG9ydFdlZWtSb3cpXCJcclxuICAgICAgICAgICAgKHVwZGF0ZVBsYW5uaW5nVHJhbnNwb3J0V2Vlayk9XCJ1cGRhdGVQbGFubmluZ1RyYW5zcG9ydEV2ZW50LmVtaXQodHJhbnNwb3J0V2Vla1JvdylcIlxyXG4gICAgICAgICAgICAob3BlblNldHRpbmdzRGlhbG9nRXZlbnQpPVwib3BlblNldHRpbmdzRGlhbG9nKCRldmVudClcIlxyXG4gICAgICAgICAgICAoY2FsZW5kYXJQbGFuRXZlbnQpPVwiaGFuZGxlQ2FsZW5kYXJQbGFuRXZlbnQoJGV2ZW50LCB0cmFuc1BvcnREYXksIHRyYW5zcG9ydFdlZWtSb3cpXCJcclxuICAgICAgICAgID48L2NvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXRpbGU+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWxpdmVyeVBsYW5uaW5nT3ZlcnZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICBwdWJsaWMgcmVhZG9ubHkgdGlsZU1vZGVzOiB0eXBlb2YgRGVsaXZlcnlQbGFubmluZ1RpbGVNb2RlcyA9IERlbGl2ZXJ5UGxhbm5pbmdUaWxlTW9kZXM7XHJcbiAgcHVibGljIGRlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXM6IHR5cGVvZiBEZWxpdmVyeVBsYW5uaW5nVmlld01vZGVzID0gRGVsaXZlcnlQbGFubmluZ1ZpZXdNb2RlcztcclxuXHJcbiAgcHVibGljIGF2YWlsYWJpbGl0eToge3RyYW5zcG9ydERheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5LCBhdmFpbGFibGU6IGJvb2xlYW59W10gPSBbXTtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihEZWxpdmVyeVBsYW5uaW5nT3ZlcnZpZXdUaWxlQ29tcG9uZW50KVxyXG4gIHB1YmxpYyBzZXQgdGlsZXModGlsZXM6IFF1ZXJ5TGlzdDxEZWxpdmVyeVBsYW5uaW5nT3ZlcnZpZXdUaWxlQ29tcG9uZW50Pikge1xyXG4gICAgdGhpcy50aWxlc1F1ZXJ5TGlzdCA9IHRpbGVzO1xyXG4gIH07XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3Jvd0NvbnRhaW5lcicpIHJvd0NvbnRhaW5lcjtcclxuXHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbkVsZW0nKSBjb2x1bW5FbGVtO1xyXG4gIHB1YmxpYyBjb2x1bW5OdW0gPSAzOyAvL2luaXRpYWwgY291bnRcclxuXHJcbiAgQFZpZXdDaGlsZCgncGxhbm5pbmdQb3B1cCcpXHJcbiAgcHVibGljIHNldCBwbGFubmluZ1BvcHVwQ29tcG9uZW50KHZhbHVlOiBEZWxpdmVyeVBsYW5uaW5nT3ZlcnZpZXdQb3B1cENvbXBvbmVudCkge1xyXG4gICAgdGhpcy5wbGFubmluZ1BvcHVwUmVmID0gdmFsdWU7XHJcbiAgfTtcclxuXHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwbGFuT3JkZXJzOiBQbGFuT3JkZXJbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjdXJyZW50TW9kZTogRGVsaXZlcnlQbGFubmluZ0NhbGVuZGFyTW9kZXMgPSBEZWxpdmVyeVBsYW5uaW5nQ2FsZW5kYXJNb2Rlcy5XZWVrO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjdXJyZW50Vmlld01vZGU6IENhbGVuZGFyVmlldyA9IENhbGVuZGFyVmlldy5XZWVrVmlldztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY3VycmVudFBsYW5uaW5nVmlld01vZGU6IERlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXMgPSB0aGlzLmRlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXMuRnVsbHNjcmVlbjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHVwZGF0ZVBsYW5uaW5nVHJhbnNwb3J0RXZlbnQ6IEV2ZW50RW1pdHRlcjxQbGFubmluZ1RyYW5zcG9ydFdlZWs+ID0gbmV3IEV2ZW50RW1pdHRlcjxQbGFubmluZ1RyYW5zcG9ydFdlZWs+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZXNldFBsYW5uaW5nVHJhbnNwb3J0RXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHVibGljIHRpbGVTaXplID0gMzAwOyAvL29uZSB0aWxlIHNob3VsZCBoYXZlIHRoaXMgd2lkdGhcclxuICBwdWJsaWMgcGxhbm5pbmdQb3B1cFJlZjogRGVsaXZlcnlQbGFubmluZ092ZXJ2aWV3UG9wdXBDb21wb25lbnQ7XHJcblxyXG4gIHB1YmxpYyBkYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcclxuICBwdWJsaWMgYXZhaWxhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dOb3RlRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dTZXR0aW5nc0RpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyB0aWxlc1F1ZXJ5TGlzdDogUXVlcnlMaXN0PERlbGl2ZXJ5UGxhbm5pbmdPdmVydmlld1RpbGVDb21wb25lbnQ+O1xyXG4gIHB1YmxpYyBzZWxlY3RlZFRyYW5zcG9ydERheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5O1xyXG5cclxuICBwdWJsaWMgZ2V0IHBsYW5UcmFuc3BvcnRXZWVrKCkge1xyXG4gICAgaWYgKHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnBsYW5UcmFuc3BvcnRXZWVrLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UucGxhblRyYW5zcG9ydFdlZWs7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjdXJyZW50VGlsZU1vZGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFRpbGVNb2RlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBjdXJyZW50VGlsZU1vZGUodGlsZU1vZGUgOiBEZWxpdmVyeVBsYW5uaW5nVGlsZU1vZGVzKSB7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50VGlsZU1vZGUgPSB0aWxlTW9kZTtcclxuICB9XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kZWxpdmVyeVBsYW5uaW5nU2VydmljZTogRGVsaXZlcnlQbGFubmluZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF90cmFuc2FjdGlvbkNvbjogVHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgX2RpYWxvZzogRGlhbG9nU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2VcclxuICAgICAgICAgICAgICApIHtcclxuICB9XHJcblxyXG4gIC8vY2FsY3VsYXRpbmcgdXBvbiBsb2FkaW5nXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xyXG4gICAgdGhpcy5zZXRDb2xOdW0oKTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vcmVjYWxjdWxhdGluZyB1cG9uIGJyb3dzZXIgd2luZG93IHJlc2l6ZVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKGV2ZW50KSB7XHJcbiAgICB0aGlzLnNldENvbE51bSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBhc3luYyBkcm9wcGVkKGV2OiBEcmFnRXZlbnQsIHdlZWs6IFBsYW5uaW5nVHJhbnNwb3J0V2VlaywgdHJhbnNwb3J0RGF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXksIHRyYW5zcG9ydERheXM6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheVtdKSB7XHJcbiAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5kcmFnZ2luZyA9IGZhbHNlO1xyXG4gICAgICBjb25zdCBkYXRhID0gZXYuZGF0YVRyYW5zZmVyLmdldERhdGEoXCJ0ZXh0XCIpO1xyXG4gICAgICBsZXQgaW5kZXggPSB0cmFuc3BvcnREYXlzLmluZGV4T2YodHJhbnNwb3J0RGF5KVxyXG4gICAgICBsZXQgdGlsZSA9IHRoaXMudGlsZXNRdWVyeUxpc3QuZ2V0KGluZGV4KTtcclxuICAgICAgaWYgKCF0aWxlLmV4cGFuZGVkKSB7XHJcbiAgICAgICAgdGlsZS5leHBhbmRlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGRhdGEgIT0gXCJsaW5lc1wiKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb24uZ2V0VHJhbnNhY3Rpb25CeUlkKHBhcnNlSW50KGRhdGEpKVxyXG4gICAgICAgIGNvbnN0IHBsYW5PcmRlciA9IGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uQ29uLmdldFBsYW5PcmRlcihwYXJzZUludChkYXRhKSlcclxuXHJcbiAgICAgICAgaWYgKHBsYW5PcmRlcikge1xyXG4gICAgICAgICAgdGhpcy5vcGVuUGxhbm5pbmdQb3B1cChwbGFuT3JkZXIsIHRyYW5zcG9ydERheSwgd2Vlayk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbi5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcy5maW5kKHRyYW5zYWN0aW9uTGluZSA9PiB0cmFuc2FjdGlvbkxpbmUuc2VsZWN0ZWQpKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnBsYW5TZWxlY3RlZExpbmVzKHRyYW5zcG9ydERheSwgd2VlaylcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWxsb3dEcm9wKGV2LCB0cmFuc3BvcnREYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSkge1xyXG4gICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgIGlmICh0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5kcmFnZ2luZyAmJiB0cmFuc3BvcnREYXkubWF4TWludXRlcyA+IDAgJiYgdHJhbnNwb3J0RGF5LmF2YWlsYWJsZU9uRGF0ZSkge1xyXG4gICAgICByZXR1cm4gdHJhbnNwb3J0RGF5Lm1pbnV0ZXMgKyB0cmFuc3BvcnREYXkubWludXRlcyA8IHRyYW5zcG9ydERheS5tYXhNaW51dGVzICYmIHRyYW5zcG9ydERheS5tYXhPcmRlckFtb3VudCA8IHRyYW5zcG9ydERheS5vcmRlckFtb3VudCAmJiB0cmFuc3BvcnREYXkuYXZhaWxhYmxlT25EYXRlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBzZXRDb2xOdW0oKSB7XHJcbiAgICBpZiAodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2Uudmlld01vZGUgPT09IERlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXMuU2lkZWJhcikge1xyXG4gICAgICB0aGlzLmNvbHVtbk51bSA9IDE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgd2lkdGggPSB0aGlzLnJvd0NvbnRhaW5lcj8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0V2lkdGg7XHJcbiAgICAgIGlmICh3aWR0aCkge1xyXG4gICAgICAgIHRoaXMuY29sdW1uTnVtID0gTWF0aC50cnVuYyh3aWR0aCAvIHRoaXMudGlsZVNpemUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGRyYWdFbmQoZXYpIHtcclxuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5kcmFnZ2luZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyB3ZWVrQXJyYXkoYXJyOiBQbGFubmluZ1RyYW5zcG9ydFdlZWspOiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXlbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoYXJyKS5zb3J0KCkubWFwKGtleSA9PiBhcnJba2V5XSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmlsdGVyV2Vla0FycmF5KHdlZWtBcnJheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5W10pIHtcclxuICAgIHJldHVybiB3ZWVrQXJyYXkuc2xpY2UoMCwgdGhpcy5jb2x1bW5OdW0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEhvdXJzKGRhdGUsIGhvdXJzKSB7XHJcbiAgICBjb25zdCBob3Vyc1RvQWRkID0gaG91cnMgKiA2MCAqIDYwICogMTAwMDtcclxuICAgIGRhdGUuc2V0VGltZShkYXRlLmdldFRpbWUoKSArIGhvdXJzVG9BZGQpO1xyXG4gICAgcmV0dXJuIGRhdGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRGF0ZVJhbmdlQ2hhbmdlKG5ld0RhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRTdGFydERhdGUgPSBuZXdEYXRlO1xyXG4gICAgdGhpcy5yZXNldFBsYW5uaW5nVHJhbnNwb3J0RXZlbnQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZURlbGV0ZU9yZGVyKGRlbGV0ZVJlc3VsdDogW1BsYW5PcmRlciwgUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5XSwgcGxhbm5pbmdUcmFuc3BvcnRXZWVrOiBQbGFubmluZ1RyYW5zcG9ydFdlZWspIHtcclxuICAgIGxldCBvcmRlciA9IGRlbGV0ZVJlc3VsdFswXTtcclxuICAgIGlmIChvcmRlcikge1xyXG4gICAgICBhd2FpdCB0aGlzLmdldFRyYW5zcG9ydE9yZGVycyhkZWxldGVSZXN1bHRbMF0sIGRlbGV0ZVJlc3VsdFsxXSk7XHJcbiAgICAgIGF3YWl0IHRoaXMuZ2V0T3JkZXJMaW5lc1BsYW5uZWQob3JkZXIpO1xyXG4gICAgICBpZiAoZGVsZXRlUmVzdWx0WzBdLmxpbmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBvcmRlcj8ubGluZXMuZm9yRWFjaChsaW5lID0+IHtcclxuICAgICAgICAgIGxpbmUucGxhbm5lZCA9IGZhbHNlO1xyXG4gICAgICAgICAgbGluZS5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG9yZGVyLmxpbmVzID0gW11cclxuICAgICAgICBkZWxldGVSZXN1bHRbMV0ucGxhbm5lZE9yZGVycy5zcGxpY2UoZGVsZXRlUmVzdWx0WzFdLnBsYW5uZWRPcmRlcnMuaW5kZXhPZihvcmRlciksIDEpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlUGxhbm5pbmdUcmFuc3BvcnRFdmVudC5lbWl0KHBsYW5uaW5nVHJhbnNwb3J0V2Vlayk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLnNob3dFcnJvcihcIk5PX0xJTkVTX1RPX0RFTEVURVwiLCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldE9yZGVyTGluZXNQbGFubmVkKG9yZGVyOiBQbGFuT3JkZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCByZXF1ZXN0OiBPcmRlckxpbmVzUGxhbm5lZFJlcXVlc3QgPSBuZXcgT3JkZXJMaW5lc1BsYW5uZWRSZXF1ZXN0KCk7XHJcbiAgICBsZXQgZmlsdGVyT2JqOiBQbGFubmluZ0ZpbHRlck9iamVjdCA9IG5ldyBQbGFubmluZ0ZpbHRlck9iamVjdCgpO1xyXG4gICAgcmVxdWVzdC5wbGFubmVkID0gdHJ1ZTtcclxuICAgIHJlcXVlc3QucGxhbm5pbmdJZCA9IHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRQbGFubmluZy5wbGFubmluZ0lkO1xyXG4gICAgcmVxdWVzdC50cmFuc0lkID0gb3JkZXIudHJhbnNJZDtcclxuICAgIHJlcXVlc3QucGxhbm5lZExpbmVJZCA9IG9yZGVyLnBsYW5uZWRMaW5lSWQ7XHJcbiAgICBmaWx0ZXJPYmoub25seUN1cnJlbnRXZWVrID0gdHJ1ZTtcclxuICAgIGZpbHRlck9iai5iZWdpbkN1cnJlbnRXZWVrID0gbmV3IERhdGUoKTtcclxuICAgIGZpbHRlck9iai5jaGVja09yZGVyTGluZXMgPSAxO1xyXG4gICAgcmVxdWVzdC5maWx0ZXJPYmplY3QgPSBmaWx0ZXJPYmo7XHJcbiAgICBvcmRlci5saW5lcy5wdXNoKC4uLmF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uQ29uLmdldE9yZGVyTGluZXNQbGFubmVkKHJlcXVlc3QpKTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0VHJhbnNwb3J0T3JkZXJzKG9yZGVyOiBQbGFuT3JkZXIsIHRyYW5zcG9ydERheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgcmVxdWVzdDogR2V0VHJhbnNwb3J0T3JkZXJzUmVxdWVzdCA9IG5ldyBHZXRUcmFuc3BvcnRPcmRlcnNSZXF1ZXN0KCk7XHJcbiAgICByZXF1ZXN0LnBsYW5uaW5nSWQgPSB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50UGxhbm5pbmcucGxhbm5pbmdJZDtcclxuICAgIHJlcXVlc3QuZGF0ZSA9IHRyYW5zcG9ydERheS5kYXRlO1xyXG4gICAgcmVxdWVzdC50cmFuc3BvcnRJZCA9IHRyYW5zcG9ydERheS50cmFuc3BvcnQudHJhbnNwb3J0SWQ7XHJcbiAgICB0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycyA9IGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uQ29uLmdldFRyYW5zcG9ydE9yZGVycyhyZXF1ZXN0KTtcclxuICAgIHRyYW5zcG9ydERheS5vcmRlcnNMb2FkZWQgPSB0cnVlO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBwbGFuT3JkZXJMaW5lcyhvcmRlcjogUGxhbk9yZGVyLCB0cmFuc3BvcnREYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSwgd2VlazogUGxhbm5pbmdUcmFuc3BvcnRXZWVrKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAob3JkZXIubGluZXMubGVuZ3RoKSB7XHJcbiAgICAgIG9yZGVyLmxpbmVzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgb3JkZXIudGFza3MgPSBbXTtcclxuICAgICAgb3JkZXIudGFza3NMb2FkZWQgPSB0cnVlO1xyXG4gICAgICBvcmRlci5saW5lcy5mb3JFYWNoKGxpbmUgPT4ge1xyXG4gICAgICAgIGxpbmUuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCF0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycyB8fCB0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycyA9IFtvcmRlcl07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdHJhbnNwb3J0RGF5LnBsYW5uZWRPcmRlcnMucHVzaChvcmRlcik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51cGRhdGVQbGFubmluZ1RyYW5zcG9ydEV2ZW50LmVtaXQod2Vlayk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9kaWFsb2cuc2hvd0Vycm9yKFwiTk9fTElORVNfVE9fUExBTlwiLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBwbGFuU2VsZWN0ZWRMaW5lcyh0cmFuc3BvcnREYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSwgd2VlazogUGxhbm5pbmdUcmFuc3BvcnRXZWVrKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgcGxhbk9yZGVyID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25Db24uZ2V0UGxhbk9yZGVyKHRoaXMuX3RyYW5zYWN0aW9uLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQpO1xyXG4gICAgbGV0IGxpbmVzVG9QbGFuID0gcGxhbk9yZGVyLmxpbmVzO1xyXG4gICAgcGxhbk9yZGVyLmxpbmVzID0gW107XHJcblxyXG4gICAgYXdhaXQgdGhpcy5nZXRUcmFuc3BvcnRPcmRlcnMocGxhbk9yZGVyLCB0cmFuc3BvcnREYXkpO1xyXG4gICAgYXdhaXQgdGhpcy5nZXRTZXF1ZW5jZU9yZGVyVmFsdWUocGxhbk9yZGVyKTtcclxuICAgIGF3YWl0IHRoaXMuZ2V0T3JkZXJMaW5lc1BsYW5uZWQocGxhbk9yZGVyKTtcclxuXHJcbiAgICBsZXQgb3JpZ2luYWxQbGFubmVkTGluZUNvdW50ID0gcGxhbk9yZGVyLmxpbmVzLmxlbmd0aDtcclxuXHJcbiAgICBpZiAoIXRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzLmZpbmQob3JkZXIgPT4gb3JkZXIudHJhbnNJZCA9PT0gcGxhbk9yZGVyLnRyYW5zSWQpKSB7XHJcbiAgICAgIHRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzLnB1c2gocGxhbk9yZGVyKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKGxpbmVzVG9QbGFuLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb24uY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXMuZmlsdGVyKHRyYW5zTGluZXMgPT4gdHJhbnNMaW5lcy5zZWxlY3RlZCkuZm9yRWFjaChzZWxlY3RlZFRyYW5zTGluZSA9PiB7XHJcbiAgICAgICAgaWYgKGxpbmVzVG9QbGFuLmZpbmQocGxhbkxpbmUgPT4gcGxhbkxpbmUub3JpZ2luYWxMaW5lTnIgPT09IHNlbGVjdGVkVHJhbnNMaW5lLmxpbmVOcikpIHtcclxuICAgICAgICAgIGxldCBtYXRjaGVkTGluZSA9IGxpbmVzVG9QbGFuLmZpbmQocGxhbkxpbmUgPT4gcGxhbkxpbmUub3JpZ2luYWxMaW5lTnIgPT09IHNlbGVjdGVkVHJhbnNMaW5lLmxpbmVOcik7XHJcbiAgICAgICAgICBpZiAoIXBsYW5PcmRlci5saW5lcy5maW5kKHBsYW5uZWRMaW5lID0+IHBsYW5uZWRMaW5lLm9yaWdpbmFsTGluZU5yID09PSBtYXRjaGVkTGluZS5vcmlnaW5hbExpbmVOcikpIHtcclxuICAgICAgICAgICAgbWF0Y2hlZExpbmUuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycy5maW5kKG9yZGVyID0+IG9yZGVyLnRyYW5zSWQgPT09IG1hdGNoZWRMaW5lLnRyYW5zSWQpLmxpbmVzLnB1c2gobWF0Y2hlZExpbmUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBjb3JyZWN0T3JkZXI6IFBsYW5PcmRlciA9IHRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzLmZpbmQoIG9yZGVyID0+IG9yZGVyLnRyYW5zYWN0aW9uTnIgPT09IHBsYW5PcmRlci50cmFuc2FjdGlvbk5yKTtcclxuICAgICAgdHJhbnNwb3J0RGF5LnBsYW5uZWRPcmRlcnMuc3BsaWNlKHRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzLmluZGV4T2YoY29ycmVjdE9yZGVyKSwgMSk7XHJcblxyXG4gICAgICBpZiAoY29ycmVjdE9yZGVyLmxpbmVzLmxlbmd0aCA+IG9yaWdpbmFsUGxhbm5lZExpbmVDb3VudCkge1xyXG4gICAgICAgIHRoaXMub3BlblBsYW5uaW5nUG9wdXAoY29ycmVjdE9yZGVyLCB0cmFuc3BvcnREYXksIHdlZWspO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9kaWFsb2cuc2hvd0Vycm9yKFwiTk9fTElORVNfVE9fUExBTlwiLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTZXF1ZW5jZU9yZGVyVmFsdWUob3JkZXI6IFBsYW5PcmRlcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgb3JkZXIucGxhbm5lZExpbmVJZCA9IGF3YWl0IHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmdldE9yZGVyU2VxdWVuY2VWYWx1ZSgpO1xyXG4gICAgb3JkZXIuY2hhaW5lZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVQb3B1cFBsYW5FdmVudChldmVudDogW1BsYW5PcmRlciwgUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5LCBQbGFubmluZ1RyYW5zcG9ydFdlZWtdKSB7XHJcbiAgICB0aGlzLnNob3dOb3RlRGlhbG9nID0gZmFsc2U7XHJcbiAgICBhd2FpdCB0aGlzLmdldFRyYW5zcG9ydE9yZGVycyhldmVudFswXSwgZXZlbnRbMV0pO1xyXG4gICAgYXdhaXQgdGhpcy5nZXRTZXF1ZW5jZU9yZGVyVmFsdWUoZXZlbnRbMF0pXHJcbiAgICBhd2FpdCB0aGlzLmdldE9yZGVyTGluZXNQbGFubmVkKGV2ZW50WzBdKVxyXG4gICAgYXdhaXQgdGhpcy5wbGFuT3JkZXJMaW5lcyhldmVudFswXSwgZXZlbnRbMV0sIGV2ZW50WzJdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTZXR0aW5nc1NhdmUoY2hhbmdlZDogYm9vbGVhbikge1xyXG4gICAgaWYoY2hhbmdlZCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVBsYW5uaW5nVHJhbnNwb3J0RXZlbnQuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5TZXR0aW5nc0RpYWxvZyh0cmFuc3BvcnREYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRyYW5zcG9ydERheSA9IHRyYW5zcG9ydERheTtcclxuICAgIGlmKHRoaXMuc2VsZWN0ZWRUcmFuc3BvcnREYXkpIHtcclxuICAgICAgdGhpcy5zaG93U2V0dGluZ3NEaWFsb2cgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZUNhbGVuZGFyUGxhbkV2ZW50KGRhdGE6e2N1cnJlbnRIb3VyOiBzdHJpbmcsIGRhdGE6IHN0cmluZ30sIHRyYW5zcG9ydFdlZWtEYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSwgd2VlazogUGxhbm5pbmdUcmFuc3BvcnRXZWVrKSB7XHJcbiAgICBsZXQgcGxhbk9yZGVyOiBQbGFuT3JkZXI7XHJcbiAgICBpZihkYXRhLmRhdGEgPT09IFwiZmFsc2VcIiAmJiB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50VHJhbnNJZCkge1xyXG4gICAgICBwbGFuT3JkZXIgPSBhd2FpdCB0aGlzLl90cmFuc2FjdGlvbkNvbi5nZXRQbGFuT3JkZXIodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2U/LmN1cnJlbnRUcmFuc0lkKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcGxhbk9yZGVyID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25Db24uZ2V0UGxhbk9yZGVyKHBhcnNlSW50KGRhdGEuZGF0YSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKHBsYW5PcmRlciAmJiBkYXRhLmN1cnJlbnRIb3VyKSB7XHJcblxyXG5cclxuICAgICAgcGxhbk9yZGVyLnN0YXJ0VGltZSA9IHRoaXMuY2FsY3VsYXRlU3RhcnRUaW1lKHRyYW5zcG9ydFdlZWtEYXksIGRhdGEuY3VycmVudEhvdXIpO1xyXG4gICAgICBwbGFuT3JkZXIuZW5kVGltZSA9IHRoaXMuY2FsY3VsYXRlRW5kVGltZShwbGFuT3JkZXIuc3RhcnRUaW1lLCBkYXRhLmN1cnJlbnRIb3VyLCBwbGFuT3JkZXIpO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5nZXRUcmFuc3BvcnRPcmRlcnMocGxhbk9yZGVyLCB0cmFuc3BvcnRXZWVrRGF5KTtcclxuICAgICAgYXdhaXQgdGhpcy5nZXRTZXF1ZW5jZU9yZGVyVmFsdWUocGxhbk9yZGVyKVxyXG4gICAgICBhd2FpdCB0aGlzLmdldE9yZGVyTGluZXNQbGFubmVkKHBsYW5PcmRlcilcclxuICAgICAgYXdhaXQgdGhpcy5wbGFuT3JkZXJMaW5lcyhwbGFuT3JkZXIsIHRyYW5zcG9ydFdlZWtEYXksIHdlZWspO1xyXG4gICAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50VHJhbnNJZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYWxjdWxhdGVTdGFydFRpbWUodHJhbnNwb3J0V2Vla0RheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5LCBjdXJyZW50SG91cjogc3RyaW5nKTogRGF0ZSB7XHJcbiAgICBsZXQgc3RhcnREYXRlOiBEYXRlID0gbmV3IERhdGUodHJhbnNwb3J0V2Vla0RheS5kYXRlKTtcclxuICAgIGxldCBzdGFydFRpbWU6IG51bWJlciA9IHBhcnNlSW50KGN1cnJlbnRIb3VyLnNwbGl0KFwiOlwiKVswXSlcclxuICAgIHN0YXJ0RGF0ZS5zZXRIb3VycyhzdGFydFRpbWUpO1xyXG4gICAgc3RhcnREYXRlLnNldE1pbnV0ZXMocGFyc2VJbnQoY3VycmVudEhvdXIuc3BsaXQoXCI6XCIpWzFdKSA+IDAgPyBwYXJzZUludChjdXJyZW50SG91ci5zcGxpdChcIjpcIilbMV0pIDogMCk7XHJcbiAgICBzdGFydERhdGUuc2V0U2Vjb25kcygwKTtcclxuXHJcbiAgICByZXR1cm4gc3RhcnREYXRlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbGN1bGF0ZUVuZFRpbWUoc3RhcnREYXRlOiBEYXRlLCBjdXJyZW50SG91cjogc3RyaW5nLCBwbGFuT3JkZXI6IFBsYW5PcmRlcik6IERhdGUge1xyXG4gICAgbGV0IGVuZFRpbWU6IERhdGUgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xyXG5cclxuICAgIGxldCBzcGxpdEhvdXIgPSBjdXJyZW50SG91ci5zcGxpdChcIjpcIik7XHJcbiAgICBjb25zdCBuZXdFbmRNaW51dGVzID0gc3BsaXRIb3VyWzFdID09PSBcIjAwXCIgPyAzMCA6IDAgO1xyXG4gICAgY29uc3QgbmV3RW5kSG91ciA9IHNwbGl0SG91clsxXSA9PT0gXCIzMFwiID8gKHBhcnNlSW50KHNwbGl0SG91clswXSkgKyAxKSA6IHBhcnNlSW50KHNwbGl0SG91clswXSk7XHJcbiAgICBlbmRUaW1lLnNldEhvdXJzKG5ld0VuZEhvdXIpO1xyXG4gICAgZW5kVGltZS5zZXRNaW51dGVzKG5ld0VuZE1pbnV0ZXMpO1xyXG4gICAgbGV0IGFzc2VtYmx5VGltZSA9IHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnRvdGFsQXNzZW1ibHlUaW1lKHBsYW5PcmRlcikgKiA2MCAqIDEwMDA7XHJcbiAgICBlbmRUaW1lLnNldFRpbWUoZW5kVGltZS5nZXRUaW1lKCkgKyBhc3NlbWJseVRpbWUpO1xyXG5cclxuICAgIHJldHVybiBlbmRUaW1lO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBvcGVuUGxhbm5pbmdQb3B1cChwbGFuT3JkZXI6IFBsYW5PcmRlciwgdHJhbnNwb3J0RGF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXksIHdlZWs6IFBsYW5uaW5nVHJhbnNwb3J0V2Vlaykge1xyXG4gICAgdGhpcy5zaG93Tm90ZURpYWxvZyA9IHRydWU7XHJcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIGlmICh0aGlzLnBsYW5uaW5nUG9wdXBSZWYpIHtcclxuICAgICAgdGhpcy5wbGFubmluZ1BvcHVwUmVmLnBsYW5PcmRlciA9IHBsYW5PcmRlcjtcclxuICAgICAgdGhpcy5wbGFubmluZ1BvcHVwUmVmLnRyYW5zcG9ydERheSA9IHRyYW5zcG9ydERheTtcclxuICAgICAgdGhpcy5wbGFubmluZ1BvcHVwUmVmLndlZWsgPSB3ZWVrO1xyXG4gICAgICB0aGlzLnBsYW5uaW5nUG9wdXBSZWYudHJhbnNhY3Rpb24gPSB0aGlzLl90cmFuc2FjdGlvbi5jdXJyZW50VHJhbnNhY3Rpb247XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQXZhaWxhYmlsaXR5Q2hlY2tlZCh2YWx1ZToge3RyYW5zcG9ydERheTpQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXksIGF2YWlsYWJsZTogYm9vbGVhbn0pIHtcclxuICAgIHRoaXMuYXZhaWxhYmlsaXR5LnB1c2godmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrQXZhaWxhYmxlKHRyYW5zcG9ydERheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5KSB7XHJcbiAgICBsZXQgdHJhbnNwb3J0ID0gdGhpcy5hdmFpbGFiaWxpdHkuZmluZCggdHJhbnNwb3J0T2JqZWN0ID0+IHRyYW5zcG9ydE9iamVjdC50cmFuc3BvcnREYXkgPT09IHRyYW5zcG9ydERheSk7XHJcbiAgICBpZih0cmFuc3BvcnQgJiYgIXRyYW5zcG9ydC5hdmFpbGFibGUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -89,6 +89,7 @@ DialogTransactionLineWarehouseCcComponent.decorators = [
|
|
|
89
89
|
[transactionLine]="transactionLine"
|
|
90
90
|
[value]="warehouse"
|
|
91
91
|
[useModel]="false"
|
|
92
|
+
[transactionInfo]="transactionInfo"
|
|
92
93
|
(valueChange)="handleWarehouseChange($event)"></co-transaction-line-warehouse>
|
|
93
94
|
</div>
|
|
94
95
|
</co-dialog>
|
|
@@ -121,4 +122,4 @@ DialogTransactionLineWarehouseCcComponent.propDecorators = {
|
|
|
121
122
|
transactionKind: [{ type: Input }],
|
|
122
123
|
showClass: [{ type: HostBinding, args: ["class.co-dialog-transaction-line-warehouse-cc",] }]
|
|
123
124
|
};
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXRyYW5zYWN0aW9uLWxpbmUtd2FyZWhvdXNlLWNjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2RpYWxvZy90cmFuc2FjdGlvbi1saW5lL2RpYWxvZy10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1jYy9kaWFsb2ctdHJhbnNhY3Rpb24tbGluZS13YXJlaG91c2UtY2MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDakYsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDcEcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBb0UxRixNQUFNLE9BQU8seUNBQTBDLFNBQVEsOEJBQThCO0lBakU3Rjs7UUFvRVMsb0JBQWUsR0FBb0IsZUFBZSxDQUFDLFVBQVUsQ0FBQztRQU85RCxhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFHckIsMkJBQXNCLEdBQVksS0FBSyxDQUFDO1FBQ3hDLG1CQUFjLEdBQVksS0FBSyxDQUFDO0lBMEN6QyxDQUFDO0lBbkRRLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFTSyxRQUFROztZQUNaLGlIQUFpSDtRQUNuSCxDQUFDO0tBQUE7SUFFTSxtQkFBbUIsQ0FBQyxLQUFjO1FBQ3ZDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVNLG9CQUFvQixDQUFDLEtBQVU7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVNLDBCQUEwQixDQUFDLEtBQVU7UUFDMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVNLHFCQUFxQixDQUFDLEtBQVU7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVNLGFBQWE7UUFDbEIsTUFBTSxNQUFNLEdBQUc7WUFDYixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUztTQUM1QixDQUFBO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUF3QjtRQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVTLGtCQUFrQjtRQUMxQixLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO1FBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUM7UUFDMUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQztJQUN4RCxDQUFDOzs7WUF6SEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx5Q0FBeUM7Z0JBQ25ELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNERUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7OEJBR0UsS0FBSzt3QkFHTCxXQUFXLFNBQUMsK0NBQStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QXBwUG9wdXBCdXR0b25UeXBlfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VudW0vYXBwLXBvcHVwLWJ1dHRvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQge0RpYWxvZ1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vY29yZS9iYXNlL2RpYWxvZy10cmFuc2FjdGlvbi1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge0ludGVybmFsUGFyYW19IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL2ludGVybmFsLXBhcmFtLmVudW1cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLWRpYWxvZy10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1jY1wiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tZGlhbG9nXHJcbiAgICAgIFtjdXN0b21Dc3NDbGFzc109XCInY28tc21hbGwtc2Nyb2xsYmFyJ1wiXHJcbiAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJkaWFsb2dIZWFkZXJcIlxyXG4gICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIlxyXG4gICAgICAoY2xvc2VDbGljayk9XCJoYW5kbGVDbG9zZURpYWxvZygkZXZlbnQsIGJ1dHRvblR5cGUuQ2FuY2VsKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS13YXJlaG91c2UtY2Mtc2VjdGlvbiBmbGV4XCI+XHJcbiAgICAgICAgPGNvLWlucHV0LW51bWJlci1waWNrZXJcclxuICAgICAgICAgIGNsYXNzPVwicXVhbnRpdHktbnVtYmVyLXBpY2tlclwiXHJcbiAgICAgICAgICBbKG1vZGVsKV09XCJxdWFudGl0eVwiIFttaW5dPVwiMVwiXHJcbiAgICAgICAgICBbZGVjaW1hbHNdPVwiZGVjaW1hbHNcIlxyXG4gICAgICAgICAgW2xlZnRJY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2FydFNob3BwaW5nUmVndWxhcilcIlxyXG4gICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZVF1YW50aXR5Q2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICA8L2NvLWlucHV0LW51bWJlci1waWNrZXI+XHJcbiAgICAgICAgPGNvLWJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93RGlyZWN0U2VsbFwiXHJcbiAgICAgICAgICBjbGFzcz1cImJvcmRlcmVkXCJcclxuICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuSW5kdXN0cnlSZWd1bGFyKVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZGlyZWN0U2VsbE1vZGFsVmlzaWJsZSA9IHRydWVcIj5cclxuICAgICAgICA8L2NvLWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1jYy1zZWN0aW9uXCIgKm5nSWY9XCJ0cmFuc2FjdGlvbktpbmQgIT09IHRyYW5zS2luZC5QdXJjaGFzZU9yZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtd2FyZWhvdXNlLWNjLXNlY3Rpb24tbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0NPTU1JU1NJT05fQ09ERScgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWNvbW1pc3Npb24tY29kZVxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cImNvbW1pc3Npb25Db2RlXCJcclxuICAgICAgICAgIFt1c2VNb2RlbF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiaGFuZGxlQ29tbWlzc2lvbkNvZGVDaGFuZ2UoJGV2ZW50KVwiPjwvY28tdHJhbnNhY3Rpb24tbGluZS1jb21taXNzaW9uLWNvZGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS13YXJlaG91c2UtY2Mtc2VjdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1jYy1zZWN0aW9uLWxhYmVsXCIgW3RleHRDb250ZW50XT1cIidXQVJFSE9VU0UnIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS13YXJlaG91c2VcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJ3YXJlaG91c2VcIlxyXG4gICAgICAgICAgW3VzZU1vZGVsXT1cImZhbHNlXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVXYXJlaG91c2VDaGFuZ2UoJGV2ZW50KVwiPjwvY28tdHJhbnNhY3Rpb24tbGluZS13YXJlaG91c2U+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9jby1kaWFsb2c+XHJcbiAgICA8bmctdGVtcGxhdGUgI2RpYWxvZ0hlYWRlcj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1oZWFkZXItdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwiJ0NPTU1JU1NJT05fQ09ERV9XQVJFSE9VU0VfU0VMRUNUSU9OJyB8IGxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1mb290ZXItYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic2F2ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCJcclxuICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPa0NsaWNrKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3Nza2lubnkpXCJcclxuICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDbG9zZURpYWxvZygkZXZlbnQsIGJ1dHRvblR5cGUuQ2FuY2VsKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPGNvLWRpYWxvZy1zZWxsXHJcbiAgICAgICpuZ0lmPVwiZGlyZWN0U2VsbE1vZGFsVmlzaWJsZVwiXHJcbiAgICAgIFt0cmFuc2FjdGlvblV1aWRdPVwidHJhbnNhY3Rpb25JbmZvLnV1aWRcIlxyXG4gICAgICBbbGluZVV1aWRdPVwidHJhbnNhY3Rpb25MaW5lLnV1aWRcIlxyXG4gICAgICBbZ29vZElkXT1cInRyYW5zYWN0aW9uTGluZS5nb29kSWRcIlxyXG4gICAgICAoc2hvd0RpcmVjdFNlbGxNb2RhbCk9XCJzaG93RGlyZWN0U2VsbE1vZGFsKCRldmVudClcIj5cclxuICAgIDwvY28tZGlhbG9nLXNlbGw+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dUcmFuc2FjdGlvbkxpbmVXYXJlaG91c2VDY0NvbXBvbmVudCBleHRlbmRzIERpYWxvZ1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uS2luZDogVHJhbnNhY3Rpb25LaW5kID0gVHJhbnNhY3Rpb25LaW5kLlNhbGVzT3JkZXI7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWRpYWxvZy10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1jY1wiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBxdWFudGl0eTogbnVtYmVyID0gMTtcclxuICBwdWJsaWMgZGVjaW1hbHM6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGNvbW1pc3Npb25Db2RlOiBzdHJpbmc7XHJcbiAgcHVibGljIHdhcmVob3VzZTogbnVtYmVyO1xyXG4gIHB1YmxpYyBkaXJlY3RTZWxsTW9kYWxWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dEaXJlY3RTZWxsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gdGhpcy5zaG93RGlyZWN0U2VsbCA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEludGVybmFsUGFyYW1ldGVyKEludGVybmFsUGFyYW0uU2VsbERpcmVjdGx5RnJvbVN1cHBsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93RGlyZWN0U2VsbE1vZGFsKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpcmVjdFNlbGxNb2RhbFZpc2libGUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVRdWFudGl0eUNoYW5nZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnF1YW50aXR5ID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ29tbWlzc2lvbkNvZGVDaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5jb21taXNzaW9uQ29kZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVdhcmVob3VzZUNoYW5nZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLndhcmVob3VzZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZU9rQ2xpY2soKTogdm9pZCB7XHJcbiAgICBjb25zdCBvdXRwdXQgPSB7XHJcbiAgICAgIHF1YW50aXR5OiB0aGlzLnF1YW50aXR5LFxyXG4gICAgICBjb21taXNzaW9uQ29kZTogdGhpcy5jb21taXNzaW9uQ29kZSxcclxuICAgICAgd2FyZWhvdXNlTnI6IHRoaXMud2FyZWhvdXNlLFxyXG4gICAgfVxyXG4gICAgdGhpcy5vbkNsb3NlKEFwcFBvcHVwQnV0dG9uVHlwZS5Paywgb3V0cHV0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDbG9zZSh0eXBlOiBBcHBQb3B1cEJ1dHRvblR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xyXG4gICAgdGhpcy5vbkNsb3NlKHR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uTGluZVNldCgpIHtcclxuICAgIHN1cGVyLnRyYW5zYWN0aW9uTGluZVNldCgpO1xyXG4gICAgdGhpcy5xdWFudGl0eSA9IHRoaXMudHJhbnNhY3Rpb25MaW5lLmFtb3VudDtcclxuICAgIHRoaXMuY29tbWlzc2lvbkNvZGUgPSB0aGlzLnRyYW5zYWN0aW9uTGluZS5jb21taXNzaW9uQ29kZTtcclxuICAgIHRoaXMud2FyZWhvdXNlID0gdGhpcy50cmFuc2FjdGlvbkxpbmUud2FyZWhvdXNlTnVtYmVyO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -27,6 +27,7 @@ export class TransactionComponent {
|
|
|
27
27
|
this.showButtonBar = true;
|
|
28
28
|
this.showSaveCancelLabels = false;
|
|
29
29
|
this.saveCancelMovable = false;
|
|
30
|
+
this.transactionPlanning = false;
|
|
30
31
|
this.screenConfigLoaded = false;
|
|
31
32
|
}
|
|
32
33
|
set confirmationAnalysisId(value) {
|
|
@@ -116,6 +117,7 @@ TransactionComponent.decorators = [
|
|
|
116
117
|
[showViewModeButtons]="showViewModeButtons"
|
|
117
118
|
[confirmationAnalysisId]="confirmationAnalysisId"
|
|
118
119
|
[posOrderData]="posOrderData"
|
|
120
|
+
[transactionPlanning]="transactionPlanning"
|
|
119
121
|
></co-transaction-internal>
|
|
120
122
|
`,
|
|
121
123
|
providers: [
|
|
@@ -147,8 +149,9 @@ TransactionComponent.propDecorators = {
|
|
|
147
149
|
cancelIconData: [{ type: Input }],
|
|
148
150
|
showSaveCancelLabels: [{ type: Input }],
|
|
149
151
|
saveCancelMovable: [{ type: Input }],
|
|
152
|
+
transactionPlanning: [{ type: Input }],
|
|
150
153
|
showClass: [{ type: HostBinding, args: ['class.co-transaction',] }],
|
|
151
154
|
checkTransaction: [{ type: HostListener, args: ['window:beforeunload',] }],
|
|
152
155
|
checkRollBack: [{ type: HostListener, args: ['window:unload',] }]
|
|
153
156
|
};
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFJTCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFFN0YsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0csT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXhGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXhGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQTRCbkUsTUFBTSxPQUFPLG9CQUFvQjtJQTBGN0IsWUFDVyxPQUEyQixFQUMxQiw0QkFBeUQsRUFDekQsMkJBQWtFLEVBQ2xFLGVBQWtDLEVBQ2xDLDRCQUF5RCxFQUN6RCxrQkFBcUMsRUFDckMsY0FBNkI7UUFOOUIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDMUIsaUNBQTRCLEdBQTVC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Q0FBQyxJQUFJO2FBQ3hDOzs7WUFsQ08sa0JBQWtCO1lBRWxCLDJCQUEyQjtZQUozQixxQ0FBcUM7WUFkekMsaUJBQWlCO1lBb0JiLDJCQUEyQjtZQUczQixpQkFBaUI7WUFEakIsYUFBYTs7O3VCQWdDaEIsS0FBSztxQ0FHTCxLQUFLOzJCQVVMLEtBQUs7OEJBR0wsS0FBSzs0QkFZTCxLQUFLO3lCQVlMLEtBQUs7a0NBR0wsS0FBSzs4QkFHTCxLQUFLOzRCQUdMLEtBQUs7MkJBR0wsS0FBSzs2QkFHTCxLQUFLO21DQUdMLEtBQUs7Z0NBR0wsS0FBSzt3QkFHTCxXQUFXLFNBQUMsc0JBQXNCOytCQUtsQyxZQUFZLFNBQUMscUJBQXFCOzRCQUtsQyxZQUFZLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gJy4uLy4uL21vZGVsL3JlbGF0aW9uLWFueS10eXBlJztcclxuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25DZmdOYW1lfSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLWNmZy1uYW1lLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7UG9zT3JkZXJEYXRhfSBmcm9tICcuLi8uLi9tb2RlbC9wb3Mtb3JkZXItZGF0YSc7XHJcbmltcG9ydCB7UHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3B1cmNoYXNlLWNvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtTYWZlSHRtbH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWFsb2dSZXNwb25zZUludGVyZmFjZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL2RpYWxvZy1yZXNwb25zZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0FwcFBvcHVwQnV0dG9uVHlwZX0gZnJvbSAnLi4vY29yZS9lbnVtL2FwcC1wb3B1cC1idXR0b24tdHlwZS5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbicsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxjby1zYXZlLWNhbmNlbC1idXR0b25zICpuZ0lmPVwic2VydmljZS5tYW51YWxTYXZlUGFyYW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzYXZlSWNvbkRhdGFdPVwic2F2ZUljb25EYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FuY2VsSWNvbkRhdGFdPVwiY2FuY2VsSWNvbkRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TGFiZWxzXT1cInNob3dTYXZlQ2FuY2VsTGFiZWxzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW92YWJsZV09XCJzYXZlQ2FuY2VsTW92YWJsZVwiXHJcbiAgICAgICAgPjwvY28tc2F2ZS1jYW5jZWwtYnV0dG9ucz5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24taW50ZXJuYWwgKm5nSWY9XCJzY3JlZW5Db25maWdMb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93SGVhZGVyXT1cInNob3dIZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1F1aWNrQWNjZXNzXT1cInNob3dRdWlja0FjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93QnV0dG9uQmFyXT1cInNob3dCdXR0b25CYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1ZpZXdNb2RlQnV0dG9uc109XCJzaG93Vmlld01vZGVCdXR0b25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpcm1hdGlvbkFuYWx5c2lzSWRdPVwiY29uZmlybWF0aW9uQW5hbHlzaXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwb3NPcmRlckRhdGFdPVwicG9zT3JkZXJEYXRhXCJcclxuICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1pbnRlcm5hbD5cclxuICAgIGAsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7cHJvdmlkZTogQmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2UsIHVzZUV4aXN0aW5nOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfVxyXG4gICAgXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAgIHB1YmxpYyByZWFkb25seSBjZmdOYW1lczogdHlwZW9mIFRyYW5zYWN0aW9uQ2ZnTmFtZSA9IFRyYW5zYWN0aW9uQ2ZnTmFtZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUgPSBuZXcgQ3VzdG9tZXJGdWxsT2JqZWN0KCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZS5jb25maXJtYXRpb25BbmFseXNpc0lkID0gdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGNvbmZpcm1hdGlvbkFuYWx5c2lzSWQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBvc09yZGVyRGF0YTogUG9zT3JkZXJEYXRhO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uS2luZCh2YWx1ZTogVHJhbnNhY3Rpb25LaW5kKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uS2luZCAhPT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25LaW5kID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2dldFRyYW5zYWN0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb25LaW5kKCk6IFRyYW5zYWN0aW9uS2luZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uS2luZDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0cmFuc2FjdGlvbk5yKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb25OciAhPT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25OciA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLl9nZXRUcmFuc2FjdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uTnIoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25OcjtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1ZpZXdNb2RlQnV0dG9uczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93UXVpY2tBY2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd0J1dHRvbkJhcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzYXZlSWNvbkRhdGE6IFNhZmVIdG1sO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY2FuY2VsSWNvbkRhdGE6IFNhZmVIdG1sO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1NhdmVDYW5jZWxMYWJlbHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNhdmVDYW5jZWxNb3ZhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby10cmFuc2FjdGlvbicpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpiZWZvcmV1bmxvYWQnKVxyXG4gICAgcHVibGljIGNoZWNrVHJhbnNhY3Rpb24oKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY2hlY2tUcmFuc2FjdGlvbkRpcnR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnVubG9hZCcpXHJcbiAgICBwdWJsaWMgY2hlY2tSb2xsQmFjaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uRGlydHkgJiYgdGhpcy5zZXJ2aWNlLm1hbnVhbFNhdmVQYXJhbSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uucm9sbGJhY2tCZWFjb24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQ6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uS2luZDogVHJhbnNhY3Rpb25LaW5kO1xyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25OcjogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlOiBUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZTogUHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgnY29uZmlybWF0aW9uQW5hbHlzaXNJZCcpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jaGVja1RyYW5zYWN0aW9uRGlydHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEodGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uRGlydHkgJiYgdGhpcy5zZXJ2aWNlLm1hbnVhbFNhdmVQYXJhbSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0VHJhbnNhY3Rpb24oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb25LaW5kKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5jb25uZWN0aW9uSW5pdGlhbGl6ZWQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGxvYWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGxvYWRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmxvYWRDb25maWcoW3RoaXMudHJhbnNhY3Rpb25LaW5kXSkudGhlbihhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uTnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5nZXRUcmFuc2FjdGlvbkJ5TnJBbmRLaW5kKHRoaXMudHJhbnNhY3Rpb25OciwgdGhpcy50cmFuc2FjdGlvbktpbmQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3ByZXBhcmVIZWFkZXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5Db25maWdMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcHJlcGFyZUhlYWRlcigpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlJlbGF0aW9uSW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSAmJlxyXG4gICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuT3JkZXJJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5QYXltZW50SW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSAmJlxyXG4gICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVsaXZlcnlJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpKSB7XHJcbiAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gc2VlIGhlcmVcclxuICAgICAgICAgICAgdGhpcy5zaG93SGVhZGVyID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFJTCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFFN0YsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0csT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXhGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXhGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQTZCbkUsTUFBTSxPQUFPLG9CQUFvQjtJQTRGN0IsWUFDVyxPQUEyQixFQUMxQiw0QkFBeUQsRUFDekQsMkJBQWtFLEVBQ2xFLGVBQWtDLEVBQ2xDLDRCQUF5RCxFQUN6RCxrQkFBcUMsRUFDckMsY0FBNkI7UUFOOUIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDMUIsaUNBQTRCLEdBQTVC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QkFDL0Y7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDeEM7OztZQW5DTyxrQkFBa0I7WUFFbEIsMkJBQTJCO1lBSjNCLHFDQUFxQztZQWR6QyxpQkFBaUI7WUFvQmIsMkJBQTJCO1lBRzNCLGlCQUFpQjtZQURqQixhQUFhOzs7dUJBaUNoQixLQUFLO3FDQUdMLEtBQUs7MkJBVUwsS0FBSzs4QkFHTCxLQUFLOzRCQVlMLEtBQUs7eUJBWUwsS0FBSztrQ0FHTCxLQUFLOzhCQUdMLEtBQUs7NEJBR0wsS0FBSzsyQkFHTCxLQUFLOzZCQUdMLEtBQUs7bUNBR0wsS0FBSztnQ0FHTCxLQUFLO2tDQUdMLEtBQUs7d0JBRUwsV0FBVyxTQUFDLHNCQUFzQjsrQkFLbEMsWUFBWSxTQUFDLHFCQUFxQjs0QkFLbEMsWUFBWSxTQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UmVsYXRpb25BbnlUeXBlfSBmcm9tICcuLi8uLi9tb2RlbC9yZWxhdGlvbi1hbnktdHlwZSc7XHJcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZnVsbC1vYmplY3QuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHt0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ2ZnTmFtZX0gZnJvbSAnLi4vLi4vZW51bS90cmFuc2FjdGlvbi1jZmctbmFtZS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge1Bvc09yZGVyRGF0YX0gZnJvbSAnLi4vLi4vbW9kZWwvcG9zLW9yZGVyLWRhdGEnO1xyXG5pbXBvcnQge1B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9wdXJjaGFzZS1jb25maXJtYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7U2FmZUh0bWx9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7RGlhbG9nUmVzcG9uc2VJbnRlcmZhY2V9IGZyb20gJy4uLy4uL2ludGVyZmFjZS9kaWFsb2ctcmVzcG9uc2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtBcHBQb3B1cEJ1dHRvblR5cGV9IGZyb20gJy4uL2NvcmUvZW51bS9hcHAtcG9wdXAtYnV0dG9uLXR5cGUuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY28tdHJhbnNhY3Rpb24nLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8Y28tc2F2ZS1jYW5jZWwtYnV0dG9ucyAqbmdJZj1cInNlcnZpY2UubWFudWFsU2F2ZVBhcmFtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2F2ZUljb25EYXRhXT1cInNhdmVJY29uRGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NhbmNlbEljb25EYXRhXT1cImNhbmNlbEljb25EYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0xhYmVsc109XCJzaG93U2F2ZUNhbmNlbExhYmVsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vdmFibGVdPVwic2F2ZUNhbmNlbE1vdmFibGVcIlxyXG4gICAgICAgID48L2NvLXNhdmUtY2FuY2VsLWJ1dHRvbnM+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWludGVybmFsICpuZ0lmPVwic2NyZWVuQ29uZmlnTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZWxhdGlvbildPVwicmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0hlYWRlcl09XCJzaG93SGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dRdWlja0FjY2Vzc109XCJzaG93UXVpY2tBY2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0J1dHRvbkJhcl09XCJzaG93QnV0dG9uQmFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dWaWV3TW9kZUJ1dHRvbnNdPVwic2hvd1ZpZXdNb2RlQnV0dG9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maXJtYXRpb25BbmFseXNpc0lkXT1cImNvbmZpcm1hdGlvbkFuYWx5c2lzSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcG9zT3JkZXJEYXRhXT1cInBvc09yZGVyRGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvblBsYW5uaW5nXT1cInRyYW5zYWN0aW9uUGxhbm5pbmdcIlxyXG4gICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWludGVybmFsPlxyXG4gICAgYCxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtwcm92aWRlOiBCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZSwgdXNlRXhpc3Rpbmc6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9XHJcbiAgICBdLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGNmZ05hbWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25DZmdOYW1lID0gVHJhbnNhY3Rpb25DZmdOYW1lO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSA9IG5ldyBDdXN0b21lckZ1bGxPYmplY3QoKTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBjb25maXJtYXRpb25BbmFseXNpc0lkKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9jb25maXJtYXRpb25BbmFseXNpc0lkID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5fcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm1hdGlvbkFuYWx5c2lzSWQgPSB0aGlzLl9jb25maXJtYXRpb25BbmFseXNpc0lkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maXJtYXRpb25BbmFseXNpc0lkO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcG9zT3JkZXJEYXRhOiBQb3NPcmRlckRhdGE7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdHJhbnNhY3Rpb25LaW5kKHZhbHVlOiBUcmFuc2FjdGlvbktpbmQpIHtcclxuICAgICAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb25LaW5kICE9PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbktpbmQgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5fZ2V0VHJhbnNhY3Rpb24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0cmFuc2FjdGlvbktpbmQoKTogVHJhbnNhY3Rpb25LaW5kIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25LaW5kO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uTnIodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbk5yICE9PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbk5yID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2dldFRyYW5zYWN0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb25OcigpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbk5yO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd0hlYWRlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93Vmlld01vZGVCdXR0b25zOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dRdWlja0FjY2VzczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93QnV0dG9uQmFyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNhdmVJY29uRGF0YTogU2FmZUh0bWw7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjYW5jZWxJY29uRGF0YTogU2FmZUh0bWw7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93U2F2ZUNhbmNlbExhYmVsczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2F2ZUNhbmNlbE1vdmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uUGxhbm5pbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24nKVxyXG4gICAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6YmVmb3JldW5sb2FkJylcclxuICAgIHB1YmxpYyBjaGVja1RyYW5zYWN0aW9uKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrVHJhbnNhY3Rpb25EaXJ0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzp1bmxvYWQnKVxyXG4gICAgcHVibGljIGNoZWNrUm9sbEJhY2soKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VydmljZS50cmFuc2FjdGlvbkRpcnR5ICYmIHRoaXMuc2VydmljZS5tYW51YWxTYXZlUGFyYW0pIHtcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnJvbGxiYWNrQmVhY29uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzY3JlZW5Db25maWdMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIF9jb25maXJtYXRpb25BbmFseXNpc0lkOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbktpbmQ6IFRyYW5zYWN0aW9uS2luZDtcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uTnI6IG51bWJlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZTogVHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcml2YXRlIF9wdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2U6IFB1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzICYmIGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQnKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY2hlY2tUcmFuc2FjdGlvbkRpcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhKHRoaXMuc2VydmljZS50cmFuc2FjdGlvbkRpcnR5ICYmIHRoaXMuc2VydmljZS5tYW51YWxTYXZlUGFyYW0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldFRyYW5zYWN0aW9uKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uS2luZCkge1xyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuY29ubmVjdGlvbkluaXRpYWxpemVkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChsb2FkZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChsb2FkZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5sb2FkQ29uZmlnKFt0aGlzLnRyYW5zYWN0aW9uS2luZF0pLnRoZW4oYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50cmFuc2FjdGlvbk5yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0VHJhbnNhY3Rpb25CeU5yQW5kS2luZCh0aGlzLnRyYW5zYWN0aW9uTnIsIHRoaXMudHJhbnNhY3Rpb25LaW5kKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcmVwYXJlSGVhZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3ByZXBhcmVIZWFkZXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5SZWxhdGlvbkluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkgJiZcclxuICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLk9yZGVySW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSAmJlxyXG4gICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUGF5bWVudEluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkgJiZcclxuICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLkRlbGl2ZXJ5SW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSkge1xyXG4gICAgICAgICAgICAvLyBub3RoaW5nIHRvIHNlZSBoZXJlXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0hlYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|