jsii-pacmak 1.59.0 → 1.60.0

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.
Files changed (114) hide show
  1. package/bin/jsii-pacmak.js +10 -10
  2. package/bin/jsii-pacmak.js.map +1 -0
  3. package/lib/builder.js +2 -2
  4. package/lib/builder.js.map +1 -0
  5. package/lib/dependency-graph.js +7 -11
  6. package/lib/dependency-graph.js.map +1 -0
  7. package/lib/generator.js +4 -6
  8. package/lib/generator.js.map +1 -0
  9. package/lib/index.js +7 -7
  10. package/lib/index.js.map +1 -0
  11. package/lib/logging.js +1 -1
  12. package/lib/logging.js.map +1 -0
  13. package/lib/markdown.js +5 -9
  14. package/lib/markdown.js.map +1 -0
  15. package/lib/naming-util.js +1 -1
  16. package/lib/naming-util.js.map +1 -0
  17. package/lib/npm-modules.js +8 -9
  18. package/lib/npm-modules.js.map +1 -0
  19. package/lib/packaging.js +3 -4
  20. package/lib/packaging.js.map +1 -0
  21. package/lib/target.js +5 -7
  22. package/lib/target.js.map +1 -0
  23. package/lib/targets/_utils.js +4 -5
  24. package/lib/targets/_utils.js.map +1 -0
  25. package/lib/targets/dotnet/dotnetdocgenerator.js +8 -10
  26. package/lib/targets/dotnet/dotnetdocgenerator.js.map +1 -0
  27. package/lib/targets/dotnet/dotnetgenerator.js +11 -19
  28. package/lib/targets/dotnet/dotnetgenerator.js.map +1 -0
  29. package/lib/targets/dotnet/dotnetruntimegenerator.js +2 -3
  30. package/lib/targets/dotnet/dotnetruntimegenerator.js.map +1 -0
  31. package/lib/targets/dotnet/dotnettyperesolver.js +10 -14
  32. package/lib/targets/dotnet/dotnettyperesolver.js.map +1 -0
  33. package/lib/targets/dotnet/filegenerator.js +5 -5
  34. package/lib/targets/dotnet/filegenerator.js.map +1 -0
  35. package/lib/targets/dotnet/nameutils.js +3 -3
  36. package/lib/targets/dotnet/nameutils.js.map +1 -0
  37. package/lib/targets/dotnet.js +8 -8
  38. package/lib/targets/dotnet.js.map +1 -0
  39. package/lib/targets/go/comparators.js +1 -1
  40. package/lib/targets/go/comparators.js.map +1 -0
  41. package/lib/targets/go/dependencies.js +1 -1
  42. package/lib/targets/go/dependencies.js.map +1 -0
  43. package/lib/targets/go/documentation.js +1 -1
  44. package/lib/targets/go/documentation.js.map +1 -0
  45. package/lib/targets/go/emit-context.js +1 -1
  46. package/lib/targets/go/emit-context.js.map +1 -0
  47. package/lib/targets/go/package.js +18 -20
  48. package/lib/targets/go/package.js.map +1 -0
  49. package/lib/targets/go/readme-file.js +1 -1
  50. package/lib/targets/go/readme-file.js.map +1 -0
  51. package/lib/targets/go/runtime/class-constructor.js +6 -6
  52. package/lib/targets/go/runtime/class-constructor.js.map +1 -0
  53. package/lib/targets/go/runtime/constants.js +1 -1
  54. package/lib/targets/go/runtime/constants.js.map +1 -0
  55. package/lib/targets/go/runtime/emit-arguments.js +3 -3
  56. package/lib/targets/go/runtime/emit-arguments.js.map +1 -0
  57. package/lib/targets/go/runtime/function-call.js +2 -3
  58. package/lib/targets/go/runtime/function-call.js.map +1 -0
  59. package/lib/targets/go/runtime/index.js +7 -3
  60. package/lib/targets/go/runtime/index.js.map +1 -0
  61. package/lib/targets/go/runtime/method-call.js +5 -5
  62. package/lib/targets/go/runtime/method-call.js.map +1 -0
  63. package/lib/targets/go/runtime/property-access.js +5 -5
  64. package/lib/targets/go/runtime/property-access.js.map +1 -0
  65. package/lib/targets/go/runtime/util.js +1 -1
  66. package/lib/targets/go/runtime/util.js.map +1 -0
  67. package/lib/targets/go/types/class.js +11 -17
  68. package/lib/targets/go/types/class.js.map +1 -0
  69. package/lib/targets/go/types/enum.js +1 -1
  70. package/lib/targets/go/types/enum.js.map +1 -0
  71. package/lib/targets/go/types/go-type-reference.js +10 -14
  72. package/lib/targets/go/types/go-type-reference.js.map +1 -0
  73. package/lib/targets/go/types/go-type.js +1 -1
  74. package/lib/targets/go/types/go-type.js.map +1 -0
  75. package/lib/targets/go/types/index.js +7 -3
  76. package/lib/targets/go/types/index.js.map +1 -0
  77. package/lib/targets/go/types/interface.js +8 -11
  78. package/lib/targets/go/types/interface.js.map +1 -0
  79. package/lib/targets/go/types/struct.js +2 -2
  80. package/lib/targets/go/types/struct.js.map +1 -0
  81. package/lib/targets/go/types/type-member.js +11 -14
  82. package/lib/targets/go/types/type-member.js.map +1 -0
  83. package/lib/targets/go/util.js +5 -8
  84. package/lib/targets/go/util.js.map +1 -0
  85. package/lib/targets/go/version-file.js +1 -1
  86. package/lib/targets/go/version-file.js.map +1 -0
  87. package/lib/targets/go.js +4 -4
  88. package/lib/targets/go.js.map +1 -0
  89. package/lib/targets/index.js +3 -3
  90. package/lib/targets/index.js.map +1 -0
  91. package/lib/targets/java.d.ts.map +1 -1
  92. package/lib/targets/java.js +70 -84
  93. package/lib/targets/java.js.map +1 -0
  94. package/lib/targets/js.js +2 -2
  95. package/lib/targets/js.js.map +1 -0
  96. package/lib/targets/python/requirements-dev.txt +1 -1
  97. package/lib/targets/python/type-name.js +63 -62
  98. package/lib/targets/python/type-name.js.map +1 -0
  99. package/lib/targets/python/util.js +1 -1
  100. package/lib/targets/python/util.js.map +1 -0
  101. package/lib/targets/python.js +81 -91
  102. package/lib/targets/python.js.map +1 -0
  103. package/lib/targets/version-utils.js +6 -7
  104. package/lib/targets/version-utils.js.map +1 -0
  105. package/lib/timer.js +1 -1
  106. package/lib/timer.js.map +1 -0
  107. package/lib/toposort.js +1 -1
  108. package/lib/toposort.js.map +1 -0
  109. package/lib/util.js +15 -18
  110. package/lib/util.js.map +1 -0
  111. package/lib/version.d.ts +2 -2
  112. package/lib/version.js +4 -4
  113. package/lib/version.js.map +1 -0
  114. package/package.json +15 -22
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotnettyperesolver.js","sourceRoot":"","sources":["dotnettyperesolver.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ class DotNetDependency {
15
15
  this.packageId = packageId;
16
16
  this.fqn = fqn;
17
17
  this.partOfCompilation = partOfCompilation;
18
- this.version = version_utils_1.toNuGetVersionRange(version);
18
+ this.version = (0, version_utils_1.toNuGetVersionRange)(version);
19
19
  }
20
20
  }
21
21
  exports.DotNetDependency = DotNetDependency;
