jsii-diff 1.58.0 → 1.60.1
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/bin/jsii-diff.d.ts +1 -0
- package/bin/jsii-diff.d.ts.map +1 -0
- package/bin/jsii-diff.js +9 -9
- package/bin/jsii-diff.js.map +1 -0
- package/lib/diagnostics.d.ts +1 -0
- package/lib/diagnostics.d.ts.map +1 -0
- package/lib/diagnostics.js +1 -1
- package/lib/diagnostics.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -0
- package/lib/stability.d.ts +1 -0
- package/lib/stability.d.ts.map +1 -0
- package/lib/stability.js +1 -1
- package/lib/stability.js.map +1 -0
- package/lib/type-analysis.d.ts +1 -0
- package/lib/type-analysis.d.ts.map +1 -0
- package/lib/type-analysis.js +3 -3
- package/lib/type-analysis.js.map +1 -0
- package/lib/type-comparison.d.ts +1 -0
- package/lib/type-comparison.d.ts.map +1 -0
- package/lib/type-comparison.js +41 -42
- package/lib/type-comparison.js.map +1 -0
- package/lib/types.d.ts +1 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +2 -3
- package/lib/types.js.map +1 -0
- package/lib/util.d.ts +1 -0
- package/lib/util.d.ts.map +1 -0
- package/lib/util.js +1 -1
- package/lib/util.js.map +1 -0
- package/lib/validations.d.ts +1 -0
- package/lib/validations.d.ts.map +1 -0
- package/lib/validations.js +5 -5
- package/lib/validations.js.map +1 -0
- package/lib/version.d.ts +2 -1
- package/lib/version.d.ts.map +1 -0
- package/lib/version.js +3 -3
- package/lib/version.js.map +1 -0
- package/package.json +9 -15
- package/test/classes.test.d.ts +1 -0
- package/test/classes.test.d.ts.map +1 -0
- package/test/classes.test.js +33 -33
- package/test/classes.test.js.map +1 -0
- package/test/diagnostics.test.d.ts +1 -0
- package/test/diagnostics.test.d.ts.map +1 -0
- package/test/diagnostics.test.js +22 -22
- package/test/diagnostics.test.js.map +1 -0
- package/test/enums.test.d.ts +1 -0
- package/test/enums.test.d.ts.map +1 -0
- package/test/enums.test.js +4 -4
- package/test/enums.test.js.map +1 -0
- package/test/structs.test.d.ts +1 -0
- package/test/structs.test.d.ts.map +1 -0
- package/test/structs.test.js +12 -12
- package/test/structs.test.js.map +1 -0
- package/test/type-unions.test.d.ts +1 -0
- package/test/type-unions.test.d.ts.map +1 -0
- package/test/type-unions.test.js +7 -7
- package/test/type-unions.test.js.map +1 -0
- package/test/util.d.ts +1 -0
- package/test/util.d.ts.map +1 -0
- package/test/util.js +4 -4
- package/test/util.js.map +1 -0
package/lib/type-comparison.js
CHANGED
|
@@ -40,7 +40,7 @@ class AssemblyComparison {
|
|
|
40
40
|
this.mismatches.report({
|
|
41
41
|
ruleKey: 'iface-type',
|
|
42
42
|
violator: origIface,
|
|
43
|
-
message: `used to be a ${types_1.describeInterfaceType(origIface.datatype)}, is now a ${types_1.describeInterfaceType(updatedIface.datatype)}.`,
|
|
43
|
+
message: `used to be a ${(0, types_1.describeInterfaceType)(origIface.datatype)}, is now a ${(0, types_1.describeInterfaceType)(updatedIface.datatype)}.`,
|
|
44
44
|
});
|
|
45
45
|
continue;
|
|
46
46
|
}
|
|
@@ -94,11 +94,11 @@ class AssemblyComparison {
|
|
|
94
94
|
});
|
|
95
95
|
continue;
|
|
96
96
|
}
|
|
97
|
-
if (types_1.describeType(origType) !== types_1.describeType(updatedType)) {
|
|
97
|
+
if ((0, types_1.describeType)(origType) !== (0, types_1.describeType)(updatedType)) {
|
|
98
98
|
this.mismatches.report({
|
|
99
99
|
ruleKey: 'struct-change',
|
|
100
100
|
violator: origType,
|
|
101
|
-
message: `has been turned into a ${types_1.describeType(updatedType)}`,
|
|
101
|
+
message: `has been turned into a ${(0, types_1.describeType)(updatedType)}`,
|
|
102
102
|
});
|
|
103
103
|
continue;
|
|
104
104
|
}
|
|
@@ -207,11 +207,11 @@ class ComparableReferenceType extends ComparableType {
|
|
|
207
207
|
* Compare members of the reference types
|
|
208
208
|
*/
|
|
209
209
|
compare() {
|
|
210
|
-
stability_1.validateStabilities(this.oldType, this.newType, this.mismatches);
|
|
211
|
-
validations_1.validateBaseTypeAssignability(this.oldType, this.newType, this.mismatches);
|
|
212
|
-
validations_1.validateSubclassableNotRemoved(this.oldType, this.newType, this.mismatches);
|
|
210
|
+
(0, stability_1.validateStabilities)(this.oldType, this.newType, this.mismatches);
|
|
211
|
+
(0, validations_1.validateBaseTypeAssignability)(this.oldType, this.newType, this.mismatches);
|
|
212
|
+
(0, validations_1.validateSubclassableNotRemoved)(this.oldType, this.newType, this.mismatches);
|
|
213
213
|
if (this.subclassableType) {
|
|
214
|
-
validations_1.validateNoNewAbstractMembers(this.oldType, this.newType, this.mismatches);
|
|
214
|
+
(0, validations_1.validateNoNewAbstractMembers)(this.oldType, this.newType, this.mismatches);
|
|
215
215
|
}
|
|
216
216
|
this.validateMethods();
|
|
217
217
|
this.validateProperties();
|
|
@@ -231,7 +231,7 @@ class ComparableReferenceType extends ComparableType {
|
|
|
231
231
|
* Validate type signatures on all methods
|
|
232
232
|
*/
|
|
233
233
|
validateMethods() {
|
|
234
|
-
for (const [orig, updated] of validations_1.memberPairs(this.oldType, this.oldType.allMethods, this.newType, this.mismatches)) {
|
|
234
|
+
for (const [orig, updated] of (0, validations_1.memberPairs)(this.oldType, this.oldType.allMethods, this.newType, this.mismatches)) {
|
|
235
235
|
if (reflect.isMethod(updated)) {
|
|
236
236
|
this.validateMethod(orig, updated);
|
|
237
237
|
}
|
|
@@ -241,13 +241,13 @@ class ComparableReferenceType extends ComparableType {
|
|
|
241
241
|
* Validate type signature changes on the given method
|
|
242
242
|
*/
|
|
243
243
|
validateMethod(original, updated) {
|
|
244
|
-
validations_1.validateStaticSame(original, updated, this.mismatches);
|
|
245
|
-
validations_1.validateAsyncSame(original, updated, this.mismatches);
|
|
244
|
+
(0, validations_1.validateStaticSame)(original, updated, this.mismatches);
|
|
245
|
+
(0, validations_1.validateAsyncSame)(original, updated, this.mismatches);
|
|
246
246
|
if (this.subclassableType) {
|
|
247
|
-
validations_1.validateReturnTypeSame(original, updated, this.mismatches.withMotivation('type is @subclassable'));
|
|
247
|
+
(0, validations_1.validateReturnTypeSame)(original, updated, this.mismatches.withMotivation('type is @subclassable'));
|
|
248
248
|
}
|
|
249
249
|
else {
|
|
250
|
-
validations_1.validateReturnTypeNotWeakened(original, updated, this.mismatches);
|
|
250
|
+
(0, validations_1.validateReturnTypeNotWeakened)(original, updated, this.mismatches);
|
|
251
251
|
}
|
|
252
252
|
this.validateCallable(original, updated);
|
|
253
253
|
}
|
|
@@ -255,24 +255,24 @@ class ComparableReferenceType extends ComparableType {
|
|
|
255
255
|
* Validate type signature changes on the given callable (method or initializer)
|
|
256
256
|
*/
|
|
257
257
|
validateCallable(original, updated) {
|
|
258
|
-
stability_1.validateStabilities(original, updated, this.mismatches);
|
|
259
|
-
validations_1.validateNotMadeNonVariadic(original, updated, this.mismatches);
|
|
258
|
+
(0, stability_1.validateStabilities)(original, updated, this.mismatches);
|
|
259
|
+
(0, validations_1.validateNotMadeNonVariadic)(original, updated, this.mismatches);
|
|
260
260
|
// Check that every original parameter can still be mapped to a parameter in the updated method
|
|
261
|
-
validations_1.validateExistingParams(original, updated, this.mismatches, (oldParam, newParam) => {
|
|
261
|
+
(0, validations_1.validateExistingParams)(original, updated, this.mismatches, (oldParam, newParam) => {
|
|
262
262
|
if (this.subclassableType) {
|
|
263
|
-
validations_1.validateParameterTypeSame(original, oldParam, newParam, this.mismatches.withMotivation('type is @subclassable'));
|
|
263
|
+
(0, validations_1.validateParameterTypeSame)(original, oldParam, newParam, this.mismatches.withMotivation('type is @subclassable'));
|
|
264
264
|
}
|
|
265
265
|
else {
|
|
266
|
-
validations_1.validateParameterTypeWeakened(original, oldParam, newParam, this.mismatches);
|
|
266
|
+
(0, validations_1.validateParameterTypeWeakened)(original, oldParam, newParam, this.mismatches);
|
|
267
267
|
}
|
|
268
268
|
});
|
|
269
|
-
validations_1.validateNoNewRequiredParams(original, updated, this.mismatches);
|
|
269
|
+
(0, validations_1.validateNoNewRequiredParams)(original, updated, this.mismatches);
|
|
270
270
|
}
|
|
271
271
|
/**
|
|
272
272
|
* Validate type signature changes on all properties
|
|
273
273
|
*/
|
|
274
274
|
validateProperties() {
|
|
275
|
-
for (const [orig, updated] of validations_1.memberPairs(this.oldType, this.oldType.allProperties, this.newType, this.mismatches)) {
|
|
275
|
+
for (const [orig, updated] of (0, validations_1.memberPairs)(this.oldType, this.oldType.allProperties, this.newType, this.mismatches)) {
|
|
276
276
|
if (reflect.isProperty(updated)) {
|
|
277
277
|
this.validateProperty(orig, updated);
|
|
278
278
|
}
|
|
@@ -282,28 +282,28 @@ class ComparableReferenceType extends ComparableType {
|
|
|
282
282
|
* Validate type signature changes on the given property
|
|
283
283
|
*/
|
|
284
284
|
validateProperty(original, updated) {
|
|
285
|
-
stability_1.validateStabilities(original, updated, this.mismatches);
|
|
286
|
-
validations_1.validateStaticSame(original, updated, this.mismatches);
|
|
287
|
-
validations_1.validateNotMadeImmutable(original, updated, this.mismatches);
|
|
285
|
+
(0, stability_1.validateStabilities)(original, updated, this.mismatches);
|
|
286
|
+
(0, validations_1.validateStaticSame)(original, updated, this.mismatches);
|
|
287
|
+
(0, validations_1.validateNotMadeImmutable)(original, updated, this.mismatches);
|
|
288
288
|
if (this.subclassableType) {
|
|
289
289
|
// Hello C# my old friend
|
|
290
|
-
validations_1.validatePropertyTypeSame(original, updated, this.mismatches.withMotivation('type is @subclassable'));
|
|
290
|
+
(0, validations_1.validatePropertyTypeSame)(original, updated, this.mismatches.withMotivation('type is @subclassable'));
|
|
291
291
|
}
|
|
292
292
|
else if (!original.immutable) {
|
|
293
293
|
// If the type can be read, it can't be weakened (can't change Dog to Animal, consumers might be counting on a Dog).
|
|
294
294
|
// If the type can be written, it can't be strengthened (can't change Animal to Dog, consumers might be sending a Cat).
|
|
295
295
|
// => it must remain the same
|
|
296
|
-
validations_1.validatePropertyTypeSame(original, updated, this.mismatches.withMotivation('mutable property cannot change type'));
|
|
296
|
+
(0, validations_1.validatePropertyTypeSame)(original, updated, this.mismatches.withMotivation('mutable property cannot change type'));
|
|
297
297
|
}
|
|
298
298
|
else {
|
|
299
|
-
validations_1.validatePropertyTypeNotWeakened(original, updated, this.mismatches);
|
|
299
|
+
(0, validations_1.validatePropertyTypeNotWeakened)(original, updated, this.mismatches);
|
|
300
300
|
}
|
|
301
301
|
}
|
|
302
302
|
/**
|
|
303
303
|
* Whether the current reference type has been marked as subclassable
|
|
304
304
|
*/
|
|
305
305
|
get subclassableType() {
|
|
306
|
-
return validations_1.subclassableType(this.oldType);
|
|
306
|
+
return (0, validations_1.subclassableType)(this.oldType);
|
|
307
307
|
}
|
|
308
308
|
}
|
|
309
309
|
exports.ComparableReferenceType = ComparableReferenceType;
|
|
@@ -313,10 +313,10 @@ class ComparableClassType extends ComparableReferenceType {
|
|
|
313
313
|
*/
|
|
314
314
|
compare() {
|
|
315
315
|
super.compare();
|
|
316
|
-
validations_1.validateNotMadeAbstract(this.oldType, this.newType, this.mismatches);
|
|
316
|
+
(0, validations_1.validateNotMadeAbstract)(this.oldType, this.newType, this.mismatches);
|
|
317
317
|
// JSII assembler has already taken care of inheritance here
|
|
318
318
|
if (this.oldType.initializer && this.newType.initializer) {
|
|
319
|
-
validations_1.validateMethodCompatible(this.oldType.initializer, this.newType.initializer, this.mismatches);
|
|
319
|
+
(0, validations_1.validateMethodCompatible)(this.oldType.initializer, this.newType.initializer, this.mismatches);
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
322
|
/**
|
|
@@ -346,8 +346,8 @@ exports.ComparableInterfaceType = ComparableInterfaceType;
|
|
|
346
346
|
*/
|
|
347
347
|
class ComparableStructType extends ComparableType {
|
|
348
348
|
compare() {
|
|
349
|
-
stability_1.validateStabilities(this.oldType, this.newType, this.mismatches);
|
|
350
|
-
validations_1.validateBaseTypeAssignability(this.oldType, this.newType, this.mismatches);
|
|
349
|
+
(0, stability_1.validateStabilities)(this.oldType, this.newType, this.mismatches);
|
|
350
|
+
(0, validations_1.validateBaseTypeAssignability)(this.oldType, this.newType, this.mismatches);
|
|
351
351
|
this.validateNoPropertiesRemoved();
|
|
352
352
|
if (this.inputType) {
|
|
353
353
|
// If the struct is written, it can't be strengthened (ex: can't change an optional property to required)
|
|
@@ -376,7 +376,7 @@ class ComparableStructType extends ComparableType {
|
|
|
376
376
|
*/
|
|
377
377
|
validateNoPropertiesRemoved() {
|
|
378
378
|
// A single run of memberPairs() with nothing else will do this check.
|
|
379
|
-
Array.from(validations_1.memberPairs(this.oldType, this.oldType.allProperties, this.newType, this.mismatches));
|
|
379
|
+
Array.from((0, validations_1.memberPairs)(this.oldType, this.oldType.allProperties, this.newType, this.mismatches));
|
|
380
380
|
}
|
|
381
381
|
/**
|
|
382
382
|
* Check that the current type is not weakened
|
|
@@ -406,7 +406,7 @@ class ComparableStructType extends ComparableType {
|
|
|
406
406
|
}
|
|
407
407
|
isStructuralSuperType(a, b) {
|
|
408
408
|
try {
|
|
409
|
-
return type_analysis_1.isStructuralSuperType(a, b, this.newType.system);
|
|
409
|
+
return (0, type_analysis_1.isStructuralSuperType)(a, b, this.newType.system);
|
|
410
410
|
}
|
|
411
411
|
catch (e) {
|
|
412
412
|
// We might get an exception if the type is supposed to come from a different
|
|
@@ -424,9 +424,9 @@ class ComparableEnumType extends ComparableType {
|
|
|
424
424
|
* Perform comparisons on enum members
|
|
425
425
|
*/
|
|
426
426
|
compare() {
|
|
427
|
-
stability_1.validateStabilities(this.oldType, this.newType, this.mismatches);
|
|
428
|
-
validations_1.validateExistingMembers(this.oldType, this.newType, this.mismatches, (oldMember, newMember) => {
|
|
429
|
-
stability_1.validateStabilities(oldMember, newMember, this.mismatches);
|
|
427
|
+
(0, stability_1.validateStabilities)(this.oldType, this.newType, this.mismatches);
|
|
428
|
+
(0, validations_1.validateExistingMembers)(this.oldType, this.newType, this.mismatches, (oldMember, newMember) => {
|
|
429
|
+
(0, stability_1.validateStabilities)(oldMember, newMember, this.mismatches);
|
|
430
430
|
});
|
|
431
431
|
}
|
|
432
432
|
}
|
|
@@ -438,15 +438,14 @@ exports.ComparableEnumType = ComparableEnumType;
|
|
|
438
438
|
* - Return type is treated as OUT type
|
|
439
439
|
*/
|
|
440
440
|
function determineTypeRolesFromMethod(comparison, method) {
|
|
441
|
-
var _a;
|
|
442
441
|
if (reflect.isMethod(method)) {
|
|
443
442
|
for (const t of comparison.typesIn(method.returns.type)) {
|
|
444
|
-
t.markAsOutputType(`returned from ${types_1.apiElementIdentifier(method)}`);
|
|
443
|
+
t.markAsOutputType(`returned from ${(0, types_1.apiElementIdentifier)(method)}`);
|
|
445
444
|
}
|
|
446
445
|
}
|
|
447
|
-
for (const param of
|
|
446
|
+
for (const param of method.parameters ?? []) {
|
|
448
447
|
for (const t of comparison.typesIn(param.type)) {
|
|
449
|
-
t.markAsInputType(`input to ${types_1.apiElementIdentifier(method)}`);
|
|
448
|
+
t.markAsInputType(`input to ${(0, types_1.apiElementIdentifier)(method)}`);
|
|
450
449
|
}
|
|
451
450
|
}
|
|
452
451
|
}
|
|
@@ -463,11 +462,11 @@ function determineTypeRolesFromMethod(comparison, method) {
|
|
|
463
462
|
*/
|
|
464
463
|
function determineTypeRolesFromProperty(comparison, property) {
|
|
465
464
|
for (const t of comparison.typesIn(property.type)) {
|
|
466
|
-
t.markAsOutputType(`type of ${types_1.apiElementIdentifier(property)}`);
|
|
465
|
+
t.markAsOutputType(`type of ${(0, types_1.apiElementIdentifier)(property)}`);
|
|
467
466
|
}
|
|
468
467
|
if (!property.immutable) {
|
|
469
468
|
for (const t of comparison.typesIn(property.type)) {
|
|
470
|
-
t.markAsInputType(`type of mutable ${types_1.apiElementIdentifier(property)}`);
|
|
469
|
+
t.markAsInputType(`type of mutable ${(0, types_1.apiElementIdentifier)(property)}`);
|
|
471
470
|
}
|
|
472
471
|
}
|
|
473
472
|
}
|
|
@@ -505,4 +504,4 @@ function describeReasons(reasons) {
|
|
|
505
504
|
}
|
|
506
505
|
return `${reasons[0]} (...and ${reasons.length - 1} more...)`;
|
|
507
506
|
}
|
|
508
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1jb21wYXJpc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidHlwZS1jb21wYXJpc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUF1QztBQUN2Qyx3Q0FBd0M7QUFDeEMsaUNBQWlDO0FBRWpDLDJDQUFrRDtBQUNsRCxtREFBa0U7QUFDbEUsbUNBT2lCO0FBQ2pCLGlDQUEwQztBQUMxQywrQ0FxQnVCO0FBRXZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFMUM7Ozs7R0FJRztBQUNILE1BQWEsa0JBQWtCO0lBSTdCLFlBQW1DLE9BQTBCO1FBQTFCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBRjVDLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztRQUc5RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksa0JBQVUsQ0FBQztZQUMvQixnQkFBZ0IsRUFBRSxPQUFPLENBQUMsbUJBQW1CO2dCQUMzQyxDQUFDLENBQUMsZ0JBQVMsQ0FBQyxZQUFZO2dCQUN4QixDQUFDLENBQUMsZ0JBQVMsQ0FBQyxNQUFNO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksSUFBSSxDQUFDLFFBQTBCLEVBQUUsT0FBeUI7UUFDL0Qsc0NBQXNDO1FBQ3RDLEtBQUssTUFBTSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDakYsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLG1CQUFtQixDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztTQUN2RjtRQUVELEtBQUssTUFBTSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFD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QUFXLEVBQUU7WUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMzQjthQUFNLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwQzthQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNwQjtJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsT0FBaUI7SUFDeEMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN4QixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN4QixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNuQjtJQUNELE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLFdBQVcsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhYmlsaXR5IH0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgKiBhcyBsb2c0anMgZnJvbSAnbG9nNGpzJztcblxuaW1wb3J0IHsgdmFsaWRhdGVTdGFiaWxpdGllcyB9IGZyb20gJy4vc3RhYmlsaXR5JztcbmltcG9ydCB7IGlzU3RydWN0dXJhbFN1cGVyVHlwZSwgQW5hbHlzaXMgfSBmcm9tICcuL3R5cGUtYW5hbHlzaXMnO1xuaW1wb3J0IHtcbiAgZGVzY3JpYmVJbnRlcmZhY2VUeXBlLFxuICBkZXNjcmliZVR5cGUsXG4gIENvbXBhcmlzb25PcHRpb25zLFxuICBNaXNtYXRjaGVzLFxuICBhcGlFbGVtZW50SWRlbnRpZmllcixcbiAgSVJlcG9ydCxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBSZWN1cnNpb25CcmVha2VyIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7XG4gIHZhbGlkYXRlQmFzZVR5cGVBc3NpZ25hYmlsaXR5LFxuICB2YWxpZGF0ZU5vdE1hZGVBYnN0cmFjdCxcbiAgdmFsaWRhdGVTdWJjbGFzc2FibGVOb3RSZW1vdmVkLFxuICB2YWxpZGF0ZU5vTmV3QWJzdHJhY3RNZW1iZXJzLFxuICBzdWJjbGFzc2FibGVUeXBlLFxuICB2YWxpZGF0ZU1ldGhvZENvbXBhdGlibGUsXG4gIG1lbWJlclBhaXJzLFxuICB2YWxpZGF0ZVN0YXRpY1NhbWUsXG4gIHZhbGlkYXRlQXN5bmNTYW1lLFxuICB2YWxpZGF0ZVJldHVyblR5cGVOb3RXZWFrZW5lZCxcbiAgdmFsaWRhdGVOb3RNYWRlTm9uVmFyaWFkaWMsXG4gIHZhbGlkYXRlUmV0dXJuVHlwZVNhbWUsXG4gIHZhbGlkYXRlRXhpc3RpbmdQYXJhbXMsXG4gIHZhbGlkYXRlTm9OZXdSZXF1aXJlZFBhcmFtcyxcbiAgdmFsaWRhdGVQYXJhbWV0ZXJUeXBlV2Vha2VuZWQsXG4gIHZhbGlkYXRlUGFyYW1ldGVyVHlwZVNhbWUsXG4gIHZhbGlkYXRlTm90TWFkZUltbXV0YWJsZSxcbiAgdmFsaWRhdGVQcm9wZXJ0eVR5cGVOb3RXZWFrZW5lZCxcbiAgdmFsaWRhdGVQcm9wZXJ0eVR5cGVTYW1lLFxuICB2YWxpZGF0ZUV4aXN0aW5nTWVtYmVycyxcbn0gZnJvbSAnLi92YWxpZGF0aW9ucyc7XG5cbmNvbnN0IExPRyA9IGxvZzRqcy5nZXRMb2dnZXIoJ2pzaWktZGlmZicpO1xuXG4vKipcbiAqIFJvb3Qgb2JqZWN0IGZvciBjb21wYXJpbmcgdHdvIGFzc2VtYmxpZXNcbiAqXG4gKiBUcmFja3MgbWlzbWF0Y2hlcyBhbmQgdXNlZCBhcyBhIGxvb2t1cCB0YWJsZSB0byBjb252ZXJ0IEZRTnMgLT4gQ29tcGFyYWJsZVR5cGUgb2JqZWN0c1xuICovXG5leHBvcnQgY2xhc3MgQXNzZW1ibHlDb21wYXJpc29uIHtcbiAgcHVibGljIHJlYWRvbmx5IG1pc21hdGNoZXM6IE1pc21hdGNoZXM7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHlwZXMgPSBuZXcgTWFwPHN0cmluZywgQ29tcGFyYWJsZVR5cGU8YW55Pj4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IG9wdGlvbnM6IENvbXBhcmlzb25PcHRpb25zKSB7XG4gICAgdGhpcy5taXNtYXRjaGVzID0gbmV3IE1pc21hdGNoZXMoe1xuICAgICAgZGVmYXVsdFN0YWJpbGl0eTogb3B0aW9ucy5kZWZhdWx0RXhwZXJpbWVudGFsXG4gICAgICAgID8gU3RhYmlsaXR5LkV4cGVyaW1lbnRhbFxuICAgICAgICA6IFN0YWJpbGl0eS5TdGFibGUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgdHlwZXMgZnJvbSB0d28gYXNzZW1ibGllcyB0byBjb21wYXJlXG4gICAqXG4gICAqIEFkZHMgYXBwcm9wcmlhdGUgQ29tcGFyYWJsZVR5cGU8PiBpbnN0YW5jZXMuXG4gICAqL1xuICBwdWJsaWMgbG9hZChvcmlnaW5hbDogcmVmbGVjdC5Bc3NlbWJseSwgdXBkYXRlZDogcmVmbGVjdC5Bc3NlbWJseSkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIHByZXR0aWVyL3ByZXR0aWVyICovXG4gICAgZm9yIChjb25zdCBbb3JpZ0NsYXNzLCB1cGRhdGVkQ2xhc3NdIG9mIHRoaXMudHlwZVBhaXJzKG9yaWdpbmFsLmNsYXNzZXMsIHVwZGF0ZWQpKSB7XG4gICAgICB0aGlzLnR5cGVzLnNldChvcmlnQ2xhc3MuZnFuLCBuZXcgQ29tcGFyYWJsZUNsYXNzVHlwZSh0aGlzLCBvcmlnQ2xhc3MsIHVwZGF0ZWRDbGFzcykpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW29yaWdJZmFjZSwgdXBkYXRlZElmYWNlXSBvZiB0aGlzLnR5cGVQYWlycyhvcmlnaW5hbC5pbnRlcmZhY2VzLCB1cGRhdGVkKSkge1xuICAgICAgaWYgKG9yaWdJZmFjZS5kYXRhdHlwZSAhPT0gdXBkYXRlZElmYWNlLmRhdGF0eXBlKSB7XG4gICAgICAgIHRoaXMubWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgICAgIHJ1bGVLZXk6ICdpZmFjZS10eXBlJyxcbiAgICAgICAgICB2aW9sYXRvcjogb3JpZ0lmYWNlLFxuICAgICAgICAgIG1lc3NhZ2U6IGB1c2VkIHRvIGJlIGEgJHtkZXNjcmliZUludGVyZmFjZVR5cGUoXG4gICAgICAgICAgICBvcmlnSWZhY2UuZGF0YXR5cGUsXG4gICAgICAgICAgKX0sIGlzIG5vdyBhICR7ZGVzY3JpYmVJbnRlcmZhY2VUeXBlKHVwZGF0ZWRJZmFjZS5kYXRhdHlwZSl9LmAsXG4gICAgICAgIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy50eXBlcy5zZXQob3JpZ0lmYWNlLmZxbiwgb3JpZ0lmYWNlLmRhdGF0eXBlXG4gICAgICAgID8gbmV3IENvbXBhcmFibGVTdHJ1Y3RUeXBlKHRoaXMsIG9yaWdJZmFjZSwgdXBkYXRlZElmYWNlKVxuICAgICAgICA6IG5ldyBDb21wYXJhYmxlSW50ZXJmYWNlVHlwZSh0aGlzLCBvcmlnSWZhY2UsIHVwZGF0ZWRJZmFjZSkpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW29yaWdFbnVtLCB1cGRhdGVkRW51bV0gb2YgdGhpcy50eXBlUGFpcnMob3JpZ2luYWwuZW51bXMsIHVwZGF0ZWQpKSB7XG4gICAgICB0aGlzLnR5cGVzLnNldChvcmlnRW51bS5mcW4sIG5ldyBDb21wYXJhYmxlRW51bVR5cGUodGhpcywgb3JpZ0VudW0sIHVwZGF0ZWRFbnVtKSk7XG4gICAgfVxuICAgIC8qIGVzbGludC1lbmFibGUgcHJldHRpZXIvcHJldHRpZXIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIHRoZSBjb21wYXJpc29uIGZvciBhbGwgbG9hZGVkIHR5cGVzXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZSgpIHtcbiAgICB0aGlzLmNvbXBhcmFibGVUeXBlcy5mb3JFYWNoKCh0KSA9PiB0Lm1hcmtUeXBlUm9sZXMoKSk7XG4gICAgdGhpcy5jb21wYXJhYmxlVHlwZXMuZm9yRWFjaCgodCkgPT4gdC5jb21wYXJlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJhc2VkIG9uIGEgSlNJSSBUeXBlUmVmZXJlbmNlLCByZXR1cm4gYWxsIHJlYWNoYWJsZSBDb21wYXJhYmxlVHlwZTw+IG9iamVjdHMuXG4gICAqL1xuICBwdWJsaWMgdHlwZXNJbihyZWY6IHJlZmxlY3QuVHlwZVJlZmVyZW5jZSk6IEFycmF5PENvbXBhcmFibGVUeXBlPGFueT4+IHtcbiAgICBjb25zdCByZXQgPSBuZXcgQXJyYXk8Q29tcGFyYWJsZVR5cGU8YW55Pj4oKTtcblxuICAgIGZvciAoY29uc3QgZnFuIG9mIGZxbnNGcm9tKHJlZikpIHtcbiAgICAgIGNvbnN0IHQgPSB0aGlzLnR5cGVzLmdldChmcW4pO1xuICAgICAgaWYgKHQpIHtcbiAgICAgICAgcmV0LnB1c2godCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogQWxsIENvbXBhcmFibGVUeXBlPD5zXG4gICAqL1xuICBwcml2YXRlIGdldCBjb21wYXJhYmxlVHlwZXMoKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy50eXBlcy52YWx1ZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogRmluZCB0aGUgbWF0Y2hpbmcgdHlwZSBpbiB0aGUgdXBkYXRlZCBhc3NlbWJseSBiYXNlZCBvbiBhbGwgdHlwZXMgaW4gdGhlIG9yaWdpbmFsIGFzc2VtYmx5XG4gICAqL1xuICBwcml2YXRlICp0eXBlUGFpcnM8VCBleHRlbmRzIHJlZmxlY3QuVHlwZT4oXG4gICAgeHM6IHJlYWRvbmx5IFRbXSxcbiAgICB1cGRhdGVkQXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHksXG4gICk6IEl0ZXJhYmxlSXRlcmF0b3I8W1QsIFRdPiB7XG4gICAgZm9yIChjb25zdCBvcmlnVHlwZSBvZiB4cykge1xuICAgICAgTE9HLnRyYWNlKG9yaWdUeXBlLmZxbik7XG5cbiAgICAgIGNvbnN0IHVwZGF0ZWRUeXBlID0gdXBkYXRlZEFzc2VtYmx5LnRyeUZpbmRUeXBlKG9yaWdUeXBlLmZxbik7XG4gICAgICBpZiAoIXVwZGF0ZWRUeXBlKSB7XG4gICAgICAgIHRoaXMubWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgICAgIHJ1bGVLZXk6ICdyZW1vdmVkJyxcbiAgICAgICAgICB2aW9sYXRvcjogb3JpZ1R5cGUsXG4gICAgICAgICAgbWVzc2FnZTogJ2hhcyBiZWVuIHJlbW92ZWQnLFxuICAgICAgICB9KTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChkZXNjcmliZVR5cGUob3JpZ1R5cGUpICE9PSBkZXNjcmliZVR5cGUodXBkYXRlZFR5cGUpKSB7XG4gICAgICAgIHRoaXMubWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgICAgIHJ1bGVLZXk6ICdzdHJ1Y3QtY2hhbmdlJyxcbiAgICAgICAgICB2aW9sYXRvcjogb3JpZ1R5cGUsXG4gICAgICAgICAgbWVzc2FnZTogYGhhcyBiZWVuIHR1cm5lZCBpbnRvIGEgJHtkZXNjcmliZVR5cGUodXBkYXRlZFR5cGUpfWAsXG4gICAgICAgIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgeWllbGQgW29yaWdUeXBlLCB1cGRhdGVkVHlwZSBhcyBUXTsgLy8gVHJ1c3QgbWUgSSBrbm93IHdoYXQgSSdtIGRvaW5nXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY29tcGFyYWJsZSB0eXBlc1xuICpcbiAqIE1hbmFnZXMgbm90aW9ucyBvZiBjcmF3bGluZyB0eXBlcyBmb3Igb3RoZXIgcmVmZXJlbmNlIHR5cGVzLCBhbmQgd2hldGhlclxuICogdGhleSBvY2N1ciBpbiBhbiBpbnB1dC9vdXRwdXQgcm9sZSwgYW5kIG1hcmtpbmcgYXMgc3VjaCBvbiB0aGUgY29tcGFyaXNvblxuICogb2JqZWN0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29tcGFyYWJsZVR5cGU8VD4ge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSByZWN1cnNpb25CcmVha2VyID0gbmV3IFJlY3Vyc2lvbkJyZWFrZXIoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnB1dFR5cGVSZWFzb25zID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3V0cHV0VHlwZVJlYXNvbnMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXNzZW1ibHlDb21wYXJpc29uOiBBc3NlbWJseUNvbXBhcmlzb24sXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9sZFR5cGU6IFQsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5ld1R5cGU6IFQsXG4gICkge31cblxuICAvKipcbiAgICogRG9lcyB0aGlzIHR5cGUgb2NjdXIgaW4gYW4gaW5wdXQgcm9sZT9cbiAgICovXG4gIHB1YmxpYyBnZXQgaW5wdXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFR5cGVSZWFzb25zLmxlbmd0aCA+IDA7XG4gIH1cblxuICAvKipcbiAgICogRG9lcyB0aGlzIHR5cGUgb2NjdXIgaW4gYW4gb3V0cHV0IHJvbGU/XG4gICAqL1xuICBwdWJsaWMgZ2V0IG91dHB1dFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX291dHB1dFR5cGVSZWFzb25zLmxlbmd0aCA+IDA7XG4gIH1cblxuICAvKipcbiAgICogTWFyayB0aGlzIHR5cGUgYXMgb2NjdXJyaW5nIGluIGFuIGlucHV0IHJ1bGUuXG4gICAqXG4gICAqIEFsbCB0eXBlcyByZWFjaGFibGUgZnJvbSB0aGlzIHR5cGUgd2lsbCBiZSBtYXJrZWQgYXMgaW5wdXQgdHlwZXMgYXMgd2VsbC5cbiAgICovXG4gIHB1YmxpYyBtYXJrQXNJbnB1dFR5cGUoLi4ucmVhc29uRnJhZ21lbnRzOiBzdHJpbmdbXSkge1xuICAgIENvbXBhcmFibGVUeXBlLnJlY3Vyc2lvbkJyZWFrZXIuZG8odGhpcywgKCkgPT4ge1xuICAgICAgdGhpcy5faW5wdXRUeXBlUmVhc29ucy5wdXNoKHJlYXNvbkZyYWdtZW50cy5qb2luKCcsICcpKTtcbiAgICAgIHRoaXMuZm9yRWFjaFJvbGVTaGFyaW5nVHlwZSgodHlwZSwgcmVhc29uKSA9PiB7XG4gICAgICAgIHR5cGUubWFya0FzSW5wdXRUeXBlKHJlYXNvbiwgLi4ucmVhc29uRnJhZ21lbnRzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmsgdGhpcyB0eXBlIGFzIG9jY3VycmluZyBpbiBhbiBpbnB1dCBydWxlLlxuICAgKlxuICAgKiBBbGwgdHlwZXMgcmVhY2hhYmxlIGZyb20gdGhpcyB0eXBlIHdpbGwgYmUgbWFya2VkIGFzIGlucHV0IHR5cGVzIGFzIHdlbGwuXG4gICAqL1xuICBwdWJsaWMgbWFya0FzT3V0cHV0VHlwZSguLi5yZWFzb25GcmFnbWVudHM6IHN0cmluZ1tdKSB7XG4gICAgQ29tcGFyYWJsZVR5cGUucmVjdXJzaW9uQnJlYWtlci5kbyh0aGlzLCAoKSA9PiB7XG4gICAgICB0aGlzLl9vdXRwdXRUeXBlUmVhc29ucy5wdXNoKHJlYXNvbkZyYWdtZW50cy5qb2luKCcsICcpKTtcbiAgICAgIHRoaXMuZm9yRWFjaFJvbGVTaGFyaW5nVHlwZSgodHlwZSwgcmVhc29uKSA9PiB7XG4gICAgICAgIHR5cGUubWFya0FzT3V0cHV0VHlwZShyZWFzb24sIC4uLnJlYXNvbkZyYWdtZW50cyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNjcmliZSB3aHkgdGhpcyB0eXBlIGlzIGFuIGlucHV0IHR5cGUgKGlmIGl0IGlzKVxuICAgKi9cbiAgcHVibGljIGdldCBpbnB1dFR5cGVSZWFzb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGVzY3JpYmVSZWFzb25zKHRoaXMuX2lucHV0VHlwZVJlYXNvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2NyaWJlIHdoeSB0aGlzIHR5cGUgaXMgYW4gb3V0cHV0IHR5cGUgKGlmIGl0IGlzKVxuICAgKi9cbiAgcHVibGljIGdldCBvdXRwdXRUeXBlUmVhc29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRlc2NyaWJlUmVhc29ucyh0aGlzLl9vdXRwdXRUeXBlUmVhc29ucyk7XG4gIH1cblxuICAvKipcbiAgICogU2hvdWxkIGJlIG92ZXJyaWRlbiBpbiBzdWJjbGFzc2VzIHRvIG1hcmsgcmVhY2hhYmxlIHR5cGVzIGFzIGlucHV0L291dHB1dCB0eXBlc1xuICAgKlxuICAgKiBTaG91bGQgb25seSBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRoYXQgY29udGFpbiBjYWxsYWJsZXMuXG4gICAqL1xuICBwdWJsaWMgbWFya1R5cGVSb2xlcygpIHtcbiAgICAvLyBFbXB0eSBvbiBwdXJwb3NlXG4gIH1cblxuICAvKipcbiAgICogU2hvdWxkIGJlIG92ZXJyaWRkZW4gaW4gc3ViY2xhc3NlcyB0byBwZXJmb3JtIHRoZSBjb21wYXJpc29uXG4gICAqXG4gICAqIElucHV0L291dHB1dCBtYXJraW5nIHdpbGwgYWxyZWFkeSBoYXZlIGJlZW4gcGVyZm9ybWVkIGJlZm9yZSB0aGlzIGlzIGNhbGxlZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjb21wYXJlKCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEFsaWFzIGZvciB0aGUgcm9vdCBvYmplY3QgTWlzbWFjaGVzIG9iamVjdFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBtaXNtYXRjaGVzKCkge1xuICAgIHJldHVybiB0aGlzLmFzc2VtYmx5Q29tcGFyaXNvbi5taXNtYXRjaGVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3VsZCBiZSBvdmVycmlkZW4gaW4gc3ViY2xhc3NlcyB0byBleGVjdXRlIHRoZSBjYWxsYmFjayBvbiByZWFjaGFibGUgdHlwZXNcbiAgICpcbiAgICogU2hvdWxkIGJlIG92ZXJyaWRlbiBvbmx5IGZvciBwcm9kdWN0IHR5cGVzIChzdHJ1Y3RzKS5cbiAgICovXG4gIHByb3RlY3RlZCBmb3JFYWNoUm9sZVNoYXJpbmdUeXBlKFxuICAgIGNiOiAodDogQ29tcGFyYWJsZVR5cGU8YW55PiwgcmVhc29uOiBzdHJpbmcpID0+IHZvaWQsXG4gICkge1xuICAgIEFycmF5LmlzQXJyYXkoY2IpO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgcmVmZXJlbmNlIHR5cGVzXG4gKlxuICogQ29udGFpbnMgc2hhcmVkIGNvZGUgdGhhdCBhcHBsaWVzIHRvIGJvdGggY2xhc3MgYW5kIGludGVyZmFjZSB0eXBlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbXBhcmFibGVSZWZlcmVuY2VUeXBlPFxuICBUIGV4dGVuZHMgcmVmbGVjdC5SZWZlcmVuY2VUeXBlLFxuPiBleHRlbmRzIENvbXBhcmFibGVUeXBlPFQ+IHtcbiAgLyoqXG4gICAqIENvbXBhcmUgbWVtYmVycyBvZiB0aGUgcmVmZXJlbmNlIHR5cGVzXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZSgpIHtcbiAgICB2YWxpZGF0ZVN0YWJpbGl0aWVzKHRoaXMub2xkVHlwZSwgdGhpcy5uZXdUeXBlLCB0aGlzLm1pc21hdGNoZXMpO1xuICAgIHZhbGlkYXRlQmFzZVR5cGVBc3NpZ25hYmlsaXR5KHRoaXMub2xkVHlwZSwgdGhpcy5uZXdUeXBlLCB0aGlzLm1pc21hdGNoZXMpO1xuXG4gICAgdmFsaWRhdGVTdWJjbGFzc2FibGVOb3RSZW1vdmVkKHRoaXMub2xkVHlwZSwgdGhpcy5uZXdUeXBlLCB0aGlzLm1pc21hdGNoZXMpO1xuICAgIGlmICh0aGlzLnN1YmNsYXNzYWJsZVR5cGUpIHtcbiAgICAgIHZhbGlkYXRlTm9OZXdBYnN0cmFjdE1lbWJlcnModGhpcy5vbGRUeXBlLCB0aGlzLm5ld1R5cGUsIHRoaXMubWlzbWF0Y2hlcyk7XG4gICAgfVxuXG4gICAgdGhpcy52YWxpZGF0ZU1ldGhvZHMoKTtcbiAgICB0aGlzLnZhbGlkYXRlUHJvcGVydGllcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmsgdHlwZSBhY2Nlc3NlcyAoaW5wdXQvb3V0cHV0KSBvZiBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzXG4gICAqL1xuICBwdWJsaWMgbWFya1R5cGVSb2xlcygpIHtcbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiB0aGlzLm9sZFR5cGUub3duTWV0aG9kcykge1xuICAgICAgZGV0ZXJtaW5lVHlwZVJvbGVzRnJvbU1ldGhvZCh0aGlzLmFzc2VtYmx5Q29tcGFyaXNvbiwgbWV0aG9kKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiB0aGlzLm9sZFR5cGUub3duUHJvcGVydGllcykge1xuICAgICAgZGV0ZXJtaW5lVHlwZVJvbGVzRnJvbVByb3BlcnR5KHRoaXMuYXNzZW1ibHlDb21wYXJpc29uLCBwcm9wZXJ0eSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIHR5cGUgc2lnbmF0dXJlcyBvbiBhbGwgbWV0aG9kc1xuICAgKi9cbiAgcHJvdGVjdGVkIHZhbGlkYXRlTWV0aG9kcygpIHtcbiAgICBmb3IgKGNvbnN0IFtvcmlnLCB1cGRhdGVkXSBvZiBtZW1iZXJQYWlycyhcbiAgICAgIHRoaXMub2xkVHlwZSxcbiAgICAgIHRoaXMub2xkVHlwZS5hbGxNZXRob2RzLFxuICAgICAgdGhpcy5uZXdUeXBlLFxuICAgICAgdGhpcy5taXNtYXRjaGVzLFxuICAgICkpIHtcbiAgICAgIGlmIChyZWZsZWN0LmlzTWV0aG9kKHVwZGF0ZWQpKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVNZXRob2Qob3JpZywgdXBkYXRlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIHR5cGUgc2lnbmF0dXJlIGNoYW5nZXMgb24gdGhlIGdpdmVuIG1ldGhvZFxuICAgKi9cbiAgcHJvdGVjdGVkIHZhbGlkYXRlTWV0aG9kKG9yaWdpbmFsOiByZWZsZWN0Lk1ldGhvZCwgdXBkYXRlZDogcmVmbGVjdC5NZXRob2QpIHtcbiAgICB2YWxpZGF0ZVN0YXRpY1NhbWUob3JpZ2luYWwsIHVwZGF0ZWQsIHRoaXMubWlzbWF0Y2hlcyk7XG4gICAgdmFsaWRhdGVBc3luY1NhbWUob3JpZ2luYWwsIHVwZGF0ZWQsIHRoaXMubWlzbWF0Y2hlcyk7XG5cbiAgICBpZiAodGhpcy5zdWJjbGFzc2FibGVUeXBlKSB7XG4gICAgICB2YWxpZGF0ZVJldHVyblR5cGVTYW1lKFxuICAgICAgICBvcmlnaW5hbCxcbiAgICAgICAgdXBkYXRlZCxcbiAgICAgICAgdGhpcy5taXNtYXRjaGVzLndpdGhNb3RpdmF0aW9uKCd0eXBlIGlzIEBzdWJjbGFzc2FibGUnKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRlUmV0dXJuVHlwZU5vdFdlYWtlbmVkKG9yaWdpbmFsLCB1cGRhdGVkLCB0aGlzLm1pc21hdGNoZXMpO1xuICAgIH1cblxuICAgIHRoaXMudmFsaWRhdGVDYWxsYWJsZShvcmlnaW5hbCwgdXBkYXRlZCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdHlwZSBzaWduYXR1cmUgY2hhbmdlcyBvbiB0aGUgZ2l2ZW4gY2FsbGFibGUgKG1ldGhvZCBvciBpbml0aWFsaXplcilcbiAgICovXG4gIHByb3RlY3RlZCB2YWxpZGF0ZUNhbGxhYmxlPFQgZXh0ZW5kcyByZWZsZWN0Lk1ldGhvZCB8IHJlZmxlY3QuSW5pdGlhbGl6ZXI+KFxuICAgIG9yaWdpbmFsOiBULFxuICAgIHVwZGF0ZWQ6IFQsXG4gICkge1xuICAgIHZhbGlkYXRlU3RhYmlsaXRpZXMob3JpZ2luYWwsIHVwZGF0ZWQsIHRoaXMubWlzbWF0Y2hlcyk7XG4gICAgdmFsaWRhdGVOb3RNYWRlTm9uVmFyaWFkaWMob3JpZ2luYWwsIHVwZGF0ZWQsIHRoaXMubWlzbWF0Y2hlcyk7XG5cbiAgICAvLyBDaGVjayB0aGF0IGV2ZXJ5IG9yaWdpbmFsIHBhcmFtZXRlciBjYW4gc3RpbGwgYmUgbWFwcGVkIHRvIGEgcGFyYW1ldGVyIGluIHRoZSB1cGRhdGVkIG1ldGhvZFxuICAgIHZhbGlkYXRlRXhpc3RpbmdQYXJhbXMoXG4gICAgICBvcmlnaW5hbCxcbiAgICAgIHVwZGF0ZWQsXG4gICAgICB0aGlzLm1pc21hdGNoZXMsXG4gICAgICAob2xkUGFyYW0sIG5ld1BhcmFtKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnN1YmNsYXNzYWJsZVR5cGUpIHtcbiAgICAgICAgICB2YWxpZGF0ZVBhcmFtZXRlclR5cGVTYW1lKFxuICAgICAgICAgICAgb3JpZ2luYWwsXG4gICAgICAgICAgICBvbGRQYXJhbSxcbiAgICAgICAgICAgIG5ld1BhcmFtLFxuICAgICAgICAgICAgdGhpcy5taXNtYXRjaGVzLndpdGhNb3RpdmF0aW9uKCd0eXBlIGlzIEBzdWJjbGFzc2FibGUnKSxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbGlkYXRlUGFyYW1ldGVyVHlwZVdlYWtlbmVkKFxuICAgICAgICAgICAgb3JpZ2luYWwsXG4gICAgICAgICAgICBvbGRQYXJhbSxcbiAgICAgICAgICAgIG5ld1BhcmFtLFxuICAgICAgICAgICAgdGhpcy5taXNtYXRjaGVzLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHZhbGlkYXRlTm9OZXdSZXF1aXJlZFBhcmFtcyhvcmlnaW5hbCwgdXBkYXRlZCwgdGhpcy5taXNtYXRjaGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0eXBlIHNpZ25hdHVyZSBjaGFuZ2VzIG9uIGFsbCBwcm9wZXJ0aWVzXG4gICAqL1xuICBwcm90ZWN0ZWQgdmFsaWRhdGVQcm9wZXJ0aWVzKCkge1xuICAgIGZvciAoY29uc3QgW29yaWcsIHVwZGF0ZWRdIG9mIG1lbWJlclBhaXJzKFxuICAgICAgdGhpcy5vbGRUeXBlLFxuICAgICAgdGhpcy5vbGRUeXBlLmFsbFByb3BlcnRpZXMsXG4gICAgICB0aGlzLm5ld1R5cGUsXG4gICAgICB0aGlzLm1pc21hdGNoZXMsXG4gICAgKSkge1xuICAgICAgaWYgKHJlZmxlY3QuaXNQcm9wZXJ0eSh1cGRhdGVkKSkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlUHJvcGVydHkob3JpZywgdXBkYXRlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIHR5cGUgc2lnbmF0dXJlIGNoYW5nZXMgb24gdGhlIGdpdmVuIHByb3BlcnR5XG4gICAqL1xuICBwcm90ZWN0ZWQgdmFsaWRhdGVQcm9wZXJ0eShcbiAgICBvcmlnaW5hbDogcmVmbGVjdC5Qcm9wZXJ0eSxcbiAgICB1cGRhdGVkOiByZWZsZWN0LlByb3BlcnR5LFxuICApIHtcbiAgICB2YWxpZGF0ZVN0YWJpbGl0aWVzKG9yaWdpbmFsLCB1cGRhdGVkLCB0aGlzLm1pc21hdGNoZXMpO1xuICAgIHZhbGlkYXRlU3RhdGljU2FtZShvcmlnaW5hbCwgdXBkYXRlZCwgdGhpcy5taXNtYXRjaGVzKTtcbiAgICB2YWxpZGF0ZU5vdE1hZGVJbW11dGFibGUob3JpZ2luYWwsIHVwZGF0ZWQsIHRoaXMubWlzbWF0Y2hlcyk7XG5cbiAgICBpZiAodGhpcy5zdWJjbGFzc2FibGVUeXBlKSB7XG4gICAgICAvLyBIZWxsbyBDIyBteSBvbGQgZnJpZW5kXG4gICAgICB2YWxpZGF0ZVByb3BlcnR5VHlwZVNhbWUoXG4gICAgICAgIG9yaWdpbmFsLFxuICAgICAgICB1cGRhdGVkLFxuICAgICAgICB0aGlzLm1pc21hdGNoZXMud2l0aE1vdGl2YXRpb24oJ3R5cGUgaXMgQHN1YmNsYXNzYWJsZScpLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKCFvcmlnaW5hbC5pbW11dGFibGUpIHtcbiAgICAgIC8vIElmIHRoZSB0eXBlIGNhbiBiZSByZWFkLCBpdCBjYW4ndCBiZSB3ZWFrZW5lZCAoY2FuJ3QgY2hhbmdlIERvZyB0byBBbmltYWwsIGNvbnN1bWVycyBtaWdodCBiZSBjb3VudGluZyBvbiBhIERvZykuXG4gICAgICAvLyBJZiB0aGUgdHlwZSBjYW4gYmUgd3JpdHRlbiwgaXQgY2FuJ3QgYmUgc3RyZW5ndGhlbmVkIChjYW4ndCBjaGFuZ2UgQW5pbWFsIHRvIERvZywgY29uc3VtZXJzIG1pZ2h0IGJlIHNlbmRpbmcgYSBDYXQpLlxuICAgICAgLy8gPT4gaXQgbXVzdCByZW1haW4gdGhlIHNhbWVcbiAgICAgIHZhbGlkYXRlUHJvcGVydHlUeXBlU2FtZShcbiAgICAgICAgb3JpZ2luYWwsXG4gICAgICAgIHVwZGF0ZWQsXG4gICAgICAgIHRoaXMubWlzbWF0Y2hlcy53aXRoTW90aXZhdGlvbignbXV0YWJsZSBwcm9wZXJ0eSBjYW5ub3QgY2hhbmdlIHR5cGUnKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRlUHJvcGVydHlUeXBlTm90V2Vha2VuZWQob3JpZ2luYWwsIHVwZGF0ZWQsIHRoaXMubWlzbWF0Y2hlcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcmVmZXJlbmNlIHR5cGUgaGFzIGJlZW4gbWFya2VkIGFzIHN1YmNsYXNzYWJsZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgc3ViY2xhc3NhYmxlVHlwZSgpIHtcbiAgICByZXR1cm4gc3ViY2xhc3NhYmxlVHlwZSh0aGlzLm9sZFR5cGUpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wYXJhYmxlQ2xhc3NUeXBlIGV4dGVuZHMgQ29tcGFyYWJsZVJlZmVyZW5jZVR5cGU8cmVmbGVjdC5DbGFzc1R5cGU+IHtcbiAgLyoqXG4gICAqIFBlcmZvcm0gdGhlIHJlZmVyZW5jZSB0eXBlIGNvbXBhcmlzb24gYW5kIGluY2x1ZGUgY2xhc3Mtc3BlY2lmaWMgY2hlY2tzXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZSgpIHtcbiAgICBzdXBlci5jb21wYXJlKCk7XG5cbiAgICB2YWxpZGF0ZU5vdE1hZGVBYnN0cmFjdCh0aGlzLm9sZFR5cGUsIHRoaXMubmV3VHlwZSwgdGhpcy5taXNtYXRjaGVzKTtcblxuICAgIC8vIEpTSUkgYXNzZW1ibGVyIGhhcyBhbHJlYWR5IHRha2VuIGNhcmUgb2YgaW5oZXJpdGFuY2UgaGVyZVxuICAgIGlmICh0aGlzLm9sZFR5cGUuaW5pdGlhbGl6ZXIgJiYgdGhpcy5uZXdUeXBlLmluaXRpYWxpemVyKSB7XG4gICAgICB2YWxpZGF0ZU1ldGhvZENvbXBhdGlibGUoXG4gICAgICAgIHRoaXMub2xkVHlwZS5pbml0aWFsaXplcixcbiAgICAgICAgdGhpcy5uZXdUeXBlLmluaXRpYWxpemVyLFxuICAgICAgICB0aGlzLm1pc21hdGNoZXMsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUeXBlIHJvbGUgbWFya2luZyAtLSBpbmNsdWRlIHRoZSBpbml0aWFsaXplclxuICAgKi9cbiAgcHVibGljIG1hcmtUeXBlUm9sZXMoKSB7XG4gICAgaWYgKHRoaXMub2xkVHlwZS5pbml0aWFsaXplcikge1xuICAgICAgZGV0ZXJtaW5lVHlwZVJvbGVzRnJvbU1ldGhvZChcbiAgICAgICAgdGhpcy5hc3NlbWJseUNvbXBhcmlzb24sXG4gICAgICAgIHRoaXMub2xkVHlwZS5pbml0aWFsaXplcixcbiAgICAgICk7XG4gICAgfVxuICAgIHN1cGVyLm1hcmtUeXBlUm9sZXMoKTtcbiAgfVxufVxuXG4vKipcbiAqIEludGVyZmFjZSB0eXBlIGNvbXBhcmlzb25cbiAqXG4gKiAoQWN0dWFsbHkganVzdCBwbGFpbiByZWZlcmVuY2UgdHlwZSBjb21wYXJpc29uKVxuICovXG5leHBvcnQgY2xhc3MgQ29tcGFyYWJsZUludGVyZmFjZVR5cGUgZXh0ZW5kcyBDb21wYXJhYmxlUmVmZXJlbmNlVHlwZTxyZWZsZWN0LkludGVyZmFjZVR5cGU+IHt9XG5cbi8qKlxuICogU3RydWN0IHR5cGUgY29tcGFyaXNvblxuICpcbiAqIE1vc3Qgbm90YWJseTogZG9lcyBuby1zdHJlbmd0aGVuaW5nL25vLXdlYWtlbmluZyBjaGVja3MgYmFzZWQgb24gd2hldGhlclxuICogc3RydWN0cyBhcHBlYXIgaW4gaW5wdXQvb3V0cHV0IHBvc2l0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBhcmFibGVTdHJ1Y3RUeXBlIGV4dGVuZHMgQ29tcGFyYWJsZVR5cGU8cmVmbGVjdC5JbnRlcmZhY2VUeXBlPiB7XG4gIHB1YmxpYyBjb21wYXJlKCkge1xuICAgIHZhbGlkYXRlU3RhYmlsaXRpZXModGhpcy5vbGRUeXBlLCB0aGlzLm5ld1R5cGUsIHRoaXMubWlzbWF0Y2hlcyk7XG4gICAgdmFsaWRhdGVCYXNlVHlwZUFzc2lnbmFiaWxpdHkodGhpcy5vbGRUeXBlLCB0aGlzLm5ld1R5cGUsIHRoaXMubWlzbWF0Y2hlcyk7XG4gICAgdGhpcy52YWxpZGF0ZU5vUHJvcGVydGllc1JlbW92ZWQoKTtcblxuICAgIGlmICh0aGlzLmlucHV0VHlwZSkge1xuICAgICAgLy8gSWYgdGhlIHN0cnVjdCBpcyB3cml0dGVuLCBpdCBjYW4ndCBiZSBzdHJlbmd0aGVuZWQgKGV4OiBjYW4ndCBjaGFuZ2UgYW4gb3B0aW9uYWwgcHJvcGVydHkgdG8gcmVxdWlyZWQpXG4gICAgICB0aGlzLnZhbGlkYXRlTm90U3RyZW5ndGhlbmVkKFxuICAgICAgICB0aGlzLm1pc21hdGNoZXMud2l0aE1vdGl2YXRpb24odGhpcy5pbnB1dFR5cGVSZWFzb24pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vdXRwdXRUeXBlKSB7XG4gICAgICAvLyBJZiB0aGUgc3RydWN0IGlzIHJlYWQsIGl0IGNhbid0IGJlIHdlYWtlbmVkIChleDogY2FuJ3QgY2hhbmdlIGEgcmVxdWlyZWQgcHJvcGVydHkgdG8gb3B0aW9uYWwpXG4gICAgICB0aGlzLnZhbGlkYXRlTm90V2Vha2VuZWQoXG4gICAgICAgIHRoaXMubWlzbWF0Y2hlcy53aXRoTW90aXZhdGlvbih0aGlzLm91dHB1dFR5cGVSZWFzb24pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXZlcnkgdHlwZSBvZiBldmVyeSBwcm9wZXJ0eSBzaG91bGQgaGF2ZSB0aGUgc2FtZSBpbi9vdXQgY2xhc3NpZmljYXRpb24gYXMgdGhlIG91dGVyIHR5cGVcbiAgICovXG4gIHByb3RlY3RlZCBmb3JFYWNoUm9sZVNoYXJpbmdUeXBlKFxuICAgIGNiOiAodDogQ29tcGFyYWJsZVR5cGU8YW55PiwgcmVhc29uOiBzdHJpbmcpID0+IHZvaWQsXG4gICkge1xuICAgIGZvciAoY29uc3QgcHJvcCBvZiB0aGlzLm9sZFR5cGUuYWxsUHJvcGVydGllcykge1xuICAgICAgZm9yIChjb25zdCB0IG9mIHRoaXMuYXNzZW1ibHlDb21wYXJpc29uLnR5cGVzSW4ocHJvcC50eXBlKSkge1xuICAgICAgICBjYih0LCBgdHlwZSBvZiBwcm9wZXJ0eSAke3Byb3AubmFtZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgdGhhdCBhbGwgcHJvcGVydGllcyBhcmUgc3RpbGwgcHJlc2VudFxuICAgKlxuICAgKiBUaGlzIGlzIGJlY2F1c2UgZm9yIGFsbCBub24tc3RydWN0dXJhbGx5IHR5cGVkIGxhbmd1YWdlcyBpdCBpcyBub3QgYWxsb3dlZFxuICAgKiB0byBzcGVjaWZ5IG1lbWJlcnMgd2hpY2ggYXJlbid0IGFjdHVhbGx5IHByZXNlbnQgaW4gdGhlIHR5cGUuXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlTm9Qcm9wZXJ0aWVzUmVtb3ZlZCgpIHtcbiAgICAvLyBBIHNpbmdsZSBydW4gb2YgbWVtYmVyUGFpcnMoKSB3aXRoIG5vdGhpbmcgZWxzZSB3aWxsIGRvIHRoaXMgY2hlY2suXG4gICAgQXJyYXkuZnJvbShcbiAgICAgIG1lbWJlclBhaXJzKFxuICAgICAgICB0aGlzLm9sZFR5cGUsXG4gICAgICAgIHRoaXMub2xkVHlwZS5hbGxQcm9wZXJ0aWVzLFxuICAgICAgICB0aGlzLm5ld1R5cGUsXG4gICAgICAgIHRoaXMubWlzbWF0Y2hlcyxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB0aGF0IHRoZSBjdXJyZW50IHR5cGUgaXMgbm90IHdlYWtlbmVkXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlTm90V2Vha2VuZWQobWlzbWF0Y2hlczogSVJlcG9ydCkge1xuICAgIGNvbnN0IGFuYSA9IHRoaXMuaXNTdHJ1Y3R1cmFsU3VwZXJUeXBlKHRoaXMub2xkVHlwZSwgdGhpcy5uZXdUeXBlKTtcbiAgICBpZiAoIWFuYS5zdWNjZXNzKSB7XG4gICAgICBtaXNtYXRjaGVzLnJlcG9ydCh7XG4gICAgICAgIHJ1bGVLZXk6ICd3ZWFrZW5lZCcsXG4gICAgICAgIHZpb2xhdG9yOiB0aGlzLm9sZFR5cGUsXG4gICAgICAgIG1lc3NhZ2U6IGFuYS5yZWFzb25zLmpvaW4oJywgJyksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgdGhhdCB0aGUgY3VycmVudCB0eXBlIGlzIG5vdCBzdHJlbmd0aGVuZWRcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVOb3RTdHJlbmd0aGVuZWQobWlzbWF0Y2hlczogSVJlcG9ydCkge1xuICAgIGNvbnN0IGFuYSA9IHRoaXMuaXNTdHJ1Y3R1cmFsU3VwZXJUeXBlKHRoaXMubmV3VHlwZSwgdGhpcy5vbGRUeXBlKTtcbiAgICBpZiAoIWFuYS5zdWNjZXNzKSB7XG4gICAgICBtaXNtYXRjaGVzLnJlcG9ydCh7XG4gICAgICAgIHJ1bGVLZXk6ICdzdHJlbmd0aGVuZWQnLFxuICAgICAgICB2aW9sYXRvcjogdGhpcy5vbGRUeXBlLFxuICAgICAgICBtZXNzYWdlOiBhbmEucmVhc29ucy5qb2luKCcsICcpLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1N0cnVjdHVyYWxTdXBlclR5cGUoXG4gICAgYTogcmVmbGVjdC5JbnRlcmZhY2VUeXBlLFxuICAgIGI6IHJlZmxlY3QuSW50ZXJmYWNlVHlwZSxcbiAgKTogQW5hbHlzaXMge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gaXNTdHJ1Y3R1cmFsU3VwZXJUeXBlKGEsIGIsIHRoaXMubmV3VHlwZS5zeXN0ZW0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIFdlIG1pZ2h0IGdldCBhbiBleGNlcHRpb24gaWYgdGhlIHR5cGUgaXMgc3VwcG9zZWQgdG8gY29tZSBmcm9tIGEgZGlmZmVyZW50XG4gICAgICAvLyBhc3NlbWJseSBhbmQgdGhlIGxvb2t1cCBmYWlscy5cbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCByZWFzb25zOiBbZS5tZXNzYWdlXSB9O1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIENvbXBhcmlzb24gZm9yIGVudW1zXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21wYXJhYmxlRW51bVR5cGUgZXh0ZW5kcyBDb21wYXJhYmxlVHlwZTxyZWZsZWN0LkVudW1UeXBlPiB7XG4gIC8qKlxuICAgKiBQZXJmb3JtIGNvbXBhcmlzb25zIG9uIGVudW0gbWVtYmVyc1xuICAgKi9cbiAgcHVibGljIGNvbXBhcmUoKSB7XG4gICAgdmFsaWRhdGVTdGFiaWxpdGllcyh0aGlzLm9sZFR5cGUsIHRoaXMubmV3VHlwZSwgdGhpcy5taXNtYXRjaGVzKTtcblxuICAgIHZhbGlkYXRlRXhpc3RpbmdNZW1iZXJzKFxuICAgICAgdGhpcy5vbGRUeXBlLFxuICAgICAgdGhpcy5uZXdUeXBlLFxuICAgICAgdGhpcy5taXNtYXRjaGVzLFxuICAgICAgKG9sZE1lbWJlciwgbmV3TWVtYmVyKSA9PiB7XG4gICAgICAgIHZhbGlkYXRlU3RhYmlsaXRpZXMob2xkTWVtYmVyLCBuZXdNZW1iZXIsIHRoaXMubWlzbWF0Y2hlcyk7XG4gICAgICB9LFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlucHV0L291dHB1dCByb2xlcyBvZiB0eXBlcyB1c2VkIGluIHRoaXMgbWV0aG9kXG4gKlxuICogLSBBcmd1bWVudCB0eXBlcyBhcmUgdHJlYXRlZCBhcyBJTiB0eXBlc1xuICogLSBSZXR1cm4gdHlwZSBpcyB0cmVhdGVkIGFzIE9VVCB0eXBlXG4gKi9cbmZ1bmN0aW9uIGRldGVybWluZVR5cGVSb2xlc0Zyb21NZXRob2QoXG4gIGNvbXBhcmlzb246IEFzc2VtYmx5Q29tcGFyaXNvbixcbiAgbWV0aG9kOiByZWZsZWN0Lk1ldGhvZCB8IHJlZmxlY3QuSW5pdGlhbGl6ZXIsXG4pIHtcbiAgaWYgKHJlZmxlY3QuaXNNZXRob2QobWV0aG9kKSkge1xuICAgIGZvciAoY29uc3QgdCBvZiBjb21wYXJpc29uLnR5cGVzSW4obWV0aG9kLnJldHVybnMudHlwZSkpIHtcbiAgICAgIHQubWFya0FzT3V0cHV0VHlwZShgcmV0dXJuZWQgZnJvbSAke2FwaUVsZW1lbnRJZGVudGlmaWVyKG1ldGhvZCl9YCk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBwYXJhbSBvZiBtZXRob2QucGFyYW1ldGVycyA/PyBbXSkge1xuICAgIGZvciAoY29uc3QgdCBvZiBjb21wYXJpc29uLnR5cGVzSW4ocGFyYW0udHlwZSkpIHtcbiAgICAgIHQubWFya0FzSW5wdXRUeXBlKGBpbnB1dCB0byAke2FwaUVsZW1lbnRJZGVudGlmaWVyKG1ldGhvZCl9YCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpbnB1dC9vdXRwdXQgcm9sZXMgb2YgdHlwZXMgdXNlZCBpbiB0aGlzIHByb3BlcnR5XG4gKlxuICogLSBQcm9wZXJ0eSB0eXBlIGlzIHRyZWF0ZWQgYXMgT1VUIHR5cGVcbiAqIC0gSWYgbXV0YWJsZSwgcHJvcGVydHkgdHlwZSBpcyBhbHNvIHRyZWF0ZWQgYXMgSU4gdHlwZVxuICpcbiAqIEluIGVmZmVjdCwgYSBwcm9wZXJ0eSBpcyB0cmVhdGVkIGFzIHRoZSBmb2xsb3dpbmcgbWV0aG9kczpcbiAqXG4gKiAtIHByb3BlcnR5KCk6IFQ7XG4gKiAtIHNldFByb3BlcnR5KDogVCk7ICA8LSBvbmx5IGlmIG11dGFibGVcbiAqL1xuZnVuY3Rpb24gZGV0ZXJtaW5lVHlwZVJvbGVzRnJvbVByb3BlcnR5KFxuICBjb21wYXJpc29uOiBBc3NlbWJseUNvbXBhcmlzb24sXG4gIHByb3BlcnR5OiByZWZsZWN0LlByb3BlcnR5LFxuKSB7XG4gIGZvciAoY29uc3QgdCBvZiBjb21wYXJpc29uLnR5cGVzSW4ocHJvcGVydHkudHlwZSkpIHtcbiAgICB0Lm1hcmtBc091dHB1dFR5cGUoYHR5cGUgb2YgJHthcGlFbGVtZW50SWRlbnRpZmllcihwcm9wZXJ0eSl9YCk7XG4gIH1cbiAgaWYgKCFwcm9wZXJ0eS5pbW11dGFibGUpIHtcbiAgICBmb3IgKGNvbnN0IHQgb2YgY29tcGFyaXNvbi50eXBlc0luKHByb3BlcnR5LnR5cGUpKSB7XG4gICAgICB0Lm1hcmtBc0lucHV0VHlwZShgdHlwZSBvZiBtdXRhYmxlICR7YXBpRWxlbWVudElkZW50aWZpZXIocHJvcGVydHkpfWApO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiBhbGwgdGhlIEZRTnMgZnJvbSBhIHR5cGUgcmVmZXJlbmNlXG4gKlxuICogSW4gdGhlIHNpbXBsZSBjYXNlLCBhIHNpbXBsZSBGUU4sIGJ1dCB0aGUgdHlwZSBtaWdodFxuICogYmUgYSB1bmlvbiBvciBjb21wbGV4IHR5cGUgYXMgd2VsbC5cbiAqL1xuZnVuY3Rpb24gZnFuc0Zyb20ocmVmOiByZWZsZWN0LlR5cGVSZWZlcmVuY2UpIHtcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgcmVjdXJzZShyZWYpO1xuICByZXR1cm4gcmV0O1xuXG4gIGZ1bmN0aW9uIHJlY3Vyc2UodHlwZTogcmVmbGVjdC5UeXBlUmVmZXJlbmNlKSB7XG4gICAgaWYgKHR5cGUubWFwT2ZUeXBlKSB7XG4gICAgICByZWN1cnNlKHR5cGUubWFwT2ZUeXBlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUuYXJyYXlPZlR5cGUpIHtcbiAgICAgIHJlY3Vyc2UodHlwZS5hcnJheU9mVHlwZSk7XG4gICAgfSBlbHNlIGlmICh0eXBlLnVuaW9uT2ZUeXBlcykge1xuICAgICAgdHlwZS51bmlvbk9mVHlwZXMuZm9yRWFjaChyZWN1cnNlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUuZnFuKSB7XG4gICAgICByZXQucHVzaCh0eXBlLmZxbik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlUmVhc29ucyhyZWFzb25zOiBzdHJpbmdbXSkge1xuICBpZiAocmVhc29ucy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgaWYgKHJlYXNvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIHJlYXNvbnNbMF07XG4gIH1cbiAgcmV0dXJuIGAke3JlYXNvbnNbMF19ICguLi5hbmQgJHtyZWFzb25zLmxlbmd0aCAtIDF9IG1vcmUuLi4pYDtcbn1cbiJdfQ==
|
|
507
|
+
//# sourceMappingURL=type-comparison.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-comparison.js","sourceRoot":"","sources":["type-comparison.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -44,3 +44,4 @@ export declare class Mismatches implements IReport {
|
|
|
44
44
|
export declare function apiElementIdentifier(apiElement: ApiElement): string;
|
|
45
45
|
export declare function describeType(type: reflect.Type): "ENUM" | "CLASS" | "IFACE" | "TYPE";
|
|
46
46
|
export declare function describeInterfaceType(dataType: boolean): "struct" | "regular interface";
|
|
47
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,oBAAY,UAAU,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;AAEhF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;CACzC;AAED,qBAAa,UAAW,YAAW,OAAO;IACxC,SAAgB,UAAU,gBAA4B;IACtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAY;gBAE1B,IAAI,EAAE;QAAE,gBAAgB,EAAE,SAAS,CAAA;KAAE;IAIjD,MAAM,CAAC,OAAO,EAAE,aAAa;IAa5B,QAAQ;IAMhB,IAAW,KAAK,WAEf;IAEM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,OAAO,GAAG,UAAU;IAMrD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;CAWnD;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,UAwB1D;AAiED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,uCAW9C;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,kCAEtD"}
|
package/lib/types.js
CHANGED
|
@@ -8,13 +8,12 @@ class Mismatches {
|
|
|
8
8
|
this.defaultStability = opts.defaultStability;
|
|
9
9
|
}
|
|
10
10
|
report(options) {
|
|
11
|
-
var _a;
|
|
12
11
|
const fqn = apiElementIdentifier(options.violator);
|
|
13
12
|
const key = `${options.ruleKey}:${fqn}`;
|
|
14
13
|
this.mismatches.push({
|
|
15
14
|
violationKey: key,
|
|
16
15
|
message: `${describeApiElement(options.violator)} ${fqn}: ${options.message}`,
|
|
17
|
-
stability:
|
|
16
|
+
stability: options.violator.docs.stability ?? this.defaultStability,
|
|
18
17
|
});
|
|
19
18
|
}
|
|
20
19
|
*messages() {
|
|
@@ -133,4 +132,4 @@ function describeInterfaceType(dataType) {
|
|
|
133
132
|
return dataType ? 'struct' : 'regular interface';
|
|
134
133
|
}
|
|
135
134
|
exports.describeInterfaceType = describeInterfaceType;
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3Q0FBd0M7QUFxQ3hDLE1BQWEsVUFBVTtJQUlyQixZQUFtQixJQUFxQztRQUh4QyxlQUFVLEdBQUcsSUFBSSxLQUFLLEVBQWUsQ0FBQztRQUlwRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2hELENBQUM7SUFFTSxNQUFNLENBQUMsT0FBc0I7O1FBQ2xDLE1BQU0sR0FBRyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxNQUFNLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFLENBQUM7UUFFeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbkIsWUFBWSxFQUFFLEdBQUc7WUFDakIsT0FBTyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsS0FDckQsT0FBTyxDQUFDLE9BQ1YsRUFBRTtZQUNGLFNBQVMsUUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLG1DQUFJLElBQUksQ0FBQyxnQkFBZ0I7U0FDcEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLENBQUMsUUFBUTtRQUNkLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQyxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQWlDO1FBQzdDLE1BQU0sR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMs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Yyc7XG5pbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGFyaXNvbk9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byB0cmVhdCBBUEkgZWxlbWVudHMgYXMgZXhwZXJpbWVudGFsIGlmIHVubWFya2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBUcmVhdCBhcyBzdGFibGVcbiAgICovXG4gIGRlZmF1bHRFeHBlcmltZW50YWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBhcmlzb25Db250ZXh0IGV4dGVuZHMgQ29tcGFyaXNvbk9wdGlvbnMge1xuICAvKipcbiAgICogV2hlcmUgdG8gcmVwb3J0IGVycm9yc1xuICAgKi9cbiAgbWlzbWF0Y2hlczogTWlzbWF0Y2hlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlNaXNtYXRjaCB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdmlvbGF0aW9uS2V5OiBzdHJpbmc7XG4gIHN0YWJpbGl0eTogU3RhYmlsaXR5O1xufVxuXG5leHBvcnQgdHlwZSBBcGlFbGVtZW50ID0gcmVmbGVjdC5UeXBlIHwgcmVmbGVjdC5UeXBlTWVtYmVyIHwgcmVmbGVjdC5FbnVtTWVtYmVyO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydE9wdGlvbnMge1xuICBydWxlS2V5OiBzdHJpbmc7XG4gIHZpb2xhdG9yOiBBcGlFbGVtZW50O1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJlcG9ydCB7XG4gIHJlcG9ydChvcHRpb25zOiBSZXBvcnRPcHRpb25zKTogdm9pZDtcbiAgd2l0aE1vdGl2YXRpb24ocmVhc29uOiBzdHJpbmcpOiBJUmVwb3J0O1xufVxuXG5leHBvcnQgY2xhc3MgTWlzbWF0Y2hlcyBpbXBsZW1lbnRzIElSZXBvcnQge1xuICBwdWJsaWMgcmVhZG9ubHkgbWlzbWF0Y2hlcyA9IG5ldyBBcnJheTxBcGlNaXNtYXRjaD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U3RhYmlsaXR5OiBTdGFiaWxpdHk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKG9wdHM6IHsgZGVmYXVsdFN0YWJpbGl0eTogU3RhYmlsaXR5IH0pIHtcbiAgICB0aGlzLmRlZmF1bHRTdGFiaWxpdHkgPSBvcHRzLmRlZmF1bHRTdGFiaWxpdHk7XG4gIH1cblxuICBwdWJsaWMgcmVwb3J0KG9wdGlvbnM6IFJlcG9ydE9wdGlvbnMpIHtcbiAgICBjb25zdCBmcW4gPSBhcGlFbGVtZW50SWRlbnRpZmllcihvcHRpb25zLnZpb2xhdG9yKTtcbiAgICBjb25zdCBrZXkgPSBgJHtvcHRpb25zLnJ1bGVLZXl9OiR7ZnFufWA7XG5cbiAgICB0aGlzLm1pc21hdGNoZXMucHVzaCh7XG4gICAgICB2aW9sYXRpb25LZXk6IGtleSxcbiAgICAgIG1lc3NhZ2U6IGAke2Rlc2NyaWJlQXBpRWxlbWVudChvcHRpb25zLnZpb2xhdG9yKX0gJHtmcW59OiAke1xuICAgICAgICBvcHRpb25zLm1lc3NhZ2VcbiAgICAgIH1gLFxuICAgICAgc3RhYmlsaXR5OiBvcHRpb25zLnZpb2xhdG9yLmRvY3Muc3RhYmlsaXR5ID8/IHRoaXMuZGVmYXVsdFN0YWJpbGl0eSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyAqbWVzc2FnZXMoKSB7XG4gICAgZm9yIChjb25zdCBtaXMgb2YgdGhpcy5taXNtYXRjaGVzKSB7XG4gICAgICB5aWVsZCBtaXMubWVzc2FnZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvdW50KCkge1xuICAgIHJldHVybiB0aGlzLm1pc21hdGNoZXMubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGZpbHRlcihwcmVkOiAoeDogQXBpTWlzbWF0Y2gpID0+IGJvb2xlYW4pOiBNaXNtYXRjaGVzIHtcbiAgICBjb25zdCByZXQgPSBuZXcgTWlzbWF0Y2hlcyh7IGRlZmF1bHRTdGFiaWxpdHk6IHRoaXMuZGVmYXVsdFN0YWJpbGl0eSB9KTtcbiAgICByZXQubWlzbWF0Y2hlcy5wdXNoKC4uLnRoaXMubWlzbWF0Y2hlcy5maWx0ZXIocHJlZCkpO1xuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwdWJsaWMgd2l0aE1vdGl2YXRpb24obW90aXZhdGlvbjogc3RyaW5nKTogSVJlcG9ydCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcG9ydDogKG9wdGlvbnMpID0+XG4gICAgICAgIHRoaXMucmVwb3J0KHtcbiAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgIG1lc3NhZ2U6IGAke29wdGlvbnMubWVzc2FnZX06ICR7bW90aXZhdGlvbn1gLFxuICAgICAgICB9KSxcbiAgICAgIHdpdGhNb3RpdmF0aW9uOiAoaW5uZXJNb3RpdmF0aW9uKSA9PlxuICAgICAgICB0aGlzLndpdGhNb3RpdmF0aW9uKGAke2lubmVyTW90aXZhdGlvbn06ICR7bW90aXZhdGlvbn1gKSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcGlFbGVtZW50SWRlbnRpZmllcihhcGlFbGVtZW50OiBBcGlFbGVtZW50KSB7XG4gIHJldHVybiBkaXNwYXRjaChhcGlFbGVtZW50LCB7XG4gICAgbWV0aG9kKHgpIHtcbiAgICAgIHJldHVybiBgJHt4LnBhcmVudFR5cGUuZnFufS4ke3gubmFtZX1gO1xuICAgIH0sXG4gICAgaW5pdCh4KSB7XG4gICAgICByZXR1cm4gYCR7eC5wYXJlbnRUeXBlLmZxbn0uJHt4Lm5hbWV9YDtcbiAgICB9LFxuICAgIHByb3BlcnR5KHgpIHtcbiAgICAgIHJldHVybiBgJHt4LnBhcmVudFR5cGUuZnFufS4ke3gubmFtZX1gO1xuICAgIH0sXG4gICAgZW51bU1lbWJlcih4KSB7XG4gICAgICByZXR1cm4gYCR7eC5lbnVtVHlwZS5mcW59LiR7eC5uYW1lfWA7XG4gICAgfSxcbiAgICBlbnVtVHlwZSh4KSB7XG4gICAgICByZXR1cm4gYCR7eC5mcW59YDtcbiAgICB9LFxuICAgIGtsYXNzKHgpIHtcbiAgICAgIHJldHVybiBgJHt4LmZxbn1gO1xuICAgIH0sXG4gICAgaWZhY2UoeCkge1xuICAgICAgcmV0dXJuIGAke3guZnFufWA7XG4gICAgfSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlQXBpRWxlbWVudChhcGlFbGVtZW50OiBBcGlFbGVtZW50KSB7XG4gIHJldHVybiBkaXNwYXRjaChhcGlFbGVtZW50LCB7XG4gICAgbWV0aG9kKCkge1xuICAgICAgcmV0dXJuICdNRVRIT0QnO1xuICAgIH0sXG4gICAgaW5pdCgpIHtcbiAgICAgIHJldHVybiAnSU5JVElBTElaRVInO1xuICAgIH0sXG4gICAgcHJvcGVydHkoKSB7XG4gICAgICByZXR1cm4gJ1BST1AnO1xuICAgIH0sXG4gICAgZW51bU1lbWJlcigpIHtcbiAgICAgIHJldHVybiAnRU5VTSBWQUxVRSc7XG4gICAgfSxcbiAgICBlbnVtVHlwZSgpIHtcbiAgICAgIHJldHVybiAnRU5VTSc7XG4gICAgfSxcbiAgICBrbGFzcygpIHtcbiAgICAgIHJldHVybiAnQ0xBU1MnO1xuICAgIH0sXG4gICAgaWZhY2UoKSB7XG4gICAgICByZXR1cm4gJ0lGQUNFJztcbiAgICB9LFxuICB9KTtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2g8VD4oXG4gIGFwaUVsZW1lbnQ6IEFwaUVsZW1lbnQsXG4gIGZuczoge1xuICAgIG1ldGhvZChtOiByZWZsZWN0Lk1ldGhvZCk6IFQ7XG4gICAgaW5pdChtOiByZWZsZWN0LkluaXRpYWxpemVyKTogVDtcbiAgICBwcm9wZXJ0eShtOiByZWZsZWN0LlByb3BlcnR5KTogVDtcbiAgICBlbnVtTWVtYmVyKG06IHJlZmxlY3QuRW51bU1lbWJlcik6IFQ7XG4gICAgZW51bVR5cGUobTogcmVmbGVjdC5FbnVtVHlwZSk6IFQ7XG4gICAga2xhc3MobTogcmVmbGVjdC5DbGFzc1R5cGUpOiBUO1xuICAgIGlmYWNlKG06IHJlZmxlY3QuSW50ZXJmYWNlVHlwZSk6IFQ7XG4gIH0sXG4pIHtcbiAgaWYgKGFwaUVsZW1lbnQgaW5zdGFuY2VvZiByZWZsZWN0Lk1ldGhvZCkge1xuICAgIHJldHVybiBmbnMubWV0aG9kKGFwaUVsZW1lbnQpO1xuICB9XG4gIGlmIChhcGlFbGVtZW50IGluc3RhbmNlb2YgcmVmbGVjdC5Qcm9wZXJ0eSkge1xuICAgIHJldHVybiBmbnMucHJvcGVydHkoYXBpRWxlbWVudCk7XG4gIH1cbiAgaWYgKGFwaUVsZW1lbnQgaW5zdGFuY2VvZiByZWZsZWN0LkVudW1NZW1iZXIpIHtcbiAgICByZXR1cm4gZm5zLmVudW1NZW1iZXIoYXBpRWxlbWVudCk7XG4gIH1cbiAgaWYgKGFwaUVsZW1lbnQgaW5zdGFuY2VvZiByZWZsZWN0LkNsYXNzVHlwZSkge1xuICAgIHJldHVybiBmbnMua2xhc3MoYXBpRWxlbWVudCk7XG4gIH1cbiAgaWYgKGFwaUVsZW1lbnQgaW5zdGFuY2VvZiByZWZsZWN0LkludGVyZmFjZVR5cGUpIHtcbiAgICByZXR1cm4gZm5zLmlmYWNlKGFwaUVsZW1lbnQpO1xuICB9XG4gIGlmIChhcGlFbGVtZW50IGluc3RhbmNlb2YgcmVmbGVjdC5Jbml0aWFsaXplcikge1xuICAgIHJldHVybiBmbnMuaW5pdChhcGlFbGVtZW50KTtcbiAgfVxuICBpZiAoYXBpRWxlbWVudCBpbnN0YW5jZW9mIHJlZmxlY3QuRW51bVR5cGUpIHtcbiAgICByZXR1cm4gZm5zLmVudW1UeXBlKGFwaUVsZW1lbnQpO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgdmlvbGF0b3I6ICR7YXBpRWxlbWVudC50b1N0cmluZygpfWApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVzY3JpYmVUeXBlKHR5cGU6IHJlZmxlY3QuVHlwZSkge1xuICBpZiAodHlwZS5pc0NsYXNzVHlwZSgpKSB7XG4gICAgcmV0dXJuICdDTEFTUyc7XG4gIH1cbiAgaWYgKHR5cGUuaXNJbnRlcmZhY2VUeXBlKCkpIHtcbiAgICByZXR1cm4gJ0lGQUNFJztcbiAgfVxuICBpZiAodHlwZS5pc0VudW1UeXBlKCkpIHtcbiAgICByZXR1cm4gJ0VOVU0nO1xuICB9XG4gIHJldHVybiAnVFlQRSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZUludGVyZmFjZVR5cGUoZGF0YVR5cGU6IGJvb2xlYW4pIHtcbiAgcmV0dXJuIGRhdGFUeXBlID8gJ3N0cnVjdCcgOiAncmVndWxhciBpbnRlcmZhY2UnO1xufVxuIl19
|
|
135
|
+
//# sourceMappingURL=types.js.map
|
package/lib/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
|
package/lib/util.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["util.ts"],"names":[],"mappings":"AAWA,wBAAsB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAU1E;AAED,oBAAY,eAAe,GAAG,iBAAiB,CAAC;AAEhD,oBAAY,iBAAiB,CAAC,CAAC,IAC3B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,GAC5B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC;AAEhD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,eAAe,4CAOrD;AAED,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CA6B/B;AA4BD,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,CAM7D;AAED;;GAEG;AACH,qBAAa,gBAAgB,CAAC,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IAElC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI;CAYpC"}
|
package/lib/util.js
CHANGED
|
@@ -114,4 +114,4 @@ class RecursionBreaker {
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
exports.RecursionBreaker = RecursionBreaker;
|
|
117
|
-
//# sourceMappingURL=
|
|
117
|
+
//# sourceMappingURL=util.js.map
|
package/lib/util.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["util.ts"],"names":[],"mappings":"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"}
|
package/lib/validations.d.ts
CHANGED
|
@@ -155,3 +155,4 @@ export declare function memberPairs<T extends reflect.TypeMember, U extends refl
|
|
|
155
155
|
* (For every member of enum)
|
|
156
156
|
*/
|
|
157
157
|
export declare function validateExistingMembers(original: reflect.EnumType, updated: reflect.EnumType, mismatches: IReport, validateMember: (oldParam: reflect.EnumMember, newParam: reflect.EnumMember) => void): void;
|
|
158
|
+
//# sourceMappingURL=validations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["validations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAUxC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,OAAO,CAAC,aAAa,EAC3E,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,CAAC,EACV,UAAU,EAAE,OAAO,QAYpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,OAAO,CAAC,SAAS,EAC3B,OAAO,EAAE,OAAO,CAAC,SAAS,EAC1B,UAAU,EAAE,OAAO,QASpB;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,CAAC,SAAS,OAAO,CAAC,aAAa,EAC5E,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,CAAC,EACV,UAAU,EAAE,OAAO,QASpB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,EAC5E,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,CAAC,EACV,UAAU,EAAE,OAAO,QAWpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,CAAC,MAAM,EACxB,OAAO,EAAE,OAAO,CAAC,MAAM,EACvB,UAAU,EAAE,OAAO,QAWpB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,CAAC,SAAS,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,EAC9C,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,QAQ7C;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,OAAO,CAAC,aAAa,EAC1E,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,CAAC,EACV,UAAU,EAAE,OAAO,QAepB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,OAAO,CAAC,MAAM,EACxB,OAAO,EAAE,OAAO,CAAC,MAAM,EACvB,UAAU,EAAE,OAAO,QAcpB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,CAAC,MAAM,EACxB,OAAO,EAAE,OAAO,CAAC,MAAM,EACvB,UAAU,EAAE,OAAO,QAWpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAC1B,OAAO,EAAE,OAAO,CAAC,QAAQ,EACzB,UAAU,EAAE,OAAO,QAcpB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAC1B,OAAO,EAAE,OAAO,CAAC,QAAQ,EACzB,UAAU,EAAE,OAAO,QAWpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,EAC5C,QAAQ,EAAE,OAAO,CAAC,SAAS,EAC3B,OAAO,EAAE,OAAO,CAAC,SAAS,EAC1B,UAAU,EAAE,OAAO,QAiBpB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,EAC5C,QAAQ,EAAE,OAAO,CAAC,SAAS,EAC3B,OAAO,EAAE,OAAO,CAAC,SAAS,EAC1B,UAAU,EAAE,OAAO,QAWpB;AAiBD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,SAAS,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,EAE9C,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,CAAC,EACV,UAAU,EAAE,OAAO,EACnB,aAAa,EAAE,CACb,QAAQ,EAAE,OAAO,CAAC,SAAS,EAC3B,QAAQ,EAAE,OAAO,CAAC,SAAS,KACxB,IAAI,QAeV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,CAAC,SAAS,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,EAC9C,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,QAe7C;AAED,wBAAgB,wBAAwB,CACtC,CAAC,SAAS,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,EAC9C,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,QAuB7C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,WAEvD;AAsBD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAC1B,OAAO,EAAE,OAAO,CAAC,QAAQ,EACzB,UAAU,EAAE,OAAO,QASpB;AAED,wBAAiB,WAAW,CAC1B,CAAC,SAAS,OAAO,CAAC,UAAU,EAC5B,CAAC,SAAS,OAAO,CAAC,aAAa,EAE/B,SAAS,EAAE,CAAC,EACZ,EAAE,EAAE,CAAC,EAAE,EACP,YAAY,EAAE,CAAC,EACf,UAAU,EAAE,OAAO,GAClB,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAkC3C;AA2FD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAC1B,OAAO,EAAE,OAAO,CAAC,QAAQ,EACzB,UAAU,EAAE,OAAO,EACnB,cAAc,EAAE,CACd,QAAQ,EAAE,OAAO,CAAC,UAAU,EAC5B,QAAQ,EAAE,OAAO,CAAC,UAAU,KACzB,IAAI,QAiBV"}
|
package/lib/validations.js
CHANGED
|
@@ -303,7 +303,7 @@ function validateNoNewRequiredParams(original, updated, mismatches) {
|
|
|
303
303
|
}
|
|
304
304
|
exports.validateNoNewRequiredParams = validateNoNewRequiredParams;
|
|
305
305
|
function validateMethodCompatible(original, updated, mismatches) {
|
|
306
|
-
stability_1.validateStabilities(original, updated, mismatches);
|
|
306
|
+
(0, stability_1.validateStabilities)(original, updated, mismatches);
|
|
307
307
|
// Type guards on original are duplicated on updated to help tsc... They are required to be the same type by the declaration.
|
|
308
308
|
if (reflect.isMethod(original) && reflect.isMethod(updated)) {
|
|
309
309
|
validateStaticSame(original, updated, mismatches);
|
|
@@ -404,7 +404,7 @@ function isCompatibleReturnType(original, updated) {
|
|
|
404
404
|
if (!original.optional && updated.optional) {
|
|
405
405
|
return { success: false, reasons: ['output type is now optional'] };
|
|
406
406
|
}
|
|
407
|
-
return type_analysis_1.isSuperType(original.type, updated.type, updated.system);
|
|
407
|
+
return (0, type_analysis_1.isSuperType)(original.type, updated.type, updated.system);
|
|
408
408
|
}
|
|
409
409
|
/**
|
|
410
410
|
* Whether we are weakening the pre (input type of a method)
|
|
@@ -413,7 +413,7 @@ function isCompatibleReturnType(original, updated) {
|
|
|
413
413
|
*/
|
|
414
414
|
function isCompatibleArgumentType(original, updated) {
|
|
415
415
|
// Input can never be void, so no need to check
|
|
416
|
-
return type_analysis_1.isSuperType(updated, original, updated.system);
|
|
416
|
+
return (0, type_analysis_1.isSuperType)(updated, original, updated.system);
|
|
417
417
|
}
|
|
418
418
|
/**
|
|
419
419
|
* Verify assignability to supertypes
|
|
@@ -430,7 +430,7 @@ function isCompatibleArgumentType(original, updated) {
|
|
|
430
430
|
*/
|
|
431
431
|
function assignableToAllBaseTypes(original, updated) {
|
|
432
432
|
for (const B of baseTypes(original)) {
|
|
433
|
-
const result = type_analysis_1.isNominalSuperType(B.reference, updated.reference, updated.system);
|
|
433
|
+
const result = (0, type_analysis_1.isNominalSuperType)(B.reference, updated.reference, updated.system);
|
|
434
434
|
if (!result.success) {
|
|
435
435
|
return result;
|
|
436
436
|
}
|
|
@@ -484,4 +484,4 @@ function validateExistingMembers(original, updated, mismatches, validateMember)
|
|
|
484
484
|
}
|
|
485
485
|
}
|
|
486
486
|
exports.validateExistingMembers = validateExistingMembers;
|
|
487
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ2YWxpZGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3Q0FBd0M7QUFDeEMsaUNBQWlDO0FBRWpDLDJDQUFrRDtBQUNsRCxtREFLeUI7QUFHekIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUUxQzs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQzNDLFFBQVcsRUFDWCxPQUFVLEVBQ1YsVUFBbUI7SUFFbkIsTUFBTSxHQUFHLEdBQUcsd0JBQXdCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO1FBQ2hCLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDaEIsT0FBTyxFQUFFLFlBQVk7WUFDckIsT0FBTyxFQUFFLDZDQUE2QyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDcEUsSUFBSSxDQUNMLEVBQUU7WUFDSCxRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUM7S0FDSjtBQUNILENBQUM7QUFmRCxzRUFlQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3JDLFFBQTJCLEVBQzNCLE9BQTBCLEVBQzFCLFVBQW1CO0lBRW5CLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7UUFDMUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNoQixPQUFPLEVBQUUsZUFBZTtZQUN4QixPQUFPLEVBQUUsd0NBQXdDO1lBQ2pELFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztLQUNKO0FBQ0gsQ0FBQztBQVpELDBEQVlDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLDhCQUE4QixDQUM1QyxRQUFXLEVBQ1gsT0FBVSxFQUNWLFVBQW1CO0lBRW5CLElBQUksUUFBUSxDQUFD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QyxDQUFDO0tBQzNDO0FBQ0gsQ0FBQztBQXhCRCwwREF3QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgKiBhcyBsb2c0anMgZnJvbSAnbG9nNGpzJztcblxuaW1wb3J0IHsgdmFsaWRhdGVTdGFiaWxpdGllcyB9IGZyb20gJy4vc3RhYmlsaXR5JztcbmltcG9ydCB7XG4gIEFuYWx5c2lzLFxuICBGYWlsZWRBbmFseXNpcyxcbiAgaXNTdXBlclR5cGUsXG4gIGlzTm9taW5hbFN1cGVyVHlwZSxcbn0gZnJvbSAnLi90eXBlLWFuYWx5c2lzJztcbmltcG9ydCB7IElSZXBvcnQgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgTE9HID0gbG9nNGpzLmdldExvZ2dlcignanNpaS1kaWZmJyk7XG5cbi8qKlxuICogVGhlIHVwZGF0ZWQgdHlwZSBpcyBzdGlsbCBub21pbmFsbHkgYXNzaWduYWJsZSB0byBhbGwgb3JpZ2luYWwgYmFzZSB0eXBlc1xuICpcbiAqIE1ha2Ugc3VyZSB0aGUgZm9sbG93aW5nIHJlbWFpbnMgY29tcGlsYWJsZTpcbiAqXG4gKiBgYGBcbiAqIEJBU0UgaW5zdGFuY2UgPSBuZXcgQ0xBU1MoKTtcbiAqIGBgYFxuICpcbiAqIFdoZXJlIENMQVNTIOKJpDogQkFTRS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQmFzZVR5cGVBc3NpZ25hYmlsaXR5PFQgZXh0ZW5kcyByZWZsZWN0LlJlZmVyZW5jZVR5cGU+KFxuICBvcmlnaW5hbDogVCxcbiAgdXBkYXRlZDogVCxcbiAgbWlzbWF0Y2hlczogSVJlcG9ydCxcbikge1xuICBjb25zdCBhbmEgPSBhc3NpZ25hYmxlVG9BbGxCYXNlVHlwZXMob3JpZ2luYWwsIHVwZGF0ZWQpO1xuICBpZiAoIWFuYS5zdWNjZXNzKSB7XG4gICAgbWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgcnVsZUtleTogJ2Jhc2UtdHlwZXMnLFxuICAgICAgbWVzc2FnZTogYG5vdCBhc3NpZ25hYmxlIHRvIGFsbCBiYXNlIHR5cGVzIGFueW1vcmU6ICR7YW5hLnJlYXNvbnMuam9pbihcbiAgICAgICAgJywgJyxcbiAgICAgICl9YCxcbiAgICAgIHZpb2xhdG9yOiBvcmlnaW5hbCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSB1cGRhdGVkIHR5cGUgaGFzIG5vdCBiZWVuIG5ld2x5IG1hZGUgYWJzdHJhY3RcbiAqXG4gKiBNYWtlIHN1cmUgdGhlIGZvbGxvd2luZyByZW1haW5zIGNvbXBpbGFibGU6XG4gKlxuICogYGBgXG4gKiBuZXcgQ0xBU1MoKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVOb3RNYWRlQWJzdHJhY3QoXG4gIG9yaWdpbmFsOiByZWZsZWN0LkNsYXNzVHlwZSxcbiAgdXBkYXRlZDogcmVmbGVjdC5DbGFzc1R5cGUsXG4gIG1pc21hdGNoZXM6IElSZXBvcnQsXG4pIHtcbiAgaWYgKHVwZGF0ZWQuYWJzdHJhY3QgJiYgIW9yaWdpbmFsLmFic3RyYWN0KSB7XG4gICAgbWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgcnVsZUtleTogJ21hZGUtYWJzdHJhY3QnLFxuICAgICAgbWVzc2FnZTogJ2hhcyBnb25lIGZyb20gbm9uLWFic3RyYWN0IHRvIGFic3RyYWN0JyxcbiAgICAgIHZpb2xhdG9yOiBvcmlnaW5hbCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSB1cGRhdGVkIHR5cGUgaGFzIG5vdCBoYWQgaXRzIEBzdWJjbGFzc2FibGUgYXR0cmlidXRlIHJlbW92ZWRcbiAqXG4gKiBUaGlzIHdvdWxkIGxpZnQgYSByZXN0cmljdGlvbiB3ZSBjYW4ndCBhZmZvcmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVN1YmNsYXNzYWJsZU5vdFJlbW92ZWQ8VCBleHRlbmRzIHJlZmxlY3QuUmVmZXJlbmNlVHlwZT4oXG4gIG9yaWdpbmFsOiBULFxuICB1cGRhdGVkOiBULFxuICBtaXNtYXRjaGVzOiBJUmVwb3J0LFxuKSB7XG4gIGlmIChvcmlnaW5hbC5kb2NzLnN1YmNsYXNzYWJsZSAmJiAhdXBkYXRlZC5kb2NzLnN1YmNsYXNzYWJsZSkge1xuICAgIG1pc21hdGNoZXMucmVwb3J0KHtcbiAgICAgIHJ1bGVLZXk6ICdyZW1vdmUtc3ViY2xhc3NhYmxlJyxcbiAgICAgIG1lc3NhZ2U6ICdoYXMgZ29uZSBmcm9tIEBzdWJjbGFzc2FibGUgdG8gbm9uLUBzdWJjbGFzc2FibGUnLFxuICAgICAgdmlvbGF0b3I6IG9yaWdpbmFsLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgdGhhdCB0aGUgYHN0YXRpY2AtbmVzcyBvZiBhIG1lbWJlciBoYXNuJ3QgY2hhbmdlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTdGF0aWNTYW1lPFQgZXh0ZW5kcyByZWZsZWN0Lk1ldGhvZCB8IHJlZmxlY3QuUHJvcGVydHk+KFxuICBvcmlnaW5hbDogVCxcbiAgdXBkYXRlZDogVCxcbiAgbWlzbWF0Y2hlczogSVJlcG9ydCxcbikge1xuICBpZiAob3JpZ2luYWwuc3RhdGljICE9PSB1cGRhdGVkLnN0YXRpYykge1xuICAgIG1pc21hdGNoZXMucmVwb3J0KHtcbiAgICAgIHJ1bGVLZXk6ICdjaGFuZ2VkLXN0YXRpYycsXG4gICAgICB2aW9sYXRvcjogb3JpZ2luYWwsXG4gICAgICBtZXNzYWdlOiBgdXNlZCB0byBiZSAke1xuICAgICAgICBvcmlnaW5hbC5zdGF0aWMgPyAnc3RhdGljJyA6ICdub3Qgc3RhdGljJ1xuICAgICAgfSwgaXMgbm93ICR7dXBkYXRlZC5zdGF0aWMgPyAnc3RhdGljJyA6ICdub3Qgc3RhdGljJ31gLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgdGhhdCB0aGUgYGFzeW5jYC1uZXNzIG9mIGEgbWV0aG9kIGhhc24ndCBjaGFuZ2VkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUFzeW5jU2FtZShcbiAgb3JpZ2luYWw6IHJlZmxlY3QuTWV0aG9kLFxuICB1cGRhdGVkOiByZWZsZWN0Lk1ldGhvZCxcbiAgbWlzbWF0Y2hlczogSVJlcG9ydCxcbikge1xuICBpZiAob3JpZ2luYWwuYXN5bmMgIT09IHVwZGF0ZWQuYXN5bmMpIHtcbiAgICBjb25zdCBvcmlnUXVhbCA9IG9yaWdpbmFsLmFzeW5jID8gJ2FzeW5jaHJvbm91cycgOiAnc3luY2hyb25vdXMnO1xuICAgIGNvbnN0IHVwZFF1YWwgPSB1cGRhdGVkLmFzeW5jID8gJ2FzeW5jaHJvbm91cycgOiAnc3luY2hyb25vdXMnO1xuICAgIG1pc21hdGNoZXMucmVwb3J0KHtcbiAgICAgIHJ1bGVLZXk6ICdjaGFuZ2VkLWFzeW5jJyxcbiAgICAgIHZpb2xhdG9yOiBvcmlnaW5hbCxcbiAgICAgIG1lc3NhZ2U6IGB3YXMgJHtvcmlnUXVhbH0sIGlzIG5vdyAke3VwZFF1YWx9YCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIE9uY2UgdmFyaWFkaWMsIGNhbiBuZXZlciBiZSBtYWRlIG5vbi12YXJpYWRpYyBhbnltb3JlIChiZWNhdXNlIEkgY291bGQgYWx3YXlzIGhhdmUgYmVlbiBwYXNzaW5nIE4rMSBhcmd1bWVudHMpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU5vdE1hZGVOb25WYXJpYWRpYzxcbiAgVCBleHRlbmRzIHJlZmxlY3QuTWV0aG9kIHwgcmVmbGVjdC5Jbml0aWFsaXplcixcbj4ob3JpZ2luYWw6IFQsIHVwZGF0ZWQ6IFQsIG1pc21hdGNoZXM6IElSZXBvcnQpIHtcbiAgaWYgKG9yaWdpbmFsLnZhcmlhZGljICYmICF1cGRhdGVkLnZhcmlhZGljKSB7XG4gICAgbWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgcnVsZUtleTogJ2NoYW5nZWQtdmFyaWFkaWMnLFxuICAgICAgdmlvbGF0b3I6IG9yaWdpbmFsLFxuICAgICAgbWVzc2FnZTogJ3VzZWQgdG8gYmUgdmFyaWFkaWMsIG5vdCB2YXJpYWRpYyBhbnltb3JlLicsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayB0aGF0IG5vIG5ldyBhYnN0cmFjdCBtZW1iZXJzIHdlcmUgYWRkZWQgdG8gYSBzdWJjbGFzc2FibGUgdHlwZVxuICpcbiAqIFlvdSBjYW5ub3QgaGF2ZSBhZGRlZCBhYnN0cmFjdCBtZW1iZXJzIHRvIHRoZSBjbGFzcy9pbnRlcmZhY2UsIGFzIHRoZXkgYXJlXG4gKiBhbiBhZGRlZCBidXJkZW4gb24gcG90ZW50aWFsIGltcGxlbWVudG9ycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlTm9OZXdBYnN0cmFjdE1lbWJlcnM8VCBleHRlbmRzIHJlZmxlY3QuUmVmZXJlbmNlVHlwZT4oXG4gIG9yaWdpbmFsOiBULFxuICB1cGRhdGVkOiBULFxuICBtaXNtYXRjaGVzOiBJUmVwb3J0LFxuKSB7XG4gIGNvbnN0IGFic01lbWJlck5hbWVzID0gbmV3IFNldChcbiAgICB1cGRhdGVkLmFsbE1lbWJlcnMuZmlsdGVyKChtKSA9PiBtLmFic3RyYWN0KS5tYXAoKG0pID0+IG0ubmFtZSksXG4gICk7XG4gIGNvbnN0IG9yaWdpbmFsTWVtYmVyTmFtZXMgPSBuZXcgU2V0KG9yaWdpbmFsLmFsbE1lbWJlcnMubWFwKChtKSA9PiBtLm5hbWUpKTtcbiAgZm9yIChjb25zdCBuYW1lIG9mIGFic01lbWJlck5hbWVzKSB7XG4gICAgaWYgKCFvcmlnaW5hbE1lbWJlck5hbWVzLmhhcyhuYW1lKSkge1xuICAgICAgbWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgICBydWxlS2V5OiAnbmV3LWFic3RyYWN0LW1lbWJlcicsXG4gICAgICAgIG1lc3NhZ2U6IGBhZGRzIHJlcXVpcmVtZW50IGZvciBzdWJjbGFzc2VzIHRvIGltcGxlbWVudCAnJHtuYW1lfScuYCxcbiAgICAgICAgdmlvbGF0b3I6IHVwZGF0ZWQuZ2V0TWVtYmVycyh0cnVlKVtuYW1lXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFZhbGlkYXRlIHRoYXQgYSBtZXRob2QgcmV0dXJuIHR5cGUgaXMgdGhlIHNhbWUgb3Igc3RyZW5ndGhlbmVkXG4gKlxuICogTWFrZSBzdXJlIHRoZSBmb2xsb3dpbmcgcmVtYWlucyBjb21waWxhYmxlOlxuICpcbiAqIGBgYFxuICogVCB2YWx1ZSA9IG9iamVjdC5tZXRob2QoKTtcbiAqIGBgYFxuICpcbiAqIFdoZXJlIFJFVFVSTl9UWVBFKG1ldGhvZCkg4omkOiBULlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVSZXR1cm5UeXBlTm90V2Vha2VuZWQoXG4gIG9yaWdpbmFsOiByZWZsZWN0Lk1ldGhvZCxcbiAgdXBkYXRlZDogcmVmbGVjdC5NZXRob2QsXG4gIG1pc21hdGNoZXM6IElSZXBvcnQsXG4pIHtcbiAgY29uc3QgcmV0QW5hID0gaXNDb21wYXRpYmxlUmV0dXJuVHlwZShvcmlnaW5hbC5yZXR1cm5zLCB1cGRhdGVkLnJldHVybnMpO1xuICBpZiAoIXJldEFuYS5zdWNjZXNzKSB7XG4gICAgbWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgcnVsZUtleTogJ2NoYW5nZS1yZXR1cm4tdHlwZScsXG4gICAgICB2aW9sYXRvcjogb3JpZ2luYWwsXG4gICAgICBtZXNzYWdlOiBgcmV0dXJucyAke2Rlc2NyaWJlT3B0aW9uYWxWYWx1ZU1hdGNoaW5nRmFpbHVyZShcbiAgICAgICAgb3JpZ2luYWwucmV0dXJucyxcbiAgICAgICAgdXBkYXRlZC5yZXR1cm5zLFxuICAgICAgICByZXRBbmEsXG4gICAgICApfWAsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGF0IGEgbWV0aG9kIHJldHVybiB0eXBlIGlzIHRoZSBleGFjdCBzYW1lXG4gKlxuICogTmVjZXNzYXJ5IGZvciBzdWJjbGFzc2FibGUgdHlwZXMgaW4gQyMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVJldHVyblR5cGVTYW1lKFxuICBvcmlnaW5hbDogcmVmbGVjdC5NZXRob2QsXG4gIHVwZGF0ZWQ6IHJlZmxlY3QuTWV0aG9kLFxuICBtaXNtYXRjaGVzOiBJUmVwb3J0LFxuKSB7XG4gIGNvbnN0IG9yaWdEZXNjciA9IHJlZmxlY3QuT3B0aW9uYWxWYWx1ZS5kZXNjcmliZShvcmlnaW5hbC5yZXR1cm5zKTtcbiAgY29uc3QgdXBkYURlc2NyID0gcmVmbGVjdC5PcHRpb25hbFZhbHVlLmRlc2NyaWJlKHVwZGF0ZWQucmV0dXJucyk7XG4gIGlmIChvcmlnRGVzY3IgIT09IHVwZGFEZXNjcikge1xuICAgIG1pc21hdGNoZXMucmVwb3J0KHtcbiAgICAgIHJ1bGVLZXk6ICdjaGFuZ2UtcmV0dXJuLXR5cGUnLFxuICAgICAgdmlvbGF0b3I6IG9yaWdpbmFsLFxuICAgICAgbWVzc2FnZTogYHJldHVybnMgJHt1cGRhRGVzY3J9IChmb3JtZXJseSAke29yaWdEZXNjcn0pYCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFZhbGlkYXRlIHRoYXQgYSBwcm9wZXJ0eSB0eXBlIGlzIHRoZSBzYW1lIG9yIHN0cmVuZ3RoZW5lZFxuICpcbiAqIE1ha2Ugc3VyZSB0aGUgZm9sbG93aW5nIHJlbWFpbnMgY29tcGlsYWJsZTpcbiAqXG4gKiBgYGBcbiAqIFQgdmFsdWUgPSBvYmplY3QucHJvcDtcbiAqIGBgYFxuICpcbiAqIFdoZXJlIFJFVFVSTl9UWVBFKHByb3ApIOKJpDogVC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUHJvcGVydHlUeXBlTm90V2Vha2VuZWQoXG4gIG9yaWdpbmFsOiByZWZsZWN0LlByb3BlcnR5LFxuICB1cGRhdGVkOiByZWZsZWN0LlByb3BlcnR5LFxuICBtaXNtYXRjaGVzOiBJUmVwb3J0LFxuKSB7XG4gIGNvbnN0IGFuYSA9IGlzQ29tcGF0aWJsZVJldHVyblR5cGUob3JpZ2luYWwsIHVwZGF0ZWQpO1xuICBpZiAoIWFuYS5zdWNjZXNzKSB7XG4gICAgbWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgcnVsZUtleTogJ2NoYW5nZWQtdHlwZScsXG4gICAgICB2aW9sYXRvcjogb3JpZ2luYWwsXG4gICAgICBtZXNzYWdlOiBgdHlwZSAke2Rlc2NyaWJlT3B0aW9uYWxWYWx1ZU1hdGNoaW5nRmFpbHVyZShcbiAgICAgICAgb3JpZ2luYWwsXG4gICAgICAgIHVwZGF0ZWQsXG4gICAgICAgIGFuYSxcbiAgICAgICl9YCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFZhbGlkYXRlIHRoYXQgYSBwcm9wZXJ0eSB0eXBlIGlzIHRoZSBleGFjdCBzYW1lXG4gKlxuICogTmVjZXNzYXJ5IGZvciBzdWJjbGFzc2FibGUgdHlwZXMgaW4gQyMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnR5VHlwZVNhbWUoXG4gIG9yaWdpbmFsOiByZWZsZWN0LlByb3BlcnR5LFxuICB1cGRhdGVkOiByZWZsZWN0LlByb3BlcnR5LFxuICBtaXNtYXRjaGVzOiBJUmVwb3J0LFxuKSB7XG4gIGNvbnN0IG9sZERlc2MgPSByZWZsZWN0Lk9wdGlvbmFsVmFsdWUuZGVzY3JpYmUob3JpZ2luYWwpO1xuICBjb25zdCBuZXdEZXNjID0gcmVmbGVjdC5PcHRpb25hbFZhbHVlLmRlc2NyaWJlKHVwZGF0ZWQpO1xuICBpZiAob2xkRGVzYyAhPT0gbmV3RGVzYykge1xuICAgIG1pc21hdGNoZXMucmVwb3J0KHtcbiAgICAgIHJ1bGVLZXk6ICdjaGFuZ2VkLXR5cGUnLFxuICAgICAgdmlvbGF0b3I6IG9yaWdpbmFsLFxuICAgICAgbWVzc2FnZTogYGNoYW5nZWQgdG8gJHtuZXdEZXNjfSAoZm9ybWVybHkgJHtvbGREZXNjfSlgLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGUgdGhhdCBhIG1ldGhvZCByZXR1cm4gdHlwZSBpcyB0aGUgc2FtZSBvciB3ZWFrZW5lZFxuICpcbiAqIE1ha2Ugc3VyZSB0aGUgZm9sbG93aW5nIHJlbWFpbnMgY29tcGlsYWJsZSBpZiBVIGlzIGNoYW5nZWQ6XG4gKlxuICogYGBgXG4gKiBmdW5jdGlvbiBtZXRob2QoYXJnOiBVKSB7IC4uLiB9XG4gKlxuICogb2JqZWN0Lm1ldGhvZCg8VD52YWx1ZSk7XG4gKiBgYGBcbiAqXG4gKiBXaGVyZSBUIOKJpDogVS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUGFyYW1ldGVyVHlwZVdlYWtlbmVkKFxuICBtZXRob2Q6IHJlZmxlY3QuTWV0aG9kIHwgcmVmbGVjdC5Jbml0aWFsaXplcixcbiAgb3JpZ2luYWw6IHJlZmxlY3QuUGFyYW1ldGVyLFxuICB1cGRhdGVkOiByZWZsZWN0LlBhcmFtZXRlcixcbiAgbWlzbWF0Y2hlczogSVJlcG9ydCxcbikge1xuICBjb25zdCBhcmdBbmEgPSBpc0NvbXBhdGlibGVBcmd1bWVudFR5cGUob3JpZ2luYWwudHlwZSwgdXBkYXRlZC50eXBlKTtcbiAgaWYgKCFhcmdBbmEuc3VjY2Vzcykge1xuICAgIG1pc21hdGNoZXMucmVwb3J0KHtcbiAgICAgIHJ1bGVLZXk6ICdpbmNvbXBhdGlibGUtYXJndW1lbnQnLFxuICAgICAgdmlvbGF0b3I6IG1ldGhvZCxcbiAgICAgIG1lc3NhZ2U6IGBhcmd1bWVudCAke1xuICAgICAgICBvcmlnaW5hbC5uYW1lXG4gICAgICB9LCB0YWtlcyAke2Rlc2NyaWJlT3B0aW9uYWxWYWx1ZU1hdGNoaW5nRmFpbHVyZShcbiAgICAgICAgb3JpZ2luYWwsXG4gICAgICAgIHVwZGF0ZWQsXG4gICAgICAgIGFyZ0FuYSxcbiAgICAgICl9YCxcbiAgICB9KTtcbiAgICByZXR1cm47XG4gIH1cbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGF0IGEgbWV0aG9kIHBhcmFtZXRlciB0eXBlIGlzIHRoZSBleGFjdCBzYW1lXG4gKlxuICogTmVjZXNzYXJ5IGZvciBzdWJjbGFzc2FibGUgdHlwZXMgaW4gQyMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVBhcmFtZXRlclR5cGVTYW1lKFxuICBtZXRob2Q6IHJlZmxlY3QuTWV0aG9kIHwgcmVmbGVjdC5Jbml0aWFsaXplcixcbiAgb3JpZ2luYWw6IHJlZmxlY3QuUGFyYW1ldGVyLFxuICB1cGRhdGVkOiByZWZsZWN0LlBhcmFtZXRlcixcbiAgbWlzbWF0Y2hlczogSVJlcG9ydCxcbikge1xuICBpZiAob3JpZ2luYWwudHlwZS50b1N0cmluZygpICE9PSB1cGRhdGVkLnR5cGUudG9TdHJpbmcoKSkge1xuICAgIG1pc21hdGNoZXMucmVwb3J0KHtcbiAgICAgIHJ1bGVLZXk6ICdpbmNvbXBhdGlibGUtYXJndW1lbnQnLFxuICAgICAgdmlvbGF0b3I6IG1ldGhvZCxcbiAgICAgIG1lc3NhZ2U6IGBhcmd1bWVudCAke1xuICAgICAgICBvcmlnaW5hbC5uYW1lXG4gICAgICB9LCB0YWtlcyAke3VwZGF0ZWQudHlwZS50b1N0cmluZygpfSAoZm9ybWVybHkgJHtvcmlnaW5hbC50eXBlLnRvU3RyaW5nKCl9KTogdHlwZSBpcyBAc3ViY2xhc3NhYmxlYCxcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkZXNjcmliZU9wdGlvbmFsVmFsdWVNYXRjaGluZ0ZhaWx1cmUoXG4gIG9yaWdUeXBlOiByZWZsZWN0Lk9wdGlvbmFsVmFsdWUsXG4gIHVwZGF0ZWRUeXBlOiByZWZsZWN0Lk9wdGlvbmFsVmFsdWUsXG4gIGFuYWx5c2lzOiBGYWlsZWRBbmFseXNpcyxcbikge1xuICBjb25zdCBvcmlnRGVzY3IgPSByZWZsZWN0Lk9wdGlvbmFsVmFsdWUuZGVzY3JpYmUob3JpZ1R5cGUpO1xuICBjb25zdCB1cGRhRGVzY3IgPSByZWZsZWN0Lk9wdGlvbmFsVmFsdWUuZGVzY3JpYmUodXBkYXRlZFR5cGUpO1xuICBpZiAob3JpZ0Rlc2NyICE9PSB1cGRhRGVzY3IpIHtcbiAgICByZXR1cm4gYCR7dXBkYURlc2NyfSAoZm9ybWVybHkgJHtvcmlnRGVzY3J9KTogJHthbmFseXNpcy5yZWFzb25zLmpvaW4oXG4gICAgICAnLCAnLFxuICAgICl9YDtcbiAgfVxuICByZXR1cm4gYCR7dXBkYURlc2NyfTogJHthbmFseXNpcy5yZWFzb25zLmpvaW4oJywgJyl9YDtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGF0IGVhY2ggcGFyYW0gaW4gdGhlIG9sZCBjYWxsYWJsZSBpcyBzdGlsbCBhdmFpbGFibGUgaW4gdGhlIG5ldyBjYWxsYWJsZSwgYW5kIGFwcGx5IGN1c3RvbSB2YWxpZGF0aW9uIHRvIHRoZSBwYWlyc1xuICpcbiAqIE1ha2Ugc3VyZSB0aGUgZm9sbG93aW5nIHJlbWFpbnMgY29tcGlsYWJsZTpcbiAqXG4gKiBgYGBcbiAqIG9iamVjdC5tZXRob2QoYTEsIGEyLCAuLi4sIGFOKTtcbiAqIGBgYFxuICpcbiAqIChBbGwgdHlwZXMgc3RpbGwgYXNzaWduYWJsZSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRXhpc3RpbmdQYXJhbXM8XG4gIFQgZXh0ZW5kcyByZWZsZWN0LkluaXRpYWxpemVyIHwgcmVmbGVjdC5NZXRob2QsXG4+KFxuICBvcmlnaW5hbDogVCxcbiAgdXBkYXRlZDogVCxcbiAgbWlzbWF0Y2hlczogSVJlcG9ydCxcbiAgdmFsaWRhdGVQYXJhbTogKFxuICAgIG9sZFBhcmFtOiByZWZsZWN0LlBhcmFtZXRlcixcbiAgICBuZXdQYXJhbTogcmVmbGVjdC5QYXJhbWV0ZXIsXG4gICkgPT4gdm9pZCxcbikge1xuICBvcmlnaW5hbC5wYXJhbWV0ZXJzLmZvckVhY2goKHBhcmFtLCBpKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlZFBhcmFtID0gZmluZFBhcmFtKHVwZGF0ZWQucGFyYW1ldGVycywgaSk7XG4gICAgaWYgKHVwZGF0ZWRQYXJhbSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBtaXNtYXRjaGVzLnJlcG9ydCh7XG4gICAgICAgIHJ1bGVLZXk6ICdyZW1vdmVkLWFyZ3VtZW50JyxcbiAgICAgICAgdmlvbGF0b3I6IG9yaWdpbmFsLFxuICAgICAgICBtZXNzYWdlOiBgYXJndW1lbnQgJHtwYXJhbS5uYW1lfSwgbm90IGFjY2VwdGVkIGFueW1vcmUuYCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhbGlkYXRlUGFyYW0ocGFyYW0sIHVwZGF0ZWRQYXJhbSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIHRoYXQgbm8gbmV3IHJlcXVpcmVkIHBhcmFtcyBnb3QgYWRkZWQgdG8gdGhlIGVuZCBvZiB0aGUgbWV0aG9kXG4gKlxuICogTWFrZSBzdXJlIHRoZSBmb2xsb3dpbmcgcmVtYWlucyBjb21waWxhYmxlOlxuICpcbiAqIGBgYFxuICogb2JqZWN0Lm1ldGhvZChhMSwgYTIsIC4uLiwgYU4pO1xuICogYGBgXG4gKlxuICogKE5vdCB0b28gZmV3IGFyZ3VtZW50cylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlTm9OZXdSZXF1aXJlZFBhcmFtczxcbiAgVCBleHRlbmRzIHJlZmxlY3QuSW5pdGlhbGl6ZXIgfCByZWZsZWN0Lk1ldGhvZCxcbj4ob3JpZ2luYWw6IFQsIHVwZGF0ZWQ6IFQsIG1pc21hdGNoZXM6IElSZXBvcnQpIHtcbiAgdXBkYXRlZC5wYXJhbWV0ZXJzLmZvckVhY2goKHBhcmFtLCBpKSA9PiB7XG4gICAgaWYgKHBhcmFtLm9wdGlvbmFsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3JpZ1BhcmFtID0gZmluZFBhcmFtKG9yaWdpbmFsLnBhcmFtZXRlcnMsIGkpO1xuICAgIGlmICghb3JpZ1BhcmFtIHx8IG9yaWdQYXJhbS5vcHRpb25hbCkge1xuICAgICAgbWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgICBydWxlS2V5OiAnbmV3LWFyZ3VtZW50JyxcbiAgICAgICAgdmlvbGF0b3I6IG9yaWdpbmFsLFxuICAgICAgICBtZXNzYWdlOiBgYXJndW1lbnQgJHtwYXJhbS5uYW1lfSwgbmV3bHkgcmVxdWlyZWQgYXJndW1lbnQuYCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU1ldGhvZENvbXBhdGlibGU8XG4gIFQgZXh0ZW5kcyByZWZsZWN0Lk1ldGhvZCB8IHJlZmxlY3QuSW5pdGlhbGl6ZXIsXG4+KG9yaWdpbmFsOiBULCB1cGRhdGVkOiBULCBtaXNtYXRjaGVzOiBJUmVwb3J0KSB7XG4gIHZhbGlkYXRlU3RhYmlsaXRpZXMob3JpZ2luYWwsIHVwZGF0ZWQsIG1pc21hdGNoZXMpO1xuXG4gIC8vIFR5cGUgZ3VhcmRzIG9uIG9yaWdpbmFsIGFyZSBkdXBsaWNhdGVkIG9uIHVwZGF0ZWQgdG8gaGVscCB0c2MuLi4gVGhleSBhcmUgcmVxdWlyZWQgdG8gYmUgdGhlIHNhbWUgdHlwZSBieSB0aGUgZGVjbGFyYXRpb24uXG4gIGlmIChyZWZsZWN0LmlzTWV0aG9kKG9yaWdpbmFsKSAmJiByZWZsZWN0LmlzTWV0aG9kKHVwZGF0ZWQpKSB7XG4gICAgdmFsaWRhdGVTdGF0aWNTYW1lKG9yaWdpbmFsLCB1cGRhdGVkLCBtaXNtYXRjaGVzKTtcbiAgICB2YWxpZGF0ZUFzeW5jU2FtZShvcmlnaW5hbCwgdXBkYXRlZCwgbWlzbWF0Y2hlcyk7XG4gICAgdmFsaWRhdGVSZXR1cm5UeXBlTm90V2Vha2VuZWQob3JpZ2luYWwsIHVwZGF0ZWQsIG1pc21hdGNoZXMpO1xuICB9XG5cbiAgdmFsaWRhdGVOb3RNYWRlTm9uVmFyaWFkaWMob3JpZ2luYWwsIHVwZGF0ZWQsIG1pc21hdGNoZXMpO1xuXG4gIC8vIENoZWNrIHRoYXQgZXZlcnkgb3JpZ2luYWwgcGFyYW1ldGVyIGNhbiBzdGlsbCBiZSBtYXBwZWQgdG8gYSBwYXJhbWV0ZXIgaW4gdGhlIHVwZGF0ZWQgbWV0aG9kXG4gIHZhbGlkYXRlRXhpc3RpbmdQYXJhbXMoXG4gICAgb3JpZ2luYWwsXG4gICAgdXBkYXRlZCxcbiAgICBtaXNtYXRjaGVzLFxuICAgIChvbGRQYXJhbSwgbmV3UGFyYW0pID0+IHtcbiAgICAgIHZhbGlkYXRlUGFyYW1ldGVyVHlwZVdlYWtlbmVkKG9yaWdpbmFsLCBvbGRQYXJhbSwgbmV3UGFyYW0sIG1pc21hdGNoZXMpO1xuICAgIH0sXG4gICk7XG5cbiAgdmFsaWRhdGVOb05ld1JlcXVpcmVkUGFyYW1zKG9yaWdpbmFsLCB1cGRhdGVkLCBtaXNtYXRjaGVzKTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIGNsYXNzL2ludGVyZmFjZSBoYXMgYmVlbiBtYXJrZWQgYXMgQHN1YmNsYXNzYWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3ViY2xhc3NhYmxlVHlwZSh4OiByZWZsZWN0LkRvY3VtZW50YWJsZSkge1xuICByZXR1cm4geC5kb2NzLnN1YmNsYXNzYWJsZTtcbn1cblxuLyoqXG4gKiBGaW5kIHRoZSBpbmRpY2F0ZWQgcGFyYW1ldGVyIHdpdGggdGhlIGdpdmVuIGluZGV4XG4gKlxuICogTWF5IHJldHVybiB0aGUgbGFzdCBwYXJhbWV0ZXIgaWYgaXQncyB2YXJpYWRpY1xuICovXG5mdW5jdGlvbiBmaW5kUGFyYW0oXG4gIHBhcmFtZXRlcnM6IHJlZmxlY3QuUGFyYW1ldGVyW10sXG4gIGk6IG51bWJlcixcbik6IHJlZmxlY3QuUGFyYW1ldGVyIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGkgPCBwYXJhbWV0ZXJzLmxlbmd0aCkge1xuICAgIHJldHVybiBwYXJhbWV0ZXJzW2ldO1xuICB9XG4gIGNvbnN0IGxhc3RQYXJhbSA9XG4gICAgcGFyYW1ldGVycy5sZW5ndGggPiAwID8gcGFyYW1ldGVyc1twYXJhbWV0ZXJzLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICBpZiAobGFzdFBhcmFtICYmIGxhc3RQYXJhbS52YXJpYWRpYykge1xuICAgIHJldHVybiBsYXN0UGFyYW07XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGF0IGEgcHJldmlvdXNseSBtdXRhYmxlIHByb3BlcnR5IGlzIG5vdCBtYWRlIGltbXV0YWJsZVxuICpcbiAqIE1ha2Ugc3VyZSB0aGUgZm9sbG93aW5nIHJlbWFpbnMgY29tcGlsYWJsZTpcbiAqXG4gKiBgYGBcbiAqIG9iamVjdC5wcm9wID0gdmFsdWU7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlTm90TWFkZUltbXV0YWJsZShcbiAgb3JpZ2luYWw6IHJlZmxlY3QuUHJvcGVydHksXG4gIHVwZGF0ZWQ6IHJlZmxlY3QuUHJvcGVydHksXG4gIG1pc21hdGNoZXM6IElSZXBvcnQsXG4pIHtcbiAgaWYgKHVwZGF0ZWQuaW1tdXRhYmxlICYmICFvcmlnaW5hbC5pbW11dGFibGUpIHtcbiAgICBtaXNtYXRjaGVzLnJlcG9ydCh7XG4gICAgICBydWxlS2V5OiAncmVtb3ZlZC1tdXRhYmlsaXR5JyxcbiAgICAgIHZpb2xhdG9yOiBvcmlnaW5hbCxcbiAgICAgIG1lc3NhZ2U6ICd1c2VkIHRvIGJlIG11dGFibGUsIGlzIG5vdyBpbW11dGFibGUnLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogbWVtYmVyUGFpcnM8XG4gIFQgZXh0ZW5kcyByZWZsZWN0LlR5cGVNZW1iZXIsXG4gIFUgZXh0ZW5kcyByZWZsZWN0LlJlZmVyZW5jZVR5cGUsXG4+KFxuICBvcmlnQ2xhc3M6IFUsXG4gIHhzOiBUW10sXG4gIHVwZGF0ZWRDbGFzczogVSxcbiAgbWlzbWF0Y2hlczogSVJlcG9ydCxcbik6IEl0ZXJhYmxlSXRlcmF0b3I8W1QsIHJlZmxlY3QuVHlwZU1lbWJlcl0+IHtcbiAgZm9yIChjb25zdCBvcmlnTWVtYmVyIG9mIHhzKSB7XG4gICAgTE9HLnRyYWNlKGAke29yaWdDbGFzcy5mcW59IyR7b3JpZ01lbWJlci5uYW1lfWApO1xuXG4gICAgY29uc3QgdXBkYXRlZE1lbWJlciA9IHVwZGF0ZWRDbGFzcy5hbGxNZW1iZXJzLmZpbmQoXG4gICAgICAobSkgPT4gbS5uYW1lID09PSBvcmlnTWVtYmVyLm5hbWUsXG4gICAgKTtcbiAgICBpZiAoIXVwZGF0ZWRNZW1iZXIpIHtcbiAgICAgIG1pc21hdGNoZXMucmVwb3J0KHtcbiAgICAgICAgcnVsZUtleTogJ3JlbW92ZWQnLFxuICAgICAgICB2aW9sYXRvcjogb3JpZ01lbWJlcixcbiAgICAgICAgbWVzc2FnZTogJ2hhcyBiZWVuIHJlbW92ZWQnLFxuICAgICAgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAob3JpZ01lbWJlci5raW5kICE9PSB1cGRhdGVkTWVtYmVyLmtpbmQpIHtcbiAgICAgIG1pc21hdGNoZXMucmVwb3J0KHtcbiAgICAgICAgcnVsZUtleTogJ2NoYW5nZWQta2luZCcsXG4gICAgICAgIHZpb2xhdG9yOiBvcmlnTWVtYmVyLFxuICAgICAgICBtZXNzYWdlOiBgY2hhbmdlZCBmcm9tICR7b3JpZ01lbWJlci5raW5kfSB0byAke3VwZGF0ZWRNZW1iZXIua2luZH1gLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKCFvcmlnTWVtYmVyLnByb3RlY3RlZCAmJiB1cGRhdGVkTWVtYmVyLnByb3RlY3RlZCkge1xuICAgICAgbWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgICBydWxlS2V5OiAnaGlkZGVuJyxcbiAgICAgICAgdmlvbGF0b3I6IG9yaWdNZW1iZXIsXG4gICAgICAgIG1lc3NhZ2U6IFwiY2hhbmdlZCBmcm9tICdwdWJsaWMnIHRvICdwcm90ZWN0ZWQnXCIsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB5aWVsZCBbb3JpZ01lbWJlciwgdXBkYXRlZE1lbWJlcl07XG4gIH1cbn1cblxuLyoqXG4gKiBXaGV0aGVyIHdlIGFyZSBzdHJlbmd0aGVuaW5nIHRoZSBwb3N0Y29uZGl0aW9uIChvdXRwdXQgdHlwZSBvZiBhIG1ldGhvZCBvciBwcm9wZXJ0eSlcbiAqXG4gKiBTdHJlbmd0aGVuaW5nIG91dHB1dCB2YWx1ZXMgaXMgYWxsb3dlZCFcbiAqL1xuZnVuY3Rpb24gaXNDb21wYXRpYmxlUmV0dXJuVHlwZShcbiAgb3JpZ2luYWw6IHJlZmxlY3QuT3B0aW9uYWxWYWx1ZSxcbiAgdXBkYXRlZDogcmVmbGVjdC5PcHRpb25hbFZhbHVlLFxuKTogQW5hbHlzaXMge1xuICBpZiAob3JpZ2luYWwudHlwZS52b2lkKSB7XG4gICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSB9O1xuICB9IC8vIElmIHdlIGRpZG4ndCB1c2UgdG8gcmV0dXJuIGFueXRoaW5nLCByZXR1cm5pbmcgc29tZXRoaW5nIG5vdyBpcyBmaW5lXG4gIGlmICh1cGRhdGVkLnR5cGUudm9pZCkge1xuICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCByZWFzb25zOiBbXCJub3cgcmV0dXJuaW5nICd2b2lkJ1wiXSB9O1xuICB9IC8vIElmIHdlIHVzZWQgdG8gcmV0dXJuIHNvbWV0aGluZywgd2UgY2FuJ3Qgc3RvcCBkb2luZyB0aGF0XG4gIGlmICghb3JpZ2luYWwub3B0aW9uYWwgJiYgdXBkYXRlZC5vcHRpb25hbCkge1xuICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCByZWFzb25zOiBbJ291dHB1dCB0eXBlIGlzIG5vdyBvcHRpb25hbCddIH07XG4gIH1cbiAgcmV0dXJuIGlzU3VwZXJUeXBlKG9yaWdpbmFsLnR5cGUsIHVwZGF0ZWQudHlwZSwgdXBkYXRlZC5zeXN0ZW0pO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgd2UgYXJlIHdlYWtlbmluZyB0aGUgcHJlIChpbnB1dCB0eXBlIG9mIGEgbWV0aG9kKVxuICpcbiAqIFdlYWtlbmluZyBwcmVjb25kaXRpb25zIGlzIGFsbG93ZWQhXG4gKi9cbmZ1bmN0aW9uIGlzQ29tcGF0aWJsZUFyZ3VtZW50VHlwZShcbiAgb3JpZ2luYWw6IHJlZmxlY3QuVHlwZVJlZmVyZW5jZSxcbiAgdXBkYXRlZDogcmVmbGVjdC5UeXBlUmVmZXJlbmNlLFxuKTogQW5hbHlzaXMge1xuICAvLyBJbnB1dCBjYW4gbmV2ZXIgYmUgdm9pZCwgc28gbm8gbmVlZCB0byBjaGVja1xuICByZXR1cm4gaXNTdXBlclR5cGUodXBkYXRlZCwgb3JpZ2luYWwsIHVwZGF0ZWQuc3lzdGVtKTtcbn1cblxuLyoqXG4gKiBWZXJpZnkgYXNzaWduYWJpbGl0eSB0byBzdXBlcnR5cGVzXG4gKlxuICogRm9yIGV2ZXJ5IGJhc2UgdHlwZSBCIG9mIHR5cGUgVCwgc29tZW9uZSBjb3VsZCBoYXZlIHdyaXR0ZW46XG4gKlxuICogYGBgXG4gKiBjb25zdCB2YXJpYWJsZTogQiA9IG5ldyBUKCk7XG4gKiBgYGBcbiAqXG4gKiBUaGlzIGNvZGUgbmVlZHMgdG8gYmUgdmFsaWQgaW4gdGhlIHVwZGF0ZWQgYXNzZW1ibHksIHNvIGZvciBlYWNoXG4gKiBCIGFuIHVwZGF0ZWQgdHlwZSBCJyBuZWVkcyB0byBleGlzdCBpbiB0aGUgbmV3IGFzc2VtYmx5IHdoaWNoIGlzXG4gKiBzdGlsbCBhIHN1cGVydHlwZSBvZiBUJy5cbiAqL1xuZnVuY3Rpb24gYXNzaWduYWJsZVRvQWxsQmFzZVR5cGVzKFxuICBvcmlnaW5hbDogcmVmbGVjdC5SZWZlcmVuY2VUeXBlLFxuICB1cGRhdGVkOiByZWZsZWN0LlJlZmVyZW5jZVR5cGUsXG4pOiBBbmFseXNpcyB7XG4gIGZvciAoY29uc3QgQiBvZiBiYXNlVHlwZXMob3JpZ2luYWwpKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gaXNOb21pbmFsU3VwZXJUeXBlKFxuICAgICAgQi5yZWZlcmVuY2UsXG4gICAgICB1cGRhdGVkLnJlZmVyZW5jZSxcbiAgICAgIHVwZGF0ZWQuc3lzdGVtLFxuICAgICk7XG4gICAgaWYgKCFyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSB9O1xufVxuXG4vKipcbiAqIFJldHVybiBhbGwgYmFzZSB0eXBlcyBvZiB0aGUgZ2l2ZW4gcmVmZXJlbmNlIHR5cGVcbiAqL1xuZnVuY3Rpb24gYmFzZVR5cGVzKHR5cGU6IHJlZmxlY3QuUmVmZXJlbmNlVHlwZSkge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8cmVmbGVjdC5SZWZlcmVuY2VUeXBlPigpO1xuICBjb25zdCB0b2RvOiByZWZsZWN0LlJlZmVyZW5jZVR5cGVbXSA9IFt0eXBlXTtcbiAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIHdoaWxlICh0b2RvLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBuZXh0ID0gdG9kby5wb3AoKSE7XG4gICAgaWYgKHNlZW4uaGFzKG5leHQuZnFuKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHJldC5wdXNoKG5leHQpO1xuICAgIHNlZW4uYWRkKG5leHQuZnFuKTtcblxuICAgIHRvZG8ucHVzaCguLi5uZXh0LmludGVyZmFjZXMpO1xuICAgIGlmIChuZXh0LmlzQ2xhc3NUeXBlKCkgJiYgbmV4dC5iYXNlKSB7XG4gICAgICB0b2RvLnB1c2gobmV4dC5iYXNlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIHRoYXQgZWFjaCBlbnVtIG1lbWJlciBpbiB0aGUgb2xkIGVudW0gZW51bSwgYW5kIGFwcGx5IGN1c3RvbSB2YWxpZGF0aW9uIHRvIHRoZSBlbnVtc1xuICpcbiAqIE1ha2Ugc3VyZSB0aGUgZm9sbG93aW5nIHJlbWFpbnMgY29tcGlsYWJsZTpcbiAqXG4gKiBgYGBcbiAqIFQgeCA9IEVOVU0ubWVtYmVyO1xuICogYGBgXG4gKlxuICogKEZvciBldmVyeSBtZW1iZXIgb2YgZW51bSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRXhpc3RpbmdNZW1iZXJzKFxuICBvcmlnaW5hbDogcmVmbGVjdC5FbnVtVHlwZSxcbiAgdXBkYXRlZDogcmVmbGVjdC5FbnVtVHlwZSxcbiAgbWlzbWF0Y2hlczogSVJlcG9ydCxcbiAgdmFsaWRhdGVNZW1iZXI6IChcbiAgICBvbGRQYXJhbTogcmVmbGVjdC5FbnVtTWVtYmVyLFxuICAgIG5ld1BhcmFtOiByZWZsZWN0LkVudW1NZW1iZXIsXG4gICkgPT4gdm9pZCxcbikge1xuICBmb3IgKGNvbnN0IG9yaWdNZW1iZXIgb2Ygb3JpZ2luYWwubWVtYmVycykge1xuICAgIGNvbnN0IHVwZGF0ZWRNZW1iZXIgPSB1cGRhdGVkLm1lbWJlcnMuZmluZChcbiAgICAgIChtKSA9PiBtLm5hbWUgPT09IG9yaWdNZW1iZXIubmFtZSxcbiAgICApO1xuICAgIGlmICghdXBkYXRlZE1lbWJlcikge1xuICAgICAgbWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgICBydWxlS2V5OiAncmVtb3ZlZCcsXG4gICAgICAgIHZpb2xhdG9yOiBvcmlnTWVtYmVyLFxuICAgICAgICBtZXNzYWdlOiBgbWVtYmVyICR7b3JpZ01lbWJlci5uYW1lfSBoYXMgYmVlbiByZW1vdmVkYCxcbiAgICAgIH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdmFsaWRhdGVNZW1iZXIob3JpZ01lbWJlciwgdXBkYXRlZE1lbWJlcik7XG4gIH1cbn1cbiJdfQ==
|
|
487
|
+
//# sourceMappingURL=validations.js.map
|