@angular/compiler 19.0.0-next.1 → 19.0.0-next.10

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 (186) hide show
  1. package/LICENSE +21 -0
  2. package/fesm2022/compiler.mjs +5465 -4675
  3. package/fesm2022/compiler.mjs.map +1 -1
  4. package/index.d.ts +115 -15
  5. package/package.json +2 -4
  6. package/esm2022/compiler.mjs +0 -13
  7. package/esm2022/index.mjs +0 -13
  8. package/esm2022/public_api.mjs +0 -15
  9. package/esm2022/src/assertions.mjs +0 -31
  10. package/esm2022/src/chars.mjs +0 -90
  11. package/esm2022/src/compiler.mjs +0 -88
  12. package/esm2022/src/compiler_facade_interface.mjs +0 -29
  13. package/esm2022/src/config.mjs +0 -20
  14. package/esm2022/src/constant_pool.mjs +0 -285
  15. package/esm2022/src/core.mjs +0 -96
  16. package/esm2022/src/expression_parser/ast.mjs +0 -755
  17. package/esm2022/src/expression_parser/lexer.mjs +0 -421
  18. package/esm2022/src/expression_parser/parser.mjs +0 -1222
  19. package/esm2022/src/i18n/digest.mjs +0 -322
  20. package/esm2022/src/i18n/extractor_merger.mjs +0 -409
  21. package/esm2022/src/i18n/i18n_ast.mjs +0 -212
  22. package/esm2022/src/i18n/i18n_html_parser.mjs +0 -54
  23. package/esm2022/src/i18n/i18n_parser.mjs +0 -247
  24. package/esm2022/src/i18n/index.mjs +0 -16
  25. package/esm2022/src/i18n/message_bundle.mjs +0 -93
  26. package/esm2022/src/i18n/parse_util.mjs +0 -17
  27. package/esm2022/src/i18n/serializers/placeholder.mjs +0 -139
  28. package/esm2022/src/i18n/serializers/serializer.mjs +0 -77
  29. package/esm2022/src/i18n/serializers/xliff.mjs +0 -300
  30. package/esm2022/src/i18n/serializers/xliff2.mjs +0 -349
  31. package/esm2022/src/i18n/serializers/xmb.mjs +0 -188
  32. package/esm2022/src/i18n/serializers/xml_helper.mjs +0 -94
  33. package/esm2022/src/i18n/serializers/xtb.mjs +0 -186
  34. package/esm2022/src/i18n/translation_bundle.mjs +0 -164
  35. package/esm2022/src/injectable_compiler_2.mjs +0 -138
  36. package/esm2022/src/jit_compiler_facade.mjs +0 -681
  37. package/esm2022/src/ml_parser/ast.mjs +0 -167
  38. package/esm2022/src/ml_parser/defaults.mjs +0 -24
  39. package/esm2022/src/ml_parser/entities.mjs +0 -2144
  40. package/esm2022/src/ml_parser/html_parser.mjs +0 -18
  41. package/esm2022/src/ml_parser/html_tags.mjs +0 -156
  42. package/esm2022/src/ml_parser/html_whitespaces.mjs +0 -107
  43. package/esm2022/src/ml_parser/icu_ast_expander.mjs +0 -125
  44. package/esm2022/src/ml_parser/lexer.mjs +0 -1210
  45. package/esm2022/src/ml_parser/parser.mjs +0 -539
  46. package/esm2022/src/ml_parser/tags.mjs +0 -47
  47. package/esm2022/src/ml_parser/tokens.mjs +0 -9
  48. package/esm2022/src/ml_parser/xml_parser.mjs +0 -19
  49. package/esm2022/src/ml_parser/xml_tags.mjs +0 -32
  50. package/esm2022/src/output/abstract_emitter.mjs +0 -524
  51. package/esm2022/src/output/abstract_js_emitter.mjs +0 -130
  52. package/esm2022/src/output/map_util.mjs +0 -19
  53. package/esm2022/src/output/output_ast.mjs +0 -1301
  54. package/esm2022/src/output/output_jit.mjs +0 -138
  55. package/esm2022/src/output/output_jit_trusted_types.mjs +0 -100
  56. package/esm2022/src/output/source_map.mjs +0 -150
  57. package/esm2022/src/parse_util.mjs +0 -198
  58. package/esm2022/src/render3/partial/api.mjs +0 -9
  59. package/esm2022/src/render3/partial/class_metadata.mjs +0 -52
  60. package/esm2022/src/render3/partial/component.mjs +0 -197
  61. package/esm2022/src/render3/partial/directive.mjs +0 -264
  62. package/esm2022/src/render3/partial/factory.mjs +0 -35
  63. package/esm2022/src/render3/partial/injectable.mjs +0 -67
  64. package/esm2022/src/render3/partial/injector.mjs +0 -41
  65. package/esm2022/src/render3/partial/ng_module.mjs +0 -63
  66. package/esm2022/src/render3/partial/pipe.mjs +0 -50
  67. package/esm2022/src/render3/partial/util.mjs +0 -79
  68. package/esm2022/src/render3/r3_ast.mjs +0 -493
  69. package/esm2022/src/render3/r3_class_debug_info_compiler.mjs +0 -35
  70. package/esm2022/src/render3/r3_class_metadata_compiler.mjs +0 -92
  71. package/esm2022/src/render3/r3_control_flow.mjs +0 -421
  72. package/esm2022/src/render3/r3_deferred_blocks.mjs +0 -170
  73. package/esm2022/src/render3/r3_deferred_triggers.mjs +0 -316
  74. package/esm2022/src/render3/r3_factory.mjs +0 -200
  75. package/esm2022/src/render3/r3_identifiers.mjs +0 -480
  76. package/esm2022/src/render3/r3_injector_compiler.mjs +0 -28
  77. package/esm2022/src/render3/r3_jit.mjs +0 -29
  78. package/esm2022/src/render3/r3_module_compiler.mjs +0 -211
  79. package/esm2022/src/render3/r3_pipe_compiler.mjs +0 -35
  80. package/esm2022/src/render3/r3_template_transform.mjs +0 -560
  81. package/esm2022/src/render3/util.mjs +0 -90
  82. package/esm2022/src/render3/view/api.mjs +0 -14
  83. package/esm2022/src/render3/view/compiler.mjs +0 -546
  84. package/esm2022/src/render3/view/i18n/get_msg_utils.mjs +0 -113
  85. package/esm2022/src/render3/view/i18n/icu_serializer.mjs +0 -43
  86. package/esm2022/src/render3/view/i18n/localize_utils.mjs +0 -118
  87. package/esm2022/src/render3/view/i18n/meta.mjs +0 -259
  88. package/esm2022/src/render3/view/i18n/util.mjs +0 -70
  89. package/esm2022/src/render3/view/query_generation.mjs +0 -182
  90. package/esm2022/src/render3/view/t2_api.mjs +0 -9
  91. package/esm2022/src/render3/view/t2_binder.mjs +0 -823
  92. package/esm2022/src/render3/view/template.mjs +0 -113
  93. package/esm2022/src/render3/view/util.mjs +0 -192
  94. package/esm2022/src/resource_loader.mjs +0 -17
  95. package/esm2022/src/schema/dom_element_schema_registry.mjs +0 -471
  96. package/esm2022/src/schema/dom_security_schema.mjs +0 -96
  97. package/esm2022/src/schema/element_schema_registry.mjs +0 -10
  98. package/esm2022/src/schema/trusted_types_sinks.mjs +0 -41
  99. package/esm2022/src/selector.mjs +0 -400
  100. package/esm2022/src/shadow_css.mjs +0 -1053
  101. package/esm2022/src/style_url_resolver.mjs +0 -17
  102. package/esm2022/src/template/pipeline/ir/index.mjs +0 -18
  103. package/esm2022/src/template/pipeline/ir/src/enums.mjs +0 -503
  104. package/esm2022/src/template/pipeline/ir/src/expression.mjs +0 -997
  105. package/esm2022/src/template/pipeline/ir/src/handle.mjs +0 -13
  106. package/esm2022/src/template/pipeline/ir/src/operations.mjs +0 -261
  107. package/esm2022/src/template/pipeline/ir/src/ops/create.mjs +0 -405
  108. package/esm2022/src/template/pipeline/ir/src/ops/host.mjs +0 -25
  109. package/esm2022/src/template/pipeline/ir/src/ops/shared.mjs +0 -43
  110. package/esm2022/src/template/pipeline/ir/src/ops/update.mjs +0 -277
  111. package/esm2022/src/template/pipeline/ir/src/traits.mjs +0 -64
  112. package/esm2022/src/template/pipeline/ir/src/variable.mjs +0 -13
  113. package/esm2022/src/template/pipeline/src/compilation.mjs +0 -194
  114. package/esm2022/src/template/pipeline/src/conversion.mjs +0 -64
  115. package/esm2022/src/template/pipeline/src/emit.mjs +0 -238
  116. package/esm2022/src/template/pipeline/src/ingest.mjs +0 -1058
  117. package/esm2022/src/template/pipeline/src/instruction.mjs +0 -564
  118. package/esm2022/src/template/pipeline/src/phases/any_cast.mjs +0 -32
  119. package/esm2022/src/template/pipeline/src/phases/apply_i18n_expressions.mjs +0 -63
  120. package/esm2022/src/template/pipeline/src/phases/assign_i18n_slot_dependencies.mjs +0 -63
  121. package/esm2022/src/template/pipeline/src/phases/attribute_extraction.mjs +0 -138
  122. package/esm2022/src/template/pipeline/src/phases/binding_specialization.mjs +0 -75
  123. package/esm2022/src/template/pipeline/src/phases/chaining.mjs +0 -112
  124. package/esm2022/src/template/pipeline/src/phases/collapse_singleton_interpolations.mjs +0 -32
  125. package/esm2022/src/template/pipeline/src/phases/conditionals.mjs +0 -58
  126. package/esm2022/src/template/pipeline/src/phases/const_collection.mjs +0 -214
  127. package/esm2022/src/template/pipeline/src/phases/convert_i18n_bindings.mjs +0 -52
  128. package/esm2022/src/template/pipeline/src/phases/create_i18n_contexts.mjs +0 -105
  129. package/esm2022/src/template/pipeline/src/phases/deduplicate_text_bindings.mjs +0 -40
  130. package/esm2022/src/template/pipeline/src/phases/defer_configs.mjs +0 -29
  131. package/esm2022/src/template/pipeline/src/phases/defer_resolve_targets.mjs +0 -113
  132. package/esm2022/src/template/pipeline/src/phases/empty_elements.mjs +0 -47
  133. package/esm2022/src/template/pipeline/src/phases/expand_safe_reads.mjs +0 -192
  134. package/esm2022/src/template/pipeline/src/phases/extract_i18n_messages.mjs +0 -218
  135. package/esm2022/src/template/pipeline/src/phases/generate_advance.mjs +0 -66
  136. package/esm2022/src/template/pipeline/src/phases/generate_local_let_references.mjs +0 -29
  137. package/esm2022/src/template/pipeline/src/phases/generate_projection_def.mjs +0 -46
  138. package/esm2022/src/template/pipeline/src/phases/generate_variables.mjs +0 -170
  139. package/esm2022/src/template/pipeline/src/phases/has_const_expression_collection.mjs +0 -28
  140. package/esm2022/src/template/pipeline/src/phases/host_style_property_parsing.mjs +0 -81
  141. package/esm2022/src/template/pipeline/src/phases/i18n_const_collection.mjs +0 -309
  142. package/esm2022/src/template/pipeline/src/phases/i18n_text_extraction.mjs +0 -97
  143. package/esm2022/src/template/pipeline/src/phases/local_refs.mjs +0 -43
  144. package/esm2022/src/template/pipeline/src/phases/namespace.mjs +0 -26
  145. package/esm2022/src/template/pipeline/src/phases/naming.mjs +0 -179
  146. package/esm2022/src/template/pipeline/src/phases/next_context_merging.mjs +0 -75
  147. package/esm2022/src/template/pipeline/src/phases/ng_container.mjs +0 -29
  148. package/esm2022/src/template/pipeline/src/phases/nonbindable.mjs +0 -47
  149. package/esm2022/src/template/pipeline/src/phases/nullish_coalescing.mjs +0 -33
  150. package/esm2022/src/template/pipeline/src/phases/ordering.mjs +0 -140
  151. package/esm2022/src/template/pipeline/src/phases/parse_extracted_styles.mjs +0 -137
  152. package/esm2022/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs +0 -42
  153. package/esm2022/src/template/pipeline/src/phases/pipe_creation.mjs +0 -74
  154. package/esm2022/src/template/pipeline/src/phases/pipe_variadic.mjs +0 -30
  155. package/esm2022/src/template/pipeline/src/phases/propagate_i18n_blocks.mjs +0 -81
  156. package/esm2022/src/template/pipeline/src/phases/pure_function_extraction.mjs +0 -55
  157. package/esm2022/src/template/pipeline/src/phases/pure_literal_structures.mjs +0 -58
  158. package/esm2022/src/template/pipeline/src/phases/reify.mjs +0 -433
  159. package/esm2022/src/template/pipeline/src/phases/remove_empty_bindings.mjs +0 -31
  160. package/esm2022/src/template/pipeline/src/phases/remove_i18n_contexts.mjs +0 -27
  161. package/esm2022/src/template/pipeline/src/phases/remove_illegal_let_references.mjs +0 -36
  162. package/esm2022/src/template/pipeline/src/phases/remove_unused_i18n_attrs.mjs +0 -33
  163. package/esm2022/src/template/pipeline/src/phases/resolve_contexts.mjs +0 -60
  164. package/esm2022/src/template/pipeline/src/phases/resolve_defer_deps_fns.mjs +0 -31
  165. package/esm2022/src/template/pipeline/src/phases/resolve_dollar_event.mjs +0 -36
  166. package/esm2022/src/template/pipeline/src/phases/resolve_i18n_element_placeholders.mjs +0 -266
  167. package/esm2022/src/template/pipeline/src/phases/resolve_i18n_expression_placeholders.mjs +0 -70
  168. package/esm2022/src/template/pipeline/src/phases/resolve_names.mjs +0 -124
  169. package/esm2022/src/template/pipeline/src/phases/resolve_sanitizers.mjs +0 -123
  170. package/esm2022/src/template/pipeline/src/phases/save_restore_view.mjs +0 -64
  171. package/esm2022/src/template/pipeline/src/phases/slot_allocation.mjs +0 -62
  172. package/esm2022/src/template/pipeline/src/phases/store_let_optimization.mjs +0 -35
  173. package/esm2022/src/template/pipeline/src/phases/style_binding_specialization.mjs +0 -42
  174. package/esm2022/src/template/pipeline/src/phases/temporary_variables.mjs +0 -87
  175. package/esm2022/src/template/pipeline/src/phases/track_fn_generation.mjs +0 -52
  176. package/esm2022/src/template/pipeline/src/phases/track_fn_optimization.mjs +0 -88
  177. package/esm2022/src/template/pipeline/src/phases/track_variables.mjs +0 -36
  178. package/esm2022/src/template/pipeline/src/phases/transform_two_way_binding_set.mjs +0 -43
  179. package/esm2022/src/template/pipeline/src/phases/var_counting.mjs +0 -155
  180. package/esm2022/src/template/pipeline/src/phases/variable_optimization.mjs +0 -423
  181. package/esm2022/src/template/pipeline/src/phases/wrap_icus.mjs +0 -41
  182. package/esm2022/src/template/pipeline/src/util/elements.mjs +0 -29
  183. package/esm2022/src/template_parser/binding_parser.mjs +0 -465
  184. package/esm2022/src/template_parser/template_preparser.mjs +0 -84
  185. package/esm2022/src/util.mjs +0 -124
  186. package/esm2022/src/version.mjs +0 -15