@@ -86,7 +86,7 @@ class FileGenerator {
86
86
  const itemGroup2 = rootNode.ele('ItemGroup');
87
87
  const packageReference = itemGroup2.ele('PackageReference');
88
88
  packageReference.att('Include', 'Amazon.JSII.Runtime');
89
- packageReference.att('Version', version_utils_1.toNuGetVersionRange(`^${jsiiVersion}`));
89
+ packageReference.att('Version', (0, version_utils_1.toNuGetVersionRange)(`^${jsiiVersion}`));
90
90
  dependencies.forEach((value) => {
91
91
  if (value.partOfCompilation) {
92
92
  const dependencyReference = itemGroup2.ele('ProjectReference');
@@ -106,7 +106,7 @@ class FileGenerator {
106
106
  warnings.comment('Treat warnings symptomatic of code generation bugs as errors');
107
107
  warnings.ele('WarningsAsErrors', [
108
108
  '0108',
109
- '0109',
109
+ '0109', // The member 'member' does not hide an inherited member. The new keyword is not required.
110
110
  ].join(','));
111
111
  const xml = rootNode.end({ pretty: true, spaceBeforeSlash: true });
112
112
  // Sending the xml content to the codemaker to ensure the file is written
@@ -147,8 +147,8 @@ class FileGenerator {
147
147
  // suffix is guaranteed to start with a leading `-`
148
148
  return `${assembly.version}${suffix}`;
149
149
  }
150
- return version_utils_1.toReleaseVersion(assembly.version, __1.TargetName.DOTNET);
150
+ return (0, version_utils_1.toReleaseVersion)(assembly.version, __1.TargetName.DOTNET);
151
151
  }
152
152
  }
153
153
  exports.FileGenerator = FileGenerator;
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZpbGVnZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsNkJBQTZCO0FBQzdCLHlDQUF5QztBQUV6QywwQkFBZ0M7QUFDaEMseUNBQXlDO0FBQ3pDLHNDQUE2QztBQUM3QyxvREFBeUU7QUFDekUsMkNBQThDO0FBRTlDLGtEQUFrRDtBQUNsRCxNQUFhLGdCQUFnQjtJQUczQixZQUNrQixTQUFpQixFQUNqQixTQUFpQixFQUNqQixHQUFXLEVBQzNCLE9BQWUsRUFDQyxpQkFBMEI7UUFKMUIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFFWCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVM7UUFFMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxtQ0FBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUFaRCw0Q0FZQztBQUVELHdFQUF3RTtBQUN4RSwySEFBMkg7QUFDM0gsTUFBYSxhQUFhO0lBU3hCLHdFQUF3RTtJQUN4RSx3REFBd0Q7SUFDeEQsWUFBbUIsSUFBYyxFQUFFLGVBQXVCLEVBQUUsSUFBZTtRQVAxRCwyQkFBc0IsR0FBYTtZQUNsRCw0QkFBNEI7U0FDN0IsQ0FBQztRQUNlLGNBQVMsR0FBb0IsSUFBSSwyQkFBZSxFQUFFLENBQUM7UUFLbEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELDZCQUE2QjtJQUN0QixtQkFBbUIsQ0FBQyxZQUEyQztRQUNwRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLE1BQU0sU0FBUyxHQUFXLFFBQVEsQ0FBQyxPQUFR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QUM3RDtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMvQixDQUFDO0lBRUQsa0NBQWtDO0lBQzFCLG1CQUFtQixDQUFDLFFBQWtCO1FBQzVDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLGFBQWEsQ0FBQztRQUN2RCxJQUFJLE1BQU0sRUFBRTtZQUNWLG1EQUFtRDtZQUNuRCxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQztTQUN2QztRQUNELE9BQU8sZ0NBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxjQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGO0FBN0pELHNDQTZKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzc2VtYmx5IH0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tICdjb2RlbWFrZXInO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHhtbGJ1aWxkZXIgZnJvbSAneG1sYnVpbGRlcic7XG5cbmltcG9ydCB7IFRhcmdldE5hbWUgfSBmcm9tICcuLic7XG5pbXBvcnQgKiBhcyBsb2dnaW5nIGZyb20gJy4uLy4uL2xvZ2dpbmcnO1xuaW1wb3J0IHsgVEFSR0VUX0ZSQU1FV09SSyB9IGZyb20gJy4uL2RvdG5ldCc7XG5pbXBvcnQgeyB0b051R2V0VmVyc2lvblJhbmdlLCB0b1JlbGVhc2VWZXJzaW9uIH0gZnJvbSAnLi4vdmVyc2lvbi11dGlscyc7XG5pbXBvcnQgeyBEb3ROZXROYW1lVXRpbHMgfSBmcm9tICcuL25hbWV1dGlscyc7XG5cbi8vIFJlcHJlc2VudHMgYSBkZXBlbmRlbmN5IGluIHRoZSBkZXBlbmRlbmN5IHRyZWUuXG5leHBvcnQgY2xhc3MgRG90TmV0RGVwZW5kZW5jeSB7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGFja2FnZUlkOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGZxbjogc3RyaW5nLFxuICAgIHZlcnNpb246IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGFydE9mQ29tcGlsYXRpb246IGJvb2xlYW4sXG4gICkge1xuICAgIHRoaXMudmVyc2lvbiA9IHRvTnVHZXRWZXJzaW9uUmFuZ2UodmVyc2lvbik7XG4gIH1cbn1cblxuLy8gR2VuZXJhdGVzIG1pc2MgZmlsZXMgc3VjaCBhcyB0aGUgLmNzcHJvaiBhbmQgdGhlIEFzc2VtYmx5SW5mby5jcyBmaWxlXG4vLyBVc2VzIHRoZSBzYW1lIGluc3RhbmNlIG9mIENvZGVNYWtlciBhcyB0aGUgcmVzdCBvZiB0aGUgY29kZSBzbyB0aGF0IHRoZSBmaWxlcyBnZXQgY3JlYXRlZCB3aGVuIGNhbGxpbmcgdGhlIHNhdmUoKSBtZXRob2RcbmV4cG9ydCBjbGFzcyBGaWxlR2VuZXJhdG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhc3NtOiBBc3NlbWJseTtcbiAgcHJpdmF0ZSByZWFkb25seSB0YXJiYWxsRmlsZU5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjb2RlOiBDb2RlTWFrZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXNzZW1ibHlJbmZvTmFtZXNwYWNlczogc3RyaW5nW10gPSBbXG4gICAgJ0FtYXpvbi5KU0lJLlJ1bnRpbWUuRGVwdXR5JyxcbiAgXTtcbiAgcHJpdmF0ZSByZWFkb25seSBuYW1ldXRpbHM6IERvdE5ldE5hbWVVdGlscyA9IG5ldyBEb3ROZXROYW1lVXRpbHMoKTtcblxuICAvLyBXZSBwYXNzIGluIGFuIGluc3RhbmNlIG9mIENvZGVNYWtlciBzbyB0aGF0IHRoZSBmaWxlcyBnZXQgbGF0ZXIgc2F2ZWRcbiAgLy8gd2hlbiBjYWxsaW5nIHRoZSBzYXZlKCkgbWV0aG9kIG9uIHRoZSAuTkVUIEdlbmVyYXRvci5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGFzc206IEFzc2VtYmx5LCB0YXJiYWxsRmlsZU5hbWU6IHN0cmluZywgY29kZTogQ29kZU1ha2VyKSB7XG4gICAgdGhpcy5hc3NtID0gYXNzbTtcbiAgICB0aGlzLnRhcmJhbGxGaWxlTmFtZSA9IHRhcmJhbGxGaWxlTmFtZTtcbiAgICB0aGlzLmNvZGUgPSBjb2RlO1xuICB9XG5cbiAgLy8gR2VuZXJhdGVzIHRoZSAuY3Nwcm9qIGZpbGVcbiAgcHVibGljIGdlbmVyYXRlUHJvamVjdEZpbGUoZGVwZW5kZW5jaWVzOiBNYXA8c3RyaW5nLCBEb3ROZXREZXBlbmRlbmN5Pikge1xuICAgIGNvbnN0IGFzc2VtYmx5ID0gdGhpcy5hc3NtO1xuICAgIGNvbnN0IHBhY2thZ2VJZDogc3RyaW5nID0gYXNzZW1ibHkudGFyZ2V0cyEuZG90bmV0IS5wYWNrYWdlSWQ7XG5cbiAgICBjb25zdCBwcm9qZWN0RmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihwYWNrYWdlSWQsIGAke3BhY2thZ2VJZH0uY3Nwcm9qYCk7XG5cbiAgICAvLyBDb25zdHJ1Y3QgWE1MIGNzcHJvaiBjb250ZW50LlxuICAgIC8vIGhlYWRsZXNzIHJlbW92ZXMgdGhlIDx4bWw/PiBoZWFkIG5vZGUgc28gdGhhdCB0aGUgZmlyc3Qgbm9kZSBpcyB0aGUgPFByb2plY3Q+IG5vZGVcbiAgICBjb25zdCByb290Tm9kZSA9IHhtbGJ1aWxkZXIuY3JlYXRlKCdQcm9qZWN0Jywge1xuICAgICAgZW5jb2Rpbmc6ICdVVEYtOCcsXG4gICAgICBoZWFkbGVzczogdHJ1ZSxcbiAgICB9KTtcbiAgICByb290Tm9kZS5hdHQoJ1NkaycsICdNaWNyb3NvZnQuTkVULlNkaycpO1xuICAgIGNvbnN0IHByb3BlcnR5R3JvdXAgPSByb290Tm9kZS5lbGUoJ1Byb3BlcnR5R3JvdXAnKTtcbiAgICBjb25zdCBkb3RuZXRJbmZvID0gYXNzZW1ibHkudGFyZ2V0cyEuZG90bmV0O1xuXG4gICAgcHJvcGVydHlHcm91cC5jb21tZW50KCdQYWNrYWdlIElkZW50aWZpY2F0aW9uJyk7XG4gICAgcHJvcGVydHlHcm91cC5lbGUoJ0Rlc2NyaXB0aW9uJywgdGhpcy5nZXREZXNjcmlwdGlvbigpKTtcbiAgICBpZiAoZG90bmV0SW5mbyEuaWNvblVybCAhPSBudWxsKSB7XG4gICAgICBwcm9wZXJ0eUdyb3VwLmVsZSgnUGFja2FnZUljb25VcmwnLCBkb3RuZXRJbmZvIS5pY29uVXJsKTtcbiAgICB9XG4gICAgcHJvcGVydHlHcm91cC5lbGUoJ1BhY2thZ2VJZCcsIHBhY2thZ2VJZCk7XG4gICAgcHJvcGVydHlHcm91cC5lbGUoJ1BhY2thZ2VMaWNlbnNlRXhwcmVzc2lvbicsIGFzc2VtYmx5LmxpY2Vuc2UpO1xuICAgIHByb3BlcnR5R3JvdXAuZWxlKCdQYWNrYWdlVmVyc2lvbicsIHRoaXMuZ2V0RGVjb3JhdGVkVmVyc2lvbihhc3NlbWJseSkpO1xuICAgIGlmIChkb3RuZXRJbmZvIS50aXRsZSAhPSBudWxsKSB7XG4gICAgICBwcm9wZXJ0eUdyb3VwLmVsZSgnVGl0bGUnLCBkb3RuZXRJbmZvIS50aXRsZSk7XG4gICAgfVxuXG4gICAgcHJvcGVydHlHcm91cC5jb21tZW50KCdBZGRpdGlvbmFsIE1ldGFkYXRhJyk7XG4gICAgcHJvcGVydHlHcm91cC5lbGUoJ0F1dGhvcnMnLCBhc3NlbWJseS5hdXRob3IubmFtZSk7XG4gICAgaWYgKGFzc2VtYmx5LmF1dGhvci5vcmdhbml6YXRpb24pIHtcbiAgICAgIHByb3BlcnR5R3JvdXAuZWxlKCdDb21wYW55JywgYXNzZW1ibHkuYXV0aG9yLm5hbWUpO1xuICAgIH1cbiAgICBpZiAoYXNzZW1ibHkua2V5d29yZHMpIHtcbiAgICAgIHByb3BlcnR5R3JvdXAuZWxlKCdQYWNrYWdlVGFncycsIGFzc2VtYmx5LmtleXdvcmRzLmpvaW4oJzsnKSk7XG4gICAgfVxuICAgIHByb3BlcnR5R3JvdXAuZWxlKCdMYW5ndWFnZScsICdlbi1VUycpO1xuICAgIHByb3BlcnR5R3JvdXAuZWxlKCdQcm9qZWN0VXJsJywgYXNzZW1ibHkuaG9tZXBhZ2UpO1xuICAgIHByb3BlcnR5R3JvdXAuZWxlKCdSZXBvc2l0b3J5VXJsJywgYXNzZW1ibHkucmVwb3NpdG9yeS51cmwpO1xuICAgIHByb3BlcnR5R3JvdXAuZWxlKCdSZXBvc2l0b3J5VHlwZScsIGFzc2VtYmx5LnJlcG9zaXRvcnkudHlwZSk7XG5cbiAgICBwcm9wZXJ0eUdyb3VwLmNvbW1lbnQoJ0J1aWxkIENvbmZpZ3VyYXRpb24nKTtcbiAgICBwcm9wZXJ0eUdyb3VwLmVsZSgnR2VuZXJhdGVEb2N1bWVudGF0aW9uRmlsZScsICd0cnVlJyk7XG4gICAgcHJvcGVydHlHcm91cC5lbGUoJ0dlbmVyYXRlUGFja2FnZU9uQnVpbGQnLCAndHJ1ZScpO1xuICAgIHByb3BlcnR5R3JvdXAuZWxlKCdJbmNsdWRlU3ltYm9scycsICd0cnVlJyk7XG4gICAgcHJvcGVydHlHcm91cC5lbGUoJ0luY2x1ZGVTb3VyY2UnLCAndHJ1ZScpO1xuICAgIHByb3BlcnR5R3JvdXAuZWxlKCdOdWxsYWJsZScsICdlbmFibGUnKTtcbiAgICBwcm9wZXJ0eUdyb3VwLmVsZSgnU3ltYm9sUGFja2FnZUZvcm1hdCcsICdzbnVwa2cnKTtcbiAgICBwcm9wZXJ0eUdyb3VwLmVsZSgnVGFyZ2V0RnJhbWV3b3JrJywgVEFSR0VUX0ZSQU1FV09SSyk7XG5cbiAgICBjb25zdCBpdGVtR3JvdXAxID0gcm9vdE5vZGUuZWxlKCdJdGVtR3JvdXAnKTtcbiAgICBjb25zdCBlbWJlZGRlZFJlc291cmNlID0gaXRlbUdyb3VwMS5lbGUoJ0VtYmVkZGVkUmVzb3VyY2UnKTtcbiAgICBlbWJlZGRlZFJlc291cmNlLmF0dCgnSW5jbHVkZScsIHRoaXMudGFyYmFsbEZpbGVOYW1lKTtcblxuICAgIC8vIFN0cmlwIFwiIChidWlsZCBhYmNkZWYpXCIgZnJvbSB0aGUganNpaSB2ZXJzaW9uXG4gICAgY29uc3QganNpaVZlcnNpb24gPSBhc3NlbWJseS5qc2lpVmVyc2lvbi5yZXBsYWNlKC8gLiokLywgJycpO1xuXG4gICAgY29uc3QgaXRlbUdyb3VwMiA9IHJvb3ROb2RlLmVsZSgnSXRlbUdyb3VwJyk7XG4gICAgY29uc3QgcGFja2FnZVJlZmVyZW5jZSA9IGl0ZW1Hcm91cDIuZWxlKCdQYWNrYWdlUmVmZXJlbmNlJyk7XG4gICAgcGFja2FnZVJlZmVyZW5jZS5hdHQoJ0luY2x1ZGUnLCAnQW1hem9uLkpTSUkuUnVudGltZScpO1xuICAgIHBhY2thZ2VSZWZlcmVuY2UuYXR0KCdWZXJzaW9uJywgdG9OdUdldFZlcnNpb25SYW5nZShgXiR7anNpaVZlcnNpb259YCkpO1xuXG4gICAgZGVwZW5kZW5jaWVzLmZvckVhY2goKHZhbHVlOiBEb3ROZXREZXBlbmRlbmN5KSA9PiB7XG4gICAgICBpZiAodmFsdWUucGFydE9mQ29tcGlsYXRpb24pIHtcbiAgICAgICAgY29uc3QgZGVwZW5kZW5jeVJlZmVyZW5jZSA9IGl0ZW1Hcm91cDIuZWxlKCdQcm9qZWN0UmVmZXJlbmNlJyk7XG4gICAgICAgIGRlcGVuZGVuY3lSZWZlcmVuY2UuYXR0KFxuICAgICAgICAgICdJbmNsdWRlJyxcbiAgICAgICAgICBgLi4vJHt2YWx1ZS5wYWNrYWdlSWR9LyR7dmFsdWUucGFja2FnZUlkfS5jc3Byb2pgLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGVwZW5kZW5jeVJlZmVyZW5jZSA9IGl0ZW1Hcm91cDIuZWxlKCdQYWNrYWdlUmVmZXJlbmNlJyk7XG4gICAgICAgIGRlcGVuZGVuY3lSZWZlcmVuY2UuYXR0KCdJbmNsdWRlJywgdmFsdWUucGFja2FnZUlkKTtcbiAgICAgICAgZGVwZW5kZW5jeVJlZmVyZW5jZS5hdHQoJ1ZlcnNpb24nLCB2YWx1ZS52ZXJzaW9uKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHdhcm5pbmdzID0gcm9vdE5vZGUuZWxlKCdQcm9wZXJ0eUdyb3VwJyk7XG4gICAgLy8gU3VwcHJlc3Mgd2FybmluZ3MgYWJvdXQgW09ic29sZXRlXSBtZW1iZXJzLCB0aGlzIGlzIHRoZSBhdXRob3IncyBjaG9pY2UhXG4gICAgd2FybmluZ3MuY29tbWVudCgnU2lsZW5jZSBbT2Jzb2xldGVdIHdhcm5pbmdzJyk7XG4gICAgd2FybmluZ3MuZWxlKCdOb1dhcm4nKS50ZXh0KCcwNjEyLDA2MTgnKTtcbiAgICAvLyBUcmVhdCBzZWxlY3Qgd2FybmluZ3MgYXMgZXJyb3JzLCBhcyB0aGVzZSBhcmUgbGlrZWx5IGNvZGVnZW4gYnVnczpcbiAgICB3YXJuaW5ncy5jb21tZW50KFxuICAgICAgJ1RyZWF0IHdhcm5pbmdzIHN5bXB0b21hdGljIG9mIGNvZGUgZ2VuZXJhdGlvbiBidWdzIGFzIGVycm9ycycsXG4gICAgKTtcbiAgICB3YXJuaW5ncy5lbGUoXG4gICAgICAnV2FybmluZ3NBc0Vycm9ycycsXG4gICAgICBbXG4gICAgICAgICcwMTA4JywgLy8gJ21lbWJlcjEnIGhpZGVzIGluaGVyaXRlZCBtZW1iZXIgJ21lbWJlcjInLiBVc2UgdGhlIG5ldyBrZXl3b3JkIGlmIGhpZGluZyB3YXMgaW50ZW5kZWQuXG4gICAgICAgICcwMTA5JywgLy8gVGhlIG1lbWJlciAnbWVtYmVyJyBkb2VzIG5vdCBoaWRlIGFuIGluaGVyaXRlZCBtZW1iZXIuIFRoZSBuZXcga2V5d29yZCBpcyBub3QgcmVxdWlyZWQuXG4gICAgICBdLmpvaW4oJywnKSxcbiAgICApO1xuICAgIGNvbnN0IHhtbCA9IHJvb3ROb2RlLmVuZCh7IHByZXR0eTogdHJ1ZSwgc3BhY2VCZWZvcmVTbGFzaDogdHJ1ZSB9KTtcblxuICAgIC8vIFNlbmRpbmcgdGhlIHhtbCBjb250ZW50IHRvIHRoZSBjb2RlbWFrZXIgdG8gZW5zdXJlIHRoZSBmaWxlIGlzIHdyaXR0ZW5cbiAgICAvLyBhbmQgYWRkZWQgdG8gdGhlIGZpbGUgbGlzdCBmb3IgdHJhY2tpbmdcbiAgICB0aGlzLmNvZGUub3BlbkZpbGUocHJvamVjdEZpbGVQYXRoKTtcbiAgICB0aGlzLmNvZGUub3Blbih4bWwpO1xuICAgIC8vIFVuaW5kZW50IGZvciB0aGUgbmV4dCBmaWxlXG4gICAgdGhpcy5jb2RlLmNsb3NlKCk7XG4gICAgdGhpcy5jb2RlLmNsb3NlRmlsZShwcm9qZWN0RmlsZVBhdGgpO1xuXG4gICAgbG9nZ2luZy5kZWJ1ZyhgV3JpdHRlbiB0byAke3Byb2plY3RGaWxlUGF0aH1gKTtcbiAgfVxuXG4gIC8vIEdlbmVyYXRlcyB0aGUgQXNzZW1ibHlJbmZvLmNzIGZpbGVcbiAgcHVibGljIGdlbmVyYXRlQXNzZW1ibHlJbmZvRmlsZSgpIHtcbiAgICBjb25zdCBwYWNrYWdlSWQ6IHN0cmluZyA9IHRoaXMuYXNzbS50YXJnZXRzIS5kb3RuZXQhLnBhY2thZ2VJZDtcbiAgICBjb25zdCBmaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKHBhY2thZ2VJZCwgJ0Fzc2VtYmx5SW5mby5jcycpO1xuICAgIHRoaXMuY29kZS5vcGVuRmlsZShmaWxlUGF0aCk7XG4gICAgdGhpcy5hc3NlbWJseUluZm9OYW1lc3BhY2VzLm1hcCgobikgPT4gdGhpcy5jb2RlLmxpbmUoYHVzaW5nICR7bn07YCkpO1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgY29uc3QgYXNzZW1ibHkgPSBgW2Fzc2VtYmx5OiBKc2lpQXNzZW1ibHkoXCIke3RoaXMuYXNzbS5uYW1lfVwiLCBcIiR7dGhpcy5hc3NtLnZlcnNpb259XCIsIFwiJHt0aGlzLnRhcmJhbGxGaWxlTmFtZX1cIildYDtcbiAgICB0aGlzLmNvZGUubGluZShhc3NlbWJseSk7XG4gICAgdGhpcy5jb2RlLmNsb3NlRmlsZShmaWxlUGF0aCk7XG4gIH1cblxuICAvLyBHZW5lcmF0ZXMgdGhlIGRlc2NyaXB0aW9uXG4gIHByaXZhdGUgZ2V0RGVzY3JpcHRpb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBkb2NzID0gdGhpcy5hc3NtLmRvY3M7XG4gICAgaWYgKGRvY3MpIHtcbiAgICAgIGNvbnN0IHN0YWJpbGl0eSA9IGRvY3Muc3RhYmlsaXR5O1xuICAgICAgaWYgKHN0YWJpbGl0eSkge1xuICAgICAgICByZXR1cm4gYCR7XG4gICAgICAgICAgdGhpcy5hc3NtLmRlc2NyaXB0aW9uXG4gICAgICAgIH0gKFN0YWJpbGl0eTogJHt0aGlzLm5hbWV1dGlscy5jYXBpdGFsaXplV29yZChzdGFiaWxpdHkpfSlgO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hc3NtLmRlc2NyaXB0aW9uO1xuICB9XG5cbiAgLy8gR2VuZXJhdGVzIHRoZSBkZWNvcmF0ZWQgdmVyc2lvblxuICBwcml2YXRlIGdldERlY29yYXRlZFZlcnNpb24oYXNzZW1ibHk6IEFzc2VtYmx5KTogc3RyaW5nIHtcbiAgICBjb25zdCBzdWZmaXggPSBhc3NlbWJseS50YXJnZXRzIS5kb3RuZXQhLnZlcnNpb25TdWZmaXg7XG4gICAgaWYgKHN1ZmZpeCkge1xuICAgICAgLy8gc3VmZml4IGlzIGd1YXJhbnRlZWQgdG8gc3RhcnQgd2l0aCBhIGxlYWRpbmcgYC1gXG4gICAgICByZXR1cm4gYCR7YXNzZW1ibHkudmVyc2lvbn0ke3N1ZmZpeH1gO1xuICAgIH1cbiAgICByZXR1cm4gdG9SZWxlYXNlVmVyc2lvbihhc3NlbWJseS52ZXJzaW9uLCBUYXJnZXROYW1lLkRPVE5FVCk7XG4gIH1cbn1cbiJdfQ==
154
+ //# sourceMappingURL=filegenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filegenerator.js","sourceRoot":"","sources":["filegenerator.ts"],"names":[],"mappings":"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"}
@@ -76,11 +76,11 @@ class DotNetNameUtils {
76
76
  if (this.isInvalidName(original)) {
77
77
  throw new Error(`Invalid parameter name: ${original}`);
78
78
  }
79
- const name = codemaker_1.toCamelCase(original);
79
+ const name = (0, codemaker_1.toCamelCase)(original);
80
80
  return this.escapeParameterName(name);
81
81
  }
82
82
  capitalizeWord(original) {
83
- return naming_util_1.jsiiToPascalCase(original);
83
+ return (0, naming_util_1.jsiiToPascalCase)(original);
84
84
  }
85
85
  /* We only want valid names for members */
86
86
  isInvalidName(str) {
@@ -190,4 +190,4 @@ const RESERVED_KEYWORDS = [
190
190
  'volatile',
191
191
  'while',
192
192
  ];
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmFtZXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF3QztBQUV4QyxtREFBcUQ7QUFFckQsTUFBYSxlQUFlO0lBQ25CLG1CQUFtQixDQUFDLFFBQWdCO1FBQ3pDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxlQUFlLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDbkQ7UUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFFBQWdCO1FBQ3ZDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxRQUFnQjtRQUMzQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUMxRDtRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sb0JBQW9CLENBQUMsUUFB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SixLQUFLO0lBQ0wsV0FBVztJQUNYLFVBQVU7SUFDVixJQUFJO0lBQ0osTUFBTTtJQUNOLE1BQU07SUFDTixXQUFXO0lBQ1gsS0FBSztJQUNMLE1BQU07SUFDTixRQUFRO0lBQ1IsVUFBVTtJQUNWLEtBQUs7SUFDTCxVQUFVO0lBQ1YsUUFBUTtJQUNSLFNBQVM7SUFDVCxXQUFXO0lBQ1gsUUFBUTtJQUNSLFVBQVU7SUFDVixLQUFLO0lBQ0wsUUFBUTtJQUNSLE9BQU87SUFDUCxRQUFRO0lBQ1IsT0FBTztJQUNQLFFBQVE7SUFDUixZQUFZO0lBQ1osUUFBUTtJQUNSLFFBQVE7SUFDUixRQUFRO0lBQ1IsUUFBUTtJQUNSLE1BQU07SUFDTixPQUFPO0lBQ1AsTUFBTTtJQUNOLEtBQUs7SUFDTCxRQUFRO0lBQ1IsTUFBTTtJQUNOLE9BQU87SUFDUCxXQUFXO0lBQ1gsUUFBUTtJQUNSLFFBQVE7SUFDUixPQUFPO0lBQ1AsT0FBTztJQUNQLFNBQVM7SUFDVCxNQUFNO0lBQ04sVUFBVTtJQUNWLE9BQU87Q0FDUixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc3BlYyBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCB7IHRvQ2FtZWxDYXNlIH0gZnJvbSAnY29kZW1ha2VyJztcblxuaW1wb3J0IHsganNpaVRvUGFzY2FsQ2FzZSB9IGZyb20gJy4uLy4uL25hbWluZy11dGlsJztcblxuZXhwb3J0IGNsYXNzIERvdE5ldE5hbWVVdGlscyB7XG4gIHB1YmxpYyBjb252ZXJ0UHJvcGVydHlOYW1lKG9yaWdpbmFsOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pc0ludmFsaWROYW1lKG9yaWdpbmFsKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHByb3BlcnR5IG5hbWU6ICR7b3JpZ2luYWx9YCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhcGl0YWxpemVXb3JkKG9yaWdpbmFsKTtcbiAgfVxuXG4gIHB1YmxpYyBjb252ZXJ0VHlwZU5hbWUob3JpZ2luYWw6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmlzSW52YWxpZE5hbWUob3JpZ2luYWwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdHlwZSBuYW1lOiAke29yaWdpbmFsfWApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jYXBpdGFsaXplV29yZChvcmlnaW5hbCk7XG4gIH1cblxuICBwdWJsaWMgY29udmVydE1ldGhvZE5hbWUob3JpZ2luYWw6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmlzSW52YWxpZE5hbWUob3JpZ2luYWwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbWV0aG9kIG5hbWU6ICR7b3JpZ2luYWx9YCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhcGl0YWxpemVXb3JkKG9yaWdpbmFsKTtcbiAgfVxuXG4gIHB1YmxpYyBjb252ZXJ0RW51bU1lbWJlck5hbWUob3JpZ2luYWw6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmlzSW52YWxpZE5hbWUob3JpZ2luYWwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZW51bSBtZW1iZXIgbmFtZTogJHtvcmlnaW5hbH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2FwaXRhbGl6ZVdvcmQob3JpZ2luYWwpO1xuICB9XG5cbiAgcHVibGljIGNvbnZlcnRJbnRlcmZhY2VOYW1lKG9yaWdpbmFsOiBzcGVjLkludGVyZmFjZVR5cGUpIHtcbiAgICBpZiAodGhpcy5pc0ludmFsaWROYW1lKG9yaWdpbmFsLm5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaW50ZXJmYWNlIG5hbWU6ICR7b3JpZ2luYWwubmFtZX1gKTtcbiAgICB9XG4gICAgaWYgKG9yaWdpbmFsLmRhdGF0eXBlKSB7XG4gICAgICAvLyBEYXRhdHlwZSBpbnRlcmZhY2VzIG5lZWQgdG8gYmUgcHJlZml4ZWQgYnkgSSBzbyB0aGF0IHRoZXkgZG9uJ3QgY2xhc2ggd2l0aCB0aGUgcHJvcCBvYmplY3QgaW1wbGVtZW50YXRpb25cbiAgICAgIHJldHVybiBgSSR7dGhpcy5jYXBpdGFsaXplV29yZChvcmlnaW5hbC5uYW1lKX1gO1xuICAgIH1cbiAgICAvLyBOb24gZGF0YXR5cGUgaW50ZXJmYWNlcyBhcmUgZ3VhcmFudGVlZCBieSBKU0lJIHRvIGJlIHByZWZpeGVkIGJ5IEkgYWxyZWFkeVxuICAgIHJldHVybiB0aGlzLmNhcGl0YWxpemVXb3JkKG9yaWdpbmFsLm5hbWUpO1xuICB9XG5cbiAgcHVibGljIGNvbnZlcnRDbGFzc05hbWUob3JpZ2luYWw6IHNwZWMuQ2xhc3NUeXBlIHwgc3BlYy5JbnRlcmZhY2VUeXBlKSB7XG4gICAgaWYgKHRoaXMuaXNJbnZhbGlkTmFtZShvcmlnaW5hbC5uYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNsYXNzIG5hbWU6ICR7b3JpZ2luYWwubmFtZX1gKTtcbiAgICB9XG4gICAgLy8gVGVudGF0aXZlbHkgZ2V0IHRoZSBjbGFzcyBuYW1lXG4gICAgbGV0IG5hbWUgPSB0aGlzLmNhcGl0YWxpemVXb3JkKG9yaWdpbmFsLm5hbWUpO1xuICAgIGlmIChvcmlnaW5hbC5tZXRob2RzKSB7XG4gICAgICBvcmlnaW5hbC5tZXRob2RzLmZvckVhY2goKG1ldGhvZCkgPT4ge1xuICAgICAgICBpZiAobWV0aG9kLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gb3JpZ2luYWwubmFtZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgLy8gVGhpcyBjbGFzcyBoYXMgYSBtZW1iZXIgd2l0aCB0aGUgc2FtZSBuYW1lLCBuZWVkIHRvIHNsdWdpZnkgdGhlIGNsYXNzIG5hbWVcbiAgICAgICAgICBuYW1lID0gdGhpcy5jYXBpdGFsaXplV29yZCh0aGlzLnNsdWdpZnkob3JpZ2luYWwubmFtZSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKG9yaWdpbmFsLnByb3BlcnRpZXMpIHtcbiAgICAgIG9yaWdpbmFsLnByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICAgICAgaWYgKHByb3BlcnR5Lm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gb3JpZ2luYWwubmFtZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgLy8gVGhpcyBjbGFzcyBoYXMgYSBtZW1iZXIgd2l0aCB0aGUgc2FtZSBuYW1lLCBuZWVkIHRvIHNsdWdpZnkgdGhlIGNsYXNzIG5hbWVcbiAgICAgICAgICBuYW1lID0gdGhpcy5jYXBpdGFsaXplV29yZCh0aGlzLnNsdWdpZnkob3JpZ2luYWwubmFtZSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBjb252ZXJ0UGFja2FnZU5hbWUob3JpZ2luYWw6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmlzSW52YWxpZE5hbWUob3JpZ2luYWwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFja2FnZSBuYW1lOiAke29yaWdpbmFsfWApO1xuICAgIH1cbiAgICByZXR1cm4gb3JpZ2luYWxcbiAgICAgIC5zcGxpdCgnLScpXG4gICAgICAubWFwKChzOiBzdHJpbmcpID0+IHRoaXMuY2FwaXRhbGl6ZVdvcmQocykpXG4gICAgICAuam9pbignLicpO1xuICB9XG5cbiAgcHVibGljIGNvbnZlcnRQYXJhbWV0ZXJOYW1lKG9yaWdpbmFsOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pc0ludmFsaWROYW1lKG9yaWdpbmFsKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBhcmFtZXRlciBuYW1lOiAke29yaWdpbmFsfWApO1xuICAgIH1cbiAgICBjb25zdCBuYW1lID0gdG9DYW1lbENhc2Uob3JpZ2luYWwpO1xuICAgIHJldHVybiB0aGlzLmVzY2FwZVBhcmFtZXRlck5hbWUobmFtZSk7XG4gIH1cblxuICBwdWJsaWMgY2FwaXRhbGl6ZVdvcmQob3JpZ2luYWw6IHN0cmluZykge1xuICAgIHJldHVybiBqc2lpVG9QYXNjYWxDYXNlKG9yaWdpbmFsKTtcbiAgfVxuXG4gIC8qIFdlIG9ubHkgd2FudCB2YWxpZCBuYW1lcyBmb3IgbWVtYmVycyAqL1xuICBwcml2YXRlIGlzSW52YWxpZE5hbWUoc3RyOiBzdHJpbmcpIHtcbiAgICAvLyBDYW4gbm90IGJlIGVtcHR5LCBvciBjb250YWlucyAkXG4gICAgLy8gQ2FuIG9ubHkgc3RhcnQgd2l0aCBhIGxldHRlciBvciBhbiB1bmRlcnNjb3JlXG4gICAgcmV0dXJuIChcbiAgICAgIHN0ciA9PT0gbnVsbCB8fFxuICAgICAgL15cXHMqJC8uZXhlYyhzdHIpICE9PSBudWxsIHx8XG4gICAgICBzdHIuaW5jbHVkZXMoJyQnKSB8fFxuICAgICAgIS9eW0EtWmEtel9dLy5leGVjKHN0cilcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBlc2NhcGVQYXJhbWV0ZXJOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICByZXR1cm4gbmFtZTtcbiAgICB9XG4gICAgaWYgKFJFU0VSVkVEX0tFWVdPUkRTLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICByZXR1cm4gYEAke25hbWV9YDtcbiAgICB9XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cblxuICBwcml2YXRlIHNsdWdpZnkobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHJldHVybiBuYW1lO1xuICAgIH1cbiAgICByZXR1cm4gYCR7bmFtZX1fYDtcbiAgfVxufVxuXG4vLyBQdWxsZWQgZnJvbSBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9kb3RuZXQvY3NoYXJwL2xhbmd1YWdlLXJlZmVyZW5jZS9rZXl3b3Jkcy9cbmNvbnN0IFJFU0VSVkVEX0tFWVdPUkRTID0gW1xuICAvLyBGb3Igc29tZSByZWFzb24gdGhlIG9sZCBnZW5lcmF0b3IgZG9lcyBub3Qgc2x1Z2lmeSB0aGUga2V5d29yZCBiYXNlP1xuICAnYWJzdHJhY3QnLFxuICAnYXMnLFxuICAnYmFzZScsXG4gICdib29sJyxcbiAgJ2JyZWFrJyxcbiAgJ2J5dGUnLFxuICAnY2FzZScsXG4gICdjYXRjaCcsXG4gICdjaGFyJyxcbiAgJ2NoZWNrZWQnLFxuICAnY2xhc3MnLFxuICAnY29uc3QnLFxuICAnY29udGludWUnLFxuICAnZGVjaW1hbCcsXG4gICdkZWZhdWx0JyxcbiAgJ2RlbGVnYXRlJyxcbiAgJ2RvdWJsZScsXG4gICdkbycsXG4gICdlbHNlJyxcbiAgJ2VudW0nLFxuICAnZXZlbnQnLFxuICAnZXhwbGljaXQnLFxuICAnZXh0ZXJuJyxcbiAgJ2ZhbHNlJyxcbiAgJ2ZpbmFsbHknLFxuICAnZml4ZWQnLFxuICAnZmxvYXQnLFxuICAnZm9yJyxcbiAgJ2ZvcmVhY2gnLFxuICAnZ290bycsXG4gICdpZicsXG4gICdpbXBsaWNpdCcsXG4gICdpbicsXG4gICdpbnQnLFxuICAnaW50ZXJmYWNlJyxcbiAgJ2ludGVybmFsJyxcbiAgJ2lzJyxcbiAgJ2xvY2snLFxuICAnbG9uZycsXG4gICduYW1lc3BhY2UnLFxuICAnbmV3JyxcbiAgJ251bGwnLFxuICAnb2JqZWN0JyxcbiAgJ29wZXJhdG9yJyxcbiAgJ291dCcsXG4gICdvdmVycmlkZScsXG4gICdwYXJhbXMnLFxuICAncHJpdmF0ZScsXG4gICdwcm90ZWN0ZWQnLFxuICAncHVibGljJyxcbiAgJ3JlYWRvbmx5JyxcbiAgJ3JlZicsXG4gICdyZXR1cm4nLFxuICAnc2J5dGUnLFxuICAnc2VhbGVkJyxcbiAgJ3Nob3J0JyxcbiAgJ3NpemVvZicsXG4gICdzdGFja2FsbG9jJyxcbiAgJ3N0YXRpYycsXG4gICdzdHJpbmcnLFxuICAnc3RydWN0JyxcbiAgJ3N3aXRjaCcsXG4gICd0aGlzJyxcbiAgJ3Rocm93JyxcbiAgJ3RydWUnLFxuICAndHJ5JyxcbiAgJ3R5cGVvZicsXG4gICd1aW50JyxcbiAgJ3Vsb25nJyxcbiAgJ3VuY2hlY2tlZCcsXG4gICd1bnNhZmUnLFxuICAndXNob3J0JyxcbiAgJ3VzaW5nJyxcbiAgJ3ZhbHVlJyxcbiAgJ3ZpcnR1YWwnLFxuICAndm9pZCcsXG4gICd2b2xhdGlsZScsXG4gICd3aGlsZScsXG5dO1xuIl19
193
+ //# sourceMappingURL=nameutils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nameutils.js","sourceRoot":"","sources":["nameutils.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ class DotnetBuilder {
36
36
  scratchDirs.push(tempSourceDir);
37
37
  // Build solution
38
38
  logging.debug('Building .NET');
39
- await util_1.shell('dotnet', ['build', '--force', '--configuration', 'Release'], {
39
+ await (0, util_1.shell)('dotnet', ['build', '--force', '--configuration', 'Release'], {
40
40
  cwd: tempSourceDir.directory,
41
41
  retry: { maxAttempts: 5 },
42
42
  });
@@ -68,8 +68,8 @@ class DotnetBuilder {
68
68
  });
69
69
  }
70
70
  // Use 'dotnet' command line tool to build a solution file from these csprojs
71
- await util_1.shell('dotnet', ['new', 'sln', '-n', 'JsiiBuild'], { cwd: tmpDir });
72
- await util_1.shell('dotnet', ['sln', 'add', ...csProjs], { cwd: tmpDir });
71
+ await (0, util_1.shell)('dotnet', ['new', 'sln', '-n', 'JsiiBuild'], { cwd: tmpDir });
72
+ await (0, util_1.shell)('dotnet', ['sln', 'add', ...csProjs], { cwd: tmpDir });
73
73
  await this.generateNuGetConfigForLocalDeps(tmpDir);
74
74
  return ret;
75
75
  });
@@ -112,10 +112,10 @@ class DotnetBuilder {
112
112
  const allDepsOutputDirs = new Set();
113
113
  const resolvedModules = this.modules.map(async (module) => ({
114
114
  module,
115
- localBuildDirs: await target_1.findLocalBuildDirs(module.moduleDirectory, this.targetName),
115
+ localBuildDirs: await (0, target_1.findLocalBuildDirs)(module.moduleDirectory, this.targetName),
116
116
  }));
117
117
  for await (const { module, localBuildDirs } of resolvedModules) {
118
- util_1.setExtend(allDepsOutputDirs, localBuildDirs);
118
+ (0, util_1.setExtend)(allDepsOutputDirs, localBuildDirs);
119
119
  // Also include output directory where we're building to, in case we build multiple packages into
120
120
  // the same output directory.
121
121
  allDepsOutputDirs.add(this.outputDir(module.outputDirectory));
@@ -132,7 +132,7 @@ class DotnetBuilder {
132
132
  // Couldn't locate @jsii/dotnet-runtime, which is owkay!
133
133
  }
134
134
  // Filter out nonexistant directories, .NET will be unhappy if paths don't exist
135
- const existingLocalRepos = await util_1.filterAsync(localRepos, fs.pathExists);
135
+ const existingLocalRepos = await (0, util_1.filterAsync)(localRepos, fs.pathExists);
136
136
  logging.debug('local NuGet repos:', existingLocalRepos);
137
137
  // Construct XML content.
138
138
  const configuration = xmlbuilder.create('configuration', {
@@ -189,7 +189,7 @@ class Dotnet extends target_1.Target {
189
189
  }
190
190
  static toPackageInfos(assm) {
191
191
  const packageId = assm.targets.dotnet.packageId;
192
- const version = version_utils_1.toReleaseVersion(assm.version, _1.TargetName.DOTNET);
192
+ const version = (0, version_utils_1.toReleaseVersion)(assm.version, _1.TargetName.DOTNET);
193
193
  const packageInfo = {
194
194
  repository: 'Nuget',
195
195
  url: `https://www.nuget.org/packages/${packageId}/${version}`,
@@ -221,4 +221,4 @@ class Dotnet extends target_1.Target {
221
221
  }
222
222
  }
223
223
  exports.default = Dotnet;
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90bmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG90bmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtCQUErQjtBQUMvQiw2QkFBNkI7QUFDN0IseUNBQXlDO0FBR3pDLHNDQUFzQztBQUV0QyxzQ0FLbUI7QUFDbkIsa0NBQWlFO0FBQ2pFLDhEQUEyRDtBQUMzRCxtREFBbUQ7QUFFbkQsd0JBQStCO0FBRWxCLFFBQUEsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO0FBRWhEOztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBR3hCLFlBQ21CLE9BQThCLEVBQzlCLE9BQXFCO1FBRHJCLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQzlCLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFKdkIsZUFBVSxHQUFHLFFBQVEsQ0FBQztJQUtwQyxDQUFDO0lBRUcsS0FBSyxDQUFDLFlBQVk7UUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0IsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN6Qix1REFBdUQ7WUFDdkQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUNyQixNQUFNLEVBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQ3ZDLENBQ0YsQ0FDRixDQUFDO1lBQ0YsT0FBTztTQUNSO1FBRUQsa0dBQWtHO1FBQ2xHLE1BQU0sV0FBVyxHQUF3QixFQUFFLENBQUM7UUFDNUMsSUFBSTtZQUNGLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxRSxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRWhDLGlCQUFpQjtZQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQy9CLE1BQU0sWUFBSyxDQUNULFFBQVEsRUFDUixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLEVBQ2xEO2dCQUNFLEdBQUcsRUFBRSxhQUFhLENBQUMsU0FBUztnQkFDNUIsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRTthQUMxQixDQUNGLENBQUM7WUFFRixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtnQkFDdEIsTUFBTSxjQUFPLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3ZDO1NBQ0Y7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxJQUFJLENBQ1YsdUNBQXVDLFdBQVc7aUJBQy9DLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztpQkFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ2hCLENBQUM7WUFDRixNQUFNLENBQUMsQ0FBQztTQUNUO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQywwQkFBMEIsQ0FDdEMsT0FBOEI7UUFFOUIsT0FBTyxjQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFjLEVBQUUsRUFBRTtZQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBRW5FLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNuQixNQUFNLEdBQUcsR0FBNkIsRUFBRSxDQUFDO1lBRXpDLGdEQUFnRDtZQUNoRCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUMzQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FDckQsQ0FBQztZQUVGLElBQUksS0FBSyxFQUFFLE1BQU0sR0FBRyxJQUFJLGdCQUFnQixFQUFFO2dCQUN4QyxNQUFNLEdBQUcsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM5QixHQUFHLENBQUMsSUFBSSxDQUFDO29CQUNQLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxlQUFlO29CQUMxQyxZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDO2lCQUNsRSxDQUFDLENBQUM7YUFDSjtZQUVELDZFQUE2RTtZQUM3RSxNQUFNLFlBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLE1BQU0sWUFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBRW5FLE1BQU0sSUFBSSxDQUFDLCtCQUErQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRW5ELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQWtDO1FBQy9ELE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUU1QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZFLEtBQUssVUFBVSwwQkFBMEIsQ0FFdkMsR0FBMkI7WUFFM0IsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUVsRSxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDakMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFO2dCQUMvQyxTQUFTLEVBQUUsSUFBSTtnQkFDZixNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUU7b0JBQ2pCLE9BQU8sR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLHdCQUFnQixDQUFDLENBQUM7Z0JBQzlELENBQUM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxrQkFBa0IsQ0FDOUIsTUFBa0IsRUFDbEIsS0FBYTtRQUViLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksQ0FBQyxVQUFVLGNBQWMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNsRSxNQUFNLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxTQUFTLENBQUMsV0FBbUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQjtZQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUN6QyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsK0JBQStCLENBQUMsS0FBYTtRQUN6RCw4RUFBOEU7UUFDOUUsK0VBQStFO1FBQy9FLCtDQUErQztRQUMvQyxNQUFNLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFFNUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxRCxNQUFNO1lBQ04sY0FBYyxFQUFFLE1BQU0sMkJBQWtCLENBQ3RDLE1BQU0sQ0FBQyxlQUFlLEVBQ3RCLElBQUksQ0FBQyxVQUFVLENBQ2hCO1NBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxJQUFJLGVBQWUsRUFBRTtZQUM5RCxnQkFBUyxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBRTdDLGlHQUFpRztZQUNqRyw2QkFBNkI7WUFDN0IsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7U0FDL0Q7UUFFRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFakQsMkZBQTJGO1FBQzNGLElBQUk7WUFDRixzSUFBc0k7WUFDdEksTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUMxRCxPQUFPLENBQUMsSUFBSSxDQUNWLDhEQUE4RCxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsQ0FDN0YsQ0FBQztZQUNGLFVBQVUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDL0M7UUFBQyxNQUFNO1lBQ04sd0RBQXdEO1NBQ3pEO1FBRUQsZ0ZBQWdGO1FBQ2hGLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxrQkFBVyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEUsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBRXhELHlCQUF5QjtRQUN6QixNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRTtZQUN2RCxRQUFRLEVBQUUsT0FBTztTQUNsQixDQUFDLENBQUM7UUFDSCxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFM0QsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ2hFLFdBQVcsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFeEMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3pDLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMscUNBQXFDLENBQUMsRUFBRTtZQUNqRSxxREFBcUQ7WUFDckQsYUFBYTtpQkFDVixHQUFHLENBQUMsUUFBUSxDQUFDO2lCQUNiLEdBQUcsQ0FBQyxLQUFLLENBQUM7aUJBQ1YsR0FBRyxDQUFDLEtBQUssRUFBRSxzQkFBc0IsQ0FBQztpQkFDbEMsR0FBRyxDQUNGLE9BQU8sRUFDUCxJQUFJLENBQUMsT0FBTyxDQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLHFDQUFxQyxDQUFDLEVBQzdELFFBQVEsRUFDUixVQUFVLENBQ1gsQ0FDRixDQUFDO1NBQ0w7UUFFRCxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFaEQscUNBQXFDO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLFVBQVUsQ0FBQyxNQUFrQjtRQUNuQyxPQUFPLElBQUksTUFBTSxDQUNmO1lBQ0UsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFVBQVUsRUFBRSxNQUFNLENBQUMsZUFBZTtZQUNsQyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVztZQUNyQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO1lBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVM7WUFDakMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTztTQUM5QixFQUNELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQ2hDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFwT0Qsc0NBb09DO0FBY0QsU0FBUyxlQUFlLENBQUMsTUFBa0I7SUFDekMsTUFBTSxTQUFTLEdBQVcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVMsQ0FBQztJQUNyRSxPQUFPO1FBQ0wsVUFBVSxFQUFFLFNBQVM7UUFDckIsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsU0FBUyxTQUFTLENBQUM7S0FDekQsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFxQixNQUFPLFNBQVEsZUFBTTtJQW1DeEMsWUFDRSxPQUFzQixFQUN0QixnQ0FBMEM7UUFFMUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGlDQUFlLENBQ2xDLGdDQUFnQyxFQUNoQyxPQUFPLENBQUMsT0FBTyxDQUNoQixDQUFDO0lBQ0osQ0FBQztJQTVDTSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQW1CO1FBRzlDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDLFNBQVMsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxnQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRSxNQUFNLFdBQVcsR0FBZ0I7WUFDL0IsVUFBVSxFQUFFLE9BQU87WUFDbkIsR0FBRyxFQUFFLGtDQUFrQyxTQUFTLElBQUksT0FBTyxFQUFFO1lBQzdELEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLEtBQUs7b0JBQ2YsSUFBSSxFQUFFLDhCQUE4QixTQUFTLGNBQWMsT0FBTyxNQUFNO2lCQUN6RTtnQkFDRCxNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFNBQVM7b0JBQ25CLElBQUksRUFBRSxzQkFBc0IsU0FBUyxjQUFjLE9BQU8sRUFBRTtpQkFDN0Q7Z0JBQ0QsaUJBQWlCLEVBQUU7b0JBQ2pCLFFBQVEsRUFBRSxLQUFLO29CQUNmLElBQUksRUFBRSxnQkFBZ0IsU0FBUyxjQUFjLE9BQU8sTUFBTTtpQkFDM0Q7YUFDRjtTQUNGLENBQUM7UUFDRixPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBZ0IsRUFBRSxPQUFZO1FBQzVELE9BQU87WUFDTCxJQUFJLEVBQUUsU0FBUyxPQUFPLENBQUMsU0FBUyxHQUFHO1NBQ3BDLENBQUM7SUFDSixDQUFDO0lBZ0JELDREQUE0RDtJQUNyRCxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQWtCLEVBQUUsT0FBZTtRQUNwRCxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUVGO0FBcERELHlCQW9EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNwZWMgZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgeG1sYnVpbGRlciBmcm9tICd4bWxidWlsZGVyJztcblxuaW1wb3J0IHsgVGFyZ2V0QnVpbGRlciwgQnVpbGRPcHRpb25zIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgKiBhcyBsb2dnaW5nIGZyb20gJy4uL2xvZ2dpbmcnO1xuaW1wb3J0IHsgSnNpaU1vZHVsZSB9IGZyb20gJy4uL3BhY2thZ2luZyc7XG5pbXBvcnQge1xuICBQYWNrYWdlSW5mbyxcbiAgVGFyZ2V0LFxuICBUYXJnZXRPcHRpb25zLFxuICBmaW5kTG9jYWxCdWlsZERpcnMsXG59IGZyb20gJy4uL3RhcmdldCc7XG5pbXBvcnQgeyBzaGVsbCwgU2NyYXRjaCwgc2V0RXh0ZW5kLCBmaWx0ZXJBc3luYyB9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHsgRG90TmV0R2VuZXJhdG9yIH0gZnJvbSAnLi9kb3RuZXQvZG90bmV0Z2VuZXJhdG9yJztcbmltcG9ydCB7IHRvUmVsZWFzZVZlcnNpb24gfSBmcm9tICcuL3ZlcnNpb24tdXRpbHMnO1xuXG5pbXBvcnQgeyBUYXJnZXROYW1lIH0gZnJvbSAnLic7XG5cbmV4cG9ydCBjb25zdCBUQVJHRVRfRlJBTUVXT1JLID0gJ25ldGNvcmVhcHAzLjEnO1xuXG4vKipcbiAqIEJ1aWxkIC5ORVQgcGFja2FnZXMgYWxsIHRvZ2V0aGVyLCBieSBnZW5lcmF0aW5nIGFuIGFnZ3JlZ2F0ZSBzb2x1dGlvbiBmaWxlXG4gKi9cbmV4cG9ydCBjbGFzcyBEb3RuZXRCdWlsZGVyIGltcGxlbWVudHMgVGFyZ2V0QnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFyZ2V0TmFtZSA9ICdkb3RuZXQnO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vZHVsZXM6IHJlYWRvbmx5IEpzaWlNb2R1bGVbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEJ1aWxkT3B0aW9ucyxcbiAgKSB7fVxuXG4gIHB1YmxpYyBhc3luYyBidWlsZE1vZHVsZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMubW9kdWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmNvZGVPbmx5KSB7XG4gICAgICAvLyBTaW1wbGUsIGp1c3QgZ2VuZXJhdGUgY29kZSB0byByZXNwZWN0aXZlIG91dHB1dCBkaXJzXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgdGhpcy5tb2R1bGVzLm1hcCgobW9kdWxlKSA9PlxuICAgICAgICAgIHRoaXMuZ2VuZXJhdGVNb2R1bGVDb2RlKFxuICAgICAgICAgICAgbW9kdWxlLFxuICAgICAgICAgICAgdGhpcy5vdXRwdXREaXIobW9kdWxlLm91dHB1dERpcmVjdG9yeSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlIG1ha2UgYSBzaW5nbGUgdGVtcGRpciB0byBob2xkIGFsbCBzb3VyY2VzLCBidWlsZCB0aGVtIHRvZ2V0aGVyIGFuZCBjb3B5IHRoZW0gYmFjayBvdXRcbiAgICBjb25zdCBzY3JhdGNoRGlyczogQXJyYXk8U2NyYXRjaDxhbnk+PiA9IFtdO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0ZW1wU291cmNlRGlyID0gYXdhaXQgdGhpcy5nZW5lcmF0ZUFnZ3JlZ2F0ZVNvdXJjZURpcih0aGlzLm1vZHVsZXMpO1xuICAgICAgc2NyYXRjaERpcnMucHVzaCh0ZW1wU291cmNlRGlyKTtcblxuICAgICAgLy8gQnVpbGQgc29sdXRpb25cbiAgICAgIGxvZ2dpbmcuZGVidWcoJ0J1aWxkaW5nIC5ORVQnKTtcbiAgICAgIGF3YWl0IHNoZWxsKFxuICAgICAgICAnZG90bmV0JyxcbiAgICAgICAgWydidWlsZCcsICctLWZvcmNlJywgJy0tY29uZmlndXJhdGlvbicsICdSZWxlYXNlJ10sXG4gICAgICAgIHtcbiAgICAgICAgICBjd2Q6IHRlbXBTb3VyY2VEaXIuZGlyZWN0b3J5LFxuICAgICAgICAgIHJldHJ5OiB7IG1heEF0dGVtcHRzOiA1IH0sXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBhd2FpdCB0aGlzLmNvcHlPdXRBcnRpZmFjdHModGVtcFNvdXJjZURpci5vYmplY3QpO1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5jbGVhbikge1xuICAgICAgICBhd2FpdCBTY3JhdGNoLmNsZWFudXBBbGwoc2NyYXRjaERpcnMpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZ2dpbmcud2FybihcbiAgICAgICAgYEV4Y2VwdGlvbiBvY2N1cnJlZCwgbm90IGNsZWFuaW5nIHVwICR7c2NyYXRjaERpcnNcbiAgICAgICAgICAubWFwKChzKSA9PiBzLmRpcmVjdG9yeSlcbiAgICAgICAgICAuam9pbignLCAnKX1gLFxuICAgICAgKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZW5lcmF0ZUFnZ3JlZ2F0ZVNvdXJjZURpcihcbiAgICBtb2R1bGVzOiByZWFkb25seSBKc2lpTW9kdWxlW10sXG4gICk6IFByb21pc2U8U2NyYXRjaDxUZW1wb3JhcnlEb3RuZXRQYWNrYWdlW10+PiB7XG4gICAgcmV0dXJuIFNjcmF0Y2gubWFrZShhc3luYyAodG1wRGlyOiBzdHJpbmcpID0+IHtcbiAgICAgIGxvZ2dpbmcuZGVidWcoYEdlbmVyYXRpbmcgYWdncmVnYXRlIC5ORVQgc291cmNlIGRpciBhdCAke3RtcERpcn1gKTtcblxuICAgICAgY29uc3QgY3NQcm9qcyA9IFtdO1xuICAgICAgY29uc3QgcmV0OiBUZW1wb3JhcnlEb3RuZXRQYWNrYWdlW10gPSBbXTtcblxuICAgICAgLy8gQ29kZSBnZW5lcmF0b3Igd2lsbCBtYWtlIGl0cyBvd24gc3ViZGlyZWN0b3J5XG4gICAgICBjb25zdCBnZW5lcmF0ZWRNb2R1bGVzID0gbW9kdWxlcy5tYXAoKG1vZCkgPT5cbiAgICAgICAgdGhpcy5nZW5lcmF0ZU1vZHVsZUNvZGUobW9kLCB0bXBEaXIpLnRoZW4oKCkgPT4gbW9kKSxcbiAgICAgICk7XG5cbiAgICAgIGZvciBhd2FpdCAoY29uc3QgbW9kIG9mIGdlbmVyYXRlZE1vZHVsZXMpIHtcbiAgICAgICAgY29uc3QgbG9jID0gcHJvamVjdExvY2F0aW9uKG1vZCk7XG4gICAgICAgIGNzUHJvanMucHVzaChsb2MucHJvamVjdEZpbGUpO1xuICAgICAgICByZXQucHVzaCh7XG4gICAgICAgICAgb3V0cHV0VGFyZ2V0RGlyZWN0b3J5OiBtb2Qub3V0cHV0RGlyZWN0b3J5LFxuICAgICAgICAgIGFydGlmYWN0c0RpcjogcGF0aC5qb2luKHRtcERpciwgbG9jLnByb2plY3REaXIsICdiaW4nLCAnUmVsZWFzZScpLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gVXNlICdkb3RuZXQnIGNvbW1hbmQgbGluZSB0b29sIHRvIGJ1aWxkIGEgc29sdXRpb24gZmlsZSBmcm9tIHRoZXNlIGNzcHJvanNcbiAgICAgIGF3YWl0IHNoZWxsKCdkb3RuZXQnLCBbJ25ldycsICdzbG4nLCAnLW4nLCAnSnNpaUJ1aWxkJ10sIHsgY3dkOiB0bXBEaXIgfSk7XG4gICAgICBhd2FpdCBzaGVsbCgnZG90bmV0JywgWydzbG4nLCAnYWRkJywgLi4uY3NQcm9qc10sIHsgY3dkOiB0bXBEaXIgfSk7XG5cbiAgICAgIGF3YWl0IHRoaXMuZ2VuZXJhdGVOdUdldENvbmZpZ0ZvckxvY2FsRGVwcyh0bXBEaXIpO1xuXG4gICAgICByZXR1cm4gcmV0O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjb3B5T3V0QXJ0aWZhY3RzKHBhY2thZ2VzOiBUZW1wb3JhcnlEb3RuZXRQYWNrYWdlW10pIHtcbiAgICBsb2dnaW5nLmRlYnVnKCdDb3B5aW5nIG91dCAuTkVUIGFydGlmYWN0cycpO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocGFja2FnZXMubWFwKGNvcHlPdXRJbmRpdmlkdWFsQXJ0aWZhY3RzLmJpbmQodGhpcykpKTtcblxuICAgIGFzeW5jIGZ1bmN0aW9uIGNvcHlPdXRJbmRpdmlkdWFsQXJ0aWZhY3RzKFxuICAgICAgdGhpczogRG90bmV0QnVpbGRlcixcbiAgICAgIHBrZzogVGVtcG9yYXJ5RG90bmV0UGFja2FnZSxcbiAgICApIHtcbiAgICAgIGNvbnN0IHRhcmdldERpcmVjdG9yeSA9IHRoaXMub3V0cHV0RGlyKHBrZy5vdXRwdXRUYXJnZXREaXJlY3RvcnkpO1xuXG4gICAgICBhd2FpdCBmcy5ta2RpcnAodGFyZ2V0RGlyZWN0b3J5KTtcbiAgICAgIGF3YWl0IGZzLmNvcHkocGtnLmFydGlmYWN0c0RpciwgdGFyZ2V0RGlyZWN0b3J5LCB7XG4gICAgICAgIHJlY3Vyc2l2ZTogdHJ1ZSxcbiAgICAgICAgZmlsdGVyOiAoXywgZHN0KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGRzdCAhPT0gcGF0aC5qb2luKHRhcmdldERpcmVjdG9yeSwgVEFSR0VUX0ZSQU1FV09SSyk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdlbmVyYXRlTW9kdWxlQ29kZShcbiAgICBtb2R1bGU6IEpzaWlNb2R1bGUsXG4gICAgd2hlcmU6IHN0cmluZyxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5tYWtlVGFyZ2V0KG1vZHVsZSk7XG4gICAgbG9nZ2luZy5kZWJ1ZyhgR2VuZXJhdGluZyAke3RoaXMudGFyZ2V0TmFtZX0gY29kZSBpbnRvICR7d2hlcmV9YCk7XG4gICAgYXdhaXQgdGFyZ2V0LmdlbmVyYXRlQ29kZSh3aGVyZSwgbW9kdWxlLnRhcmJhbGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlY2lkZSB3aGV0aGVyIG9yIG5vdCB0byBhcHBlbmQgJ2RvdG5ldCcgdG8gdGhlIGdpdmVuIG91dHB1dCBkaXJlY3RvcnlcbiAgICovXG4gIHByaXZhdGUgb3V0cHV0RGlyKGRlY2xhcmVkRGlyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmxhbmd1YWdlU3ViZGlyZWN0b3J5XG4gICAgICA/IHBhdGguam9pbihkZWNsYXJlZERpciwgdGhpcy50YXJnZXROYW1lKVxuICAgICAgOiBkZWNsYXJlZERpcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZSBhIE51R2V0LmNvbmZpZyB0aGF0IHdpbGwgaW5jbHVkZSBidWlsZCBkaXJlY3RvcmllcyBmb3IgbG9jYWwgcGFja2FnZXMgbm90IGluIHRoZSBjdXJyZW50IGJ1aWxkXG4gICAqXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGdlbmVyYXRlTnVHZXRDb25maWdGb3JMb2NhbERlcHMod2hlcmU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFRyYXZlcnNlIHRoZSBkZXBlbmRlbmN5IGdyYXBoIG9mIHRoaXMgbW9kdWxlIGFuZCBmaW5kIGFsbCBtb2R1bGVzIHRoYXQgaGF2ZVxuICAgIC8vIGFuIDxvdXRkaXI+L2RvdG5ldCBkaXJlY3RvcnkuIFdlIHdpbGwgYWRkIHRob3NlIGFzIGxvY2FsIE51R2V0IHJlcG9zaXRvcmllcy5cbiAgICAvLyBUaGlzIGVuYWJsZXMgYnVpbGRpbmcgYWdhaW5zdCBsb2NhbCBtb2R1bGVzLlxuICAgIGNvbnN0IGFsbERlcHNPdXRwdXREaXJzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICBjb25zdCByZXNvbHZlZE1vZHVsZXMgPSB0aGlzLm1vZHVsZXMubWFwKGFzeW5jIChtb2R1bGUpID0+ICh7XG4gICAgICBtb2R1bGUsXG4gICAgICBsb2NhbEJ1aWxkRGlyczogYXdhaXQgZmluZExvY2FsQnVpbGREaXJzKFxuICAgICAgICBtb2R1bGUubW9kdWxlRGlyZWN0b3J5LFxuICAgICAgICB0aGlzLnRhcmdldE5hbWUsXG4gICAgICApLFxuICAgIH0pKTtcbiAgICBmb3IgYXdhaXQgKGNvbnN0IHsgbW9kdWxlLCBsb2NhbEJ1aWxkRGlycyB9IG9mIHJlc29sdmVkTW9kdWxlcykge1xuICAgICAgc2V0RXh0ZW5kKGFsbERlcHNPdXRwdXREaXJzLCBsb2NhbEJ1aWxkRGlycyk7XG5cbiAgICAgIC8vIEFsc28gaW5jbHVkZSBvdXRwdXQgZGlyZWN0b3J5IHdoZXJlIHdlJ3JlIGJ1aWxkaW5nIHRvLCBpbiBjYXNlIHdlIGJ1aWxkIG11bHRpcGxlIHBhY2thZ2VzIGludG9cbiAgICAgIC8vIHRoZSBzYW1lIG91dHB1dCBkaXJlY3RvcnkuXG4gICAgICBhbGxEZXBzT3V0cHV0RGlycy5hZGQodGhpcy5vdXRwdXREaXIobW9kdWxlLm91dHB1dERpcmVjdG9yeSkpO1xuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsUmVwb3MgPSBBcnJheS5mcm9tKGFsbERlcHNPdXRwdXREaXJzKTtcblxuICAgIC8vIElmIGRvdG5ldC1ydW50aW1lIGlzIGNoZWNrZWQtb3V0IGFuZCB3ZSBjYW4gZmluZCBhIGxvY2FsIHJlcG9zaXRvcnksIGFkZCBpdCB0byB0aGUgbGlzdC5cbiAgICB0cnkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXMsQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0cyxpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbiAgICAgIGNvbnN0IGpzaWlEb3ROZXRSdW50aW1lID0gcmVxdWlyZSgnQGpzaWkvZG90bmV0LXJ1bnRpbWUnKTtcbiAgICAgIGxvZ2dpbmcuaW5mbyhcbiAgICAgICAgYFVzaW5nIGxvY2FsIHZlcnNpb24gb2YgdGhlIERvdE5ldCBqc2lpIHJ1bnRpbWUgcGFja2FnZSBhdDogJHtqc2lpRG90TmV0UnVudGltZS5yZXBvc2l0b3J5fWAsXG4gICAgICApO1xuICAgICAgbG9jYWxSZXBvcy5wdXNoKGpzaWlEb3ROZXRSdW50aW1lLnJlcG9zaXRvcnkpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gQ291bGRuJ3QgbG9jYXRlIEBqc2lpL2RvdG5ldC1ydW50aW1lLCB3aGljaCBpcyBvd2theSFcbiAgICB9XG5cbiAgICAvLyBGaWx0ZXIgb3V0IG5vbmV4aXN0YW50IGRpcmVjdG9yaWVzLCAuTkVUIHdpbGwgYmUgdW5oYXBweSBpZiBwYXRocyBkb24ndCBleGlzdFxuICAgIGNvbnN0IGV4aXN0aW5nTG9jYWxSZXBvcyA9IGF3YWl0IGZpbHRlckFzeW5jKGxvY2FsUmVwb3MsIGZzLnBhdGhFeGlzdHMpO1xuXG4gICAgbG9nZ2luZy5kZWJ1ZygnbG9jYWwgTnVHZXQgcmVwb3M6JywgZXhpc3RpbmdMb2NhbFJlcG9zKTtcblxuICAgIC8vIENvbnN0cnVjdCBYTUwgY29udGVudC5cbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0geG1sYnVpbGRlci5jcmVhdGUoJ2NvbmZpZ3VyYXRpb24nLCB7XG4gICAgICBlbmNvZGluZzogJ1VURi04JyxcbiAgICB9KTtcbiAgICBjb25zdCBwYWNrYWdlU291cmNlcyA9IGNvbmZpZ3VyYXRpb24uZWxlKCdwYWNrYWdlU291cmNlcycpO1xuXG4gICAgY29uc3QgbnVnZXRPcmdBZGQgPSBwYWNrYWdlU291cmNlcy5lbGUoJ2FkZCcpO1xuICAgIG51Z2V0T3JnQWRkLmF0dCgna2V5JywgJ251Z2V0Lm9yZycpO1xuICAgIG51Z2V0T3JnQWRkLmF0dCgndmFsdWUnLCAnaHR0cHM6Ly9hcGkubnVnZXQub3JnL3YzL2luZGV4Lmpzb24nKTtcbiAgICBudWdldE9yZ0FkZC5hdHQoJ3Byb3RvY29sVmVyc2lvbicsICczJyk7XG5cbiAgICBleGlzdGluZ0xvY2FsUmVwb3MuZm9yRWFjaCgocmVwbywgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGFkZCA9IHBhY2thZ2VTb3VyY2VzLmVsZSgnYWRkJyk7XG4gICAgICBhZGQuYXR0KCdrZXknLCBgbG9jYWwtJHtpbmRleH1gKTtcbiAgICAgIGFkZC5hdHQoJ3ZhbHVlJywgcGF0aC5qb2luKHJlcG8pKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuYXJndW1lbnRzWydkb3RuZXQtbnVnZXQtZ2xvYmFsLXBhY2thZ2VzLWZvbGRlciddKSB7XG4gICAgICAvLyBFbnN1cmUgd2UncmUgbm90IHVzaW5nIHRoZSBjb25maWd1cmVkIGNhY2hlIGZvbGRlclxuICAgICAgY29uZmlndXJhdGlvblxuICAgICAgICAuZWxlKCdjb25maWcnKVxuICAgICAgICAuZWxlKCdhZGQnKVxuICAgICAgICAuYXR0KCdrZXknLCAnZ2xvYmFsUGFja2FnZXNGb2xkZXInKVxuICAgICAgICAuYXR0KFxuICAgICAgICAgICd2YWx1ZScsXG4gICAgICAgICAgcGF0aC5yZXNvbHZlKFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLmFyZ3VtZW50c1snZG90bmV0LW51Z2V0LWdsb2JhbC1wYWNrYWdlcy1mb2xkZXInXSxcbiAgICAgICAgICAgICcubnVnZXQnLFxuICAgICAgICAgICAgJ3BhY2thZ2VzJyxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHhtbCA9IGNvbmZpZ3VyYXRpb24uZW5kKHsgcHJldHR5OiB0cnVlIH0pO1xuXG4gICAgLy8gV3JpdGUgWE1MIGNvbnRlbnQgdG8gTnVHZXQuY29uZmlnLlxuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKHdoZXJlLCAnTnVHZXQuY29uZmlnJyk7XG4gICAgbG9nZ2luZy5kZWJ1ZyhgR2VuZXJhdGVkICR7ZmlsZVBhdGh9YCk7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKGZpbGVQYXRoLCB4bWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYWtlVGFyZ2V0KG1vZHVsZTogSnNpaU1vZHVsZSk6IERvdG5ldCB7XG4gICAgcmV0dXJuIG5ldyBEb3RuZXQoXG4gICAgICB7XG4gICAgICAgIHRhcmdldE5hbWU6IHRoaXMudGFyZ2V0TmFtZSxcbiAgICAgICAgcGFja2FnZURpcjogbW9kdWxlLm1vZHVsZURpcmVjdG9yeSxcbiAgICAgICAgYXNzZW1ibHk6IG1vZHVsZS5hc3NlbWJseSxcbiAgICAgICAgZmluZ2VycHJpbnQ6IHRoaXMub3B0aW9ucy5maW5nZXJwcmludCxcbiAgICAgICAgZm9yY2U6IHRoaXMub3B0aW9ucy5mb3JjZSxcbiAgICAgICAgYXJndW1lbnRzOiB0aGlzLm9wdGlvbnMuYXJndW1lbnRzLFxuICAgICAgICByb3NldHRhOiB0aGlzLm9wdGlvbnMucm9zZXR0YSxcbiAgICAgIH0sXG4gICAgICB0aGlzLm1vZHVsZXMubWFwKChtKSA9PiBtLm5hbWUpLFxuICAgICk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIFRlbXBvcmFyeURvdG5ldFBhY2thZ2Uge1xuICAvKipcbiAgICogV2hlcmUgdGhlIGFydGlmYWN0cyB3aWxsIGJlIHN0b3JlZCBhZnRlciBidWlsZCAocmVsYXRpdmUgdG8gYnVpbGQgZGlyKVxuICAgKi9cbiAgYXJ0aWZhY3RzRGlyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXJlIHRoZSBhcnRpZmFjdHMgb3VnaHQgdG8gZ28gZm9yIHRoaXMgcGFydGljdWxhciBtb2R1bGVcbiAgICovXG4gIG91dHB1dFRhcmdldERpcmVjdG9yeTogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBwcm9qZWN0TG9jYXRpb24obW9kdWxlOiBKc2lpTW9kdWxlKSB7XG4gIGNvbnN0IHBhY2thZ2VJZDogc3RyaW5nID0gbW9kdWxlLmFzc2VtYmx5LnRhcmdldHMhLmRvdG5ldCEucGFja2FnZUlkO1xuICByZXR1cm4ge1xuICAgIHByb2plY3REaXI6IHBhY2thZ2VJZCxcbiAgICBwcm9qZWN0RmlsZTogcGF0aC5qb2luKHBhY2thZ2VJZCwgYCR7cGFja2FnZUlkfS5jc3Byb2pgKSxcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRG90bmV0IGV4dGVuZHMgVGFyZ2V0IHtcbiAgcHVibGljIHN0YXRpYyB0b1BhY2thZ2VJbmZvcyhhc3NtOiBzcGVjLkFzc2VtYmx5KToge1xuICAgIFtsYW5ndWFnZTogc3RyaW5nXTogUGFja2FnZUluZm87XG4gIH0ge1xuICAgIGNvbnN0IHBhY2thZ2VJZCA9IGFzc20udGFyZ2V0cyEuZG90bmV0IS5wYWNrYWdlSWQ7XG4gICAgY29uc3QgdmVyc2lvbiA9IHRvUmVsZWFzZVZlcnNpb24oYXNzbS52ZXJzaW9uLCBUYXJnZXROYW1lLkRPVE5FVCk7XG4gICAgY29uc3QgcGFja2FnZUluZm86IFBhY2thZ2VJbmZvID0ge1xuICAgICAgcmVwb3NpdG9yeTogJ051Z2V0JyxcbiAgICAgIHVybDogYGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy8ke3BhY2thZ2VJZH0vJHt2ZXJzaW9ufWAsXG4gICAgICB1c2FnZToge1xuICAgICAgICBjc3Byb2o6IHtcbiAgICAgICAgICBsYW5ndWFnZTogJ3htbCcsXG4gICAgICAgICAgY29kZTogYDxQYWNrYWdlUmVmZXJlbmNlIEluY2x1ZGU9XCIke3BhY2thZ2VJZH1cIiBWZXJzaW9uPVwiJHt2ZXJzaW9ufVwiIC8+YCxcbiAgICAgICAgfSxcbiAgICAgICAgZG90bmV0OiB7XG4gICAgICAgICAgbGFuZ3VhZ2U6ICdjb25zb2xlJyxcbiAgICAgICAgICBjb2RlOiBgZG90bmV0IGFkZCBwYWNrYWdlICR7cGFja2FnZUlkfSAtLXZlcnNpb24gJHt2ZXJzaW9ufWAsXG4gICAgICAgIH0sXG4gICAgICAgICdwYWNrYWdlcy5jb25maWcnOiB7XG4gICAgICAgICAgbGFuZ3VhZ2U6ICd4bWwnLFxuICAgICAgICAgIGNvZGU6IGA8cGFja2FnZSBpZD1cIiR7cGFja2FnZUlkfVwiIHZlcnNpb249XCIke3ZlcnNpb259XCIgLz5gLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHJldHVybiB7ICdDIyc6IHBhY2thZ2VJbmZvIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRvTmF0aXZlUmVmZXJlbmNlKF90eXBlOiBzcGVjLlR5cGUsIG9wdGlvbnM6IGFueSkge1xuICAgIHJldHVybiB7XG4gICAgICAnYyMnOiBgdXNpbmcgJHtvcHRpb25zLm5hbWVzcGFjZX07YCxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGdlbmVyYXRvcjogRG90TmV0R2VuZXJhdG9yO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBvcHRpb25zOiBUYXJnZXRPcHRpb25zLFxuICAgIGFzc2VtYmxpZXNDdXJyZW50bHlCZWluZ0NvbXBpbGVkOiBzdHJpbmdbXSxcbiAgKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICB0aGlzLmdlbmVyYXRvciA9IG5ldyBEb3ROZXRHZW5lcmF0b3IoXG4gICAgICBhc3NlbWJsaWVzQ3VycmVudGx5QmVpbmdDb21waWxlZCxcbiAgICAgIG9wdGlvbnMucm9zZXR0YSxcbiAgICApO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIHB1YmxpYyBhc3luYyBidWlsZChfc291cmNlRGlyOiBzdHJpbmcsIF9vdXREaXI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBiZSBjYWxsZWQ7IHVzZSBidWlsZGVyIGluc3RlYWQnKTtcbiAgfVxuICAvKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0ICovXG59XG4iXX0=
224
+ //# sourceMappingURL=dotnet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotnet.js","sourceRoot":"","sources":["dotnet.ts"],"names":[],"mappings":";;;AACA,+BAA+B;AAC/B,6BAA6B;AAC7B,yCAAyC;AAGzC,sCAAsC;AAEtC,sCAKmB;AACnB,kCAAiE;AACjE,8DAA2D;AAC3D,mDAAmD;AAEnD,wBAA+B;AAElB,QAAA,gBAAgB,GAAG,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAa,aAAa;IAGxB,YACmB,OAA8B,EAC9B,OAAqB;QADrB,YAAO,GAAP,OAAO,CAAuB;QAC9B,YAAO,GAAP,OAAO,CAAc;QAJvB,eAAU,GAAG,QAAQ,CAAC;IAKpC,CAAC;IAEG,KAAK,CAAC,YAAY;QACvB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,OAAO;SACR;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACzB,uDAAuD;YACvD,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1B,IAAI,CAAC,kBAAkB,CACrB,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CACvC,CACF,CACF,CAAC;YACF,OAAO;SACR;QAED,kGAAkG;QAClG,MAAM,WAAW,GAAwB,EAAE,CAAC;QAC5C,IAAI;YACF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1E,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEhC,iBAAiB;YACjB,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC/B,MAAM,IAAA,YAAK,EACT,QAAQ,EACR,CAAC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAClD;gBACE,GAAG,EAAE,aAAa,CAAC,SAAS;gBAC5B,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;aAC1B,CACF,CAAC;YAEF,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,MAAM,cAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;aACvC;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,IAAI,CACV,uCAAuC,WAAW;iBAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;iBACvB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;YACF,MAAM,CAAC,CAAC;SACT;IACH,CAAC;IAEO,KAAK,CAAC,0BAA0B,CACtC,OAA8B;QAE9B,OAAO,cAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;YAC3C,OAAO,CAAC,KAAK,CAAC,2CAA2C,MAAM,EAAE,CAAC,CAAC;YAEnE,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,MAAM,GAAG,GAA6B,EAAE,CAAC;YAEzC,gDAAgD;YAChD,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CACrD,CAAC;YAEF,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,gBAAgB,EAAE;gBACxC,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC9B,GAAG,CAAC,IAAI,CAAC;oBACP,qBAAqB,EAAE,GAAG,CAAC,eAAe;oBAC1C,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC;iBAClE,CAAC,CAAC;aACJ;YAED,6EAA6E;YAC7E,MAAM,IAAA,YAAK,EAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1E,MAAM,IAAA,YAAK,EAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YAEnE,MAAM,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC;YAEnD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,QAAkC;QAC/D,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAE5C,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEvE,KAAK,UAAU,0BAA0B,CAEvC,GAA2B;YAE3B,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YAElE,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YACjC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE;gBAC/C,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;oBACjB,OAAO,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,wBAAgB,CAAC,CAAC;gBAC9D,CAAC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,MAAkB,EAClB,KAAa;QAEb,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,UAAU,cAAc,KAAK,EAAE,CAAC,CAAC;QAClE,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,WAAmB;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB;YACtC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC;YACzC,CAAC,CAAC,WAAW,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,+BAA+B,CAAC,KAAa;QACzD,8EAA8E;QAC9E,+EAA+E;QAC/E,+CAA+C;QAC/C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE5C,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC1D,MAAM;YACN,cAAc,EAAE,MAAM,IAAA,2BAAkB,EACtC,MAAM,CAAC,eAAe,EACtB,IAAI,CAAC,UAAU,CAChB;SACF,CAAC,CAAC,CAAC;QACJ,IAAI,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,eAAe,EAAE;YAC9D,IAAA,gBAAS,EAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;YAE7C,iGAAiG;YACjG,6BAA6B;YAC7B,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;SAC/D;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEjD,2FAA2F;QAC3F,IAAI;YACF,sIAAsI;YACtI,MAAM,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAC1D,OAAO,CAAC,IAAI,CACV,8DAA8D,iBAAiB,CAAC,UAAU,EAAE,CAC7F,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;SAC/C;QAAC,MAAM;YACN,wDAAwD;SACzD;QAED,gFAAgF;QAChF,MAAM,kBAAkB,GAAG,MAAM,IAAA,kBAAW,EAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;QAExE,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;QAExD,yBAAyB;QACzB,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE;YACvD,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAE3D,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACpC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;QAChE,WAAW,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;QAExC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACzC,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,CAAC,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,qCAAqC,CAAC,EAAE;YACjE,qDAAqD;YACrD,aAAa;iBACV,GAAG,CAAC,QAAQ,CAAC;iBACb,GAAG,CAAC,KAAK,CAAC;iBACV,GAAG,CAAC,KAAK,EAAE,sBAAsB,CAAC;iBAClC,GAAG,CACF,OAAO,EACP,IAAI,CAAC,OAAO,CACV,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,qCAAqC,CAAC,EAC7D,QAAQ,EACR,UAAU,CACX,CACF,CAAC;SACL;QAED,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhD,qCAAqC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;QACvC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAEO,UAAU,CAAC,MAAkB;QACnC,OAAO,IAAI,MAAM,CACf;YACE,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,MAAM,CAAC,eAAe;YAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YACrC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;SAC9B,EACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAChC,CAAC;IACJ,CAAC;CACF;AApOD,sCAoOC;AAcD,SAAS,eAAe,CAAC,MAAkB;IACzC,MAAM,SAAS,GAAW,MAAM,CAAC,QAAQ,CAAC,OAAQ,CAAC,MAAO,CAAC,SAAS,CAAC;IACrE,OAAO;QACL,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,SAAS,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,MAAqB,MAAO,SAAQ,eAAM;IAmCxC,YACE,OAAsB,EACtB,gCAA0C;QAE1C,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,SAAS,GAAG,IAAI,iCAAe,CAClC,gCAAgC,EAChC,OAAO,CAAC,OAAO,CAChB,CAAC;IACJ,CAAC;IA5CM,MAAM,CAAC,cAAc,CAAC,IAAmB;QAG9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAQ,CAAC,MAAO,CAAC,SAAS,CAAC;QAClD,MAAM,OAAO,GAAG,IAAA,gCAAgB,EAAC,IAAI,CAAC,OAAO,EAAE,aAAU,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,WAAW,GAAgB;YAC/B,UAAU,EAAE,OAAO;YACnB,GAAG,EAAE,kCAAkC,SAAS,IAAI,OAAO,EAAE;YAC7D,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,QAAQ,EAAE,KAAK;oBACf,IAAI,EAAE,8BAA8B,SAAS,cAAc,OAAO,MAAM;iBACzE;gBACD,MAAM,EAAE;oBACN,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,sBAAsB,SAAS,cAAc,OAAO,EAAE;iBAC7D;gBACD,iBAAiB,EAAE;oBACjB,QAAQ,EAAE,KAAK;oBACf,IAAI,EAAE,gBAAgB,SAAS,cAAc,OAAO,MAAM;iBAC3D;aACF;SACF,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,KAAgB,EAAE,OAAY;QAC5D,OAAO;YACL,IAAI,EAAE,SAAS,OAAO,CAAC,SAAS,GAAG;SACpC,CAAC;IACJ,CAAC;IAgBD,4DAA4D;IACrD,KAAK,CAAC,KAAK,CAAC,UAAkB,EAAE,OAAe;QACpD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;CAEF;AApDD,yBAoDC"}
@@ -5,4 +5,4 @@ function byName(l, r) {
5
5
  return l.name.localeCompare(r.name);
6
6
  }
7
7
  exports.byName = byName;
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb21wYXJhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxTQUFnQixNQUFNLENBQUMsQ0FBUSxFQUFFLENBQVE7SUFDdkMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUZELHdCQUVDIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBOYW1lZCA9IHsgcmVhZG9ubHkgbmFtZTogc3RyaW5nIH07XG5leHBvcnQgZnVuY3Rpb24gYnlOYW1lKGw6IE5hbWVkLCByOiBOYW1lZCk6IG51bWJlciB7XG4gIHJldHVybiBsLm5hbWUubG9jYWxlQ29tcGFyZShyLm5hbWUpO1xufVxuIl19
8
+ //# sourceMappingURL=comparators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparators.js","sourceRoot":"","sources":["comparators.ts"],"names":[],"mappings":";;;AACA,SAAgB,MAAM,CAAC,CAAQ,EAAE,CAAQ;IACvC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAFD,wBAEC"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwZW5kZW5jaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVwZW5kZW5jaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGEgbW9kdWxlJ3MgZGVwZW5kZW5jeSBvbiBcInNwZWNpYWxcIiBwYWNrYWdlcyAoZWl0aGVyIHBhcnQgb2ZcbiAqIHRoZSBnbyBzdGFuZGFyZCBsaWJyYXJ5LCBvciBnZW5lcmF0ZWQgYXMgcGFydCBvZiB0aGUgY3VycmVudCBtb2R1bGUpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwZWNpYWxEZXBlbmRlbmNpZXMge1xuICAvKiogV2hldGhlciB0aGUganNpaSBydW50aW1lIGxpYnJhcnkgZm9yIGdvIGlzIG5lZWRlZCAqL1xuICByZWFkb25seSBydW50aW1lOiBib29sZWFuO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBwYWNrYWdlJ3MgaW5pdGlhbGl6YXRpb24gaG9vayBpcyBuZWVkZWQgKi9cbiAgcmVhZG9ubHkgaW5pdDogYm9vbGVhbjtcblxuICAvKiogV2hldGhlciB0aGUgaW50ZXJuYWwgdHlwZSBhbGlhc2VzIHBhY2thZ2UgaXMgbmVlZGVkICovXG4gIHJlYWRvbmx5IGludGVybmFsOiBib29sZWFuO1xuXG4gIC8qKiBXaGV0aGVyIGdvJ3Mgc3RhbmRhcmQgbGlicmFyeSBcInRpbWVcIiBtb2R1bGUgaXMgbmVlZGVkICovXG4gIHJlYWRvbmx5IHRpbWU6IGJvb2xlYW47XG59XG4iXX0=
3
+ //# sourceMappingURL=dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["dependencies.ts"],"names":[],"mappings":""}
@@ -91,4 +91,4 @@ class Documentation {
91
91
  }
92
92
  }
93
93
  exports.Documentation = Documentation;
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRvY3VtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXVDO0FBR3ZDLCtDQUFvRTtBQUVwRSxNQUFhLGFBQWE7SUFDeEIsWUFDbUIsSUFBZSxFQUNmLE9BQWdCO1FBRGhCLFNBQUksR0FBSixJQUFJLENBQVc7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUFTO0lBQ2hDLENBQUM7SUFFSjs7Ozs7Ozs7OztPQVVHO0lBQ0ksSUFBSSxDQUFDLElBQVUsRUFBRSxXQUF3QjtRQUM5QyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbEMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUNuQjtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7WUFDRCxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUM5QztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7WUFDRCxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLCtFQUErRTtZQUMvRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUM3QyxX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QVMsRUFBUTtRQUNoRCw0RUFBNEU7UUFDNUUsT0FBTyxDQUNMLFNBQVMsS0FBSyxnQkFBUyxDQUFDLFVBQVUsSUFBSSxTQUFTLEtBQUssZ0JBQVMsQ0FBQyxZQUFZLENBQzNFLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE3R0Qsc0NBNkdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhYmlsaXR5IH0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tICdjb2RlbWFrZXInO1xuaW1wb3J0IHsgRG9jcyB9IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBBcGlMb2NhdGlvbiwgUm9zZXR0YSwgVGFyZ2V0TGFuZ3VhZ2UgfSBmcm9tICdqc2lpLXJvc2V0dGEnO1xuXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRhdGlvbiB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvZGU6IENvZGVNYWtlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvc2V0dGE6IFJvc2V0dGEsXG4gICkge31cblxuICAvKipcbiAgICogRW1pdHMgYWxsIGRvY3VtZW50YXRpb24gZGVwZW5kaW5nIG9uIHdoYXQgaXMgYXZhaWxhYmxlIGluIHRoZSBqc2lpIG1vZGVsXG4gICAqXG4gICAqIFVzZWQgYnkgYWxsIGtpbmQgb2YgbWVtYmVycyArIGNsYXNzZXMsIGludGVyZmFjZXMsIGVudW1zXG4gICAqIE9yZGVyIHNob3VsZCBiZVxuICAgKiBTdW1tYXJ5ICsgUmVtYXJrc1xuICAgKiBSZXR1cm5zXG4gICAqIEV4YW1wbGVzIDx0cmFuc2xpdGVyYXRlZCBleGFtcGxlIGNvZGU+XG4gICAqIExpbmtcbiAgICogU3RhYmlsaXR5L0RlcHJlY2F0aW9uIGRlc2NyaXB0aW9uXG4gICAqL1xuICBwdWJsaWMgZW1pdChkb2NzOiBEb2NzLCBhcGlMb2NhdGlvbjogQXBpTG9jYXRpb24pOiB2b2lkIHtcbiAgICBsZXQgZmlyc3RMaW5lID0gdHJ1ZTtcbiAgICBpZiAoZG9jcy50b1N0cmluZygpICE9PSAnJykge1xuICAgICAgdGhpcy5lbWl0Q29tbWVudChkb2NzLnRvU3RyaW5nKCkpO1xuICAgICAgZmlyc3RMaW5lID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGRvY3MucmV0dXJucyAhPT0gJycpIHtcbiAgICAgIGlmICghZmlyc3RMaW5lKSB7XG4gICAgICAgIHRoaXMuZW1pdENvbW1lbnQoKTtcbiAgICAgIH1cbiAgICAgIGZpcnN0TGluZSA9IGZhbHNlO1xuICAgICAgdGhpcy5lbWl0Q29tbWVudChgUmV0dXJuczogJHtkb2NzLnJldHVybnN9YCk7XG4gICAgfVxuXG4gICAgaWYgKGRvY3MuZXhhbXBsZSAhPT0gJycpIHtcbiAgICAgIGlmICghZmlyc3RMaW5lKSB7XG4gICAgICAgIHRoaXMuZW1pdENvbW1lbnQoKTtcbiAgICAgIH1cbiAgICAgIGZpcnN0TGluZSA9IGZhbHNlO1xuICAgICAgLy8gVE9ETzogVHJhbnNsYXRlIGNvZGUgZXhhbXBsZXMgdG8gR28gd2l0aCBSb3NldHRhIChub3QgaW1wbGVtZW50ZWQgdGhlcmUgeWV0KVxuICAgICAgdGhpcy5jb2RlLmxpbmUoJy8vIEV4YW1wbGU6Jyk7XG4gICAgICBjb25zdCBnb0V4YW1wbGUgPSB0aGlzLnJvc2V0dGEudHJhbnNsYXRlRXhhbXBsZShcbiAgICAgICAgYXBpTG9jYXRpb24sXG4gICAgICAgIGRvY3MuZXhhbXBsZSxcbiAgICAgICAgVGFyZ2V0TGFuZ3VhZ2UuR08sXG4gICAgICAgIGZhbHNlLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGxpbmVzID0gZ29FeGFtcGxlLnNvdXJjZS5zcGxpdCgnXFxuJyk7XG4gICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgICAgLy8gSW5saW5lIGNvZGUgbmVlZHMgdG8gYmUgaW50ZW50ZWQgb25lIGxldmVsIGRlZXBlciB0aGFuIHJlZ3VsYXIgdGV4dC5cbiAgICAgICAgdGhpcy5jb2RlLmxpbmUoYC8vICAgJHtsaW5lfWAudHJpbSgpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZW1pdENvbW1lbnQoKTtcbiAgICB9XG5cbiAgICBpZiAoZG9jcy5saW5rICE9PSAnJykge1xuICAgICAgdGhpcy5lbWl0Q29tbWVudChgU2VlOiAke2RvY3MubGlua31gKTtcbiAgICAgIHRoaXMuZW1pdENvbW1lbnQoKTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRTdGFiaWxpdHkoZG9jcyk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFN0YWJpbGl0eShkb2NzOiBEb2NzKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhYmlsaXR5ID0gZG9jcy5zdGFiaWxpdHk7XG4gICAgaWYgKHN0YWJpbGl0eSAmJiB0aGlzLnNob3VsZE1lbnRpb25TdGFiaWxpdHkoZG9jcykpIHtcbiAgICAgIGlmIChkb2NzLmRlcHJlY2F0ZWQpIHtcbiAgICAgICAgdGhpcy5lbWl0Q29tbWVudChgRGVwcmVjYXRlZDogJHtkb2NzLmRlcHJlY2F0aW9uUmVhc29ufWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lbWl0Q29tbWVudChgJHt0aGlzLmNvZGUudG9QYXNjYWxDYXNlKHN0YWJpbGl0eSl9LmApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbWl0UmVhZG1lKG1vZHVsZUZxbjogc3RyaW5nLCByZWFkbWU6IHN0cmluZywgZGlyZWN0b3J5OiBzdHJpbmcpIHtcbiAgICBjb25zdCBnb1JlYWRtZSA9IHRoaXMucm9zZXR0YS50cmFuc2xhdGVTbmlwcGV0c0luTWFya2Rvd24oXG4gICAgICB7IGFwaTogJ21vZHVsZVJlYWRtZScsIG1vZHVsZUZxbiB9LFxuICAgICAgcmVhZG1lLFxuICAgICAgVGFyZ2V0TGFuZ3VhZ2UuR08sXG4gICAgICBmYWxzZSxcbiAgICApO1xuXG4gICAgY29uc3QgcmVhZG1lRmlsZSA9IGAke2RpcmVjdG9yeX0vUkVBRE1FLm1kYDtcbiAgICB0aGlzLmNvZGUub3BlbkZpbGUocmVhZG1lRmlsZSk7XG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGdvUmVhZG1lLnNwbGl0KCdcXG4nKSkge1xuICAgICAgdGhpcy5jb2RlLmxpbmUobGluZSk7XG4gICAgfVxuICAgIHRoaXMuY29kZS5jbG9zZUZpbGUocmVhZG1lRmlsZSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDb21tZW50KHRleHQgPSAnJykge1xuICAgIGNvbnN0IGxpbmVzID0gdGV4dC50cmltKCkuc3BsaXQoJ1xcbicpO1xuXG4gICAgLy8gRW5zdXJlIHRoZSBjb21tZW50IGFsd2F5cyBlbmRzIHdpdGggYSBmaW5hbCBwZXJpb2QsIGNvbmZvcm0gd2l0aCBHb0RvYyBjb252ZW50aW9ucy5cbiAgICBjb25zdCBsYXN0TGluZSA9IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdO1xuICAgIGlmIChsYXN0TGluZS50cmltKCkgIT09ICcnICYmICEvXFxwe1NlbnRlbmNlX1Rlcm1pbmFsfS91LnRlc3QobGFzdExpbmUpKSB7XG4gICAgICBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXSA9IGAke2xhc3RMaW5lLnRyaW0oKX0uYDtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgIC8vIEZpbmFsIHRyaW0oKSBoZXJlIGlzIHRvIGF2b2lkIHRyYWlsaW5nIHdoaXRlc3BhY2Ugb24gZW1wdHkgY29tbWVudCBsaW5lcy5cbiAgICAgIHRoaXMuY29kZS5saW5lKGAvLyAke2xpbmV9YC50cmltKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkTWVudGlvblN0YWJpbGl0eSh7IHN0YWJpbGl0eSB9OiBEb2NzKTogYm9vbGVhbiB7XG4gICAgLy8gRG9uJ3QgcmVuZGVyIFwic3RhYmxlXCIgb3IgXCJleHRlcm5hbFwiLCB0aG9zZSBhcmUgYm90aCBzdGFibGUgYnkgaW1wbGljYXRpb25cbiAgICByZXR1cm4gKFxuICAgICAgc3RhYmlsaXR5ID09PSBTdGFiaWxpdHkuRGVwcmVjYXRlZCB8fCBzdGFiaWxpdHkgPT09IFN0YWJpbGl0eS5FeHBlcmltZW50YWxcbiAgICApO1xuICB9XG59XG4iXX0=
94
+ //# sourceMappingURL=documentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentation.js","sourceRoot":"","sources":["documentation.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdC1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZW1pdC1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tICdjb2RlbWFrZXInO1xuXG5pbXBvcnQgeyBEb2N1bWVudGF0aW9uIH0gZnJvbSAnLi9kb2N1bWVudGF0aW9uJztcblxuLyoqXG4gKiBUaGUgY29udGV4dCBpbiB3aGljaCBHb2xhbmcgY29kZSBpcyBlbWl0dGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtaXRDb250ZXh0IHtcbiAgLyoqIEEgQ29kZU1ha2VyIHRvIHdyaXRlIG91dCBzb3VyY2UgY29kZS4gKi9cbiAgcmVhZG9ubHkgY29kZTogQ29kZU1ha2VyO1xuXG4gIC8qKiBBIERvY3VtZW50YXRpb24gZ2VuZXJhdG9yLiBJbmNsdWRlcyBSb3NldHRhIHN0b25lIHRvIHRyYW5zbGF0ZSBjb2RlIGV4YW1wbGVzLiAqL1xuICByZWFkb25seSBkb2N1bWVudGVyOiBEb2N1bWVudGF0aW9uO1xufVxuIl19
3
+ //# sourceMappingURL=emit-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-context.js","sourceRoot":"","sources":["emit-context.ts"],"names":[],"mappings":""}
@@ -21,7 +21,6 @@ class Package {
21
21
  constructor(jsiiModule, packageName, filePath, moduleName, version,
22
22
  // If no root is provided, this module is the root
23
23
  root) {
24
- var _a;
25
24
  this.jsiiModule = jsiiModule;
26
25
  this.packageName = packageName;
27
26
  this.filePath = filePath;
@@ -30,7 +29,7 @@ class Package {
30
29
  this.embeddedTypes = new Map();
31
30
  this.directory = filePath;
32
31
  this.file = `${this.directory}/${packageName}.go`;
33
- this.root = root !== null && root !== void 0 ? root : this;
32
+ this.root = root ?? this;
34
33
  this.submodules = this.jsiiModule.submodules.map((sm) => new InternalPackage(this.root, this, sm));
35
34
  this.types = this.jsiiModule.types.map((type) => {
36
35
  if (type.isInterfaceType() && type.datatype) {
@@ -47,7 +46,7 @@ class Package {
47
46
  }
48
47
  throw new Error(`Type: ${type.name} with kind ${type.kind} is not a supported type`);
49
48
  });
50
- if ((_a = this.jsiiModule.readme) === null || _a === void 0 ? void 0 : _a.markdown) {
49
+ if (this.jsiiModule.readme?.markdown) {
51
50
  this.readmeFile = new readme_file_1.ReadmeFile(this.jsiiModule.fqn, this.jsiiModule.readme.markdown, this.directory);
52
51
  }
53
52
  }
@@ -55,7 +54,7 @@ class Package {
55
54
  * Packages within this module
56
55
  */
57
56
  get dependencies() {
58
- return util_1.flatMap(this.types, (t) => t.dependencies).filter((mod) => mod.packageName !== this.packageName);
57
+ return (0, util_1.flatMap)(this.types, (t) => t.dependencies).filter((mod) => mod.packageName !== this.packageName);
59
58
  }
60
59
  /*
61
60
  * goModuleName returns the full path to the module name.
@@ -79,17 +78,16 @@ class Package {
79
78
  * Search for a type with a `fqn` within this. Searches all Children modules as well.
80
79
  */
81
80
  findType(fqn) {
82
- return util_1.findTypeInTree(this, fqn);
81
+ return (0, util_1.findTypeInTree)(this, fqn);
83
82
  }
84
83
  emit(context) {
85
- var _a;
86
84
  const { code } = context;
87
85
  code.openFile(this.file);
88
86
  this.emitHeader(code);
89
87
  this.emitImports(code);
90
88
  this.emitTypes(context);
91
89
  code.closeFile(this.file);
92
- (_a = this.readmeFile) === null || _a === void 0 ? void 0 : _a.emit(context);
90
+ this.readmeFile?.emit(context);
93
91
  this.emitGoInitFunction(context);
94
92
  this.emitSubmodules(context);
95
93
  this.emitInternal(context);
@@ -165,7 +163,7 @@ class Package {
165
163
  // form. It also saves us from "imported but unused" errors that would arise
166
164
  // as a consequence.
167
165
  if (this.types.length > 0) {
168
- const initFile = path_1.join(path_1.dirname(this.file), `${path_1.basename(this.file, '.go')}.init.go`);
166
+ const initFile = (0, path_1.join)((0, path_1.dirname)(this.file), `${(0, path_1.basename)(this.file, '.go')}.init.go`);
169
167
  code.openFile(initFile);
170
168
  code.line(`package ${this.packageName}`);
171
169
  code.line();
@@ -218,7 +216,7 @@ class Package {
218
216
  return;
219
217
  }
220
218
  const code = context.code;
221
- const fileName = path_1.join(this.directory, INTERNAL_PACKAGE_NAME, 'types.go');
219
+ const fileName = (0, path_1.join)(this.directory, INTERNAL_PACKAGE_NAME, 'types.go');
222
220
  code.openFile(fileName);
223
221
  code.line(`package ${INTERNAL_PACKAGE_NAME}`);
224
222
  const imports = new Set();
@@ -249,12 +247,11 @@ exports.Package = Package;
249
247
  */
250
248
  class RootPackage extends Package {
251
249
  constructor(assembly, rootPackageCache = new Map()) {
252
- var _a, _b, _c, _d;
253
- const goConfig = (_b = (_a = assembly.targets) === null || _a === void 0 ? void 0 : _a.go) !== null && _b !== void 0 ? _b : {};
254
- const packageName = util_1.goPackageNameForAssembly(assembly);
250
+ const goConfig = assembly.targets?.go ?? {};
251
+ const packageName = (0, util_1.goPackageNameForAssembly)(assembly);
255
252
  const filePath = '';
256
- const moduleName = (_c = goConfig.moduleName) !== null && _c !== void 0 ? _c : '';
257
- const version = `${assembly.version}${(_d = goConfig.versionSuffix) !== null && _d !== void 0 ? _d : ''}`;
253
+ const moduleName = goConfig.moduleName ?? '';
254
+ const version = `${assembly.version}${goConfig.versionSuffix ?? ''}`;
258
255
  super(assembly, packageName, filePath, moduleName, version);
259
256
  this.rootPackageCache = rootPackageCache;
260
257
  this.rootPackageCache.set(assembly.name, this);
@@ -319,7 +316,8 @@ class RootPackage extends Package {
319
316
  * Get all JSII module dependencies of the package being generated
320
317
  */
321
318
  get packageDependencies() {
322
- return this.assembly.dependencies.map((dep) => { var _a; return (_a = this.rootPackageCache.get(dep.assembly.name)) !== null && _a !== void 0 ? _a : new RootPackage(dep.assembly, this.rootPackageCache); });
319
+ return this.assembly.dependencies.map((dep) => this.rootPackageCache.get(dep.assembly.name) ??
320
+ new RootPackage(dep.assembly, this.rootPackageCache));
323
321
  }
324
322
  emitHeader(code) {
325
323
  if (this.assembly.description !== '') {
@@ -330,7 +328,7 @@ class RootPackage extends Package {
330
328
  }
331
329
  emitJsiiPackage({ code }) {
332
330
  const dependencies = this.packageDependencies.sort((l, r) => l.moduleName.localeCompare(r.moduleName));
333
- const file = path_1.join(runtime_1.JSII_INIT_PACKAGE, `${runtime_1.JSII_INIT_PACKAGE}.go`);
331
+ const file = (0, path_1.join)(runtime_1.JSII_INIT_PACKAGE, `${runtime_1.JSII_INIT_PACKAGE}.go`);
334
332
  code.openFile(file);
335
333
  code.line(`// Package ${runtime_1.JSII_INIT_PACKAGE} contains the functionaility needed for jsii packages to`);
336
334
  code.line('// initialize their dependencies and themselves. Users should never need to use this package');
@@ -352,7 +350,7 @@ class RootPackage extends Package {
352
350
  }
353
351
  importGoModules(code, toImport);
354
352
  code.line();
355
- code.line(`//go:embed ${util_1.tarballName(this.assembly)}`);
353
+ code.line(`//go:embed ${(0, util_1.tarballName)(this.assembly)}`);
356
354
  code.line('var tarball []byte');
357
355
  code.line();
358
356
  code.line(`// ${runtime_1.JSII_INIT_FUNC} loads the necessary packages in the @jsii/kernel to support the enclosing module.`);
@@ -377,7 +375,7 @@ exports.RootPackage = RootPackage;
377
375
  */
378
376
  class InternalPackage extends Package {
379
377
  constructor(root, parent, assembly) {
380
- const packageName = util_1.goPackageNameForAssembly(assembly);
378
+ const packageName = (0, util_1.goPackageNameForAssembly)(assembly);
381
379
  const filePath = parent === root ? packageName : `${parent.filePath}/${packageName}`;
382
380
  super(assembly, packageName, filePath, root.moduleName, root.version, root);
383
381
  this.parent = parent;
@@ -418,7 +416,7 @@ function importGoModules(code, modules) {
418
416
  if (modules.length === 0) {
419
417
  return;
420
418
  }
421
- const aliasSize = Math.max(...modules.map((mod) => { var _a, _b; return (_b = (_a = mod.alias) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0; }));
419
+ const aliasSize = Math.max(...modules.map((mod) => mod.alias?.length ?? 0));
422
420
  code.open('import (');
423
421
  const sortedModules = Array.from(modules).sort(compareImportedModules);
424
422
  for (let i = 0; i < sortedModules.length; i++) {
@@ -470,4 +468,4 @@ function importGoModules(code, modules) {
470
468
  return mod.alias === runtime_1.JSII_RT_ALIAS || mod.alias === runtime_1.JSII_INIT_ALIAS;
471
469
  }
472
470
  }
473
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBhY2thZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0EsK0JBQStDO0FBQy9DLGlDQUFpQztBQUVqQywyQ0FBd0M7QUFHeEMsK0NBQTJDO0FBQzNDLHVDQU9tQjtBQUNuQixtQ0FBZ0Y7QUFDaEYsaUNBS2dCO0FBQ2hCLGlEQUE2QztBQUVoQyxRQUFBLGNBQWMsR0FBRyxRQUFRLENBQUM7QUFDMUIsUUFBQSxVQUFVLEdBQUcsTUFBTSxDQUFDO0FBRWpDLDZFQUE2RTtBQUM3RSxrQ0FBa0M7QUFDbEMsTUFBTSxxQkFBcUIsR0FBRyxVQUFVLENBQUM7QUFFekM7O0dBRUc7QUFDSCxNQUFzQixPQUFPO0lBVTNCLFlBQ21CLFVBQTBCLEVBQzNCLFdBQW1CLEVBQ25CLFFBQWdCLEVBQ2hCLFVBQWtCLEVBQ2xCLE9BQWU7SUFDL0Isa0RBQWtEO0lBQ2xELElBQWM7O1FBTkcsZUFBVSxHQUFWLFVBQVUsQ0FBZ0I7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFSaEIsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztRQVkvRCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxXQUFXLEtBQUssQ0FBQztRQUNsRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDOUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJ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LENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsU0FBUyxTQUFTLENBQUMsR0FBbUI7UUFDcEMseUVBQXlFO1FBQ3pFLG9FQUFvRTtRQUNwRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFNBQVMsU0FBUyxDQUFDLEdBQW1CO1FBQ3BDLE9BQU8sR0FBRyxDQUFDLEtBQUssS0FBSyx1QkFBYSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUsseUJBQWUsQ0FBQztJQUN0RSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQge1xuICBBc3NlbWJseSxcbiAgTW9kdWxlTGlrZSBhcyBKc2lpTW9kdWxlTGlrZSxcbiAgVHlwZSxcbiAgU3VibW9kdWxlIGFzIEpzaWlTdWJtb2R1bGUsXG59IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBiYXNlbmFtZSwgZGlybmFtZSwgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5cbmltcG9ydCB7IFZFUlNJT04gfSBmcm9tICcuLi8uLi92ZXJzaW9uJztcbmltcG9ydCB7IFNwZWNpYWxEZXBlbmRlbmNpZXMgfSBmcm9tICcuL2RlcGVuZGVuY2llcyc7XG5pbXBvcnQgeyBFbWl0Q29udGV4dCB9IGZyb20gJy4vZW1pdC1jb250ZXh0JztcbmltcG9ydCB7IFJlYWRtZUZpbGUgfSBmcm9tICcuL3JlYWRtZS1maWxlJztcbmltcG9ydCB7XG4gIEpTSUlfUlRfQUxJQVMsXG4gIEpTSUlfUlRfTU9EVUxFX05BTUUsXG4gIEpTSUlfUlRfUEFDS0FHRV9OQU1FLFxuICBKU0lJX0lOSVRfUEFDS0FHRSxcbiAgSlNJSV9JTklUX0ZVTkMsXG4gIEpTSUlfSU5JVF9BTElBUyxcbn0gZnJvbSAnLi9ydW50aW1lJztcbmltcG9ydCB7IEdvQ2xhc3MsIEdvVHlwZSwgRW51bSwgR29JbnRlcmZhY2UsIFN0cnVjdCwgR29UeXBlUmVmIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBmaW5kVHlwZUluVHJlZSxcbiAgZ29QYWNrYWdlTmFtZUZvckFzc2VtYmx5LFxuICBmbGF0TWFwLFxuICB0YXJiYWxsTmFtZSxcbn0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IFZlcnNpb25GaWxlIH0gZnJvbSAnLi92ZXJzaW9uLWZpbGUnO1xuXG5leHBvcnQgY29uc3QgR09NT0RfRklMRU5BTUUgPSAnZ28ubW9kJztcbmV4cG9ydCBjb25zdCBHT19WRVJTSU9OID0gJzEuMTYnO1xuXG4vLyB0aGUgbmFtZSBvZiBhIHN1Yi1wYWNrYWdlIHRoYXQgaW5jbHVkZXMgaW50ZXJuYWwgdHlwZSBhbGlhc2VzIGl0IGhhcyB0byBiZVxuLy8gXCJpbnRlcm5hbFwiIHNvIGl0IG5vdCBwdWJsaXNoZWQuXG5jb25zdCBJTlRFUk5BTF9QQUNLQUdFX05BTUUgPSAnaW50ZXJuYWwnO1xuXG4vKlxuICogUGFja2FnZSByZXByZXNlbnRzIGEgc2luZ2xlIGAuZ29gIHNvdXJjZSBmaWxlIHdpdGhpbiBhIHBhY2thZ2UuIFRoaXMgY2FuIGJlIHRoZSByb290IHBhY2thZ2UgZmlsZSBvciBhIHN1Ym1vZHVsZVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGFja2FnZSB7XG4gIHB1YmxpYyByZWFkb25seSByb290OiBQYWNrYWdlO1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZGlyZWN0b3J5OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBzdWJtb2R1bGVzOiBJbnRlcm5hbFBhY2thZ2VbXTtcbiAgcHVibGljIHJlYWRvbmx5IHR5cGVzOiBHb1R5cGVbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGVtYmVkZGVkVHlwZXMgPSBuZXcgTWFwPHN0cmluZywgRW1iZWRkZWRUeXBlPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlYWRtZUZpbGU/OiBSZWFkbWVGaWxlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGpzaWlNb2R1bGU6IEpzaWlNb2R1bGVMaWtlLFxuICAgIHB1YmxpYyByZWFkb25seSBwYWNrYWdlTmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBmaWxlUGF0aDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBtb2R1bGVOYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZyxcbiAgICAvLyBJZiBubyByb290IGlzIHByb3ZpZGVkLCB0aGlzIG1vZHVsZSBpcyB0aGUgcm9vdFxuICAgIHJvb3Q/OiBQYWNrYWdlLFxuICApIHtcbiAgICB0aGlzLmRpcmVjdG9yeSA9IGZpbGVQYXRoO1xuICAgIHRoaXMuZmlsZSA9IGAke3RoaXMuZGlyZWN0b3J5fS8ke3BhY2thZ2VOYW1lfS5nb2A7XG4gICAgdGhpcy5yb290ID0gcm9vdCA/PyB0aGlzO1xuICAgIHRoaXMuc3VibW9kdWxlcyA9IHRoaXMuanNpaU1vZHVsZS5zdWJtb2R1bGVzLm1hcChcbiAgICAgIChzbSkgPT4gbmV3IEludGVybmFsUGFja2FnZSh0aGlzLnJvb3QsIHRoaXMsIHNtKSxcbiAgICApO1xuXG4gICAgdGhpcy50eXBlcyA9IHRoaXMuanNpaU1vZHVsZS50eXBlcy5tYXAoKHR5cGU6IFR5cGUpOiBHb1R5cGUgPT4ge1xuICAgICAgaWYgKHR5cGUuaXNJbnRlcmZhY2VUeXBlKCkgJiYgdHlwZS5kYXRhdHlwZSkge1xuICAgICAgICByZXR1cm4gbmV3IFN0cnVjdCh0aGlzLCB0eXBlKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZS5pc0ludGVyZmFjZVR5cGUoKSkge1xuICAgICAgICByZXR1cm4gbmV3IEdvSW50ZXJmYWNlKHRoaXMsIHR5cGUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlLmlzQ2xhc3NUeXBlKCkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBHb0NsYXNzKHRoaXMsIHR5cGUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlLmlzRW51bVR5cGUoKSkge1xuICAgICAgICByZXR1cm4gbmV3IEVudW0odGhpcywgdHlwZSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUeXBlOiAke3R5cGUubmFtZX0gd2l0aCBraW5kICR7dHlwZS5raW5kfSBpcyBub3QgYSBzdXBwb3J0ZWQgdHlwZWAsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuanNpaU1vZHVsZS5yZWFkbWU/Lm1hcmtkb3duKSB7XG4gICAgICB0aGlzLnJlYWRtZUZpbGUgPSBuZXcgUmVhZG1lRmlsZShcbiAgICAgICAgdGhpcy5qc2lpTW9kdWxlLmZxbixcbiAgICAgICAgdGhpcy5qc2lpTW9kdWxlLnJlYWRtZS5tYXJrZG93bixcbiAgICAgICAgdGhpcy5kaXJlY3RvcnksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAqIFBhY2thZ2VzIHdpdGhpbiB0aGlzIG1vZHVsZVxuICAgKi9cbiAgcHVibGljIGdldCBkZXBlbmRlbmNpZXMoKTogUGFja2FnZVtdIHtcbiAgICByZXR1cm4gZmxhdE1hcCh0aGlzLnR5cGVzLCAodDogR29UeXBlKTogUGFja2FnZVtdID0+IHQuZGVwZW5kZW5jaWVzKS5maWx0ZXIoXG4gICAgICAobW9kKSA9PiBtb2QucGFja2FnZU5hbWUgIT09IHRoaXMucGFja2FnZU5hbWUsXG4gICAgKTtcbiAgfVxuXG4gIC8qXG4gICAqIGdvTW9kdWxlTmFtZSByZXR1cm5zIHRoZSBmdWxsIHBhdGggdG8gdGhlIG1vZHVsZSBuYW1lLlxuICAgKiBVc2VkIGZvciBpbXBvcnQgc3RhdGVtZW50cyBhbmQgZ28ubW9kIGdlbmVyYXRpb25cbiAgICovXG4gIHB1YmxpYyBnZXQgZ29Nb2R1bGVOYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbW9kdWxlTmFtZSA9IHRoaXMucm9vdC5tb2R1bGVOYW1lO1xuICAgIGNvbnN0IHByZWZpeCA9IG1vZHVsZU5hbWUgIT09ICcnID8gYCR7bW9kdWxlTmFtZX0vYCA6ICcnO1xuICAgIGNvbnN0IHJvb3RQYWNrYWdlTmFtZSA9IHRoaXMucm9vdC5wYWNrYWdlTmFtZTtcbiAgICBjb25zdCB2ZXJzaW9uU3VmZml4ID0gZGV0ZXJtaW5lTWFqb3JWZXJzaW9uU3VmZml4KHRoaXMudmVyc2lvbik7XG4gICAgY29uc3Qgc3VmZml4ID0gdGhpcy5maWxlUGF0aCAhPT0gJycgPyBgLyR7dGhpcy5maWxlUGF0aH1gIDogYGA7XG4gICAgcmV0dXJuIGAke3ByZWZpeH0ke3Jvb3RQYWNrYWdlTmFtZX0ke3ZlcnNpb25TdWZmaXh9JHtzdWZmaXh9YDtcbiAgfVxuXG4gIC8qXG4gICAqIFRoZSBtb2R1bGUgbmFtZXMgb2YgdGhpcyBtb2R1bGUncyBkZXBlbmRlbmNpZXMuIFVzZWQgZm9yIGltcG9ydCBzdGF0ZW1lbnRzLlxuICAgKi9cbiAgcHVibGljIGdldCBkZXBlbmRlbmN5SW1wb3J0cygpOiBTZXQ8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBTZXQodGhpcy5kZXBlbmRlbmNpZXMubWFwKChwa2cpID0+IHBrZy5nb01vZHVsZU5hbWUpKTtcbiAgfVxuXG4gIC8qXG4gICAqIFNlYXJjaCBmb3IgYSB0eXBlIHdpdGggYSBgZnFuYCB3aXRoaW4gdGhpcy4gU2VhcmNoZXMgYWxsIENoaWxkcmVuIG1vZHVsZXMgYXMgd2VsbC5cbiAgICovXG4gIHB1YmxpYyBmaW5kVHlwZShmcW46IHN0cmluZyk6IEdvVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGZpbmRUeXBlSW5UcmVlKHRoaXMsIGZxbik7XG4gIH1cblxuICBwdWJsaWMgZW1pdChjb250ZXh0OiBFbWl0Q29udGV4dCk6IHZvaWQge1xuICAgIGNvbnN0IHsgY29kZSB9ID0gY29udGV4dDtcblxuICAgIGNvZGUub3BlbkZpbGUodGhpcy5maWxlKTtcbiAgICB0aGlzLmVtaXRIZWFkZXIoY29kZSk7XG4gICAgdGhpcy5lbWl0SW1wb3J0cyhjb2RlKTtcbiAgICB0aGlzLmVtaXRUeXBlcyhjb250ZXh0KTtcbiAgICBjb2RlLmNsb3NlRmlsZSh0aGlzLmZpbGUpO1xuXG4gICAgdGhpcy5yZWFkbWVGaWxlPy5lbWl0KGNvbnRleHQpO1xuXG4gICAgdGhpcy5lbWl0R29Jbml0RnVuY3Rpb24oY29udGV4dCk7XG4gICAgdGhpcy5lbWl0U3VibW9kdWxlcyhjb250ZXh0KTtcblxuICAgIHRoaXMuZW1pdEludGVybmFsKGNvbnRleHQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRTdWJtb2R1bGVzKGNvbnRleHQ6IEVtaXRDb250ZXh0KSB7XG4gICAgZm9yIChjb25zdCBzdWJtb2R1bGUgb2YgdGhpcy5zdWJtb2R1bGVzKSB7XG4gICAgICBzdWJtb2R1bGUuZW1pdChjb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBgdHlwZWAgY29tZXMgZnJvbSBhIGZvcmVpZ24gcGFja2FnZS5cbiAgICovXG4gIHB1YmxpYyBpc0V4dGVybmFsVHlwZSh0eXBlOiBHb0NsYXNzIHwgR29JbnRlcmZhY2UpIHtcbiAgICByZXR1cm4gdHlwZS5wa2cgIT09IHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgZW1iZWQgZmllbGQgdXNlZCB0byBlbWJlZCBhIGJhc2UgY2xhc3MvaW50ZXJmYWNlIGluIGFcbiAgICogc3RydWN0LlxuICAgKlxuICAgKiBAcmV0dXJucyBJZiB0aGUgYmFzZSBpcyBpbiB0aGUgc2FtZSBwYWNrYWdlLCByZXR1cm5zIHRoZSBwcm94eSBuYW1lIG9mIHRoZVxuICAgKiBiYXNlIHVuZGVyIGBlbWJlZGAsIG90aGVyd2lzZSByZXR1cm5zIGEgdW5pcXVlIHN5bWJvbCB1bmRlciBgZW1iZWRgIGFuZCB0aGVcbiAgICogb3JpZ2luYWwgaW50ZXJmYWNlIHJlZmVyZW5jZSB1bmRlciBgb3JpZ2luYWxgLlxuICAgKlxuICAgKiBAcGFyYW0gdHlwZSBUaGUgYmFzZSB0eXBlIHdlIHdhbnQgdG8gZW1iZWRcbiAgICovXG4gIHB1YmxpYyByZXNvbHZlRW1iZWRkZWRUeXBlKHR5cGU6IEdvQ2xhc3MgfCBHb0ludGVyZmFjZSk6IEVtYmVkZGVkVHlwZSB7XG4gICAgaWYgKCF0aGlzLmlzRXh0ZXJuYWxUeXBlKHR5cGUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbWJlZDogdHlwZS5wcm94eU5hbWUsXG4gICAgICAgIGZpZWxkTmFtZTogdHlwZS5wcm94eU5hbWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMuZW1iZWRkZWRUeXBlcy5nZXQodHlwZS5mcW4pO1xuICAgIGlmIChleGlzdHMpIHtcbiAgICAgIHJldHVybiBleGlzdHM7XG4gICAgfVxuXG4gICAgY29uc3QgdHlwZXJlZiA9IG5ldyBHb1R5cGVSZWYodGhpcy5yb290LCB0eXBlLnR5cGUucmVmZXJlbmNlKTtcbiAgICBjb25zdCBvcmlnaW5hbCA9IHR5cGVyZWYuc2NvcGVkTmFtZSh0aGlzKTtcblxuICAgIGNvbnN0IHNsdWcgPSBvcmlnaW5hbC5yZXBsYWNlKC9bXkEtWmEtejAtOV0vZywgJycpO1xuICAgIGNvbnN0IGFsaWFzTmFtZSA9IGBUeXBlX18ke3NsdWd9YDtcblxuICAgIGNvbnN0IGVtYmVkZGVkVHlwZTogRW1iZWRkZWRUeXBlID0ge1xuICAgICAgZm9yaWVnblR5cGVOYW1lOiBvcmlnaW5hbCxcbiAgICAgIGZvcmllZ25UeXBlOiB0eXBlcmVmLFxuICAgICAgZmllbGROYW1lOiBhbGlhc05hbWUsXG4gICAgICBlbWJlZDogYCR7SU5URVJOQUxfUEFDS0FHRV9OQU1FfS4ke2FsaWFzTmFtZX1gLFxuICAgIH07XG4gICAgdGhpcy5lbWJlZGRlZFR5cGVzLnNldCh0eXBlLmZxbiwgZW1iZWRkZWRUeXBlKTtcblxuICAgIHJldHVybiBlbWJlZGRlZFR5cGU7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW1pdEhlYWRlcihjb2RlOiBDb2RlTWFrZXIpIHtcbiAgICBjb2RlLmxpbmUoYHBhY2thZ2UgJHt0aGlzLnBhY2thZ2VOYW1lfWApO1xuICAgIGNvZGUubGluZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBzcGVjaWFsRGVwZW5kZW5jaWVzKCk6IFNwZWNpYWxEZXBlbmRlbmNpZXMge1xuICAgIHJldHVybiB0aGlzLnR5cGVzXG4gICAgICAubWFwKCh0KSA9PiB0LnNwZWNpYWxEZXBlbmRlbmNpZXMpXG4gICAgICAucmVkdWNlKFxuICAgICAgICAoYWNjLCBlbHQpID0+ICh7XG4gICAgICAgICAgcnVudGltZTogYWNjLnJ1bnRpbWUgfHwgZWx0LnJ1bnRpbWUsXG4gICAgICAgICAgaW5pdDogYWNjLmluaXQgfHwgZWx0LmluaXQsXG4gICAgICAgICAgaW50ZXJuYWw6IGFjYy5pbnRlcm5hbCB8fCBlbHQuaW50ZXJuYWwsXG4gICAgICAgICAgdGltZTogYWNjLnRpbWUgfHwgZWx0LnRpbWUsXG4gICAgICAgIH0pLFxuICAgICAgICB7IHJ1bnRpbWU6IGZhbHNlLCBpbml0OiBmYWxzZSwgaW50ZXJuYWw6IGZhbHNlLCB0aW1lOiBmYWxzZSB9LFxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhIGBmdW5jIGluaXQoKSB7IC4uLiB9YCBpbiBhIGRlZGljYXRlZCBmaWxlIChzbyB3ZSBkb24ndCBoYXZlIHRvXG4gICAqIHdvcnJ5IGFib3V0IHdoYXQgbmVlZHMgdG8gYmUgaW1wb3J0ZWQgYW5kIHdoYXRub3QpLiBUaGlzIGZ1bmN0aW9uIGlzXG4gICAqIHJlc3BvbnNpYmxlIGZvciBjb3JyZWN0bHkgaW5pdGlhbGl6aW5nIHRoZSBtb2R1bGUsIGluY2x1ZGluZyByZWdpc3RlcmluZ1xuICAgKiB0aGUgZGVjbGFyZWQgdHlwZXMgd2l0aCB0aGUganNpaSBydW50aW1lIGZvciBnby5cbiAgICovXG4gIHByaXZhdGUgZW1pdEdvSW5pdEZ1bmN0aW9uKHsgY29kZSB9OiBFbWl0Q29udGV4dCk6IHZvaWQge1xuICAgIC8vIFdlIGRvbid0IGVtaXQgYW55dGhpbmcgaWYgdGhlcmUgYXJlIG5vdCB0eXBlcyBpbiB0aGlzIChzdWIpbW9kdWxlLiBUaGlzXG4gICAgLy8gYXZvaWRzIHJlZ2lzdGVyaW5nIGFuIGBpbml0YCBmdW5jdGlvbiB0aGF0IGRvZXMgbm90aGluZywgd2hpY2ggaXMgcG9vclxuICAgIC8vIGZvcm0uIEl0IGFsc28gc2F2ZXMgdXMgZnJvbSBcImltcG9ydGVkIGJ1dCB1bnVzZWRcIiBlcnJvcnMgdGhhdCB3b3VsZCBhcmlzZVxuICAgIC8vIGFzIGEgY29uc2VxdWVuY2UuXG4gICAgaWYgKHRoaXMudHlwZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgaW5pdEZpbGUgPSBqb2luKFxuICAgICAgICBkaXJuYW1lKHRoaXMuZmlsZSksXG4gICAgICAgIGAke2Jhc2VuYW1lKHRoaXMuZmlsZSwgJy5nbycpfS5pbml0LmdvYCxcbiAgICAgICk7XG4gICAgICBjb2RlLm9wZW5GaWxlKGluaXRGaWxlKTtcbiAgICAgIGNvZGUubGluZShgcGFja2FnZSAke3RoaXMucGFja2FnZU5hbWV9YCk7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGltcG9ydEdvTW9kdWxlcyhjb2RlLCBbR09fUkVGTEVDVCwgSlNJSV9SVF9NT0RVTEVdKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgICAgY29kZS5vcGVuQmxvY2soJ2Z1bmMgaW5pdCgpJyk7XG4gICAgICBmb3IgKGNvbnN0IHR5cGUgb2YgdGhpcy50eXBlcykge1xuICAgICAgICB0eXBlLmVtaXRSZWdpc3RyYXRpb24oY29kZSk7XG4gICAgICB9XG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICAgIGNvZGUuY2xvc2VGaWxlKGluaXRGaWxlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVtaXRJbXBvcnRzKGNvZGU6IENvZGVNYWtlcikge1xuICAgIGNvbnN0IHRvSW1wb3J0ID0gbmV3IEFycmF5PEltcG9ydGVkTW9kdWxlPigpO1xuXG4gICAgY29uc3Qgc3BlY2lhbERlcHMgPSB0aGlzLnNwZWNpYWxEZXBlbmRlbmNpZXM7XG5cbiAgICBpZiAoc3BlY2lhbERlcHMudGltZSkge1xuICAgICAgdG9JbXBvcnQucHVzaCh7IG1vZHVsZTogJ3RpbWUnIH0pO1xuICAgIH1cblxuICAgIGlmIChzcGVjaWFsRGVwcy5ydW50aW1lKSB7XG4gICAgICB0b0ltcG9ydC5wdXNoKEpTSUlfUlRfTU9EVUxFKTtcbiAgICB9XG5cbiAgICBpZiAoc3BlY2lhbERlcHMuaW5pdCkge1xuICAgICAgdG9JbXBvcnQucHVzaCh7XG4gICAgICAgIGFsaWFzOiBKU0lJX0lOSVRfQUxJQVMsXG4gICAgICAgIG1vZHVsZTogYCR7dGhpcy5yb290LmdvTW9kdWxlTmFtZX0vJHtKU0lJX0lOSVRfUEFDS0FHRX1gLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHNwZWNpYWxEZXBzLmludGVybmFsKSB7XG4gICAgICB0b0ltcG9ydC5wdXNoKHtcbiAgICAgICAgbW9kdWxlOiBgJHt0aGlzLmdvTW9kdWxlTmFtZX0vJHtJTlRFUk5BTF9QQUNLQUdFX05BTUV9YCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcGFja2FnZU5hbWUgb2YgdGhpcy5kZXBlbmRlbmN5SW1wb3J0cykge1xuICAgICAgLy8gSWYgdGhlIG1vZHVsZSBpcyB0aGUgc2FtZSBhcyB0aGUgY3VycmVudCBvbmUgYmVpbmcgd3JpdHRlbiwgZG9uJ3QgZW1pdCBhbiBpbXBvcnQgc3RhdGVtZW50XG4gICAgICBpZiAocGFja2FnZU5hbWUgIT09IHRoaXMucGFja2FnZU5hbWUpIHtcbiAgICAgICAgdG9JbXBvcnQucHVzaCh7IG1vZHVsZTogcGFja2FnZU5hbWUgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1wb3J0R29Nb2R1bGVzKGNvZGUsIHRvSW1wb3J0KTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFR5cGVzKGNvbnRleHQ6IEVtaXRDb250ZXh0KSB7XG4gICAgZm9yIChjb25zdCB0eXBlIG9mIHRoaXMudHlwZXMpIHtcbiAgICAgIHR5cGUuZW1pdChjb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVtaXRJbnRlcm5hbChjb250ZXh0OiBFbWl0Q29udGV4dCkge1xuICAgIGlmICh0aGlzLmVtYmVkZGVkVHlwZXMuc2l6ZSA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvZGUgPSBjb250ZXh0LmNvZGU7XG5cbiAgICBjb25zdCBmaWxlTmFtZSA9IGpvaW4odGhpcy5kaXJlY3RvcnksIElOVEVSTkFMX1BBQ0tBR0VfTkFNRSwgJ3R5cGVzLmdvJyk7XG4gICAgY29kZS5vcGVuRmlsZShmaWxlTmFtZSk7XG5cbiAgICBjb2RlLmxpbmUoYHBhY2thZ2UgJHtJTlRFUk5BTF9QQUNLQUdFX05BTUV9YCk7XG5cbiAgICBjb25zdCBpbXBvcnRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIHRoaXMuZW1iZWRkZWRUeXBlcy52YWx1ZXMoKSkge1xuICAgICAgaWYgKCFhbGlhcy5mb3JpZWduVHlwZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBwa2cgb2YgYWxpYXMuZm9yaWVnblR5cGUuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIGltcG9ydHMuYWRkKHBrZy5nb01vZHVsZU5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvZGUub3BlbignaW1wb3J0ICgnKTtcbiAgICBmb3IgKGNvbnN0IGltcHJ0IG9mIGltcG9ydHMpIHtcbiAgICAgIGNvZGUubGluZShgXCIke2ltcHJ0fVwiYCk7XG4gICAgfVxuICAgIGNvZGUuY2xvc2UoJyknKTtcblxuICAgIGZvciAoY29uc3QgYWxpYXMgb2YgdGhpcy5lbWJlZGRlZFR5cGVzLnZhbHVlcygpKSB7XG4gICAgICBjb2RlLmxpbmUoYHR5cGUgJHthbGlhcy5maWVsZE5hbWV9ID0gJHthbGlhcy5mb3JpZWduVHlwZU5hbWV9YCk7XG4gICAgfVxuXG4gICAgY29kZS5jbG9zZUZpbGUoZmlsZU5hbWUpO1xuICB9XG59XG5cbi8qXG4gKiBSb290UGFja2FnZSBjb3JyZXNwb25kcyB0byBKU0lJIG1vZHVsZS5cbiAqXG4gKiBFeHRlbmRzIGBQYWNrYWdlYCBmb3Igcm9vdCBzb3VyY2UgcGFja2FnZSBlbWl0IGxvZ2ljXG4gKi9cbmV4cG9ydCBjbGFzcyBSb290UGFja2FnZSBleHRlbmRzIFBhY2thZ2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZW1ibHk6IEFzc2VtYmx5O1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHZlcnNpb25GaWxlOiBWZXJzaW9uRmlsZTtcblxuICAvLyBUaGlzIGNhY2hlIG9mIHJvb3QgcGFja2FnZXMgaXMgc2hhcmVkIGFjcm9zcyBhbGwgcm9vdCBwYWNrYWdlcyBkZXJpdmVkIGNyZWF0ZWQgYnkgdGhpcyBvbmUgKHZpYSBkZXBlbmRlbmNpZXMpLlxuICBwcml2YXRlIHJlYWRvbmx5IHJvb3RQYWNrYWdlQ2FjaGU6IE1hcDxzdHJpbmcsIFJvb3RQYWNrYWdlPjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgYXNzZW1ibHk6IEFzc2VtYmx5LFxuICAgIHJvb3RQYWNrYWdlQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgUm9vdFBhY2thZ2U+KCksXG4gICkge1xuICAgIGNvbnN0IGdvQ29uZmlnID0gYXNzZW1ibHkudGFyZ2V0cz8uZ28gPz8ge307XG4gICAgY29uc3QgcGFja2FnZU5hbWUgPSBnb1BhY2thZ2VOYW1lRm9yQXNzZW1ibHkoYXNzZW1ibHkpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gJyc7XG4gICAgY29uc3QgbW9kdWxlTmFtZSA9IGdvQ29uZmlnLm1vZHVsZU5hbWUgPz8gJyc7XG4gICAgY29uc3QgdmVyc2lvbiA9IGAke2Fzc2VtYmx5LnZlcnNpb259JHtnb0NvbmZpZy52ZXJzaW9uU3VmZml4ID8/ICcnfWA7XG5cbiAgICBzdXBlcihhc3NlbWJseSwgcGFja2FnZU5hbWUsIGZpbGVQYXRoLCBtb2R1bGVOYW1lLCB2ZXJzaW9uKTtcblxuICAgIHRoaXMucm9vdFBhY2thZ2VDYWNoZSA9IHJvb3RQYWNrYWdlQ2FjaGU7XG4gICAgdGhpcy5yb290UGFja2FnZUNhY2hlLnNldChhc3NlbWJseS5uYW1lLCB0aGlzKTtcblxuICAgIHRoaXMuYXNzZW1ibHkgPSBhc3NlbWJseTtcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIHRoaXMudmVyc2lvbkZpbGUgPSBuZXcgVmVyc2lvbkZpbGUodGhpcy52ZXJzaW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0KGNvbnRleHQ6IEVtaXRDb250ZXh0KTogdm9pZCB7XG4gICAgc3VwZXIuZW1pdChjb250ZXh0KTtcbiAgICB0aGlzLmVtaXRKc2lpUGFja2FnZShjb250ZXh0KTtcblxuICAgIHRoaXMuZW1pdEdvbW9kKGNvbnRleHQuY29kZSk7XG4gICAgdGhpcy52ZXJzaW9uRmlsZS5lbWl0KGNvbnRleHQuY29kZSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRHb21vZChjb2RlOiBDb2RlTWFrZXIpIHtcbiAgICBjb2RlLm9wZW5GaWxlKEdPTU9EX0ZJTEVOQU1FKTtcbiAgICBjb2RlLmxpbmUoYG1vZHVsZSAke3RoaXMuZ29Nb2R1bGVOYW1lfWApO1xuICAgIGNvZGUubGluZSgpO1xuICAgIGNvZGUubGluZShgZ28gJHtHT19WRVJTSU9OfWApO1xuICAgIGNvZGUubGluZSgpO1xuICAgIGNvZGUub3BlbigncmVxdWlyZSAoJyk7XG4gICAgLy8gU3RyaXAgXCIgKGJ1aWxkIGFiY2RlZilcIiBmcm9tIHRoZSBqc2lpIHZlcnNpb25cbiAgICBjb2RlLmxpbmUoYCR7SlNJSV9SVF9NT0RVTEVfTkFNRX0gdiR7VkVSU0lPTn1gKTtcbiAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSB0aGlzLnBhY2thZ2VEZXBlbmRlbmNpZXM7XG4gICAgZm9yIChjb25zdCBkZXAgb2YgZGVwZW5kZW5jaWVzKSB7XG4gICAgICBjb2RlLmxpbmUoYCR7ZGVwLmdvTW9kdWxlTmFtZX0gdiR7ZGVwLnZlcnNpb259YCk7XG4gICAgfVxuICAgIGluZGlyZWN0RGVwZW5kZW5jaWVzKFxuICAgICAgZGVwZW5kZW5jaWVzLFxuICAgICAgbmV3IFNldChkZXBlbmRlbmNpZXMubWFwKChkZXApID0+IGRlcC5nb01vZHVsZU5hbWUpKSxcbiAgICApO1xuICAgIGNvZGUuY2xvc2UoJyknKTtcbiAgICBjb2RlLmNsb3NlRmlsZShHT01PRF9GSUxFTkFNRSk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBpbmRpcmVjdCBkZXBlbmRlbmN5IGRlY2xhcmF0aW9ucywgd2hpY2ggYXJlIGhlbHBmdWwgdG8gbWFrZSBJREVzIGF0XG4gICAgICogZWFzZSB3aXRoIHRoZSBjb2RlYmFzZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbmRpcmVjdERlcGVuZGVuY2llcyhcbiAgICAgIHBrZ3M6IFJvb3RQYWNrYWdlW10sXG4gICAgICBhbHJlYWR5RW1pdHRlZDogU2V0PHN0cmluZz4sXG4gICAgKTogdm9pZCB7XG4gICAgICBmb3IgKGNvbnN0IHBrZyBvZiBwa2dzKSB7XG4gICAgICAgIGNvbnN0IGRlcHMgPSBwa2cucGFja2FnZURlcGVuZGVuY2llcztcbiAgICAgICAgZm9yIChjb25zdCBkZXAgb2YgZGVwcykge1xuICAgICAgICAgIGlmIChhbHJlYWR5RW1pdHRlZC5oYXMoZGVwLmdvTW9kdWxlTmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhbHJlYWR5RW1pdHRlZC5hZGQoZGVwLmdvTW9kdWxlTmFtZSk7XG4gICAgICAgICAgY29kZS5saW5lKGAke2RlcC5nb01vZHVsZU5hbWV9IHYke2RlcC52ZXJzaW9ufSAvLyBpbmRpcmVjdGApO1xuICAgICAgICB9XG4gICAgICAgIGluZGlyZWN0RGVwZW5kZW5jaWVzKGRlcHMsIGFscmVhZHlFbWl0dGVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKlxuICAgKiBPdmVycmlkZSBwYWNrYWdlIGZpbmRUeXBlIGZvciByb290IFBhY2thZ2UuXG4gICAqXG4gICAqIFRoaXMgYWxsb3dzIHJlc29sdmluZyB0eXBlIHJlZmVyZW5jZXMgZnJvbSBvdGhlciBKU0lJIG1vZHVsZXNcbiAgICovXG4gIHB1YmxpYyBmaW5kVHlwZShmcW46IHN0cmluZyk6IEdvVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucGFja2FnZURlcGVuZGVuY2llcy5yZWR1Y2UoXG4gICAgICAoYWNjdW06IEdvVHlwZSB8IHVuZGVmaW5lZCwgY3VycmVudDogUm9vdFBhY2thZ2UpID0+IHtcbiAgICAgICAgaWYgKGFjY3VtKSB7XG4gICAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjdXJyZW50LmZpbmRUeXBlKGZxbik7XG4gICAgICB9LFxuICAgICAgc3VwZXIuZmluZFR5cGUoZnFuKSxcbiAgICApO1xuICB9XG5cbiAgLypcbiAgICogR2V0IGFsbCBKU0lJIG1vZHVsZSBkZXBlbmRlbmNpZXMgb2YgdGhlIHBhY2thZ2UgYmVpbmcgZ2VuZXJhdGVkXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBhY2thZ2VEZXBlbmRlbmNpZXMoKTogUm9vdFBhY2thZ2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuYXNzZW1ibHkuZGVwZW5kZW5jaWVzLm1hcChcbiAgICAgIChkZXApID0+XG4gICAgICAgIHRoaXMucm9vdFBhY2thZ2VDYWNoZS5nZXQoZGVwLmFzc2VtYmx5Lm5hbWUpID8/XG4gICAgICAgIG5ldyBSb290UGFja2FnZShkZXAuYXNzZW1ibHksIHRoaXMucm9vdFBhY2thZ2VDYWNoZSksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBlbWl0SGVhZGVyKGNvZGU6IENvZGVNYWtlcikge1xuICAgIGlmICh0aGlzLmFzc2VtYmx5LmRlc2NyaXB0aW9uICE9PSAnJykge1xuICAgICAgY29kZS5saW5lKGAvLyAke3RoaXMuYXNzZW1ibHkuZGVzY3JpcHRpb259YCk7XG4gICAgfVxuICAgIGNvZGUubGluZShgcGFja2FnZSAke3RoaXMucGFja2FnZU5hbWV9YCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRKc2lpUGFja2FnZSh7IGNvZGUgfTogRW1pdENvbnRleHQpIHtcbiAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSB0aGlzLnBhY2thZ2VEZXBlbmRlbmNpZXMuc29ydCgobCwgcikgPT5cbiAgICAgIGwubW9kdWxlTmFtZS5sb2NhbGVDb21wYXJlKHIubW9kdWxlTmFtZSksXG4gICAgKTtcblxuICAgIGNvbnN0IGZpbGUgPSBqb2luKEpTSUlfSU5JVF9QQUNLQUdFLCBgJHtKU0lJX0lOSVRfUEFDS0FHRX0uZ29gKTtcbiAgICBjb2RlLm9wZW5GaWxlKGZpbGUpO1xuICAgIGNvZGUubGluZShcbiAgICAgIGAvLyBQYWNrYWdlICR7SlNJSV9JTklUX1BBQ0tBR0V9IGNvbnRhaW5zIHRoZSBmdW5jdGlvbmFpbGl0eSBuZWVkZWQgZm9yIGpzaWkgcGFja2FnZXMgdG9gLFxuICAgICk7XG4gICAgY29kZS5saW5lKFxuICAgICAgJy8vIGluaXRpYWxpemUgdGhlaXIgZGVwZW5kZW5jaWVzIGFuZCB0aGVtc2VsdmVzLiBVc2VycyBzaG91bGQgbmV2ZXIgbmVlZCB0byB1c2UgdGhpcyBwYWNrYWdlJyxcbiAgICApO1xuICAgIGNvZGUubGluZSgnLy8gZGlyZWN0bHkuIElmIHlvdSBmaW5kIHlvdSBuZWVkIHRvIC0gcGxlYXNlIHJlcG9ydCBhIGJ1ZyBhdCcpO1xuICAgIGNvZGUubGluZSgnLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9qc2lpL2lzc3Vlcy9uZXcvY2hvb3NlJyk7XG4gICAgY29kZS5saW5lKGBwYWNrYWdlICR7SlNJSV9JTklUX1BBQ0tBR0V9YCk7XG4gICAgY29kZS5saW5lKCk7XG5cbiAgICBjb25zdCB0b0ltcG9ydDogSW1wb3J0ZWRNb2R1bGVbXSA9IFtcbiAgICAgIEpTSUlfUlRfTU9EVUxFLFxuICAgICAgeyBtb2R1bGU6ICdlbWJlZCcsIGFsaWFzOiAnXycgfSxcbiAgICBdO1xuICAgIGlmIChkZXBlbmRlbmNpZXMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBwa2cgb2YgZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIHRvSW1wb3J0LnB1c2goe1xuICAgICAgICAgIGFsaWFzOiBwa2cucGFja2FnZU5hbWUsXG4gICAgICAgICAgbW9kdWxlOiBgJHtwa2cucm9vdC5nb01vZHVsZU5hbWV9LyR7SlNJSV9JTklUX1BBQ0tBR0V9YCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGltcG9ydEdvTW9kdWxlcyhjb2RlLCB0b0ltcG9ydCk7XG5cbiAgICBjb2RlLmxpbmUoKTtcbiAgICBjb2RlLmxpbmUoYC8vZ286ZW1iZWQgJHt0YXJiYWxsTmFtZSh0aGlzLmFzc2VtYmx5KX1gKTtcbiAgICBjb2RlLmxpbmUoJ3ZhciB0YXJiYWxsIFtdYnl0ZScpO1xuICAgIGNvZGUubGluZSgpO1xuXG4gICAgY29kZS5saW5lKFxuICAgICAgYC8vICR7SlNJSV9JTklUX0ZVTkN9IGxvYWRzIHRoZSBuZWNlc3NhcnkgcGFja2FnZXMgaW4gdGhlIEBqc2lpL2tlcm5lbCB0byBzdXBwb3J0IHRoZSBlbmNsb3NpbmcgbW9kdWxlLmAsXG4gICAgKTtcbiAgICBjb2RlLmxpbmUoXG4gICAgICAnLy8gVGhlIGltcGxlbWVudGF0aW9uIGlzIGlkZW1wb3RlbnQgKGFuZCBoZW5jZSBzYWZlIHRvIGJlIGNhbGxlZCBvdmVyIGFuZCBvdmVyKS4nLFxuICAgICk7XG4gICAgY29kZS5vcGVuKGBmdW5jICR7SlNJSV9JTklUX0ZVTkN9KCkge2ApO1xuICAgIGlmIChkZXBlbmRlbmNpZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29kZS5saW5lKCcvLyBFbnN1cmUgYWxsIGRlcGVuZGVuY2llcyBhcmUgaW5pdGlhbGl6ZWQnKTtcbiAgICAgIGZvciAoY29uc3QgcGtnIG9mIHRoaXMucGFja2FnZURlcGVuZGVuY2llcykge1xuICAgICAgICBjb2RlLmxpbmUoYCR7cGtnLnBhY2thZ2VOYW1lfS4ke0pTSUlfSU5JVF9GVU5DfSgpYCk7XG4gICAgICB9XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICB9XG4gICAgY29kZS5saW5lKCcvLyBMb2FkIHRoaXMgbGlicmFyeSBpbnRvIHRoZSBrZXJuZWwnKTtcbiAgICBjb2RlLmxpbmUoXG4gICAgICBgJHtKU0lJX1JUX0FMSUFTfS5Mb2FkKFwiJHt0aGlzLmFzc2VtYmx5Lm5hbWV9XCIsIFwiJHt0aGlzLmFzc2VtYmx5LnZlcnNpb259XCIsIHRhcmJhbGwpYCxcbiAgICApO1xuICAgIGNvZGUuY2xvc2UoJ30nKTtcblxuICAgIGNvZGUuY2xvc2VGaWxlKGZpbGUpO1xuICB9XG59XG5cbi8qXG4gKiBJbnRlcm5hbFBhY2thZ2UgcmVmZXJzIHRvIGFueSBnbyBwYWNrYWdlIHdpdGhpbiBhIGdpdmVuIEpTSUkgbW9kdWxlLlxuICovXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxQYWNrYWdlIGV4dGVuZHMgUGFja2FnZSB7XG4gIHB1YmxpYyByZWFkb25seSBwYXJlbnQ6IFBhY2thZ2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHJvb3Q6IFBhY2thZ2UsIHBhcmVudDogUGFja2FnZSwgYXNzZW1ibHk6IEpzaWlTdWJtb2R1bGUpIHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IGdvUGFja2FnZU5hbWVGb3JBc3NlbWJseShhc3NlbWJseSk7XG4gICAgY29uc3QgZmlsZVBhdGggPVxuICAgICAgcGFyZW50ID09PSByb290ID8gcGFja2FnZU5hbWUgOiBgJHtwYXJlbnQuZmlsZVBhdGh9LyR7cGFja2FnZU5hbWV9YDtcblxuICAgIHN1cGVyKGFzc2VtYmx5LCBwYWNrYWdlTmFtZSwgZmlsZVBhdGgsIHJvb3QubW9kdWxlTmFtZSwgcm9vdC52ZXJzaW9uLCByb290KTtcblxuICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICB9XG59XG5cbi8qKlxuICogR28gcmVxdWlyZXMgdGhhdCB3aGVuIGEgbW9kdWxlIG1ham9yIHZlcnNpb24gaXMgdjIuMCBhbmQgYWJvdmUsIHRoZSBtb2R1bGVcbiAqIG5hbWUgd2lsbCBoYXZlIGEgYC92Tk5gIHN1ZmZpeCAod2hlcmUgYE5OYCBpcyB0aGUgbWFqb3IgdmVyc2lvbikuXG4gKlxuICogPiBTdGFydGluZyB3aXRoIG1ham9yIHZlcnNpb24gMiwgbW9kdWxlIHBhdGhzIG11c3QgaGF2ZSBhIG1ham9yIHZlcnNpb25cbiAqID4gc3VmZml4IGxpa2UgL3YyIHRoYXQgbWF0Y2hlcyB0aGUgbWFqb3IgdmVyc2lvbi4gRm9yIGV4YW1wbGUsIGlmIGEgbW9kdWxlXG4gKiA+IGhhcyB0aGUgcGF0aCBleGFtcGxlLmNvbS9tb2QgYXQgdjEuMC4wLCBpdCBtdXN0IGhhdmUgdGhlIHBhdGhcbiAqID4gZXhhbXBsZS5jb20vbW9kL3YyIGF0IHZlcnNpb24gdjIuMC4wLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9nb2xhbmcub3JnL3JlZi9tb2QjbWFqb3ItdmVyc2lvbi1zdWZmaXhlc1xuICogQHBhcmFtIHZlcnNpb24gVGhlIG1vZHVsZSB2ZXJzaW9uIChlLmcuIGAyLjMuMGApXG4gKiBAcmV0dXJucyBhIHN1ZmZpeCB0byBhcHBlbmQgdG8gdGhlIG1vZHVsZSBuYW1lIGluIHRoZSBmb3JtIChgL3ZOTmApLiBJZiB0aGVcbiAqIG1vZHVsZSB2ZXJzaW9uIGlzIGAwLnhgIG9yIGAxLnhgLCByZXR1cm5zIGFuIGVtcHR5IHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gZGV0ZXJtaW5lTWFqb3JWZXJzaW9uU3VmZml4KHZlcnNpb246IHN0cmluZykge1xuICBjb25zdCBzdiA9IHNlbXZlci5wYXJzZSh2ZXJzaW9uKTtcbiAgaWYgKCFzdikge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBVbmFibGUgdG8gcGFyc2UgdmVyc2lvbiBcIiR7dmVyc2lvbn1cIiBhcyBhIHNlbWFudGljIHZlcnNpb25gLFxuICAgICk7XG4gIH1cblxuICAvLyBzdWZmaXggaXMgb25seSBuZWVkZWQgZm9yIDIuMCBhbmQgYWJvdmVcbiAgaWYgKHN2Lm1ham9yIDw9IDEpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICByZXR1cm4gYC92JHtzdi5tYWpvcn1gO1xufVxuXG5pbnRlcmZhY2UgSW1wb3J0ZWRNb2R1bGUge1xuICByZWFkb25seSBhbGlhcz86IHN0cmluZztcbiAgcmVhZG9ubHkgbW9kdWxlOiBzdHJpbmc7XG59XG5cbmNvbnN0IEpTSUlfUlRfTU9EVUxFOiBJbXBvcnRlZE1vZHVsZSA9IHtcbiAgYWxpYXM6IEpTSUlfUlRfQUxJQVMsXG4gIG1vZHVsZTogSlNJSV9SVF9QQUNLQUdFX05BTUUsXG59O1xuY29uc3QgR09fUkVGTEVDVDogSW1wb3J0ZWRNb2R1bGUgPSB7IG1vZHVsZTogJ3JlZmxlY3QnIH07XG5cbmZ1bmN0aW9uIGltcG9ydEdvTW9kdWxlcyhjb2RlOiBDb2RlTWFrZXIsIG1vZHVsZXM6IHJlYWRvbmx5IEltcG9ydGVkTW9kdWxlW10pIHtcbiAgaWYgKG1vZHVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYWxpYXNTaXplID0gTWF0aC5tYXgoLi4ubW9kdWxlcy5tYXAoKG1vZCkgPT4gbW9kLmFsaWFzPy5sZW5ndGggPz8gMCkpO1xuICBjb2RlLm9wZW4oJ2ltcG9ydCAoJyk7XG4gIGNvbnN0IHNvcnRlZE1vZHVsZXMgPSBBcnJheS5mcm9tKG1vZHVsZXMpLnNvcnQoY29tcGFyZUltcG9ydGVkTW9kdWxlcyk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc29ydGVkTW9kdWxlcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IG1vZCA9IHNvcnRlZE1vZHVsZXNbaV07XG4gICAgLy8gU2VwYXJhdGUgbW9kdWxlIGNhdGVnb3JpZXMgZnJvbSBlYWNoIG90aGVyIG1vZHVsZXMgd2l0aCBhIGJsYW5rIGxpbmUuXG4gICAgaWYgKFxuICAgICAgaSA+IDAgJiZcbiAgICAgIChpc0J1aWx0SW4obW9kKSAhPT0gaXNCdWlsdEluKHNvcnRlZE1vZHVsZXNbaSAtIDFdKSB8fFxuICAgICAgICBpc1NwZWNpYWwobW9kKSAhPT0gaXNTcGVjaWFsKHNvcnRlZE1vZHVsZXNbaSAtIDFdKSlcbiAgICApIHtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgIH1cbiAgICBpZiAobW9kLmFsaWFzKSB7XG4gICAgICBjb2RlLmxpbmUoYCR7bW9kLmFsaWFzLnBhZEVuZChhbGlhc1NpemUsICcgJyl9IFwiJHttb2QubW9kdWxlfVwiYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvZGUubGluZShgXCIke21vZC5tb2R1bGV9XCJgKTtcbiAgICB9XG4gIH1cbiAgY29kZS5jbG9zZSgnKScpO1xuXG4gIC8qKlxuICAgKiBBIGNvbXBhcmF0b3IgZm9yIGBJbXBvcnRlZE1vZHVsZWAgaW5zdGFuY2VzIHN1Y2ggdGhhdCBidWlsdC1pbiBtb2R1bGVzXG4gICAqIGFsd2F5cyBhcHBlYXIgZmlyc3QsIGZvbGxvd2VkIGJ5IHRoZSByZXN0LiBUaGVuIHdpdGhpbiB0aGVzZSB0d28gZ3JvdXBzLFxuICAgKiBhbGlhc2VkIGltcG9ydHMgYXBwZWFyIGZpcnN0LCBmb2xsb3dlZCBieSB0aGUgcmVzdC5cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBhcmVJbXBvcnRlZE1vZHVsZXMoXG4gICAgbDogSW1wb3J0ZWRNb2R1bGUsXG4gICAgcjogSW1wb3J0ZWRNb2R1bGUsXG4gICk6IG51bWJlciB7XG4gICAgY29uc3QgbEJ1aWx0SW4gPSBpc0J1aWx0SW4obCk7XG4gICAgY29uc3QgckJ1aWx0SW4gPSBpc0J1aWx0SW4ocik7XG4gICAgaWYgKGxCdWlsdEluICYmICFyQnVpbHRJbikge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBpZiAoIWxCdWlsdEluICYmIHJCdWlsdEluKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICBjb25zdCBsU3BlY2lhbCA9IGlzU3BlY2lhbChsKTtcbiAgICBjb25zdCByU3BlY2lhbCA9IGlzU3BlY2lhbChyKTtcbiAgICBpZiAobFNwZWNpYWwgJiYgIXJTcGVjaWFsKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICAgIGlmICghbFNwZWNpYWwgJiYgclNwZWNpYWwpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIHJldHVybiBsLm1vZHVsZS5sb2NhbGVDb21wYXJlKHIubW9kdWxlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzQnVpbHRJbihtb2Q6IEltcG9ydGVkTW9kdWxlKTogYm9vbGVhbiB7XG4gICAgLy8gU3RhbmRhcmQgbGlicmFyeSBtb2R1bGVzIGRvbid0IGhhdmUgYW55IFwiLlwiIGluIHRoZWlyIHBhdGgsIHdoZXJlYXMgYW55XG4gICAgLy8gb3RoZXIgbW9kdWxlIGhhcyBhIEROUyBwb3J0aW9uIGluIHRoZW0sIHdoaWNoIG11c3QgaW5jbHVkZSBhIFwiLlwiLlxuICAgIHJldHVybiAhbW9kLm1vZHVsZS5pbmNsdWRlcygnLicpO1xuICB9XG5cbiAgZnVuY3Rpb24gaXNTcGVjaWFsKG1vZDogSW1wb3J0ZWRNb2R1bGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbW9kLmFsaWFzID09PSBKU0lJX1JUX0FMSUFTIHx8IG1vZC5hbGlhcyA9PT0gSlNJSV9JTklUX0FMSUFTO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBlbWJlZGRlZCBHbyB0eXBlLlxuICovXG5pbnRlcmZhY2UgRW1iZWRkZWRUeXBlIHtcbiAgLyoqXG4gICAqIFRoZSBmaWVsZCBuYW1lIGZvciB0aGUgZW1iZWRkZWQgdHlwZS5cbiAgICovXG4gIHJlYWRvbmx5IGZpZWxkTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZW1iZWRkZWQgdHlwZSBuYW1lIHRvIHVzZS4gQ291bGQgYmUgZWl0aGVyIGEgc3RydWN0IHByb3h5IChpZiB0aGUgYmFzZVxuICAgKiB0eXBlIGlzIGluIHRoZSBzYW1lIHBhY2thZ2UpIG9yIGFuIGludGVybmFsIGFsaWFzIGZvciBhIGZvcmllZ24gdHlwZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgZW1iZWQ6IHN0cmluZztcblxuICAvKipcbiAgICogUmVmZXJuY2UgdG8gdGhlIGZvcmVpZ24gdHlwZSAoaWYgdGhpcyBpcyBhIGZvcmllZ24gdHlwZSlcbiAgICovXG4gIHJlYWRvbmx5IGZvcmllZ25UeXBlPzogR29UeXBlUmVmO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZm9yaWVnbiB0eXBlLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9yaWVnblR5cGVOYW1lPzogc3RyaW5nO1xufVxuIl19
471
+ //# sourceMappingURL=package.js.map