@pmcretail/mapper-library 0.0.36 → 0.0.38
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/pmcretail-mapper-library.umd.js +32 -12
- package/bundles/pmcretail-mapper-library.umd.js.map +1 -1
- package/bundles/pmcretail-mapper-library.umd.min.js +1 -1
- package/bundles/pmcretail-mapper-library.umd.min.js.map +1 -1
- package/esm2015/lib/WebReturn-mapper.class.js +28 -13
- package/esm2015/lib/mapper-library.component.js +5 -5
- package/esm2015/lib/mapper-library.module.js +1 -1
- package/esm5/lib/WebReturn-mapper.class.js +33 -13
- package/esm5/lib/mapper-library.component.js +1 -1
- package/esm5/lib/mapper-library.module.js +1 -1
- package/fesm2015/pmcretail-mapper-library.js +31 -16
- package/fesm2015/pmcretail-mapper-library.js.map +1 -1
- package/fesm5/pmcretail-mapper-library.js +32 -12
- package/fesm5/pmcretail-mapper-library.js.map +1 -1
- package/lib/WebReturn-mapper.class.d.ts +1 -0
- package/package.json +1 -1
- package/pmcretail-mapper-library.metadata.json +1 -1
|
@@ -18,6 +18,7 @@ export class WebReturnMapperBuilderClass {
|
|
|
18
18
|
terminalId: "",
|
|
19
19
|
initiatingModule: "",
|
|
20
20
|
export: false,
|
|
21
|
+
isInStoreOrder: false,
|
|
21
22
|
basket: {},
|
|
22
23
|
basketSummary: {},
|
|
23
24
|
baseCurrency: "",
|
|
@@ -77,14 +78,13 @@ export class WebReturnMapperBuilderClass {
|
|
|
77
78
|
(/** @type {?} */ (this)).webReturnObject.basketSummary['basketTotal'] = Number((/** @type {?} */ (this)).document.base_total_paid ? (/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.base_total_paid) : 0);
|
|
78
79
|
(/** @type {?} */ (this)).webReturnObject.basketSummary['totalItems'] = Number((/** @type {?} */ (this)).document.total_qty_ordered ? (/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.total_qty_ordered) : 0);
|
|
79
80
|
(/** @type {?} */ (this)).webReturnObject.basketSummary['refundTotal'] = Number((/** @type {?} */ (this)).document.base_total_refunded ? (/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.base_total_refunded) : 0);
|
|
80
|
-
// basket line discount
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
(/** @type {?} */ (this)).webReturnObject.basket['lineDiscount'].push(lineDiscount);
|
|
81
|
+
// // basket line discount
|
|
82
|
+
// this.webReturnObject.basket['lineDiscount'] = [];
|
|
83
|
+
// let lineDiscount = {
|
|
84
|
+
// itemLineId: (this.document.items && this.document.items.item && this.document.items.item.item_id) ? this.getText(this.document.items.item.item_id) : 0,
|
|
85
|
+
// discountAmount: (this.document.items && this.document.items.item && this.document.items.item.discount_amount) ? Number(this.getText(this.document.items.item.discount_amount)) : 0
|
|
86
|
+
// }
|
|
87
|
+
// this.webReturnObject.basket['lineDiscount'].push(lineDiscount);
|
|
88
88
|
// basket transaction discount
|
|
89
89
|
(/** @type {?} */ (this)).webReturnObject.basket['transactionDiscount'] = [];
|
|
90
90
|
/** @type {?} */
|
|
@@ -108,13 +108,14 @@ export class WebReturnMapperBuilderClass {
|
|
|
108
108
|
/** @type {?} */
|
|
109
109
|
let refundQty = (/** @type {?} */ (this)).getText(element.qty_refunded) ? Number((/** @type {?} */ (this)).getText(element.qty_refunded)) : 0;
|
|
110
110
|
/** @type {?} */
|
|
111
|
-
let price = (/** @type {?} */ (this)).getText(element.
|
|
111
|
+
let price = (/** @type {?} */ (this)).getText(element.price_incl_tax) ? Number((/** @type {?} */ (this)).getText(element.price_incl_tax)) : 0;
|
|
112
112
|
product = {
|
|
113
113
|
description: (element.name) ? (/** @type {?} */ (this)).getText(element.name) : '',
|
|
114
114
|
SKU: (element.sku) ? (/** @type {?} */ (this)).getText(element.sku) : '',
|
|
115
115
|
quantity: (element.qty_ordered) ? Number((/** @type {?} */ (this)).getText(element.qty_ordered)) : 0,
|
|
116
116
|
refundedQuantity: (element.qty_refunded) ? Number((/** @type {?} */ (this)).getText(element.qty_refunded)) : 0,
|
|
117
|
-
price: (element.original_price) ? Number(
|
|
117
|
+
//price: (element.original_price) ? Number(this.getText(element.original_price)) : 0,
|
|
118
|
+
price: price,
|
|
118
119
|
itemLineId: (element.item_id) ? Number((/** @type {?} */ (this)).getText(element.item_id)) : 0,
|
|
119
120
|
// totalLinePrice: (element.row_invoiced) ? Number(this.getText(element.row_invoiced)) : 0,
|
|
120
121
|
totalLinePrice: ((qty - refundQty) * price),
|
|
@@ -130,13 +131,14 @@ export class WebReturnMapperBuilderClass {
|
|
|
130
131
|
/** @type {?} */
|
|
131
132
|
let refundQty = ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.qty_refunded) ? Number((/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.items.item.qty_refunded)) : 0;
|
|
132
133
|
/** @type {?} */
|
|
133
|
-
let price = ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.
|
|
134
|
+
let price = ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.price_incl_tax) ? Number((/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.items.item.price_incl_tax)) : 0;
|
|
134
135
|
product = {
|
|
135
136
|
description: ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.name) ? (/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.items.item.name) : '',
|
|
136
137
|
SKU: ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.sku) ? (/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.items.item.sku) : '',
|
|
137
138
|
quantity: ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.qty_ordered) ? Number((/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.items.item.qty_ordered)) : 0,
|
|
138
139
|
refundedQuantity: ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.qty_refunded) ? Number((/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.items.item.qty_refunded)) : 0,
|
|
139
|
-
price: (
|
|
140
|
+
// price: (this.document.items && this.document.items.item && this.document.items.item.original_price) ? Number(this.getText(this.document.items.item.original_price)) : 0,
|
|
141
|
+
price: price,
|
|
140
142
|
itemLineId: ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.item_id) ? Number((/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.items.item.item_id)) : 0,
|
|
141
143
|
// totalLinePrice: (this.document.items && this.document.items.item && this.document.items.item.row_invoiced) ? Number(this.getText(this.document.items.item.row_invoiced)) : 0,
|
|
142
144
|
totalLinePrice: ((qty - refundQty) * price),
|
|
@@ -265,6 +267,19 @@ export class WebReturnMapperBuilderClass {
|
|
|
265
267
|
return new Date(date).toISOString();
|
|
266
268
|
}
|
|
267
269
|
}
|
|
270
|
+
/**
|
|
271
|
+
* @template THIS
|
|
272
|
+
* @this {THIS}
|
|
273
|
+
* @return {THIS}
|
|
274
|
+
*/
|
|
275
|
+
isInStoreOrder() {
|
|
276
|
+
console.log("Mapper library: WebReturnMapperBuilderClass: isInStoreOrder mapping started...");
|
|
277
|
+
if ((/** @type {?} */ (this)).document.payment && (/** @type {?} */ (this)).document.payment.method && (/** @type {?} */ (this)).document.payment.method === 'pos_order') {
|
|
278
|
+
(/** @type {?} */ (this)).webReturnObject.isInStoreOrder = true;
|
|
279
|
+
}
|
|
280
|
+
console.log("Mapper library: WebReturnMapperBuilderClass: isInStoreOrder mapping ended...");
|
|
281
|
+
return (/** @type {?} */ (this));
|
|
282
|
+
}
|
|
268
283
|
}
|
|
269
284
|
if (false) {
|
|
270
285
|
/**
|
|
@@ -278,4 +293,4 @@ if (false) {
|
|
|
278
293
|
*/
|
|
279
294
|
WebReturnMapperBuilderClass.prototype.webReturnObject;
|
|
280
295
|
}
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViUmV0dXJuLW1hcHBlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BwbWNyZXRhaWwvbWFwcGVyLWxpYnJhcnkvIiwic291cmNlcyI6WyJsaWIvV2ViUmV0dXJuLW1hcHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLE1BQU0sT0FBTywyQkFBMkI7Ozs7SUE2QnBDLFlBQVksUUFBUTtRQTFCWixvQkFBZSxHQUF3QjtZQUMzQyxFQUFFLEVBQUUsRUFBRTtZQUNOLE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxFQUFFLEVBQUU7WUFDWCxXQUFXLEVBQUUsRUFBRTtZQUNmLGtCQUFrQixFQUFFLEVBQUU7WUFDdEIsUUFBUSxFQUFFLEVBQUU7WUFDWixVQUFVLEVBQUUsRUFBRTtZQUNkLGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsRUFBRTtZQUNWLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLFFBQVEsRUFBRTtnQkFDTixTQUFTLEVBQUUsRUFBRTtnQkFDYixRQUFRLEVBQUUsRUFBRTtnQkFDWixLQUFLLEVBQUUsRUFBRTtnQkFDVCxRQUFRLEVBQUUsRUFBRTtnQkFDWixFQUFFLEVBQUUsRUFBRTtnQkFDTixjQUFjLEVBQUUsRUFBRTtnQkFDbEIsZUFBZSxFQUFFLEVBQUU7YUFFdEI7WUFDRCx5QkFBeUIsRUFBRSxtQkFBQSxFQUFFLEVBQTZCO1NBQzdELENBQUE7UUFHRyxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1NBQzVCO0lBQ0wsQ0FBQzs7Ozs7O0lBRUQsZUFBZTtRQUNYLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUM7UUFDN0MsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLG1CQUFBLElBQUks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QUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbk0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0wsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDak0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdk0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFcE0sbUJBQW1CO1FBQ25CLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9MLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUs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LGNBQWMsQ0FBQyxJQUFJO1FBQ2YsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckMsT0FBTyxtQkFBQSxJQUFJLEVBQUEsQ0FBQztJQUNoQixDQUFDOzs7O0lBRUQsS0FBSztRQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDOzs7OztJQUVELE9BQU8sQ0FBQyxHQUFHO1FBQ1AsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksRUFBRTtZQUNqQixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7U0FDbkI7YUFBTTtZQUNILE9BQU8sR0FBRyxDQUFDO1NBQ2Q7SUFDTCxDQUFDOzs7OztJQUVELGNBQWMsQ0FBQyxJQUFJO1FBQ2YsSUFBSSxJQUFJLEVBQUU7WUFDTixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztDQUNKOzs7Ozs7SUF0TUcsK0NBQXNCOzs7OztJQUN0QixzREF3QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJyZW50VHJhbnNhY3Rpb25EZXRhaWxzLCBUcmFuc2FjdGlvbkRvY3VtZW50IH0gZnJvbSBcIi4vbWFwcGVyLWxpYnJhcnkubW9kZWxcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBXZWJSZXR1cm5NYXBwZXJCdWlsZGVyQ2xhc3Mge1xyXG5cclxuICAgIHByaXZhdGUgZG9jdW1lbnQ6IGFueTtcclxuICAgIHByaXZhdGUgd2ViUmV0dXJuT2JqZWN0OiBUcmFuc2FjdGlvbkRvY3VtZW50ID0ge1xyXG4gICAgICAgIGlkOiAnJyxcclxuICAgICAgICBvcmdDb2RlOiBcIlwiLFxyXG4gICAgICAgIHN0b3JlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RvcmVOb2RlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RvcmVOb2RlU3RydWN0dXJlOiBcIlwiLFxyXG4gICAgICAgIGRldmljZUlkOiBcIlwiLFxyXG4gICAgICAgIHRlcm1pbmFsSWQ6IFwiXCIsXHJcbiAgICAgICAgaW5pdGlhdGluZ01vZHVsZTogXCJcIixcclxuICAgICAgICBleHBvcnQ6IGZhbHNlLFxyXG4gICAgICAgIGJhc2tldDoge30sXHJcbiAgICAgICAgYmFza2V0U3VtbWFyeToge30sXHJcbiAgICAgICAgYmFzZUN1cnJlbmN5OiBcIlwiLFxyXG4gICAgICAgIGN1c3RvbWVyOiB7XHJcbiAgICAgICAgICAgIGZpcnN0TmFtZTogJycsXHJcbiAgICAgICAgICAgIGxhc3ROYW1lOiAnJyxcclxuICAgICAgICAgICAgZW1haWw6ICcnLFxyXG4gICAgICAgICAgICBwb3N0Q29kZTogJycsXHJcbiAgICAgICAgICAgIGlkOiAnJyxcclxuICAgICAgICAgICAgYmlsbGluZ0FkZHJlc3M6IHt9LFxyXG4gICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3M6IHt9LFxyXG5cclxuICAgICAgICB9LFxyXG4gICAgICAgIGN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHM6IHt9IGFzIEN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHNcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihkb2N1bWVudCkge1xyXG4gICAgICAgIGlmIChkb2N1bWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIFdlYlJldHVybk1hcHBlcigpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsndHlwZSddID0gJ1dFQl9SRVRVUk5TJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnZGF0ZXRpbWUnXSA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQudXBkYXRlZF9hdCkpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2VDdXJyZW5jeSA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJhc2VfY3VycmVuY3lfY29kZSk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVJZCA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnN0b3JlX2lkKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdWJzaWRpYXJ5SWQgPSAnMSc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaW5pdGlhdGluZ01vZHVsZSA9ICdNQUdFTlRPJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5jcmVhdGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmNyZWF0ZWRfYXQpKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51cGRhdGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnVwZGF0ZWRfYXQpKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5leHBvcnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnRyYW5zQ29tcGxldGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnVwZGF0ZWRfYXQpKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnZXh0ZXJuYWxUcmFuc2FjdGlvbklkJ10gPSB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5vcmRlcl9pZCk7XHJcblxyXG4gICAgICAgIC8vIGN1c3RvbWVyXHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ2ZpcnN0TmFtZSddID0gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuY3VzdG9tZXJfZmlyc3RuYW1lKSB8fCAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnbGFzdE5hbWUnXSA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmN1c3RvbWVyX2xhc3RuYW1lKSB8fCAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnZW1haWwnXSA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmN1c3RvbWVyX2VtYWlsKSB8fCAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsncG9zdENvZGUnXSA9ICcnO1xyXG5cclxuICAgICAgICAvLyBCaWxsaW5nIGFkZHJlc3NcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnYmlsbGluZ0FkZHJlc3MnXVsnYWRkcmVzczEnXSA9ICh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5zdHJlZXQpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnN0cmVldCkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnYmlsbGluZ0FkZHJlc3MnXVsnY2l0eSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNpdHkpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNpdHkpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ2JpbGxpbmdBZGRyZXNzJ11bJ2NvdW50eSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnJlZ2lvbikgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MucmVnaW9uKSA6ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydiaWxsaW5nQWRkcmVzcyddWydwb3N0Q29kZSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnBvc3Rjb2RlKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5wb3N0Y29kZSkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnYmlsbGluZ0FkZHJlc3MnXVsnY291bnRyeSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNvdW50cnkpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNvdW50cnkpIDogJyc7XHJcblxyXG4gICAgICAgIC8vIFNoaXBwaW5nIGFkZHJlc3NcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnc2hpcHBpbmdBZGRyZXNzJ11bJ2FkZHJlc3MxJ10gPSAodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5zdHJlZXQpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5zdHJlZXQpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ3NoaXBwaW5nQWRkcmVzcyddWydjaXR5J10gPSAodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jaXR5KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MuY2l0eSkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnc2hpcHBpbmdBZGRyZXNzJ11bJ2NvdW50eSddID0gKHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MucmVnaW9uKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MucmVnaW9uKSA6ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydzaGlwcGluZ0FkZHJlc3MnXVsncG9zdENvZGUnXSA9ICh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgdGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzLnBvc3Rjb2RlKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MucG9zdGNvZGUpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ3NoaXBwaW5nQWRkcmVzcyddWydjb3VudHJ5J10gPSAodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jb3VudHJ5KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MuY291bnRyeSkgOiAnJztcclxuXHJcbiAgICAgICAgLy8gYmFza2V0U3VtbWFyeSBcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5WydkaXNjb3VudFRvdGFsJ10gPSBOdW1iZXIodGhpcy5kb2N1bWVudC5kaXNjb3VudF9hbW91bnQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5kaXNjb3VudF9hbW91bnQpIDogMCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeVsnVkFUVG90YWwnXSA9IE51bWJlcih0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcGFpZCA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcGFpZCkgOiAwKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5WydzYWxlVG90YWwnXSA9IE51bWJlcih0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfaW52b2ljZWQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX2ludm9pY2VkKSA6IDApO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFN1bW1hcnlbJ2Jhc2tldFRvdGFsJ10gPSBOdW1iZXIodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX3BhaWQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX3BhaWQpIDogMCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeVsndG90YWxJdGVtcyddID0gTnVtYmVyKHRoaXMuZG9jdW1lbnQudG90YWxfcXR5X29yZGVyZWQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC50b3RhbF9xdHlfb3JkZXJlZCkgOiAwKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5WydyZWZ1bmRUb3RhbCddID0gTnVtYmVyKHRoaXMuZG9jdW1lbnQuYmFzZV90b3RhbF9yZWZ1bmRlZCA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcmVmdW5kZWQpIDogMCk7XHJcblxyXG4gICAgICAgIC8vIGJhc2tldCBsaW5lIGRpc2NvdW50XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0WydsaW5lRGlzY291bnQnXSA9IFtdO1xyXG5cclxuICAgICAgICBsZXQgbGluZURpc2NvdW50ID0ge1xyXG4gICAgICAgICAgICBpdGVtTGluZUlkOiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLml0ZW1faWQpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5pdGVtX2lkKSA6IDAsXHJcbiAgICAgICAgICAgIGRpc2NvdW50QW1vdW50OiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLmRpc2NvdW50X2Ftb3VudCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5kaXNjb3VudF9hbW91bnQpKSA6IDBcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0WydsaW5lRGlzY291bnQnXS5wdXNoKGxpbmVEaXNjb3VudCk7XHJcblxyXG4gICAgICAgIC8vIGJhc2tldCB0cmFuc2FjdGlvbiBkaXNjb3VudFxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsndHJhbnNhY3Rpb25EaXNjb3VudCddID0gW107XHJcblxyXG4gICAgICAgIGxldCB0cmFuc2FjdGlvbkRpc2NvdW50ID0ge1xyXG4gICAgICAgICAgICBkaXNjb3VudEFtb3VudDogKHRoaXMuZG9jdW1lbnQgJiYgdGhpcy5kb2N1bWVudC5kaXNjb3VudF9hbW91bnQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmRpc2NvdW50X2Ftb3VudCkpIDogMFxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3RyYW5zYWN0aW9uRGlzY291bnQnXS5wdXNoKHRyYW5zYWN0aW9uRGlzY291bnQpO1xyXG5cclxuICAgICAgICAvLyBiYXNrZXQgcHJvZHVjdHMgXHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0Wydwcm9kdWN0cyddID0gW107XHJcbiAgICAgICAgbGV0IHByb2R1Y3QgOiBhbnk9IHt9O1xyXG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBxdHkgPSB0aGlzLmdldFRleHQoZWxlbWVudC5xdHlfb3JkZXJlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQucXR5X29yZGVyZWQpKSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlZnVuZFF0eSA9IHRoaXMuZ2V0VGV4dChlbGVtZW50LnF0eV9yZWZ1bmRlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQucXR5X3JlZnVuZGVkKSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmljZSA9IHRoaXMuZ2V0VGV4dChlbGVtZW50LmJhc2Vfb3JpZ2luYWxfcHJpY2UpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50LmJhc2Vfb3JpZ2luYWxfcHJpY2UpKSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IChlbGVtZW50Lm5hbWUpID8gdGhpcy5nZXRUZXh0KGVsZW1lbnQubmFtZSkgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgU0tVOiAoZWxlbWVudC5za3UpID8gdGhpcy5nZXRUZXh0KGVsZW1lbnQuc2t1KSA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWFudGl0eTogKGVsZW1lbnQucXR5X29yZGVyZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50LnF0eV9vcmRlcmVkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZ1bmRlZFF1YW50aXR5OiAoZWxlbWVudC5xdHlfcmVmdW5kZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50LnF0eV9yZWZ1bmRlZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2U6IChlbGVtZW50Lm9yaWdpbmFsX3ByaWNlKSA/IE51bWJlcih0aGlzLmdldFRleHQoZWxlbWVudC5vcmlnaW5hbF9wcmljZSkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUxpbmVJZDogKGVsZW1lbnQuaXRlbV9pZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQuaXRlbV9pZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG90YWxMaW5lUHJpY2U6IChlbGVtZW50LnJvd19pbnZvaWNlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQucm93X2ludm9pY2VkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbExpbmVQcmljZTogKChxdHkgLSByZWZ1bmRRdHkpICogcHJpY2UpLFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvZHVjdCAmJiBwcm9kdWN0LnByaWNlICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0Wydwcm9kdWN0cyddLnB1c2gocHJvZHVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcXR5ID0gKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfb3JkZXJlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfb3JkZXJlZCkpIDogMDtcclxuICAgICAgICAgICAgICAgIGxldCByZWZ1bmRRdHkgPSAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9yZWZ1bmRlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfcmVmdW5kZWQpKSA6IDA7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJpY2UgPSAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLm9yaWdpbmFsX3ByaWNlKSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLm9yaWdpbmFsX3ByaWNlKSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgcHJvZHVjdCA9IHtcclxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5uYW1lKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ubmFtZSkgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICBTS1U6ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uc2t1KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uc2t1KSA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIHF1YW50aXR5OiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9vcmRlcmVkKSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9vcmRlcmVkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlZnVuZGVkUXVhbnRpdHk6ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucXR5X3JlZnVuZGVkKSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9yZWZ1bmRlZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICBwcmljZTogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5vcmlnaW5hbF9wcmljZSkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5vcmlnaW5hbF9wcmljZSkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICBpdGVtTGluZUlkOiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLml0ZW1faWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uaXRlbV9pZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAvLyB0b3RhbExpbmVQcmljZTogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5yb3dfaW52b2ljZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucm93X2ludm9pY2VkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsTGluZVByaWNlOiAoKHF0eSAtIHJlZnVuZFF0eSkgKiBwcmljZSksXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvZHVjdCAmJiBwcm9kdWN0LnByaWNlICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3Byb2R1Y3RzJ10ucHVzaChwcm9kdWN0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBkZXZpY2VJZChkZXZpY2VJZCkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmRldmljZUlkID0gZGV2aWNlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdGVybWluYWxJZCh0ZXJtaW5hbElkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudGVybWluYWxJZCA9IHRlcm1pbmFsSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgb3JnQ29kZShvcmdDb2RlKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Qub3JnQ29kZSA9IG9yZ0NvZGU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVJZChzdG9yZUlkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVJZCA9IHN0b3JlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVOb2RlSWQoc3RvcmVOb2RlSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN0b3JlTm9kZUlkID0gc3RvcmVOb2RlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVOb2RlU3RydWN0dXJlKHN0b3JlTm9kZVN0cnVjdHVyZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVOb2RlU3RydWN0dXJlID0gc3RvcmVOb2RlU3RydWN0dXJlO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGRvY0lkKGRvY0lkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaWQgPSBkb2NJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVVc2VySUQodXNlcklEOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51c2VySWQgPSB1c2VySUQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVXNlck5hbWUobmFtZSkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVzZXJOYW1lID0gbmFtZTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBidWlsZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy53ZWJSZXR1cm5PYmplY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VGV4dChvYmopIHtcclxuICAgICAgICBpZiAob2JqICYmIG9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvYmoudGV4dDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRVVENEYXRlVGltZShkYXRlKSB7XHJcbiAgICAgICAgaWYgKGRhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpLnRvSVNPU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
296
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViUmV0dXJuLW1hcHBlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BwbWNyZXRhaWwvbWFwcGVyLWxpYnJhcnkvIiwic291cmNlcyI6WyJsaWIvV2ViUmV0dXJuLW1hcHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLE1BQU0sT0FBTywyQkFBMkI7Ozs7SUE4QnBDLFlBQVksUUFBUTtRQTNCWixvQkFBZSxHQUF3QjtZQUMzQyxFQUFFLEVBQUUsRUFBRTtZQUNOLE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxFQUFFLEVBQUU7WUFDWCxXQUFXLEVBQUUsRUFBRTtZQUNmLGtCQUFrQixFQUFFLEVBQUU7WUFDdEIsUUFBUSxFQUFFLEVBQUU7WUFDWixVQUFVLEVBQUUsRUFBRTtZQUNkLGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsTUFBTSxFQUFFLEtBQUs7WUFDYixjQUFjLEVBQUUsS0FBSztZQUNyQixNQUFNLEVBQUUsRUFBRTtZQUNWLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLFFBQVEsRUFBRTtnQkFDTixTQUFTLEVBQUUsRUFBRTtnQkFDYixRQUFRLEVBQUUsRUFBRTtnQkFDWixLQUFLLEVBQUUsRUFBRTtnQkFDVCxRQUFRLEVBQUUsRUFBRTtnQkFDWixFQUFFLEVBQUUsRUFBRTtnQkFDTixjQUFjLEVBQUUsRUFBRTtnQkFDbEIsZUFBZSxFQUFFLEVBQUU7YUFFdEI7WUFDRCx5QkFBeUIsRUFBRSxtQkFBQSxFQUFFLEVBQTZCO1NBQzdELENBQUE7UUFHRyxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1NBQzVCO0lBQ0wsQ0FBQzs7Ozs7O0lBRUQsZUFBZTtRQUNYLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUM7UUFDN0MsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUs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QUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbk0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0wsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDak0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdk0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFcE0sbUJBQW1CO1FBQ25CLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9MLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNNLG1CQUFB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QyxJQUFJLEVBQUU7WUFDakIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO1NBQ25CO2FBQU07WUFDSCxPQUFPLEdBQUcsQ0FBQztTQUNkO0lBQ0wsQ0FBQzs7Ozs7SUFFRCxjQUFjLENBQUMsSUFBSTtRQUNmLElBQUksSUFBSSxFQUFFO1lBQ04sT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN2QztJQUNMLENBQUM7Ozs7OztJQUVELGNBQWM7UUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLGdGQUFnRixDQUFDLENBQUM7UUFDOUYsSUFBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBQztZQUNyRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM5QztRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsOEVBQThFLENBQUMsQ0FBQztRQUM1RixPQUFPLG1CQUFBLElBQUksRUFBQSxDQUFDO0lBQ2hCLENBQUM7Q0FDSjs7Ozs7O0lBcE5HLCtDQUFzQjs7Ozs7SUFDdEIsc0RBeUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VycmVudFRyYW5zYWN0aW9uRGV0YWlscywgVHJhbnNhY3Rpb25Eb2N1bWVudCB9IGZyb20gXCIuL21hcHBlci1saWJyYXJ5Lm1vZGVsXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgV2ViUmV0dXJuTWFwcGVyQnVpbGRlckNsYXNzIHtcclxuXHJcbiAgICBwcml2YXRlIGRvY3VtZW50OiBhbnk7XHJcbiAgICBwcml2YXRlIHdlYlJldHVybk9iamVjdDogVHJhbnNhY3Rpb25Eb2N1bWVudCA9IHtcclxuICAgICAgICBpZDogJycsXHJcbiAgICAgICAgb3JnQ29kZTogXCJcIixcclxuICAgICAgICBzdG9yZUlkOiBcIlwiLFxyXG4gICAgICAgIHN0b3JlTm9kZUlkOiBcIlwiLFxyXG4gICAgICAgIHN0b3JlTm9kZVN0cnVjdHVyZTogXCJcIixcclxuICAgICAgICBkZXZpY2VJZDogXCJcIixcclxuICAgICAgICB0ZXJtaW5hbElkOiBcIlwiLFxyXG4gICAgICAgIGluaXRpYXRpbmdNb2R1bGU6IFwiXCIsXHJcbiAgICAgICAgZXhwb3J0OiBmYWxzZSxcclxuICAgICAgICBpc0luU3RvcmVPcmRlcjogZmFsc2UsXHJcbiAgICAgICAgYmFza2V0OiB7fSxcclxuICAgICAgICBiYXNrZXRTdW1tYXJ5OiB7fSxcclxuICAgICAgICBiYXNlQ3VycmVuY3k6IFwiXCIsXHJcbiAgICAgICAgY3VzdG9tZXI6IHtcclxuICAgICAgICAgICAgZmlyc3ROYW1lOiAnJyxcclxuICAgICAgICAgICAgbGFzdE5hbWU6ICcnLFxyXG4gICAgICAgICAgICBlbWFpbDogJycsXHJcbiAgICAgICAgICAgIHBvc3RDb2RlOiAnJyxcclxuICAgICAgICAgICAgaWQ6ICcnLFxyXG4gICAgICAgICAgICBiaWxsaW5nQWRkcmVzczoge30sXHJcbiAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzczoge30sXHJcblxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY3VycmVudFRyYW5zYWN0aW9uRGV0YWlsczoge30gYXMgQ3VycmVudFRyYW5zYWN0aW9uRGV0YWlsc1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKGRvY3VtZW50KSB7XHJcbiAgICAgICAgaWYgKGRvY3VtZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgV2ViUmV0dXJuTWFwcGVyKCkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0Wyd0eXBlJ10gPSAnV0VCX1JFVFVSTlMnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydkYXRldGltZSddID0gdGhpcy5nZXRVVENEYXRlVGltZSh0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC51cGRhdGVkX2F0KSk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFzZUN1cnJlbmN5ID0gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmFzZV9jdXJyZW5jeV9jb2RlKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdG9yZUlkID0gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuc3RvcmVfaWQpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN1YnNpZGlhcnlJZCA9ICcxJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5pbml0aWF0aW5nTW9kdWxlID0gJ01BR0VOVE8nO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmNyZWF0ZWRBdCA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuY3JlYXRlZF9hdCkpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVwZGF0ZWRBdCA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQudXBkYXRlZF9hdCkpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmV4cG9ydCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudHJhbnNDb21wbGV0ZWRBdCA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQudXBkYXRlZF9hdCkpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydleHRlcm5hbFRyYW5zYWN0aW9uSWQnXSA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lm9yZGVyX2lkKTtcclxuXHJcbiAgICAgICAgLy8gY3VzdG9tZXJcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnZmlyc3ROYW1lJ10gPSB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5jdXN0b21lcl9maXJzdG5hbWUpIHx8ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydsYXN0TmFtZSddID0gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuY3VzdG9tZXJfbGFzdG5hbWUpIHx8ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydlbWFpbCddID0gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuY3VzdG9tZXJfZW1haWwpIHx8ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydwb3N0Q29kZSddID0gJyc7XHJcblxyXG4gICAgICAgIC8vIEJpbGxpbmcgYWRkcmVzc1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydiaWxsaW5nQWRkcmVzcyddWydhZGRyZXNzMSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnN0cmVldCkgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3Muc3RyZWV0KSA6ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydiaWxsaW5nQWRkcmVzcyddWydjaXR5J10gPSAodGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MuY2l0eSkgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MuY2l0eSkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnYmlsbGluZ0FkZHJlc3MnXVsnY291bnR5J10gPSAodGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MucmVnaW9uKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5yZWdpb24pIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ2JpbGxpbmdBZGRyZXNzJ11bJ3Bvc3RDb2RlJ10gPSAodGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MucG9zdGNvZGUpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnBvc3Rjb2RlKSA6ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydiaWxsaW5nQWRkcmVzcyddWydjb3VudHJ5J10gPSAodGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MuY291bnRyeSkgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MuY291bnRyeSkgOiAnJztcclxuXHJcbiAgICAgICAgLy8gU2hpcHBpbmcgYWRkcmVzc1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydzaGlwcGluZ0FkZHJlc3MnXVsnYWRkcmVzczEnXSA9ICh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgdGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzLnN0cmVldCkgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzLnN0cmVldCkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnc2hpcHBpbmdBZGRyZXNzJ11bJ2NpdHknXSA9ICh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgdGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzLmNpdHkpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jaXR5KSA6ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydzaGlwcGluZ0FkZHJlc3MnXVsnY291bnR5J10gPSAodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5yZWdpb24pID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5yZWdpb24pIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ3NoaXBwaW5nQWRkcmVzcyddWydwb3N0Q29kZSddID0gKHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MucG9zdGNvZGUpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5wb3N0Y29kZSkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnc2hpcHBpbmdBZGRyZXNzJ11bJ2NvdW50cnknXSA9ICh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgdGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzLmNvdW50cnkpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jb3VudHJ5KSA6ICcnO1xyXG5cclxuICAgICAgICAvLyBiYXNrZXRTdW1tYXJ5IFxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFN1bW1hcnlbJ2Rpc2NvdW50VG90YWwnXSA9IE51bWJlcih0aGlzLmRvY3VtZW50LmRpc2NvdW50X2Ftb3VudCA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmRpc2NvdW50X2Ftb3VudCkgOiAwKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5WydWQVRUb3RhbCddID0gTnVtYmVyKHRoaXMuZG9jdW1lbnQuYmFzZV90b3RhbF9wYWlkID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmFzZV90b3RhbF9wYWlkKSA6IDApO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFN1bW1hcnlbJ3NhbGVUb3RhbCddID0gTnVtYmVyKHRoaXMuZG9jdW1lbnQuYmFzZV90b3RhbF9pbnZvaWNlZCA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfaW52b2ljZWQpIDogMCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeVsnYmFza2V0VG90YWwnXSA9IE51bWJlcih0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcGFpZCA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcGFpZCkgOiAwKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5Wyd0b3RhbEl0ZW1zJ10gPSBOdW1iZXIodGhpcy5kb2N1bWVudC50b3RhbF9xdHlfb3JkZXJlZCA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnRvdGFsX3F0eV9vcmRlcmVkKSA6IDApO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFN1bW1hcnlbJ3JlZnVuZFRvdGFsJ10gPSBOdW1iZXIodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX3JlZnVuZGVkID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmFzZV90b3RhbF9yZWZ1bmRlZCkgOiAwKTtcclxuXHJcbiAgICAgICAgLy8gLy8gYmFza2V0IGxpbmUgZGlzY291bnRcclxuICAgICAgICAvLyB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ2xpbmVEaXNjb3VudCddID0gW107XHJcblxyXG4gICAgICAgIC8vIGxldCBsaW5lRGlzY291bnQgPSB7XHJcbiAgICAgICAgLy8gICAgIGl0ZW1MaW5lSWQ6ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uaXRlbV9pZCkgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLml0ZW1faWQpIDogMCxcclxuICAgICAgICAvLyAgICAgZGlzY291bnRBbW91bnQ6ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uZGlzY291bnRfYW1vdW50KSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLmRpc2NvdW50X2Ftb3VudCkpIDogMFxyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ2xpbmVEaXNjb3VudCddLnB1c2gobGluZURpc2NvdW50KTtcclxuXHJcbiAgICAgICAgLy8gYmFza2V0IHRyYW5zYWN0aW9uIGRpc2NvdW50XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0Wyd0cmFuc2FjdGlvbkRpc2NvdW50J10gPSBbXTtcclxuXHJcbiAgICAgICAgbGV0IHRyYW5zYWN0aW9uRGlzY291bnQgPSB7XHJcbiAgICAgICAgICAgIGRpc2NvdW50QW1vdW50OiAodGhpcy5kb2N1bWVudCAmJiB0aGlzLmRvY3VtZW50LmRpc2NvdW50X2Ftb3VudCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuZGlzY291bnRfYW1vdW50KSkgOiAwXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsndHJhbnNhY3Rpb25EaXNjb3VudCddLnB1c2godHJhbnNhY3Rpb25EaXNjb3VudCk7XHJcblxyXG4gICAgICAgIC8vIGJhc2tldCBwcm9kdWN0cyBcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3Byb2R1Y3RzJ10gPSBbXTtcclxuICAgICAgICBsZXQgcHJvZHVjdCA6IGFueT0ge307XHJcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHF0eSA9IHRoaXMuZ2V0VGV4dChlbGVtZW50LnF0eV9vcmRlcmVkKSA/IE51bWJlcih0aGlzLmdldFRleHQoZWxlbWVudC5xdHlfb3JkZXJlZCkpIDogMDtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcmVmdW5kUXR5ID0gdGhpcy5nZXRUZXh0KGVsZW1lbnQucXR5X3JlZnVuZGVkKSA/IE51bWJlcih0aGlzLmdldFRleHQoZWxlbWVudC5xdHlfcmVmdW5kZWQpKSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByaWNlID0gdGhpcy5nZXRUZXh0KGVsZW1lbnQucHJpY2VfaW5jbF90YXgpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50LnByaWNlX2luY2xfdGF4KSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3QgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAoZWxlbWVudC5uYW1lKSA/IHRoaXMuZ2V0VGV4dChlbGVtZW50Lm5hbWUpIDogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNLVTogKGVsZW1lbnQuc2t1KSA/IHRoaXMuZ2V0VGV4dChlbGVtZW50LnNrdSkgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVhbnRpdHk6IChlbGVtZW50LnF0eV9vcmRlcmVkKSA/IE51bWJlcih0aGlzLmdldFRleHQoZWxlbWVudC5xdHlfb3JkZXJlZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmdW5kZWRRdWFudGl0eTogKGVsZW1lbnQucXR5X3JlZnVuZGVkKSA/IE51bWJlcih0aGlzLmdldFRleHQoZWxlbWVudC5xdHlfcmVmdW5kZWQpKSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vcHJpY2U6IChlbGVtZW50Lm9yaWdpbmFsX3ByaWNlKSA/IE51bWJlcih0aGlzLmdldFRleHQoZWxlbWVudC5vcmlnaW5hbF9wcmljZSkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2U6IHByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUxpbmVJZDogKGVsZW1lbnQuaXRlbV9pZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQuaXRlbV9pZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG90YWxMaW5lUHJpY2U6IChlbGVtZW50LnJvd19pbnZvaWNlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQucm93X2ludm9pY2VkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbExpbmVQcmljZTogKChxdHkgLSByZWZ1bmRRdHkpICogcHJpY2UpLFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvZHVjdCAmJiBwcm9kdWN0LnByaWNlICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0Wydwcm9kdWN0cyddLnB1c2gocHJvZHVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcXR5ID0gKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfb3JkZXJlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfb3JkZXJlZCkpIDogMDtcclxuICAgICAgICAgICAgICAgIGxldCByZWZ1bmRRdHkgPSAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9yZWZ1bmRlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfcmVmdW5kZWQpKSA6IDA7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJpY2UgPSAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnByaWNlX2luY2xfdGF4KSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnByaWNlX2luY2xfdGF4KSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgcHJvZHVjdCA9IHtcclxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5uYW1lKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ubmFtZSkgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICBTS1U6ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uc2t1KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uc2t1KSA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIHF1YW50aXR5OiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9vcmRlcmVkKSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9vcmRlcmVkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlZnVuZGVkUXVhbnRpdHk6ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucXR5X3JlZnVuZGVkKSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9yZWZ1bmRlZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAvLyBwcmljZTogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5vcmlnaW5hbF9wcmljZSkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5vcmlnaW5hbF9wcmljZSkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICBwcmljZTogcHJpY2UsXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1MaW5lSWQ6ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uaXRlbV9pZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5pdGVtX2lkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRvdGFsTGluZVByaWNlOiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnJvd19pbnZvaWNlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5yb3dfaW52b2ljZWQpKSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgdG90YWxMaW5lUHJpY2U6ICgocXR5IC0gcmVmdW5kUXR5KSAqIHByaWNlKSxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChwcm9kdWN0ICYmIHByb2R1Y3QucHJpY2UgIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsncHJvZHVjdHMnXS5wdXNoKHByb2R1Y3QpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGRldmljZUlkKGRldmljZUlkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZGV2aWNlSWQgPSBkZXZpY2VJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB0ZXJtaW5hbElkKHRlcm1pbmFsSWQpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC50ZXJtaW5hbElkID0gdGVybWluYWxJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvcmdDb2RlKG9yZ0NvZGUpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5vcmdDb2RlID0gb3JnQ29kZTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBzdG9yZUlkKHN0b3JlSWQpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdG9yZUlkID0gc3RvcmVJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBzdG9yZU5vZGVJZChzdG9yZU5vZGVJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVOb2RlSWQgPSBzdG9yZU5vZGVJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBzdG9yZU5vZGVTdHJ1Y3R1cmUoc3RvcmVOb2RlU3RydWN0dXJlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdG9yZU5vZGVTdHJ1Y3R1cmUgPSBzdG9yZU5vZGVTdHJ1Y3R1cmU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgZG9jSWQoZG9jSWQpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5pZCA9IGRvY0lkO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVVzZXJJRCh1c2VySUQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVzZXJJZCA9IHVzZXJJRDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVVc2VyTmFtZShuYW1lKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudXNlck5hbWUgPSBuYW1lO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1aWxkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLndlYlJldHVybk9iamVjdDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUZXh0KG9iaikge1xyXG4gICAgICAgIGlmIChvYmogJiYgb2JqLnRleHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9iai50ZXh0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvYmo7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldFVUQ0RhdGVUaW1lKGRhdGUpIHtcclxuICAgICAgICBpZiAoZGF0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkudG9JU09TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaXNJblN0b3JlT3JkZXIoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuTWFwcGVyQnVpbGRlckNsYXNzOiBpc0luU3RvcmVPcmRlciBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7IFxyXG4gICAgICAgIGlmKHRoaXMuZG9jdW1lbnQucGF5bWVudCAmJiB0aGlzLmRvY3VtZW50LnBheW1lbnQubWV0aG9kICYmIHRoaXMuZG9jdW1lbnQucGF5bWVudC5tZXRob2QgPT09ICdwb3Nfb3JkZXInKXtcclxuICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaXNJblN0b3JlT3JkZXIgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5NYXBwZXJCdWlsZGVyQ2xhc3M6IGlzSW5TdG9yZU9yZGVyIG1hcHBpbmcgZW5kZWQuLi5cIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -15,13 +15,13 @@ export class MapperLibraryComponent {
|
|
|
15
15
|
MapperLibraryComponent.decorators = [
|
|
16
16
|
{ type: Component, args: [{
|
|
17
17
|
selector: 'lib-mapper-library',
|
|
18
|
-
template: `
|
|
19
|
-
<p>
|
|
20
|
-
mapper-library works!
|
|
21
|
-
</p>
|
|
18
|
+
template: `
|
|
19
|
+
<p>
|
|
20
|
+
mapper-library works!
|
|
21
|
+
</p>
|
|
22
22
|
`
|
|
23
23
|
}] }
|
|
24
24
|
];
|
|
25
25
|
/** @nocollapse */
|
|
26
26
|
MapperLibraryComponent.ctorParameters = () => [];
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHBtY3JldGFpbC9tYXBwZXItbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9tYXBwZXItbGlicmFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBWWxELE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsZ0JBQWdCLENBQUM7Ozs7SUFFakIsUUFBUTtJQUNSLENBQUM7OztZQWZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixRQUFRLEVBQUU7Ozs7R0FJVDthQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW1hcHBlci1saWJyYXJ5JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPHA+XHJcbiAgICAgIG1hcHBlci1saWJyYXJ5IHdvcmtzIVxyXG4gICAgPC9wPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFwcGVyTGlicmFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -18,4 +18,4 @@ MapperLibraryModule.decorators = [
|
|
|
18
18
|
]
|
|
19
19
|
},] }
|
|
20
20
|
];
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHBtY3JldGFpbC9tYXBwZXItbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9tYXBwZXItbGlicmFyeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBY3BFLE1BQU0sT0FBTyxtQkFBbUI7OztZQVYvQixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLHNCQUFzQjtpQkFDdkI7Z0JBQ0QsT0FBTyxFQUFFLEVBQ1I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHNCQUFzQjtpQkFDdkI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hcHBlckxpYnJhcnlDb21wb25lbnQgfSBmcm9tICcuL21hcHBlci1saWJyYXJ5LmNvbXBvbmVudCc7XHJcblxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBNYXBwZXJMaWJyYXJ5Q29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBNYXBwZXJMaWJyYXJ5Q29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFwcGVyTGlicmFyeU1vZHVsZSB7IH1cclxuIl19
|
|
@@ -15,6 +15,7 @@ var WebReturnMapperBuilderClass = /** @class */ (function () {
|
|
|
15
15
|
terminalId: "",
|
|
16
16
|
initiatingModule: "",
|
|
17
17
|
export: false,
|
|
18
|
+
isInStoreOrder: false,
|
|
18
19
|
basket: {},
|
|
19
20
|
basketSummary: {},
|
|
20
21
|
baseCurrency: "",
|
|
@@ -80,14 +81,13 @@ var WebReturnMapperBuilderClass = /** @class */ (function () {
|
|
|
80
81
|
(/** @type {?} */ (this)).webReturnObject.basketSummary['basketTotal'] = Number((/** @type {?} */ (this)).document.base_total_paid ? (/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.base_total_paid) : 0);
|
|
81
82
|
(/** @type {?} */ (this)).webReturnObject.basketSummary['totalItems'] = Number((/** @type {?} */ (this)).document.total_qty_ordered ? (/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.total_qty_ordered) : 0);
|
|
82
83
|
(/** @type {?} */ (this)).webReturnObject.basketSummary['refundTotal'] = Number((/** @type {?} */ (this)).document.base_total_refunded ? (/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.base_total_refunded) : 0);
|
|
83
|
-
// basket line discount
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
(/** @type {?} */ (this)).webReturnObject.basket['lineDiscount'].push(lineDiscount);
|
|
84
|
+
// // basket line discount
|
|
85
|
+
// this.webReturnObject.basket['lineDiscount'] = [];
|
|
86
|
+
// let lineDiscount = {
|
|
87
|
+
// itemLineId: (this.document.items && this.document.items.item && this.document.items.item.item_id) ? this.getText(this.document.items.item.item_id) : 0,
|
|
88
|
+
// discountAmount: (this.document.items && this.document.items.item && this.document.items.item.discount_amount) ? Number(this.getText(this.document.items.item.discount_amount)) : 0
|
|
89
|
+
// }
|
|
90
|
+
// this.webReturnObject.basket['lineDiscount'].push(lineDiscount);
|
|
91
91
|
// basket transaction discount
|
|
92
92
|
(/** @type {?} */ (this)).webReturnObject.basket['transactionDiscount'] = [];
|
|
93
93
|
/** @type {?} */
|
|
@@ -111,13 +111,14 @@ var WebReturnMapperBuilderClass = /** @class */ (function () {
|
|
|
111
111
|
/** @type {?} */
|
|
112
112
|
var refundQty = (/** @type {?} */ (_this)).getText(element.qty_refunded) ? Number((/** @type {?} */ (_this)).getText(element.qty_refunded)) : 0;
|
|
113
113
|
/** @type {?} */
|
|
114
|
-
var price = (/** @type {?} */ (_this)).getText(element.
|
|
114
|
+
var price = (/** @type {?} */ (_this)).getText(element.price_incl_tax) ? Number((/** @type {?} */ (_this)).getText(element.price_incl_tax)) : 0;
|
|
115
115
|
product = {
|
|
116
116
|
description: (element.name) ? (/** @type {?} */ (_this)).getText(element.name) : '',
|
|
117
117
|
SKU: (element.sku) ? (/** @type {?} */ (_this)).getText(element.sku) : '',
|
|
118
118
|
quantity: (element.qty_ordered) ? Number((/** @type {?} */ (_this)).getText(element.qty_ordered)) : 0,
|
|
119
119
|
refundedQuantity: (element.qty_refunded) ? Number((/** @type {?} */ (_this)).getText(element.qty_refunded)) : 0,
|
|
120
|
-
price: (element.original_price) ? Number(
|
|
120
|
+
//price: (element.original_price) ? Number(this.getText(element.original_price)) : 0,
|
|
121
|
+
price: price,
|
|
121
122
|
itemLineId: (element.item_id) ? Number((/** @type {?} */ (_this)).getText(element.item_id)) : 0,
|
|
122
123
|
// totalLinePrice: (element.row_invoiced) ? Number(this.getText(element.row_invoiced)) : 0,
|
|
123
124
|
totalLinePrice: ((qty - refundQty) * price),
|
|
@@ -133,13 +134,14 @@ var WebReturnMapperBuilderClass = /** @class */ (function () {
|
|
|
133
134
|
/** @type {?} */
|
|
134
135
|
var refundQty = ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.qty_refunded) ? Number((/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.items.item.qty_refunded)) : 0;
|
|
135
136
|
/** @type {?} */
|
|
136
|
-
var price = ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.
|
|
137
|
+
var price = ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.price_incl_tax) ? Number((/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.items.item.price_incl_tax)) : 0;
|
|
137
138
|
product = {
|
|
138
139
|
description: ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.name) ? (/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.items.item.name) : '',
|
|
139
140
|
SKU: ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.sku) ? (/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.items.item.sku) : '',
|
|
140
141
|
quantity: ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.qty_ordered) ? Number((/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.items.item.qty_ordered)) : 0,
|
|
141
142
|
refundedQuantity: ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.qty_refunded) ? Number((/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.items.item.qty_refunded)) : 0,
|
|
142
|
-
price: (
|
|
143
|
+
// price: (this.document.items && this.document.items.item && this.document.items.item.original_price) ? Number(this.getText(this.document.items.item.original_price)) : 0,
|
|
144
|
+
price: price,
|
|
143
145
|
itemLineId: ((/** @type {?} */ (this)).document.items && (/** @type {?} */ (this)).document.items.item && (/** @type {?} */ (this)).document.items.item.item_id) ? Number((/** @type {?} */ (this)).getText((/** @type {?} */ (this)).document.items.item.item_id)) : 0,
|
|
144
146
|
// totalLinePrice: (this.document.items && this.document.items.item && this.document.items.item.row_invoiced) ? Number(this.getText(this.document.items.item.row_invoiced)) : 0,
|
|
145
147
|
totalLinePrice: ((qty - refundQty) * price),
|
|
@@ -333,6 +335,24 @@ var WebReturnMapperBuilderClass = /** @class */ (function () {
|
|
|
333
335
|
return new Date(date).toISOString();
|
|
334
336
|
}
|
|
335
337
|
};
|
|
338
|
+
/**
|
|
339
|
+
* @template THIS
|
|
340
|
+
* @this {THIS}
|
|
341
|
+
* @return {THIS}
|
|
342
|
+
*/
|
|
343
|
+
WebReturnMapperBuilderClass.prototype.isInStoreOrder = /**
|
|
344
|
+
* @template THIS
|
|
345
|
+
* @this {THIS}
|
|
346
|
+
* @return {THIS}
|
|
347
|
+
*/
|
|
348
|
+
function () {
|
|
349
|
+
console.log("Mapper library: WebReturnMapperBuilderClass: isInStoreOrder mapping started...");
|
|
350
|
+
if ((/** @type {?} */ (this)).document.payment && (/** @type {?} */ (this)).document.payment.method && (/** @type {?} */ (this)).document.payment.method === 'pos_order') {
|
|
351
|
+
(/** @type {?} */ (this)).webReturnObject.isInStoreOrder = true;
|
|
352
|
+
}
|
|
353
|
+
console.log("Mapper library: WebReturnMapperBuilderClass: isInStoreOrder mapping ended...");
|
|
354
|
+
return (/** @type {?} */ (this));
|
|
355
|
+
};
|
|
336
356
|
return WebReturnMapperBuilderClass;
|
|
337
357
|
}());
|
|
338
358
|
export { WebReturnMapperBuilderClass };
|
|
@@ -348,4 +368,4 @@ if (false) {
|
|
|
348
368
|
*/
|
|
349
369
|
WebReturnMapperBuilderClass.prototype.webReturnObject;
|
|
350
370
|
}
|
|
351
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViUmV0dXJuLW1hcHBlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BwbWNyZXRhaWwvbWFwcGVyLWxpYnJhcnkvIiwic291cmNlcyI6WyJsaWIvV2ViUmV0dXJuLW1hcHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBO0lBNkJJLHFDQUFZLFFBQVE7UUExQlosb0JBQWUsR0FBd0I7WUFDM0MsRUFBRSxFQUFFLEVBQUU7WUFDTixPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxFQUFFO1lBQ1gsV0FBVyxFQUFFLEVBQUU7WUFDZixrQkFBa0IsRUFBRSxFQUFFO1lBQ3RCLFFBQVEsRUFBRSxFQUFFO1lBQ1osVUFBVSxFQUFFLEVBQUU7WUFDZCxnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsTUFBTSxFQUFFLEVBQUU7WUFDVixhQUFhLEVBQUUsRUFBRTtZQUNqQixZQUFZLEVBQUUsRUFBRTtZQUNoQixRQUFRLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osRUFBRSxFQUFFLEVBQUU7Z0JBQ04sY0FBYyxFQUFFLEVBQUU7Z0JBQ2xCLGVBQWUsRUFBRSxFQUFFO2FBRXRCO1lBQ0QseUJBQXlCLEVBQUUsbUJBQUEsRUFBRSxFQUE2QjtTQUM3RCxDQUFBO1FBR0csSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztTQUM1QjtJQUNMLENBQUM7Ozs7OztJQUVELHFEQUFlOzs7OztJQUFmO1FBQUEsaUJBcUdDO1FBcEdHLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUM7UUFDN0MsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLG1CQUFBLElB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QSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbk0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0wsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDak0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdk0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFcE0sbUJBQW1CO1FBQ25CLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9MLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVB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Q0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxPQUFPLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3hJLFFBQVEsRUFBRSxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxPQUFPLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDcEssZ0JBQWdCLEVBQUUsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzlLLEtBQUssRUFBRSxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksbUJBQUEsSUFBSSxFQUFBLENB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QUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JDLE9BQU8sbUJBQUEsSUFBSSxFQUFBLENBQUM7SUFDaEIsQ0FBQzs7Ozs7OztJQUVELG9EQUFjOzs7Ozs7SUFBZCxVQUFlLElBQUk7UUFDZixtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQyxPQUFPLG1CQUFBLElBQUksRUFBQSxDQUFDO0lBQ2hCLENBQUM7Ozs7SUFFRCwyQ0FBSzs7O0lBQUw7UUFDSSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQzs7Ozs7SUFFRCw2Q0FBTzs7OztJQUFQLFVBQVEsR0FBRztRQUNQLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUU7WUFDakIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO1NBQ25CO2FBQU07WUFDSCxPQUFPLEdBQUcsQ0FBQztTQUNkO0lBQ0wsQ0FBQzs7Ozs7SUFFRCxvREFBYzs7OztJQUFkLFVBQWUsSUFBSTtRQUNmLElBQUksSUFBSSxFQUFFO1lBQ04sT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN2QztJQUNMLENBQUM7SUFDTCxrQ0FBQztBQUFELENBQUMsQUF4TUQsSUF3TUM7Ozs7Ozs7SUF0TUcsK0NBQXNCOzs7OztJQUN0QixzREF3QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJyZW50VHJhbnNhY3Rpb25EZXRhaWxzLCBUcmFuc2FjdGlvbkRvY3VtZW50IH0gZnJvbSBcIi4vbWFwcGVyLWxpYnJhcnkubW9kZWxcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBXZWJSZXR1cm5NYXBwZXJCdWlsZGVyQ2xhc3Mge1xyXG5cclxuICAgIHByaXZhdGUgZG9jdW1lbnQ6IGFueTtcclxuICAgIHByaXZhdGUgd2ViUmV0dXJuT2JqZWN0OiBUcmFuc2FjdGlvbkRvY3VtZW50ID0ge1xyXG4gICAgICAgIGlkOiAnJyxcclxuICAgICAgICBvcmdDb2RlOiBcIlwiLFxyXG4gICAgICAgIHN0b3JlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RvcmVOb2RlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RvcmVOb2RlU3RydWN0dXJlOiBcIlwiLFxyXG4gICAgICAgIGRldmljZUlkOiBcIlwiLFxyXG4gICAgICAgIHRlcm1pbmFsSWQ6IFwiXCIsXHJcbiAgICAgICAgaW5pdGlhdGluZ01vZHVsZTogXCJcIixcclxuICAgICAgICBleHBvcnQ6IGZhbHNlLFxyXG4gICAgICAgIGJhc2tldDoge30sXHJcbiAgICAgICAgYmFza2V0U3VtbWFyeToge30sXHJcbiAgICAgICAgYmFzZUN1cnJlbmN5OiBcIlwiLFxyXG4gICAgICAgIGN1c3RvbWVyOiB7XHJcbiAgICAgICAgICAgIGZpcnN0TmFtZTogJycsXHJcbiAgICAgICAgICAgIGxhc3ROYW1lOiAnJyxcclxuICAgICAgICAgICAgZW1haWw6ICcnLFxyXG4gICAgICAgICAgICBwb3N0Q29kZTogJycsXHJcbiAgICAgICAgICAgIGlkOiAnJyxcclxuICAgICAgICAgICAgYmlsbGluZ0FkZHJlc3M6IHt9LFxyXG4gICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3M6IHt9LFxyXG5cclxuICAgICAgICB9LFxyXG4gICAgICAgIGN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHM6IHt9IGFzIEN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHNcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihkb2N1bWVudCkge1xyXG4gICAgICAgIGlmIChkb2N1bWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIFdlYlJldHVybk1hcHBlcigpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsndHlwZSddID0gJ1dFQl9SRVRVUk5TJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnZGF0ZXRpbWUnXSA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQudXBkYXRlZF9hdCkpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2VDdXJyZW5jeSA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJhc2VfY3VycmVuY3lfY29kZSk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVJZCA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnN0b3JlX2lkKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdWJzaWRpYXJ5SWQgPSAnMSc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaW5pdGlhdGluZ01vZHVsZSA9ICdNQUdFTlRPJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5jcmVhdGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmNyZWF0ZWRfYXQpKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51cGRhdGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnVwZGF0ZWRfYXQpKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5leHBvcnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnRyYW5zQ29tcGxldGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnVwZGF0ZWRfYXQpKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnZXh0ZXJuYWxUcmFuc2FjdGlvbklkJ10gPSB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5vcmRlcl9pZCk7XHJcblxyXG4gICAgICAgIC8vIGN1c3RvbWVyXHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ2ZpcnN0TmFtZSddID0gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuY3VzdG9tZXJfZmlyc3RuYW1lKSB8fCAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnbGFzdE5hbWUnXSA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmN1c3RvbWVyX2xhc3RuYW1lKSB8fCAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnZW1haWwnXSA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmN1c3RvbWVyX2VtYWlsKSB8fCAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsncG9zdENvZGUnXSA9ICcnO1xyXG5cclxuICAgICAgICAvLyBCaWxsaW5nIGFkZHJlc3NcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnYmlsbGluZ0FkZHJlc3MnXVsnYWRkcmVzczEnXSA9ICh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5zdHJlZXQpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnN0cmVldCkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnYmlsbGluZ0FkZHJlc3MnXVsnY2l0eSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNpdHkpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNpdHkpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ2JpbGxpbmdBZGRyZXNzJ11bJ2NvdW50eSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnJlZ2lvbikgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MucmVnaW9uKSA6ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydiaWxsaW5nQWRkcmVzcyddWydwb3N0Q29kZSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnBvc3Rjb2RlKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5wb3N0Y29kZSkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnYmlsbGluZ0FkZHJlc3MnXVsnY291bnRyeSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNvdW50cnkpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNvdW50cnkpIDogJyc7XHJcblxyXG4gICAgICAgIC8vIFNoaXBwaW5nIGFkZHJlc3NcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnc2hpcHBpbmdBZGRyZXNzJ11bJ2FkZHJlc3MxJ10gPSAodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5zdHJlZXQpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5zdHJlZXQpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ3NoaXBwaW5nQWRkcmVzcyddWydjaXR5J10gPSAodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jaXR5KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MuY2l0eSkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnc2hpcHBpbmdBZGRyZXNzJ11bJ2NvdW50eSddID0gKHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MucmVnaW9uKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MucmVnaW9uKSA6ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydzaGlwcGluZ0FkZHJlc3MnXVsncG9zdENvZGUnXSA9ICh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgdGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzLnBvc3Rjb2RlKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MucG9zdGNvZGUpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ3NoaXBwaW5nQWRkcmVzcyddWydjb3VudHJ5J10gPSAodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jb3VudHJ5KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MuY291bnRyeSkgOiAnJztcclxuXHJcbiAgICAgICAgLy8gYmFza2V0U3VtbWFyeSBcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5WydkaXNjb3VudFRvdGFsJ10gPSBOdW1iZXIodGhpcy5kb2N1bWVudC5kaXNjb3VudF9hbW91bnQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5kaXNjb3VudF9hbW91bnQpIDogMCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeVsnVkFUVG90YWwnXSA9IE51bWJlcih0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcGFpZCA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcGFpZCkgOiAwKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5WydzYWxlVG90YWwnXSA9IE51bWJlcih0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfaW52b2ljZWQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX2ludm9pY2VkKSA6IDApO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFN1bW1hcnlbJ2Jhc2tldFRvdGFsJ10gPSBOdW1iZXIodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX3BhaWQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX3BhaWQpIDogMCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeVsndG90YWxJdGVtcyddID0gTnVtYmVyKHRoaXMuZG9jdW1lbnQudG90YWxfcXR5X29yZGVyZWQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC50b3RhbF9xdHlfb3JkZXJlZCkgOiAwKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5WydyZWZ1bmRUb3RhbCddID0gTnVtYmVyKHRoaXMuZG9jdW1lbnQuYmFzZV90b3RhbF9yZWZ1bmRlZCA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcmVmdW5kZWQpIDogMCk7XHJcblxyXG4gICAgICAgIC8vIGJhc2tldCBsaW5lIGRpc2NvdW50XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0WydsaW5lRGlzY291bnQnXSA9IFtdO1xyXG5cclxuICAgICAgICBsZXQgbGluZURpc2NvdW50ID0ge1xyXG4gICAgICAgICAgICBpdGVtTGluZUlkOiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLml0ZW1faWQpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5pdGVtX2lkKSA6IDAsXHJcbiAgICAgICAgICAgIGRpc2NvdW50QW1vdW50OiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLmRpc2NvdW50X2Ftb3VudCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5kaXNjb3VudF9hbW91bnQpKSA6IDBcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0WydsaW5lRGlzY291bnQnXS5wdXNoKGxpbmVEaXNjb3VudCk7XHJcblxyXG4gICAgICAgIC8vIGJhc2tldCB0cmFuc2FjdGlvbiBkaXNjb3VudFxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsndHJhbnNhY3Rpb25EaXNjb3VudCddID0gW107XHJcblxyXG4gICAgICAgIGxldCB0cmFuc2FjdGlvbkRpc2NvdW50ID0ge1xyXG4gICAgICAgICAgICBkaXNjb3VudEFtb3VudDogKHRoaXMuZG9jdW1lbnQgJiYgdGhpcy5kb2N1bWVudC5kaXNjb3VudF9hbW91bnQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmRpc2NvdW50X2Ftb3VudCkpIDogMFxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3RyYW5zYWN0aW9uRGlzY291bnQnXS5wdXNoKHRyYW5zYWN0aW9uRGlzY291bnQpO1xyXG5cclxuICAgICAgICAvLyBiYXNrZXQgcHJvZHVjdHMgXHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0Wydwcm9kdWN0cyddID0gW107XHJcbiAgICAgICAgbGV0IHByb2R1Y3QgOiBhbnk9IHt9O1xyXG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBxdHkgPSB0aGlzLmdldFRleHQoZWxlbWVudC5xdHlfb3JkZXJlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQucXR5X29yZGVyZWQpKSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlZnVuZFF0eSA9IHRoaXMuZ2V0VGV4dChlbGVtZW50LnF0eV9yZWZ1bmRlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQucXR5X3JlZnVuZGVkKSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmljZSA9IHRoaXMuZ2V0VGV4dChlbGVtZW50LmJhc2Vfb3JpZ2luYWxfcHJpY2UpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50LmJhc2Vfb3JpZ2luYWxfcHJpY2UpKSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IChlbGVtZW50Lm5hbWUpID8gdGhpcy5nZXRUZXh0KGVsZW1lbnQubmFtZSkgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgU0tVOiAoZWxlbWVudC5za3UpID8gdGhpcy5nZXRUZXh0KGVsZW1lbnQuc2t1KSA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWFudGl0eTogKGVsZW1lbnQucXR5X29yZGVyZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50LnF0eV9vcmRlcmVkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZ1bmRlZFF1YW50aXR5OiAoZWxlbWVudC5xdHlfcmVmdW5kZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50LnF0eV9yZWZ1bmRlZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2U6IChlbGVtZW50Lm9yaWdpbmFsX3ByaWNlKSA/IE51bWJlcih0aGlzLmdldFRleHQoZWxlbWVudC5vcmlnaW5hbF9wcmljZSkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUxpbmVJZDogKGVsZW1lbnQuaXRlbV9pZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQuaXRlbV9pZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG90YWxMaW5lUHJpY2U6IChlbGVtZW50LnJvd19pbnZvaWNlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQucm93X2ludm9pY2VkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbExpbmVQcmljZTogKChxdHkgLSByZWZ1bmRRdHkpICogcHJpY2UpLFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvZHVjdCAmJiBwcm9kdWN0LnByaWNlICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0Wydwcm9kdWN0cyddLnB1c2gocHJvZHVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcXR5ID0gKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfb3JkZXJlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfb3JkZXJlZCkpIDogMDtcclxuICAgICAgICAgICAgICAgIGxldCByZWZ1bmRRdHkgPSAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9yZWZ1bmRlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfcmVmdW5kZWQpKSA6IDA7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJpY2UgPSAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLm9yaWdpbmFsX3ByaWNlKSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLm9yaWdpbmFsX3ByaWNlKSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgcHJvZHVjdCA9IHtcclxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5uYW1lKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ubmFtZSkgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICBTS1U6ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uc2t1KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uc2t1KSA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIHF1YW50aXR5OiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9vcmRlcmVkKSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9vcmRlcmVkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlZnVuZGVkUXVhbnRpdHk6ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucXR5X3JlZnVuZGVkKSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9yZWZ1bmRlZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICBwcmljZTogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5vcmlnaW5hbF9wcmljZSkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5vcmlnaW5hbF9wcmljZSkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICBpdGVtTGluZUlkOiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLml0ZW1faWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uaXRlbV9pZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAvLyB0b3RhbExpbmVQcmljZTogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5yb3dfaW52b2ljZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucm93X2ludm9pY2VkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsTGluZVByaWNlOiAoKHF0eSAtIHJlZnVuZFF0eSkgKiBwcmljZSksXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvZHVjdCAmJiBwcm9kdWN0LnByaWNlICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3Byb2R1Y3RzJ10ucHVzaChwcm9kdWN0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBkZXZpY2VJZChkZXZpY2VJZCkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmRldmljZUlkID0gZGV2aWNlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdGVybWluYWxJZCh0ZXJtaW5hbElkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudGVybWluYWxJZCA9IHRlcm1pbmFsSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgb3JnQ29kZShvcmdDb2RlKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Qub3JnQ29kZSA9IG9yZ0NvZGU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVJZChzdG9yZUlkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVJZCA9IHN0b3JlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVOb2RlSWQoc3RvcmVOb2RlSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN0b3JlTm9kZUlkID0gc3RvcmVOb2RlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVOb2RlU3RydWN0dXJlKHN0b3JlTm9kZVN0cnVjdHVyZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVOb2RlU3RydWN0dXJlID0gc3RvcmVOb2RlU3RydWN0dXJlO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGRvY0lkKGRvY0lkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaWQgPSBkb2NJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVVc2VySUQodXNlcklEOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51c2VySWQgPSB1c2VySUQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVXNlck5hbWUobmFtZSkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVzZXJOYW1lID0gbmFtZTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBidWlsZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy53ZWJSZXR1cm5PYmplY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VGV4dChvYmopIHtcclxuICAgICAgICBpZiAob2JqICYmIG9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvYmoudGV4dDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRVVENEYXRlVGltZShkYXRlKSB7XHJcbiAgICAgICAgaWYgKGRhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpLnRvSVNPU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
371
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViUmV0dXJuLW1hcHBlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BwbWNyZXRhaWwvbWFwcGVyLWxpYnJhcnkvIiwic291cmNlcyI6WyJsaWIvV2ViUmV0dXJuLW1hcHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBO0lBOEJJLHFDQUFZLFFBQVE7UUEzQlosb0JBQWUsR0FBd0I7WUFDM0MsRUFBRSxFQUFFLEVBQUU7WUFDTixPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxFQUFFO1lBQ1gsV0FBVyxFQUFFLEVBQUU7WUFDZixrQkFBa0IsRUFBRSxFQUFFO1lBQ3RCLFFBQVEsRUFBRSxFQUFFO1lBQ1osVUFBVSxFQUFFLEVBQUU7WUFDZCxnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsY0FBYyxFQUFFLEtBQUs7WUFDckIsTUFBTSxFQUFFLEVBQUU7WUFDVixhQUFhLEVBQUUsRUFBRTtZQUNqQixZQUFZLEVBQUUsRUFBRTtZQUNoQixRQUFRLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osRUFBRSxFQUFFLEVBQUU7Z0JBQ04sY0FBYyxFQUFFLEVBQUU7Z0JBQ2xCLGVBQWUsRUFBRSxFQUFFO2FBRXRCO1lBQ0QseUJBQXlCLEVBQUUsbUJBQUEsRUFBRSxFQUE2QjtTQUM3RCxDQUFBO1FBR0csSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztTQUM1QjtJQUNMLENBQUM7Ozs7OztJQUVELHFEQUFlOzs7OztJQUFmO1FBQUEsaUJBeUdDO1FBeEdHLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUM7UUFDN0MsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVB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VSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbk0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0wsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDak0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdk0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFcE0sbUJBQW1CO1FBQ25CLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9MLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNNLG1C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MkNBQUs7OztJQUFMO1FBQ0ksT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7Ozs7O0lBRUQsNkNBQU87Ozs7SUFBUCxVQUFRLEdBQUc7UUFDUCxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFO1lBQ2pCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztTQUNuQjthQUFNO1lBQ0gsT0FBTyxHQUFHLENBQUM7U0FDZDtJQUNMLENBQUM7Ozs7O0lBRUQsb0RBQWM7Ozs7SUFBZCxVQUFlLElBQUk7UUFDZixJQUFJLElBQUksRUFBRTtZQUNOLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdkM7SUFDTCxDQUFDOzs7Ozs7SUFFRCxvREFBYzs7Ozs7SUFBZDtRQUNJLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztRQUM5RixJQUFHLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssV0FBVyxFQUFDO1lBQ3JHLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1NBQzlDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4RUFBOEUsQ0FBQyxDQUFDO1FBQzVGLE9BQU8sbUJBQUEsSUFBSSxFQUFBLENBQUM7SUFDaEIsQ0FBQztJQUNMLGtDQUFDO0FBQUQsQ0FBQyxBQXRORCxJQXNOQzs7Ozs7OztJQXBORywrQ0FBc0I7Ozs7O0lBQ3RCLHNEQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHMsIFRyYW5zYWN0aW9uRG9jdW1lbnQgfSBmcm9tIFwiLi9tYXBwZXItbGlicmFyeS5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFdlYlJldHVybk1hcHBlckJ1aWxkZXJDbGFzcyB7XHJcblxyXG4gICAgcHJpdmF0ZSBkb2N1bWVudDogYW55O1xyXG4gICAgcHJpdmF0ZSB3ZWJSZXR1cm5PYmplY3Q6IFRyYW5zYWN0aW9uRG9jdW1lbnQgPSB7XHJcbiAgICAgICAgaWQ6ICcnLFxyXG4gICAgICAgIG9yZ0NvZGU6IFwiXCIsXHJcbiAgICAgICAgc3RvcmVJZDogXCJcIixcclxuICAgICAgICBzdG9yZU5vZGVJZDogXCJcIixcclxuICAgICAgICBzdG9yZU5vZGVTdHJ1Y3R1cmU6IFwiXCIsXHJcbiAgICAgICAgZGV2aWNlSWQ6IFwiXCIsXHJcbiAgICAgICAgdGVybWluYWxJZDogXCJcIixcclxuICAgICAgICBpbml0aWF0aW5nTW9kdWxlOiBcIlwiLFxyXG4gICAgICAgIGV4cG9ydDogZmFsc2UsXHJcbiAgICAgICAgaXNJblN0b3JlT3JkZXI6IGZhbHNlLFxyXG4gICAgICAgIGJhc2tldDoge30sXHJcbiAgICAgICAgYmFza2V0U3VtbWFyeToge30sXHJcbiAgICAgICAgYmFzZUN1cnJlbmN5OiBcIlwiLFxyXG4gICAgICAgIGN1c3RvbWVyOiB7XHJcbiAgICAgICAgICAgIGZpcnN0TmFtZTogJycsXHJcbiAgICAgICAgICAgIGxhc3ROYW1lOiAnJyxcclxuICAgICAgICAgICAgZW1haWw6ICcnLFxyXG4gICAgICAgICAgICBwb3N0Q29kZTogJycsXHJcbiAgICAgICAgICAgIGlkOiAnJyxcclxuICAgICAgICAgICAgYmlsbGluZ0FkZHJlc3M6IHt9LFxyXG4gICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3M6IHt9LFxyXG5cclxuICAgICAgICB9LFxyXG4gICAgICAgIGN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHM6IHt9IGFzIEN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHNcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihkb2N1bWVudCkge1xyXG4gICAgICAgIGlmIChkb2N1bWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIFdlYlJldHVybk1hcHBlcigpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsndHlwZSddID0gJ1dFQl9SRVRVUk5TJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnZGF0ZXRpbWUnXSA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQudXBkYXRlZF9hdCkpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2VDdXJyZW5jeSA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJhc2VfY3VycmVuY3lfY29kZSk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVJZCA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnN0b3JlX2lkKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdWJzaWRpYXJ5SWQgPSAnMSc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaW5pdGlhdGluZ01vZHVsZSA9ICdNQUdFTlRPJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5jcmVhdGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmNyZWF0ZWRfYXQpKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51cGRhdGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnVwZGF0ZWRfYXQpKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5leHBvcnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnRyYW5zQ29tcGxldGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnVwZGF0ZWRfYXQpKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnZXh0ZXJuYWxUcmFuc2FjdGlvbklkJ10gPSB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5vcmRlcl9pZCk7XHJcblxyXG4gICAgICAgIC8vIGN1c3RvbWVyXHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ2ZpcnN0TmFtZSddID0gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuY3VzdG9tZXJfZmlyc3RuYW1lKSB8fCAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnbGFzdE5hbWUnXSA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmN1c3RvbWVyX2xhc3RuYW1lKSB8fCAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnZW1haWwnXSA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmN1c3RvbWVyX2VtYWlsKSB8fCAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsncG9zdENvZGUnXSA9ICcnO1xyXG5cclxuICAgICAgICAvLyBCaWxsaW5nIGFkZHJlc3NcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnYmlsbGluZ0FkZHJlc3MnXVsnYWRkcmVzczEnXSA9ICh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5zdHJlZXQpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnN0cmVldCkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnYmlsbGluZ0FkZHJlc3MnXVsnY2l0eSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNpdHkpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNpdHkpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ2JpbGxpbmdBZGRyZXNzJ11bJ2NvdW50eSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnJlZ2lvbikgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MucmVnaW9uKSA6ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydiaWxsaW5nQWRkcmVzcyddWydwb3N0Q29kZSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnBvc3Rjb2RlKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5wb3N0Y29kZSkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnYmlsbGluZ0FkZHJlc3MnXVsnY291bnRyeSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNvdW50cnkpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNvdW50cnkpIDogJyc7XHJcblxyXG4gICAgICAgIC8vIFNoaXBwaW5nIGFkZHJlc3NcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnc2hpcHBpbmdBZGRyZXNzJ11bJ2FkZHJlc3MxJ10gPSAodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5zdHJlZXQpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5zdHJlZXQpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ3NoaXBwaW5nQWRkcmVzcyddWydjaXR5J10gPSAodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jaXR5KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MuY2l0eSkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnc2hpcHBpbmdBZGRyZXNzJ11bJ2NvdW50eSddID0gKHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MucmVnaW9uKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MucmVnaW9uKSA6ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydzaGlwcGluZ0FkZHJlc3MnXVsncG9zdENvZGUnXSA9ICh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgdGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzLnBvc3Rjb2RlKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MucG9zdGNvZGUpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ3NoaXBwaW5nQWRkcmVzcyddWydjb3VudHJ5J10gPSAodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jb3VudHJ5KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MuY291bnRyeSkgOiAnJztcclxuXHJcbiAgICAgICAgLy8gYmFza2V0U3VtbWFyeSBcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5WydkaXNjb3VudFRvdGFsJ10gPSBOdW1iZXIodGhpcy5kb2N1bWVudC5kaXNjb3VudF9hbW91bnQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5kaXNjb3VudF9hbW91bnQpIDogMCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeVsnVkFUVG90YWwnXSA9IE51bWJlcih0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcGFpZCA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcGFpZCkgOiAwKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5WydzYWxlVG90YWwnXSA9IE51bWJlcih0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfaW52b2ljZWQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX2ludm9pY2VkKSA6IDApO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFN1bW1hcnlbJ2Jhc2tldFRvdGFsJ10gPSBOdW1iZXIodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX3BhaWQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX3BhaWQpIDogMCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeVsndG90YWxJdGVtcyddID0gTnVtYmVyKHRoaXMuZG9jdW1lbnQudG90YWxfcXR5X29yZGVyZWQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC50b3RhbF9xdHlfb3JkZXJlZCkgOiAwKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5WydyZWZ1bmRUb3RhbCddID0gTnVtYmVyKHRoaXMuZG9jdW1lbnQuYmFzZV90b3RhbF9yZWZ1bmRlZCA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcmVmdW5kZWQpIDogMCk7XHJcblxyXG4gICAgICAgIC8vIC8vIGJhc2tldCBsaW5lIGRpc2NvdW50XHJcbiAgICAgICAgLy8gdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0WydsaW5lRGlzY291bnQnXSA9IFtdO1xyXG5cclxuICAgICAgICAvLyBsZXQgbGluZURpc2NvdW50ID0ge1xyXG4gICAgICAgIC8vICAgICBpdGVtTGluZUlkOiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLml0ZW1faWQpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5pdGVtX2lkKSA6IDAsXHJcbiAgICAgICAgLy8gICAgIGRpc2NvdW50QW1vdW50OiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLmRpc2NvdW50X2Ftb3VudCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5kaXNjb3VudF9hbW91bnQpKSA6IDBcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0WydsaW5lRGlzY291bnQnXS5wdXNoKGxpbmVEaXNjb3VudCk7XHJcblxyXG4gICAgICAgIC8vIGJhc2tldCB0cmFuc2FjdGlvbiBkaXNjb3VudFxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsndHJhbnNhY3Rpb25EaXNjb3VudCddID0gW107XHJcblxyXG4gICAgICAgIGxldCB0cmFuc2FjdGlvbkRpc2NvdW50ID0ge1xyXG4gICAgICAgICAgICBkaXNjb3VudEFtb3VudDogKHRoaXMuZG9jdW1lbnQgJiYgdGhpcy5kb2N1bWVudC5kaXNjb3VudF9hbW91bnQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmRpc2NvdW50X2Ftb3VudCkpIDogMFxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3RyYW5zYWN0aW9uRGlzY291bnQnXS5wdXNoKHRyYW5zYWN0aW9uRGlzY291bnQpO1xyXG5cclxuICAgICAgICAvLyBiYXNrZXQgcHJvZHVjdHMgXHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0Wydwcm9kdWN0cyddID0gW107XHJcbiAgICAgICAgbGV0IHByb2R1Y3QgOiBhbnk9IHt9O1xyXG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBxdHkgPSB0aGlzLmdldFRleHQoZWxlbWVudC5xdHlfb3JkZXJlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQucXR5X29yZGVyZWQpKSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlZnVuZFF0eSA9IHRoaXMuZ2V0VGV4dChlbGVtZW50LnF0eV9yZWZ1bmRlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQucXR5X3JlZnVuZGVkKSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmljZSA9IHRoaXMuZ2V0VGV4dChlbGVtZW50LnByaWNlX2luY2xfdGF4KSA/IE51bWJlcih0aGlzLmdldFRleHQoZWxlbWVudC5wcmljZV9pbmNsX3RheCkpIDogMDtcclxuICAgICAgICAgICAgICAgICAgICBwcm9kdWN0ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogKGVsZW1lbnQubmFtZSkgPyB0aGlzLmdldFRleHQoZWxlbWVudC5uYW1lKSA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBTS1U6IChlbGVtZW50LnNrdSkgPyB0aGlzLmdldFRleHQoZWxlbWVudC5za3UpIDogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1YW50aXR5OiAoZWxlbWVudC5xdHlfb3JkZXJlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQucXR5X29yZGVyZWQpKSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnVuZGVkUXVhbnRpdHk6IChlbGVtZW50LnF0eV9yZWZ1bmRlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQucXR5X3JlZnVuZGVkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL3ByaWNlOiAoZWxlbWVudC5vcmlnaW5hbF9wcmljZSkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQub3JpZ2luYWxfcHJpY2UpKSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaWNlOiBwcmljZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1MaW5lSWQ6IChlbGVtZW50Lml0ZW1faWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50Lml0ZW1faWQpKSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvdGFsTGluZVByaWNlOiAoZWxlbWVudC5yb3dfaW52b2ljZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50LnJvd19pbnZvaWNlZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxMaW5lUHJpY2U6ICgocXR5IC0gcmVmdW5kUXR5KSAqIHByaWNlKSxcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2R1Y3QgJiYgcHJvZHVjdC5wcmljZSAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsncHJvZHVjdHMnXS5wdXNoKHByb2R1Y3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IHF0eSA9ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucXR5X29yZGVyZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucXR5X29yZGVyZWQpKSA6IDA7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVmdW5kUXR5ID0gKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfcmVmdW5kZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucXR5X3JlZnVuZGVkKSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgbGV0IHByaWNlID0gKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5wcmljZV9pbmNsX3RheCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5wcmljZV9pbmNsX3RheCkpIDogMDtcclxuICAgICAgICAgICAgICAgIHByb2R1Y3QgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ubmFtZSkgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLm5hbWUpIDogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgU0tVOiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnNrdSkgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnNrdSkgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICBxdWFudGl0eTogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfb3JkZXJlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfb3JkZXJlZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICByZWZ1bmRlZFF1YW50aXR5OiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9yZWZ1bmRlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfcmVmdW5kZWQpKSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcHJpY2U6ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ub3JpZ2luYWxfcHJpY2UpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ub3JpZ2luYWxfcHJpY2UpKSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgcHJpY2U6IHByaWNlLFxyXG5cclxuICAgICAgICAgICAgICAgICAgICBpdGVtTGluZUlkOiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLml0ZW1faWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uaXRlbV9pZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAvLyB0b3RhbExpbmVQcmljZTogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5yb3dfaW52b2ljZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucm93X2ludm9pY2VkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsTGluZVByaWNlOiAoKHF0eSAtIHJlZnVuZFF0eSkgKiBwcmljZSksXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvZHVjdCAmJiBwcm9kdWN0LnByaWNlICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3Byb2R1Y3RzJ10ucHVzaChwcm9kdWN0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBkZXZpY2VJZChkZXZpY2VJZCkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmRldmljZUlkID0gZGV2aWNlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdGVybWluYWxJZCh0ZXJtaW5hbElkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudGVybWluYWxJZCA9IHRlcm1pbmFsSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgb3JnQ29kZShvcmdDb2RlKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Qub3JnQ29kZSA9IG9yZ0NvZGU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVJZChzdG9yZUlkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVJZCA9IHN0b3JlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVOb2RlSWQoc3RvcmVOb2RlSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN0b3JlTm9kZUlkID0gc3RvcmVOb2RlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVOb2RlU3RydWN0dXJlKHN0b3JlTm9kZVN0cnVjdHVyZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVOb2RlU3RydWN0dXJlID0gc3RvcmVOb2RlU3RydWN0dXJlO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGRvY0lkKGRvY0lkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaWQgPSBkb2NJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVVc2VySUQodXNlcklEOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51c2VySWQgPSB1c2VySUQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVXNlck5hbWUobmFtZSkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVzZXJOYW1lID0gbmFtZTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBidWlsZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy53ZWJSZXR1cm5PYmplY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VGV4dChvYmopIHtcclxuICAgICAgICBpZiAob2JqICYmIG9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvYmoudGV4dDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRVVENEYXRlVGltZShkYXRlKSB7XHJcbiAgICAgICAgaWYgKGRhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpLnRvSVNPU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlzSW5TdG9yZU9yZGVyKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVybk1hcHBlckJ1aWxkZXJDbGFzczogaXNJblN0b3JlT3JkZXIgbWFwcGluZyBzdGFydGVkLi4uXCIpOyBcclxuICAgICAgICBpZih0aGlzLmRvY3VtZW50LnBheW1lbnQgJiYgdGhpcy5kb2N1bWVudC5wYXltZW50Lm1ldGhvZCAmJiB0aGlzLmRvY3VtZW50LnBheW1lbnQubWV0aG9kID09PSAncG9zX29yZGVyJyl7XHJcbiAgICAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmlzSW5TdG9yZU9yZGVyID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuTWFwcGVyQnVpbGRlckNsYXNzOiBpc0luU3RvcmVPcmRlciBtYXBwaW5nIGVuZGVkLi4uXCIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -26,4 +26,4 @@ var MapperLibraryComponent = /** @class */ (function () {
|
|
|
26
26
|
return MapperLibraryComponent;
|
|
27
27
|
}());
|
|
28
28
|
export { MapperLibraryComponent };
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHBtY3JldGFpbC9tYXBwZXItbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9tYXBwZXItbGlicmFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxEO0lBWUU7SUFBZ0IsQ0FBQzs7OztJQUVqQix5Q0FBUTs7O0lBQVI7SUFDQSxDQUFDOztnQkFmRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLHNEQUlUO2lCQUdGOzs7O0lBUUQsNkJBQUM7Q0FBQSxBQWpCRCxJQWlCQztTQVBZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1tYXBwZXItbGlicmFyeScsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxwPlxyXG4gICAgICBtYXBwZXItbGlicmFyeSB3b3JrcyFcclxuICAgIDwvcD5cclxuICBgLFxyXG4gIHN0eWxlczogW1xyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hcHBlckxpYnJhcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -22,4 +22,4 @@ var MapperLibraryModule = /** @class */ (function () {
|
|
|
22
22
|
return MapperLibraryModule;
|
|
23
23
|
}());
|
|
24
24
|
export { MapperLibraryModule };
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHBtY3JldGFpbC9tYXBwZXItbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9tYXBwZXItbGlicmFyeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXBFO0lBQUE7SUFVbUMsQ0FBQzs7Z0JBVm5DLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUUsRUFDUjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asc0JBQXNCO3FCQUN2QjtpQkFDRjs7SUFDa0MsMEJBQUM7Q0FBQSxBQVZwQyxJQVVvQztTQUF2QixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXBwZXJMaWJyYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi9tYXBwZXItbGlicmFyeS5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgTWFwcGVyTGlicmFyeUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTWFwcGVyTGlicmFyeUNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hcHBlckxpYnJhcnlNb2R1bGUgeyB9XHJcbiJdfQ==
|