@ngxs/store 3.7.6-dev.master-fb318b1 → 3.7.6-dev.master-dcdd391

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 (230) hide show
  1. package/bundles/ngxs-store-internals-testing.umd.js +409 -420
  2. package/bundles/ngxs-store-internals-testing.umd.js.map +1 -1
  3. package/bundles/ngxs-store-internals.umd.js +48 -117
  4. package/bundles/ngxs-store-internals.umd.js.map +1 -1
  5. package/bundles/ngxs-store-operators.umd.js +60 -402
  6. package/bundles/ngxs-store-operators.umd.js.map +1 -1
  7. package/bundles/ngxs-store.umd.js +1041 -3269
  8. package/bundles/ngxs-store.umd.js.map +1 -1
  9. package/esm2015/index.js +7 -7
  10. package/esm2015/internals/angular.js +1 -8
  11. package/esm2015/internals/index.js +2 -6
  12. package/esm2015/internals/initial-state.js +1 -21
  13. package/esm2015/internals/internal-tokens.js +4 -15
  14. package/esm2015/internals/memoize.js +8 -33
  15. package/esm2015/internals/ngxs-bootstrapper.js +7 -20
  16. package/esm2015/internals/ngxs-store-internals.js +2 -6
  17. package/esm2015/internals/src/symbols.js +2 -14
  18. package/esm2015/internals/symbols.js +2 -14
  19. package/esm2015/internals/testing/fresh-platform.js +13 -53
  20. package/esm2015/internals/testing/helpers/ngxs-test.component.js +11 -17
  21. package/esm2015/internals/testing/helpers/ngxs-test.module.js +13 -16
  22. package/esm2015/internals/testing/index.js +1 -5
  23. package/esm2015/internals/testing/ngxs-store-internals-testing.js +2 -6
  24. package/esm2015/internals/testing/ngxs.setup.js +1 -31
  25. package/esm2015/internals/testing/skip-console-logging.js +7 -42
  26. package/esm2015/internals/testing/symbol.js +2 -29
  27. package/esm2015/ngxs-store.js +2 -23
  28. package/esm2015/operators/append.js +7 -18
  29. package/esm2015/operators/compose.js +4 -22
  30. package/esm2015/operators/iif.js +12 -30
  31. package/esm2015/operators/index.js +1 -5
  32. package/esm2015/operators/insert-item.js +10 -22
  33. package/esm2015/operators/ngxs-store-operators.js +2 -6
  34. package/esm2015/operators/patch.js +5 -22
  35. package/esm2015/operators/remove-item.js +5 -17
  36. package/esm2015/operators/types.js +2 -5
  37. package/esm2015/operators/update-item.js +12 -26
  38. package/esm2015/operators/utils.js +1 -32
  39. package/esm2015/src/actions/actions.js +1 -18
  40. package/esm2015/src/actions/symbols.js +2 -39
  41. package/esm2015/src/actions-stream.js +24 -90
  42. package/esm2015/src/configs/messages.config.js +1 -44
  43. package/esm2015/src/decorators/action.js +3 -18
  44. package/esm2015/src/decorators/select/select-factory.js +10 -27
  45. package/esm2015/src/decorators/select/select.js +3 -22
  46. package/esm2015/src/decorators/select/symbols.js +4 -25
  47. package/esm2015/src/decorators/selector/selector.js +5 -29
  48. package/esm2015/src/decorators/selector/symbols.js +2 -5
  49. package/esm2015/src/decorators/selector-options.js +4 -18
  50. package/esm2015/src/decorators/state.js +5 -44
  51. package/esm2015/src/dev-features/ngxs-development.module.js +8 -12
  52. package/esm2015/src/dev-features/ngxs-unhandled-actions-logger.js +12 -37
  53. package/esm2015/src/dev-features/symbols.js +2 -18
  54. package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +10 -56
  55. package/esm2015/src/execution/internal-ngxs-execution-strategy.js +10 -32
  56. package/esm2015/src/execution/noop-ngxs-execution-strategy.js +7 -19
  57. package/esm2015/src/execution/symbols.js +3 -32
  58. package/esm2015/src/internal/dispatcher.js +26 -121
  59. package/esm2015/src/internal/error-handler.js +18 -72
  60. package/esm2015/src/internal/internals.js +24 -244
  61. package/esm2015/src/internal/lifecycle-state-manager.js +19 -117
  62. package/esm2015/src/internal/state-context-factory.js +9 -67
  63. package/esm2015/src/internal/state-factory.js +42 -225
  64. package/esm2015/src/internal/state-operations.js +19 -80
  65. package/esm2015/src/internal/state-operators.js +6 -20
  66. package/esm2015/src/internal/state-stream.js +7 -13
  67. package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +7 -17
  68. package/esm2015/src/module.js +12 -47
  69. package/esm2015/src/modules/ngxs-feature.module.js +18 -36
  70. package/esm2015/src/modules/ngxs-root.module.js +18 -26
  71. package/esm2015/src/operators/leave-ngxs.js +8 -43
  72. package/esm2015/src/operators/of-action.js +16 -111
  73. package/esm2015/src/plugin-manager.js +17 -50
  74. package/esm2015/src/plugin_api.js +1 -5
  75. package/esm2015/src/private_api.js +3 -0
  76. package/esm2015/src/public_api.js +1 -5
  77. package/esm2015/src/public_to_deprecate.js +1 -51
  78. package/esm2015/src/state-token/state-token.js +4 -32
  79. package/esm2015/src/state-token/symbols.js +2 -5
  80. package/esm2015/src/store.js +20 -104
  81. package/esm2015/src/symbols.js +7 -177
  82. package/esm2015/src/utils/compose.js +5 -23
  83. package/esm2015/src/utils/freeze.js +5 -20
  84. package/esm2015/src/utils/selector-utils.js +23 -136
  85. package/esm2015/src/utils/store-validators.js +3 -36
  86. package/esm2015/src/utils/utils.js +13 -64
  87. package/fesm2015/ngxs-store-internals-testing.js +38 -159
  88. package/fesm2015/ngxs-store-internals-testing.js.map +1 -1
  89. package/fesm2015/ngxs-store-internals.js +18 -100
  90. package/fesm2015/ngxs-store-internals.js.map +1 -1
  91. package/fesm2015/ngxs-store-operators.js +52 -185
  92. package/fesm2015/ngxs-store-operators.js.map +1 -1
  93. package/fesm2015/ngxs-store.js +400 -2473
  94. package/fesm2015/ngxs-store.js.map +1 -1
  95. package/index.d.ts +4 -0
  96. package/internals/index.d.ts +1 -1
  97. package/internals/internal-tokens.d.ts +2 -8
  98. package/internals/ngxs-bootstrapper.d.ts +4 -1
  99. package/internals/ngxs-store-internals.d.ts +1 -0
  100. package/internals/package.json +2 -5
  101. package/internals/testing/helpers/ngxs-test.component.d.ts +3 -0
  102. package/internals/testing/helpers/ngxs-test.module.d.ts +6 -0
  103. package/internals/testing/ngxs-store-internals-testing.d.ts +1 -0
  104. package/internals/testing/package.json +2 -5
  105. package/ngxs-store.d.ts +1 -18
  106. package/operators/ngxs-store-operators.d.ts +1 -0
  107. package/operators/package.json +2 -5
  108. package/package.json +3 -6
  109. package/src/actions/actions.d.ts +2 -2
  110. package/src/actions-stream.d.ts +5 -0
  111. package/src/decorators/select/select-factory.d.ts +3 -0
  112. package/src/decorators/state.d.ts +1 -1
  113. package/src/dev-features/ngxs-development.module.d.ts +4 -0
  114. package/src/dev-features/ngxs-unhandled-actions-logger.d.ts +3 -0
  115. package/src/execution/dispatch-outside-zone-ngxs-execution-strategy.d.ts +3 -0
  116. package/src/execution/internal-ngxs-execution-strategy.d.ts +3 -0
  117. package/src/execution/noop-ngxs-execution-strategy.d.ts +3 -0
  118. package/src/internal/dispatcher.d.ts +5 -0
  119. package/src/internal/error-handler.d.ts +4 -1
  120. package/src/internal/lifecycle-state-manager.d.ts +3 -0
  121. package/src/internal/state-context-factory.d.ts +3 -0
  122. package/src/internal/state-factory.d.ts +7 -4
  123. package/src/internal/state-operations.d.ts +3 -0
  124. package/src/internal/state-stream.d.ts +3 -0
  125. package/src/module.d.ts +4 -0
  126. package/src/modules/ngxs-feature.module.d.ts +4 -0
  127. package/src/modules/ngxs-root.module.d.ts +4 -0
  128. package/src/plugin-manager.d.ts +4 -1
  129. package/src/private_api.d.ts +2 -0
  130. package/src/store.d.ts +3 -0
  131. package/src/symbols.d.ts +4 -1
  132. package/src/utils/utils.d.ts +1 -1
  133. package/bundles/ngxs-store-internals-testing.umd.min.js +0 -16
  134. package/bundles/ngxs-store-internals-testing.umd.min.js.map +0 -1
  135. package/bundles/ngxs-store-internals.umd.min.js +0 -2
  136. package/bundles/ngxs-store-internals.umd.min.js.map +0 -1
  137. package/bundles/ngxs-store-operators.umd.min.js +0 -16
  138. package/bundles/ngxs-store-operators.umd.min.js.map +0 -1
  139. package/bundles/ngxs-store.umd.min.js +0 -16
  140. package/bundles/ngxs-store.umd.min.js.map +0 -1
  141. package/esm5/index.js +0 -13
  142. package/esm5/internals/angular.js +0 -20
  143. package/esm5/internals/index.js +0 -10
  144. package/esm5/internals/initial-state.js +0 -45
  145. package/esm5/internals/internal-tokens.js +0 -16
  146. package/esm5/internals/memoize.js +0 -71
  147. package/esm5/internals/ngxs-bootstrapper.js +0 -56
  148. package/esm5/internals/ngxs-store-internals.js +0 -9
  149. package/esm5/internals/src/symbols.js +0 -14
  150. package/esm5/internals/symbols.js +0 -14
  151. package/esm5/internals/testing/fresh-platform.js +0 -121
  152. package/esm5/internals/testing/helpers/ngxs-test.component.js +0 -32
  153. package/esm5/internals/testing/helpers/ngxs-test.module.js +0 -32
  154. package/esm5/internals/testing/index.js +0 -8
  155. package/esm5/internals/testing/ngxs-store-internals-testing.js +0 -9
  156. package/esm5/internals/testing/ngxs.setup.js +0 -98
  157. package/esm5/internals/testing/skip-console-logging.js +0 -62
  158. package/esm5/internals/testing/symbol.js +0 -29
  159. package/esm5/ngxs-store.js +0 -26
  160. package/esm5/operators/append.js +0 -31
  161. package/esm5/operators/compose.js +0 -28
  162. package/esm5/operators/iif.js +0 -56
  163. package/esm5/operators/index.js +0 -18
  164. package/esm5/operators/insert-item.js +0 -41
  165. package/esm5/operators/ngxs-store-operators.js +0 -9
  166. package/esm5/operators/patch.js +0 -39
  167. package/esm5/operators/remove-item.js +0 -34
  168. package/esm5/operators/types.js +0 -5
  169. package/esm5/operators/update-item.js +0 -54
  170. package/esm5/operators/utils.js +0 -50
  171. package/esm5/src/actions/actions.js +0 -62
  172. package/esm5/src/actions/symbols.js +0 -39
  173. package/esm5/src/actions-stream.js +0 -201
  174. package/esm5/src/configs/messages.config.js +0 -79
  175. package/esm5/src/decorators/action.js +0 -60
  176. package/esm5/src/decorators/select/select-factory.js +0 -46
  177. package/esm5/src/decorators/select/select.js +0 -50
  178. package/esm5/src/decorators/select/symbols.js +0 -51
  179. package/esm5/src/decorators/selector/selector.js +0 -59
  180. package/esm5/src/decorators/selector/symbols.js +0 -5
  181. package/esm5/src/decorators/selector-options.js +0 -34
  182. package/esm5/src/decorators/state.js +0 -78
  183. package/esm5/src/dev-features/ngxs-development.module.js +0 -34
  184. package/esm5/src/dev-features/ngxs-unhandled-actions-logger.js +0 -100
  185. package/esm5/src/dev-features/symbols.js +0 -22
  186. package/esm5/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +0 -123
  187. package/esm5/src/execution/internal-ngxs-execution-strategy.js +0 -54
  188. package/esm5/src/execution/noop-ngxs-execution-strategy.js +0 -43
  189. package/esm5/src/execution/symbols.js +0 -52
  190. package/esm5/src/internal/dispatcher.js +0 -231
  191. package/esm5/src/internal/error-handler.js +0 -125
  192. package/esm5/src/internal/internals.js +0 -470
  193. package/esm5/src/internal/lifecycle-state-manager.js +0 -224
  194. package/esm5/src/internal/state-context-factory.js +0 -135
  195. package/esm5/src/internal/state-factory.js +0 -599
  196. package/esm5/src/internal/state-operations.js +0 -134
  197. package/esm5/src/internal/state-operators.js +0 -34
  198. package/esm5/src/internal/state-stream.js +0 -37
  199. package/esm5/src/ivy/ivy-enabled-in-dev-mode.js +0 -28
  200. package/esm5/src/module.js +0 -202
  201. package/esm5/src/modules/ngxs-feature.module.js +0 -65
  202. package/esm5/src/modules/ngxs-root.module.js +0 -44
  203. package/esm5/src/operators/leave-ngxs.js +0 -58
  204. package/esm5/src/operators/of-action.js +0 -223
  205. package/esm5/src/plugin-manager.js +0 -82
  206. package/esm5/src/plugin_api.js +0 -10
  207. package/esm5/src/public_api.js +0 -31
  208. package/esm5/src/public_to_deprecate.js +0 -64
  209. package/esm5/src/state-token/state-token.js +0 -57
  210. package/esm5/src/state-token/symbols.js +0 -5
  211. package/esm5/src/store.js +0 -241
  212. package/esm5/src/symbols.js +0 -230
  213. package/esm5/src/utils/compose.js +0 -55
  214. package/esm5/src/utils/freeze.js +0 -35
  215. package/esm5/src/utils/selector-utils.js +0 -230
  216. package/esm5/src/utils/store-validators.js +0 -78
  217. package/esm5/src/utils/utils.js +0 -151
  218. package/fesm5/ngxs-store-internals-testing.js +0 -345
  219. package/fesm5/ngxs-store-internals-testing.js.map +0 -1
  220. package/fesm5/ngxs-store-internals.js +0 -217
  221. package/fesm5/ngxs-store-internals.js.map +0 -1
  222. package/fesm5/ngxs-store-operators.js +0 -341
  223. package/fesm5/ngxs-store-operators.js.map +0 -1
  224. package/fesm5/ngxs-store.js +0 -4783
  225. package/fesm5/ngxs-store.js.map +0 -1
  226. package/internals/ngxs-store-internals.metadata.json +0 -1
  227. package/internals/testing/ngxs-store-internals-testing.metadata.json +0 -1
  228. package/ngxs-store.metadata.json +0 -1
  229. package/operators/ngxs-store-operators.metadata.json +0 -1
  230. package/types/index.d.ts +0 -2
