ts2famix 2.1.0-beta.2 → 3.0.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 (192) hide show
  1. package/.eslintrc.json +24 -24
  2. package/LICENSE +24 -24
  3. package/README.md +78 -78
  4. package/dist/analyze.js +3 -3
  5. package/dist/analyze_functions/process_functions.js +92 -62
  6. package/dist/famix_functions/EntityDictionary.js +672 -597
  7. package/dist/famix_functions/helpers_creation.js +18 -12
  8. package/dist/fqn.js +351 -18
  9. package/dist/lib/famix/famix_JSON_exporter.js +1 -1
  10. package/dist/lib/famix/famix_base_element.js +1 -1
  11. package/dist/lib/famix/famix_repository.js +14 -5
  12. package/dist/lib/famix/index.js +1 -1
  13. package/dist/lib/famix/model/famix/access.js +1 -1
  14. package/dist/lib/famix/model/famix/accessor.js +1 -1
  15. package/dist/lib/famix/model/famix/alias.js +1 -1
  16. package/dist/lib/famix/model/famix/arrow_function.js +1 -1
  17. package/dist/lib/famix/model/famix/behavioral_entity.js +1 -1
  18. package/dist/lib/famix/model/famix/class.js +1 -1
  19. package/dist/lib/famix/model/famix/comment.js +1 -1
  20. package/dist/lib/famix/model/famix/concretisation.js +1 -1
  21. package/dist/lib/famix/model/famix/container_entity.js +1 -1
  22. package/dist/lib/famix/model/famix/decorator.js +1 -1
  23. package/dist/lib/famix/model/famix/entity.js +1 -1
  24. package/dist/lib/famix/model/famix/enum.js +1 -1
  25. package/dist/lib/famix/model/famix/enum_value.js +1 -1
  26. package/dist/lib/famix/model/famix/function.js +1 -1
  27. package/dist/lib/famix/model/famix/import_clause.js +1 -1
  28. package/dist/lib/famix/model/famix/index.js +1 -1
  29. package/dist/lib/famix/model/famix/indexed_file_anchor.js +1 -1
  30. package/dist/lib/famix/model/famix/inheritance.js +1 -1
  31. package/dist/lib/famix/model/famix/interface.js +1 -1
  32. package/dist/lib/famix/model/famix/invocation.js +1 -1
  33. package/dist/lib/famix/model/famix/method.js +1 -1
  34. package/dist/lib/famix/model/famix/module.js +2 -2
  35. package/dist/lib/famix/model/famix/named_entity.js +1 -1
  36. package/dist/lib/famix/model/famix/parameter.js +1 -1
  37. package/dist/lib/famix/model/famix/parameter_concretisation.js +1 -1
  38. package/dist/lib/famix/model/famix/parameter_type.js +1 -1
  39. package/dist/lib/famix/model/famix/parametric_arrow_function.js +1 -1
  40. package/dist/lib/famix/model/famix/parametric_class.js +1 -1
  41. package/dist/lib/famix/model/famix/parametric_function.js +1 -1
  42. package/dist/lib/famix/model/famix/parametric_interface.js +1 -1
  43. package/dist/lib/famix/model/famix/parametric_method.js +1 -1
  44. package/dist/lib/famix/model/famix/primitive_type.js +1 -1
  45. package/dist/lib/famix/model/famix/property.js +1 -1
  46. package/dist/lib/famix/model/famix/reference.js +1 -1
  47. package/dist/lib/famix/model/famix/scoping_entity.js +1 -1
  48. package/dist/lib/famix/model/famix/script_entity.js +1 -1
  49. package/dist/lib/famix/model/famix/source_anchor.js +1 -1
  50. package/dist/lib/famix/model/famix/source_language.js +1 -1
  51. package/dist/lib/famix/model/famix/sourced_entity.js +1 -1
  52. package/dist/lib/famix/model/famix/structural_entity.js +1 -1
  53. package/dist/lib/famix/model/famix/type.js +1 -1
  54. package/dist/lib/famix/model/famix/variable.js +1 -1
  55. package/dist/lib/ts-complex/cyclomatic-service.js +1 -1
  56. package/dist/refactorer/refactor-getter-setter.js +1 -1
  57. package/dist/ts2famix-cli-wrapper.js +1 -1
  58. package/dist/ts2famix-cli.js +1 -1
  59. package/doc-uml/famix-typescript-model.puml +619 -607
  60. package/doc-uml/famix-typescript-model.svg +1 -1
  61. package/eslint.config.mjs +28 -28
  62. package/jest.config.json +1 -1
  63. package/package.json +70 -70
  64. package/src/analyze.ts +120 -120
  65. package/src/analyze_functions/process_functions.ts +1069 -1040
  66. package/src/famix_functions/EntityDictionary.ts +2061 -2016
  67. package/src/famix_functions/helpers_creation.ts +143 -135
  68. package/src/fqn.ts +416 -50
  69. package/src/generate_uml.sh +20 -20
  70. package/src/lib/famix/License.md +22 -22
  71. package/src/lib/famix/famix_JSON_exporter.ts +56 -56
  72. package/src/lib/famix/famix_base_element.ts +22 -22
  73. package/src/lib/famix/famix_repository.ts +288 -278
  74. package/src/lib/famix/index.ts +8 -8
  75. package/src/lib/famix/model/famix/access.ts +50 -50
  76. package/src/lib/famix/model/famix/accessor.ts +15 -15
  77. package/src/lib/famix/model/famix/alias.ts +39 -39
  78. package/src/lib/famix/model/famix/arrow_function.ts +15 -15
  79. package/src/lib/famix/model/famix/behavioral_entity.ts +97 -97
  80. package/src/lib/famix/model/famix/class.ts +85 -85
  81. package/src/lib/famix/model/famix/comment.ts +47 -47
  82. package/src/lib/famix/model/famix/concretisation.ts +40 -40
  83. package/src/lib/famix/model/famix/container_entity.ts +160 -160
  84. package/src/lib/famix/model/famix/decorator.ts +37 -37
  85. package/src/lib/famix/model/famix/entity.ts +15 -15
  86. package/src/lib/famix/model/famix/enum.ts +30 -30
  87. package/src/lib/famix/model/famix/enum_value.ts +28 -28
  88. package/src/lib/famix/model/famix/function.ts +15 -15
  89. package/src/lib/famix/model/famix/import_clause.ts +51 -51
  90. package/src/lib/famix/model/famix/index.ts +41 -41
  91. package/src/lib/famix/model/famix/indexed_file_anchor.ts +46 -46
  92. package/src/lib/famix/model/famix/inheritance.ts +40 -40
  93. package/src/lib/famix/model/famix/interface.ts +75 -75
  94. package/src/lib/famix/model/famix/invocation.ts +65 -65
  95. package/src/lib/famix/model/famix/method.ts +89 -89
  96. package/src/lib/famix/model/famix/module.ts +71 -71
  97. package/src/lib/famix/model/famix/named_entity.ts +95 -95
  98. package/src/lib/famix/model/famix/parameter.ts +28 -28
  99. package/src/lib/famix/model/famix/parameter_concretisation.ts +51 -51
  100. package/src/lib/famix/model/famix/parameter_type.ts +58 -58
  101. package/src/lib/famix/model/famix/parametric_arrow_function.ts +32 -32
  102. package/src/lib/famix/model/famix/parametric_class.ts +49 -49
  103. package/src/lib/famix/model/famix/parametric_function.ts +32 -32
  104. package/src/lib/famix/model/famix/parametric_interface.ts +49 -49
  105. package/src/lib/famix/model/famix/parametric_method.ts +32 -32
  106. package/src/lib/famix/model/famix/primitive_type.ts +15 -15
  107. package/src/lib/famix/model/famix/property.ts +94 -94
  108. package/src/lib/famix/model/famix/reference.ts +40 -40
  109. package/src/lib/famix/model/famix/scoping_entity.ts +35 -35
  110. package/src/lib/famix/model/famix/script_entity.ts +34 -34
  111. package/src/lib/famix/model/famix/source_anchor.ts +30 -30
  112. package/src/lib/famix/model/famix/source_language.ts +35 -35
  113. package/src/lib/famix/model/famix/sourced_entity.ts +70 -70
  114. package/src/lib/famix/model/famix/structural_entity.ts +43 -43
  115. package/src/lib/famix/model/famix/type.ts +87 -87
  116. package/src/lib/famix/model/famix/variable.ts +27 -27
  117. package/src/lib/famix/package.json +28 -28
  118. package/src/lib/ts-complex/cyclomatic-service.ts +83 -83
  119. package/src/refactorer/refactor-getter-setter.ts +140 -140
  120. package/src/ts2famix-cli-wrapper.ts +21 -21
  121. package/src/ts2famix-cli.ts +60 -60
  122. package/tsconfig.check-tests.json +14 -14
  123. package/tsconfig.json +73 -72
  124. package/.vscode/settings.json +0 -4
  125. package/TODO +0 -1
  126. package/arwea-fix.json +0 -1
  127. package/bogus.ts +0 -3
  128. package/class-diagram.puml +0 -792
  129. package/debug.txt +0 -13332
  130. package/debuglog.txt +0 -12073
  131. package/dist/famix2puml.js +0 -126
  132. package/dist/getClasses-arrow-body.js +0 -43
  133. package/dist/lib/famix/src/famix_JSON_exporter.js +0 -55
  134. package/dist/lib/famix/src/famix_base_element.js +0 -18
  135. package/dist/lib/famix/src/famix_repository.js +0 -224
  136. package/dist/lib/famix/src/index.js +0 -31
  137. package/dist/lib/famix/src/model/famix/access.js +0 -40
  138. package/dist/lib/famix/src/model/famix/accessor.js +0 -17
  139. package/dist/lib/famix/src/model/famix/alias.js +0 -33
  140. package/dist/lib/famix/src/model/famix/arrowFunction.js +0 -17
  141. package/dist/lib/famix/src/model/famix/arrow_function.js +0 -17
  142. package/dist/lib/famix/src/model/famix/behavioral_entity.js +0 -79
  143. package/dist/lib/famix/src/model/famix/class.js +0 -71
  144. package/dist/lib/famix/src/model/famix/comment.js +0 -39
  145. package/dist/lib/famix/src/model/famix/concretisation.js +0 -31
  146. package/dist/lib/famix/src/model/famix/container_entity.js +0 -126
  147. package/dist/lib/famix/src/model/famix/decorator.js +0 -32
  148. package/dist/lib/famix/src/model/famix/entity.js +0 -17
  149. package/dist/lib/famix/src/model/famix/enum.js +0 -31
  150. package/dist/lib/famix/src/model/famix/enum_value.js +0 -25
  151. package/dist/lib/famix/src/model/famix/function.js +0 -17
  152. package/dist/lib/famix/src/model/famix/implicit_variable.js +0 -17
  153. package/dist/lib/famix/src/model/famix/import_clause.js +0 -41
  154. package/dist/lib/famix/src/model/famix/index.js +0 -86
  155. package/dist/lib/famix/src/model/famix/indexed_file_anchor.js +0 -38
  156. package/dist/lib/famix/src/model/famix/inheritance.js +0 -33
  157. package/dist/lib/famix/src/model/famix/interface.js +0 -64
  158. package/dist/lib/famix/src/model/famix/invocation.js +0 -54
  159. package/dist/lib/famix/src/model/famix/method.js +0 -67
  160. package/dist/lib/famix/src/model/famix/module.js +0 -60
  161. package/dist/lib/famix/src/model/famix/named_entity.js +0 -78
  162. package/dist/lib/famix/src/model/famix/parameter.js +0 -25
  163. package/dist/lib/famix/src/model/famix/parameterConcretisation.js +0 -44
  164. package/dist/lib/famix/src/model/famix/parameter_concretisation.js +0 -44
  165. package/dist/lib/famix/src/model/famix/parameter_type.js +0 -45
  166. package/dist/lib/famix/src/model/famix/parametricArrowFunction.js +0 -29
  167. package/dist/lib/famix/src/model/famix/parametric_arrow_function.js +0 -31
  168. package/dist/lib/famix/src/model/famix/parametric_class.js +0 -44
  169. package/dist/lib/famix/src/model/famix/parametric_function.js +0 -31
  170. package/dist/lib/famix/src/model/famix/parametric_interface.js +0 -44
  171. package/dist/lib/famix/src/model/famix/parametric_method.js +0 -31
  172. package/dist/lib/famix/src/model/famix/primitive_type.js +0 -17
  173. package/dist/lib/famix/src/model/famix/property.js +0 -73
  174. package/dist/lib/famix/src/model/famix/reference.js +0 -33
  175. package/dist/lib/famix/src/model/famix/scoping_entity.js +0 -36
  176. package/dist/lib/famix/src/model/famix/script_entity.js +0 -29
  177. package/dist/lib/famix/src/model/famix/source_anchor.js +0 -27
  178. package/dist/lib/famix/src/model/famix/source_language.js +0 -35
  179. package/dist/lib/famix/src/model/famix/sourced_entity.js +0 -60
  180. package/dist/lib/famix/src/model/famix/structural_entity.js +0 -39
  181. package/dist/lib/famix/src/model/famix/text_anchor.js +0 -38
  182. package/dist/lib/famix/src/model/famix/type.js +0 -73
  183. package/dist/lib/famix/src/model/famix/variable.js +0 -24
  184. package/fqn-model.json +0 -1
  185. package/iterateGenericTypes.ts +0 -69
  186. package/out/class-diagram/class-diagram.svg +0 -1
  187. package/sample.json +0 -1
  188. package/sample.ts +0 -1
  189. package/stats.txt +0 -3091
  190. package/tabby-debug-output.txt +0 -19433
  191. package/ts2famix.log +0 -22656
  192. package/validate-references.js +0 -103
@@ -52,4 +52,4 @@ class FamixJSONExporter {
52
52
  }
53
53
  }
54
54
  exports.FamixJSONExporter = FamixJSONExporter;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFtaXhfSlNPTl9leHBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZmFtaXgvZmFtaXhfSlNPTl9leHBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2REFBd0Q7QUFFeEQ7O0dBRUc7QUFDSCxNQUFhLGlCQUFpQjtJQU0xQjs7OztPQUlHO0lBQ0gsWUFBWSxZQUFvQixFQUFFLE9BQXlCO1FBUm5ELGdCQUFXLEdBQVEsRUFBRSxDQUFDLENBQUMsd0RBQXdEO1FBQy9FLGdCQUFXLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyw4QkFBOEI7UUFRbkUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsR0FBRyxZQUFZLENBQUM7UUFDaEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxJQUFZLEVBQUUsSUFBYTtRQUMxQyxJQUFJLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN0QixNQUFNLFVBQVUsR0FBbUIsRUFBRSxDQUFDO1lBQ3RDLEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLEtBQUssWUFBWSxxQ0FBZ0IsRUFBRSxDQUFDO29CQUNwQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxDQUFDO3FCQUNJLENBQUM7b0JBQ0YsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0IsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUN4QyxDQUFDO2FBQ0ksSUFBSSxJQUFJLFlBQVkscUNBQWdCLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNoRCxDQUFDO2FBQ0ksSUFBSSxJQUFJLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE9BQU87UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDSjtBQWxERCw4Q0FrREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEJhc2VFbGVtZW50IH0gZnJvbSBcIi4vZmFtaXhfYmFzZV9lbGVtZW50XCI7XHJcblxyXG4vKipcclxuICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIGV4cG9ydCBGYW1peCBlbGVtZW50cyB0byBKU09OXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRmFtaXhKU09ORXhwb3J0ZXIge1xyXG5cclxuICAgIHByaXZhdGUgZWxlbWVudDogRmFtaXhCYXNlRWxlbWVudDsgLy8gQSBGYW1peCBlbGVtZW50IHRvIGV4cG9ydFxyXG4gICAgcHJpdmF0ZSBidWZmZXJBcnJheTogYW55ID0ge307IC8vIEEgYnVmZmVyIHRvIHN0b3JlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBGYW1peCBlbGVtZW50XHJcbiAgICBwcml2YXRlIEZhbWl4UHJlZml4ID0gXCJGYW1peFR5cGVTY3JpcHRcIjsgLy8gUHJlZml4IG9mIHRoZSBGYW1peCBlbGVtZW50XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvciBvZiB0aGUgRmFtaXhKU09ORXhwb3J0ZXIgY2xhc3NcclxuICAgICAqIEBwYXJhbSBwYWNrYWdlQ2xhc3MgTmFtZSBvZiBhIEZhbWl4IGNsYXNzXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudCBBIEZhbWl4IGVsZW1lbnQgdG8gZXhwb3J0LCB0aGlzIGVsZW1lbnQgaXMgYW4gaW5zdGFuY2Ugb2YgdGhlIGNsYXNzIG5hbWVkIFwicGFja2FnZUNsYXNzXCJcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocGFja2FnZUNsYXNzOiBzdHJpbmcsIGVsZW1lbnQ6IEZhbWl4QmFzZUVsZW1lbnQpIHtcclxuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xyXG4gICAgICAgIHRoaXMuYnVmZmVyQXJyYXlbXCJGTTNcIl0gPSB0aGlzLkZhbWl4UHJlZml4ICsgXCIuXCIgKyBwYWNrYWdlQ2xhc3M7XHJcbiAgICAgICAgdGhpcy5idWZmZXJBcnJheVtcImlkXCJdID0gdGhpcy5lbGVtZW50LmlkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkcyBhIHByb3BlcnR5IHRvIHRoZSBGYW1peCBlbGVtZW50XHJcbiAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBwcm9wZXJ0eVxyXG4gICAgICogQHBhcmFtIHByb3AgQSBwcm9wZXJ0eVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkUHJvcGVydHkobmFtZTogc3RyaW5nLCBwcm9wOiB1bmtub3duKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHByb3AgaW5zdGFuY2VvZiBTZXQpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWVBcnJheTogQXJyYXk8dW5rbm93bj4gPSBbXTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBBcnJheS5mcm9tKHByb3AudmFsdWVzKCkpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGYW1peEJhc2VFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVBcnJheS5wdXNoKHsgXCJyZWZcIjogdmFsdWUuaWQgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUFycmF5LnB1c2godmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyQXJyYXlbbmFtZV0gPSB2YWx1ZUFycmF5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChwcm9wIGluc3RhbmNlb2YgRmFtaXhCYXNlRWxlbWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmJ1ZmZlckFycmF5W25hbWVdID0geyBcInJlZlwiOiBwcm9wLmlkIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHByb3AgIT09IHVuZGVmaW5lZCAmJiAhKHByb3AgaW5zdGFuY2VvZiBTZXQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyQXJyYXlbbmFtZV0gPSBwcm9wO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBGYW1peCBlbGVtZW50XHJcbiAgICAgKiBAcmV0dXJucyBBIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIEZhbWl4IGVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5idWZmZXJBcnJheSk7XHJcbiAgICB9XHJcbn1cclxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFtaXhfSlNPTl9leHBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZmFtaXgvZmFtaXhfSlNPTl9leHBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2REFBd0Q7QUFFeEQ7O0dBRUc7QUFDSCxNQUFhLGlCQUFpQjtJQU0xQjs7OztPQUlHO0lBQ0gsWUFBWSxZQUFvQixFQUFFLE9BQXlCO1FBUm5ELGdCQUFXLEdBQVEsRUFBRSxDQUFDLENBQUMsd0RBQXdEO1FBQy9FLGdCQUFXLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyw4QkFBOEI7UUFRbkUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsR0FBRyxZQUFZLENBQUM7UUFDaEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxJQUFZLEVBQUUsSUFBYTtRQUMxQyxJQUFJLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN0QixNQUFNLFVBQVUsR0FBbUIsRUFBRSxDQUFDO1lBQ3RDLEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLEtBQUssWUFBWSxxQ0FBZ0IsRUFBRSxDQUFDO29CQUNwQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxDQUFDO3FCQUNJLENBQUM7b0JBQ0YsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0IsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUN4QyxDQUFDO2FBQ0ksSUFBSSxJQUFJLFlBQVkscUNBQWdCLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNoRCxDQUFDO2FBQ0ksSUFBSSxJQUFJLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE9BQU87UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDSjtBQWxERCw4Q0FrREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEJhc2VFbGVtZW50IH0gZnJvbSBcIi4vZmFtaXhfYmFzZV9lbGVtZW50XCI7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIGV4cG9ydCBGYW1peCBlbGVtZW50cyB0byBKU09OXG4gKi9cbmV4cG9ydCBjbGFzcyBGYW1peEpTT05FeHBvcnRlciB7XG5cbiAgICBwcml2YXRlIGVsZW1lbnQ6IEZhbWl4QmFzZUVsZW1lbnQ7IC8vIEEgRmFtaXggZWxlbWVudCB0byBleHBvcnRcbiAgICBwcml2YXRlIGJ1ZmZlckFycmF5OiBhbnkgPSB7fTsgLy8gQSBidWZmZXIgdG8gc3RvcmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIEZhbWl4IGVsZW1lbnRcbiAgICBwcml2YXRlIEZhbWl4UHJlZml4ID0gXCJGYW1peFR5cGVTY3JpcHRcIjsgLy8gUHJlZml4IG9mIHRoZSBGYW1peCBlbGVtZW50XG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvciBvZiB0aGUgRmFtaXhKU09ORXhwb3J0ZXIgY2xhc3NcbiAgICAgKiBAcGFyYW0gcGFja2FnZUNsYXNzIE5hbWUgb2YgYSBGYW1peCBjbGFzc1xuICAgICAqIEBwYXJhbSBlbGVtZW50IEEgRmFtaXggZWxlbWVudCB0byBleHBvcnQsIHRoaXMgZWxlbWVudCBpcyBhbiBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgbmFtZWQgXCJwYWNrYWdlQ2xhc3NcIlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHBhY2thZ2VDbGFzczogc3RyaW5nLCBlbGVtZW50OiBGYW1peEJhc2VFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuYnVmZmVyQXJyYXlbXCJGTTNcIl0gPSB0aGlzLkZhbWl4UHJlZml4ICsgXCIuXCIgKyBwYWNrYWdlQ2xhc3M7XG4gICAgICAgIHRoaXMuYnVmZmVyQXJyYXlbXCJpZFwiXSA9IHRoaXMuZWxlbWVudC5pZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgcHJvcGVydHkgdG8gdGhlIEZhbWl4IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBwcm9wZXJ0eVxuICAgICAqIEBwYXJhbSBwcm9wIEEgcHJvcGVydHlcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkUHJvcGVydHkobmFtZTogc3RyaW5nLCBwcm9wOiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIGlmIChwcm9wIGluc3RhbmNlb2YgU2V0KSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFycmF5OiBBcnJheTx1bmtub3duPiA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBBcnJheS5mcm9tKHByb3AudmFsdWVzKCkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRmFtaXhCYXNlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZUFycmF5LnB1c2goeyBcInJlZlwiOiB2YWx1ZS5pZCB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQXJyYXkucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5idWZmZXJBcnJheVtuYW1lXSA9IHZhbHVlQXJyYXk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocHJvcCBpbnN0YW5jZW9mIEZhbWl4QmFzZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyQXJyYXlbbmFtZV0gPSB7IFwicmVmXCI6IHByb3AuaWQgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwcm9wICE9PSB1bmRlZmluZWQgJiYgIShwcm9wIGluc3RhbmNlb2YgU2V0KSkge1xuICAgICAgICAgICAgdGhpcy5idWZmZXJBcnJheVtuYW1lXSA9IHByb3A7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgRmFtaXggZWxlbWVudFxuICAgICAqIEByZXR1cm5zIEEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgRmFtaXggZWxlbWVudFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmJ1ZmZlckFycmF5KTtcbiAgICB9XG59XG4iXX0=