@@ -1,90 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { escapeIdentifier } from '../output/abstract_emitter';
9
- import * as o from '../output/output_ast';
10
- import { Identifiers } from './r3_identifiers';
11
- export function typeWithParameters(type, numParams) {
12
- if (numParams === 0) {
13
- return o.expressionType(type);
14
- }
15
- const params = [];
16
- for (let i = 0; i < numParams; i++) {
17
- params.push(o.DYNAMIC_TYPE);
18
- }
19
- return o.expressionType(type, undefined, params);
20
- }
21
- const ANIMATE_SYMBOL_PREFIX = '@';
22
- export function prepareSyntheticPropertyName(name) {
23
- return `${ANIMATE_SYMBOL_PREFIX}${name}`;
24
- }
25
- export function prepareSyntheticListenerName(name, phase) {
26
- return `${ANIMATE_SYMBOL_PREFIX}${name}.${phase}`;
27
- }
28
- export function getSafePropertyAccessString(accessor, name) {
29
- const escapedName = escapeIdentifier(name, false, false);
30
- return escapedName !== name ? `${accessor}[${escapedName}]` : `${accessor}.${name}`;
31
- }
32
- export function prepareSyntheticListenerFunctionName(name, phase) {
33
- return `animation_${name}_${phase}`;
34
- }
35
- export function jitOnlyGuardedExpression(expr) {
36
- return guardedExpression('ngJitMode', expr);
37
- }
38
- export function devOnlyGuardedExpression(expr) {
39
- return guardedExpression('ngDevMode', expr);
40
- }
41
- export function guardedExpression(guard, expr) {
42
- const guardExpr = new o.ExternalExpr({ name: guard, moduleName: null });
43
- const guardNotDefined = new o.BinaryOperatorExpr(o.BinaryOperator.Identical, new o.TypeofExpr(guardExpr), o.literal('undefined'));
44
- const guardUndefinedOrTrue = new o.BinaryOperatorExpr(o.BinaryOperator.Or, guardNotDefined, guardExpr,
45
- /* type */ undefined,
46
- /* sourceSpan */ undefined, true);
47
- return new o.BinaryOperatorExpr(o.BinaryOperator.And, guardUndefinedOrTrue, expr);
48
- }
49
- export function wrapReference(value) {
50
- const wrapped = new o.WrappedNodeExpr(value);
51
- return { value: wrapped, type: wrapped };
52
- }
53
- export function refsToArray(refs, shouldForwardDeclare) {
54
- const values = o.literalArr(refs.map((ref) => ref.value));
55
- return shouldForwardDeclare ? o.arrowFn([], values) : values;
56
- }
57
- export function createMayBeForwardRefExpression(expression, forwardRef) {
58
- return { expression, forwardRef };
59
- }
60
- /**
61
- * Convert a `MaybeForwardRefExpression` to an `Expression`, possibly wrapping its expression in a
62
- * `forwardRef()` call.
63
- *
64
- * If `MaybeForwardRefExpression.forwardRef` is `ForwardRefHandling.Unwrapped` then the expression
65
- * was originally wrapped in a `forwardRef()` call to prevent the value from being eagerly evaluated
66
- * in the code.
67
- *
68
- * See `packages/compiler-cli/src/ngtsc/annotations/src/injectable.ts` and
69
- * `packages/compiler/src/jit_compiler_facade.ts` for more information.
70
- */
71
- export function convertFromMaybeForwardRefExpression({ expression, forwardRef, }) {
72
- switch (forwardRef) {
73
- case 0 /* ForwardRefHandling.None */:
74
- case 1 /* ForwardRefHandling.Wrapped */:
75
- return expression;
76
- case 2 /* ForwardRefHandling.Unwrapped */:
77
- return generateForwardRef(expression);
78
- }
79
- }
80
- /**
81
- * Generate an expression that has the given `expr` wrapped in the following form:
82
- *
83
- * ```
84
- * forwardRef(() => expr)
85
- * ```
86
- */
87
- export function generateForwardRef(expr) {
88
- return o.importExpr(Identifiers.forwardRef).callFn([o.arrowFn([], expr)]);
89
- }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy9yZW5kZXIzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxLQUFLLENBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUUxQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFN0MsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQWtCLEVBQUUsU0FBaUI7SUFDdEUsSUFBSSxTQUFTLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFDNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBZ0JELE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO0FBQ2xDLE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxJQUFZO0lBQ3ZELE9BQU8sR0FBRyxxQkFBcUIsR0FBRyxJQUFJLEVBQUUsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLElBQVksRUFBRSxLQUFhO0lBQ3RFLE9BQU8sR0FBRyxxQkFBcUIsR0FBRyxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7QUFDcEQsQ0FBQztBQUVELE1BQU0s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QztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFrQjtJQUNuRCxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7ZXNjYXBlSWRlbnRpZmllcn0gZnJvbSAnLi4vb3V0cHV0L2Fic3RyYWN0X2VtaXR0ZXInO1xuaW1wb3J0ICogYXMgbyBmcm9tICcuLi9vdXRwdXQvb3V0cHV0X2FzdCc7XG5cbmltcG9ydCB7SWRlbnRpZmllcnN9IGZyb20gJy4vcjNfaWRlbnRpZmllcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdHlwZVdpdGhQYXJhbWV0ZXJzKHR5cGU6IG8uRXhwcmVzc2lvbiwgbnVtUGFyYW1zOiBudW1iZXIpOiBvLkV4cHJlc3Npb25UeXBlIHtcbiAgaWYgKG51bVBhcmFtcyA9PT0gMCkge1xuICAgIHJldHVybiBvLmV4cHJlc3Npb25UeXBlKHR5cGUpO1xuICB9XG4gIGNvbnN0IHBhcmFtczogby5UeXBlW10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1QYXJhbXM7IGkrKykge1xuICAgIHBhcmFtcy5wdXNoKG8uRFlOQU1JQ19UWVBFKTtcbiAgfVxuICByZXR1cm4gby5leHByZXNzaW9uVHlwZSh0eXBlLCB1bmRlZmluZWQsIHBhcmFtcyk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUjNSZWZlcmVuY2Uge1xuICB2YWx1ZTogby5FeHByZXNzaW9uO1xuICB0eXBlOiBvLkV4cHJlc3Npb247XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIGNvbXBpbGF0aW9uIG9mIGEgcmVuZGVyMyBjb2RlIHVuaXQsIGUuZy4gY29tcG9uZW50LCBkaXJlY3RpdmUsIHBpcGUsIGV0Yy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSM0NvbXBpbGVkRXhwcmVzc2lvbiB7XG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbjtcbiAgdHlwZTogby5UeXBlO1xuICBzdGF0ZW1lbnRzOiBvLlN0YXRlbWVudFtdO1xufVxuXG5jb25zdCBBTklNQVRFX1NZTUJPTF9QUkVGSVggPSAnQCc7XG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZVN5bnRoZXRpY1Byb3BlcnR5TmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGAke0FOSU1BVEVfU1lNQk9MX1BSRUZJWH0ke25hbWV9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVTeW50aGV0aWNMaXN0ZW5lck5hbWUobmFtZTogc3RyaW5nLCBwaGFzZTogc3RyaW5nKSB7XG4gIHJldHVybiBgJHtBTklNQVRFX1NZTUJPTF9QUkVGSVh9JHtuYW1lfS4ke3BoYXNlfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTYWZlUHJvcGVydHlBY2Nlc3NTdHJpbmcoYWNjZXNzb3I6IHN0cmluZywgbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZXNjYXBlZE5hbWUgPSBlc2NhcGVJZGVudGlmaWVyKG5hbWUsIGZhbHNlLCBmYWxzZSk7XG4gIHJldHVybiBlc2NhcGVkTmFtZSAhPT0gbmFtZSA/IGAke2FjY2Vzc29yfVske2VzY2FwZWROYW1lfV1gIDogYCR7YWNjZXNzb3J9LiR7bmFtZX1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZVN5bnRoZXRpY0xpc3RlbmVyRnVuY3Rpb25OYW1lKG5hbWU6IHN0cmluZywgcGhhc2U6IHN0cmluZykge1xuICByZXR1cm4gYGFuaW1hdGlvbl8ke25hbWV9XyR7cGhhc2V9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGppdE9ubHlHdWFyZGVkRXhwcmVzc2lvbihleHByOiBvLkV4cHJlc3Npb24pOiBvLkV4cHJlc3Npb24ge1xuICByZXR1cm4gZ3VhcmRlZEV4cHJlc3Npb24oJ25nSml0TW9kZScsIGV4cHIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGV2T25seUd1YXJkZWRFeHByZXNzaW9uKGV4cHI6IG8uRXhwcmVzc2lvbik6IG8uRXhwcmVzc2lvbiB7XG4gIHJldHVybiBndWFyZGVkRXhwcmVzc2lvbignbmdEZXZNb2RlJywgZXhwcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBndWFyZGVkRXhwcmVzc2lvbihndWFyZDogc3RyaW5nLCBleHByOiBvLkV4cHJlc3Npb24pOiBvLkV4cHJlc3Npb24ge1xuICBjb25zdCBndWFyZEV4cHIgPSBuZXcgby5FeHRlcm5hbEV4cHIoe25hbWU6IGd1YXJkLCBtb2R1bGVOYW1lOiBudWxsfSk7XG4gIGNvbnN0IGd1YXJkTm90RGVmaW5lZCA9IG5ldyBvLkJpbmFyeU9wZXJhdG9yRXhwcihcbiAgICBvLkJpbmFyeU9wZXJhdG9yLklkZW50aWNhbCxcbiAgICBuZXcgby5UeXBlb2ZFeHByKGd1YXJkRXhwciksXG4gICAgby5saXRlcmFsKCd1bmRlZmluZWQnKSxcbiAgKTtcbiAgY29uc3QgZ3VhcmRVbmRlZmluZWRPclRydWUgPSBuZXcgby5CaW5hcnlPcGVyYXRvckV4cHIoXG4gICAgby5CaW5hcnlPcGVyYXRvci5PcixcbiAgICBndWFyZE5vdERlZmluZWQsXG4gICAgZ3VhcmRFeHByLFxuICAgIC8qIHR5cGUgKi8gdW5kZWZpbmVkLFxuICAgIC8qIHNvdXJjZVNwYW4gKi8gdW5kZWZpbmVkLFxuICAgIHRydWUsXG4gICk7XG4gIHJldHVybiBuZXcgby5CaW5hcnlPcGVyYXRvckV4cHIoby5CaW5hcnlPcGVyYXRvci5BbmQsIGd1YXJkVW5kZWZpbmVkT3JUcnVlLCBleHByKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBSZWZlcmVuY2UodmFsdWU6IGFueSk6IFIzUmVmZXJlbmNlIHtcbiAgY29uc3Qgd3JhcHBlZCA9IG5ldyBvLldyYXBwZWROb2RlRXhwcih2YWx1ZSk7XG4gIHJldHVybiB7dmFsdWU6IHdyYXBwZWQsIHR5cGU6IHdyYXBwZWR9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVmc1RvQXJyYXkocmVmczogUjNSZWZlcmVuY2VbXSwgc2hvdWxkRm9yd2FyZERlY2xhcmU6IGJvb2xlYW4pOiBvLkV4cHJlc3Npb24ge1xuICBjb25zdCB2YWx1ZXMgPSBvLmxpdGVyYWxBcnIocmVmcy5tYXAoKHJlZikgPT4gcmVmLnZhbHVlKSk7XG4gIHJldHVybiBzaG91bGRGb3J3YXJkRGVjbGFyZSA/IG8uYXJyb3dGbihbXSwgdmFsdWVzKSA6IHZhbHVlcztcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYW4gZXhwcmVzc2lvbiB0aGF0IG1heSBoYXZlIGJlZW4gd3JhcHBlZCBpbiBhIGBmb3J3YXJkUmVmKClgIGd1YXJkLlxuICpcbiAqIFRoaXMgaXMgdXNlZCB3aGVuIGRlc2NyaWJpbmcgZXhwcmVzc2lvbnMgdGhhdCBjYW4gcmVmZXIgdG8gdHlwZXMgdGhhdCBtYXkgZWFnZXJseSByZWZlcmVuY2UgdHlwZXNcbiAqIHRoYXQgaGF2ZSBub3QgeWV0IGJlZW4gZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXliZUZvcndhcmRSZWZFeHByZXNzaW9uPFQgZXh0ZW5kcyBvLkV4cHJlc3Npb24gPSBvLkV4cHJlc3Npb24+IHtcbiAgLyoqXG4gICAqIFRoZSB1bndyYXBwZWQgZXhwcmVzc2lvbi5cbiAgICovXG4gIGV4cHJlc3Npb246IFQ7XG4gIC8qKlxuICAgKiBTcGVjaWZpZWQgd2hldGhlciB0aGUgYGV4cHJlc3Npb25gIGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHNvbWV0aGluZyB0aGF0IGhhcyBub3QgeWV0IGJlZW5cbiAgICogZGVmaW5lZCwgYW5kIHdoZXRoZXIgdGhlIGV4cHJlc3Npb24gaXMgc3RpbGwgd3JhcHBlZCBpbiBhIGBmb3J3YXJkUmVmKClgIGNhbGwuXG4gICAqXG4gICAqIElmIHRoaXMgdmFsdWUgaXMgYEZvcndhcmRSZWZIYW5kbGluZy5Ob25lYCB0aGVuIHRoZSBgZXhwcmVzc2lvbmAgaXMgc2FmZSB0byB1c2UgYXMtaXMuXG4gICAqXG4gICAqIE90aGVyd2lzZSB0aGUgYGV4cHJlc3Npb25gIHdhcyB3cmFwcGVkIGluIGEgY2FsbCB0byBgZm9yd2FyZFJlZigpYCBhbmQgbXVzdCBub3QgYmUgZWFnZXJseVxuICAgKiBldmFsdWF0ZWQuIEluc3RlYWQgaXQgbXVzdCBiZSB3cmFwcGVkIGluIGEgZnVuY3Rpb24gY2xvc3VyZSB0aGF0IHdpbGwgYmUgZXZhbHVhdGVkIGxhemlseSB0b1xuICAgKiBhbGxvdyB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgZXhwcmVzc2lvbiB0byBiZSBldmFsdWF0ZWQgZmlyc3QuXG4gICAqXG4gICAqIEluIGZ1bGwgQU9UIGNvbXBpbGF0aW9uIGl0IGNhbiBiZSBzYWZlIHRvIHVud3JhcCB0aGUgYGZvcndhcmRSZWYoKWAgY2FsbCB1cCBmcm9udCBpZiB0aGVcbiAgICogZXhwcmVzc2lvbiB3aWxsIGFjdHVhbGx5IGJlIGV2YWx1YXRlZCBsYXppbHkgaW5zaWRlIGEgZnVuY3Rpb24gY2FsbCBhZnRlciB0aGUgdmFsdWUgb2ZcbiAgICogYGV4cHJlc3Npb25gIGhhcyBiZWVuIGRlZmluZWQuXG4gICAqXG4gICAqIEJ1dCBpbiBvdGhlciBjYXNlcywgc3VjaCBhcyBwYXJ0aWFsIEFPVCBjb21waWxhdGlvbiBvciBKSVQgY29tcGlsYXRpb24gdGhlIGV4cHJlc3Npb24gd2lsbCBiZVxuICAgKiBldmFsdWF0ZWQgZWFnZXJseSBpbiB0b3AgbGV2ZWwgY29kZSBzbyB3aWxsIG5lZWQgdG8gY29udGludWUgdG8gYmUgd3JhcHBlZCBpbiBhIGBmb3J3YXJkUmVmKClgXG4gICAqIGNhbGwuXG4gICAqXG4gICAqL1xuICBmb3J3YXJkUmVmOiBGb3J3YXJkUmVmSGFuZGxpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNYXlCZUZvcndhcmRSZWZFeHByZXNzaW9uPFQgZXh0ZW5kcyBvLkV4cHJlc3Npb24+KFxuICBleHByZXNzaW9uOiBULFxuICBmb3J3YXJkUmVmOiBGb3J3YXJkUmVmSGFuZGxpbmcsXG4pOiBNYXliZUZvcndhcmRSZWZFeHByZXNzaW9uPFQ+IHtcbiAgcmV0dXJuIHtleHByZXNzaW9uLCBmb3J3YXJkUmVmfTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgYE1heWJlRm9yd2FyZFJlZkV4cHJlc3Npb25gIHRvIGFuIGBFeHByZXNzaW9uYCwgcG9zc2libHkgd3JhcHBpbmcgaXRzIGV4cHJlc3Npb24gaW4gYVxuICogYGZvcndhcmRSZWYoKWAgY2FsbC5cbiAqXG4gKiBJZiBgTWF5YmVGb3J3YXJkUmVmRXhwcmVzc2lvbi5mb3J3YXJkUmVmYCBpcyBgRm9yd2FyZFJlZkhhbmRsaW5nLlVud3JhcHBlZGAgdGhlbiB0aGUgZXhwcmVzc2lvblxuICogd2FzIG9yaWdpbmFsbHkgd3JhcHBlZCBpbiBhIGBmb3J3YXJkUmVmKClgIGNhbGwgdG8gcHJldmVudCB0aGUgdmFsdWUgZnJvbSBiZWluZyBlYWdlcmx5IGV2YWx1YXRlZFxuICogaW4gdGhlIGNvZGUuXG4gKlxuICogU2VlIGBwYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2Fubm90YXRpb25zL3NyYy9pbmplY3RhYmxlLnRzYCBhbmRcbiAqIGBwYWNrYWdlcy9jb21waWxlci9zcmMvaml0X2NvbXBpbGVyX2ZhY2FkZS50c2AgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RnJvbU1heWJlRm9yd2FyZFJlZkV4cHJlc3Npb24oe1xuICBleHByZXNzaW9uLFxuICBmb3J3YXJkUmVmLFxufTogTWF5YmVGb3J3YXJkUmVmRXhwcmVzc2lvbik6IG8uRXhwcmVzc2lvbiB7XG4gIHN3aXRjaCAoZm9yd2FyZFJlZikge1xuICAgIGNhc2UgRm9yd2FyZFJlZkhhbmRsaW5nLk5vbmU6XG4gICAgY2FzZSBGb3J3YXJkUmVmSGFuZGxpbmcuV3JhcHBlZDpcbiAgICAgIHJldHVybiBleHByZXNzaW9uO1xuICAgIGNhc2UgRm9yd2FyZFJlZkhhbmRsaW5nLlVud3JhcHBlZDpcbiAgICAgIHJldHVybiBnZW5lcmF0ZUZvcndhcmRSZWYoZXhwcmVzc2lvbik7XG4gIH1cbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhbiBleHByZXNzaW9uIHRoYXQgaGFzIHRoZSBnaXZlbiBgZXhwcmAgd3JhcHBlZCBpbiB0aGUgZm9sbG93aW5nIGZvcm06XG4gKlxuICogYGBgXG4gKiBmb3J3YXJkUmVmKCgpID0+IGV4cHIpXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlRm9yd2FyZFJlZihleHByOiBvLkV4cHJlc3Npb24pOiBvLkV4cHJlc3Npb24ge1xuICByZXR1cm4gby5pbXBvcnRFeHByKElkZW50aWZpZXJzLmZvcndhcmRSZWYpLmNhbGxGbihbby5hcnJvd0ZuKFtdLCBleHByKV0pO1xufVxuXG4vKipcbiAqIFNwZWNpZmllcyBob3cgYSBmb3J3YXJkIHJlZiBoYXMgYmVlbiBoYW5kbGVkIGluIGEgTWF5YmVGb3J3YXJkUmVmRXhwcmVzc2lvblxuICovXG5leHBvcnQgY29uc3QgZW51bSBGb3J3YXJkUmVmSGFuZGxpbmcge1xuICAvKiogVGhlIGV4cHJlc3Npb24gd2FzIG5vdCB3cmFwcGVkIGluIGEgYGZvcndhcmRSZWYoKWAgY2FsbCBpbiB0aGUgZmlyc3QgcGxhY2UuICovXG4gIE5vbmUsXG4gIC8qKiBUaGUgZXhwcmVzc2lvbiBpcyBzdGlsbCB3cmFwcGVkIGluIGEgYGZvcndhcmRSZWYoKWAgY2FsbC4gKi9cbiAgV3JhcHBlZCxcbiAgLyoqIFRoZSBleHByZXNzaW9uIHdhcyB3cmFwcGVkIGluIGEgYGZvcndhcmRSZWYoKWAgY2FsbCBidXQgaGFzIHNpbmNlIGJlZW4gdW53cmFwcGVkLiAqL1xuICBVbndyYXBwZWQsXG59XG4iXX0=
@@ -1,14 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export var R3TemplateDependencyKind;
9
- (function (R3TemplateDependencyKind) {
10
- R3TemplateDependencyKind[R3TemplateDependencyKind["Directive"] = 0] = "Directive";
11
- R3TemplateDependencyKind[R3TemplateDependencyKind["Pipe"] = 1] = "Pipe";
12
- R3TemplateDependencyKind[R3TemplateDependencyKind["NgModule"] = 2] = "NgModule";
13
- })(R3TemplateDependencyKind || (R3TemplateDependencyKind = {}));
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXIvc3JjL3JlbmRlcjMvdmlldy9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBNlRILE1BQU0sQ0FBTixJQUFZLHdCQUlYO0FBSkQsV0FBWSx3QkFBd0I7SUFDbEMsaUZBQWEsQ0FBQTtJQUNiLHVFQUFRLENBQUE7SUFDUiwrRUFBWSxDQUFBO0FBQ2QsQ0FBQyxFQUpXLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFJbkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHtJbnRlcnBvbGF0aW9uQ29uZmlnfSBmcm9tICcuLi8uLi9tbF9wYXJzZXIvZGVmYXVsdHMnO1xuaW1wb3J0ICogYXMgbyBmcm9tICcuLi8uLi9vdXRwdXQvb3V0cHV0X2FzdCc7XG5pbXBvcnQge1BhcnNlU291cmNlU3Bhbn0gZnJvbSAnLi4vLi4vcGFyc2VfdXRpbCc7XG5pbXBvcnQgKiBhcyB0IGZyb20gJy4uL3IzX2FzdCc7XG5pbXBvcnQge1IzRGVwZW5kZW5jeU1ldGFkYXRhfSBmcm9tICcuLi9yM19mYWN0b3J5JztcbmltcG9ydCB7TWF5YmVGb3J3YXJkUmVmRXhwcmVzc2lvbiwgUjNSZWZlcmVuY2V9IGZyb20gJy4uL3V0aWwnO1xuXG4vKipcbiAqIEluZm9ybWF0aW9uIG5lZWRlZCB0byBjb21waWxlIGEgZGlyZWN0aXZlIGZvciB0aGUgcmVuZGVyMyBydW50aW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFIzRGlyZWN0aXZlTWV0YWRhdGEge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgZGlyZWN0aXZlIHR5cGUuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGV4cHJlc3Npb24gcmVwcmVzZW50aW5nIGEgcmVmZXJlbmNlIHRvIHRoZSBkaXJlY3RpdmUgaXRzZWxmLlxuICAgKi9cbiAgdHlwZTogUjNSZWZlcmVuY2U7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBnZW5lcmljIHR5cGUgcGFyYW1ldGVycyBvZiB0aGUgdHlwZSBpdHNlbGYuXG4gICAqL1xuICB0eXBlQXJndW1lbnRDb3VudDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIHNvdXJjZSBzcGFuIGZvciB0aGUgZGlyZWN0aXZlIHR5cGUuXG4gICAqL1xuICB0eXBlU291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xuXG4gIC8qKlxuICAgKiBEZXBlbmRlbmNpZXMgb2YgdGhlIGRpcmVjdGl2ZSdzIGNvbnN0cnVjdG9yLlxuICAgKi9cbiAgZGVwczogUjNEZXBlbmRlbmN5TWV0YWRhdGFbXSB8ICdpbnZhbGlkJyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFVucGFyc2VkIHNlbGVjdG9yIG9mIHRoZSBkaXJlY3RpdmUsIG9yIGBudWxsYCBpZiB0aGVyZSB3YXMgbm8gc2VsZWN0b3IuXG4gICAqL1xuICBzZWxlY3Rvcjogc3RyaW5nIHwgbnVsbDtcblxuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbnRlbnQgcXVlcmllcyBtYWRlIGJ5IHRoZSBkaXJlY3RpdmUuXG4gICAqL1xuICBxdWVyaWVzOiBSM1F1ZXJ5TWV0YWRhdGFbXTtcblxuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIHZpZXcgcXVlcmllcyBtYWRlIGJ5IHRoZSBkaXJlY3RpdmUuXG4gICAqL1xuICB2aWV3UXVlcmllczogUjNRdWVyeU1ldGFkYXRhW107XG5cbiAgLyoqXG4gICAqIE1hcHBpbmdzIGluZGljYXRpbmcgaG93IHRoZSBkaXJlY3RpdmUgaW50ZXJhY3RzIHdpdGggaXRzIGhvc3QgZWxlbWVudCAoaG9zdCBiaW5kaW5ncyxcbiAgICogbGlzdGVuZXJzLCBldGMpLlxuICAgKi9cbiAgaG9zdDogUjNIb3N0TWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEluZm9ybWF0aW9uIGFib3V0IHVzYWdlIG9mIHNwZWNpZmljIGxpZmVjeWNsZSBldmVudHMgd2hpY2ggcmVxdWlyZSBzcGVjaWFsIHRyZWF0bWVudCBpbiB0aGVcbiAgICogY29kZSBnZW5lcmF0b3IuXG4gICAqL1xuICBsaWZlY3ljbGU6IHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBkaXJlY3RpdmUgdXNlcyBOZ09uQ2hhbmdlcy5cbiAgICAgKi9cbiAgICB1c2VzT25DaGFuZ2VzOiBib29sZWFuO1xuICB9O1xuXG4gIC8qKlxuICAgKiBBIG1hcHBpbmcgb2YgaW5wdXRzIGZyb20gY2xhc3MgcHJvcGVydHkgbmFtZXMgdG8gYmluZGluZyBwcm9wZXJ0eSBuYW1lcywgb3IgdG8gYSB0dXBsZSBvZlxuICAgKiBiaW5kaW5nIHByb3BlcnR5IG5hbWUgYW5kIGNsYXNzIHByb3BlcnR5IG5hbWUgaWYgdGhlIG5hbWVzIGFyZSBkaWZmZXJlbnQuXG4gICAqL1xuICBpbnB1dHM6IHtbZmllbGQ6IHN0cmluZ106IFIzSW5wdXRNZXRhZGF0YX07XG5cbiAgLyoqXG4gICAqIEEgbWFwcGluZyBvZiBvdXRwdXRzIGZyb20gY2xhc3MgcHJvcGVydHkgbmFtZXMgdG8gYmluZGluZyBwcm9wZXJ0eSBuYW1lcywgb3IgdG8gYSB0dXBsZSBvZlxuICAgKiBiaW5kaW5nIHByb3BlcnR5IG5hbWUgYW5kIGNsYXNzIHByb3BlcnR5IG5hbWUgaWYgdGhlIG5hbWVzIGFyZSBkaWZmZXJlbnQuXG4gICAqL1xuICBvdXRwdXRzOiB7W2ZpZWxkOiBzdHJpbmddOiBzdHJpbmd9O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgY29tcG9uZW50IG9yIGRpcmVjdGl2ZSBpbmhlcml0cyBmcm9tIGFub3RoZXIgY2xhc3NcbiAgICovXG4gIHVzZXNJbmhlcml0YW5jZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIGNvbXBvbmVudCBvciBkaXJlY3RpdmUgaW5oZXJpdHMgaXRzIGVudGlyZSBkZWNvcmF0b3IgZnJvbSBpdHMgYmFzZSBjbGFzcy5cbiAgICovXG4gIGZ1bGxJbmhlcml0YW5jZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIG5hbWUgdW5kZXIgd2hpY2ggdG8gZXhwb3J0IHRoZSBkaXJlY3RpdmUncyB0eXBlIGluIGEgdGVtcGxhdGUsXG4gICAqIGlmIGFueS5cbiAgICovXG4gIGV4cG9ydEFzOiBzdHJpbmdbXSB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHByb3ZpZGVycyBkZWZpbmVkIGluIHRoZSBkaXJlY3RpdmUuXG4gICAqL1xuICBwcm92aWRlcnM6IG8uRXhwcmVzc2lvbiB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBjb21wb25lbnQgb3IgZGlyZWN0aXZlIGlzIHN0YW5kYWxvbmUuXG4gICAqL1xuICBpc1N0YW5kYWxvbmU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBjb21wb25lbnQgb3IgZGlyZWN0aXZlIGlzIHNpZ25hbC1iYXNlZC5cbiAgICovXG4gIGlzU2lnbmFsOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGRpcmVjdGl2ZXMgYXBwbGllZCB0byB0aGUgZGlyZWN0aXZlIGhvc3QuXG4gICAqL1xuICBob3N0RGlyZWN0aXZlczogUjNIb3N0RGlyZWN0aXZlTWV0YWRhdGFbXSB8IG51bGw7XG59XG5cbi8qKlxuICogRGVmaW5lcyBob3cgZHluYW1pYyBpbXBvcnRzIGZvciBkZWZlcnJlZCBkZXBlbmRlbmNpZXMgc2hvdWxkIGJlIGVtaXR0ZWQgaW4gdGhlXG4gKiBnZW5lcmF0ZWQgb3V0cHV0OlxuICogIC0gZWl0aGVyIGluIGEgZnVuY3Rpb24gb24gcGVyLWNvbXBvbmVudCBiYXNpcyAoaW4gY2FzZSBvZiBsb2NhbCBjb21waWxhdGlvbilcbiAqICAtIG9yIGluIGEgZnVuY3Rpb24gb24gcGVyLWJsb2NrIGJhc2lzIChpbiBmdWxsIGNvbXBpbGF0aW9uIG1vZGUpXG4gKi9cbmV4cG9ydCBjb25zdCBlbnVtIERlZmVyQmxvY2tEZXBzRW1pdE1vZGUge1xuICAvKipcbiAgICogRHluYW1pYyBpbXBvcnRzIGFyZSBncm91cGVkIG9uIHBlci1ibG9jayBiYXNpcy5cbiAgICpcbiAgICogVGhpcyBpcyB1c2VkIGluIGZ1bGwgY29tcGlsYXRpb24gbW9kZSwgd2hlbiBjb21waWxlciBoYXMgbW9yZSBpbmZvcm1hdGlvblxuICAgKiBhYm91dCBwYXJ0aWN1bGFyIGRlcGVuZGVuY2llcyB0aGF0IGJlbG9uZyB0byB0aGlzIGJsb2NrLlxuICAgKi9cbiAgUGVyQmxvY2ssXG5cbiAgLyoqXG4gICAqIER5bmFtaWMgaW1wb3J0cyBhcmUgZ3JvdXBlZCBvbiBwZXItY29tcG9uZW50IGJhc2lzLlxuICAgKlxuICAgKiBJbiBsb2NhbCBjb21waWxhdGlvbiwgY29tcGlsZXIgZG9lc24ndCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBkZXRlcm1pbmVcbiAgICogd2hpY2ggZGVmZXJyZWQgZGVwZW5kZW5jaWVzIGJlbG9uZyB0byB3aGljaCBibG9jay4gSW4gdGhpcyBjYXNlIHdlIGdyb3VwIGFsbFxuICAgKiBkeW5hbWljIGltcG9ydHMgaW50byBhIHNpbmdsZSBmaWxlIG9uIHBlci1jb21wb25lbnQgYmFzaXMuXG4gICAqL1xuICBQZXJDb21wb25lbnQsXG59XG5cbi8qKlxuICogU3BlY2lmaWVzIGhvdyBhIGxpc3Qgb2YgZGVjbGFyYXRpb24gdHlwZSByZWZlcmVuY2VzIHNob3VsZCBiZSBlbWl0dGVkIGludG8gdGhlIGdlbmVyYXRlZCBjb2RlLlxuICovXG5leHBvcnQgY29uc3QgZW51bSBEZWNsYXJhdGlvbkxpc3RFbWl0TW9kZSB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBkZWNsYXJhdGlvbnMgaXMgZW1pdHRlZCBpbnRvIHRoZSBnZW5lcmF0ZWQgY29kZSBhcyBpcy5cbiAgICpcbiAgICogYGBgXG4gICAqIGRpcmVjdGl2ZXM6IFtNeURpcl0sXG4gICAqIGBgYFxuICAgKi9cbiAgRGlyZWN0LFxuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBkZWNsYXJhdGlvbnMgaXMgZW1pdHRlZCBpbnRvIHRoZSBnZW5lcmF0ZWQgY29kZSB3cmFwcGVkIGluc2lkZSBhIGNsb3N1cmUsIHdoaWNoXG4gICAqIGlzIG5lZWRlZCB3aGVuIGF0IGxlYXN0IG9uZSBkZWNsYXJhdGlvbiBpcyBhIGZvcndhcmQgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBgYGBcbiAgICogZGlyZWN0aXZlczogZnVuY3Rpb24gKCkgeyByZXR1cm4gW015RGlyLCBGb3J3YXJkRGlyXTsgfSxcbiAgICogYGBgXG4gICAqL1xuICBDbG9zdXJlLFxuXG4gIC8qKlxuICAgKiBTaW1pbGFyIHRvIGBDbG9zdXJlYCwgd2l0aCB0aGUgYWRkaXRpb24gdGhhdCB0aGUgbGlzdCBvZiBkZWNsYXJhdGlvbnMgY2FuIGNvbnRhaW4gaW5kaXZpZHVhbFxuICAgKiBpdGVtcyB0aGF0IGFyZSB0aGVtc2VsdmVzIGZvcndhcmQgcmVmZXJlbmNlcy4gVGhpcyBpcyByZWxldmFudCBmb3IgSklUIGNvbXBpbGF0aW9ucywgYXNcbiAgICogdW53cmFwcGluZyB0aGUgZm9yd2FyZFJlZiBjYW5ub3QgYmUgZG9uZSBzdGF0aWNhbGx5IHNvIG11c3QgYmUgZGVmZXJyZWQuIFRoaXMgbW9kZSBlbWl0c1xuICAgKiB0aGUgZGVjbGFyYXRpb24gbGlzdCB1c2luZyBhIG1hcHBpbmcgdHJhbnNmb3JtIHRocm91Z2ggYHJlc29sdmVGb3J3YXJkUmVmYCB0byBlbnN1cmUgdGhhdFxuICAgKiBhbnkgZm9yd2FyZCByZWZlcmVuY2VzIHdpdGhpbiB0aGUgbGlzdCBhcmUgcmVzb2x2ZWQgd2hlbiB0aGUgb3V0ZXIgY2xvc3VyZSBpcyBpbnZva2VkLlxuICAgKlxuICAgKiBDb25zaWRlciB0aGUgY2FzZSB3aGVyZSB0aGUgcnVudGltZSBoYXMgY2FwdHVyZWQgdHdvIGRlY2xhcmF0aW9ucyBpbiB0d28gZGlzdGluY3QgdmFsdWVzOlxuICAgKiBgYGBcbiAgICogY29uc3QgZGlyQSA9IE15RGlyO1xuICAgKiBjb25zdCBkaXJCID0gZm9yd2FyZFJlZihmdW5jdGlvbigpIHsgcmV0dXJuIEZvcndhcmRSZWY7IH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogVGhpcyBtb2RlIHdvdWxkIGVtaXQgdGhlIGRlY2xhcmF0aW9ucyBjYXB0dXJlZCBpbiBgZGlyQWAgYW5kIGBkaXJCYCBhcyBmb2xsb3dzOlxuICAgKiBgYGBcbiAgICogZGlyZWN0aXZlczogZnVuY3Rpb24gKCkgeyByZXR1cm4gW2RpckEsIGRpckJdLm1hcChuZy5yZXNvbHZlRm9yd2FyZFJlZik7IH0sXG4gICAqIGBgYFxuICAgKi9cbiAgQ2xvc3VyZVJlc29sdmVkLFxuXG4gIFJ1bnRpbWVSZXNvbHZlZCxcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBuZWVkZWQgdG8gY29tcGlsZSBhIGNvbXBvbmVudCBmb3IgdGhlIHJlbmRlcjMgcnVudGltZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSM0NvbXBvbmVudE1ldGFkYXRhPERlY2xhcmF0aW9uVCBleHRlbmRzIFIzVGVtcGxhdGVEZXBlbmRlbmN5PlxuICBleHRlbmRzIFIzRGlyZWN0aXZlTWV0YWRhdGEge1xuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBvbmVudCdzIHRlbXBsYXRlLlxuICAgKi9cbiAgdGVtcGxhdGU6IHtcbiAgICAvKipcbiAgICAgKiBQYXJzZWQgbm9kZXMgb2YgdGhlIHRlbXBsYXRlLlxuICAgICAqL1xuICAgIG5vZGVzOiB0Lk5vZGVbXTtcblxuICAgIC8qKlxuICAgICAqIEFueSBuZy1jb250ZW50IHNlbGVjdG9ycyBleHRyYWN0ZWQgZnJvbSB0aGUgdGVtcGxhdGUuIENvbnRhaW5zIGAqYCB3aGVuIGFuIG5nLWNvbnRlbnRcbiAgICAgKiBlbGVtZW50IHdpdGhvdXQgc2VsZWN0b3IgaXMgcHJlc2VudC5cbiAgICAgKi9cbiAgICBuZ0NvbnRlbnRTZWxlY3RvcnM6IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgdGVtcGxhdGUgcHJlc2VydmVzIHdoaXRlc3BhY2VzIGZyb20gdGhlIHVzZXIncyBjb2RlLlxuICAgICAqL1xuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM/OiBib29sZWFuO1xuICB9O1xuXG4gIGRlY2xhcmF0aW9uczogRGVjbGFyYXRpb25UW107XG5cbiAgLyoqIE1ldGFkYXRhIHJlbGF0ZWQgdG8gdGhlIGRlZmVycmVkIGJsb2NrcyBpbiB0aGUgY29tcG9uZW50J3MgdGVtcGxhdGUuICovXG4gIGRlZmVyOiBSM0NvbXBvbmVudERlZmVyTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBob3cgdGhlICdkaXJlY3RpdmVzJyBhbmQvb3IgYHBpcGVzYCBhcnJheSwgaWYgZ2VuZXJhdGVkLCBuZWVkIHRvIGJlIGVtaXR0ZWQuXG4gICAqL1xuICBkZWNsYXJhdGlvbkxpc3RFbWl0TW9kZTogRGVjbGFyYXRpb25MaXN0RW1pdE1vZGU7XG5cbiAgLyoqXG4gICAqIEEgY29sbGVjdGlvbiBvZiBzdHlsaW5nIGRhdGEgdGhhdCB3aWxsIGJlIGFwcGxpZWQgYW5kIHNjb3BlZCB0byB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgc3R5bGVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQW4gZW5jYXBzdWxhdGlvbiBwb2xpY3kgZm9yIHRoZSBjb21wb25lbnQncyBzdHlsaW5nLlxuICAgKiBQb3NzaWJsZSB2YWx1ZXM6XG4gICAqIC0gYFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkYDogQXBwbHkgbW9kaWZpZWQgY29tcG9uZW50IHN0eWxlcyBpbiBvcmRlciB0byBlbXVsYXRlXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSBuYXRpdmUgU2hhZG93IERPTSBDU1MgZW5jYXBzdWxhdGlvbiBiZWhhdmlvci5cbiAgICogLSBgVmlld0VuY2Fwc3VsYXRpb24uTm9uZWA6IEFwcGx5IGNvbXBvbmVudCBzdHlsZXMgZ2xvYmFsbHkgd2l0aG91dCBhbnkgc29ydCBvZiBlbmNhcHN1bGF0aW9uLlxuICAgKiAtIGBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb21gOiBVc2UgdGhlIGJyb3dzZXIncyBuYXRpdmUgU2hhZG93IERPTSBBUEkgdG8gZW5jYXBzdWxhdGUgc3R5bGVzLlxuICAgKi9cbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb247XG5cbiAgLyoqXG4gICAqIEEgY29sbGVjdGlvbiBvZiBhbmltYXRpb24gdHJpZ2dlcnMgdGhhdCB3aWxsIGJlIHVzZWQgaW4gdGhlIGNvbXBvbmVudCB0ZW1wbGF0ZS5cbiAgICovXG4gIGFuaW1hdGlvbnM6IG8uRXhwcmVzc2lvbiB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHZpZXcgcHJvdmlkZXJzIGRlZmluZWQgaW4gdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHZpZXdQcm92aWRlcnM6IG8uRXhwcmVzc2lvbiB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIC50cyBmaWxlIGluIHdoaWNoIHRoaXMgdGVtcGxhdGUncyBnZW5lcmF0ZWQgY29kZSB3aWxsIGJlIGluY2x1ZGVkLCByZWxhdGl2ZSB0b1xuICAgKiB0aGUgY29tcGlsYXRpb24gcm9vdC4gVGhpcyB3aWxsIGJlIHVzZWQgdG8gZ2VuZXJhdGUgaWRlbnRpZmllcnMgdGhhdCBuZWVkIHRvIGJlIGdsb2JhbGx5XG4gICAqIHVuaXF1ZSBpbiBjZXJ0YWluIGNvbnRleHRzIChzdWNoIGFzIGczKS5cbiAgICovXG4gIHJlbGF0aXZlQ29udGV4dEZpbGVQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdHJhbnNsYXRpb24gdmFyaWFibGUgbmFtZSBzaG91bGQgY29udGFpbiBleHRlcm5hbCBtZXNzYWdlIGlkXG4gICAqICh1c2VkIGJ5IENsb3N1cmUgQ29tcGlsZXIncyBvdXRwdXQgb2YgYGdvb2cuZ2V0TXNnYCBmb3IgdHJhbnNpdGlvbiBwZXJpb2QpLlxuICAgKi9cbiAgaTE4blVzZUV4dGVybmFsSWRzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgdGhlIGRlZmF1bHQgaW50ZXJwb2xhdGlvbiBzdGFydCBhbmQgZW5kIGRlbGltaXRlcnMgKHt7IGFuZCB9fSkuXG4gICAqL1xuICBpbnRlcnBvbGF0aW9uOiBJbnRlcnBvbGF0aW9uQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBTdHJhdGVneSB1c2VkIGZvciBkZXRlY3RpbmcgY2hhbmdlcyBpbiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBJbiBnbG9iYWwgY29tcGlsYXRpb24gbW9kZSB0aGUgdmFsdWUgaXMgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgaWYgYXZhaWxhYmxlIGFzIGl0IGlzXG4gICAqIHN0YXRpY2FsbHkgcmVzb2x2ZWQgZHVyaW5nIGFuYWx5c2lzIHBoYXNlLiBXaGVyZWFzIGluIGxvY2FsIGNvbXBpbGF0aW9uIG1vZGUgdGhlIHZhbHVlIGlzIHRoZVxuICAgKiBleHByZXNzaW9uIGFzIGFwcGVhcnMgaW4gdGhlIGRlY29yYXRvci5cbiAgICovXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfCBvLkV4cHJlc3Npb24gfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgaW1wb3J0cyBleHByZXNzaW9uIGFzIGFwcGVhcnMgb24gdGhlIGNvbXBvbmVudCBkZWNvcmF0ZSBmb3Igc3RhbmRhbG9uZSBjb21wb25lbnQuIFRoaXNcbiAgICogZmllbGQgaXMgY3VycmVudGx5IG5lZWRlZCBvbmx5IGZvciBsb2NhbCBjb21waWxhdGlvbiwgYW5kIHNvIGluIG90aGVyIGNvbXBpbGF0aW9uIG1vZGVzIGl0IG1heVxuICAgKiBub3QgYmUgc2V0LiBJZiBjb21wb25lbnQgaGFzIGVtcHR5IGFycmF5IGltcG9ydHMgdGhlbiB0aGlzIGZpZWxkIGlzIG5vdCBzZXQuXG4gICAqL1xuICByYXdJbXBvcnRzPzogby5FeHByZXNzaW9uO1xufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBkZWZlcnJlZCBibG9ja3MgaW4gYSBjb21wb25lbnQncyB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IHR5cGUgUjNDb21wb25lbnREZWZlck1ldGFkYXRhID1cbiAgfCB7XG4gICAgICBtb2RlOiBEZWZlckJsb2NrRGVwc0VtaXRNb2RlLlBlckJsb2NrO1xuICAgICAgYmxvY2tzOiBNYXA8dC5EZWZlcnJlZEJsb2NrLCBvLkV4cHJlc3Npb24gfCBudWxsPjtcbiAgICB9XG4gIHwge1xuICAgICAgbW9kZTogRGVmZXJCbG9ja0RlcHNFbWl0TW9kZS5QZXJDb21wb25lbnQ7XG4gICAgICBkZXBlbmRlbmNpZXNGbjogby5FeHByZXNzaW9uIHwgbnVsbDtcbiAgICB9O1xuXG4vKipcbiAqIE1ldGFkYXRhIGZvciBhbiBpbmRpdmlkdWFsIGlucHV0IG9uIGEgZGlyZWN0aXZlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFIzSW5wdXRNZXRhZGF0YSB7XG4gIGNsYXNzUHJvcGVydHlOYW1lOiBzdHJpbmc7XG4gIGJpbmRpbmdQcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIGlzU2lnbmFsOiBib29sZWFuO1xuICAvKipcbiAgICogVHJhbnNmb3JtIGZ1bmN0aW9uIGZvciB0aGUgaW5wdXQuXG4gICAqXG4gICAqIE51bGwgaWYgdGhlcmUgaXMgbm8gdHJhbnNmb3JtLCBvciBpZiB0aGlzIGlzIGEgc2lnbmFsIGlucHV0LlxuICAgKiBTaWduYWwgaW5wdXRzIGNhcHR1cmUgdGhlaXIgdHJhbnNmb3JtIGFzIHBhcnQgb2YgdGhlIGBJbnB1dFNpZ25hbGAuXG4gICAqL1xuICB0cmFuc2Zvcm1GdW5jdGlvbjogby5FeHByZXNzaW9uIHwgbnVsbDtcbn1cblxuZXhwb3J0IGVudW0gUjNUZW1wbGF0ZURlcGVuZGVuY3lLaW5kIHtcbiAgRGlyZWN0aXZlID0gMCxcbiAgUGlwZSA9IDEsXG4gIE5nTW9kdWxlID0gMixcbn1cblxuLyoqXG4gKiBBIGRlcGVuZGVuY3kgdGhhdCdzIHVzZWQgd2l0aGluIGEgY29tcG9uZW50IHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFIzVGVtcGxhdGVEZXBlbmRlbmN5IHtcbiAga2luZDogUjNUZW1wbGF0ZURlcGVuZGVuY3lLaW5kO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgZGVwZW5kZW5jeSBhcyBhbiBleHByZXNzaW9uLlxuICAgKi9cbiAgdHlwZTogby5FeHByZXNzaW9uO1xufVxuXG4vKipcbiAqIEEgZGVwZW5kZW5jeSB0aGF0J3MgdXNlZCB3aXRoaW4gYSBjb21wb25lbnQgdGVtcGxhdGVcbiAqL1xuZXhwb3J0IHR5cGUgUjNUZW1wbGF0ZURlcGVuZGVuY3lNZXRhZGF0YSA9XG4gIHwgUjNEaXJlY3RpdmVEZXBlbmRlbmN5TWV0YWRhdGFcbiAgfCBSM1BpcGVEZXBlbmRlbmN5TWV0YWRhdGFcbiAgfCBSM05nTW9kdWxlRGVwZW5kZW5jeU1ldGFkYXRhO1xuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGEgZGlyZWN0aXZlIHRoYXQgaXMgdXNlZCBpbiBhIGNvbXBvbmVudCB0ZW1wbGF0ZS4gT25seSB0aGUgc3RhYmxlLCBwdWJsaWNcbiAqIGZhY2luZyBpbmZvcm1hdGlvbiBvZiB0aGUgZGlyZWN0aXZlIGlzIHN0b3JlZCBoZXJlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFIzRGlyZWN0aXZlRGVwZW5kZW5jeU1ldGFkYXRhIGV4dGVuZHMgUjNUZW1wbGF0ZURlcGVuZGVuY3kge1xuICBraW5kOiBSM1RlbXBsYXRlRGVwZW5kZW5jeUtpbmQuRGlyZWN0aXZlO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VsZWN0b3Igb2YgdGhlIGRpcmVjdGl2ZS5cbiAgICovXG4gIHNlbGVjdG9yOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBiaW5kaW5nIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBpbnB1dHMgb2YgdGhlIGRpcmVjdGl2ZS5cbiAgICovXG4gIGlucHV0czogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBiaW5kaW5nIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBvdXRwdXRzIG9mIHRoZSBkaXJlY3RpdmUuXG4gICAqL1xuICBvdXRwdXRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTmFtZSB1bmRlciB3aGljaCB0aGUgZGlyZWN0aXZlIGlzIGV4cG9ydGVkLCBpZiBhbnkgKGV4cG9ydEFzIGluIEFuZ3VsYXIpLiBOdWxsIG90aGVyd2lzZS5cbiAgICovXG4gIGV4cG9ydEFzOiBzdHJpbmdbXSB8IG51bGw7XG5cbiAgLyoqXG4gICAqIElmIHRydWUgdGhlbiB0aGlzIGRpcmVjdGl2ZSBpcyBhY3R1YWxseSBhIGNvbXBvbmVudDsgb3RoZXJ3aXNlIGl0IGlzIG5vdC5cbiAgICovXG4gIGlzQ29tcG9uZW50OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFIzUGlwZURlcGVuZGVuY3lNZXRhZGF0YSBleHRlbmRzIFIzVGVtcGxhdGVEZXBlbmRlbmN5IHtcbiAga2luZDogUjNUZW1wbGF0ZURlcGVuZGVuY3lLaW5kLlBpcGU7XG5cbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFIzTmdNb2R1bGVEZXBlbmRlbmN5TWV0YWRhdGEgZXh0ZW5kcyBSM1RlbXBsYXRlRGVwZW5kZW5jeSB7XG4gIGtpbmQ6IFIzVGVtcGxhdGVEZXBlbmRlbmN5S2luZC5OZ01vZHVsZTtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBuZWVkZWQgdG8gY29tcGlsZSBhIHF1ZXJ5ICh2aWV3IG9yIGNvbnRlbnQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFIzUXVlcnlNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBwcm9wZXJ0eSBvbiB0aGUgY2xhc3MgdG8gdXBkYXRlIHdpdGggcXVlcnkgcmVzdWx0cy5cbiAgICovXG4gIHByb3BlcnR5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlYWQgb25seSB0aGUgZmlyc3QgbWF0Y2hpbmcgcmVzdWx0LCBvciBhbiBhcnJheSBvZiByZXN1bHRzLlxuICAgKi9cbiAgZmlyc3Q6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVpdGhlciBhbiBleHByZXNzaW9uIHJlcHJlc2VudGluZyBhIHR5cGUgb3IgYEluamVjdGlvblRva2VuYCBmb3IgdGhlIHF1ZXJ5XG4gICAqIHByZWRpY2F0ZSwgb3IgYSBzZXQgb2Ygc3RyaW5nIHNlbGVjdG9ycy5cbiAgICpcbiAgICogTm90ZTogQXQgY29tcGlsZSB0aW1lIHdlIHNwbGl0IHNlbGVjdG9ycyBhcyBhbiBvcHRpbWl6YXRpb24gdGhhdCBhdm9pZHMgdGhpc1xuICAgKiBleHRyYSB3b3JrIGF0IHJ1bnRpbWUgY3JlYXRpb24gcGhhc2UuXG4gICAqXG4gICAqIE5vdGFibHksIGlmIHRoZSBzZWxlY3RvciBpcyBub3Qgc3RhdGljYWxseSBhbmFseXphYmxlIGR1ZSB0byBhbiBleHByZXNzaW9uLFxuICAgKiB0aGUgc2VsZWN0b3JzIG1heSBuZWVkIHRvIGJlIHNwbGl0IHVwIGF0IHJ1bnRpbWUuXG4gICAqL1xuICBwcmVkaWNhdGU6IE1heWJlRm9yd2FyZFJlZkV4cHJlc3Npb24gfCBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIG9ubHkgZGlyZWN0IGNoaWxkcmVuIG9yIGFsbCBkZXNjZW5kYW50cy5cbiAgICovXG4gIGRlc2NlbmRhbnRzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiB0aGUgYFF1ZXJ5TGlzdGAgc2hvdWxkIGZpcmUgY2hhbmdlIGV2ZW50IG9ubHkgaWYgYWN0dWFsIGNoYW5nZSB0byBxdWVyeSB3YXMgY29tcHV0ZWQgKHZzIG9sZFxuICAgKiBiZWhhdmlvciB3aGVyZSB0aGUgY2hhbmdlIHdhcyBmaXJlZCB3aGVuZXZlciB0aGUgcXVlcnkgd2FzIHJlY29tcHV0ZWQsIGV2ZW4gaWYgdGhlIHJlY29tcHV0ZWRcbiAgICogcXVlcnkgcmVzdWx0ZWQgaW4gdGhlIHNhbWUgbGlzdC4pXG4gICAqL1xuICBlbWl0RGlzdGluY3RDaGFuZ2VzT25seTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQW4gZXhwcmVzc2lvbiByZXByZXNlbnRpbmcgYSB0eXBlIHRvIHJlYWQgZnJvbSBlYWNoIG1hdGNoZWQgbm9kZSwgb3IgbnVsbCBpZiB0aGUgZGVmYXVsdCB2YWx1ZVxuICAgKiBmb3IgYSBnaXZlbiBub2RlIGlzIHRvIGJlIHJldHVybmVkLlxuICAgKi9cbiAgcmVhZDogby5FeHByZXNzaW9uIHwgbnVsbDtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhpcyBxdWVyeSBzaG91bGQgY29sbGVjdCBvbmx5IHN0YXRpYyByZXN1bHRzLlxuICAgKlxuICAgKiBJZiBzdGF0aWMgaXMgdHJ1ZSwgdGhlIHF1ZXJ5J3MgcmVzdWx0cyB3aWxsIGJlIHNldCBvbiB0aGUgY29tcG9uZW50IGFmdGVyIG5vZGVzIGFyZSBjcmVhdGVkLFxuICAgKiBidXQgYmVmb3JlIGNoYW5nZSBkZXRlY3Rpb24gcnVucy4gVGhpcyBtZWFucyB0aGF0IGFueSByZXN1bHRzIHRoYXQgcmVsaWVkIHVwb24gY2hhbmdlIGRldGVjdGlvblxuICAgKiB0byBydW4gKGUuZy4gcmVzdWx0cyBpbnNpZGUgKm5nSWYgb3IgKm5nRm9yIHZpZXdzKSB3aWxsIG5vdCBiZSBjb2xsZWN0ZWQuIFF1ZXJ5IHJlc3VsdHMgYXJlXG4gICAqIGF2YWlsYWJsZSBpbiB0aGUgbmdPbkluaXQgaG9vay5cbiAgICpcbiAgICogSWYgc3RhdGljIGlzIGZhbHNlLCB0aGUgcXVlcnkncyByZXN1bHRzIHdpbGwgYmUgc2V0IG9uIHRoZSBjb21wb25lbnQgYWZ0ZXIgY2hhbmdlIGRldGVjdGlvblxuICAgKiBydW5zLiBUaGlzIG1lYW5zIHRoYXQgdGhlIHF1ZXJ5IHJlc3VsdHMgY2FuIGNvbnRhaW4gbm9kZXMgaW5zaWRlICpuZ0lmIG9yICpuZ0ZvciB2aWV3cywgYnV0XG4gICAqIHRoZSByZXN1bHRzIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBpbiB0aGUgbmdPbkluaXQgaG9vayAob25seSBpbiB0aGUgbmdBZnRlckNvbnRlbnRJbml0IGZvclxuICAgKiBjb250ZW50IGhvb2tzIGFuZCBuZ0FmdGVyVmlld0luaXQgZm9yIHZpZXcgaG9va3MpLlxuICAgKlxuICAgKiBOb3RlOiBGb3Igc2lnbmFsLWJhc2VkIHF1ZXJpZXMsIHRoaXMgb3B0aW9uIGRvZXMgbm90IGhhdmUgYW55IGVmZmVjdC5cbiAgICovXG4gIHN0YXRpYzogYm9vbGVhbjtcblxuICAvKiogV2hldGhlciB0aGUgcXVlcnkgaXMgc2lnbmFsLWJhc2VkLiAqL1xuICBpc1NpZ25hbDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNYXBwaW5ncyBpbmRpY2F0aW5nIGhvdyB0aGUgY2xhc3MgaW50ZXJhY3RzIHdpdGggaXRzXG4gKiBob3N0IGVsZW1lbnQgKGhvc3QgYmluZGluZ3MsIGxpc3RlbmVycywgZXRjKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSM0hvc3RNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBBIG1hcHBpbmcgb2YgYXR0cmlidXRlIGJpbmRpbmcga2V5cyB0byBgby5FeHByZXNzaW9uYHMuXG4gICAqL1xuICBhdHRyaWJ1dGVzOiB7W2tleTogc3RyaW5nXTogby5FeHByZXNzaW9ufTtcblxuICAvKipcbiAgICogQSBtYXBwaW5nIG9mIGV2ZW50IGJpbmRpbmcga2V5cyB0byB1bnBhcnNlZCBleHByZXNzaW9ucy5cbiAgICovXG4gIGxpc3RlbmVyczoge1trZXk6IHN0cmluZ106IHN0cmluZ307XG5cbiAgLyoqXG4gICAqIEEgbWFwcGluZyBvZiBwcm9wZXJ0eSBiaW5kaW5nIGtleXMgdG8gdW5wYXJzZWQgZXhwcmVzc2lvbnMuXG4gICAqL1xuICBwcm9wZXJ0aWVzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfTtcblxuICBzcGVjaWFsQXR0cmlidXRlczoge3N0eWxlQXR0cj86IHN0cmluZzsgY2xhc3NBdHRyPzogc3RyaW5nfTtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBuZWVkZWQgdG8gY29tcGlsZSBhIGhvc3QgZGlyZWN0aXZlIGZvciB0aGUgcmVuZGVyMyBydW50aW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFIzSG9zdERpcmVjdGl2ZU1ldGFkYXRhIHtcbiAgLyoqIEFuIGV4cHJlc3Npb24gcmVwcmVzZW50aW5nIHRoZSBob3N0IGRpcmVjdGl2ZSBjbGFzcyBpdHNlbGYuICovXG4gIGRpcmVjdGl2ZTogUjNSZWZlcmVuY2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGV4cHJlc3Npb24gcmVmZXJyaW5nIHRvIHRoZSBob3N0IGRpcmVjdGl2ZSBpcyBhIGZvcndhcmQgcmVmZXJlbmNlLiAqL1xuICBpc0ZvcndhcmRSZWZlcmVuY2U6IGJvb2xlYW47XG5cbiAgLyoqIElucHV0cyBmcm9tIHRoZSBob3N0IGRpcmVjdGl2ZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBvbiB0aGUgaG9zdC4gKi9cbiAgaW5wdXRzOiB7W3B1YmxpY05hbWU6IHN0cmluZ106IHN0cmluZ30gfCBudWxsO1xuXG4gIC8qKiBPdXRwdXRzIGZyb20gdGhlIGhvc3QgZGlyZWN0aXZlIHRoYXQgd2lsbCBiZSBleHBvc2VkIG9uIHRoZSBob3N0LiAqL1xuICBvdXRwdXRzOiB7W3B1YmxpY05hbWU6IHN0cmluZ106IHN0cmluZ30gfCBudWxsO1xufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIG5lZWRlZCB0byBjb21waWxlIHRoZSBkZWZlciBibG9jayByZXNvbHZlciBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgUjNEZWZlclJlc29sdmVyRnVuY3Rpb25NZXRhZGF0YSA9XG4gIHwge1xuICAgICAgbW9kZTogRGVmZXJCbG9ja0RlcHNFbWl0TW9kZS5QZXJCbG9jaztcbiAgICAgIGRlcGVuZGVuY2llczogUjNEZWZlclBlckJsb2NrRGVwZW5kZW5jeVtdO1xuICAgIH1cbiAgfCB7XG4gICAgICBtb2RlOiBEZWZlckJsb2NrRGVwc0VtaXRNb2RlLlBlckNvbXBvbmVudDtcbiAgICAgIGRlcGVuZGVuY2llczogUjNEZWZlclBlckNvbXBvbmVudERlcGVuZGVuY3lbXTtcbiAgICB9O1xuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGEgc2luZ2xlIGRlcGVuZGVuY3kgb2YgYSBkZWZlciBibG9jayBpbiBgUGVyQmxvY2tgIG1vZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUjNEZWZlclBlckJsb2NrRGVwZW5kZW5jeSB7XG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gYSBkZXBlbmRlbmN5LlxuICAgKi9cbiAgdHlwZVJlZmVyZW5jZTogby5FeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBEZXBlbmRlbmN5IGNsYXNzIG5hbWUuXG4gICAqL1xuICBzeW1ib2xOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBkZXBlbmRlbmN5IGNhbiBiZSBkZWZlci1sb2FkZWQuXG4gICAqL1xuICBpc0RlZmVycmFibGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEltcG9ydCBwYXRoIHdoZXJlIHRoaXMgZGVwZW5kZW5jeSBpcyBsb2NhdGVkLlxuICAgKi9cbiAgaW1wb3J0UGF0aDogc3RyaW5nIHwgbnVsbDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgc3ltYm9sIGlzIHRoZSBkZWZhdWx0IGV4cG9ydC5cbiAgICovXG4gIGlzRGVmYXVsdEltcG9ydDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBkZXBlbmRlbmN5IG9mIGEgZGVmZXIgYmxvY2sgaW4gYFBlckNvbXBvbmVudGAgbW9kZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSM0RlZmVyUGVyQ29tcG9uZW50RGVwZW5kZW5jeSB7XG4gIC8qKlxuICAgKiBEZXBlbmRlbmN5IGNsYXNzIG5hbWUuXG4gICAqL1xuICBzeW1ib2xOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBwYXRoIHdoZXJlIHRoaXMgZGVwZW5kZW5jeSBpcyBsb2NhdGVkLlxuICAgKi9cbiAgaW1wb3J0UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzeW1ib2wgaXMgdGhlIGRlZmF1bHQgZXhwb3J0LlxuICAgKi9cbiAgaXNEZWZhdWx0SW1wb3J0OiBib29sZWFuO1xufVxuIl19