@@ -1,103 +1,40 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
1
  import { memoize } from '@ngxs/store/internals';
6
2
  import { ensureSelectorMetadata, getSelectorMetadata, getStoreMetadata } from '../internal/internals';
7
- /** @type {?} */
8
3
  const SELECTOR_OPTIONS_META_KEY = 'NGXS_SELECTOR_OPTIONS_META';
9
- /** @type {?} */
10
4
  export const selectorOptionsMetaAccessor = {
11
- getOptions: (/**
12
- * @param {?} target
13
- * @return {?}
14
- */
15
- (target) => {
16
- return (target && ((/** @type {?} */ (target)))[SELECTOR_OPTIONS_META_KEY]) || {};
17
- }),
18
- defineOptions: (/**
19
- * @param {?} target
20
- * @param {?} options
21
- * @return {?}
22
- */
23
- (target, options) => {
5
+ getOptions: (target) => {
6
+ return (target && target[SELECTOR_OPTIONS_META_KEY]) || {};
7
+ },
8
+ defineOptions: (target, options) => {
24
9
  if (!target)
25
10
  return;
26
- ((/** @type {?} */ (target)))[SELECTOR_OPTIONS_META_KEY] = options;
27
- })
11
+ target[SELECTOR_OPTIONS_META_KEY] = options;
12
+ }
28
13
  };
29
- /**
30
- * @record
31
- */
32
- function CreationMetadata() { }
33
- if (false) {
34
- /** @type {?} */
35
- CreationMetadata.prototype.containerClass;
36
- /** @type {?} */
37
- CreationMetadata.prototype.selectorName;
38
- /** @type {?|undefined} */
39
- CreationMetadata.prototype.getSelectorOptions;
40
- }
41
- /**
42
- * @record
43
- */
44
- function RuntimeSelectorInfo() { }
45
- if (false) {
46
- /** @type {?} */
47
- RuntimeSelectorInfo.prototype.selectorOptions;
48
- /** @type {?} */
49
- RuntimeSelectorInfo.prototype.argumentSelectorFunctions;
50
- }
51
14
  /**
52
15
  * Function for creating a selector
53
- * @template T
54
- * @param {?} selectors The selectors to use to create the arguments of this function
55
- * @param {?} originalFn The original function being made into a selector
56
- * @param {?=} creationMetadata
57
- * @return {?}
16
+ * @param selectors The selectors to use to create the arguments of this function
17
+ * @param originalFn The original function being made into a selector
18
+ * @param creationMetadata
58
19
  */
59
20
  export function createSelector(selectors, originalFn, creationMetadata) {
60
- /** @type {?} */
61
21
  const containerClass = creationMetadata && creationMetadata.containerClass;
62
- /** @type {?} */
63
- const wrappedFn = (/** @type {?} */ ((/**
64
- * @param {...?} args
65
- * @return {?}
66
- */
67
- function wrappedSelectorFn(...args) {
68
- /** @type {?} */
22
+ const wrappedFn = function wrappedSelectorFn(...args) {
69
23
  const returnValue = originalFn.apply(containerClass, args);
70
24
  if (returnValue instanceof Function) {
71
- /** @type {?} */
72
25
  const innerMemoizedFn = memoize.apply(null, [returnValue]);
73
26
  return innerMemoizedFn;
74
27
  }
75
28
  return returnValue;
76
- })));
77
- /** @type {?} */
29
+ };
78
30
  const memoizedFn = memoize(wrappedFn);
79
31
  Object.setPrototypeOf(memoizedFn, originalFn);
80
- /** @type {?} */
81
32
  const selectorMetaData = setupSelectorMetadata(originalFn, creationMetadata);
82
- /** @type {?} */
83
- const makeRootSelector = (/**
84
- * @param {?} context
85
- * @return {?}
86
- */
87
- (context) => {
33
+ const makeRootSelector = (context) => {
88
34
  const { argumentSelectorFunctions, selectorOptions } = getRuntimeSelectorInfo(context, selectorMetaData, selectors);
89
- return (/**
90
- * @param {?} rootState
91
- * @return {?}
92
- */
93
- function selectFromRoot(rootState) {
35
+ return function selectFromRoot(rootState) {
94
36
  // Determine arguments from the app state using the selectors
95
- /** @type {?} */
96
- const results = argumentSelectorFunctions.map((/**
97
- * @param {?} argFn
98
- * @return {?}
99
- */
100
- argFn => argFn(rootState)));
37
+ const results = argumentSelectorFunctions.map(argFn => argFn(rootState));
101
38
  // if the lambda tries to access a something on the
102
39
  // state that doesn't exist, it will throw a TypeError.
103
40
  // since this is quite usual behaviour, we simply return undefined if so.
@@ -110,90 +47,46 @@ export function createSelector(selectors, originalFn, creationMetadata) {
110
47
  }
111
48
  throw ex;
112
49
  }
113
- });
114
- });
50
+ };
51
+ };
115
52
  selectorMetaData.makeRootSelector = makeRootSelector;
116
53
  return memoizedFn;
117
54
  }
118
- /**
119
- * @template T
120
- * @param {?} originalFn
121
- * @param {?} creationMetadata
122
- * @return {?}
123
- */
124
55
  function setupSelectorMetadata(originalFn, creationMetadata) {
125
- /** @type {?} */
126
56
  const selectorMetaData = ensureSelectorMetadata(originalFn);
127
57
  selectorMetaData.originalFn = originalFn;
128
- /** @type {?} */
129
- let getExplicitSelectorOptions = (/**
130
- * @return {?}
131
- */
132
- () => ({}));
58
+ let getExplicitSelectorOptions = () => ({});
133
59
  if (creationMetadata) {
134
60
  selectorMetaData.containerClass = creationMetadata.containerClass;
135
61
  selectorMetaData.selectorName = creationMetadata.selectorName;
136
62
  getExplicitSelectorOptions =
137
63
  creationMetadata.getSelectorOptions || getExplicitSelectorOptions;
138
64
  }
139
- /** @type {?} */
140
65
  const selectorMetaDataClone = Object.assign({}, selectorMetaData);
141
- selectorMetaData.getSelectorOptions = (/**
142
- * @return {?}
143
- */
144
- () => getLocalSelectorOptions(selectorMetaDataClone, getExplicitSelectorOptions()));
66
+ selectorMetaData.getSelectorOptions = () => getLocalSelectorOptions(selectorMetaDataClone, getExplicitSelectorOptions());
145
67
  return selectorMetaData;
146
68
  }
147
- /**
148
- * @param {?} context
149
- * @param {?} selectorMetaData
150
- * @param {?=} selectors
151
- * @return {?}
152
- */
153
69
  function getRuntimeSelectorInfo(context, selectorMetaData, selectors = []) {
154
- /** @type {?} */
155
70
  const localSelectorOptions = selectorMetaData.getSelectorOptions();
156
- /** @type {?} */
157
71
  const selectorOptions = context.getSelectorOptions(localSelectorOptions);
158
- /** @type {?} */
159
72
  const selectorsToApply = getSelectorsToApply(selectors, selectorOptions, selectorMetaData.containerClass);
160
- /** @type {?} */
161
- const argumentSelectorFunctions = selectorsToApply.map((/**
162
- * @param {?} selector
163
- * @return {?}
164
- */
165
- selector => {
166
- /** @type {?} */
73
+ const argumentSelectorFunctions = selectorsToApply.map(selector => {
167
74
  const factory = getRootSelectorFactory(selector);
168
75
  return factory(context);
169
- }));
76
+ });
170
77
  return {
171
78
  selectorOptions,
172
79
  argumentSelectorFunctions
173
80
  };
174
81
  }