@@ -15,4 +15,4 @@ class FamixBaseElement {
15
15
  }
16
16
  }
17
17
  exports.FamixBaseElement = FamixBaseElement;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFtaXhfYmFzZV9lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9mYW1peF9iYXNlX2VsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBRXZDLHdEQUF3RDtBQUV4RCxNQUFzQixnQkFBZ0I7SUFJbEMsdUNBQXVDO0lBQ3ZDLDJCQUEyQjtJQUMzQixJQUFJO0lBRUo7SUFDQSxDQUFDO0lBSUQsNkRBQTZEO0lBQ3RELHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELGdCQUFNLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztJQUMzRyxDQUFDO0NBQ0o7QUFqQkQsNENBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4uLy4uL2FuYWx5emVcIjtcclxuaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XHJcbi8vIGltcG9ydCB7IEZhbWl4UmVwb3NpdG9yeSB9IGZyb20gXCIuL2ZhbWl4X3JlcG9zaXRvcnlcIjtcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGYW1peEJhc2VFbGVtZW50IHtcclxuXHJcbiAgICBwdWJsaWMgaWQhOiBudW1iZXI7XHJcblxyXG4gICAgLy8gY29uc3RydWN0b3IocmVwbzogRmFtaXhSZXBvc2l0b3J5KSB7XHJcbiAgICAvLyAgIHJlcG8uYWRkRWxlbWVudCh0aGlzKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0SlNPTigpOiBzdHJpbmc7XHJcblxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xyXG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhcImFkZFByb3BlcnRpZXNUb0V4cG9ydGVyIG5vdCBpbXBsZW1lbnRlZCBmb3IgXCIgKyB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyBgKCR7ZXhwb3J0ZXJ9KWApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFtaXhfYmFzZV9lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9mYW1peF9iYXNlX2VsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBRXZDLHdEQUF3RDtBQUV4RCxNQUFzQixnQkFBZ0I7SUFJbEMsdUNBQXVDO0lBQ3ZDLDJCQUEyQjtJQUMzQixJQUFJO0lBRUo7SUFDQSxDQUFDO0lBSUQsNkRBQTZEO0lBQ3RELHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELGdCQUFNLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztJQUMzRyxDQUFDO0NBQ0o7QUFqQkQsNENBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4uLy4uL2FuYWx5emVcIjtcbmltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuLy8gaW1wb3J0IHsgRmFtaXhSZXBvc2l0b3J5IH0gZnJvbSBcIi4vZmFtaXhfcmVwb3NpdG9yeVwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmFtaXhCYXNlRWxlbWVudCB7XG5cbiAgICBwdWJsaWMgaWQhOiBudW1iZXI7XG5cbiAgICAvLyBjb25zdHJ1Y3RvcihyZXBvOiBGYW1peFJlcG9zaXRvcnkpIHtcbiAgICAvLyAgIHJlcG8uYWRkRWxlbWVudCh0aGlzKTtcbiAgICAvLyB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0SlNPTigpOiBzdHJpbmc7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBsb2dnZXIuZGVidWcoXCJhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlciBub3QgaW1wbGVtZW50ZWQgZm9yIFwiICsgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgYCgke2V4cG9ydGVyfSlgKTtcbiAgICB9XG59XG4iXX0=
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.FamixRepository = void 0;
37
37
  const famix_1 = require("./model/famix");
38
38
  const Famix = __importStar(require("./model/famix"));
39
+ const analyze_1 = require("../../analyze");
39
40
  /**
40
41
  * This class is used to store all Famix elements
41
42
  */
@@ -232,6 +233,7 @@ class FamixRepository {
232
233
  * @param element A Famix element
233
234
  */
234
235
  addElement(element) {
236
+ analyze_1.logger.debug(`Adding Famix element ${element.constructor.name} with id ${element.id}`);
235
237
  if (element instanceof famix_1.Class) {
236
238
  this.famixClasses.add(element);
237
239
  }
@@ -265,11 +267,18 @@ class FamixRepository {
265
267
  // make sure all elements have unique fully qualified names
266
268
  const fqns = new Set();
267
269
  for (const element of Array.from(this.elements.values())) {
268
- if (element instanceof famix_1.NamedEntity && element.fullyQualifiedName && fqns.has(element.fullyQualifiedName)) {
269
- const theExistingElement = Array.from(this.elements.values()).find(e => e.fullyQualifiedName === element.fullyQualifiedName);
270
- throw new Error(`The fully qualified name ${element.fullyQualifiedName} is not unique.\nIt exists for ${theExistingElement?.getJSON()}`);
270
+ // ignore everything that is not a NamedEntity
271
+ if (element instanceof famix_1.NamedEntity) {
272
+ if (element.fullyQualifiedName && fqns.has(element.fullyQualifiedName)) {
273
+ const theExistingElement = Array.from(this.elements.values()).find(e => e.fullyQualifiedName === element.fullyQualifiedName);
274
+ throw new Error(`The fully qualified name ${element.fullyQualifiedName} is not unique.\nIt exists for ${theExistingElement?.getJSON()}`);
275
+ }
276
+ const theName = element.fullyQualifiedName;
277
+ if (theName === undefined || theName === "") {
278
+ throw new Error(`The element ${element.constructor.name} with id ${element.id} has no valid fully qualified name`);
279
+ }
280
+ fqns.add(theName);
271
281
  }
272
- fqns.add(element.fullyQualifiedName);
273
282
  }
274
283
  }
275
284
  /**
@@ -286,4 +295,4 @@ class FamixRepository {
286
295
  }
287
296
  }
288
297
  exports.FamixRepository = FamixRepository;
289
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFtaXhfcmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZmFtaXgvZmFtaXhfcmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSx5Q0FBNEs7QUFDNUsscURBQXVDO0FBRXZDOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBY3hCO1FBYlEsYUFBUSxHQUFHLElBQUksR0FBRyxFQUFvQixDQUFDLENBQUMscUJBQXFCO1FBQzdELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVMsQ0FBQyxDQUFDLG9CQUFvQjtRQUNyRCxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUFhLENBQUMsQ0FBQyx1QkFBdUI7UUFDL0QsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUMsdUJBQXVCO1FBQ3pELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQyxDQUFDLG9CQUFvQjtRQUN0RCxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUFZLENBQUMsQ0FBQyxzQkFBc0I7UUFDNUQsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQyxDQUFDLHNCQUFzQjtRQUN2RSxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUMsQ0FBQyxrQkFBa0I7UUFDakUsY0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWE7UUFDNUIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsd0JBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7UUFDakUscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUMsQ0FBQyxnRkFBZ0Y7UUFHbkosSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLHNCQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUUsOENBQThDO0lBQzFGLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxtQkFBeUQ7UUFDbkYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO0lBQ25ELENBQUM7SUFFTSxzQkFBc0I7UUFDekIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUVNLGVBQWU7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFTSxlQUFlLENBQUMsSUFBWTtRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGtCQUFrQixDQUFDLEVBQVU7UUFDaEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6RSxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGtDQUFrQyxDQUFDLGtCQUEwQjtRQUNoRSxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksbUJBQVcsQ0FBdUIsQ0FBQztRQUNuSCxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ2hDLHlEQUF5RDtRQUN6RCxVQUFVO1FBQ1YsQ0FBQyxDQUFDLGtCQUFrQixLQUFLLGtCQUFrQjtRQUMvQyxJQUFJO1NBQ0gsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxzREFBc0Q7SUFDL0MsbUNBQW1DLENBQUMsUUFBK0IsRUFBRSxRQUFnQztRQUN4RyxzRUFBc0U7UUFDdEUsS0FBSyxNQUFNLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksS0FBSyxDQUFDLE1BQU0sQ0FBd0IsRUFBRSxDQUFDO1lBQ3BILElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDL0QsT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQztRQUNMLENBQUM7UUFDRCxrREFBa0Q7UUFDbEQsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUdELE1BQU0sQ0FBQyxJQUF5QjtRQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7SUFHRCxpQkFBaUI7SUFFakI7OztPQUdHO0lBQ0ksZUFBZTtRQUNsQixPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx1QkFBdUIsQ0FBQyxPQUFlO1FBQzFDLE9BQU8sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBc0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekgsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsa0JBQTBCO1FBQzVDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGtCQUFrQixLQUFLLGtCQUFrQixDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxrQkFBa0IsQ0FBQyxrQkFBMEI7UUFDaEQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEtBQUssa0JBQWtCLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGVBQWUsQ0FBQyxrQkFBMEI7UUFDN0MsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEtBQUssa0JBQWtCLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGlCQUFpQixDQUFDLGtCQUEwQjtRQUMvQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsS0FBSyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFHRDs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsa0JBQTBCO1FBQy9DLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixLQUFLLGtCQUFrQixDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxlQUFlLENBQUMsa0JBQTBCO1FBQzdDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGtCQUFrQixLQUFLLGtCQUFrQixDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQjtRQUNuQixPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxhQUFhLENBQUMsa0JBQTBCO1FBQzNDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRDs7O09BR0c7SUFDSSxjQUFjO1FBQ2pCLE9BQU8sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDBCQUEwQixDQUFDLFNBQWlCO1FBQy9DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFVLENBQUM7UUFDekQsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDRCQUE0QixDQUFDLFNBQWlCO1FBQ2pELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFVLENBQUM7UUFDekQsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGlCQUFpQixDQUFDLEtBQWE7UUFDbEMsTUFBTSxXQUFXLEdBQTRCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0QsTUFBTSxjQUFjLEdBQXlCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdkQsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQixjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGNBQWMsQ0FBQztJQUMxQixDQUFDO0lBR0Q7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLE9BQXlCO1FBQ3ZDLElBQUksT0FBTyxZQUFZLGFBQUssRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUM7YUFBTSxJQUFJLE9BQU8sWUFBWSxpQkFBUyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQzthQUFNLElBQUksT0FBTyxZQUFZLGNBQU0sRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUM7YUFBTSxJQUFJLE9BQU8sWUFBWSxnQkFBUSxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsQ0FBQzthQUFNLElBQUksT0FBTyxZQUFZLGNBQU0sRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUM7YUFBTSxJQUFJLE9BQU8sWUFBWSxnQkFBbUIsSUFBSSxPQUFPLFlBQVkscUJBQWEsRUFBRSxDQUFDO1lBQ3BGLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7YUFBTSxJQUFJLE9BQU8sWUFBWSxvQkFBWSxJQUFJLE9BQU8sWUFBWSxjQUFNLEVBQUUsQ0FBQztZQUN0RSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssWUFBWTtRQUNoQiwyREFBMkQ7UUFDM0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUMvQixLQUFLLE1BQU0sT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkQsSUFBSSxPQUFPLFlBQVksbUJBQVcsSUFBSSxPQUFPLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO2dCQUN2RyxNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLENBQWlCLENBQUMsa0JBQWtCLEtBQUssT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQzlJLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLE9BQU8sQ0FBQyxrQkFBa0Isa0NBQWtDLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3SSxDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBRSxPQUF1QixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUQsQ0FBQztJQUNMLENBQUM7SUFHRDs7O09BR0c7SUFDSSxPQUFPO1FBQ1YsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2QsS0FBSyxNQUFNLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3ZELEdBQUcsR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkMsT0FBTyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ3JCLENBQUM7Q0FDSjtBQTlRRCwwQ0E4UUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEJhc2VFbGVtZW50IH0gZnJvbSBcIi4vZmFtaXhfYmFzZV9lbGVtZW50XCI7XHJcbmltcG9ydCB7IENsYXNzLCBJbnRlcmZhY2UsIFZhcmlhYmxlLCBNZXRob2QsIEFycm93RnVuY3Rpb24sIEZ1bmN0aW9uIGFzIEZhbWl4RnVuY3Rpb25FbnRpdHksIFR5cGUsIE5hbWVkRW50aXR5LCBTY3JpcHRFbnRpdHksIE1vZHVsZSwgU291cmNlTGFuZ3VhZ2UgfSBmcm9tIFwiLi9tb2RlbC9mYW1peFwiO1xyXG5pbXBvcnQgKiBhcyBGYW1peCBmcm9tIFwiLi9tb2RlbC9mYW1peFwiO1xyXG5pbXBvcnQgeyBUU01vcnBoT2JqZWN0VHlwZSB9IGZyb20gXCIuLi8uLi9mYW1peF9mdW5jdGlvbnMvRW50aXR5RGljdGlvbmFyeVwiO1xyXG4vKipcclxuICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIHN0b3JlIGFsbCBGYW1peCBlbGVtZW50c1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEZhbWl4UmVwb3NpdG9yeSB7XHJcbiAgICBwcml2YXRlIGVsZW1lbnRzID0gbmV3IFNldDxGYW1peEJhc2VFbGVtZW50PigpOyAvLyBBbGwgRmFtaXggZWxlbWVudHNcclxuICAgIHByaXZhdGUgZmFtaXhDbGFzc2VzID0gbmV3IFNldDxDbGFzcz4oKTsgLy8gQWxsIEZhbWl4IGNsYXNzZXNcclxuICAgIHByaXZhdGUgZmFtaXhJbnRlcmZhY2VzID0gbmV3IFNldDxJbnRlcmZhY2U+KCk7IC8vIEFsbCBGYW1peCBpbnRlcmZhY2VzXHJcbiAgICBwcml2YXRlIGZhbWl4TW9kdWxlcyA9IG5ldyBTZXQ8TW9kdWxlPigpOyAvLyBBbGwgRmFtaXggbmFtZXNwYWNlc1xyXG4gICAgcHJpdmF0ZSBmYW1peE1ldGhvZHMgPSBuZXcgU2V0PE1ldGhvZD4oKTsgLy8gQWxsIEZhbWl4IG1ldGhvZHNcclxuICAgIHByaXZhdGUgZmFtaXhWYXJpYWJsZXMgPSBuZXcgU2V0PFZhcmlhYmxlPigpOyAvLyBBbGwgRmFtaXggdmFyaWFibGVzXHJcbiAgICBwcml2YXRlIGZhbWl4RnVuY3Rpb25zID0gbmV3IFNldDxGYW1peEZ1bmN0aW9uRW50aXR5PigpOyAvLyBBbGwgRmFtaXggZnVuY3Rpb25zXHJcbiAgICBwcml2YXRlIGZhbWl4RmlsZXMgPSBuZXcgU2V0PFNjcmlwdEVudGl0eSB8IE1vZHVsZT4oKTsgLy8gQWxsIEZhbWl4IGZpbGVzXHJcbiAgICBwcml2YXRlIGlkQ291bnRlciA9IDE7IC8vIElkIGNvdW50ZXJcclxuICAgIHByaXZhdGUgYWJzb2x1dGVQYXRoOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgcHJpdmF0ZSBmbXhFbGVtZW50T2JqZWN0TWFwID0gbmV3IE1hcDxGYW1peC5FbnRpdHksIFRTTW9ycGhPYmplY3RUeXBlPigpO1xyXG4gICAgcHJpdmF0ZSB0c01vcnBoT2JqZWN0TWFwID0gbmV3IE1hcDxUU01vcnBoT2JqZWN0VHlwZSwgRmFtaXguRW50aXR5PigpOyAvLyBUT0RPOiBhZGQgdGhpcyBtYXAgdG8gaGF2ZSB0d28td2F5IG1hcHBpbmcgYmV0d2VlbiBGYW1peCBhbmQgVFMgTW9ycGggb2JqZWN0c1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmFkZEVsZW1lbnQobmV3IFNvdXJjZUxhbmd1YWdlKCkpOyAgLy8gYWRkIHRoZSBzb3VyY2UgbGFuZ3VhZ2UgZW50aXR5IChUeXBlU2NyaXB0KVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRGbXhFbGVtZW50T2JqZWN0TWFwKGZteEVsZW1lbnRPYmplY3RNYXA6IE1hcDxGYW1peC5FbnRpdHksIFRTTW9ycGhPYmplY3RUeXBlPikge1xyXG4gICAgICAgIHRoaXMuZm14RWxlbWVudE9iamVjdE1hcCA9IGZteEVsZW1lbnRPYmplY3RNYXA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEZteEVsZW1lbnRPYmplY3RNYXAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm14RWxlbWVudE9iamVjdE1hcDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0QWJzb2x1dGVQYXRoKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWJzb2x1dGVQYXRoO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRBYnNvbHV0ZVBhdGgocGF0aDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5hYnNvbHV0ZVBhdGggPSBwYXRoO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhIEZhbWl4IGVudGl0eSBieSBpZFxyXG4gICAgICogQHBhcmFtIGlkIEFuIGlkIG9mIGEgRmFtaXggZW50aXR5XHJcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggZW50aXR5IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGlkIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRGYW1peEVudGl0eUJ5SWQoaWQ6IG51bWJlcik6IEZhbWl4QmFzZUVsZW1lbnQgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGNvbnN0IGVudGl0eSA9IEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkuZmluZChlID0+IGUuaWQgPT09IGlkKTtcclxuICAgICAgICByZXR1cm4gZW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhIEZhbWl4IGVudGl0eSBieSBmdWxseSBxdWFsaWZpZWQgbmFtZVxyXG4gICAgICogQHBhcmFtIGZ1bGx5UXVhbGlmaWVkTmFtZSBBIGZ1bGx5IHF1YWxpZmllZCBuYW1lXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggZW50aXR5IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRGYW1peEVudGl0eUJ5RnVsbHlRdWFsaWZpZWROYW1lKGZ1bGx5UXVhbGlmaWVkTmFtZTogc3RyaW5nKTogRmFtaXhCYXNlRWxlbWVudCB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgY29uc3QgYWxsRW50aXRpZXMgPSBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMudmFsdWVzKCkpLmZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYW1lZEVudGl0eSkgYXMgQXJyYXk8TmFtZWRFbnRpdHk+O1xyXG4gICAgICAgIGNvbnN0IGVudGl0eSA9IGFsbEVudGl0aWVzLmZpbmQoZSA9PiBcclxuICAgICAgICAgICAgLy8ge2NvbnNvbGUubG9nKGBuYW1lZEVudGl0eTogJHtlLmZ1bGx5UXVhbGlmaWVkTmFtZX1gKTsgXHJcbiAgICAgICAgICAgIC8vIHJldHVybiBcclxuICAgICAgICAgICAgZS5mdWxseVF1YWxpZmllZE5hbWUgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZVxyXG4gICAgICAgIC8vIH1cclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBlbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTWV0aG9kIHRvIGdldCBGYW1peCBhY2Nlc3MgYnkgYWNjZXNzb3IgYW5kIHZhcmlhYmxlXHJcbiAgICBwdWJsaWMgZ2V0RmFtaXhBY2Nlc3NCeUFjY2Vzc29yQW5kVmFyaWFibGUoYWNjZXNzb3I6IEZhbWl4LkNvbnRhaW5lckVudGl0eSwgdmFyaWFibGU6IEZhbWl4LlN0cnVjdHVyYWxFbnRpdHkpOiBGYW1peC5BY2Nlc3MgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgbGlzdCBvZiBGYW1peCBhY2Nlc3NlcyB0byBmaW5kIHRoZSBtYXRjaGluZyBvbmVcclxuICAgICAgICBmb3IgKGNvbnN0IGFjY2VzcyBvZiBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMudmFsdWVzKCkpLmZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBGYW1peC5BY2Nlc3MpIGFzIEFycmF5PEZhbWl4LkFjY2Vzcz4pIHtcclxuICAgICAgICAgICAgaWYgKGFjY2Vzcy5hY2Nlc3NvciA9PT0gYWNjZXNzb3IgJiYgYWNjZXNzLnZhcmlhYmxlID09PSB2YXJpYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjY2VzcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBSZXR1cm4gdW5kZWZpbmVkIGlmIG5vIG1hdGNoaW5nIGFjY2VzcyBpcyBmb3VuZFxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGV4cG9ydChhcmcwOiB7IGZvcm1hdDogc3RyaW5nOyB9KSB7XHJcbiAgICAgICAgaWYgKGFyZzAuZm9ybWF0ID09PSBcImpzb25cIikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRKU09OKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5zdXBwb3J0ZWQgZm9ybWF0XCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gT25seSBmb3IgdGVzdHNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYWxsIEZhbWl4IGVudGl0aWVzXHJcbiAgICAgKiBAcmV0dXJucyBBbGwgRmFtaXggZW50aXRpZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIF9nZXRBbGxFbnRpdGllcygpOiBTZXQ8RmFtaXhCYXNlRWxlbWVudD4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhbGwgRmFtaXggZW50aXRpZXMgb2YgYSBnaXZlbiB0eXBlXHJcbiAgICAgKiBAcGFyYW0gdGhlVHlwZSBBIHR5cGUgb2YgRmFtaXggZW50aXR5XHJcbiAgICAgKiBAcmV0dXJucyBBbGwgRmFtaXggZW50aXRpZXMgb2YgdGhlIGdpdmVuIHR5cGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIF9nZXRBbGxFbnRpdGllc1dpdGhUeXBlKHRoZVR5cGU6IHN0cmluZyk6IFNldDxGYW1peEJhc2VFbGVtZW50PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnZhbHVlcygpKS5maWx0ZXIoZSA9PiAoZSBhcyBGYW1peEJhc2VFbGVtZW50KS5jb25zdHJ1Y3Rvci5uYW1lID09PSB0aGVUeXBlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGEgRmFtaXggY2xhc3MgYnkgbmFtZVxyXG4gICAgICogQHBhcmFtIG5hbWUgQSBjbGFzcyBuYW1lXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggY2xhc3MgY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX2dldEZhbWl4Q2xhc3MoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBDbGFzcyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5mYW1peENsYXNzZXMudmFsdWVzKCkpLmZpbmQobnMgPT4gbnMuZnVsbHlRdWFsaWZpZWROYW1lID09PSBmdWxseVF1YWxpZmllZE5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhIEZhbWl4IGludGVyZmFjZSBieSBuYW1lXHJcbiAgICAgKiBAcGFyYW0gbmFtZSBBbiBpbnRlcmZhY2UgbmFtZVxyXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IGludGVyZmFjZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBfZ2V0RmFtaXhJbnRlcmZhY2UoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBJbnRlcmZhY2UgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhJbnRlcmZhY2VzLnZhbHVlcygpKS5maW5kKG5zID0+IG5zLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYSBGYW1peCBtZXRob2QgYnkgbmFtZVxyXG4gICAgICogQHBhcmFtIG5hbWUgQSBtZXRob2QgbmFtZVxyXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IG1ldGhvZCBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBfZ2V0RmFtaXhNZXRob2QoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBNZXRob2QgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhNZXRob2RzLnZhbHVlcygpKS5maW5kKG5zID0+IG5zLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYSBGYW1peCBmdW5jdGlvbiBieSBuYW1lXHJcbiAgICAgKiBAcGFyYW0gbmFtZSBBIGZ1bmN0aW9uIG5hbWVcclxuICAgICAqIEByZXR1cm5zIFRoZSBGYW1peCBmdW5jdGlvbiBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBfZ2V0RmFtaXhGdW5jdGlvbihmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IEZhbWl4RnVuY3Rpb25FbnRpdHkgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhGdW5jdGlvbnMudmFsdWVzKCkpLmZpbmQobnMgPT4gbnMuZnVsbHlRdWFsaWZpZWROYW1lID09PSBmdWxseVF1YWxpZmllZE5hbWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYSBGYW1peCB2YXJpYWJsZSBieSBuYW1lXHJcbiAgICAgKiBAcGFyYW0gbmFtZSBBIHZhcmlhYmxlIG5hbWVcclxuICAgICAqIEByZXR1cm5zIFRoZSBGYW1peCB2YXJpYWJsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBfZ2V0RmFtaXhWYXJpYWJsZShmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IFZhcmlhYmxlIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4VmFyaWFibGVzLnZhbHVlcygpKS5maW5kKHYgPT4gdi5mdWxseVF1YWxpZmllZE5hbWUgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGEgRmFtaXggbmFtZXNwYWNlIGJ5IG5hbWVcclxuICAgICAqIEBwYXJhbSBuYW1lIEEgbmFtZXNwYWNlIG5hbWVcclxuICAgICAqIEByZXR1cm5zIFRoZSBGYW1peCBuYW1lc3BhY2UgY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX2dldEZhbWl4TW9kdWxlKGZ1bGx5UXVhbGlmaWVkTmFtZTogc3RyaW5nKTogTW9kdWxlIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4TW9kdWxlcy52YWx1ZXMoKSkuZmluZChucyA9PiBucy5mdWxseVF1YWxpZmllZE5hbWUgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGFsbCBGYW1peCBuYW1lc3BhY2VzXHJcbiAgICAgKiBAcmV0dXJucyBBbGwgRmFtaXggbmFtZXNwYWNlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX2dldEZhbWl4TW9kdWxlcygpOiBTZXQ8TW9kdWxlPiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbSh0aGlzLmZhbWl4TW9kdWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhIEZhbWl4IGZpbGUgYnkgbmFtZVxyXG4gICAgICogQHBhcmFtIG5hbWUgQSBmaWxlIG5hbWVcclxuICAgICAqIEByZXR1cm5zIFRoZSBGYW1peCBmaWxlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5hbWUgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIF9nZXRGYW1peEZpbGUoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBTY3JpcHRFbnRpdHkgfCBNb2R1bGUgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhGaWxlcy52YWx1ZXMoKSkuZmluZChucyA9PiBucy5uYW1lID09PSBmdWxseVF1YWxpZmllZE5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhbGwgRmFtaXggZmlsZXNcclxuICAgICAqIEByZXR1cm5zIEFsbCBGYW1peCBmaWxlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX2dldEZhbWl4RmlsZXMoKTogU2V0PFNjcmlwdEVudGl0eSB8IE1vZHVsZT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhpcy5mYW1peEZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGFsbCBtZXRob2QgbmFtZXMgYXMgYSBzZXQgZnJvbSBhIGNsYXNzXHJcbiAgICAgKiBAcGFyYW0gY2xhc3NOYW1lIEEgY2xhc3MgbmFtZVxyXG4gICAgICogQHJldHVybnMgVGhlIHNldCBvZiBjbGFzcyBcImNsYXNzTmFtZVwiIG1ldGhvZCBuYW1lc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX21ldGhvZE5hbWVzQXNTZXRGcm9tQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpOiBTZXQ8c3RyaW5nPiB7XHJcbiAgICAgICAgY29uc3QgdGhlQ2xhc3MgPSB0aGlzLl9nZXRGYW1peENsYXNzKGNsYXNzTmFtZSkgYXMgQ2xhc3M7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbSh0aGVDbGFzcy5tZXRob2RzKS5tYXAobSA9PiBtLm5hbWUpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYWxsIG1ldGhvZCBwYXJlbnRzIGFzIGEgc2V0IGZyb20gYSBjbGFzc1xyXG4gICAgICogQHBhcmFtIGNsYXNzTmFtZSBBIGNsYXNzIG5hbWVcclxuICAgICAqIEByZXR1cm5zIFRoZSBzZXQgb2YgY2xhc3MgXCJjbGFzc05hbWVcIiBtZXRob2QgcGFyZW50c1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX21ldGhvZFBhcmVudHNBc1NldEZyb21DbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IFNldDxUeXBlPiB7XHJcbiAgICAgICAgY29uc3QgdGhlQ2xhc3MgPSB0aGlzLl9nZXRGYW1peENsYXNzKGNsYXNzTmFtZSkgYXMgQ2xhc3M7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbSh0aGVDbGFzcy5tZXRob2RzKS5tYXAobSA9PiBtLnBhcmVudEVudGl0eSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgbWFwIG9mIEZhbWl4IGVsZW1lbnQgaWRzIGFuZCB0aGVpciBGYW1peCBlbGVtZW50IGZyb20gYSBKU09OIG1vZGVsXHJcbiAgICAgKiBAcGFyYW0gbW9kZWwgQSBKU09OIG1vZGVsXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgbWFwIG9mIEZhbWl4IGVsZW1lbnQgaWRzIGFuZCB0aGVpciBGYW1peCBlbGVtZW50IGZyb20gdGhlIEpTT04gbW9kZWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIF9pbml0TWFwRnJvbU1vZGVsKG1vZGVsOiBzdHJpbmcpOiBNYXA8bnVtYmVyLCB1bmtub3duPiB7XHJcbiAgICAgICAgY29uc3QgcGFyc2VkTW9kZWw6IEFycmF5PEZhbWl4QmFzZUVsZW1lbnQ+ID0gSlNPTi5wYXJzZShtb2RlbCk7XHJcbiAgICAgICAgY29uc3QgaWRUb0VsZW1lbnRNYXA6IE1hcDxudW1iZXIsIHVua25vd24+ID0gbmV3IE1hcCgpO1xyXG4gICAgICAgIHBhcnNlZE1vZGVsLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIGlkVG9FbGVtZW50TWFwLnNldChlbGVtZW50LmlkLCBlbGVtZW50KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gaWRUb0VsZW1lbnRNYXA7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkcyBhIEZhbWl4IGVsZW1lbnQgdG8gdGhlIHJlcG9zaXRvcnlcclxuICAgICAqIEBwYXJhbSBlbGVtZW50IEEgRmFtaXggZWxlbWVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkRWxlbWVudChlbGVtZW50OiBGYW1peEJhc2VFbGVtZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBDbGFzcykge1xyXG4gICAgICAgICAgICB0aGlzLmZhbWl4Q2xhc3Nlcy5hZGQoZWxlbWVudCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50IGluc3RhbmNlb2YgSW50ZXJmYWNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmFtaXhJbnRlcmZhY2VzLmFkZChlbGVtZW50KTtcclxuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBNb2R1bGUpIHtcclxuICAgICAgICAgICAgdGhpcy5mYW1peE1vZHVsZXMuYWRkKGVsZW1lbnQpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIFZhcmlhYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmFtaXhWYXJpYWJsZXMuYWRkKGVsZW1lbnQpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIE1ldGhvZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZhbWl4TWV0aG9kcy5hZGQoZWxlbWVudCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50IGluc3RhbmNlb2YgRmFtaXhGdW5jdGlvbkVudGl0eSB8fCBlbGVtZW50IGluc3RhbmNlb2YgQXJyb3dGdW5jdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLmZhbWl4RnVuY3Rpb25zLmFkZChlbGVtZW50KTtcclxuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBTY3JpcHRFbnRpdHkgfHwgZWxlbWVudCBpbnN0YW5jZW9mIE1vZHVsZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZhbWl4RmlsZXMuYWRkKGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmVsZW1lbnRzLmFkZChlbGVtZW50KTtcclxuICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5pZENvdW50ZXI7XHJcbiAgICAgICAgdGhpcy5pZENvdW50ZXIrKztcclxuICAgICAgICB0aGlzLnZhbGlkYXRlRlFOcygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdGVzIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZXMgb2YgYWxsIEZhbWl4IGVsZW1lbnRzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgdmFsaWRhdGVGUU5zKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIG1ha2Ugc3VyZSBhbGwgZWxlbWVudHMgaGF2ZSB1bmlxdWUgZnVsbHkgcXVhbGlmaWVkIG5hbWVzXHJcbiAgICAgICAgY29uc3QgZnFucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMudmFsdWVzKCkpKSB7XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50IGluc3RhbmNlb2YgTmFtZWRFbnRpdHkgJiYgZWxlbWVudC5mdWxseVF1YWxpZmllZE5hbWUgJiYgZnFucy5oYXMoZWxlbWVudC5mdWxseVF1YWxpZmllZE5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0aGVFeGlzdGluZ0VsZW1lbnQgPSBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMudmFsdWVzKCkpLmZpbmQoZSA9PiAoZSBhcyBOYW1lZEVudGl0eSkuZnVsbHlRdWFsaWZpZWROYW1lID09PSBlbGVtZW50LmZ1bGx5UXVhbGlmaWVkTmFtZSk7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSAke2VsZW1lbnQuZnVsbHlRdWFsaWZpZWROYW1lfSBpcyBub3QgdW5pcXVlLlxcbkl0IGV4aXN0cyBmb3IgJHt0aGVFeGlzdGluZ0VsZW1lbnQ/LmdldEpTT04oKX1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmcW5zLmFkZCgoZWxlbWVudCBhcyBOYW1lZEVudGl0eSkuZnVsbHlRdWFsaWZpZWROYW1lKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIHJlcG9zaXRvcnlcclxuICAgICAqIEByZXR1cm5zIEEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVwb3NpdG9yeVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCByZXQgPSBcIltcIjtcclxuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnZhbHVlcygpKSkge1xyXG4gICAgICAgICAgICByZXQgPSByZXQgKyBlbGVtZW50LmdldEpTT04oKSArIFwiLFwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXQgPSByZXQuc3Vic3RyaW5nKDAsIHJldC5sZW5ndGggLSAxKTtcclxuICAgICAgICByZXR1cm4gcmV0ICsgXCJdXCI7XHJcbiAgICB9XHJcbn1cclxuIl19
298
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFtaXhfcmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZmFtaXgvZmFtaXhfcmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSx5Q0FBNEs7QUFDNUsscURBQXVDO0FBRXZDLDJDQUF1QztBQUV2Qzs7R0FFRztBQUNILE1BQWEsZUFBZTtJQWN4QjtRQWJRLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQyxDQUFDLHFCQUFxQjtRQUM3RCxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFTLENBQUMsQ0FBQyxvQkFBb0I7UUFDckQsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBYSxDQUFDLENBQUMsdUJBQXVCO1FBQy9ELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQyxDQUFDLHVCQUF1QjtRQUN6RCxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUMsQ0FBQyxvQkFBb0I7UUFDdEQsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBWSxDQUFDLENBQUMsc0JBQXNCO1FBQzVELG1CQUFjLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUMsQ0FBQyxzQkFBc0I7UUFDdkUsZUFBVSxHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDLENBQUMsa0JBQWtCO1FBQ2pFLGNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhO1FBQzVCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLHdCQUFtQixHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO1FBQ2pFLHFCQUFnQixHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDLENBQUMsZ0ZBQWdGO1FBR25KLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxzQkFBYyxFQUFFLENBQUMsQ0FBQyxDQUFFLDhDQUE4QztJQUMxRixDQUFDO0lBRU0sc0JBQXNCLENBQUMsbUJBQXlEO1FBQ25GLElBQUks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LENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBaUIsQ0FBQyxrQkFBa0IsS0FBSyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFDOUksTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsT0FBTyxDQUFDLGtCQUFrQixrQ0FBa0Msa0JBQWtCLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM3SSxDQUFDO2dCQUNELE1BQU0sT0FBTyxHQUFJLE9BQXVCLENBQUMsa0JBQWtCLENBQUM7Z0JBQzVELElBQUksT0FBTyxLQUFLLFNBQVMsSUFBSSxPQUFPLEtBQUssRUFBRSxFQUFFLENBQUM7b0JBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksWUFBWSxPQUFPLENBQUMsRUFBRSxvQ0FBb0MsQ0FBQyxDQUFDO2dCQUN2SCxDQUFDO2dCQUNELElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBR0Q7OztPQUdHO0lBQ0ksT0FBTztRQUNWLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNkLEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN2RCxHQUFHLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDeEMsQ0FBQztRQUNELEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNyQixDQUFDO0NBQ0o7QUF0UkQsMENBc1JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhCYXNlRWxlbWVudCB9IGZyb20gXCIuL2ZhbWl4X2Jhc2VfZWxlbWVudFwiO1xuaW1wb3J0IHsgQ2xhc3MsIEludGVyZmFjZSwgVmFyaWFibGUsIE1ldGhvZCwgQXJyb3dGdW5jdGlvbiwgRnVuY3Rpb24gYXMgRmFtaXhGdW5jdGlvbkVudGl0eSwgVHlwZSwgTmFtZWRFbnRpdHksIFNjcmlwdEVudGl0eSwgTW9kdWxlLCBTb3VyY2VMYW5ndWFnZSB9IGZyb20gXCIuL21vZGVsL2ZhbWl4XCI7XG5pbXBvcnQgKiBhcyBGYW1peCBmcm9tIFwiLi9tb2RlbC9mYW1peFwiO1xuaW1wb3J0IHsgVFNNb3JwaE9iamVjdFR5cGUgfSBmcm9tIFwiLi4vLi4vZmFtaXhfZnVuY3Rpb25zL0VudGl0eURpY3Rpb25hcnlcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuLi8uLi9hbmFseXplXCI7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIHN0b3JlIGFsbCBGYW1peCBlbGVtZW50c1xuICovXG5leHBvcnQgY2xhc3MgRmFtaXhSZXBvc2l0b3J5IHtcbiAgICBwcml2YXRlIGVsZW1lbnRzID0gbmV3IFNldDxGYW1peEJhc2VFbGVtZW50PigpOyAvLyBBbGwgRmFtaXggZWxlbWVudHNcbiAgICBwcml2YXRlIGZhbWl4Q2xhc3NlcyA9IG5ldyBTZXQ8Q2xhc3M+KCk7IC8vIEFsbCBGYW1peCBjbGFzc2VzXG4gICAgcHJpdmF0ZSBmYW1peEludGVyZmFjZXMgPSBuZXcgU2V0PEludGVyZmFjZT4oKTsgLy8gQWxsIEZhbWl4IGludGVyZmFjZXNcbiAgICBwcml2YXRlIGZhbWl4TW9kdWxlcyA9IG5ldyBTZXQ8TW9kdWxlPigpOyAvLyBBbGwgRmFtaXggbmFtZXNwYWNlc1xuICAgIHByaXZhdGUgZmFtaXhNZXRob2RzID0gbmV3IFNldDxNZXRob2Q+KCk7IC8vIEFsbCBGYW1peCBtZXRob2RzXG4gICAgcHJpdmF0ZSBmYW1peFZhcmlhYmxlcyA9IG5ldyBTZXQ8VmFyaWFibGU+KCk7IC8vIEFsbCBGYW1peCB2YXJpYWJsZXNcbiAgICBwcml2YXRlIGZhbWl4RnVuY3Rpb25zID0gbmV3IFNldDxGYW1peEZ1bmN0aW9uRW50aXR5PigpOyAvLyBBbGwgRmFtaXggZnVuY3Rpb25zXG4gICAgcHJpdmF0ZSBmYW1peEZpbGVzID0gbmV3IFNldDxTY3JpcHRFbnRpdHkgfCBNb2R1bGU+KCk7IC8vIEFsbCBGYW1peCBmaWxlc1xuICAgIHByaXZhdGUgaWRDb3VudGVyID0gMTsgLy8gSWQgY291bnRlclxuICAgIHByaXZhdGUgYWJzb2x1dGVQYXRoOiBzdHJpbmcgPSBcIlwiO1xuICAgIHByaXZhdGUgZm14RWxlbWVudE9iamVjdE1hcCA9IG5ldyBNYXA8RmFtaXguRW50aXR5LCBUU01vcnBoT2JqZWN0VHlwZT4oKTtcbiAgICBwcml2YXRlIHRzTW9ycGhPYmplY3RNYXAgPSBuZXcgTWFwPFRTTW9ycGhPYmplY3RUeXBlLCBGYW1peC5FbnRpdHk+KCk7IC8vIFRPRE86IGFkZCB0aGlzIG1hcCB0byBoYXZlIHR3by13YXkgbWFwcGluZyBiZXR3ZWVuIEZhbWl4IGFuZCBUUyBNb3JwaCBvYmplY3RzXG4gICAgXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYWRkRWxlbWVudChuZXcgU291cmNlTGFuZ3VhZ2UoKSk7ICAvLyBhZGQgdGhlIHNvdXJjZSBsYW5ndWFnZSBlbnRpdHkgKFR5cGVTY3JpcHQpXG4gICAgfVxuXG4gICAgcHVibGljIHNldEZteEVsZW1lbnRPYmplY3RNYXAoZm14RWxlbWVudE9iamVjdE1hcDogTWFwPEZhbWl4LkVudGl0eSwgVFNNb3JwaE9iamVjdFR5cGU+KSB7XG4gICAgICAgIHRoaXMuZm14RWxlbWVudE9iamVjdE1hcCA9IGZteEVsZW1lbnRPYmplY3RNYXA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZteEVsZW1lbnRPYmplY3RNYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZteEVsZW1lbnRPYmplY3RNYXA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFic29sdXRlUGF0aCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hYnNvbHV0ZVBhdGg7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEFic29sdXRlUGF0aChwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5hYnNvbHV0ZVBhdGggPSBwYXRoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBGYW1peCBlbnRpdHkgYnkgaWRcbiAgICAgKiBAcGFyYW0gaWQgQW4gaWQgb2YgYSBGYW1peCBlbnRpdHlcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggZW50aXR5IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGlkIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgICovXG4gICAgcHVibGljIGdldEZhbWl4RW50aXR5QnlJZChpZDogbnVtYmVyKTogRmFtaXhCYXNlRWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGVudGl0eSA9IEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkuZmluZChlID0+IGUuaWQgPT09IGlkKTtcbiAgICAgICAgcmV0dXJuIGVudGl0eTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgRmFtaXggZW50aXR5IGJ5IGZ1bGx5IHF1YWxpZmllZCBuYW1lXG4gICAgICogQHBhcmFtIGZ1bGx5UXVhbGlmaWVkTmFtZSBBIGZ1bGx5IHF1YWxpZmllZCBuYW1lXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IGVudGl0eSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRGYW1peEVudGl0eUJ5RnVsbHlRdWFsaWZpZWROYW1lKGZ1bGx5UXVhbGlmaWVkTmFtZTogc3RyaW5nKTogRmFtaXhCYXNlRWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGFsbEVudGl0aWVzID0gQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnZhbHVlcygpKS5maWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmFtZWRFbnRpdHkpIGFzIEFycmF5PE5hbWVkRW50aXR5PjtcbiAgICAgICAgY29uc3QgZW50aXR5ID0gYWxsRW50aXRpZXMuZmluZChlID0+IFxuICAgICAgICAgICAgLy8ge2NvbnNvbGUubG9nKGBuYW1lZEVudGl0eTogJHtlLmZ1bGx5UXVhbGlmaWVkTmFtZX1gKTsgXG4gICAgICAgICAgICAvLyByZXR1cm4gXG4gICAgICAgICAgICBlLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lXG4gICAgICAgIC8vIH1cbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGVudGl0eTtcbiAgICB9XG5cbiAgICAvLyBNZXRob2QgdG8gZ2V0IEZhbWl4IGFjY2VzcyBieSBhY2Nlc3NvciBhbmQgdmFyaWFibGVcbiAgICBwdWJsaWMgZ2V0RmFtaXhBY2Nlc3NCeUFjY2Vzc29yQW5kVmFyaWFibGUoYWNjZXNzb3I6IEZhbWl4LkNvbnRhaW5lckVudGl0eSwgdmFyaWFibGU6IEZhbWl4LlN0cnVjdHVyYWxFbnRpdHkpOiBGYW1peC5BY2Nlc3MgfCB1bmRlZmluZWQge1xuICAgICAgICAvLyBJdGVyYXRlIHRocm91Z2ggdGhlIGxpc3Qgb2YgRmFtaXggYWNjZXNzZXMgdG8gZmluZCB0aGUgbWF0Y2hpbmcgb25lXG4gICAgICAgIGZvciAoY29uc3QgYWNjZXNzIG9mIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkuZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIEZhbWl4LkFjY2VzcykgYXMgQXJyYXk8RmFtaXguQWNjZXNzPikge1xuICAgICAgICAgICAgaWYgKGFjY2Vzcy5hY2Nlc3NvciA9PT0gYWNjZXNzb3IgJiYgYWNjZXNzLnZhcmlhYmxlID09PSB2YXJpYWJsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2Nlc3M7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmV0dXJuIHVuZGVmaW5lZCBpZiBubyBtYXRjaGluZyBhY2Nlc3MgaXMgZm91bmRcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cblxuICAgIGV4cG9ydChhcmcwOiB7IGZvcm1hdDogc3RyaW5nOyB9KSB7XG4gICAgICAgIGlmIChhcmcwLmZvcm1hdCA9PT0gXCJqc29uXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEpTT04oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIGZvcm1hdFwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gT25seSBmb3IgdGVzdHNcblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIEZhbWl4IGVudGl0aWVzXG4gICAgICogQHJldHVybnMgQWxsIEZhbWl4IGVudGl0aWVzXG4gICAgICovXG4gICAgcHVibGljIF9nZXRBbGxFbnRpdGllcygpOiBTZXQ8RmFtaXhCYXNlRWxlbWVudD4ge1xuICAgICAgICByZXR1cm4gbmV3IFNldChBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMudmFsdWVzKCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBGYW1peCBlbnRpdGllcyBvZiBhIGdpdmVuIHR5cGVcbiAgICAgKiBAcGFyYW0gdGhlVHlwZSBBIHR5cGUgb2YgRmFtaXggZW50aXR5XG4gICAgICogQHJldHVybnMgQWxsIEZhbWl4IGVudGl0aWVzIG9mIHRoZSBnaXZlbiB0eXBlXG4gICAgICovXG4gICAgcHVibGljIF9nZXRBbGxFbnRpdGllc1dpdGhUeXBlKHRoZVR5cGU6IHN0cmluZyk6IFNldDxGYW1peEJhc2VFbGVtZW50PiB7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkuZmlsdGVyKGUgPT4gKGUgYXMgRmFtaXhCYXNlRWxlbWVudCkuY29uc3RydWN0b3IubmFtZSA9PT0gdGhlVHlwZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBGYW1peCBjbGFzcyBieSBuYW1lXG4gICAgICogQHBhcmFtIG5hbWUgQSBjbGFzcyBuYW1lXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IGNsYXNzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5hbWUgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICAgKi9cbiAgICBwdWJsaWMgX2dldEZhbWl4Q2xhc3MoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBDbGFzcyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhDbGFzc2VzLnZhbHVlcygpKS5maW5kKG5zID0+IG5zLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgRmFtaXggaW50ZXJmYWNlIGJ5IG5hbWVcbiAgICAgKiBAcGFyYW0gbmFtZSBBbiBpbnRlcmZhY2UgbmFtZVxuICAgICAqIEByZXR1cm5zIFRoZSBGYW1peCBpbnRlcmZhY2UgY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBfZ2V0RmFtaXhJbnRlcmZhY2UoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBJbnRlcmZhY2UgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4SW50ZXJmYWNlcy52YWx1ZXMoKSkuZmluZChucyA9PiBucy5mdWxseVF1YWxpZmllZE5hbWUgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIEZhbWl4IG1ldGhvZCBieSBuYW1lXG4gICAgICogQHBhcmFtIG5hbWUgQSBtZXRob2QgbmFtZVxuICAgICAqIEByZXR1cm5zIFRoZSBGYW1peCBtZXRob2QgY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBfZ2V0RmFtaXhNZXRob2QoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBNZXRob2QgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4TWV0aG9kcy52YWx1ZXMoKSkuZmluZChucyA9PiBucy5mdWxseVF1YWxpZmllZE5hbWUgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIEZhbWl4IGZ1bmN0aW9uIGJ5IG5hbWVcbiAgICAgKiBAcGFyYW0gbmFtZSBBIGZ1bmN0aW9uIG5hbWVcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggZnVuY3Rpb24gY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBfZ2V0RmFtaXhGdW5jdGlvbihmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IEZhbWl4RnVuY3Rpb25FbnRpdHkgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4RnVuY3Rpb25zLnZhbHVlcygpKS5maW5kKG5zID0+IG5zLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBGYW1peCB2YXJpYWJsZSBieSBuYW1lXG4gICAgICogQHBhcmFtIG5hbWUgQSB2YXJpYWJsZSBuYW1lXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IHZhcmlhYmxlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5hbWUgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICAgKi9cbiAgICBwdWJsaWMgX2dldEZhbWl4VmFyaWFibGUoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBWYXJpYWJsZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhWYXJpYWJsZXMudmFsdWVzKCkpLmZpbmQodiA9PiB2LmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgRmFtaXggbmFtZXNwYWNlIGJ5IG5hbWVcbiAgICAgKiBAcGFyYW0gbmFtZSBBIG5hbWVzcGFjZSBuYW1lXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IG5hbWVzcGFjZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgICovXG4gICAgcHVibGljIF9nZXRGYW1peE1vZHVsZShmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IE1vZHVsZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhNb2R1bGVzLnZhbHVlcygpKS5maW5kKG5zID0+IG5zLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBGYW1peCBuYW1lc3BhY2VzXG4gICAgICogQHJldHVybnMgQWxsIEZhbWl4IG5hbWVzcGFjZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgX2dldEZhbWl4TW9kdWxlcygpOiBTZXQ8TW9kdWxlPiB7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhpcy5mYW1peE1vZHVsZXMudmFsdWVzKCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgRmFtaXggZmlsZSBieSBuYW1lXG4gICAgICogQHBhcmFtIG5hbWUgQSBmaWxlIG5hbWVcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggZmlsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgICovXG4gICAgcHVibGljIF9nZXRGYW1peEZpbGUoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBTY3JpcHRFbnRpdHkgfCBNb2R1bGUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4RmlsZXMudmFsdWVzKCkpLmZpbmQobnMgPT4gbnMubmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBGYW1peCBmaWxlc1xuICAgICAqIEByZXR1cm5zIEFsbCBGYW1peCBmaWxlc1xuICAgICAqL1xuICAgIHB1YmxpYyBfZ2V0RmFtaXhGaWxlcygpOiBTZXQ8U2NyaXB0RW50aXR5IHwgTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhpcy5mYW1peEZpbGVzLnZhbHVlcygpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgbWV0aG9kIG5hbWVzIGFzIGEgc2V0IGZyb20gYSBjbGFzc1xuICAgICAqIEBwYXJhbSBjbGFzc05hbWUgQSBjbGFzcyBuYW1lXG4gICAgICogQHJldHVybnMgVGhlIHNldCBvZiBjbGFzcyBcImNsYXNzTmFtZVwiIG1ldGhvZCBuYW1lc1xuICAgICAqL1xuICAgIHB1YmxpYyBfbWV0aG9kTmFtZXNBc1NldEZyb21DbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IFNldDxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgdGhlQ2xhc3MgPSB0aGlzLl9nZXRGYW1peENsYXNzKGNsYXNzTmFtZSkgYXMgQ2xhc3M7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhlQ2xhc3MubWV0aG9kcykubWFwKG0gPT4gbS5uYW1lKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgbWV0aG9kIHBhcmVudHMgYXMgYSBzZXQgZnJvbSBhIGNsYXNzXG4gICAgICogQHBhcmFtIGNsYXNzTmFtZSBBIGNsYXNzIG5hbWVcbiAgICAgKiBAcmV0dXJucyBUaGUgc2V0IG9mIGNsYXNzIFwiY2xhc3NOYW1lXCIgbWV0aG9kIHBhcmVudHNcbiAgICAgKi9cbiAgICBwdWJsaWMgX21ldGhvZFBhcmVudHNBc1NldEZyb21DbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IFNldDxUeXBlPiB7XG4gICAgICAgIGNvbnN0IHRoZUNsYXNzID0gdGhpcy5fZ2V0RmFtaXhDbGFzcyhjbGFzc05hbWUpIGFzIENsYXNzO1xuICAgICAgICByZXR1cm4gbmV3IFNldChBcnJheS5mcm9tKHRoZUNsYXNzLm1ldGhvZHMpLm1hcChtID0+IG0ucGFyZW50RW50aXR5KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbWFwIG9mIEZhbWl4IGVsZW1lbnQgaWRzIGFuZCB0aGVpciBGYW1peCBlbGVtZW50IGZyb20gYSBKU09OIG1vZGVsXG4gICAgICogQHBhcmFtIG1vZGVsIEEgSlNPTiBtb2RlbFxuICAgICAqIEByZXR1cm5zIFRoZSBtYXAgb2YgRmFtaXggZWxlbWVudCBpZHMgYW5kIHRoZWlyIEZhbWl4IGVsZW1lbnQgZnJvbSB0aGUgSlNPTiBtb2RlbFxuICAgICAqL1xuICAgIHB1YmxpYyBfaW5pdE1hcEZyb21Nb2RlbChtb2RlbDogc3RyaW5nKTogTWFwPG51bWJlciwgdW5rbm93bj4ge1xuICAgICAgICBjb25zdCBwYXJzZWRNb2RlbDogQXJyYXk8RmFtaXhCYXNlRWxlbWVudD4gPSBKU09OLnBhcnNlKG1vZGVsKTtcbiAgICAgICAgY29uc3QgaWRUb0VsZW1lbnRNYXA6IE1hcDxudW1iZXIsIHVua25vd24+ID0gbmV3IE1hcCgpO1xuICAgICAgICBwYXJzZWRNb2RlbC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgaWRUb0VsZW1lbnRNYXAuc2V0KGVsZW1lbnQuaWQsIGVsZW1lbnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGlkVG9FbGVtZW50TWFwO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIEZhbWl4IGVsZW1lbnQgdG8gdGhlIHJlcG9zaXRvcnlcbiAgICAgKiBAcGFyYW0gZWxlbWVudCBBIEZhbWl4IGVsZW1lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRWxlbWVudChlbGVtZW50OiBGYW1peEJhc2VFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgQWRkaW5nIEZhbWl4IGVsZW1lbnQgJHtlbGVtZW50LmNvbnN0cnVjdG9yLm5hbWV9IHdpdGggaWQgJHtlbGVtZW50LmlkfWApO1xuICAgICAgICBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIENsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLmZhbWl4Q2xhc3Nlcy5hZGQoZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIEludGVyZmFjZSkge1xuICAgICAgICAgICAgdGhpcy5mYW1peEludGVyZmFjZXMuYWRkKGVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBNb2R1bGUpIHtcbiAgICAgICAgICAgIHRoaXMuZmFtaXhNb2R1bGVzLmFkZChlbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50IGluc3RhbmNlb2YgVmFyaWFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZmFtaXhWYXJpYWJsZXMuYWRkKGVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBNZXRob2QpIHtcbiAgICAgICAgICAgIHRoaXMuZmFtaXhNZXRob2RzLmFkZChlbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50IGluc3RhbmNlb2YgRmFtaXhGdW5jdGlvbkVudGl0eSB8fCBlbGVtZW50IGluc3RhbmNlb2YgQXJyb3dGdW5jdGlvbikge1xuICAgICAgICAgICAgdGhpcy5mYW1peEZ1bmN0aW9ucy5hZGQoZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIFNjcmlwdEVudGl0eSB8fCBlbGVtZW50IGluc3RhbmNlb2YgTW9kdWxlKSB7XG4gICAgICAgICAgICB0aGlzLmZhbWl4RmlsZXMuYWRkKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWxlbWVudHMuYWRkKGVsZW1lbnQpO1xuICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5pZENvdW50ZXI7XG4gICAgICAgIHRoaXMuaWRDb3VudGVyKys7XG4gICAgICAgIHRoaXMudmFsaWRhdGVGUU5zKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZXMgb2YgYWxsIEZhbWl4IGVsZW1lbnRzXG4gICAgICovXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUZRTnMoKTogdm9pZCB7XG4gICAgICAgIC8vIG1ha2Ugc3VyZSBhbGwgZWxlbWVudHMgaGF2ZSB1bmlxdWUgZnVsbHkgcXVhbGlmaWVkIG5hbWVzXG4gICAgICAgIGNvbnN0IGZxbnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkpIHtcbiAgICAgICAgICAgIC8vIGlnbm9yZSBldmVyeXRoaW5nIHRoYXQgaXMgbm90IGEgTmFtZWRFbnRpdHlcbiAgICAgICAgICAgIGlmIChlbGVtZW50IGluc3RhbmNlb2YgTmFtZWRFbnRpdHkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5mdWxseVF1YWxpZmllZE5hbWUgJiYgZnFucy5oYXMoZWxlbWVudC5mdWxseVF1YWxpZmllZE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoZUV4aXN0aW5nRWxlbWVudCA9IEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkuZmluZChlID0+IChlIGFzIE5hbWVkRW50aXR5KS5mdWxseVF1YWxpZmllZE5hbWUgPT09IGVsZW1lbnQuZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgJHtlbGVtZW50LmZ1bGx5UXVhbGlmaWVkTmFtZX0gaXMgbm90IHVuaXF1ZS5cXG5JdCBleGlzdHMgZm9yICR7dGhlRXhpc3RpbmdFbGVtZW50Py5nZXRKU09OKCl9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHRoZU5hbWUgPSAoZWxlbWVudCBhcyBOYW1lZEVudGl0eSkuZnVsbHlRdWFsaWZpZWROYW1lO1xuICAgICAgICAgICAgICAgIGlmICh0aGVOYW1lID09PSB1bmRlZmluZWQgfHwgdGhlTmFtZSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBlbGVtZW50ICR7ZWxlbWVudC5jb25zdHJ1Y3Rvci5uYW1lfSB3aXRoIGlkICR7ZWxlbWVudC5pZH0gaGFzIG5vIHZhbGlkIGZ1bGx5IHF1YWxpZmllZCBuYW1lYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZxbnMuYWRkKHRoZU5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVwb3NpdG9yeVxuICAgICAqIEByZXR1cm5zIEEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVwb3NpdG9yeVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGxldCByZXQgPSBcIltcIjtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkpIHtcbiAgICAgICAgICAgIHJldCA9IHJldCArIGVsZW1lbnQuZ2V0SlNPTigpICsgXCIsXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0ID0gcmV0LnN1YnN0cmluZygwLCByZXQubGVuZ3RoIC0gMSk7XG4gICAgICAgIHJldHVybiByZXQgKyBcIl1cIjtcbiAgICB9XG59XG4iXX0=
@@ -38,4 +38,4 @@ const famix_JSON_exporter_1 = require("./famix_JSON_exporter");
38
38
  const famix_repository_1 = require("./famix_repository");
39
39
  const model = { Famix };
40
40
  module.exports = { FamixBaseElement: famix_base_element_1.FamixBaseElement, FamixJSONExporter: famix_JSON_exporter_1.FamixJSONExporter, FamixRepository: famix_repository_1.FamixRepository, model };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2ZhbWl4L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBdUM7QUFDdkMsNkRBQXdEO0FBQ3hELCtEQUEwRDtBQUMxRCx5REFBcUQ7QUFFckQsTUFBTSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUV4QixpQkFBUyxFQUFFLGdCQUFnQixFQUFoQixxQ0FBZ0IsRUFBRSxpQkFBaUIsRUFBakIsdUNBQWlCLEVBQUUsZUFBZSxFQUFmLGtDQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBGYW1peCBmcm9tIFwiLi9tb2RlbC9mYW1peFwiO1xyXG5pbXBvcnQgeyBGYW1peEJhc2VFbGVtZW50IH0gZnJvbSBcIi4vZmFtaXhfYmFzZV9lbGVtZW50XCI7XHJcbmltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xyXG5pbXBvcnQgeyBGYW1peFJlcG9zaXRvcnkgfSBmcm9tIFwiLi9mYW1peF9yZXBvc2l0b3J5XCI7XHJcblxyXG5jb25zdCBtb2RlbCA9IHsgRmFtaXggfTtcclxuXHJcbmV4cG9ydCA9IHsgRmFtaXhCYXNlRWxlbWVudCwgRmFtaXhKU09ORXhwb3J0ZXIsIEZhbWl4UmVwb3NpdG9yeSwgbW9kZWwgfTtcclxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2ZhbWl4L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBdUM7QUFDdkMsNkRBQXdEO0FBQ3hELCtEQUEwRDtBQUMxRCx5REFBcUQ7QUFFckQsTUFBTSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUV4QixpQkFBUyxFQUFFLGdCQUFnQixFQUFoQixxQ0FBZ0IsRUFBRSxpQkFBaUIsRUFBakIsdUNBQWlCLEVBQUUsZUFBZSxFQUFmLGtDQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBGYW1peCBmcm9tIFwiLi9tb2RlbC9mYW1peFwiO1xuaW1wb3J0IHsgRmFtaXhCYXNlRWxlbWVudCB9IGZyb20gXCIuL2ZhbWl4X2Jhc2VfZWxlbWVudFwiO1xuaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBGYW1peFJlcG9zaXRvcnkgfSBmcm9tIFwiLi9mYW1peF9yZXBvc2l0b3J5XCI7XG5cbmNvbnN0IG1vZGVsID0geyBGYW1peCB9O1xuXG5leHBvcnQgPSB7IEZhbWl4QmFzZUVsZW1lbnQsIEZhbWl4SlNPTkV4cG9ydGVyLCBGYW1peFJlcG9zaXRvcnksIG1vZGVsIH07XG4iXX0=
@@ -37,4 +37,4 @@ class Access extends entity_1.Entity {
37
37
  }
38
38
  }
39
39
  exports.Access = Access;
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9hY2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBRzlELHFDQUFrQztBQUVsQyxNQUFhLE1BQU8sU0FBUSxlQUFNO0lBTXZCLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxRQUFRLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsUUFBeUI7UUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUEwQjtRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsT0FBZ0I7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDNUIsQ0FBQztDQUNKO0FBNUNELHdCQTRDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgU3RydWN0dXJhbEVudGl0eSB9IGZyb20gXCIuL3N0cnVjdHVyYWxfZW50aXR5XCI7XHJcbmltcG9ydCB7IENvbnRhaW5lckVudGl0eSB9IGZyb20gXCIuL2NvbnRhaW5lcl9lbnRpdHlcIjtcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSBcIi4vZW50aXR5XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQWNjZXNzIGV4dGVuZHMgRW50aXR5IHtcclxuXHJcbiAgICBwcml2YXRlIF9hY2Nlc3NvciE6IENvbnRhaW5lckVudGl0eTtcclxuICAgIHByaXZhdGUgX3ZhcmlhYmxlITogU3RydWN0dXJhbEVudGl0eTtcclxuICAgIHByaXZhdGUgX2lzV3JpdGUhOiBib29sZWFuO1xyXG5cclxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJBY2Nlc3NcIiwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcclxuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImFjY2Vzc29yXCIsIHRoaXMuYWNjZXNzb3IpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwidmFyaWFibGVcIiwgdGhpcy52YXJpYWJsZSk7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJpc1dyaXRlXCIsIHRoaXMuaXNXcml0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGFjY2Vzc29yKCk6IENvbnRhaW5lckVudGl0eSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjY2Vzc29yO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBhY2Nlc3NvcihhY2Nlc3NvcjogQ29udGFpbmVyRW50aXR5KSB7XHJcbiAgICAgICAgdGhpcy5fYWNjZXNzb3IgPSBhY2Nlc3NvcjtcclxuICAgICAgICBhY2Nlc3Nvci5hZGRBY2Nlc3ModGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHZhcmlhYmxlKCk6IFN0cnVjdHVyYWxFbnRpdHkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92YXJpYWJsZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgdmFyaWFibGUodmFyaWFibGU6IFN0cnVjdHVyYWxFbnRpdHkpIHtcclxuICAgICAgICB0aGlzLl92YXJpYWJsZSA9IHZhcmlhYmxlO1xyXG4gICAgICAgIHZhcmlhYmxlLmFkZEluY29taW5nQWNjZXNzKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc1dyaXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9pc1dyaXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpc1dyaXRlKGlzV3JpdGU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9pc1dyaXRlID0gaXNXcml0ZTtcclxuICAgIH1cclxufVxyXG4iXX0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9hY2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBRzlELHFDQUFrQztBQUVsQyxNQUFhLE1BQU8sU0FBUSxlQUFNO0lBTXZCLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxRQUFRLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsUUFBeUI7UUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUEwQjtRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsT0FBZ0I7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDNUIsQ0FBQztDQUNKO0FBNUNELHdCQTRDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFN0cnVjdHVyYWxFbnRpdHkgfSBmcm9tIFwiLi9zdHJ1Y3R1cmFsX2VudGl0eVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyRW50aXR5IH0gZnJvbSBcIi4vY29udGFpbmVyX2VudGl0eVwiO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSBcIi4vZW50aXR5XCI7XG5cbmV4cG9ydCBjbGFzcyBBY2Nlc3MgZXh0ZW5kcyBFbnRpdHkge1xuXG4gICAgcHJpdmF0ZSBfYWNjZXNzb3IhOiBDb250YWluZXJFbnRpdHk7XG4gICAgcHJpdmF0ZSBfdmFyaWFibGUhOiBTdHJ1Y3R1cmFsRW50aXR5O1xuICAgIHByaXZhdGUgX2lzV3JpdGUhOiBib29sZWFuO1xuXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJBY2Nlc3NcIiwgdGhpcyk7XG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJhY2Nlc3NvclwiLCB0aGlzLmFjY2Vzc29yKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJ2YXJpYWJsZVwiLCB0aGlzLnZhcmlhYmxlKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJpc1dyaXRlXCIsIHRoaXMuaXNXcml0ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGFjY2Vzc29yKCk6IENvbnRhaW5lckVudGl0eSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY2Nlc3NvcjtcbiAgICB9XG5cbiAgICBzZXQgYWNjZXNzb3IoYWNjZXNzb3I6IENvbnRhaW5lckVudGl0eSkge1xuICAgICAgICB0aGlzLl9hY2Nlc3NvciA9IGFjY2Vzc29yO1xuICAgICAgICBhY2Nlc3Nvci5hZGRBY2Nlc3ModGhpcyk7XG4gICAgfVxuXG4gICAgZ2V0IHZhcmlhYmxlKCk6IFN0cnVjdHVyYWxFbnRpdHkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFyaWFibGU7XG4gICAgfVxuXG4gICAgc2V0IHZhcmlhYmxlKHZhcmlhYmxlOiBTdHJ1Y3R1cmFsRW50aXR5KSB7XG4gICAgICAgIHRoaXMuX3ZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgICAgIHZhcmlhYmxlLmFkZEluY29taW5nQWNjZXNzKHRoaXMpO1xuICAgIH1cblxuICAgIGdldCBpc1dyaXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNXcml0ZTtcbiAgICB9XG5cbiAgICBzZXQgaXNXcml0ZShpc1dyaXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzV3JpdGUgPSBpc1dyaXRlO1xuICAgIH1cbn1cbiJdfQ==
@@ -14,4 +14,4 @@ class Accessor extends method_1.Method {
14
14
  }
15
15
  }
16
16
  exports.Accessor = Accessor;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2FjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCxxQ0FBa0M7QUFFbEMsTUFBYSxRQUFTLFNBQVEsZUFBTTtJQUUzQixPQUFPO1FBQ1osTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDeEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQVhELDRCQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xyXG5pbXBvcnQgeyBNZXRob2QgfSBmcm9tIFwiLi9tZXRob2RcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBY2Nlc3NvciBleHRlbmRzIE1ldGhvZCB7XHJcbiAgXHJcbiAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiQWNjZXNzb3JcIiwgdGhpcyk7XHJcbiAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xyXG4gICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xyXG4gICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xyXG4gIH1cclxufVxyXG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2FjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCxxQ0FBa0M7QUFFbEMsTUFBYSxRQUFTLFNBQVEsZUFBTTtJQUUzQixPQUFPO1FBQ1osTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDeEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQVhELDRCQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgTWV0aG9kIH0gZnJvbSBcIi4vbWV0aG9kXCI7XG5cbmV4cG9ydCBjbGFzcyBBY2Nlc3NvciBleHRlbmRzIE1ldGhvZCB7XG4gIFxuICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiQWNjZXNzb3JcIiwgdGhpcyk7XG4gICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICB9XG59XG4iXX0=
@@ -30,4 +30,4 @@ class Alias extends named_entity_1.NamedEntity {
30
30
  }
31
31
  }
32
32
  exports.Alias = Alias;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2FsaWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCxpREFBNkM7QUFHN0MsTUFBYSxLQUFNLFNBQVEsMEJBQVc7SUFLM0IsT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLFlBQXlCO1FBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxhQUFhLENBQUMsYUFBbUI7UUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7UUFDcEMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0o7QUFsQ0Qsc0JBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xyXG5pbXBvcnQgeyBOYW1lZEVudGl0eSB9IGZyb20gXCIuL25hbWVkX2VudGl0eVwiO1xyXG5pbXBvcnQgeyBUeXBlIH0gZnJvbSBcIi4vdHlwZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFsaWFzIGV4dGVuZHMgTmFtZWRFbnRpdHkge1xyXG5cclxuICAgIHByaXZhdGUgX3BhcmVudEVudGl0eSE6IE5hbWVkRW50aXR5O1xyXG4gICAgcHJpdmF0ZSBfYWxpYXNlZEVudGl0eSE6IFR5cGU7XHJcblxyXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkFsaWFzXCIsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XHJcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJwYXJlbnRUeXBlXCIsIHRoaXMucGFyZW50RW50aXR5KTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImFsaWFzZWRFbnRpdHlcIiwgdGhpcy5hbGlhc2VkRW50aXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGFyZW50RW50aXR5KCk6IE5hbWVkRW50aXR5IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50RW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBwYXJlbnRFbnRpdHkocGFyZW50RW50aXR5OiBOYW1lZEVudGl0eSkge1xyXG4gICAgICAgIHRoaXMuX3BhcmVudEVudGl0eSA9IHBhcmVudEVudGl0eTtcclxuICAgICAgICBwYXJlbnRFbnRpdHkuYWRkQWxpYXModGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGFsaWFzZWRFbnRpdHkoKTogVHlwZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FsaWFzZWRFbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGFsaWFzZWRFbnRpdHkoYWxpYXNlZEVudGl0eTogVHlwZSkge1xyXG4gICAgICAgIHRoaXMuX2FsaWFzZWRFbnRpdHkgPSBhbGlhc2VkRW50aXR5O1xyXG4gICAgICAgIGFsaWFzZWRFbnRpdHkuYWRkVHlwZUFsaWFzKHRoaXMpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2FsaWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCxpREFBNkM7QUFHN0MsTUFBYSxLQUFNLFNBQVEsMEJBQVc7SUFLM0IsT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLFlBQXlCO1FBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxhQUFhLENBQUMsYUFBbUI7UUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7UUFDcEMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0o7QUFsQ0Qsc0JBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgTmFtZWRFbnRpdHkgfSBmcm9tIFwiLi9uYW1lZF9lbnRpdHlcIjtcbmltcG9ydCB7IFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XG5cbmV4cG9ydCBjbGFzcyBBbGlhcyBleHRlbmRzIE5hbWVkRW50aXR5IHtcblxuICAgIHByaXZhdGUgX3BhcmVudEVudGl0eSE6IE5hbWVkRW50aXR5O1xuICAgIHByaXZhdGUgX2FsaWFzZWRFbnRpdHkhOiBUeXBlO1xuXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJBbGlhc1wiLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInBhcmVudFR5cGVcIiwgdGhpcy5wYXJlbnRFbnRpdHkpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImFsaWFzZWRFbnRpdHlcIiwgdGhpcy5hbGlhc2VkRW50aXR5KTtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50RW50aXR5KCk6IE5hbWVkRW50aXR5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudEVudGl0eTtcbiAgICB9XG5cbiAgICBzZXQgcGFyZW50RW50aXR5KHBhcmVudEVudGl0eTogTmFtZWRFbnRpdHkpIHtcbiAgICAgICAgdGhpcy5fcGFyZW50RW50aXR5ID0gcGFyZW50RW50aXR5O1xuICAgICAgICBwYXJlbnRFbnRpdHkuYWRkQWxpYXModGhpcyk7XG4gICAgfVxuXG4gICAgZ2V0IGFsaWFzZWRFbnRpdHkoKTogVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hbGlhc2VkRW50aXR5O1xuICAgIH1cblxuICAgIHNldCBhbGlhc2VkRW50aXR5KGFsaWFzZWRFbnRpdHk6IFR5cGUpIHtcbiAgICAgICAgdGhpcy5fYWxpYXNlZEVudGl0eSA9IGFsaWFzZWRFbnRpdHk7XG4gICAgICAgIGFsaWFzZWRFbnRpdHkuYWRkVHlwZUFsaWFzKHRoaXMpO1xuICAgIH1cbn1cbiJdfQ==
@@ -14,4 +14,4 @@ class ArrowFunction extends behavioral_entity_1.BehavioralEntity {
14
14
  }
15
15
  }
16
16
  exports.ArrowFunction = ArrowFunction;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3dfZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2Fycm93X2Z1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCwyREFBdUQ7QUFFdkQsTUFBYSxhQUFjLFNBQVEsb0NBQWdCO0lBRTFDLE9BQU87UUFDWixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN4RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBWEQsc0NBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XHJcbmltcG9ydCB7IEJlaGF2aW9yYWxFbnRpdHkgfSBmcm9tIFwiLi9iZWhhdmlvcmFsX2VudGl0eVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFycm93RnVuY3Rpb24gZXh0ZW5kcyBCZWhhdmlvcmFsRW50aXR5IHtcclxuXHJcbiAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiQXJyb3dGdW5jdGlvblwiLCB0aGlzKTtcclxuICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XHJcbiAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XHJcbiAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3dfZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2Fycm93X2Z1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCwyREFBdUQ7QUFFdkQsTUFBYSxhQUFjLFNBQVEsb0NBQWdCO0lBRTFDLE9BQU87UUFDWixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN4RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBWEQsc0NBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBCZWhhdmlvcmFsRW50aXR5IH0gZnJvbSBcIi4vYmVoYXZpb3JhbF9lbnRpdHlcIjtcblxuZXhwb3J0IGNsYXNzIEFycm93RnVuY3Rpb24gZXh0ZW5kcyBCZWhhdmlvcmFsRW50aXR5IHtcblxuICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiQXJyb3dGdW5jdGlvblwiLCB0aGlzKTtcbiAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gIH1cbn1cbiJdfQ==
@@ -76,4 +76,4 @@ class BehavioralEntity extends container_entity_1.ContainerEntity {
76
76
  }
77
77
  }
78
78
  exports.BehavioralEntity = BehavioralEntity;
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZpb3JhbF9lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2JlaGF2aW9yYWxfZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUU5RCx5REFBcUQ7QUFLckQsTUFBYSxnQkFBaUIsU0FBUSxrQ0FBZTtJQUFyRDs7UUFHWSxnQkFBVyxHQUFtQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBVXhDLHlCQUFvQixHQUFvQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBVWxELHVCQUFrQixHQUF1QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBa0UvRCxDQUFDO0lBcEZVLFlBQVksQ0FBQyxTQUFvQjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztJQUtNLHFCQUFxQixDQUFDLGtCQUE4QjtRQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2xELGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0wsQ0FBQztJQUtNLG1CQUFtQixDQUFDLGdCQUErQjtRQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0I7UUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRCxRQUFRLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BFLFFBQVEsQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdEUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELDJFQUEyRTtRQUMzRSw2RUFBNkU7SUFDakYsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsU0FBaUI7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksa0JBQWtCLENBQUMsa0JBQTBCO1FBQzdDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxZQUFZLENBQUMsWUFBa0I7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7UUFDbEMsWUFBWSxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0NBQ0o7QUF6RkQsNENBeUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xyXG5pbXBvcnQgeyBUeXBlIH0gZnJvbSBcIi4vdHlwZVwiO1xyXG5pbXBvcnQgeyBDb250YWluZXJFbnRpdHkgfSBmcm9tIFwiLi9jb250YWluZXJfZW50aXR5XCI7XHJcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gXCIuL3BhcmFtZXRlclwiO1xyXG5pbXBvcnQgeyBJbnZvY2F0aW9uIH0gZnJvbSBcIi4vaW52b2NhdGlvblwiO1xyXG5pbXBvcnQgeyBQYXJhbWV0ZXJUeXBlIH0gZnJvbSBcIi4vcGFyYW1ldGVyX3R5cGVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBCZWhhdmlvcmFsRW50aXR5IGV4dGVuZHMgQ29udGFpbmVyRW50aXR5IHtcclxuXHJcbiAgICBwcml2YXRlIF9zaWduYXR1cmUhOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9wYXJhbWV0ZXJzOiBTZXQ8UGFyYW1ldGVyPiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwdWJsaWMgYWRkUGFyYW1ldGVyKHBhcmFtZXRlcjogUGFyYW1ldGVyKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9wYXJhbWV0ZXJzLmhhcyhwYXJhbWV0ZXIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3BhcmFtZXRlcnMuYWRkKHBhcmFtZXRlcik7XHJcbiAgICAgICAgICAgIHBhcmFtZXRlci5wYXJlbnRFbnRpdHkgPSB0aGlzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9udW1iZXJPZlBhcmFtZXRlcnMhOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9pbmNvbWluZ0ludm9jYXRpb25zOiBTZXQ8SW52b2NhdGlvbj4gPSBuZXcgU2V0KCk7XHJcblxyXG4gICAgcHVibGljIGFkZEluY29taW5nSW52b2NhdGlvbihpbmNvbWluZ0ludm9jYXRpb246IEludm9jYXRpb24pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2luY29taW5nSW52b2NhdGlvbnMuaGFzKGluY29taW5nSW52b2NhdGlvbikpIHtcclxuICAgICAgICAgICAgdGhpcy5faW5jb21pbmdJbnZvY2F0aW9ucy5hZGQoaW5jb21pbmdJbnZvY2F0aW9uKTtcclxuICAgICAgICAgICAgaW5jb21pbmdJbnZvY2F0aW9uLmFkZENhbmRpZGF0ZSh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZGVjbGFyZWRUeXBlITogVHlwZTtcclxuICAgIHByaXZhdGUgX2dlbmVyaWNQYXJhbWV0ZXJzOiBTZXQ8UGFyYW1ldGVyVHlwZT4gPSBuZXcgU2V0KCk7XHJcblxyXG4gICAgcHVibGljIGFkZEdlbmVyaWNQYXJhbWV0ZXIoZ2VuZXJpY1BhcmFtZXRlcjogUGFyYW1ldGVyVHlwZSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5fZ2VuZXJpY1BhcmFtZXRlcnMuaGFzKGdlbmVyaWNQYXJhbWV0ZXIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2dlbmVyaWNQYXJhbWV0ZXJzLmFkZChnZW5lcmljUGFyYW1ldGVyKTtcclxuICAgICAgICAgICAgZ2VuZXJpY1BhcmFtZXRlci5wYXJlbnRHZW5lcmljID0gdGhpcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJHZW5lcmljUGFyYW1ldGVycygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9nZW5lcmljUGFyYW1ldGVycy5jbGVhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJCZWhhdmlvcmFsRW50aXR5XCIsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XHJcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJzaWduYXR1cmVcIiwgdGhpcy5zaWduYXR1cmUpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwicGFyYW1ldGVyc1wiLCB0aGlzLnBhcmFtZXRlcnMpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwibnVtYmVyT2ZQYXJhbWV0ZXJzXCIsIHRoaXMubnVtYmVyT2ZQYXJhbWV0ZXJzKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImluY29taW5nSW52b2NhdGlvbnNcIiwgdGhpcy5pbmNvbWluZ0ludm9jYXRpb25zKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImRlY2xhcmVkVHlwZVwiLCB0aGlzLmRlY2xhcmVkVHlwZSk7XHJcbiAgICAgICAgLyogZG9uJ3QgYWRkIHRoZSBwcm9wZXJ0eSBoZXJlLCBzaW5jZSBpdCBkb2Vzbid0IGFwcGx5IHRvIGFsbCBzdWJjbGFzc2VzICovXHJcbiAgICAgICAgLy8gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJnZW5lcmljUGFyYW1ldGVyc1wiLCB0aGlzLmdldEdlbmVyaWNQYXJhbWV0ZXJzKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzaWduYXR1cmUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2lnbmF0dXJlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBzaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zaWduYXR1cmUgPSBzaWduYXR1cmU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBhcmFtZXRlcnMoKTogU2V0PFBhcmFtZXRlcj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJhbWV0ZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBudW1iZXJPZlBhcmFtZXRlcnMoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbnVtYmVyT2ZQYXJhbWV0ZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBudW1iZXJPZlBhcmFtZXRlcnMobnVtYmVyT2ZQYXJhbWV0ZXJzOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9udW1iZXJPZlBhcmFtZXRlcnMgPSBudW1iZXJPZlBhcmFtZXRlcnM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGluY29taW5nSW52b2NhdGlvbnMoKTogU2V0PEludm9jYXRpb24+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faW5jb21pbmdJbnZvY2F0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVjbGFyZWRUeXBlKCk6IFR5cGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kZWNsYXJlZFR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGRlY2xhcmVkVHlwZShkZWNsYXJlZFR5cGU6IFR5cGUpIHtcclxuICAgICAgICB0aGlzLl9kZWNsYXJlZFR5cGUgPSBkZWNsYXJlZFR5cGU7XHJcbiAgICAgICAgZGVjbGFyZWRUeXBlLmFkZEJlaGF2aW9yYWxFbnRpdHlXaXRoRGVjbGFyZWRUeXBlKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBnZW5lcmljUGFyYW1ldGVycygpOiBTZXQ8UGFyYW1ldGVyVHlwZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZW5lcmljUGFyYW1ldGVycztcclxuICAgIH1cclxufVxyXG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZpb3JhbF9lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2JlaGF2aW9yYWxfZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUU5RCx5REFBcUQ7QUFLckQsTUFBYSxnQkFBaUIsU0FBUSxrQ0FBZTtJQUFyRDs7UUFHWSxnQkFBVyxHQUFtQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBVXhDLHlCQUFvQixHQUFvQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBVWxELHVCQUFrQixHQUF1QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBa0UvRCxDQUFDO0lBcEZVLFlBQVksQ0FBQyxTQUFvQjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztJQUtNLHFCQUFxQixDQUFDLGtCQUE4QjtRQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2xELGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0wsQ0FBQztJQUtNLG1CQUFtQixDQUFDLGdCQUErQjtRQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0I7UUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRCxRQUFRLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BFLFFBQVEsQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdEUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELDJFQUEyRTtRQUMzRSw2RUFBNkU7SUFDakYsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsU0FBaUI7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksa0JBQWtCLENBQUMsa0JBQTBCO1FBQzdDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxZQUFZLENBQUMsWUFBa0I7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7UUFDbEMsWUFBWSxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0NBQ0o7QUF6RkQsNENBeUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IENvbnRhaW5lckVudGl0eSB9IGZyb20gXCIuL2NvbnRhaW5lcl9lbnRpdHlcIjtcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gXCIuL3BhcmFtZXRlclwiO1xuaW1wb3J0IHsgSW52b2NhdGlvbiB9IGZyb20gXCIuL2ludm9jYXRpb25cIjtcbmltcG9ydCB7IFBhcmFtZXRlclR5cGUgfSBmcm9tIFwiLi9wYXJhbWV0ZXJfdHlwZVwiO1xuXG5leHBvcnQgY2xhc3MgQmVoYXZpb3JhbEVudGl0eSBleHRlbmRzIENvbnRhaW5lckVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9zaWduYXR1cmUhOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfcGFyYW1ldGVyczogU2V0PFBhcmFtZXRlcj4gPSBuZXcgU2V0KCk7XG5cbiAgICBwdWJsaWMgYWRkUGFyYW1ldGVyKHBhcmFtZXRlcjogUGFyYW1ldGVyKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fcGFyYW1ldGVycy5oYXMocGFyYW1ldGVyKSkge1xuICAgICAgICAgICAgdGhpcy5fcGFyYW1ldGVycy5hZGQocGFyYW1ldGVyKTtcbiAgICAgICAgICAgIHBhcmFtZXRlci5wYXJlbnRFbnRpdHkgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbnVtYmVyT2ZQYXJhbWV0ZXJzITogbnVtYmVyO1xuICAgIHByaXZhdGUgX2luY29taW5nSW52b2NhdGlvbnM6IFNldDxJbnZvY2F0aW9uPiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRJbmNvbWluZ0ludm9jYXRpb24oaW5jb21pbmdJbnZvY2F0aW9uOiBJbnZvY2F0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faW5jb21pbmdJbnZvY2F0aW9ucy5oYXMoaW5jb21pbmdJbnZvY2F0aW9uKSkge1xuICAgICAgICAgICAgdGhpcy5faW5jb21pbmdJbnZvY2F0aW9ucy5hZGQoaW5jb21pbmdJbnZvY2F0aW9uKTtcbiAgICAgICAgICAgIGluY29taW5nSW52b2NhdGlvbi5hZGRDYW5kaWRhdGUodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kZWNsYXJlZFR5cGUhOiBUeXBlO1xuICAgIHByaXZhdGUgX2dlbmVyaWNQYXJhbWV0ZXJzOiBTZXQ8UGFyYW1ldGVyVHlwZT4gPSBuZXcgU2V0KCk7XG5cbiAgICBwdWJsaWMgYWRkR2VuZXJpY1BhcmFtZXRlcihnZW5lcmljUGFyYW1ldGVyOiBQYXJhbWV0ZXJUeXBlKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fZ2VuZXJpY1BhcmFtZXRlcnMuaGFzKGdlbmVyaWNQYXJhbWV0ZXIpKSB7XG4gICAgICAgICAgICB0aGlzLl9nZW5lcmljUGFyYW1ldGVycy5hZGQoZ2VuZXJpY1BhcmFtZXRlcik7XG4gICAgICAgICAgICBnZW5lcmljUGFyYW1ldGVyLnBhcmVudEdlbmVyaWMgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xlYXJHZW5lcmljUGFyYW1ldGVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZ2VuZXJpY1BhcmFtZXRlcnMuY2xlYXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkJlaGF2aW9yYWxFbnRpdHlcIiwgdGhpcyk7XG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJzaWduYXR1cmVcIiwgdGhpcy5zaWduYXR1cmUpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInBhcmFtZXRlcnNcIiwgdGhpcy5wYXJhbWV0ZXJzKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJudW1iZXJPZlBhcmFtZXRlcnNcIiwgdGhpcy5udW1iZXJPZlBhcmFtZXRlcnMpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImluY29taW5nSW52b2NhdGlvbnNcIiwgdGhpcy5pbmNvbWluZ0ludm9jYXRpb25zKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJkZWNsYXJlZFR5cGVcIiwgdGhpcy5kZWNsYXJlZFR5cGUpO1xuICAgICAgICAvKiBkb24ndCBhZGQgdGhlIHByb3BlcnR5IGhlcmUsIHNpbmNlIGl0IGRvZXNuJ3QgYXBwbHkgdG8gYWxsIHN1YmNsYXNzZXMgKi9cbiAgICAgICAgLy8gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJnZW5lcmljUGFyYW1ldGVyc1wiLCB0aGlzLmdldEdlbmVyaWNQYXJhbWV0ZXJzKCkpO1xuICAgIH1cblxuICAgIGdldCBzaWduYXR1cmUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZTtcbiAgICB9XG5cbiAgICBzZXQgc2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NpZ25hdHVyZSA9IHNpZ25hdHVyZTtcbiAgICB9XG5cbiAgICBnZXQgcGFyYW1ldGVycygpOiBTZXQ8UGFyYW1ldGVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJhbWV0ZXJzO1xuICAgIH1cblxuICAgIGdldCBudW1iZXJPZlBhcmFtZXRlcnMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX251bWJlck9mUGFyYW1ldGVycztcbiAgICB9XG5cbiAgICBzZXQgbnVtYmVyT2ZQYXJhbWV0ZXJzKG51bWJlck9mUGFyYW1ldGVyczogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX251bWJlck9mUGFyYW1ldGVycyA9IG51bWJlck9mUGFyYW1ldGVycztcbiAgICB9XG5cbiAgICBnZXQgaW5jb21pbmdJbnZvY2F0aW9ucygpOiBTZXQ8SW52b2NhdGlvbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5jb21pbmdJbnZvY2F0aW9ucztcbiAgICB9XG5cbiAgICBnZXQgZGVjbGFyZWRUeXBlKCk6IFR5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVjbGFyZWRUeXBlO1xuICAgIH1cblxuICAgIHNldCBkZWNsYXJlZFR5cGUoZGVjbGFyZWRUeXBlOiBUeXBlKSB7XG4gICAgICAgIHRoaXMuX2RlY2xhcmVkVHlwZSA9IGRlY2xhcmVkVHlwZTtcbiAgICAgICAgZGVjbGFyZWRUeXBlLmFkZEJlaGF2aW9yYWxFbnRpdHlXaXRoRGVjbGFyZWRUeXBlKHRoaXMpO1xuICAgIH1cblxuICAgIGdldCBnZW5lcmljUGFyYW1ldGVycygpOiBTZXQ8UGFyYW1ldGVyVHlwZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2VuZXJpY1BhcmFtZXRlcnM7XG4gICAgfVxufVxuIl19
@@ -68,4 +68,4 @@ class Class extends type_1.Type {
68
68
  }
69
69
  }
70
70
  exports.Class = Class;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2NsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCxpQ0FBOEI7QUFLOUIsTUFBYSxLQUFNLFNBQVEsV0FBSTtJQUEvQjs7UUFHWSxnQkFBVyxHQUFrQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBU3ZDLGFBQVEsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVNsQyx1QkFBa0IsR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVNqRCxxQkFBZ0IsR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQWdEM0QsQ0FBQztJQXpFVSxXQUFXLENBQUMsUUFBa0I7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0IsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDakMsQ0FBQztJQUNMLENBQUM7SUFJTSxTQUFTLENBQUMsTUFBYztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQixNQUFNLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDO0lBQ0wsQ0FBQztJQUlNLG1CQUFtQixDQUFDLGdCQUE2QjtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlDLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7SUFJTSxpQkFBaUIsQ0FBQyxjQUEyQjtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDMUMsY0FBYyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7SUFHTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRCxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxzQ0FBc0M7UUFDM0YsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLFFBQVEsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsVUFBbUI7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztDQUNKO0FBOUVELHNCQThFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcclxuaW1wb3J0IHsgTWV0aG9kIH0gZnJvbSBcIi4vbWV0aG9kXCI7XHJcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSBcIi4vcHJvcGVydHlcIjtcclxuaW1wb3J0IHsgSW5oZXJpdGFuY2UgfSBmcm9tIFwiLi9pbmhlcml0YW5jZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENsYXNzIGV4dGVuZHMgVHlwZSB7XHJcblxyXG4gICAgcHJpdmF0ZSBfaXNBYnN0cmFjdCE6IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9wcm9wZXJ0aWVzOiBTZXQ8UHJvcGVydHk+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0eShwcm9wZXJ0eTogUHJvcGVydHkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX3Byb3BlcnRpZXMuaGFzKHByb3BlcnR5KSkge1xyXG4gICAgICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzLmFkZChwcm9wZXJ0eSk7XHJcbiAgICAgICAgICAgIHByb3BlcnR5LnBhcmVudEVudGl0eSA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX21ldGhvZHM6IFNldDxNZXRob2Q+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHB1YmxpYyBhZGRNZXRob2QobWV0aG9kOiBNZXRob2QpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX21ldGhvZHMuaGFzKG1ldGhvZCkpIHtcclxuICAgICAgICAgICAgdGhpcy5fbWV0aG9kcy5hZGQobWV0aG9kKTtcclxuICAgICAgICAgICAgbWV0aG9kLnBhcmVudEVudGl0eSA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3N1cGVySW5oZXJpdGFuY2VzOiBTZXQ8SW5oZXJpdGFuY2U+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHB1YmxpYyBhZGRTdXBlckluaGVyaXRhbmNlKHN1cGVySW5oZXJpdGFuY2U6IEluaGVyaXRhbmNlKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9zdXBlckluaGVyaXRhbmNlcy5oYXMoc3VwZXJJbmhlcml0YW5jZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5fc3VwZXJJbmhlcml0YW5jZXMuYWRkKHN1cGVySW5oZXJpdGFuY2UpO1xyXG4gICAgICAgICAgICBzdXBlckluaGVyaXRhbmNlLnN1YmNsYXNzID0gdGhpcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc3ViSW5oZXJpdGFuY2VzOiBTZXQ8SW5oZXJpdGFuY2U+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHB1YmxpYyBhZGRTdWJJbmhlcml0YW5jZShzdWJJbmhlcml0YW5jZTogSW5oZXJpdGFuY2UpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX3N1YkluaGVyaXRhbmNlcy5oYXMoc3ViSW5oZXJpdGFuY2UpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3N1YkluaGVyaXRhbmNlcy5hZGQoc3ViSW5oZXJpdGFuY2UpO1xyXG4gICAgICAgICAgICBzdWJJbmhlcml0YW5jZS5zdXBlcmNsYXNzID0gdGhpcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJDbGFzc1wiLCB0aGlzKTtcclxuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xyXG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaXNBYnN0cmFjdFwiLCB0aGlzLmlzQWJzdHJhY3QpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiYXR0cmlidXRlc1wiLCB0aGlzLnByb3BlcnRpZXMpOyAvLyBNb29zZSAoMTApIGNvZGVzIHRoZW0gYXMgYXR0cmlidXRlc1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwibWV0aG9kc1wiLCB0aGlzLm1ldGhvZHMpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwic3VwZXJJbmhlcml0YW5jZXNcIiwgdGhpcy5zdXBlckluaGVyaXRhbmNlcyk7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJzdWJJbmhlcml0YW5jZXNcIiwgdGhpcy5zdWJJbmhlcml0YW5jZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0Fic3RyYWN0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9pc0Fic3RyYWN0O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpc0Fic3RyYWN0KGlzQWJzdHJhY3Q6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9pc0Fic3RyYWN0ID0gaXNBYnN0cmFjdDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcHJvcGVydGllcygpOiBTZXQ8UHJvcGVydHk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcHJvcGVydGllcztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbWV0aG9kcygpOiBTZXQ8TWV0aG9kPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21ldGhvZHM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHN1cGVySW5oZXJpdGFuY2VzKCk6IFNldDxJbmhlcml0YW5jZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdXBlckluaGVyaXRhbmNlcztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc3ViSW5oZXJpdGFuY2VzKCk6IFNldDxJbmhlcml0YW5jZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJJbmhlcml0YW5jZXM7XHJcbiAgICB9XHJcbn1cclxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2NsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCxpQ0FBOEI7QUFLOUIsTUFBYSxLQUFNLFNBQVEsV0FBSTtJQUEvQjs7UUFHWSxnQkFBVyxHQUFrQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBU3ZDLGFBQVEsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVNsQyx1QkFBa0IsR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVNqRCxxQkFBZ0IsR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQWdEM0QsQ0FBQztJQXpFVSxXQUFXLENBQUMsUUFBa0I7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0IsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDakMsQ0FBQztJQUNMLENBQUM7SUFJTSxTQUFTLENBQUMsTUFBYztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQixNQUFNLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDO0lBQ0wsQ0FBQztJQUlNLG1CQUFtQixDQUFDLGdCQUE2QjtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlDLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7SUFJTSxpQkFBaUIsQ0FBQyxjQUEyQjtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDMUMsY0FBYyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7SUFHTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRCxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxzQ0FBc0M7UUFDM0YsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLFFBQVEsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsVUFBbUI7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztDQUNKO0FBOUVELHNCQThFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyBNZXRob2QgfSBmcm9tIFwiLi9tZXRob2RcIjtcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSBcIi4vcHJvcGVydHlcIjtcbmltcG9ydCB7IEluaGVyaXRhbmNlIH0gZnJvbSBcIi4vaW5oZXJpdGFuY2VcIjtcblxuZXhwb3J0IGNsYXNzIENsYXNzIGV4dGVuZHMgVHlwZSB7XG5cbiAgICBwcml2YXRlIF9pc0Fic3RyYWN0ITogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9wcm9wZXJ0aWVzOiBTZXQ8UHJvcGVydHk+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZFByb3BlcnR5KHByb3BlcnR5OiBQcm9wZXJ0eSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3Byb3BlcnRpZXMuaGFzKHByb3BlcnR5KSkge1xuICAgICAgICAgICAgdGhpcy5fcHJvcGVydGllcy5hZGQocHJvcGVydHkpO1xuICAgICAgICAgICAgcHJvcGVydHkucGFyZW50RW50aXR5ID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX21ldGhvZHM6IFNldDxNZXRob2Q+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZE1ldGhvZChtZXRob2Q6IE1ldGhvZCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX21ldGhvZHMuaGFzKG1ldGhvZCkpIHtcbiAgICAgICAgICAgIHRoaXMuX21ldGhvZHMuYWRkKG1ldGhvZCk7XG4gICAgICAgICAgICBtZXRob2QucGFyZW50RW50aXR5ID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3N1cGVySW5oZXJpdGFuY2VzOiBTZXQ8SW5oZXJpdGFuY2U+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZFN1cGVySW5oZXJpdGFuY2Uoc3VwZXJJbmhlcml0YW5jZTogSW5oZXJpdGFuY2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zdXBlckluaGVyaXRhbmNlcy5oYXMoc3VwZXJJbmhlcml0YW5jZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1cGVySW5oZXJpdGFuY2VzLmFkZChzdXBlckluaGVyaXRhbmNlKTtcbiAgICAgICAgICAgIHN1cGVySW5oZXJpdGFuY2Uuc3ViY2xhc3MgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc3ViSW5oZXJpdGFuY2VzOiBTZXQ8SW5oZXJpdGFuY2U+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZFN1YkluaGVyaXRhbmNlKHN1YkluaGVyaXRhbmNlOiBJbmhlcml0YW5jZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3N1YkluaGVyaXRhbmNlcy5oYXMoc3ViSW5oZXJpdGFuY2UpKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJJbmhlcml0YW5jZXMuYWRkKHN1YkluaGVyaXRhbmNlKTtcbiAgICAgICAgICAgIHN1YkluaGVyaXRhbmNlLnN1cGVyY2xhc3MgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkNsYXNzXCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaXNBYnN0cmFjdFwiLCB0aGlzLmlzQWJzdHJhY3QpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImF0dHJpYnV0ZXNcIiwgdGhpcy5wcm9wZXJ0aWVzKTsgLy8gTW9vc2UgKDEwKSBjb2RlcyB0aGVtIGFzIGF0dHJpYnV0ZXNcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJtZXRob2RzXCIsIHRoaXMubWV0aG9kcyk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwic3VwZXJJbmhlcml0YW5jZXNcIiwgdGhpcy5zdXBlckluaGVyaXRhbmNlcyk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwic3ViSW5oZXJpdGFuY2VzXCIsIHRoaXMuc3ViSW5oZXJpdGFuY2VzKTtcbiAgICB9XG5cbiAgICBnZXQgaXNBYnN0cmFjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQWJzdHJhY3Q7XG4gICAgfVxuXG4gICAgc2V0IGlzQWJzdHJhY3QoaXNBYnN0cmFjdDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc0Fic3RyYWN0ID0gaXNBYnN0cmFjdDtcbiAgICB9XG5cbiAgICBnZXQgcHJvcGVydGllcygpOiBTZXQ8UHJvcGVydHk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgZ2V0IG1ldGhvZHMoKTogU2V0PE1ldGhvZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWV0aG9kcztcbiAgICB9XG5cbiAgICBnZXQgc3VwZXJJbmhlcml0YW5jZXMoKTogU2V0PEluaGVyaXRhbmNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdXBlckluaGVyaXRhbmNlcztcbiAgICB9XG5cbiAgICBnZXQgc3ViSW5oZXJpdGFuY2VzKCk6IFNldDxJbmhlcml0YW5jZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3ViSW5oZXJpdGFuY2VzO1xuICAgIH1cbn1cbiJdfQ==
@@ -36,4 +36,4 @@ class Comment extends sourced_entity_1.SourcedEntity {
36
36
  }
37
37
  }
38
38
  exports.Comment = Comment;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvY29tbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQscURBQWlEO0FBRWpELE1BQWEsT0FBUSxTQUFRLDhCQUFhO0lBTWpDLE9BQU87UUFDWixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN4RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLFFBQVEsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELFFBQVEsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUMsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFnQjtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxTQUF3QjtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLE9BQWU7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDNUIsQ0FBQztDQUNKO0FBM0NELDBCQTJDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgU291cmNlZEVudGl0eSB9IGZyb20gXCIuL3NvdXJjZWRfZW50aXR5XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQ29tbWVudCBleHRlbmRzIFNvdXJjZWRFbnRpdHkge1xyXG5cclxuICBwcml2YXRlIF9pc0pTRG9jITogYm9vbGVhbjtcclxuICBwcml2YXRlIF9jb250YWluZXIhOiBTb3VyY2VkRW50aXR5O1xyXG4gIHByaXZhdGUgX2NvbnRlbnQhOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkNvbW1lbnRcIiwgdGhpcyk7XHJcbiAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xyXG4gICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xyXG4gICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xyXG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJpc0pTRG9jXCIsIHRoaXMuaXNKU0RvYyk7XHJcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImNvbW1lbnRlZEVudGl0eVwiLCB0aGlzLmNvbnRhaW5lcik7XHJcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImNvbnRlbnRcIiwgdGhpcy5jb250ZW50KTtcclxuICB9XHJcblxyXG4gICAgZ2V0IGlzSlNEb2MoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSlNEb2M7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGlzSlNEb2MoaXNKU0RvYzogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2lzSlNEb2MgPSBpc0pTRG9jO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb250YWluZXIoKTogU291cmNlZEVudGl0eSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRhaW5lcjtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgY29udGFpbmVyKGNvbnRhaW5lcjogU291cmNlZEVudGl0eSkge1xyXG4gICAgICAgIHRoaXMuX2NvbnRhaW5lciA9IGNvbnRhaW5lcjtcclxuICAgICAgICBjb250YWluZXIuYWRkQ29tbWVudCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29udGVudCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjb250ZW50KGNvbnRlbnQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2NvbnRlbnQgPSBjb250ZW50O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvY29tbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQscURBQWlEO0FBRWpELE1BQWEsT0FBUSxTQUFRLDhCQUFhO0lBTWpDLE9BQU87UUFDWixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN4RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLFFBQVEsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELFFBQVEsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUMsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFnQjtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxTQUF3QjtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLE9BQWU7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDNUIsQ0FBQztDQUNKO0FBM0NELDBCQTJDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFNvdXJjZWRFbnRpdHkgfSBmcm9tIFwiLi9zb3VyY2VkX2VudGl0eVwiO1xuXG5leHBvcnQgY2xhc3MgQ29tbWVudCBleHRlbmRzIFNvdXJjZWRFbnRpdHkge1xuXG4gIHByaXZhdGUgX2lzSlNEb2MhOiBib29sZWFuO1xuICBwcml2YXRlIF9jb250YWluZXIhOiBTb3VyY2VkRW50aXR5O1xuICBwcml2YXRlIF9jb250ZW50ITogc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJDb21tZW50XCIsIHRoaXMpO1xuICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICB9XG5cbiAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImlzSlNEb2NcIiwgdGhpcy5pc0pTRG9jKTtcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImNvbW1lbnRlZEVudGl0eVwiLCB0aGlzLmNvbnRhaW5lcik7XG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJjb250ZW50XCIsIHRoaXMuY29udGVudCk7XG4gIH1cblxuICAgIGdldCBpc0pTRG9jKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNKU0RvYztcbiAgICB9XG5cbiAgICBzZXQgaXNKU0RvYyhpc0pTRG9jOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzSlNEb2MgPSBpc0pTRG9jO1xuICAgIH1cblxuICAgIGdldCBjb250YWluZXIoKTogU291cmNlZEVudGl0eSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250YWluZXI7XG4gICAgfVxuXG4gICAgc2V0IGNvbnRhaW5lcihjb250YWluZXI6IFNvdXJjZWRFbnRpdHkpIHtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgICAgICBjb250YWluZXIuYWRkQ29tbWVudCh0aGlzKTtcbiAgICB9XG5cbiAgICBnZXQgY29udGVudCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgICB9XG5cbiAgICBzZXQgY29udGVudChjb250ZW50OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7XG4gICAgfVxufVxuIl19
@@ -28,4 +28,4 @@ class Concretisation extends entity_1.Entity {
28
28
  }
29
29
  }
30
30
  exports.Concretisation = Concretisation;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY3JldGlzYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2NvbmNyZXRpc2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCxxQ0FBa0M7QUFNbEMsTUFBYSxjQUFlLFNBQVEsZUFBTTtJQUsvQixPQUFPO1FBQ1osTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN4RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFELFFBQVEsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksYUFBYSxDQUFDLGFBQTRGO1FBQzFHLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLGNBQTZGO1FBQzVHLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO0lBQzFDLENBQUM7Q0FDSjtBQWhDRCx3Q0FnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XHJcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gXCIuL2VudGl0eVwiO1xyXG5pbXBvcnQgeyBQYXJhbWV0cmljQ2xhc3MgfSBmcm9tIFwiLi9wYXJhbWV0cmljX2NsYXNzXCI7XHJcbmltcG9ydCB7IFBhcmFtZXRyaWNGdW5jdGlvbiB9IGZyb20gXCIuL3BhcmFtZXRyaWNfZnVuY3Rpb25cIjtcclxuaW1wb3J0IHsgUGFyYW1ldHJpY0ludGVyZmFjZSB9IGZyb20gXCIuL3BhcmFtZXRyaWNfaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7IFBhcmFtZXRyaWNNZXRob2QgfSBmcm9tIFwiLi9wYXJhbWV0cmljX21ldGhvZFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbmNyZXRpc2F0aW9uIGV4dGVuZHMgRW50aXR5IHtcclxuXHJcbiAgICBwcml2YXRlIF9nZW5lcmljRW50aXR5ITogUGFyYW1ldHJpY0NsYXNzIHwgUGFyYW1ldHJpY0ludGVyZmFjZSB8IFBhcmFtZXRyaWNGdW5jdGlvbiB8IFBhcmFtZXRyaWNNZXRob2Q7XHJcbiAgICBwcml2YXRlIF9jb25jcmV0ZUVudGl0eSE6IFBhcmFtZXRyaWNDbGFzcyB8IFBhcmFtZXRyaWNJbnRlcmZhY2UgfCBQYXJhbWV0cmljRnVuY3Rpb24gfCBQYXJhbWV0cmljTWV0aG9kOyAgLy8gaXMgdGhpcyBjb3JyZWN0P1xyXG5cclxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiQ29uY3JldGlzYXRpb25cIiwgdGhpcyk7XHJcbiAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XHJcbiAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICAgIH1cclxuICBcclxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xyXG4gICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImdlbmVyaWNFbnRpdHlcIiwgdGhpcy5nZW5lcmljRW50aXR5KTtcclxuICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJjb25jcmV0ZUVudGl0eVwiLCB0aGlzLmNvbmNyZXRlRW50aXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZ2VuZXJpY0VudGl0eSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2VuZXJpY0VudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgZ2VuZXJpY0VudGl0eShnZW5lcmljRW50aXR5OiBQYXJhbWV0cmljQ2xhc3MgfCBQYXJhbWV0cmljSW50ZXJmYWNlIHwgUGFyYW1ldHJpY0Z1bmN0aW9uIHwgUGFyYW1ldHJpY01ldGhvZCkge1xyXG4gICAgICAgIHRoaXMuX2dlbmVyaWNFbnRpdHkgPSBnZW5lcmljRW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb25jcmV0ZUVudGl0eSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29uY3JldGVFbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGNvbmNyZXRlRW50aXR5KGNvbmNyZXRlRW50aXR5OiBQYXJhbWV0cmljQ2xhc3MgfCBQYXJhbWV0cmljSW50ZXJmYWNlIHwgUGFyYW1ldHJpY0Z1bmN0aW9uIHwgUGFyYW1ldHJpY01ldGhvZCkge1xyXG4gICAgICAgIHRoaXMuX2NvbmNyZXRlRW50aXR5ID0gY29uY3JldGVFbnRpdHk7XHJcbiAgICB9XHJcbn1cclxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY3JldGlzYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2NvbmNyZXRpc2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCxxQ0FBa0M7QUFNbEMsTUFBYSxjQUFlLFNBQVEsZUFBTTtJQUsvQixPQUFPO1FBQ1osTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN4RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFELFFBQVEsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksYUFBYSxDQUFDLGFBQTRGO1FBQzFHLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLGNBQTZGO1FBQzVHLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO0lBQzFDLENBQUM7Q0FDSjtBQWhDRCx3Q0FnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiLi9lbnRpdHlcIjtcbmltcG9ydCB7IFBhcmFtZXRyaWNDbGFzcyB9IGZyb20gXCIuL3BhcmFtZXRyaWNfY2xhc3NcIjtcbmltcG9ydCB7IFBhcmFtZXRyaWNGdW5jdGlvbiB9IGZyb20gXCIuL3BhcmFtZXRyaWNfZnVuY3Rpb25cIjtcbmltcG9ydCB7IFBhcmFtZXRyaWNJbnRlcmZhY2UgfSBmcm9tIFwiLi9wYXJhbWV0cmljX2ludGVyZmFjZVwiO1xuaW1wb3J0IHsgUGFyYW1ldHJpY01ldGhvZCB9IGZyb20gXCIuL3BhcmFtZXRyaWNfbWV0aG9kXCI7XG5cbmV4cG9ydCBjbGFzcyBDb25jcmV0aXNhdGlvbiBleHRlbmRzIEVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9nZW5lcmljRW50aXR5ITogUGFyYW1ldHJpY0NsYXNzIHwgUGFyYW1ldHJpY0ludGVyZmFjZSB8IFBhcmFtZXRyaWNGdW5jdGlvbiB8IFBhcmFtZXRyaWNNZXRob2Q7XG4gICAgcHJpdmF0ZSBfY29uY3JldGVFbnRpdHkhOiBQYXJhbWV0cmljQ2xhc3MgfCBQYXJhbWV0cmljSW50ZXJmYWNlIHwgUGFyYW1ldHJpY0Z1bmN0aW9uIHwgUGFyYW1ldHJpY01ldGhvZDsgIC8vIGlzIHRoaXMgY29ycmVjdD9cblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkNvbmNyZXRpc2F0aW9uXCIsIHRoaXMpO1xuICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgICB9XG4gIFxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZ2VuZXJpY0VudGl0eVwiLCB0aGlzLmdlbmVyaWNFbnRpdHkpO1xuICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJjb25jcmV0ZUVudGl0eVwiLCB0aGlzLmNvbmNyZXRlRW50aXR5KTtcbiAgICB9XG5cbiAgICBnZXQgZ2VuZXJpY0VudGl0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dlbmVyaWNFbnRpdHk7XG4gICAgfVxuXG4gICAgc2V0IGdlbmVyaWNFbnRpdHkoZ2VuZXJpY0VudGl0eTogUGFyYW1ldHJpY0NsYXNzIHwgUGFyYW1ldHJpY0ludGVyZmFjZSB8IFBhcmFtZXRyaWNGdW5jdGlvbiB8IFBhcmFtZXRyaWNNZXRob2QpIHtcbiAgICAgICAgdGhpcy5fZ2VuZXJpY0VudGl0eSA9IGdlbmVyaWNFbnRpdHk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbmNyZXRlRW50aXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uY3JldGVFbnRpdHk7XG4gICAgfVxuXG4gICAgc2V0IGNvbmNyZXRlRW50aXR5KGNvbmNyZXRlRW50aXR5OiBQYXJhbWV0cmljQ2xhc3MgfCBQYXJhbWV0cmljSW50ZXJmYWNlIHwgUGFyYW1ldHJpY0Z1bmN0aW9uIHwgUGFyYW1ldHJpY01ldGhvZCkge1xuICAgICAgICB0aGlzLl9jb25jcmV0ZUVudGl0eSA9IGNvbmNyZXRlRW50aXR5O1xuICAgIH1cbn1cbiJdfQ==
@@ -123,4 +123,4 @@ class ContainerEntity extends named_entity_1.NamedEntity {
123
123
  }
124
124
  }
125
125
  exports.ContainerEntity = ContainerEntity;
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyX2VudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvY29udGFpbmVyX2VudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFHOUQsaURBQTZDO0FBTTdDLE1BQWEsZUFBZ0IsU0FBUSwwQkFBVztJQUFoRDs7UUFHWSwrQkFBMEIsR0FBeUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVc3RCx3QkFBbUIsR0FBbUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVVoRCx5QkFBb0IsR0FBb0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVNsRCxjQUFTLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7UUFTbkMsa0JBQWEsR0FBYyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBU3JDLHNCQUFpQixHQUE2QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBU3hELGVBQVUsR0FBa0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQTBGbEQsQ0FBQztJQWpKVSx1QkFBdUIsQ0FBQyxvQkFBcUM7UUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUMxRCxvQkFBb0IsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDdEQsQ0FBQztJQUNMLENBQUM7SUFNTSxvQkFBb0IsQ0FBQyxpQkFBNEI7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNoRCxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLENBQUM7SUFDTCxDQUFDO0lBS00scUJBQXFCLENBQUMsa0JBQThCO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDbEQsa0JBQWtCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNyQyxDQUFDO0lBQ0wsQ0FBQztJQUlNLFNBQVMsQ0FBQyxNQUFjO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBSU0sT0FBTyxDQUFDLFNBQWU7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEMsU0FBUyxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUMzQyxDQUFDO0lBQ0wsQ0FBQztJQUlNLFdBQVcsQ0FBQyxhQUFrQztRQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDMUMsYUFBYSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUMvQyxDQUFDO0lBQ0wsQ0FBQztJQUlNLFdBQVcsQ0FBQyxRQUFrQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QixRQUFRLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQzFDLENBQUM7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLHVGQUF1RjtRQUN2Riw2RkFBNkY7UUFDN0YsUUFBUSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4RSxRQUFRLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BFLCtGQUErRjtRQUMvRixRQUFRLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3RFLGlHQUFpRztRQUNqRywyRUFBMkU7UUFDM0UsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRCxRQUFRLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDckIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMscUJBQXNDO1FBQzVELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQztRQUNwRCxxQkFBcUIsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSx5QkFBeUI7UUFDekIsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLG9CQUFvQixDQUFDLG9CQUE0QjtRQUNqRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsb0JBQW9CLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLGtCQUFrQixDQUFDLGtCQUEwQjtRQUM3QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxtQkFBbUIsQ0FBQyxtQkFBMkI7UUFDL0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztDQUNKO0FBdEpELDBDQXNKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcclxuaW1wb3J0IHsgSW52b2NhdGlvbiB9IGZyb20gXCIuL2ludm9jYXRpb25cIjtcclxuaW1wb3J0IHsgTmFtZWRFbnRpdHkgfSBmcm9tIFwiLi9uYW1lZF9lbnRpdHlcIjtcclxuaW1wb3J0IHsgUmVmZXJlbmNlIH0gZnJvbSBcIi4vcmVmZXJlbmNlXCI7XHJcbmltcG9ydCB7IEFjY2VzcyB9IGZyb20gXCIuL2FjY2Vzc1wiO1xyXG5pbXBvcnQgeyBGdW5jdGlvbiBhcyBGYW1peEZ1bmN0aW9uRW50aXR5IH0gZnJvbSBcIi4vZnVuY3Rpb25cIjtcclxuaW1wb3J0IHsgVmFyaWFibGUgfSBmcm9tIFwiLi92YXJpYWJsZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbnRhaW5lckVudGl0eSBleHRlbmRzIE5hbWVkRW50aXR5IHtcclxuXHJcbiAgICBwcml2YXRlIF9wYXJlbnRDb250YWluZXJFbnRpdHkhOiBDb250YWluZXJFbnRpdHk7XHJcbiAgICBwcml2YXRlIF9jaGlsZHJlbkNvbnRhaW5lckVudGl0aWVzOiBTZXQ8Q29udGFpbmVyRW50aXR5PiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwdWJsaWMgYWRkQ2hpbGRDb250YWluZXJFbnRpdHkoY2hpbGRDb250YWluZXJFbnRpdHk6IENvbnRhaW5lckVudGl0eSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5fY2hpbGRyZW5Db250YWluZXJFbnRpdGllcy5oYXMoY2hpbGRDb250YWluZXJFbnRpdHkpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NoaWxkcmVuQ29udGFpbmVyRW50aXRpZXMuYWRkKGNoaWxkQ29udGFpbmVyRW50aXR5KTtcclxuICAgICAgICAgICAgY2hpbGRDb250YWluZXJFbnRpdHkucGFyZW50Q29udGFpbmVyRW50aXR5ID0gdGhpcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY3ljbG9tYXRpY0NvbXBsZXhpdHkhOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9udW1iZXJPZlN0YXRlbWVudHMhOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9vdXRnb2luZ1JlZmVyZW5jZXM6IFNldDxSZWZlcmVuY2U+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHB1YmxpYyBhZGRPdXRnb2luZ1JlZmVyZW5jZShvdXRnb2luZ1JlZmVyZW5jZTogUmVmZXJlbmNlKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9vdXRnb2luZ1JlZmVyZW5jZXMuaGFzKG91dGdvaW5nUmVmZXJlbmNlKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9vdXRnb2luZ1JlZmVyZW5jZXMuYWRkKG91dGdvaW5nUmVmZXJlbmNlKTtcclxuICAgICAgICAgICAgb3V0Z29pbmdSZWZlcmVuY2Uuc291cmNlID0gdGhpcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfbnVtYmVyT2ZMaW5lc09mQ29kZSE6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX291dGdvaW5nSW52b2NhdGlvbnM6IFNldDxJbnZvY2F0aW9uPiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwdWJsaWMgYWRkT3V0Z29pbmdJbnZvY2F0aW9uKG91dGdvaW5nSW52b2NhdGlvbjogSW52b2NhdGlvbik6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5fb3V0Z29pbmdJbnZvY2F0aW9ucy5oYXMob3V0Z29pbmdJbnZvY2F0aW9uKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9vdXRnb2luZ0ludm9jYXRpb25zLmFkZChvdXRnb2luZ0ludm9jYXRpb24pO1xyXG4gICAgICAgICAgICBvdXRnb2luZ0ludm9jYXRpb24uc2VuZGVyID0gdGhpcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfYWNjZXNzZXM6IFNldDxBY2Nlc3M+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHB1YmxpYyBhZGRBY2Nlc3MoYWNjZXNzOiBBY2Nlc3MpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2FjY2Vzc2VzLmhhcyhhY2Nlc3MpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjY2Vzc2VzLmFkZChhY2Nlc3MpO1xyXG4gICAgICAgICAgICBhY2Nlc3MuYWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoaWxkcmVuVHlwZXM6IFNldDxUeXBlPiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwdWJsaWMgYWRkVHlwZShjaGlsZFR5cGU6IFR5cGUpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2hpbGRyZW5UeXBlcy5oYXMoY2hpbGRUeXBlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuVHlwZXMuYWRkKGNoaWxkVHlwZSk7XHJcbiAgICAgICAgICAgIGNoaWxkVHlwZS5wYXJlbnRDb250YWluZXJFbnRpdHkgPSB0aGlzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoaWxkcmVuRnVuY3Rpb25zOiBTZXQ8RmFtaXhGdW5jdGlvbkVudGl0eT4gPSBuZXcgU2V0KCk7XHJcblxyXG4gICAgcHVibGljIGFkZEZ1bmN0aW9uKGNoaWxkRnVuY3Rpb246IEZhbWl4RnVuY3Rpb25FbnRpdHkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2hpbGRyZW5GdW5jdGlvbnMuaGFzKGNoaWxkRnVuY3Rpb24pKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5GdW5jdGlvbnMuYWRkKGNoaWxkRnVuY3Rpb24pO1xyXG4gICAgICAgICAgICBjaGlsZEZ1bmN0aW9uLnBhcmVudENvbnRhaW5lckVudGl0eSA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3ZhcmlhYmxlczogU2V0PFZhcmlhYmxlPiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwdWJsaWMgYWRkVmFyaWFibGUodmFyaWFibGU6IFZhcmlhYmxlKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl92YXJpYWJsZXMuaGFzKHZhcmlhYmxlKSkge1xyXG4gICAgICAgICAgICB0aGlzLl92YXJpYWJsZXMuYWRkKHZhcmlhYmxlKTtcclxuICAgICAgICAgICAgdmFyaWFibGUucGFyZW50Q29udGFpbmVyRW50aXR5ID0gdGhpcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkNvbnRhaW5lckVudGl0eVwiLCB0aGlzKTtcclxuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xyXG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xyXG4gICAgICAgIC8vICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwicGFyZW50QmVoYXZpb3VyYWxFbnRpdHlcIiwgdGhpcy5nZXRQYXJlbnRDb250YWluZXJFbnRpdHkoKSk7XHJcbiAgICAgICAgLy8gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJjaGlsZHJlbkNvbnRhaW5lckVudGl0aWVzXCIsIHRoaXMuZ2V0Q2hpbGRyZW5Db250YWluZXJFbnRpdGllcygpKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImN5Y2xvbWF0aWNDb21wbGV4aXR5XCIsIHRoaXMuY3ljbG9tYXRpY0NvbXBsZXhpdHkpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwibnVtYmVyT2ZTdGF0ZW1lbnRzXCIsIHRoaXMubnVtYmVyT2ZTdGF0ZW1lbnRzKTtcclxuICAgICAgICAvLyAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcIm91dGdvaW5nUmVmZXJlbmNlc1wiLCB0aGlzLmdldE91dGdvaW5nUmVmZXJlbmNlcygpKTsgIC8qIGRlcml2ZWQgPyovXHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJudW1iZXJPZkxpbmVzT2ZDb2RlXCIsIHRoaXMubnVtYmVyT2ZMaW5lc09mQ29kZSk7XHJcbiAgICAgICAgLy8gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJvdXRnb2luZ0ludm9jYXRpb25zXCIsIHRoaXMuZ2V0T3V0Z29pbmdJbnZvY2F0aW9ucygpKTsgIC8qIGRlcml2ZWQgPyovXHJcbiAgICAgICAgLy8gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJhY2Nlc3Nlc1wiLCB0aGlzLmdldEFjY2Vzc2VzKCkpOyAgLyogZGVyaXZlZCA/Ki9cclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInR5cGVzXCIsIHRoaXMudHlwZXMpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZnVuY3Rpb25zXCIsIHRoaXMuZnVuY3Rpb25zKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImxvY2FsVmFyaWFibGVzXCIsIHRoaXMudmFyaWFibGVzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGFyZW50Q29udGFpbmVyRW50aXR5KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRDb250YWluZXJFbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IHBhcmVudENvbnRhaW5lckVudGl0eShwYXJlbnRDb250YWluZXJFbnRpdHk6IENvbnRhaW5lckVudGl0eSkge1xyXG4gICAgICAgIHRoaXMuX3BhcmVudENvbnRhaW5lckVudGl0eSA9IHBhcmVudENvbnRhaW5lckVudGl0eTtcclxuICAgICAgICBwYXJlbnRDb250YWluZXJFbnRpdHkuYWRkQ2hpbGRDb250YWluZXJFbnRpdHkodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNoaWxkcmVuQ29udGFpbmVyRW50aXRpZXMoKTogU2V0PENvbnRhaW5lckVudGl0eT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbkNvbnRhaW5lckVudGl0aWVzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjeWNsb21hdGljQ29tcGxleGl0eSgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jeWNsb21hdGljQ29tcGxleGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgY3ljbG9tYXRpY0NvbXBsZXhpdHkoY3ljbG9tYXRpY0NvbXBsZXhpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2N5Y2xvbWF0aWNDb21wbGV4aXR5ID0gY3ljbG9tYXRpY0NvbXBsZXhpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG51bWJlck9mU3RhdGVtZW50cygpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9udW1iZXJPZlN0YXRlbWVudHM7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IG51bWJlck9mU3RhdGVtZW50cyhudW1iZXJPZlN0YXRlbWVudHM6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX251bWJlck9mU3RhdGVtZW50cyA9IG51bWJlck9mU3RhdGVtZW50cztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgb3V0Z29pbmdSZWZlcmVuY2VzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9vdXRnb2luZ1JlZmVyZW5jZXM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG51bWJlck9mTGluZXNPZkNvZGUoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbnVtYmVyT2ZMaW5lc09mQ29kZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgbnVtYmVyT2ZMaW5lc09mQ29kZShudW1iZXJPZkxpbmVzT2ZDb2RlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9udW1iZXJPZkxpbmVzT2ZDb2RlID0gbnVtYmVyT2ZMaW5lc09mQ29kZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgb3V0Z29pbmdJbnZvY2F0aW9ucygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fb3V0Z29pbmdJbnZvY2F0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYWNjZXNzZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjY2Vzc2VzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0eXBlcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlblR5cGVzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBmdW5jdGlvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW5GdW5jdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHZhcmlhYmxlcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFyaWFibGVzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyX2VudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvY29udGFpbmVyX2VudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFHOUQsaURBQTZDO0FBTTdDLE1BQWEsZUFBZ0IsU0FBUSwwQkFBVztJQUFoRDs7UUFHWSwrQkFBMEIsR0FBeUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVc3RCx3QkFBbUIsR0FBbUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVVoRCx5QkFBb0IsR0FBb0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVNsRCxjQUFTLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7UUFTbkMsa0JBQWEsR0FBYyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBU3JDLHNCQUFpQixHQUE2QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBU3hELGVBQVUsR0FBa0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQTBGbEQsQ0FBQztJQWpKVSx1QkFBdUIsQ0FBQyxvQkFBcUM7UUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUMxRCxvQkFBb0IsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDdEQsQ0FBQztJQUNMLENBQUM7SUFNTSxvQkFBb0IsQ0FBQyxpQkFBNEI7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNoRCxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3BD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LENBQUM7SUFDM0IsQ0FBQztDQUNKO0FBdEpELDBDQXNKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyBJbnZvY2F0aW9uIH0gZnJvbSBcIi4vaW52b2NhdGlvblwiO1xuaW1wb3J0IHsgTmFtZWRFbnRpdHkgfSBmcm9tIFwiLi9uYW1lZF9lbnRpdHlcIjtcbmltcG9ydCB7IFJlZmVyZW5jZSB9IGZyb20gXCIuL3JlZmVyZW5jZVwiO1xuaW1wb3J0IHsgQWNjZXNzIH0gZnJvbSBcIi4vYWNjZXNzXCI7XG5pbXBvcnQgeyBGdW5jdGlvbiBhcyBGYW1peEZ1bmN0aW9uRW50aXR5IH0gZnJvbSBcIi4vZnVuY3Rpb25cIjtcbmltcG9ydCB7IFZhcmlhYmxlIH0gZnJvbSBcIi4vdmFyaWFibGVcIjtcblxuZXhwb3J0IGNsYXNzIENvbnRhaW5lckVudGl0eSBleHRlbmRzIE5hbWVkRW50aXR5IHtcblxuICAgIHByaXZhdGUgX3BhcmVudENvbnRhaW5lckVudGl0eSE6IENvbnRhaW5lckVudGl0eTtcbiAgICBwcml2YXRlIF9jaGlsZHJlbkNvbnRhaW5lckVudGl0aWVzOiBTZXQ8Q29udGFpbmVyRW50aXR5PiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRDaGlsZENvbnRhaW5lckVudGl0eShjaGlsZENvbnRhaW5lckVudGl0eTogQ29udGFpbmVyRW50aXR5KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fY2hpbGRyZW5Db250YWluZXJFbnRpdGllcy5oYXMoY2hpbGRDb250YWluZXJFbnRpdHkpKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGlsZHJlbkNvbnRhaW5lckVudGl0aWVzLmFkZChjaGlsZENvbnRhaW5lckVudGl0eSk7XG4gICAgICAgICAgICBjaGlsZENvbnRhaW5lckVudGl0eS5wYXJlbnRDb250YWluZXJFbnRpdHkgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3ljbG9tYXRpY0NvbXBsZXhpdHkhOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfbnVtYmVyT2ZTdGF0ZW1lbnRzITogbnVtYmVyO1xuICAgIHByaXZhdGUgX291dGdvaW5nUmVmZXJlbmNlczogU2V0PFJlZmVyZW5jZT4gPSBuZXcgU2V0KCk7XG5cbiAgICBwdWJsaWMgYWRkT3V0Z29pbmdSZWZlcmVuY2Uob3V0Z29pbmdSZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX291dGdvaW5nUmVmZXJlbmNlcy5oYXMob3V0Z29pbmdSZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICB0aGlzLl9vdXRnb2luZ1JlZmVyZW5jZXMuYWRkKG91dGdvaW5nUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIG91dGdvaW5nUmVmZXJlbmNlLnNvdXJjZSA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9udW1iZXJPZkxpbmVzT2ZDb2RlITogbnVtYmVyO1xuICAgIHByaXZhdGUgX291dGdvaW5nSW52b2NhdGlvbnM6IFNldDxJbnZvY2F0aW9uPiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRPdXRnb2luZ0ludm9jYXRpb24ob3V0Z29pbmdJbnZvY2F0aW9uOiBJbnZvY2F0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fb3V0Z29pbmdJbnZvY2F0aW9ucy5oYXMob3V0Z29pbmdJbnZvY2F0aW9uKSkge1xuICAgICAgICAgICAgdGhpcy5fb3V0Z29pbmdJbnZvY2F0aW9ucy5hZGQob3V0Z29pbmdJbnZvY2F0aW9uKTtcbiAgICAgICAgICAgIG91dGdvaW5nSW52b2NhdGlvbi5zZW5kZXIgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYWNjZXNzZXM6IFNldDxBY2Nlc3M+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZEFjY2VzcyhhY2Nlc3M6IEFjY2Vzcyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2FjY2Vzc2VzLmhhcyhhY2Nlc3MpKSB7XG4gICAgICAgICAgICB0aGlzLl9hY2Nlc3Nlcy5hZGQoYWNjZXNzKTtcbiAgICAgICAgICAgIGFjY2Vzcy5hY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNoaWxkcmVuVHlwZXM6IFNldDxUeXBlPiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRUeXBlKGNoaWxkVHlwZTogVHlwZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuY2hpbGRyZW5UeXBlcy5oYXMoY2hpbGRUeXBlKSkge1xuICAgICAgICAgICAgdGhpcy5jaGlsZHJlblR5cGVzLmFkZChjaGlsZFR5cGUpO1xuICAgICAgICAgICAgY2hpbGRUeXBlLnBhcmVudENvbnRhaW5lckVudGl0eSA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNoaWxkcmVuRnVuY3Rpb25zOiBTZXQ8RmFtaXhGdW5jdGlvbkVudGl0eT4gPSBuZXcgU2V0KCk7XG5cbiAgICBwdWJsaWMgYWRkRnVuY3Rpb24oY2hpbGRGdW5jdGlvbjogRmFtaXhGdW5jdGlvbkVudGl0eSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuY2hpbGRyZW5GdW5jdGlvbnMuaGFzKGNoaWxkRnVuY3Rpb24pKSB7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuRnVuY3Rpb25zLmFkZChjaGlsZEZ1bmN0aW9uKTtcbiAgICAgICAgICAgIGNoaWxkRnVuY3Rpb24ucGFyZW50Q29udGFpbmVyRW50aXR5ID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3ZhcmlhYmxlczogU2V0PFZhcmlhYmxlPiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRWYXJpYWJsZSh2YXJpYWJsZTogVmFyaWFibGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl92YXJpYWJsZXMuaGFzKHZhcmlhYmxlKSkge1xuICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVzLmFkZCh2YXJpYWJsZSk7XG4gICAgICAgICAgICB2YXJpYWJsZS5wYXJlbnRDb250YWluZXJFbnRpdHkgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJDb250YWluZXJFbnRpdHlcIiwgdGhpcyk7XG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICAgICAgLy8gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJwYXJlbnRCZWhhdmlvdXJhbEVudGl0eVwiLCB0aGlzLmdldFBhcmVudENvbnRhaW5lckVudGl0eSgpKTtcbiAgICAgICAgLy8gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJjaGlsZHJlbkNvbnRhaW5lckVudGl0aWVzXCIsIHRoaXMuZ2V0Q2hpbGRyZW5Db250YWluZXJFbnRpdGllcygpKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJjeWNsb21hdGljQ29tcGxleGl0eVwiLCB0aGlzLmN5Y2xvbWF0aWNDb21wbGV4aXR5KTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJudW1iZXJPZlN0YXRlbWVudHNcIiwgdGhpcy5udW1iZXJPZlN0YXRlbWVudHMpO1xuICAgICAgICAvLyAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcIm91dGdvaW5nUmVmZXJlbmNlc1wiLCB0aGlzLmdldE91dGdvaW5nUmVmZXJlbmNlcygpKTsgIC8qIGRlcml2ZWQgPyovXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwibnVtYmVyT2ZMaW5lc09mQ29kZVwiLCB0aGlzLm51bWJlck9mTGluZXNPZkNvZGUpO1xuICAgICAgICAvLyAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcIm91dGdvaW5nSW52b2NhdGlvbnNcIiwgdGhpcy5nZXRPdXRnb2luZ0ludm9jYXRpb25zKCkpOyAgLyogZGVyaXZlZCA/Ki9cbiAgICAgICAgLy8gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJhY2Nlc3Nlc1wiLCB0aGlzLmdldEFjY2Vzc2VzKCkpOyAgLyogZGVyaXZlZCA/Ki9cbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJ0eXBlc1wiLCB0aGlzLnR5cGVzKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJmdW5jdGlvbnNcIiwgdGhpcy5mdW5jdGlvbnMpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImxvY2FsVmFyaWFibGVzXCIsIHRoaXMudmFyaWFibGVzKTtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50Q29udGFpbmVyRW50aXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50Q29udGFpbmVyRW50aXR5O1xuICAgIH1cblxuICAgIHNldCBwYXJlbnRDb250YWluZXJFbnRpdHkocGFyZW50Q29udGFpbmVyRW50aXR5OiBDb250YWluZXJFbnRpdHkpIHtcbiAgICAgICAgdGhpcy5fcGFyZW50Q29udGFpbmVyRW50aXR5ID0gcGFyZW50Q29udGFpbmVyRW50aXR5O1xuICAgICAgICBwYXJlbnRDb250YWluZXJFbnRpdHkuYWRkQ2hpbGRDb250YWluZXJFbnRpdHkodGhpcyk7XG4gICAgfVxuXG4gICAgZ2V0IGNoaWxkcmVuQ29udGFpbmVyRW50aXRpZXMoKTogU2V0PENvbnRhaW5lckVudGl0eT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2hpbGRyZW5Db250YWluZXJFbnRpdGllcztcbiAgICB9XG5cbiAgICBnZXQgY3ljbG9tYXRpY0NvbXBsZXhpdHkoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N5Y2xvbWF0aWNDb21wbGV4aXR5O1xuICAgIH1cblxuICAgIHNldCBjeWNsb21hdGljQ29tcGxleGl0eShjeWNsb21hdGljQ29tcGxleGl0eTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2N5Y2xvbWF0aWNDb21wbGV4aXR5ID0gY3ljbG9tYXRpY0NvbXBsZXhpdHk7XG4gICAgfVxuXG4gICAgZ2V0IG51bWJlck9mU3RhdGVtZW50cygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbnVtYmVyT2ZTdGF0ZW1lbnRzO1xuICAgIH1cblxuICAgIHNldCBudW1iZXJPZlN0YXRlbWVudHMobnVtYmVyT2ZTdGF0ZW1lbnRzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fbnVtYmVyT2ZTdGF0ZW1lbnRzID0gbnVtYmVyT2ZTdGF0ZW1lbnRzO1xuICAgIH1cblxuICAgIGdldCBvdXRnb2luZ1JlZmVyZW5jZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vdXRnb2luZ1JlZmVyZW5jZXM7XG4gICAgfVxuXG4gICAgZ2V0IG51bWJlck9mTGluZXNPZkNvZGUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX251bWJlck9mTGluZXNPZkNvZGU7XG4gICAgfVxuXG4gICAgc2V0IG51bWJlck9mTGluZXNPZkNvZGUobnVtYmVyT2ZMaW5lc09mQ29kZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX251bWJlck9mTGluZXNPZkNvZGUgPSBudW1iZXJPZkxpbmVzT2ZDb2RlO1xuICAgIH1cblxuICAgIGdldCBvdXRnb2luZ0ludm9jYXRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3V0Z29pbmdJbnZvY2F0aW9ucztcbiAgICB9XG5cbiAgICBnZXQgYWNjZXNzZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY2Nlc3NlcztcbiAgICB9XG5cbiAgICBnZXQgdHlwZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuVHlwZXM7XG4gICAgfVxuXG4gICAgZ2V0IGZ1bmN0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW5GdW5jdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IHZhcmlhYmxlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhcmlhYmxlcztcbiAgICB9XG59XG4iXX0=
@@ -29,4 +29,4 @@ class Decorator extends named_entity_1.NamedEntity {
29
29
  }
30
30
  }
31
31
  exports.Decorator = Decorator;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELGlEQUE2QztBQUU3QyxNQUFhLFNBQVUsU0FBUSwwQkFBVztJQUsvQixPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdELFFBQVEsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxtQkFBbUIsQ0FBQyxtQkFBMkI7UUFDL0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxlQUFlLENBQUMsZUFBNEI7UUFDNUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztRQUN4QyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDSjtBQWpDRCw4QkFpQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XHJcbmltcG9ydCB7IE5hbWVkRW50aXR5IH0gZnJvbSBcIi4vbmFtZWRfZW50aXR5XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRGVjb3JhdG9yIGV4dGVuZHMgTmFtZWRFbnRpdHkge1xyXG5cclxuICAgIHByaXZhdGUgX2RlY29yYXRvckV4cHJlc3Npb24hOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9kZWNvcmF0ZWRFbnRpdHkhOiBOYW1lZEVudGl0eTtcclxuXHJcbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiRGVjb3JhdG9yXCIsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XHJcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJleHByZXNzaW9uXCIsIHRoaXMuZGVjb3JhdG9yRXhwcmVzc2lvbik7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJkZWNvcmF0ZWRFbnRpdHlcIiwgdGhpcy5kZWNvcmF0ZWRFbnRpdHkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZWNvcmF0b3JFeHByZXNzaW9uKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlY29yYXRvckV4cHJlc3Npb247XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGRlY29yYXRvckV4cHJlc3Npb24oZGVjb3JhdG9yRXhwcmVzc2lvbjogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fZGVjb3JhdG9yRXhwcmVzc2lvbiA9IGRlY29yYXRvckV4cHJlc3Npb247XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlY29yYXRlZEVudGl0eSgpOiBOYW1lZEVudGl0eSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlY29yYXRlZEVudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgZGVjb3JhdGVkRW50aXR5KGRlY29yYXRlZEVudGl0eTogTmFtZWRFbnRpdHkpIHtcclxuICAgICAgICB0aGlzLl9kZWNvcmF0ZWRFbnRpdHkgPSBkZWNvcmF0ZWRFbnRpdHk7XHJcbiAgICAgICAgZGVjb3JhdGVkRW50aXR5LmFkZERlY29yYXRvcih0aGlzKTtcclxuICAgIH1cclxufVxyXG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELGlEQUE2QztBQUU3QyxNQUFhLFNBQVUsU0FBUSwwQkFBVztJQUsvQixPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdELFFBQVEsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxtQkFBbUIsQ0FBQyxtQkFBMkI7UUFDL0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxlQUFlLENBQUMsZUFBNEI7UUFDNUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztRQUN4QyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDSjtBQWpDRCw4QkFpQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBOYW1lZEVudGl0eSB9IGZyb20gXCIuL25hbWVkX2VudGl0eVwiO1xuXG5leHBvcnQgY2xhc3MgRGVjb3JhdG9yIGV4dGVuZHMgTmFtZWRFbnRpdHkge1xuXG4gICAgcHJpdmF0ZSBfZGVjb3JhdG9yRXhwcmVzc2lvbiE6IHN0cmluZztcbiAgICBwcml2YXRlIF9kZWNvcmF0ZWRFbnRpdHkhOiBOYW1lZEVudGl0eTtcblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiRGVjb3JhdG9yXCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZXhwcmVzc2lvblwiLCB0aGlzLmRlY29yYXRvckV4cHJlc3Npb24pO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImRlY29yYXRlZEVudGl0eVwiLCB0aGlzLmRlY29yYXRlZEVudGl0eSk7XG4gICAgfVxuXG4gICAgZ2V0IGRlY29yYXRvckV4cHJlc3Npb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlY29yYXRvckV4cHJlc3Npb247XG4gICAgfVxuXG4gICAgc2V0IGRlY29yYXRvckV4cHJlc3Npb24oZGVjb3JhdG9yRXhwcmVzc2lvbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2RlY29yYXRvckV4cHJlc3Npb24gPSBkZWNvcmF0b3JFeHByZXNzaW9uO1xuICAgIH1cblxuICAgIGdldCBkZWNvcmF0ZWRFbnRpdHkoKTogTmFtZWRFbnRpdHkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVjb3JhdGVkRW50aXR5O1xuICAgIH1cblxuICAgIHNldCBkZWNvcmF0ZWRFbnRpdHkoZGVjb3JhdGVkRW50aXR5OiBOYW1lZEVudGl0eSkge1xuICAgICAgICB0aGlzLl9kZWNvcmF0ZWRFbnRpdHkgPSBkZWNvcmF0ZWRFbnRpdHk7XG4gICAgICAgIGRlY29yYXRlZEVudGl0eS5hZGREZWNvcmF0b3IodGhpcyk7XG4gICAgfVxufVxuIl19
@@ -14,4 +14,4 @@ class Entity extends famix_base_element_1.FamixBaseElement {
14
14
  }
15
15
  }
16
16
  exports.Entity = Entity;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELGlFQUE0RDtBQUU1RCxNQUFhLE1BQU8sU0FBUSxxQ0FBZ0I7SUFFbkMsT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3hELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFYRCx3QkFXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgRmFtaXhCYXNlRWxlbWVudCB9IGZyb20gXCIuLi8uLi9mYW1peF9iYXNlX2VsZW1lbnRcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHkgZXh0ZW5kcyBGYW1peEJhc2VFbGVtZW50IHtcclxuXHJcbiAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiRW50aXR5XCIsIHRoaXMpO1xyXG4gICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcclxuICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcclxuICB9XHJcbn1cclxuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELGlFQUE0RDtBQUU1RCxNQUFhLE1BQU8sU0FBUSxxQ0FBZ0I7SUFFbkMsT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3hELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFYRCx3QkFXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IEZhbWl4QmFzZUVsZW1lbnQgfSBmcm9tIFwiLi4vLi4vZmFtaXhfYmFzZV9lbGVtZW50XCI7XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHkgZXh0ZW5kcyBGYW1peEJhc2VFbGVtZW50IHtcblxuICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiRW50aXR5XCIsIHRoaXMpO1xuICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICB9XG5cbiAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgfVxufVxuIl19
@@ -28,4 +28,4 @@ class Enum extends type_1.Type {
28
28
  }
29
29
  }
30
30
  exports.Enum = Enum;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQsaUNBQThCO0FBRzlCLE1BQWEsSUFBSyxTQUFRLFdBQUk7SUFBOUI7O1FBRVksWUFBTyxHQUFtQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBdUJoRCxDQUFDO0lBckJVLFFBQVEsQ0FBQyxLQUFnQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztDQUNKO0FBekJELG9CQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcclxuaW1wb3J0IHsgRW51bVZhbHVlIH0gZnJvbSBcIi4vZW51bV92YWx1ZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVudW0gZXh0ZW5kcyBUeXBlIHtcclxuXHJcbiAgICBwcml2YXRlIF92YWx1ZXM6IFNldDxFbnVtVmFsdWU+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHB1YmxpYyBhZGRWYWx1ZSh2YWx1ZTogRW51bVZhbHVlKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl92YWx1ZXMuaGFzKHZhbHVlKSkge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZXMuYWRkKHZhbHVlKTtcclxuICAgICAgICAgICAgdmFsdWUucGFyZW50RW50aXR5ID0gdGhpcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkVudW1cIiwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcclxuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImVudW1WYWx1ZXNcIiwgdGhpcy52YWx1ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB2YWx1ZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlcztcclxuICAgIH1cclxufVxyXG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQsaUNBQThCO0FBRzlCLE1BQWEsSUFBSyxTQUFRLFdBQUk7SUFBOUI7O1FBRVksWUFBTyxHQUFtQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBdUJoRCxDQUFDO0lBckJVLFFBQVEsQ0FBQyxLQUFnQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztDQUNKO0FBekJELG9CQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyBFbnVtVmFsdWUgfSBmcm9tIFwiLi9lbnVtX3ZhbHVlXCI7XG5cbmV4cG9ydCBjbGFzcyBFbnVtIGV4dGVuZHMgVHlwZSB7XG5cbiAgICBwcml2YXRlIF92YWx1ZXM6IFNldDxFbnVtVmFsdWU+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZFZhbHVlKHZhbHVlOiBFbnVtVmFsdWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl92YWx1ZXMuaGFzKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWVzLmFkZCh2YWx1ZSk7XG4gICAgICAgICAgICB2YWx1ZS5wYXJlbnRFbnRpdHkgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJFbnVtXCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZW51bVZhbHVlc1wiLCB0aGlzLnZhbHVlcyk7XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlcztcbiAgICB9XG59XG4iXX0=
@@ -22,4 +22,4 @@ class EnumValue extends structural_entity_1.StructuralEntity {
22
22
  }
23
23
  }
24
24
  exports.EnumValue = EnumValue;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bV92YWx1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvZW51bV92YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQsMkRBQXVEO0FBR3ZELE1BQWEsU0FBVSxTQUFRLG9DQUFnQjtJQUlwQyxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxZQUFrQjtRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDSjtBQXZCRCw4QkF1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XHJcbmltcG9ydCB7IFN0cnVjdHVyYWxFbnRpdHkgfSBmcm9tIFwiLi9zdHJ1Y3R1cmFsX2VudGl0eVwiO1xyXG5pbXBvcnQgeyBFbnVtIH0gZnJvbSBcIi4vZW51bVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVudW1WYWx1ZSBleHRlbmRzIFN0cnVjdHVyYWxFbnRpdHkge1xyXG5cclxuICAgIHByaXZhdGUgX3BhcmVudEVudGl0eSE6IEVudW07XHJcblxyXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkVudW1WYWx1ZVwiLCB0aGlzKTtcclxuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xyXG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwicGFyZW50RW51bVwiLCB0aGlzLnBhcmVudEVudGl0eSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBhcmVudEVudGl0eSgpOiBFbnVtIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50RW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBwYXJlbnRFbnRpdHkocGFyZW50RW50aXR5OiBFbnVtKSB7XHJcbiAgICAgICAgdGhpcy5fcGFyZW50RW50aXR5ID0gcGFyZW50RW50aXR5O1xyXG4gICAgICAgIHBhcmVudEVudGl0eS5hZGRWYWx1ZSh0aGlzKTtcclxuICAgIH1cclxufVxyXG4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bV92YWx1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvZW51bV92YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQsMkRBQXVEO0FBR3ZELE1BQWEsU0FBVSxTQUFRLG9DQUFnQjtJQUlwQyxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxZQUFrQjtRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDSjtBQXZCRCw4QkF1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBTdHJ1Y3R1cmFsRW50aXR5IH0gZnJvbSBcIi4vc3RydWN0dXJhbF9lbnRpdHlcIjtcbmltcG9ydCB7IEVudW0gfSBmcm9tIFwiLi9lbnVtXCI7XG5cbmV4cG9ydCBjbGFzcyBFbnVtVmFsdWUgZXh0ZW5kcyBTdHJ1Y3R1cmFsRW50aXR5IHtcblxuICAgIHByaXZhdGUgX3BhcmVudEVudGl0eSE6IEVudW07XG5cbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkVudW1WYWx1ZVwiLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInBhcmVudEVudW1cIiwgdGhpcy5wYXJlbnRFbnRpdHkpO1xuICAgIH1cblxuICAgIGdldCBwYXJlbnRFbnRpdHkoKTogRW51bSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRFbnRpdHk7XG4gICAgfVxuXG4gICAgc2V0IHBhcmVudEVudGl0eShwYXJlbnRFbnRpdHk6IEVudW0pIHtcbiAgICAgICAgdGhpcy5fcGFyZW50RW50aXR5ID0gcGFyZW50RW50aXR5O1xuICAgICAgICBwYXJlbnRFbnRpdHkuYWRkVmFsdWUodGhpcyk7XG4gICAgfVxufVxuIl19
@@ -14,4 +14,4 @@ class Function extends behavioral_entity_1.BehavioralEntity {
14
14
  }
15
15
  }
16
16
  exports.Function = Function;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2Z1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCwyREFBdUQ7QUFFdkQsTUFBYSxRQUFTLFNBQVEsb0NBQWdCO0lBRXJDLE9BQU87UUFDWixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN4RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBWEQsNEJBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XHJcbmltcG9ydCB7IEJlaGF2aW9yYWxFbnRpdHkgfSBmcm9tIFwiLi9iZWhhdmlvcmFsX2VudGl0eVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uIGV4dGVuZHMgQmVoYXZpb3JhbEVudGl0eSB7XHJcblxyXG4gIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkZ1bmN0aW9uXCIsIHRoaXMpO1xyXG4gICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcclxuICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcclxuICB9XHJcbn1cclxuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2Z1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCwyREFBdUQ7QUFFdkQsTUFBYSxRQUFTLFNBQVEsb0NBQWdCO0lBRXJDLE9BQU87UUFDWixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN4RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBWEQsNEJBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBCZWhhdmlvcmFsRW50aXR5IH0gZnJvbSBcIi4vYmVoYXZpb3JhbF9lbnRpdHlcIjtcblxuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uIGV4dGVuZHMgQmVoYXZpb3JhbEVudGl0eSB7XG5cbiAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkZ1bmN0aW9uXCIsIHRoaXMpO1xuICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICB9XG5cbiAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgfVxufVxuIl19
@@ -38,4 +38,4 @@ class ImportClause extends entity_1.Entity {
38
38
  }
39
39
  }
40
40
  exports.ImportClause = ImportClause;
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0X2NsYXVzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvaW1wb3J0X2NsYXVzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQscUNBQWtDO0FBSWxDLE1BQWEsWUFBYSxTQUFRLGVBQU07SUFNN0IsT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM5RCxRQUFRLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1RCx5QkFBeUI7UUFDekIseUVBQXlFO0lBQzdFLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxlQUFlLENBQUMsUUFBZ0I7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztRQUNqQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXO0lBQ2pELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLGNBQTJCO1FBQzFDLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLCtDQUErQztJQUMzRixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLGVBQXVCO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7SUFDNUMsQ0FBQztDQUNKO0FBN0NELG9DQTZDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSBcIi4vZW50aXR5XCI7XHJcbmltcG9ydCB7IE1vZHVsZSB9IGZyb20gXCIuL21vZHVsZVwiO1xyXG5pbXBvcnQgeyBOYW1lZEVudGl0eSB9IGZyb20gXCIuL25hbWVkX2VudGl0eVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEltcG9ydENsYXVzZSBleHRlbmRzIEVudGl0eSB7XHJcblxyXG4gICAgcHJpdmF0ZSBfaW1wb3J0aW5nRW50aXR5ITogTW9kdWxlO1xyXG4gICAgcHJpdmF0ZSBfaW1wb3J0ZWRFbnRpdHkhOiBOYW1lZEVudGl0eTtcclxuICAgIHByaXZhdGUgX21vZHVsZVNwZWNpZmllciE6IHN0cmluZztcclxuXHJcbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiSW1wb3J0Q2xhdXNlXCIsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XHJcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJpbXBvcnRpbmdFbnRpdHlcIiwgdGhpcy5pbXBvcnRpbmdFbnRpdHkpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaW1wb3J0ZWRFbnRpdHlcIiwgdGhpcy5pbXBvcnRlZEVudGl0eSk7XHJcbiAgICAgICAgLy8gdW5rbm93biBwcm9wZXJ0eSBiZWxvd1xyXG4gICAgICAgIC8vICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwibW9kdWxlU3BlY2lmaWVyXCIsIHRoaXMuZ2V0TW9kdWxlU3BlY2lmaWVyKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpbXBvcnRpbmdFbnRpdHkoKTogTW9kdWxlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faW1wb3J0aW5nRW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpbXBvcnRpbmdFbnRpdHkoaW1wb3J0ZXI6IE1vZHVsZSkge1xyXG4gICAgICAgIHRoaXMuX2ltcG9ydGluZ0VudGl0eSA9IGltcG9ydGVyO1xyXG4gICAgICAgIGltcG9ydGVyLmFkZE91dGdvaW5nSW1wb3J0KHRoaXMpOyAvLyBvcHBvc2l0ZVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBpbXBvcnRlZEVudGl0eSgpOiBOYW1lZEVudGl0eSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ltcG9ydGVkRW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpbXBvcnRlZEVudGl0eShpbXBvcnRlZEVudGl0eTogTmFtZWRFbnRpdHkpIHtcclxuICAgICAgICB0aGlzLl9pbXBvcnRlZEVudGl0eSA9IGltcG9ydGVkRW50aXR5O1xyXG4gICAgICAgIGltcG9ydGVkRW50aXR5LmFkZEluY29taW5nSW1wb3J0KHRoaXMpOyAvLyBpbmNvbWluZ0ltcG9ydHMgaW4gRmFtaXggVEltcG9ydGFibGUvVEltcG9ydFxyXG4gICAgfVxyXG5cclxuICAgIGdldCBtb2R1bGVTcGVjaWZpZXIoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbW9kdWxlU3BlY2lmaWVyO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBtb2R1bGVTcGVjaWZpZXIobW9kdWxlU3BlY2lmaWVyOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tb2R1bGVTcGVjaWZpZXIgPSBtb2R1bGVTcGVjaWZpZXI7XHJcbiAgICB9XHJcbn1cclxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0X2NsYXVzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvaW1wb3J0X2NsYXVzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQscUNBQWtDO0FBSWxDLE1BQWEsWUFBYSxTQUFRLGVBQU07SUFNN0IsT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM5RCxRQUFRLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1RCx5QkFBeUI7UUFDekIseUVBQXlFO0lBQzdFLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxlQUFlLENBQUMsUUFBZ0I7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztRQUNqQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXO0lBQ2pELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLGNBQTJCO1FBQzFDLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLCtDQUErQztJQUMzRixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLGVBQXVCO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7SUFDNUMsQ0FBQztDQUNKO0FBN0NELG9DQTZDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gXCIuL2VudGl0eVwiO1xuaW1wb3J0IHsgTW9kdWxlIH0gZnJvbSBcIi4vbW9kdWxlXCI7XG5pbXBvcnQgeyBOYW1lZEVudGl0eSB9IGZyb20gXCIuL25hbWVkX2VudGl0eVwiO1xuXG5leHBvcnQgY2xhc3MgSW1wb3J0Q2xhdXNlIGV4dGVuZHMgRW50aXR5IHtcblxuICAgIHByaXZhdGUgX2ltcG9ydGluZ0VudGl0eSE6IE1vZHVsZTtcbiAgICBwcml2YXRlIF9pbXBvcnRlZEVudGl0eSE6IE5hbWVkRW50aXR5O1xuICAgIHByaXZhdGUgX21vZHVsZVNwZWNpZmllciE6IHN0cmluZztcblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiSW1wb3J0Q2xhdXNlXCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaW1wb3J0aW5nRW50aXR5XCIsIHRoaXMuaW1wb3J0aW5nRW50aXR5KTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJpbXBvcnRlZEVudGl0eVwiLCB0aGlzLmltcG9ydGVkRW50aXR5KTtcbiAgICAgICAgLy8gdW5rbm93biBwcm9wZXJ0eSBiZWxvd1xuICAgICAgICAvLyAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcIm1vZHVsZVNwZWNpZmllclwiLCB0aGlzLmdldE1vZHVsZVNwZWNpZmllcigpKTtcbiAgICB9XG5cbiAgICBnZXQgaW1wb3J0aW5nRW50aXR5KCk6IE1vZHVsZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbXBvcnRpbmdFbnRpdHk7XG4gICAgfVxuXG4gICAgc2V0IGltcG9ydGluZ0VudGl0eShpbXBvcnRlcjogTW9kdWxlKSB7XG4gICAgICAgIHRoaXMuX2ltcG9ydGluZ0VudGl0eSA9IGltcG9ydGVyO1xuICAgICAgICBpbXBvcnRlci5hZGRPdXRnb2luZ0ltcG9ydCh0aGlzKTsgLy8gb3Bwb3NpdGVcbiAgICB9XG5cbiAgICBnZXQgaW1wb3J0ZWRFbnRpdHkoKTogTmFtZWRFbnRpdHkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW1wb3J0ZWRFbnRpdHk7XG4gICAgfVxuXG4gICAgc2V0IGltcG9ydGVkRW50aXR5KGltcG9ydGVkRW50aXR5OiBOYW1lZEVudGl0eSkge1xuICAgICAgICB0aGlzLl9pbXBvcnRlZEVudGl0eSA9IGltcG9ydGVkRW50aXR5O1xuICAgICAgICBpbXBvcnRlZEVudGl0eS5hZGRJbmNvbWluZ0ltcG9ydCh0aGlzKTsgLy8gaW5jb21pbmdJbXBvcnRzIGluIEZhbWl4IFRJbXBvcnRhYmxlL1RJbXBvcnRcbiAgICB9XG5cbiAgICBnZXQgbW9kdWxlU3BlY2lmaWVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2R1bGVTcGVjaWZpZXI7XG4gICAgfVxuXG4gICAgc2V0IG1vZHVsZVNwZWNpZmllcihtb2R1bGVTcGVjaWZpZXI6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9tb2R1bGVTcGVjaWZpZXIgPSBtb2R1bGVTcGVjaWZpZXI7XG4gICAgfVxufVxuIl19