175
- /**
176
- * @param {?} selectorMetaData
177
- * @param {?} explicitOptions
178
- * @return {?}
179
- */
180
82
  function getLocalSelectorOptions(selectorMetaData, explicitOptions) {
181
- return Object.assign({}, (selectorOptionsMetaAccessor.getOptions(selectorMetaData.containerClass) || {}), (selectorOptionsMetaAccessor.getOptions(selectorMetaData.originalFn) || {}), (selectorMetaData.getSelectorOptions() || {}), explicitOptions);
83
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, (selectorOptionsMetaAccessor.getOptions(selectorMetaData.containerClass) || {})), (selectorOptionsMetaAccessor.getOptions(selectorMetaData.originalFn) || {})), (selectorMetaData.getSelectorOptions() || {})), explicitOptions);
182
84
  }
183
- /**
184
- * @param {?=} selectors
185
- * @param {?=} selectorOptions
186
- * @param {?=} containerClass
187
- * @return {?}
188
- */
189
85
  function getSelectorsToApply(selectors = [], selectorOptions, containerClass) {
190
- /** @type {?} */
191
86
  const selectorsToApply = [];
192
- /** @type {?} */
193
87
  const canInjectContainerState = selectors.length === 0 || selectorOptions.injectContainerState;
194
88
  if (containerClass && canInjectContainerState) {
195
89
  // If we are on a state class, add it as the first selector parameter
196
- /** @type {?} */
197
90
  const metadata = getStoreMetadata(containerClass);
198
91
  if (metadata) {
199
92
  selectorsToApply.push(containerClass);
@@ -207,15 +100,9 @@ function getSelectorsToApply(selectors = [], selectorOptions, containerClass) {
207
100
  /**
208
101
  * This function gets the factory function to create the selector to get the selected slice from the app state
209
102
  * @ignore
210
- * @param {?} selector
211
- * @return {?}
212
103
  */
213
104
  export function getRootSelectorFactory(selector) {
214
- /** @type {?} */
215
105
  const metadata = getSelectorMetadata(selector) || getStoreMetadata(selector);
216
- return (metadata && metadata.makeRootSelector) || ((/**
217
- * @return {?}
218
- */
219
- () => selector));
106
+ return (metadata && metadata.makeRootSelector) || (() => selector);
220
107
  }
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3ItdXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy91dGlscy9zZWxlY3Rvci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQU1qQixNQUFNLHVCQUF1QixDQUFDOztNQUV6Qix5QkFBeUIsR0FBRyw0QkFBNEI7O0FBRTlELE1BQU0sT0FBTywyQkFBMkIsR0FBRztJQUN6QyxVQUFVOzs7O0lBQUUsQ0FBQyxNQUFXLEVBQXlCLEVBQUU7UUFDakQsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLG1CQUFLLE1BQU0sRUFBQSxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwRSxDQUFDLENBQUE7SUFDRCxhQUFhOzs7OztJQUFFLENBQUMsTUFBVyxFQUFFLE9BQThCLEVBQUUsRUFBRTtRQUM3RCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDcEIsQ0FBQyxtQkFBSyxNQUFNLEVBQUEsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQ3JELENBQUMsQ0FBQTtDQUNGOzs7O0FBRUQsK0JBSUM7OztJQUhDLDBDQUFvQjs7SUFDcEIsd0NBQXFCOztJQUNyQiw4Q0FBaUQ7Ozs7O0FBR25ELGtDQUdDOzs7SUFGQyw4Q0FBdUM7O0lBQ3ZDLHdEQUFpRDs7Ozs7Ozs7OztBQVNuRCxNQUFNLFVBQVUsY0FBYyxDQUM1QixTQUE0QixFQUM1QixVQUFhLEVBQ2IsZ0JBQW1DOztVQUU3QixjQUFjLEdBQUcsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsY0FBYzs7VUFDcEUsU0FBUyxHQUFHOzs7O0lBQUEsU0FBUyxpQkFBaUIsQ0FBQyxHQUFHLElBQVc7O2NBQ25ELFdBQVcsR0FB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QyxnQkFBZ0IsQ0FBQyxJQUFJOzs7SUFBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUMsQ0FBQztBQUNyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtb2l6ZSB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7XG4gIGVuc3VyZVNlbGVjdG9yTWV0YWRhdGEsXG4gIGdldFNlbGVjdG9yTWV0YWRhdGEsXG4gIGdldFN0b3JlTWV0YWRhdGEsXG4gIFNlbGVjdG9yTWV0YURhdGFNb2RlbCxcbiAgU2hhcmVkU2VsZWN0b3JPcHRpb25zLFxuICBSdW50aW1lU2VsZWN0b3JDb250ZXh0LFxuICBTZWxlY3RvckZhY3RvcnksXG4gIFNlbGVjdEZyb21Sb290U3RhdGVcbn0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcblxuY29uc3QgU0VMRUNUT1JfT1BUSU9OU19NRVRBX0tFWSA9ICdOR1hTX1NFTEVDVE9SX09QVElPTlNfTUVUQSc7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IgPSB7XG4gIGdldE9wdGlvbnM6ICh0YXJnZXQ6IGFueSk6IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyA9PiB7XG4gICAgcmV0dXJuICh0YXJnZXQgJiYgKDxhbnk+dGFyZ2V0KVtTRUxFQ1RPUl9PUFRJT05TX01FVEFfS0VZXSkgfHwge307XG4gIH0sXG4gIGRlZmluZU9wdGlvbnM6ICh0YXJnZXQ6IGFueSwgb3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zKSA9PiB7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcbiAgICAoPGFueT50YXJnZXQpW1NFTEVDVE9SX09QVElPTlNfTUVUQV9LRVldID0gb3B0aW9ucztcbiAgfVxufTtcblxuaW50ZXJmYWNlIENyZWF0aW9uTWV0YWRhdGEge1xuICBjb250YWluZXJDbGFzczogYW55O1xuICBzZWxlY3Rvck5hbWU6IHN0cmluZztcbiAgZ2V0U2VsZWN0b3JPcHRpb25zPzogKCkgPT4gU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xufVxuXG5pbnRlcmZhY2UgUnVudGltZVNlbGVjdG9ySW5mbyB7XG4gIHNlbGVjdG9yT3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xuICBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zOiBTZWxlY3RGcm9tUm9vdFN0YXRlW107XG59XG5cbi8qKlxuICogRnVuY3Rpb24gZm9yIGNyZWF0aW5nIGEgc2VsZWN0b3JcbiAqIEBwYXJhbSBzZWxlY3RvcnMgVGhlIHNlbGVjdG9ycyB0byB1c2UgdG8gY3JlYXRlIHRoZSBhcmd1bWVudHMgb2YgdGhpcyBmdW5jdGlvblxuICogQHBhcmFtIG9yaWdpbmFsRm4gVGhlIG9yaWdpbmFsIGZ1bmN0aW9uIGJlaW5nIG1hZGUgaW50byBhIHNlbGVjdG9yXG4gKiBAcGFyYW0gY3JlYXRpb25NZXRhZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3I8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgc2VsZWN0b3JzOiBhbnlbXSB8IHVuZGVmaW5lZCxcbiAgb3JpZ2luYWxGbjogVCxcbiAgY3JlYXRpb25NZXRhZGF0YT86IENyZWF0aW9uTWV0YWRhdGFcbikge1xuICBjb25zdCBjb250YWluZXJDbGFzcyA9IGNyZWF0aW9uTWV0YWRhdGEgJiYgY3JlYXRpb25NZXRhZGF0YS5jb250YWluZXJDbGFzcztcbiAgY29uc3Qgd3JhcHBlZEZuID0gZnVuY3Rpb24gd3JhcHBlZFNlbGVjdG9yRm4oLi4uYXJnczogYW55W10pIHtcbiAgICBjb25zdCByZXR1cm5WYWx1ZSA9IG9yaWdpbmFsRm4uYXBwbHkoY29udGFpbmVyQ2xhc3MsIGFyZ3MpO1xuICAgIGlmIChyZXR1cm5WYWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICBjb25zdCBpbm5lck1lbW9pemVkRm4gPSBtZW1vaXplLmFwcGx5KG51bGwsIFtyZXR1cm5WYWx1ZV0pO1xuICAgICAgcmV0dXJuIGlubmVyTWVtb2l6ZWRGbjtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICB9IGFzIFQ7XG4gIGNvbnN0IG1lbW9pemVkRm4gPSBtZW1vaXplKHdyYXBwZWRGbik7XG4gIE9iamVjdC5zZXRQcm90b3R5cGVPZihtZW1vaXplZEZuLCBvcmlnaW5hbEZuKTtcblxuICBjb25zdCBzZWxlY3Rvck1ldGFEYXRhID0gc2V0dXBTZWxlY3Rvck1ldGFkYXRhPFQ+KG9yaWdpbmFsRm4sIGNyZWF0aW9uTWV0YWRhdGEpO1xuXG4gIGNvbnN0IG1ha2VSb290U2VsZWN0b3I6IFNlbGVjdG9yRmFjdG9yeSA9IChjb250ZXh0OiBSdW50aW1lU2VsZWN0b3JDb250ZXh0KSA9PiB7XG4gICAgY29uc3QgeyBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zLCBzZWxlY3Rvck9wdGlvbnMgfSA9IGdldFJ1bnRpbWVTZWxlY3RvckluZm8oXG4gICAgICBjb250ZXh0LFxuICAgICAgc2VsZWN0b3JNZXRhRGF0YSxcbiAgICAgIHNlbGVjdG9yc1xuICAgICk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gc2VsZWN0RnJvbVJvb3Qocm9vdFN0YXRlOiBhbnkpIHtcbiAgICAgIC8vIERldGVybWluZSBhcmd1bWVudHMgZnJvbSB0aGUgYXBwIHN0YXRlIHVzaW5nIHRoZSBzZWxlY3RvcnNcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zLm1hcChhcmdGbiA9PiBhcmdGbihyb290U3RhdGUpKTtcblxuICAgICAgLy8gaWYgdGhlIGxhbWJkYSB0cmllcyB0byBhY2Nlc3MgYSBzb21ldGhpbmcgb24gdGhlXG4gICAgICAvLyBzdGF0ZSB0aGF0IGRvZXNuJ3QgZXhpc3QsIGl0IHdpbGwgdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgICAvLyBzaW5jZSB0aGlzIGlzIHF1aXRlIHVzdWFsIGJlaGF2aW91ciwgd2Ugc2ltcGx5IHJldHVybiB1bmRlZmluZWQgaWYgc28uXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbWVtb2l6ZWRGbiguLi5yZXN1bHRzKTtcbiAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgIGlmIChleCBpbnN0YW5jZW9mIFR5cGVFcnJvciAmJiBzZWxlY3Rvck9wdGlvbnMuc3VwcHJlc3NFcnJvcnMpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgZXg7XG4gICAgICB9XG4gICAgfTtcbiAgfTtcblxuICBzZWxlY3Rvck1ldGFEYXRhLm1ha2VSb290U2VsZWN0b3IgPSBtYWtlUm9vdFNlbGVjdG9yO1xuXG4gIHJldHVybiBtZW1vaXplZEZuO1xufVxuXG5mdW5jdGlvbiBzZXR1cFNlbGVjdG9yTWV0YWRhdGE8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgb3JpZ2luYWxGbjogVCxcbiAgY3JlYXRpb25NZXRhZGF0YTogQ3JlYXRpb25NZXRhZGF0YSB8IHVuZGVmaW5lZFxuKSB7XG4gIGNvbnN0IHNlbGVjdG9yTWV0YURhdGEgPSBlbnN1cmVTZWxlY3Rvck1ldGFkYXRhKG9yaWdpbmFsRm4pO1xuICBzZWxlY3Rvck1ldGFEYXRhLm9yaWdpbmFsRm4gPSBvcmlnaW5hbEZuO1xuICBsZXQgZ2V0RXhwbGljaXRTZWxlY3Rvck9wdGlvbnMgPSAoKSA9PiAoe30pO1xuICBpZiAoY3JlYXRpb25NZXRhZGF0YSkge1xuICAgIHNlbGVjdG9yTWV0YURhdGEuY29udGFpbmVyQ2xhc3MgPSBjcmVhdGlvbk1ldGFkYXRhLmNvbnRhaW5lckNsYXNzO1xuICAgIHNlbGVjdG9yTWV0YURhdGEuc2VsZWN0b3JOYW1lID0gY3JlYXRpb25NZXRhZGF0YS5zZWxlY3Rvck5hbWU7XG4gICAgZ2V0RXhwbGljaXRTZWxlY3Rvck9wdGlvbnMgPVxuICAgICAgY3JlYXRpb25NZXRhZGF0YS5nZXRTZWxlY3Rvck9wdGlvbnMgfHwgZ2V0RXhwbGljaXRTZWxlY3Rvck9wdGlvbnM7XG4gIH1cbiAgY29uc3Qgc2VsZWN0b3JNZXRhRGF0YUNsb25lID0geyAuLi5zZWxlY3Rvck1ldGFEYXRhIH07XG4gIHNlbGVjdG9yTWV0YURhdGEuZ2V0U2VsZWN0b3JPcHRpb25zID0gKCkgPT5cbiAgICBnZXRMb2NhbFNlbGVjdG9yT3B0aW9ucyhzZWxlY3Rvck1ldGFEYXRhQ2xvbmUsIGdldEV4cGxpY2l0U2VsZWN0b3JPcHRpb25zKCkpO1xuICByZXR1cm4gc2VsZWN0b3JNZXRhRGF0YTtcbn1cblxuZnVuY3Rpb24gZ2V0UnVudGltZVNlbGVjdG9ySW5mbyhcbiAgY29udGV4dDogUnVudGltZVNlbGVjdG9yQ29udGV4dCxcbiAgc2VsZWN0b3JNZXRhRGF0YTogU2VsZWN0b3JNZXRhRGF0YU1vZGVsLFxuICBzZWxlY3RvcnM6IGFueVtdIHwgdW5kZWZpbmVkID0gW11cbik6IFJ1bnRpbWVTZWxlY3RvckluZm8ge1xuICBjb25zdCBsb2NhbFNlbGVjdG9yT3B0aW9ucyA9IHNlbGVjdG9yTWV0YURhdGEuZ2V0U2VsZWN0b3JPcHRpb25zKCk7XG4gIGNvbnN0IHNlbGVjdG9yT3B0aW9ucyA9IGNvbnRleHQuZ2V0U2VsZWN0b3JPcHRpb25zKGxvY2FsU2VsZWN0b3JPcHRpb25zKTtcbiAgY29uc3Qgc2VsZWN0b3JzVG9BcHBseSA9IGdldFNlbGVjdG9yc1RvQXBwbHkoXG4gICAgc2VsZWN0b3JzLFxuICAgIHNlbGVjdG9yT3B0aW9ucyxcbiAgICBzZWxlY3Rvck1ldGFEYXRhLmNvbnRhaW5lckNsYXNzXG4gICk7XG5cbiAgY29uc3QgYXJndW1lbnRTZWxlY3RvckZ1bmN0aW9ucyA9IHNlbGVjdG9yc1RvQXBwbHkubWFwKHNlbGVjdG9yID0+IHtcbiAgICBjb25zdCBmYWN0b3J5ID0gZ2V0Um9vdFNlbGVjdG9yRmFjdG9yeShzZWxlY3Rvcik7XG4gICAgcmV0dXJuIGZhY3RvcnkoY29udGV4dCk7XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHNlbGVjdG9yT3B0aW9ucyxcbiAgICBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldExvY2FsU2VsZWN0b3JPcHRpb25zKFxuICBzZWxlY3Rvck1ldGFEYXRhOiBTZWxlY3Rvck1ldGFEYXRhTW9kZWwsXG4gIGV4cGxpY2l0T3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zXG4pOiBTaGFyZWRTZWxlY3Rvck9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIC4uLihzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IuZ2V0T3B0aW9ucyhzZWxlY3Rvck1ldGFEYXRhLmNvbnRhaW5lckNsYXNzKSB8fCB7fSksXG4gICAgLi4uKHNlbGVjdG9yT3B0aW9uc01ldGFBY2Nlc3Nvci5nZXRPcHRpb25zKHNlbGVjdG9yTWV0YURhdGEub3JpZ2luYWxGbikgfHwge30pLFxuICAgIC4uLihzZWxlY3Rvck1ldGFEYXRhLmdldFNlbGVjdG9yT3B0aW9ucygpIHx8IHt9KSxcbiAgICAuLi5leHBsaWNpdE9wdGlvbnNcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U2VsZWN0b3JzVG9BcHBseShcbiAgc2VsZWN0b3JzOiBhbnlbXSB8IHVuZGVmaW5lZCA9IFtdLFxuICBzZWxlY3Rvck9wdGlvbnM6IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyxcbiAgY29udGFpbmVyQ2xhc3M6IGFueVxuKSB7XG4gIGNvbnN0IHNlbGVjdG9yc1RvQXBwbHkgPSBbXTtcbiAgY29uc3QgY2FuSW5qZWN0Q29udGFpbmVyU3RhdGUgPVxuICAgIHNlbGVjdG9ycy5sZW5ndGggPT09IDAgfHwgc2VsZWN0b3JPcHRpb25zLmluamVjdENvbnRhaW5lclN0YXRlO1xuICBpZiAoY29udGFpbmVyQ2xhc3MgJiYgY2FuSW5qZWN0Q29udGFpbmVyU3RhdGUpIHtcbiAgICAvLyBJZiB3ZSBhcmUgb24gYSBzdGF0ZSBjbGFzcywgYWRkIGl0IGFzIHRoZSBmaXJzdCBzZWxlY3RvciBwYXJhbWV0ZXJcbiAgICBjb25zdCBtZXRhZGF0YSA9IGdldFN0b3JlTWV0YWRhdGEoY29udGFpbmVyQ2xhc3MpO1xuICAgIGlmIChtZXRhZGF0YSkge1xuICAgICAgc2VsZWN0b3JzVG9BcHBseS5wdXNoKGNvbnRhaW5lckNsYXNzKTtcbiAgICB9XG4gIH1cbiAgaWYgKHNlbGVjdG9ycykge1xuICAgIHNlbGVjdG9yc1RvQXBwbHkucHVzaCguLi5zZWxlY3RvcnMpO1xuICB9XG4gIHJldHVybiBzZWxlY3RvcnNUb0FwcGx5O1xufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gZ2V0cyB0aGUgZmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgdGhlIHNlbGVjdG9yIHRvIGdldCB0aGUgc2VsZWN0ZWQgc2xpY2UgZnJvbSB0aGUgYXBwIHN0YXRlXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb290U2VsZWN0b3JGYWN0b3J5KHNlbGVjdG9yOiBhbnkpOiBTZWxlY3RvckZhY3Rvcnkge1xuICBjb25zdCBtZXRhZGF0YSA9IGdldFNlbGVjdG9yTWV0YWRhdGEoc2VsZWN0b3IpIHx8IGdldFN0b3JlTWV0YWRhdGEoc2VsZWN0b3IpO1xuICByZXR1cm4gKG1ldGFkYXRhICYmIG1ldGFkYXRhLm1ha2VSb290U2VsZWN0b3IpIHx8ICgoKSA9PiBzZWxlY3Rvcik7XG59XG4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3ItdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvdXRpbHMvc2VsZWN0b3ItdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQU1qQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE1BQU0seUJBQXlCLEdBQUcsNEJBQTRCLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUc7SUFDekMsVUFBVSxFQUFFLENBQUMsTUFBVyxFQUF5QixFQUFFO1FBQ2pELE9BQU8sQ0FBQyxNQUFNLElBQVUsTUFBTyxDQUFDLHlCQUF5QixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUNELGFBQWEsRUFBRSxDQUFDLE1BQVcsRUFBRSxPQUE4QixFQUFFLEVBQUU7UUFDN0QsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ2QsTUFBTyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQ3JELENBQUM7Q0FDRixDQUFDO0FBYUY7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixTQUE0QixFQUM1QixVQUFhLEVBQ2IsZ0JBQW1DO0lBRW5DLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztJQUMzRSxNQUFNLFNBQVMsR0FBRyxTQUFTLGlCQUFpQixDQUFDLEdBQUcsSUFBVztRQUN6RCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxJQUFJLFdBQVcsWUFBWSxRQUFRLEVBQUU7WUFDbkMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQzNELE9BQU8sZUFBZSxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBTSxDQUFDO0lBQ1AsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRTlDLE1BQU0sZ0JBQWdCLEdBQUcscUJBQXFCLENBQUksVUFBVSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFFaEYsTUFBTSxnQkFBZ0IsR0FBb0IsQ0FBQyxPQUErQixFQUFFLEVBQUU7UUFDNUUsTUFBTSxFQUFFLHlCQUF5QixFQUFFLGVBQWUsRUFBRSxHQUFHLHNCQUFzQixDQUMzRSxPQUFPLEVBQ1AsZ0JBQWdCLEVBQ2hCLFNBQVMsQ0FDVixDQUFDO1FBRUYsT0FBTyxTQUFTLGNBQWMsQ0FBQyxTQUFjO1lBQzNDLDZEQUE2RDtZQUM3RCxNQUFNLE9BQU8sR0FBRyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUV6RSxtREFBbUQ7WUFDbkQsdURBQXVEO1lBQ3ZELHlFQUF5RTtZQUN6RSxJQUFJO2dCQUNGLE9BQU8sVUFBVSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7YUFDL0I7WUFBQyxPQUFPLEVBQUUsRUFBRTtnQkFDWCxJQUFJLEVBQUUsWUFBWSxTQUFTLElBQUksZUFBZSxDQUFDLGNBQWMsRUFBRTtvQkFDN0QsT0FBTyxTQUFTLENBQUM7aUJBQ2xCO2dCQUVELE1BQU0sRUFBRSxDQUFDO2FBQ1Y7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixnQkFBZ0IsQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUVyRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FDNUIsVUFBYSxFQUNiLGdCQUE4QztJQUU5QyxNQUFNLGdCQUFnQixHQUFHLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVELGdCQUFnQixDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDekMsSUFBSSwwQkFBMEIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLElBQUksZ0JBQWdCLEVBQUU7UUFDcEIsZ0JBQWdCLENBQUMsY0FBYyxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztRQUNsRSxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1FBQzlELDBCQUEwQjtZQUN4QixnQkFBZ0IsQ0FBQyxrQkFBa0IsSUFBSSwwQkFBMEIsQ0FBQztLQUNyRTtJQUNELE1BQU0scUJBQXFCLHFCQUFRLGdCQUFnQixDQUFFLENBQUM7SUFDdEQsZ0JBQWdCLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxFQUFFLENBQ3pDLHVCQUF1QixDQUFDLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLENBQUMsQ0FBQztJQUMvRSxPQUFPLGdCQUFnQixDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUM3QixPQUErQixFQUMvQixnQkFBdUMsRUFDdkMsWUFBK0IsRUFBRTtJQUVqQyxNQUFNLG9CQUFvQixHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDbkUsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDekUsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FDMUMsU0FBUyxFQUNULGVBQWUsRUFDZixnQkFBZ0IsQ0FBQyxjQUFjLENBQ2hDLENBQUM7SUFFRixNQUFNLHlCQUF5QixHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNoRSxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU87UUFDTCxlQUFlO1FBQ2YseUJBQXlCO0tBQzFCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyx1QkFBdUIsQ0FDOUIsZ0JBQXVDLEVBQ3ZDLGVBQXNDO0lBRXRDLG1FQUNLLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUMvRSxDQUFDLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsR0FDM0UsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUM3QyxlQUFlLEVBQ2xCO0FBQ0osQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQzFCLFlBQStCLEVBQUUsRUFDakMsZUFBc0MsRUFDdEMsY0FBbUI7SUFFbkIsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDNUIsTUFBTSx1QkFBdUIsR0FDM0IsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksZUFBZSxDQUFDLG9CQUFvQixDQUFDO0lBQ2pFLElBQUksY0FBYyxJQUFJLHVCQUF1QixFQUFFO1FBQzdDLHFFQUFxRTtRQUNyRSxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsRCxJQUFJLFFBQVEsRUFBRTtZQUNaLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN2QztLQUNGO0lBQ0QsSUFBSSxTQUFTLEVBQUU7UUFDYixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztLQUNyQztJQUNELE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxRQUFhO0lBQ2xELE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdFLE9BQU8sQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtb2l6ZSB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7XG4gIGVuc3VyZVNlbGVjdG9yTWV0YWRhdGEsXG4gIGdldFNlbGVjdG9yTWV0YWRhdGEsXG4gIGdldFN0b3JlTWV0YWRhdGEsXG4gIFNlbGVjdG9yTWV0YURhdGFNb2RlbCxcbiAgU2hhcmVkU2VsZWN0b3JPcHRpb25zLFxuICBSdW50aW1lU2VsZWN0b3JDb250ZXh0LFxuICBTZWxlY3RvckZhY3RvcnksXG4gIFNlbGVjdEZyb21Sb290U3RhdGVcbn0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcblxuY29uc3QgU0VMRUNUT1JfT1BUSU9OU19NRVRBX0tFWSA9ICdOR1hTX1NFTEVDVE9SX09QVElPTlNfTUVUQSc7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IgPSB7XG4gIGdldE9wdGlvbnM6ICh0YXJnZXQ6IGFueSk6IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyA9PiB7XG4gICAgcmV0dXJuICh0YXJnZXQgJiYgKDxhbnk+dGFyZ2V0KVtTRUxFQ1RPUl9PUFRJT05TX01FVEFfS0VZXSkgfHwge307XG4gIH0sXG4gIGRlZmluZU9wdGlvbnM6ICh0YXJnZXQ6IGFueSwgb3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zKSA9PiB7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcbiAgICAoPGFueT50YXJnZXQpW1NFTEVDVE9SX09QVElPTlNfTUVUQV9LRVldID0gb3B0aW9ucztcbiAgfVxufTtcblxuaW50ZXJmYWNlIENyZWF0aW9uTWV0YWRhdGEge1xuICBjb250YWluZXJDbGFzczogYW55O1xuICBzZWxlY3Rvck5hbWU6IHN0cmluZztcbiAgZ2V0U2VsZWN0b3JPcHRpb25zPzogKCkgPT4gU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xufVxuXG5pbnRlcmZhY2UgUnVudGltZVNlbGVjdG9ySW5mbyB7XG4gIHNlbGVjdG9yT3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xuICBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zOiBTZWxlY3RGcm9tUm9vdFN0YXRlW107XG59XG5cbi8qKlxuICogRnVuY3Rpb24gZm9yIGNyZWF0aW5nIGEgc2VsZWN0b3JcbiAqIEBwYXJhbSBzZWxlY3RvcnMgVGhlIHNlbGVjdG9ycyB0byB1c2UgdG8gY3JlYXRlIHRoZSBhcmd1bWVudHMgb2YgdGhpcyBmdW5jdGlvblxuICogQHBhcmFtIG9yaWdpbmFsRm4gVGhlIG9yaWdpbmFsIGZ1bmN0aW9uIGJlaW5nIG1hZGUgaW50byBhIHNlbGVjdG9yXG4gKiBAcGFyYW0gY3JlYXRpb25NZXRhZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3I8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgc2VsZWN0b3JzOiBhbnlbXSB8IHVuZGVmaW5lZCxcbiAgb3JpZ2luYWxGbjogVCxcbiAgY3JlYXRpb25NZXRhZGF0YT86IENyZWF0aW9uTWV0YWRhdGFcbikge1xuICBjb25zdCBjb250YWluZXJDbGFzcyA9IGNyZWF0aW9uTWV0YWRhdGEgJiYgY3JlYXRpb25NZXRhZGF0YS5jb250YWluZXJDbGFzcztcbiAgY29uc3Qgd3JhcHBlZEZuID0gZnVuY3Rpb24gd3JhcHBlZFNlbGVjdG9yRm4oLi4uYXJnczogYW55W10pIHtcbiAgICBjb25zdCByZXR1cm5WYWx1ZSA9IG9yaWdpbmFsRm4uYXBwbHkoY29udGFpbmVyQ2xhc3MsIGFyZ3MpO1xuICAgIGlmIChyZXR1cm5WYWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICBjb25zdCBpbm5lck1lbW9pemVkRm4gPSBtZW1vaXplLmFwcGx5KG51bGwsIFtyZXR1cm5WYWx1ZV0pO1xuICAgICAgcmV0dXJuIGlubmVyTWVtb2l6ZWRGbjtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICB9IGFzIFQ7XG4gIGNvbnN0IG1lbW9pemVkRm4gPSBtZW1vaXplKHdyYXBwZWRGbik7XG4gIE9iamVjdC5zZXRQcm90b3R5cGVPZihtZW1vaXplZEZuLCBvcmlnaW5hbEZuKTtcblxuICBjb25zdCBzZWxlY3Rvck1ldGFEYXRhID0gc2V0dXBTZWxlY3Rvck1ldGFkYXRhPFQ+KG9yaWdpbmFsRm4sIGNyZWF0aW9uTWV0YWRhdGEpO1xuXG4gIGNvbnN0IG1ha2VSb290U2VsZWN0b3I6IFNlbGVjdG9yRmFjdG9yeSA9IChjb250ZXh0OiBSdW50aW1lU2VsZWN0b3JDb250ZXh0KSA9PiB7XG4gICAgY29uc3QgeyBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zLCBzZWxlY3Rvck9wdGlvbnMgfSA9IGdldFJ1bnRpbWVTZWxlY3RvckluZm8oXG4gICAgICBjb250ZXh0LFxuICAgICAgc2VsZWN0b3JNZXRhRGF0YSxcbiAgICAgIHNlbGVjdG9yc1xuICAgICk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gc2VsZWN0RnJvbVJvb3Qocm9vdFN0YXRlOiBhbnkpIHtcbiAgICAgIC8vIERldGVybWluZSBhcmd1bWVudHMgZnJvbSB0aGUgYXBwIHN0YXRlIHVzaW5nIHRoZSBzZWxlY3RvcnNcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zLm1hcChhcmdGbiA9PiBhcmdGbihyb290U3RhdGUpKTtcblxuICAgICAgLy8gaWYgdGhlIGxhbWJkYSB0cmllcyB0byBhY2Nlc3MgYSBzb21ldGhpbmcgb24gdGhlXG4gICAgICAvLyBzdGF0ZSB0aGF0IGRvZXNuJ3QgZXhpc3QsIGl0IHdpbGwgdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgICAvLyBzaW5jZSB0aGlzIGlzIHF1aXRlIHVzdWFsIGJlaGF2aW91ciwgd2Ugc2ltcGx5IHJldHVybiB1bmRlZmluZWQgaWYgc28uXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbWVtb2l6ZWRGbiguLi5yZXN1bHRzKTtcbiAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgIGlmIChleCBpbnN0YW5jZW9mIFR5cGVFcnJvciAmJiBzZWxlY3Rvck9wdGlvbnMuc3VwcHJlc3NFcnJvcnMpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgZXg7XG4gICAgICB9XG4gICAgfTtcbiAgfTtcblxuICBzZWxlY3Rvck1ldGFEYXRhLm1ha2VSb290U2VsZWN0b3IgPSBtYWtlUm9vdFNlbGVjdG9yO1xuXG4gIHJldHVybiBtZW1vaXplZEZuO1xufVxuXG5mdW5jdGlvbiBzZXR1cFNlbGVjdG9yTWV0YWRhdGE8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgb3JpZ2luYWxGbjogVCxcbiAgY3JlYXRpb25NZXRhZGF0YTogQ3JlYXRpb25NZXRhZGF0YSB8IHVuZGVmaW5lZFxuKSB7XG4gIGNvbnN0IHNlbGVjdG9yTWV0YURhdGEgPSBlbnN1cmVTZWxlY3Rvck1ldGFkYXRhKG9yaWdpbmFsRm4pO1xuICBzZWxlY3Rvck1ldGFEYXRhLm9yaWdpbmFsRm4gPSBvcmlnaW5hbEZuO1xuICBsZXQgZ2V0RXhwbGljaXRTZWxlY3Rvck9wdGlvbnMgPSAoKSA9PiAoe30pO1xuICBpZiAoY3JlYXRpb25NZXRhZGF0YSkge1xuICAgIHNlbGVjdG9yTWV0YURhdGEuY29udGFpbmVyQ2xhc3MgPSBjcmVhdGlvbk1ldGFkYXRhLmNvbnRhaW5lckNsYXNzO1xuICAgIHNlbGVjdG9yTWV0YURhdGEuc2VsZWN0b3JOYW1lID0gY3JlYXRpb25NZXRhZGF0YS5zZWxlY3Rvck5hbWU7XG4gICAgZ2V0RXhwbGljaXRTZWxlY3Rvck9wdGlvbnMgPVxuICAgICAgY3JlYXRpb25NZXRhZGF0YS5nZXRTZWxlY3Rvck9wdGlvbnMgfHwgZ2V0RXhwbGljaXRTZWxlY3Rvck9wdGlvbnM7XG4gIH1cbiAgY29uc3Qgc2VsZWN0b3JNZXRhRGF0YUNsb25lID0geyAuLi5zZWxlY3Rvck1ldGFEYXRhIH07XG4gIHNlbGVjdG9yTWV0YURhdGEuZ2V0U2VsZWN0b3JPcHRpb25zID0gKCkgPT5cbiAgICBnZXRMb2NhbFNlbGVjdG9yT3B0aW9ucyhzZWxlY3Rvck1ldGFEYXRhQ2xvbmUsIGdldEV4cGxpY2l0U2VsZWN0b3JPcHRpb25zKCkpO1xuICByZXR1cm4gc2VsZWN0b3JNZXRhRGF0YTtcbn1cblxuZnVuY3Rpb24gZ2V0UnVudGltZVNlbGVjdG9ySW5mbyhcbiAgY29udGV4dDogUnVudGltZVNlbGVjdG9yQ29udGV4dCxcbiAgc2VsZWN0b3JNZXRhRGF0YTogU2VsZWN0b3JNZXRhRGF0YU1vZGVsLFxuICBzZWxlY3RvcnM6IGFueVtdIHwgdW5kZWZpbmVkID0gW11cbik6IFJ1bnRpbWVTZWxlY3RvckluZm8ge1xuICBjb25zdCBsb2NhbFNlbGVjdG9yT3B0aW9ucyA9IHNlbGVjdG9yTWV0YURhdGEuZ2V0U2VsZWN0b3JPcHRpb25zKCk7XG4gIGNvbnN0IHNlbGVjdG9yT3B0aW9ucyA9IGNvbnRleHQuZ2V0U2VsZWN0b3JPcHRpb25zKGxvY2FsU2VsZWN0b3JPcHRpb25zKTtcbiAgY29uc3Qgc2VsZWN0b3JzVG9BcHBseSA9IGdldFNlbGVjdG9yc1RvQXBwbHkoXG4gICAgc2VsZWN0b3JzLFxuICAgIHNlbGVjdG9yT3B0aW9ucyxcbiAgICBzZWxlY3Rvck1ldGFEYXRhLmNvbnRhaW5lckNsYXNzXG4gICk7XG5cbiAgY29uc3QgYXJndW1lbnRTZWxlY3RvckZ1bmN0aW9ucyA9IHNlbGVjdG9yc1RvQXBwbHkubWFwKHNlbGVjdG9yID0+IHtcbiAgICBjb25zdCBmYWN0b3J5ID0gZ2V0Um9vdFNlbGVjdG9yRmFjdG9yeShzZWxlY3Rvcik7XG4gICAgcmV0dXJuIGZhY3RvcnkoY29udGV4dCk7XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHNlbGVjdG9yT3B0aW9ucyxcbiAgICBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldExvY2FsU2VsZWN0b3JPcHRpb25zKFxuICBzZWxlY3Rvck1ldGFEYXRhOiBTZWxlY3Rvck1ldGFEYXRhTW9kZWwsXG4gIGV4cGxpY2l0T3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zXG4pOiBTaGFyZWRTZWxlY3Rvck9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIC4uLihzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IuZ2V0T3B0aW9ucyhzZWxlY3Rvck1ldGFEYXRhLmNvbnRhaW5lckNsYXNzKSB8fCB7fSksXG4gICAgLi4uKHNlbGVjdG9yT3B0aW9uc01ldGFBY2Nlc3Nvci5nZXRPcHRpb25zKHNlbGVjdG9yTWV0YURhdGEub3JpZ2luYWxGbikgfHwge30pLFxuICAgIC4uLihzZWxlY3Rvck1ldGFEYXRhLmdldFNlbGVjdG9yT3B0aW9ucygpIHx8IHt9KSxcbiAgICAuLi5leHBsaWNpdE9wdGlvbnNcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U2VsZWN0b3JzVG9BcHBseShcbiAgc2VsZWN0b3JzOiBhbnlbXSB8IHVuZGVmaW5lZCA9IFtdLFxuICBzZWxlY3Rvck9wdGlvbnM6IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyxcbiAgY29udGFpbmVyQ2xhc3M6IGFueVxuKSB7XG4gIGNvbnN0IHNlbGVjdG9yc1RvQXBwbHkgPSBbXTtcbiAgY29uc3QgY2FuSW5qZWN0Q29udGFpbmVyU3RhdGUgPVxuICAgIHNlbGVjdG9ycy5sZW5ndGggPT09IDAgfHwgc2VsZWN0b3JPcHRpb25zLmluamVjdENvbnRhaW5lclN0YXRlO1xuICBpZiAoY29udGFpbmVyQ2xhc3MgJiYgY2FuSW5qZWN0Q29udGFpbmVyU3RhdGUpIHtcbiAgICAvLyBJZiB3ZSBhcmUgb24gYSBzdGF0ZSBjbGFzcywgYWRkIGl0IGFzIHRoZSBmaXJzdCBzZWxlY3RvciBwYXJhbWV0ZXJcbiAgICBjb25zdCBtZXRhZGF0YSA9IGdldFN0b3JlTWV0YWRhdGEoY29udGFpbmVyQ2xhc3MpO1xuICAgIGlmIChtZXRhZGF0YSkge1xuICAgICAgc2VsZWN0b3JzVG9BcHBseS5wdXNoKGNvbnRhaW5lckNsYXNzKTtcbiAgICB9XG4gIH1cbiAgaWYgKHNlbGVjdG9ycykge1xuICAgIHNlbGVjdG9yc1RvQXBwbHkucHVzaCguLi5zZWxlY3RvcnMpO1xuICB9XG4gIHJldHVybiBzZWxlY3RvcnNUb0FwcGx5O1xufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gZ2V0cyB0aGUgZmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgdGhlIHNlbGVjdG9yIHRvIGdldCB0aGUgc2VsZWN0ZWQgc2xpY2UgZnJvbSB0aGUgYXBwIHN0YXRlXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb290U2VsZWN0b3JGYWN0b3J5KHNlbGVjdG9yOiBhbnkpOiBTZWxlY3RvckZhY3Rvcnkge1xuICBjb25zdCBtZXRhZGF0YSA9IGdldFNlbGVjdG9yTWV0YWRhdGEoc2VsZWN0b3IpIHx8IGdldFN0b3JlTWV0YWRhdGEoc2VsZWN0b3IpO1xuICByZXR1cm4gKG1ldGFkYXRhICYmIG1ldGFkYXRhLm1ha2VSb290U2VsZWN0b3IpIHx8ICgoKSA9PiBzZWxlY3Rvcik7XG59XG4iXX0=
@@ -1,17 +1,6 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
1
  import { getStoreMetadata } from '../internal/internals';
6
2
  import { throwStateDecoratorError, throwStateNameError, throwStateNamePropertyError, throwStateUniqueError } from '../configs/messages.config';
7
- /**
8
- * @abstract
9
- */
10
3
  export class StoreValidators {
11
- /**
12
- * @param {?} name
13
- * @return {?}
14
- */
15
4
  static checkThatStateIsNamedCorrectly(name) {
16
5
  if (!name) {
17
6
  throwStateNamePropertyError();
@@ -20,41 +9,19 @@ export class StoreValidators {
20
9
  throwStateNameError(name);
21
10
  }
22
11
  }
23
- /**
24
- * @param {?} stateName
25
- * @param {?} state
26
- * @param {?} statesByName
27
- * @return {?}
28
- */
29
12
  static checkThatStateNameIsUnique(stateName, state, statesByName) {
30
- /** @type {?} */
31
13
  const existingState = statesByName[stateName];
32
14
  if (existingState && existingState !== state) {
33
15
  throwStateUniqueError(stateName, state.name, existingState.name);
34
16
  }
35
17
  }
36
- /**
37
- * @param {?} stateClasses
38
- * @return {?}
39
- */
40
18
  static checkThatStateClassesHaveBeenDecorated(stateClasses) {
41
- stateClasses.forEach((/**
42
- * @param {?} stateClass
43
- * @return {?}
44
- */
45
- (stateClass) => {
19
+ stateClasses.forEach((stateClass) => {
46
20
  if (!getStoreMetadata(stateClass)) {
47
21
  throwStateDecoratorError(stateClass.name);
48
22
  }
49
- }));
23
+ });
50
24
  }
51
25
  }
52
26
  StoreValidators.stateNameRegex = new RegExp('^[a-zA-Z0-9_]+$');
53
- if (false) {
54
- /**
55
- * @type {?}
56
- * @private
57
- */
58
- StoreValidators.stateNameRegex;
59
- }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL3V0aWxzL3N0b3JlLXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBb0MsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQiwyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3RCLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFcEMsTUFBTSxPQUFnQixlQUFlOzs7OztJQUduQyxNQUFNLENBQUMsOEJBQThCLENBQUMsSUFBbUI7UUFDdkQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULDJCQUEyQixFQUFFLENBQUM7U0FDL0I7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs7Ozs7O0lBRUQsTUFBTSxDQUFDLDBCQUEwQixDQUMvQixTQUFpQixFQUNqQixLQUF5QixFQUN6QixZQUEwQjs7Y0FFcEIsYUFBYSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDN0MsSUFBSSxhQUFhLElBQUksYUFBYSxLQUFLLEtBQUssRUFBRTtZQUM1QyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEU7SUFDSCxDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxzQ0FBc0MsQ0FDM0MsWUFBa0M7UUFFbEMsWUFBWSxDQUFDLE9BQU87Ozs7UUFBQyxDQUFDLFVBQThCLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2pDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMzQztRQUNILENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7QUE3QmMsOEJBQWMsR0FBVyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDOzs7Ozs7SUFBdEUsK0JBQXNFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0U3RvcmVNZXRhZGF0YSwgU3RhdGVDbGFzc0ludGVybmFsLCBTdGF0ZXNCeU5hbWUgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHtcbiAgdGhyb3dTdGF0ZURlY29yYXRvckVycm9yLFxuICB0aHJvd1N0YXRlTmFtZUVycm9yLFxuICB0aHJvd1N0YXRlTmFtZVByb3BlcnR5RXJyb3IsXG4gIHRocm93U3RhdGVVbmlxdWVFcnJvclxufSBmcm9tICcuLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTdG9yZVZhbGlkYXRvcnMge1xuICBwcml2YXRlIHN0YXRpYyBzdGF0ZU5hbWVSZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cCgnXlthLXpBLVowLTlfXSskJyk7XG5cbiAgc3RhdGljIGNoZWNrVGhhdFN0YXRlSXNOYW1lZENvcnJlY3RseShuYW1lOiBzdHJpbmcgfCBudWxsKTogdm9pZCB8IG5ldmVyIHtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHRocm93U3RhdGVOYW1lUHJvcGVydHlFcnJvcigpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuc3RhdGVOYW1lUmVnZXgudGVzdChuYW1lKSkge1xuICAgICAgdGhyb3dTdGF0ZU5hbWVFcnJvcihuYW1lKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgY2hlY2tUaGF0U3RhdGVOYW1lSXNVbmlxdWUoXG4gICAgc3RhdGVOYW1lOiBzdHJpbmcsXG4gICAgc3RhdGU6IFN0YXRlQ2xhc3NJbnRlcm5hbCxcbiAgICBzdGF0ZXNCeU5hbWU6IFN0YXRlc0J5TmFtZVxuICApOiB2b2lkIHwgbmV2ZXIge1xuICAgIGNvbnN0IGV4aXN0aW5nU3RhdGUgPSBzdGF0ZXNCeU5hbWVbc3RhdGVOYW1lXTtcbiAgICBpZiAoZXhpc3RpbmdTdGF0ZSAmJiBleGlzdGluZ1N0YXRlICE9PSBzdGF0ZSkge1xuICAgICAgdGhyb3dTdGF0ZVVuaXF1ZUVycm9yKHN0YXRlTmFtZSwgc3RhdGUubmFtZSwgZXhpc3RpbmdTdGF0ZS5uYW1lKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgY2hlY2tUaGF0U3RhdGVDbGFzc2VzSGF2ZUJlZW5EZWNvcmF0ZWQoXG4gICAgc3RhdGVDbGFzc2VzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXVxuICApOiB2b2lkIHwgbmV2ZXIge1xuICAgIHN0YXRlQ2xhc3Nlcy5mb3JFYWNoKChzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwpID0+IHtcbiAgICAgIGlmICghZ2V0U3RvcmVNZXRhZGF0YShzdGF0ZUNsYXNzKSkge1xuICAgICAgICB0aHJvd1N0YXRlRGVjb3JhdG9yRXJyb3Ioc3RhdGVDbGFzcy5uYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy91dGlscy9zdG9yZS12YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBb0MsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQiwyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3RCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsTUFBTSxPQUFnQixlQUFlO0lBR25DLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxJQUFtQjtRQUN2RCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsMkJBQTJCLEVBQUUsQ0FBQztTQUMvQjthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsMEJBQTBCLENBQy9CLFNBQWlCLEVBQ2pCLEtBQXlCLEVBQ3pCLFlBQTBCO1FBRTFCLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxJQUFJLGFBQWEsSUFBSSxhQUFhLEtBQUssS0FBSyxFQUFFO1lBQzVDLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsRTtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsc0NBQXNDLENBQzNDLFlBQWtDO1FBRWxDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUE4QixFQUFFLEVBQUU7WUFDdEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNqQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0M7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBN0JjLDhCQUFjLEdBQUcsSUFBSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFN0b3JlTWV0YWRhdGEsIFN0YXRlQ2xhc3NJbnRlcm5hbCwgU3RhdGVzQnlOYW1lIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcbmltcG9ydCB7XG4gIHRocm93U3RhdGVEZWNvcmF0b3JFcnJvcixcbiAgdGhyb3dTdGF0ZU5hbWVFcnJvcixcbiAgdGhyb3dTdGF0ZU5hbWVQcm9wZXJ0eUVycm9yLFxuICB0aHJvd1N0YXRlVW5pcXVlRXJyb3Jcbn0gZnJvbSAnLi4vY29uZmlncy9tZXNzYWdlcy5jb25maWcnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3RvcmVWYWxpZGF0b3JzIHtcbiAgcHJpdmF0ZSBzdGF0aWMgc3RhdGVOYW1lUmVnZXggPSBuZXcgUmVnRXhwKCdeW2EtekEtWjAtOV9dKyQnKTtcblxuICBzdGF0aWMgY2hlY2tUaGF0U3RhdGVJc05hbWVkQ29ycmVjdGx5KG5hbWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHwgbmV2ZXIge1xuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhyb3dTdGF0ZU5hbWVQcm9wZXJ0eUVycm9yKCk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5zdGF0ZU5hbWVSZWdleC50ZXN0KG5hbWUpKSB7XG4gICAgICB0aHJvd1N0YXRlTmFtZUVycm9yKG5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjaGVja1RoYXRTdGF0ZU5hbWVJc1VuaXF1ZShcbiAgICBzdGF0ZU5hbWU6IHN0cmluZyxcbiAgICBzdGF0ZTogU3RhdGVDbGFzc0ludGVybmFsLFxuICAgIHN0YXRlc0J5TmFtZTogU3RhdGVzQnlOYW1lXG4gICk6IHZvaWQgfCBuZXZlciB7XG4gICAgY29uc3QgZXhpc3RpbmdTdGF0ZSA9IHN0YXRlc0J5TmFtZVtzdGF0ZU5hbWVdO1xuICAgIGlmIChleGlzdGluZ1N0YXRlICYmIGV4aXN0aW5nU3RhdGUgIT09IHN0YXRlKSB7XG4gICAgICB0aHJvd1N0YXRlVW5pcXVlRXJyb3Ioc3RhdGVOYW1lLCBzdGF0ZS5uYW1lLCBleGlzdGluZ1N0YXRlLm5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjaGVja1RoYXRTdGF0ZUNsYXNzZXNIYXZlQmVlbkRlY29yYXRlZChcbiAgICBzdGF0ZUNsYXNzZXM6IFN0YXRlQ2xhc3NJbnRlcm5hbFtdXG4gICk6IHZvaWQgfCBuZXZlciB7XG4gICAgc3RhdGVDbGFzc2VzLmZvckVhY2goKHN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCkgPT4ge1xuICAgICAgaWYgKCFnZXRTdG9yZU1ldGFkYXRhKHN0YXRlQ2xhc3MpKSB7XG4gICAgICAgIHRocm93U3RhdGVEZWNvcmF0b3JFcnJvcihzdGF0ZUNsYXNzLm5hbWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,12 +1,6 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
1
  /**
6
2
  * Returns the type from an action instance/class.
7
3
  * @ignore
8
- * @param {?} action
9
- * @return {?}
10
4
  */
11
5
  export function getActionTypeFromInstance(action) {
12
6
  if (action.constructor && action.constructor.type) {
@@ -19,19 +13,12 @@ export function getActionTypeFromInstance(action) {
19
13
  /**
20
14
  * Matches a action
21
15
  * @ignore
22
- * @param {?} action1
23
- * @return {?}
24
16
  */
25
17
  export function actionMatcher(action1) {
26
- /** @type {?} */
27
18
  const type1 = getActionTypeFromInstance(action1);
28
- return (/**
29
- * @param {?} action2
30
- * @return {?}
31
- */
32
- function (action2) {
19
+ return function (action2) {
33
20
  return type1 === getActionTypeFromInstance(action2);
34
- });
21
+ };
35
22
  }
36
23
  /**
37
24
  * Set a deeply nested value. Example:
@@ -42,27 +29,12 @@ export function actionMatcher(action1) {
42
29
  * While it traverses it also creates new objects from top down.
43
30
  *
44
31
  * @ignore
45
- * @type {?}
46
32
  */
47
- export const setValue = (/**
48
- * @param {?} obj
49
- * @param {?} prop
50
- * @param {?} val
51
- * @return {?}
52
- */
53
- (obj, prop, val) => {
33
+ export const setValue = (obj, prop, val) => {
54
34
  obj = Object.assign({}, obj);
55
- /** @type {?} */
56
35
  const split = prop.split('.');
57
- /** @type {?} */
58
36
  const lastIndex = split.length - 1;
59
- split.reduce((/**
60
- * @param {?} acc
61
- * @param {?} part
62
- * @param {?} index
63
- * @return {?}
64
- */
65
- (acc, part, index) => {
37
+ split.reduce((acc, part, index) => {
66
38
  if (index === lastIndex) {
67
39
  acc[part] = val;
68
40
  }
@@ -70,28 +42,17 @@ export const setValue = (/**
70
42
  acc[part] = Array.isArray(acc[part]) ? acc[part].slice() : Object.assign({}, acc[part]);
71
43
  }
72
44
  return acc && acc[part];
73
- }), obj);
45
+ }, obj);
74
46
  return obj;
75
- });
47
+ };
76
48
  /**
77
49
  * Get a deeply nested value. Example:
78
50
  *
79
51
  * getValue({ foo: bar: [] }, 'foo.bar') //=> []
80
52
  *
81
53
  * @ignore
82
- * @type {?}
83
- */
84
- export const getValue = (/**
85
- * @param {?} obj
86
- * @param {?} prop
87
- * @return {?}
88
54
  */
89
- (obj, prop) => prop.split('.').reduce((/**
90
- * @param {?} acc
91
- * @param {?} part
92
- * @return {?}
93
- */
94
- (acc, part) => acc && acc[part]), obj));
55
+ export const getValue = (obj, prop) => prop.split('.').reduce((acc, part) => acc && acc[part], obj);
95
56
  /**
96
57
  * Simple object check.
97
58
  *
@@ -99,32 +60,20 @@ export const getValue = (/**
99
60
  * isObject(1) //=> false
100
61
  *
101
62
  * @ignore
102
- * @type {?}
103
- */
104
- export const isObject = (/**
105
- * @param {?} item
106
- * @return {?}
107
63
  */
108
- (item) => {
64
+ export const isObject = (item) => {
109
65
  return item && typeof item === 'object' && !Array.isArray(item);
110
- });
66
+ };
111
67
  /**
112
68
  * Deep merge two objects.
113
69
  *
114
70
  * mergeDeep({a:1, b:{x: 1, y:2}}, {b:{x: 3}, c:4}) //=> {a:1, b:{x:3, y:2}, c:4}
115
71
  *
116
- * \@param base base object onto which `sources` will be applied
117
- * @type {?}
118
- */
119
- export const mergeDeep = (/**
120
- * @param {?} base
121
- * @param {...?} sources
122
- * @return {?}
72
+ * @param base base object onto which `sources` will be applied
123
73
  */
124
- (base, ...sources) => {
74
+ export const mergeDeep = (base, ...sources) => {
125
75
  if (!sources.length)
126
76
  return base;
127
- /** @type {?} */
128
77
  const source = sources.shift();
129
78
  if (isObject(base) && isObject(source)) {
130
79
  for (const key in source) {
@@ -139,5 +88,5 @@ export const mergeDeep = (/**
139
88
  }
140
89
  }
141
90
  return mergeDeep(base, ...sources);
142
- });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy91dGlscy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBSUEsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE1BQVc7SUFDbkQsSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO1FBQ2pELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7S0FDaEM7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztLQUNwQjtBQUNILENBQUM7Ozs7Ozs7QUFNRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQVk7O1VBQ2xDLEtBQUssR0FBRyx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7SUFFaEQ7Ozs7SUFBTyxVQUFTLE9BQVk7UUFDMUIsT0FBTyxLQUFLLEtBQUsseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQyxFQUFDO0FBQ0osQ0FBQzs7Ozs7Ozs7Ozs7O0FBWUQsTUFBTSxPQUFPLFFBQVE7Ozs7OztBQUFHLENBQUMsR0FBUSxFQUFFLElBQVksRUFBRSxHQUFRLEVBQUUsRUFBRTtJQUMzRCxHQUFHLHFCQUFRLEdBQUcsQ0FBRSxDQUFDOztVQUVYLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQzs7VUFDdkIsU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztJQUVsQyxLQUFLLENBQUMsTUFBTTs7Ozs7O0lBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2hDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ2pCO2FBQU07WUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsbUJBQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFFLENBQUM7U0FDN0U7UUFFRCxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRVIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUE7Ozs7Ozs7OztBQVNELE1BQU0sT0FBTyxRQUFROzs7OztBQUFHLENBQUMsR0FBUSxFQUFFLElBQVksRUFBTyxFQUFFLENBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTTs7Ozs7QUFBQyxDQUFDLEdBQVEsRUFBRSxJQUFZLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUE7Ozs7Ozs7Ozs7QUFVM0UsTUFBTSxPQUFPLFFBQVE7Ozs7QUFBRyxDQUFDLElBQVMsRUFBRSxFQUFFO0lBQ3BDLE9BQU8sSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEUsQ0FBQyxDQUFBOzs7Ozs7Ozs7QUFTRCxNQUFNLE9BQU8sU0FBUzs7Ozs7QUFBRyxDQUFDLElBQVMsRUFBRSxHQUFHLE9BQWMsRUFBTyxFQUFFO0lBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDOztVQUMzQixNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRTtJQUU5QixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7WUFDeEIsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO29CQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ25DO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzdDO1NBQ0Y7S0FDRjtJQUVELE9BQU8sU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmV0dXJucyB0aGUgdHlwZSBmcm9tIGFuIGFjdGlvbiBpbnN0YW5jZS9jbGFzcy5cbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoYWN0aW9uOiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoYWN0aW9uLmNvbnN0cnVjdG9yICYmIGFjdGlvbi5jb25zdHJ1Y3Rvci50eXBlKSB7XG4gICAgcmV0dXJuIGFjdGlvbi5jb25zdHJ1Y3Rvci50eXBlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBhY3Rpb24udHlwZTtcbiAgfVxufVxuXG4vKipcbiAqIE1hdGNoZXMgYSBhY3Rpb25cbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbk1hdGNoZXIoYWN0aW9uMTogYW55KSB7XG4gIGNvbnN0IHR5cGUxID0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb24xKTtcblxuICByZXR1cm4gZnVuY3Rpb24oYWN0aW9uMjogYW55KSB7XG4gICAgcmV0dXJuIHR5cGUxID09PSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvbjIpO1xuICB9O1xufVxuXG4vKipcbiAqIFNldCBhIGRlZXBseSBuZXN0ZWQgdmFsdWUuIEV4YW1wbGU6XG4gKlxuICogICBzZXRWYWx1ZSh7IGZvbzogeyBiYXI6IHsgZWF0OiBmYWxzZSB9IH0gfSxcbiAqICAgICAgJ2Zvby5iYXIuZWF0JywgdHJ1ZSkgLy89PiB7IGZvbzogeyBiYXI6IHsgZWF0OiB0cnVlIH0gfSB9XG4gKlxuICogV2hpbGUgaXQgdHJhdmVyc2VzIGl0IGFsc28gY3JlYXRlcyBuZXcgb2JqZWN0cyBmcm9tIHRvcCBkb3duLlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IHNldFZhbHVlID0gKG9iajogYW55LCBwcm9wOiBzdHJpbmcsIHZhbDogYW55KSA9PiB7XG4gIG9iaiA9IHsgLi4ub2JqIH07XG5cbiAgY29uc3Qgc3BsaXQgPSBwcm9wLnNwbGl0KCcuJyk7XG4gIGNvbnN0IGxhc3RJbmRleCA9IHNwbGl0Lmxlbmd0aCAtIDE7XG5cbiAgc3BsaXQucmVkdWNlKChhY2MsIHBhcnQsIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSBsYXN0SW5kZXgpIHtcbiAgICAgIGFjY1twYXJ0XSA9IHZhbDtcbiAgICB9IGVsc2Uge1xuICAgICAgYWNjW3BhcnRdID0gQXJyYXkuaXNBcnJheShhY2NbcGFydF0pID8gYWNjW3BhcnRdLnNsaWNlKCkgOiB7IC4uLmFjY1twYXJ0XSB9O1xuICAgIH1cblxuICAgIHJldHVybiBhY2MgJiYgYWNjW3BhcnRdO1xuICB9LCBvYmopO1xuXG4gIHJldHVybiBvYmo7XG59O1xuXG4vKipcbiAqIEdldCBhIGRlZXBseSBuZXN0ZWQgdmFsdWUuIEV4YW1wbGU6XG4gKlxuICogICAgZ2V0VmFsdWUoeyBmb286IGJhcjogW10gfSwgJ2Zvby5iYXInKSAvLz0+IFtdXG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgY29uc3QgZ2V0VmFsdWUgPSAob2JqOiBhbnksIHByb3A6IHN0cmluZyk6IGFueSA9PlxuICBwcm9wLnNwbGl0KCcuJykucmVkdWNlKChhY2M6IGFueSwgcGFydDogc3RyaW5nKSA9PiBhY2MgJiYgYWNjW3BhcnRdLCBvYmopO1xuXG4vKipcbiAqIFNpbXBsZSBvYmplY3QgY2hlY2suXG4gKlxuICogICAgaXNPYmplY3Qoe2E6MX0pIC8vPT4gdHJ1ZVxuICogICAgaXNPYmplY3QoMSkgLy89PiBmYWxzZVxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IGlzT2JqZWN0ID0gKGl0ZW06IGFueSkgPT4ge1xuICByZXR1cm4gaXRlbSAmJiB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSk7XG59O1xuXG4vKipcbiAqIERlZXAgbWVyZ2UgdHdvIG9iamVjdHMuXG4gKlxuICogICAgbWVyZ2VEZWVwKHthOjEsIGI6e3g6IDEsIHk6Mn19LCB7Yjp7eDogM30sIGM6NH0pIC8vPT4ge2E6MSwgYjp7eDozLCB5OjJ9LCBjOjR9XG4gKlxuICogQHBhcmFtIGJhc2UgYmFzZSBvYmplY3Qgb250byB3aGljaCBgc291cmNlc2Agd2lsbCBiZSBhcHBsaWVkXG4gKi9cbmV4cG9ydCBjb25zdCBtZXJnZURlZXAgPSAoYmFzZTogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSk6IGFueSA9PiB7XG4gIGlmICghc291cmNlcy5sZW5ndGgpIHJldHVybiBiYXNlO1xuICBjb25zdCBzb3VyY2UgPSBzb3VyY2VzLnNoaWZ0KCk7XG5cbiAgaWYgKGlzT2JqZWN0KGJhc2UpICYmIGlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgaWYgKCFiYXNlW2tleV0pIE9iamVjdC5hc3NpZ24oYmFzZSwgeyBba2V5XToge30gfSk7XG4gICAgICAgIG1lcmdlRGVlcChiYXNlW2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oYmFzZSwgeyBba2V5XTogc291cmNlW2tleV0gfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1lcmdlRGVlcChiYXNlLCAuLi5zb3VyY2VzKTtcbn07XG4iXX0=
91
+ };
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE1BQVc7SUFDbkQsSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO1FBQ2pELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7S0FDaEM7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztLQUNwQjtBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQVk7SUFDeEMsTUFBTSxLQUFLLEdBQUcseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakQsT0FBTyxVQUFTLE9BQVk7UUFDMUIsT0FBTyxLQUFLLEtBQUsseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVEsRUFBRSxJQUFZLEVBQUUsR0FBUSxFQUFFLEVBQUU7SUFDM0QsR0FBRyxxQkFBUSxHQUFHLENBQUUsQ0FBQztJQUVqQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRW5DLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2hDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ2pCO2FBQU07WUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsbUJBQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFFLENBQUM7U0FDN0U7UUFFRCxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRVIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFRLEVBQUUsSUFBWSxFQUFPLEVBQUUsQ0FDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRTVFOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRTtJQUNwQyxPQUFPLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQVMsRUFBRSxHQUFHLE9BQWMsRUFBTyxFQUFFO0lBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ2pDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUUvQixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7WUFDeEIsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO29CQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ25DO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzdDO1NBQ0Y7S0FDRjtJQUVELE9BQU8sU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmV0dXJucyB0aGUgdHlwZSBmcm9tIGFuIGFjdGlvbiBpbnN0YW5jZS9jbGFzcy5cbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoYWN0aW9uOiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoYWN0aW9uLmNvbnN0cnVjdG9yICYmIGFjdGlvbi5jb25zdHJ1Y3Rvci50eXBlKSB7XG4gICAgcmV0dXJuIGFjdGlvbi5jb25zdHJ1Y3Rvci50eXBlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBhY3Rpb24udHlwZTtcbiAgfVxufVxuXG4vKipcbiAqIE1hdGNoZXMgYSBhY3Rpb25cbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbk1hdGNoZXIoYWN0aW9uMTogYW55KSB7XG4gIGNvbnN0IHR5cGUxID0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb24xKTtcblxuICByZXR1cm4gZnVuY3Rpb24oYWN0aW9uMjogYW55KSB7XG4gICAgcmV0dXJuIHR5cGUxID09PSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvbjIpO1xuICB9O1xufVxuXG4vKipcbiAqIFNldCBhIGRlZXBseSBuZXN0ZWQgdmFsdWUuIEV4YW1wbGU6XG4gKlxuICogICBzZXRWYWx1ZSh7IGZvbzogeyBiYXI6IHsgZWF0OiBmYWxzZSB9IH0gfSxcbiAqICAgICAgJ2Zvby5iYXIuZWF0JywgdHJ1ZSkgLy89PiB7IGZvbzogeyBiYXI6IHsgZWF0OiB0cnVlIH0gfSB9XG4gKlxuICogV2hpbGUgaXQgdHJhdmVyc2VzIGl0IGFsc28gY3JlYXRlcyBuZXcgb2JqZWN0cyBmcm9tIHRvcCBkb3duLlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IHNldFZhbHVlID0gKG9iajogYW55LCBwcm9wOiBzdHJpbmcsIHZhbDogYW55KSA9PiB7XG4gIG9iaiA9IHsgLi4ub2JqIH07XG5cbiAgY29uc3Qgc3BsaXQgPSBwcm9wLnNwbGl0KCcuJyk7XG4gIGNvbnN0IGxhc3RJbmRleCA9IHNwbGl0Lmxlbmd0aCAtIDE7XG5cbiAgc3BsaXQucmVkdWNlKChhY2MsIHBhcnQsIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSBsYXN0SW5kZXgpIHtcbiAgICAgIGFjY1twYXJ0XSA9IHZhbDtcbiAgICB9IGVsc2Uge1xuICAgICAgYWNjW3BhcnRdID0gQXJyYXkuaXNBcnJheShhY2NbcGFydF0pID8gYWNjW3BhcnRdLnNsaWNlKCkgOiB7IC4uLmFjY1twYXJ0XSB9O1xuICAgIH1cblxuICAgIHJldHVybiBhY2MgJiYgYWNjW3BhcnRdO1xuICB9LCBvYmopO1xuXG4gIHJldHVybiBvYmo7XG59O1xuXG4vKipcbiAqIEdldCBhIGRlZXBseSBuZXN0ZWQgdmFsdWUuIEV4YW1wbGU6XG4gKlxuICogICAgZ2V0VmFsdWUoeyBmb286IGJhcjogW10gfSwgJ2Zvby5iYXInKSAvLz0+IFtdXG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgY29uc3QgZ2V0VmFsdWUgPSAob2JqOiBhbnksIHByb3A6IHN0cmluZyk6IGFueSA9PlxuICBwcm9wLnNwbGl0KCcuJykucmVkdWNlKChhY2M6IGFueSwgcGFydDogc3RyaW5nKSA9PiBhY2MgJiYgYWNjW3BhcnRdLCBvYmopO1xuXG4vKipcbiAqIFNpbXBsZSBvYmplY3QgY2hlY2suXG4gKlxuICogICAgaXNPYmplY3Qoe2E6MX0pIC8vPT4gdHJ1ZVxuICogICAgaXNPYmplY3QoMSkgLy89PiBmYWxzZVxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IGlzT2JqZWN0ID0gKGl0ZW06IGFueSkgPT4ge1xuICByZXR1cm4gaXRlbSAmJiB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSk7XG59O1xuXG4vKipcbiAqIERlZXAgbWVyZ2UgdHdvIG9iamVjdHMuXG4gKlxuICogICAgbWVyZ2VEZWVwKHthOjEsIGI6e3g6IDEsIHk6Mn19LCB7Yjp7eDogM30sIGM6NH0pIC8vPT4ge2E6MSwgYjp7eDozLCB5OjJ9LCBjOjR9XG4gKlxuICogQHBhcmFtIGJhc2UgYmFzZSBvYmplY3Qgb250byB3aGljaCBgc291cmNlc2Agd2lsbCBiZSBhcHBsaWVkXG4gKi9cbmV4cG9ydCBjb25zdCBtZXJnZURlZXAgPSAoYmFzZTogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSk6IGFueSA9PiB7XG4gIGlmICghc291cmNlcy5sZW5ndGgpIHJldHVybiBiYXNlO1xuICBjb25zdCBzb3VyY2UgPSBzb3VyY2VzLnNoaWZ0KCk7XG5cbiAgaWYgKGlzT2JqZWN0KGJhc2UpICYmIGlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgaWYgKCFiYXNlW2tleV0pIE9iamVjdC5hc3NpZ24oYmFzZSwgeyBba2V5XToge30gfSk7XG4gICAgICAgIG1lcmdlRGVlcChiYXNlW2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oYmFzZSwgeyBba2V5XTogc291cmNlW2tleV0gfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1lcmdlRGVlcChiYXNlLCAuLi5zb3VyY2VzKTtcbn07XG4iXX0=