@dcl/sdk 7.0.6-3999809037.commit-0a47a3c → 7.0.6-4009020955.commit-08722f5

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 (94) hide show
  1. package/cli/commands/build/helpers.d.ts +25 -0
  2. package/cli/commands/build/helpers.js +50 -0
  3. package/cli/commands/build/helpers.ts +95 -0
  4. package/cli/commands/build/index.d.ts +19 -0
  5. package/cli/commands/build/index.js +64 -0
  6. package/cli/commands/build/index.ts +91 -0
  7. package/cli/commands/init/index.d.ts +3 -1
  8. package/cli/commands/init/index.js +9 -15
  9. package/cli/commands/init/index.ts +12 -16
  10. package/cli/commands/init/repos.js +1 -1
  11. package/cli/commands/init/repos.ts +1 -2
  12. package/cli/commands/preview/bff.d.ts +3 -0
  13. package/cli/commands/preview/bff.js +50 -0
  14. package/cli/commands/preview/bff.ts +59 -0
  15. package/cli/commands/preview/catalyst.d.ts +5 -0
  16. package/cli/commands/preview/catalyst.js +24 -0
  17. package/cli/commands/preview/catalyst.ts +31 -0
  18. package/cli/commands/preview/coordinates.d.ts +20 -0
  19. package/cli/commands/preview/coordinates.js +90 -0
  20. package/cli/commands/preview/coordinates.ts +146 -0
  21. package/cli/commands/preview/endpoints.d.ts +10 -0
  22. package/cli/commands/preview/endpoints.js +500 -0
  23. package/cli/commands/preview/endpoints.ts +594 -0
  24. package/cli/commands/preview/eth.d.ts +2 -0
  25. package/cli/commands/preview/eth.js +6 -0
  26. package/cli/commands/preview/eth.ts +3 -0
  27. package/cli/commands/preview/index.d.ts +18 -0
  28. package/cli/commands/preview/index.js +75 -0
  29. package/cli/commands/preview/index.ts +88 -0
  30. package/cli/commands/preview/port.d.ts +1 -0
  31. package/cli/commands/preview/port.js +21 -0
  32. package/cli/commands/preview/port.ts +15 -0
  33. package/cli/commands/preview/project.d.ts +14 -0
  34. package/cli/commands/preview/project.js +77 -0
  35. package/cli/commands/preview/project.ts +112 -0
  36. package/cli/commands/preview/types.d.ts +13 -0
  37. package/cli/commands/preview/types.js +3 -0
  38. package/cli/commands/preview/types.ts +19 -0
  39. package/cli/commands/preview/wire.d.ts +14 -0
  40. package/cli/commands/preview/wire.js +28 -0
  41. package/cli/commands/preview/wire.ts +48 -0
  42. package/cli/commands/preview/ws.d.ts +7 -0
  43. package/cli/commands/preview/ws.js +16 -0
  44. package/cli/commands/preview/ws.ts +24 -0
  45. package/cli/commands/start/index.d.ts +29 -0
  46. package/cli/commands/start/index.js +121 -0
  47. package/cli/commands/start/index.ts +132 -0
  48. package/cli/components/fetch.d.ts +5 -0
  49. package/cli/components/fetch.js +34 -0
  50. package/cli/components/fetch.ts +11 -0
  51. package/cli/components/fs.d.ts +11 -0
  52. package/cli/components/fs.js +58 -0
  53. package/cli/components/fs.ts +48 -0
  54. package/cli/components/index.d.ts +7 -0
  55. package/cli/components/index.js +13 -0
  56. package/cli/components/index.ts +14 -0
  57. package/cli/index.d.ts +2 -0
  58. package/cli/index.js +8 -8
  59. package/cli/index.ts +15 -12
  60. package/cli/utils/args.js +2 -2
  61. package/cli/utils/args.ts +2 -8
  62. package/cli/utils/commands.d.ts +2 -1
  63. package/cli/utils/commands.js +8 -8
  64. package/cli/utils/commands.ts +11 -11
  65. package/cli/utils/exec.d.ts +8 -0
  66. package/cli/utils/exec.js +33 -0
  67. package/cli/utils/exec.ts +38 -0
  68. package/cli/utils/fs.d.ts +9 -8
  69. package/cli/utils/fs.js +7 -47
  70. package/cli/utils/fs.ts +11 -67
  71. package/cli/utils/handler.d.ts +6 -0
  72. package/cli/utils/handler.js +19 -0
  73. package/cli/utils/handler.ts +23 -0
  74. package/cli/utils/object.d.ts +9 -0
  75. package/cli/utils/object.js +45 -0
  76. package/cli/utils/object.ts +62 -0
  77. package/cli/utils/out-messages.d.ts +1 -0
  78. package/cli/utils/out-messages.js +8 -0
  79. package/cli/utils/out-messages.ts +3 -0
  80. package/internal/Observable.js +3 -7
  81. package/internal/provider.js +1 -1
  82. package/internal/transports/rendererTransport.js +2 -3
  83. package/messageBus.js +1 -1
  84. package/observables.js +1 -1
  85. package/package.json +18 -7
  86. package/src/internal/Observable.ts +9 -44
  87. package/src/internal/provider.ts +3 -11
  88. package/src/internal/transports/rendererTransport.ts +4 -12
  89. package/src/messageBus.ts +1 -4
  90. package/src/observables.ts +27 -63
  91. package/tsconfig.cli.json +10 -1
  92. package/cli/utils/spinner.d.ts +0 -15
  93. package/cli/utils/spinner.js +0 -41
  94. package/cli/utils/spinner.ts +0 -44
@@ -0,0 +1,62 @@
1
+ export type Primitive = string | number
2
+ export type Dict = { [key: string]: Dict | Primitive | Primitive[] }
3
+
4
+ /*
5
+ * Returns true if value is a "Primitive"
6
+ */
7
+ export const isPrimitive = (value: any): value is Primitive =>
8
+ (typeof value === 'string' && value.length > 0) || (typeof value === 'number' && !Number.isNaN(value))
9
+
10
+ /*
11
+ * Returns true if both parameters are equal
12
+ */
13
+ export const eqPrimitive = (value: Primitive, value2: Primitive): boolean => value === value2
14
+
15
+ /*
16
+ * Returns true if value is a JS Object
17
+ */
18
+ export const isObject = (value: any): value is Dict =>
19
+ typeof value === 'object' && !Array.isArray(value) && value !== null
20
+
21
+ /*
22
+ * Returns true if second paramter is a "Primitive" and equal to first parameter
23
+ */
24
+ export const isPrimitiveEqualTo = (val: Primitive, val2: any): val2 is Primitive =>
25
+ isPrimitive(val2) && eqPrimitive(val, val2)
26
+
27
+ /*
28
+ * Returns true if "original" has all of the props described in "comparator"
29
+ * NOTE: comparator can provide a list of valid "Primitives" to match values from "original"
30
+ * EX:
31
+ * original = { prop1: "some-val" }
32
+ * comparator = { prop1: [1, 2, "some-val"] }
33
+ * will return true
34
+ */
35
+ export const hasPrimitiveKeys = <T extends Dict>(original: Record<string, unknown>, comparator: T): boolean => {
36
+ for (const [key, value] of Object.entries(comparator)) {
37
+ const originalValue = original[key]
38
+ if (originalValue === undefined) {
39
+ return false
40
+ } else if (isPrimitive(value) && !isPrimitiveEqualTo(value, originalValue)) {
41
+ return false
42
+ } else if (Array.isArray(value)) {
43
+ if (Array.isArray(originalValue)) {
44
+ const set = new Set(value)
45
+ for (const v of originalValue) {
46
+ if (!set.has(v)) return false
47
+ }
48
+ } else {
49
+ const foundPrimitive = value.some((val) => isPrimitive(val) && isPrimitiveEqualTo(val, originalValue))
50
+ if (!foundPrimitive) {
51
+ return false
52
+ }
53
+ }
54
+ } else if (isObject(value)) {
55
+ if (isObject(originalValue) && !hasPrimitiveKeys(originalValue, value)) {
56
+ return false
57
+ }
58
+ }
59
+ }
60
+
61
+ return true
62
+ }
@@ -0,0 +1 @@
1
+ export declare function toStringList(strs: string[]): string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toStringList = void 0;
4
+ function toStringList(strs) {
5
+ return strs.map(($) => `\t* ${$}\n`).join('');
6
+ }
7
+ exports.toStringList = toStringList;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0LW1lc3NhZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsib3V0LW1lc3NhZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQWdCLFlBQVksQ0FBQyxJQUFjO0lBQ3pDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUMvQyxDQUFDO0FBRkQsb0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gdG9TdHJpbmdMaXN0KHN0cnM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0cnMubWFwKCgkKSA9PiBgXFx0KiAkeyR9XFxuYCkuam9pbignJylcbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export function toStringList(strs: string[]): string {
2
+ return strs.map(($) => `\t* ${$}\n`).join('')
3
+ }
@@ -61,8 +61,7 @@ export class Observable {
61
61
  }
62
62
  removeCallback(callback, scope) {
63
63
  for (let index = 0; index < this._observers.length; index++) {
64
- if (this._observers[index].callback === callback &&
65
- (!scope || scope === this._observers[index].scope)) {
64
+ if (this._observers[index].callback === callback && (!scope || scope === this._observers[index].scope)) {
66
65
  this._deferUnregister(this._observers[index]);
67
66
  return true;
68
67
  }
@@ -85,10 +84,7 @@ export class Observable {
85
84
  }
86
85
  if (obs.mask & mask) {
87
86
  if (obs.scope) {
88
- state.lastReturnValue = obs.callback.apply(obs.scope, [
89
- eventData,
90
- state
91
- ]);
87
+ state.lastReturnValue = obs.callback.apply(obs.scope, [eventData, state]);
92
88
  }
93
89
  else {
94
90
  state.lastReturnValue = obs.callback(eventData, state);
@@ -187,4 +183,4 @@ export class Observable {
187
183
  return false;
188
184
  }
189
185
  }
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2JzZXJ2YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcm5hbC9PYnNlcnZhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxrQkFBa0I7SUFrQzdCLFlBQ0UsSUFBWSxFQUNaLGlCQUFpQixHQUFHLEtBQUssRUFDekIsTUFBWSxFQUNaLGFBQW1CO1FBRW5CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQTtJQUNoRSxDQUFDO0lBVU0sU0FBUyxDQUNkLElBQVksRUFDWixpQkFBaUIsR0FBRyxLQUFLLEVBQ3pCLE1BQVksRUFDWixhQUFtQjtRQUVuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUE7UUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUE7UUFDbEMsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sUUFBUTtJQWVuQixZQUlTLFFBQWdFLEVBSWhFLElBQVksRUFJWixRQUFhLElBQUk7UUFSakIsYUFBUSxHQUFSLFFBQVEsQ0FBd0Q7UUFJaEUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUlaLFVBQUssR0FBTCxLQUFLLENBQVk7UUF2Qm5CLHlCQUFvQixHQUFHLEtBQUssQ0FBQTtRQUc1Qix3QkFBbUIsR0FBRyxLQUFLLENBQUE7SUFxQi9CLENBQUM7Q0FDTDtBQVlELE1BQU0sT0FBTyxVQUFVO0lBV3JCLFlBQVksZUFBaUQ7UUFWckQsZUFBVSxHQUFHLElBQUksS0FBSyxFQUFlLENBQUE7UUFJckMscUJBQWdCLEdBQTZDLElBQUksQ0FBQTtRQU92RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksa0JBQWtCLENBQUMsQ0FBQyxD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TyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2hFLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUlPLE9BQU8sQ0FBQyxRQUE0QjtRQUMxQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRS9DLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNoQyxPQUFPLElBQUksQ0FBQTtTQUNaO1FBRUQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgY2xhc3Mgc2VydmVzIGFzIGEgbWVkaXVtIGJldHdlZW4gdGhlIG9ic2VydmFibGUgYW5kIGl0cyBvYnNlcnZlcnNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWRcbiAqL1xuZXhwb3J0IGNsYXNzIE9ic2VydmVyRXZlbnRTdGF0ZSB7XG4gIC8qKlxuICAgKiBBbiBPYnNlcnZlciBjYW4gc2V0IHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSB0byBwcmV2ZW50IHN1YnNlcXVlbnQgb2JzZXJ2ZXJzIG9mIGJlaW5nIG5vdGlmaWVkXG4gICAqL1xuICBwdWJsaWMgc2tpcE5leHRPYnNlcnZlcnMhOiBib29sZWFuXG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWFzayB2YWx1ZSB0aGF0IHdlcmUgdXNlZCB0byB0cmlnZ2VyIHRoZSBldmVudCBjb3JyZXNwb25kaW5nIHRvIHRoaXMgRXZlbnRTdGF0ZSBvYmplY3RcbiAgICovXG4gIHB1YmxpYyBtYXNrITogbnVtYmVyXG5cbiAgLyoqXG4gICAqIFRoZSBvYmplY3QgdGhhdCBvcmlnaW5hbGx5IG5vdGlmaWVkIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHRhcmdldD86IGFueVxuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBvYmplY3QgaW4gdGhlIGJ1YmJsaW5nIHBoYXNlXG4gICAqL1xuICBwdWJsaWMgY3VycmVudFRhcmdldD86IGFueVxuXG4gIC8qKlxuICAgKiBUaGlzIHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgbGFzdCBmdW5jdGlvbiB0aGF0IHdhcyBleGVjdXRlZC5cbiAgICogSWYgaXQgaXMgdGhlIGZpcnN0IGZ1bmN0aW9uIGluIHRoZSBjYWxsYmFjayBjaGFpbiBpdCB3aWxsIGJlIHRoZSBldmVudCBkYXRhLlxuICAgKi9cbiAgcHVibGljIGxhc3RSZXR1cm5WYWx1ZT86IGFueVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgRXZlbnRTdGF0ZVxuICAgKiBAcGFyYW0gbWFzayAtIGRlZmluZXMgdGhlIG1hc2sgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc3RhdGVcbiAgICogQHBhcmFtIHNraXBOZXh0T2JzZXJ2ZXJzIC0gZGVmaW5lcyBhIGZsYWcgd2hpY2ggd2lsbCBpbnN0cnVjdCB0aGUgb2JzZXJ2YWJsZSB0byBza2lwIGZvbGxvd2luZyBvYnNlcnZlcnMgd2hlbiBzZXQgdG8gdHJ1ZVxuICAgKiBAcGFyYW0gdGFyZ2V0IC0gZGVmaW5lcyB0aGUgb3JpZ2luYWwgdGFyZ2V0IG9mIHRoZSBzdGF0ZVxuICAgKiBAcGFyYW0gY3VycmVudFRhcmdldCAtIGRlZmluZXMgdGhlIGN1cnJlbnQgdGFyZ2V0IG9mIHRoZSBzdGF0ZVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgbWFzazogbnVtYmVyLFxuICAgIHNraXBOZXh0T2JzZXJ2ZXJzID0gZmFsc2UsXG4gICAgdGFyZ2V0PzogYW55LFxuICAgIGN1cnJlbnRUYXJnZXQ/OiBhbnlcbiAgKSB7XG4gICAgdGhpcy5pbml0YWxpemUobWFzaywgc2tpcE5leHRPYnNlcnZlcnMsIHRhcmdldCwgY3VycmVudFRhcmdldClcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBjdXJyZW50IGV2ZW50IHN0YXRlXG4gICAqIEBwYXJhbSBtYXNrIC0gZGVmaW5lcyB0aGUgbWFzayBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdGF0ZVxuICAgKiBAcGFyYW0gc2tpcE5leHRPYnNlcnZlcnMgLSBkZWZpbmVzIGEgZmxhZyB3aGljaCB3aWxsIGluc3RydWN0IHRoZSBvYnNlcnZhYmxlIHRvIHNraXAgZm9sbG93aW5nIG9ic2VydmVycyB3aGVuIHNldCB0byB0cnVlXG4gICAqIEBwYXJhbSB0YXJnZXQgLSBkZWZpbmVzIHRoZSBvcmlnaW5hbCB0YXJnZXQgb2YgdGhlIHN0YXRlXG4gICAqIEBwYXJhbSBjdXJyZW50VGFyZ2V0IC0gZGVmaW5lcyB0aGUgY3VycmVudCB0YXJnZXQgb2YgdGhlIHN0YXRlXG4gICAqIEByZXR1cm5zIHRoZSBjdXJyZW50IGV2ZW50IHN0YXRlXG4gICAqL1xuICBwdWJsaWMgaW5pdGFsaXplKFxuICAgIG1hc2s6IG51bWJlcixcbiAgICBza2lwTmV4dE9ic2VydmVycyA9IGZhbHNlLFxuICAgIHRhcmdldD86IGFueSxcbiAgICBjdXJyZW50VGFyZ2V0PzogYW55XG4gICk6IE9ic2VydmVyRXZlbnRTdGF0ZSB7XG4gICAgdGhpcy5tYXNrID0gbWFza1xuICAgIHRoaXMuc2tpcE5leHRPYnNlcnZlcnMgPSBza2lwTmV4dE9ic2VydmVyc1xuICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0XG4gICAgdGhpcy5jdXJyZW50VGFyZ2V0ID0gY3VycmVudFRhcmdldFxuICAgIHJldHVybiB0aGlzXG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnQgYW4gT2JzZXJ2ZXIgcmVnaXN0ZXJlZCB0byBhIGdpdmVuIE9ic2VydmFibGUgb2JqZWN0LlxuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZFxuICovXG5leHBvcnQgY2xhc3MgT2JzZXJ2ZXI8VD4ge1xuICAvKipcbiAgICogR2V0cyBvciBzZXRzIGEgcHJvcGVydHkgZGVmaW5pbmcgdGhhdCB0aGUgb2JzZXJ2ZXIgYXMgdG8gYmUgdW5yZWdpc3RlcmVkIGFmdGVyIHRoZSBuZXh0IG5vdGlmaWNhdGlvblxuICAgKi9cbiAgcHVibGljIHVucmVnaXN0ZXJPbk5leHRDYWxsID0gZmFsc2VcblxuICAvKiogRm9yIGludGVybmFsIHVzYWdlICovXG4gIHB1YmxpYyBfd2lsbEJlVW5yZWdpc3RlcmVkID0gZmFsc2VcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBvYnNlcnZlclxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBkZWZpbmVzIHRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIG9ic2VydmVyIGlzIG5vdGlmaWVkXG4gICAqIEBwYXJhbSBtYXNrIC0gZGVmaW5lcyB0aGUgbWFzayBvZiB0aGUgb2JzZXJ2ZXIgKHVzZWQgdG8gZmlsdGVyIG5vdGlmaWNhdGlvbnMpXG4gICAqIEBwYXJhbSBzY29wZSAtIGRlZmluZXMgdGhlIGN1cnJlbnQgc2NvcGUgdXNlZCB0byByZXN0b3JlIHRoZSBKUyBjb250ZXh0XG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIG9ic2VydmVyIGlzIG5vdGlmaWVkXG4gICAgICovXG4gICAgcHVibGljIGNhbGxiYWNrOiAoZXZlbnREYXRhOiBULCBldmVudFN0YXRlOiBPYnNlcnZlckV2ZW50U3RhdGUpID0+IHZvaWQsXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgbWFzayBvZiB0aGUgb2JzZXJ2ZXIgKHVzZWQgdG8gZmlsdGVyIG5vdGlmaWNhdGlvbnMpXG4gICAgICovXG4gICAgcHVibGljIG1hc2s6IG51bWJlcixcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBjdXJyZW50IHNjb3BlIHVzZWQgdG8gcmVzdG9yZSB0aGUgSlMgY29udGV4dFxuICAgICAqL1xuICAgIHB1YmxpYyBzY29wZTogYW55ID0gbnVsbFxuICApIHt9XG59XG5cbi8qKlxuICogVGhlIE9ic2VydmFibGUgY2xhc3MgaXMgYSBzaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIE9ic2VydmFibGUgcGF0dGVybi5cbiAqXG4gKiBUaGVyZSdzIG9uZSBzbGlnaHQgcGFydGljdWxhcml0eSB0aG91Z2g6IGEgZ2l2ZW4gT2JzZXJ2YWJsZSBjYW4gbm90aWZ5IGl0cyBvYnNlcnZlciB1c2luZyBhIHBhcnRpY3VsYXIgbWFzayB2YWx1ZSwgb25seSB0aGUgT2JzZXJ2ZXJzIHJlZ2lzdGVyZWQgd2l0aCB0aGlzIG1hc2sgdmFsdWUgd2lsbCBiZSBub3RpZmllZC5cbiAqIFRoaXMgZW5hYmxlIGEgbW9yZSBmaW5lIGdyYWluZWQgZXhlY3V0aW9uIHdpdGhvdXQgaGF2aW5nIHRvIHJlbHkgb24gbXVsdGlwbGUgZGlmZmVyZW50IE9ic2VydmFibGUgb2JqZWN0cy5cbiAqIEZvciBpbnN0YW5jZSB5b3UgbWF5IGhhdmUgYSBnaXZlbiBPYnNlcnZhYmxlIHRoYXQgaGF2ZSBmb3VyIGRpZmZlcmVudCB0eXBlcyBvZiBub3RpZmljYXRpb25zOiBNb3ZlIChtYXNrID0gMHgwMSksIFN0b3AgKG1hc2sgPSAweDAyKSwgVHVybiBSaWdodCAobWFzayA9IDBYMDQpLCBUdXJuIExlZnQgKG1hc2sgPSAwWDA4KS5cbiAqIEEgZ2l2ZW4gb2JzZXJ2ZXIgY2FuIHJlZ2lzdGVyIGl0c2VsZiB3aXRoIG9ubHkgTW92ZSBhbmQgU3RvcCAobWFzayA9IDB4MDMpLCB0aGVuIGl0IHdpbGwgb25seSBiZSBub3RpZmllZCB3aGVuIG9uZSBvZiB0aGVzZSB0d28gb2NjdXJzIGFuZCB3aWxsIG5ldmVyIGJlIGZvciBUdXJuIExlZnQvUmlnaHQuXG4gKlxuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZFxuICovXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJsZTxUPiB7XG4gIHByaXZhdGUgX29ic2VydmVycyA9IG5ldyBBcnJheTxPYnNlcnZlcjxUPj4oKVxuXG4gIHByaXZhdGUgX2V2ZW50U3RhdGU6IE9ic2VydmVyRXZlbnRTdGF0ZVxuXG4gIHByaXZhdGUgX29uT2JzZXJ2ZXJBZGRlZDogbnVsbCB8ICgob2JzZXJ2ZXI6IE9ic2VydmVyPFQ+KSA9PiB2b2lkKSA9IG51bGxcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBvYnNlcnZhYmxlXG4gICAqIEBwYXJhbSBvbk9ic2VydmVyQWRkZWQgLSBkZWZpbmVzIGEgY2FsbGJhY2sgdG8gY2FsbCB3aGVuIGEgbmV3IG9ic2VydmVyIGlzIGFkZGVkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihvbk9ic2VydmVyQWRkZWQ/OiAob2JzZXJ2ZXI6IE9ic2VydmVyPFQ+KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5fZXZlbnRTdGF0ZSA9IG5ldyBPYnNlcnZlckV2ZW50U3RhdGUoMClcblxuICAgIGlmIChvbk9ic2VydmVyQWRkZWQpIHtcbiAgICAgIHRoaXMuX29uT2JzZXJ2ZXJBZGRlZCA9IG9uT2JzZXJ2ZXJBZGRlZFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgT2JzZXJ2ZXIgd2l0aCB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIHRoZSBjYWxsYmFjayB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgZm9yIHRoYXQgT2JzZXJ2ZXJcbiAgICogQHBhcmFtIG1hc2sgLSB0aGUgbWFzayB1c2VkIHRvIGZpbHRlciBvYnNlcnZlcnNcbiAgICogQHBhcmFtIGluc2VydEZpcnN0IC0gaWYgdHJ1ZSB0aGUgY2FsbGJhY2sgd2lsbCBiZSBpbnNlcnRlZCBhdCB0aGUgZmlyc3QgcG9zaXRpb24sIGhlbmNlIGV4ZWN1dGVkIGJlZm9yZSB0aGUgb3RoZXJzIG9uZXMuIElmIGZhbHNlIChkZWZhdWx0IGJlaGF2aW9yKSB0aGUgY2FsbGJhY2sgd2lsbCBiZSBpbnNlcnRlZCBhdCB0aGUgbGFzdCBwb3NpdGlvbiwgZXhlY3V0ZWQgYWZ0ZXIgYWxsIHRoZSBvdGhlcnMgYWxyZWFkeSBwcmVzZW50LlxuICAgKiBAcGFyYW0gc2NvcGUgLSBvcHRpb25hbCBzY29wZSBmb3IgdGhlIGNhbGxiYWNrIHRvIGJlIGNhbGxlZCBmcm9tXG4gICAqIEBwYXJhbSB1bnJlZ2lzdGVyT25GaXJzdENhbGwgLSBkZWZpbmVzIGlmIHRoZSBvYnNlcnZlciBhcyB0byBiZSB1bnJlZ2lzdGVyZWQgYWZ0ZXIgdGhlIG5leHQgbm90aWZpY2F0aW9uXG4gICAqIEByZXR1cm5zIHRoZSBuZXcgb2JzZXJ2ZXIgY3JlYXRlZCBmb3IgdGhlIGNhbGxiYWNrXG4gICAqL1xuICBwdWJsaWMgYWRkKFxuICAgIGNhbGxiYWNrOiAoZXZlbnREYXRhOiBULCBldmVudFN0YXRlOiBPYnNlcnZlckV2ZW50U3RhdGUpID0+IHZvaWQsXG4gICAgbWFzazogbnVtYmVyID0gLTEsXG4gICAgaW5zZXJ0Rmlyc3QgPSBmYWxzZSxcbiAgICBzY29wZTogYW55ID0gbnVsbCxcbiAgICB1bnJlZ2lzdGVyT25GaXJzdENhbGwgPSBmYWxzZVxuICApOiBudWxsIHwgT2JzZXJ2ZXI8VD4ge1xuICAgIGlmICghY2FsbGJhY2spIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgT2JzZXJ2ZXIoY2FsbGJhY2ssIG1hc2ssIHNjb3BlKVxuICAgIG9ic2VydmVyLnVucmVnaXN0ZXJPbk5leHRDYWxsID0gdW5yZWdpc3Rlck9uRmlyc3RDYWxsXG5cbiAgICBpZiAoaW5zZXJ0Rmlyc3QpIHtcbiAgICAgIHRoaXMuX29ic2VydmVycy51bnNoaWZ0KG9ic2VydmVyKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vYnNlcnZlcnMucHVzaChvYnNlcnZlcilcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fb25PYnNlcnZlckFkZGVkKSB7XG4gICAgICB0aGlzLl9vbk9ic2VydmVyQWRkZWQob2JzZXJ2ZXIpXG4gICAgfVxuXG4gICAgcmV0dXJuIG9ic2VydmVyXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IE9ic2VydmVyIHdpdGggdGhlIHNwZWNpZmllZCBjYWxsYmFjayBhbmQgdW5yZWdpc3RlcnMgYWZ0ZXIgdGhlIG5leHQgbm90aWZpY2F0aW9uXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIHRoZSBjYWxsYmFjayB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgZm9yIHRoYXQgT2JzZXJ2ZXJcbiAgICogQHJldHVybnMgdGhlIG5ldyBvYnNlcnZlciBjcmVhdGVkIGZvciB0aGUgY2FsbGJhY2tcbiAgICovXG4gIHB1YmxpYyBhZGRPbmNlKFxuICAgIGNhbGxiYWNrOiAoZXZlbnREYXRhOiBULCBldmVudFN0YXRlOiBPYnNlcnZlckV2ZW50U3RhdGUpID0+IHZvaWRcbiAgKTogbnVsbCB8IE9ic2VydmVyPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5hZGQoY2FsbGJhY2ssIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHRydWUpXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuIE9ic2VydmVyIGZyb20gdGhlIE9ic2VydmFibGUgb2JqZWN0XG4gICAqIEBwYXJhbSBvYnNlcnZlciAtIHRoZSBpbnN0YW5jZSBvZiB0aGUgT2JzZXJ2ZXIgdG8gcmVtb3ZlXG4gICAqIEByZXR1cm5zIGZhbHNlIGlmIGl0IGRvZXNuJ3QgYmVsb25nIHRvIHRoaXMgT2JzZXJ2YWJsZVxuICAgKi9cbiAgcHVibGljIHJlbW92ZShvYnNlcnZlcjogbnVsbCB8IE9ic2VydmVyPFQ+KTogYm9vbGVhbiB7XG4gICAgaWYgKCFvYnNlcnZlcikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9vYnNlcnZlcnMuaW5kZXhPZihvYnNlcnZlcilcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMuX2RlZmVyVW5yZWdpc3RlcihvYnNlcnZlcilcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgY2FsbGJhY2sgZnJvbSB0aGUgT2JzZXJ2YWJsZSBvYmplY3RcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gdGhlIGNhbGxiYWNrIHRvIHJlbW92ZVxuICAgKiBAcGFyYW0gc2NvcGUgLSBvcHRpb25hbCBzY29wZS4gSWYgdXNlZCBvbmx5IHRoZSBjYWxsYmFja3Mgd2l0aCB0aGlzIHNjb3BlIHdpbGwgYmUgcmVtb3ZlZFxuICAgKiBAcmV0dXJucyBmYWxzZSBpZiBpdCBkb2Vzbid0IGJlbG9uZyB0byB0aGlzIE9ic2VydmFibGVcbiAgICovXG4gIHB1YmxpYyByZW1vdmVDYWxsYmFjayhcbiAgICBjYWxsYmFjazogKGV2ZW50RGF0YTogVCwgZXZlbnRTdGF0ZTogT2JzZXJ2ZXJFdmVudFN0YXRlKSA9PiB2b2lkLFxuICAgIHNjb3BlPzogYW55XG4gICk6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLl9vYnNlcnZlcnMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuX29ic2VydmVyc1tpbmRleF0uY2FsbGJhY2sgPT09IGNhbGxiYWNrICYmXG4gICAgICAgICghc2NvcGUgfHwgc2NvcGUgPT09IHRoaXMuX29ic2VydmVyc1tpbmRleF0uc2NvcGUpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fZGVmZXJVbnJlZ2lzdGVyKHRoaXMuX29ic2VydmVyc1tpbmRleF0pXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogTm90aWZ5IGFsbCBPYnNlcnZlcnMgYnkgY2FsbGluZyB0aGVpciByZXNwZWN0aXZlIGNhbGxiYWNrIHdpdGggdGhlIGdpdmVuIGRhdGFcbiAgICogV2lsbCByZXR1cm4gdHJ1ZSBpZiBhbGwgb2JzZXJ2ZXJzIHdlcmUgZXhlY3V0ZWQsIGZhbHNlIGlmIGFuIG9ic2VydmVyIHNldCBza2lwTmV4dE9ic2VydmVycyB0byB0cnVlLCB0aGVuIHByZXZlbnQgdGhlIHN1YnNlcXVlbnQgb25lcyB0byBleGVjdXRlXG4gICAqIEBwYXJhbSBldmVudERhdGEgLSBkZWZpbmVzIHRoZSBkYXRhIHRvIHNlbmQgdG8gYWxsIG9ic2VydmVyc1xuICAgKiBAcGFyYW0gbWFzayAtIGRlZmluZXMgdGhlIG1hc2sgb2YgdGhlIGN1cnJlbnQgbm90aWZpY2F0aW9uIChvYnNlcnZlcnMgd2l0aCBpbmNvbXBhdGlibGUgbWFzayAoaWUgbWFzayAmIG9ic2VydmVyLm1hc2sgPT09IDApIHdpbGwgbm90IGJlIG5vdGlmaWVkKVxuICAgKiBAcGFyYW0gdGFyZ2V0IC0gZGVmaW5lcyB0aGUgb3JpZ2luYWwgdGFyZ2V0IG9mIHRoZSBzdGF0ZVxuICAgKiBAcGFyYW0gY3VycmVudFRhcmdldCAtIGRlZmluZXMgdGhlIGN1cnJlbnQgdGFyZ2V0IG9mIHRoZSBzdGF0ZVxuICAgKiBAcmV0dXJucyBmYWxzZSBpZiB0aGUgY29tcGxldGUgb2JzZXJ2ZXIgY2hhaW4gd2FzIG5vdCBwcm9jZXNzZWQgKGJlY2F1c2Ugb25lIG9ic2VydmVyIHNldCB0aGUgc2tpcE5leHRPYnNlcnZlcnMgdG8gdHJ1ZSlcbiAgICovXG4gIHB1YmxpYyBub3RpZnlPYnNlcnZlcnMoXG4gICAgZXZlbnREYXRhOiBULFxuICAgIG1hc2s6IG51bWJlciA9IC0xLFxuICAgIHRhcmdldD86IGFueSxcbiAgICBjdXJyZW50VGFyZ2V0PzogYW55XG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5fb2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX2V2ZW50U3RhdGVcbiAgICBzdGF0ZS5tYXNrID0gbWFza1xuICAgIHN0YXRlLnRhcmdldCA9IHRhcmdldFxuICAgIHN0YXRlLmN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0XG4gICAgc3RhdGUuc2tpcE5leHRPYnNlcnZlcnMgPSBmYWxzZVxuICAgIHN0YXRlLmxhc3RSZXR1cm5WYWx1ZSA9IGV2ZW50RGF0YVxuXG4gICAgZm9yIChjb25zdCBvYnMgb2YgdGhpcy5fb2JzZXJ2ZXJzKSB7XG4gICAgICBpZiAob2JzLl93aWxsQmVVbnJlZ2lzdGVyZWQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgaWYgKG9icy5tYXNrICYgbWFzaykge1xuICAgICAgICBpZiAob2JzLnNjb3BlKSB7XG4gICAgICAgICAgc3RhdGUubGFzdFJldHVyblZhbHVlID0gb2JzLmNhbGxiYWNrLmFwcGx5KG9icy5zY29wZSwgW1xuICAgICAgICAgICAgZXZlbnREYXRhLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICBdKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlLmxhc3RSZXR1cm5WYWx1ZSA9IG9icy5jYWxsYmFjayhldmVudERhdGEsIHN0YXRlKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9icy51bnJlZ2lzdGVyT25OZXh0Q2FsbCkge1xuICAgICAgICAgIHRoaXMuX2RlZmVyVW5yZWdpc3RlcihvYnMpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZS5za2lwTmV4dE9ic2VydmVycykge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsaW5nIHRoaXMgd2lsbCBleGVjdXRlIGVhY2ggY2FsbGJhY2ssIGV4cGVjdGluZyBpdCB0byBiZSBhIHByb21pc2Ugb3IgcmV0dXJuIGEgdmFsdWUuXG4gICAqIElmIGF0IGFueSBwb2ludCBpbiB0aGUgY2hhaW4gb25lIGZ1bmN0aW9uIGZhaWxzLCB0aGUgcHJvbWlzZSB3aWxsIGZhaWwgYW5kIHRoZSBleGVjdXRpb24gd2lsbCBub3QgY29udGludWUuXG4gICAqIFRoaXMgaXMgdXNlZnVsIHdoZW4gYSBjaGFpbiBvZiBldmVudHMgKHNvbWV0aW1lcyBhc3luYyBldmVudHMpIGlzIG5lZWRlZCB0byBpbml0aWFsaXplIGEgY2VydGFpbiBvYmplY3RcbiAgICogYW5kIGl0IGlzIGNydWNpYWwgdGhhdCBhbGwgY2FsbGJhY2tzIHdpbGwgYmUgZXhlY3V0ZWQuXG4gICAqIFRoZSBvcmRlciBvZiB0aGUgY2FsbGJhY2tzIGlzIGtlcHQsIGNhbGxiYWNrcyBhcmUgbm90IGV4ZWN1dGVkIHBhcmFsbGVsLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnREYXRhIC0gVGhlIGRhdGEgdG8gYmUgc2VudCB0byBlYWNoIGNhbGxiYWNrXG4gICAqIEBwYXJhbSBtYXNrIC0gaXMgdXNlZCB0byBmaWx0ZXIgb2JzZXJ2ZXJzIGRlZmF1bHRzIHRvIC0xXG4gICAqIEBwYXJhbSB0YXJnZXQgLSBkZWZpbmVzIHRoZSBjYWxsYmFjayB0YXJnZXQgKHNlZSBFdmVudFN0YXRlKVxuICAgKiBAcGFyYW0gY3VycmVudFRhcmdldCAtIGRlZmluZXMgaGUgY3VycmVudCBvYmplY3QgaW4gdGhlIGJ1YmJsaW5nIHBoYXNlXG4gICAqIEByZXR1cm5zIHdpbGwgcmV0dXJuIGEgUHJvbWlzZSB0aGFuIHJlc29sdmVzIHdoZW4gYWxsIGNhbGxiYWNrcyBleGVjdXRlZCBzdWNjZXNzZnVsbHkuXG4gICAqL1xuICBwdWJsaWMgbm90aWZ5T2JzZXJ2ZXJzV2l0aFByb21pc2UoXG4gICAgZXZlbnREYXRhOiBULFxuICAgIG1hc2s6IG51bWJlciA9IC0xLFxuICAgIHRhcmdldD86IGFueSxcbiAgICBjdXJyZW50VGFyZ2V0PzogYW55XG4gICk6IFByb21pc2U8VD4ge1xuICAgIC8vIGNyZWF0ZSBhbiBlbXB0eSBwcm9taXNlXG4gICAgbGV0IHA6IFByb21pc2U8YW55PiA9IFByb21pc2UucmVzb2x2ZShldmVudERhdGEpXG5cbiAgICAvLyBubyBvYnNlcnZlcnM/IHJldHVybiB0aGlzIHByb21pc2UuXG4gICAgaWYgKCF0aGlzLl9vYnNlcnZlcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcFxuICAgIH1cblxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fZXZlbnRTdGF0ZVxuICAgIHN0YXRlLm1hc2sgPSBtYXNrXG4gICAgc3RhdGUudGFyZ2V0ID0gdGFyZ2V0XG4gICAgc3RhdGUuY3VycmVudFRhcmdldCA9IGN1cnJlbnRUYXJnZXRcbiAgICBzdGF0ZS5za2lwTmV4dE9ic2VydmVycyA9IGZhbHNlXG5cbiAgICAvLyBleGVjdXRlIG9uZSBjYWxsYmFjayBhZnRlciBhbm90aGVyIChub3QgdXNpbmcgUHJvbWlzZS5hbGwsIHRoZSBvcmRlciBpcyBpbXBvcnRhbnQpXG4gICAgdGhpcy5fb2JzZXJ2ZXJzLmZvckVhY2goKG9icykgPT4ge1xuICAgICAgaWYgKHN0YXRlLnNraXBOZXh0T2JzZXJ2ZXJzKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKG9icy5fd2lsbEJlVW5yZWdpc3RlcmVkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKG9icy5tYXNrICYgbWFzaykge1xuICAgICAgICBpZiAob2JzLnNjb3BlKSB7XG4gICAgICAgICAgcCA9IHAudGhlbigobGFzdFJldHVybmVkVmFsdWUpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLmxhc3RSZXR1cm5WYWx1ZSA9IGxhc3RSZXR1cm5lZFZhbHVlXG4gICAgICAgICAgICByZXR1cm4gb2JzLmNhbGxiYWNrLmFwcGx5KG9icy5zY29wZSwgW2V2ZW50RGF0YSwgc3RhdGVdKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcCA9IHAudGhlbigobGFzdFJldHVybmVkVmFsdWUpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLmxhc3RSZXR1cm5WYWx1ZSA9IGxhc3RSZXR1cm5lZFZhbHVlXG4gICAgICAgICAgICByZXR1cm4gb2JzLmNhbGxiYWNrKGV2ZW50RGF0YSwgc3RhdGUpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JzLnVucmVnaXN0ZXJPbk5leHRDYWxsKSB7XG4gICAgICAgICAgdGhpcy5fZGVmZXJVbnJlZ2lzdGVyKG9icylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvLyByZXR1cm4gdGhlIGV2ZW50RGF0YVxuICAgIHJldHVybiBwLnRoZW4oKCkgPT4ge1xuICAgICAgcmV0dXJuIGV2ZW50RGF0YVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogTm90aWZ5IGEgc3BlY2lmaWMgb2JzZXJ2ZXJcbiAgICogQHBhcmFtIG9ic2VydmVyIC0gZGVmaW5lcyB0aGUgb2JzZXJ2ZXIgdG8gbm90aWZ5XG4gICAqIEBwYXJhbSBldmVudERhdGEgLSBkZWZpbmVzIHRoZSBkYXRhIHRvIGJlIHNlbnQgdG8gZWFjaCBjYWxsYmFja1xuICAgKiBAcGFyYW0gbWFzayAtIGlzIHVzZWQgdG8gZmlsdGVyIG9ic2VydmVycyBkZWZhdWx0cyB0byAtMVxuICAgKi9cbiAgcHVibGljIG5vdGlmeU9ic2VydmVyKFxuICAgIG9ic2VydmVyOiBPYnNlcnZlcjxUPixcbiAgICBldmVudERhdGE6IFQsXG4gICAgbWFzazogbnVtYmVyID0gLTFcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9ldmVudFN0YXRlXG4gICAgc3RhdGUubWFzayA9IG1hc2tcbiAgICBzdGF0ZS5za2lwTmV4dE9ic2VydmVycyA9IGZhbHNlXG5cbiAgICBvYnNlcnZlci5jYWxsYmFjayhldmVudERhdGEsIHN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIG9ic2VydmFibGUgaGFzIGF0IGxlYXN0IG9uZSBvYnNlcnZlclxuICAgKiBAcmV0dXJucyB0cnVlIGlzIHRoZSBPYnNlcnZhYmxlIGhhcyBhdCBsZWFzdCBvbmUgT2JzZXJ2ZXIgcmVnaXN0ZXJlZFxuICAgKi9cbiAgcHVibGljIGhhc09ic2VydmVycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb2JzZXJ2ZXJzLmxlbmd0aCA+IDBcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgbGlzdCBvZiBvYnNlcnZlcnNcbiAgICovXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlcnMgPSBuZXcgQXJyYXk8T2JzZXJ2ZXI8VD4+KClcbiAgICB0aGlzLl9vbk9ic2VydmVyQWRkZWQgPSBudWxsXG4gIH1cblxuICAvKipcbiAgICogQ2xvbmUgdGhlIGN1cnJlbnQgb2JzZXJ2YWJsZVxuICAgKiBAcmV0dXJucyBhIG5ldyBvYnNlcnZhYmxlXG4gICAqL1xuICBwdWJsaWMgY2xvbmUoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IE9ic2VydmFibGU8VD4oKVxuXG4gICAgcmVzdWx0Ll9vYnNlcnZlcnMgPSB0aGlzLl9vYnNlcnZlcnMuc2xpY2UoMClcblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBEb2VzIHRoaXMgb2JzZXJ2YWJsZSBoYW5kbGVzIG9ic2VydmVyIHJlZ2lzdGVyZWQgd2l0aCBhIGdpdmVuIG1hc2tcbiAgICogQHBhcmFtIG1hc2sgLSBkZWZpbmVzIHRoZSBtYXNrIHRvIGJlIHRlc3RlZFxuICAgKiBAcmV0dXJucyB3aGV0aGVyIG9yIG5vdCBvbmUgb2JzZXJ2ZXIgcmVnaXN0ZXJlZCB3aXRoIHRoZSBnaXZlbiBtYXNrIGlzIGhhbmRlbGVkXG4gICAqL1xuICBwdWJsaWMgaGFzU3BlY2lmaWNNYXNrKG1hc2s6IG51bWJlciA9IC0xKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBvYnMgb2YgdGhpcy5fb2JzZXJ2ZXJzKSB7XG4gICAgICBpZiAob2JzLm1hc2sgJiBtYXNrIHx8IG9icy5tYXNrID09PSBtYXNrKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVmZXJVbnJlZ2lzdGVyKG9ic2VydmVyOiBPYnNlcnZlcjxUPik6IHZvaWQge1xuICAgIG9ic2VydmVyLnVucmVnaXN0ZXJPbk5leHRDYWxsID0gZmFsc2VcbiAgICBvYnNlcnZlci5fd2lsbEJlVW5yZWdpc3RlcmVkID0gdHJ1ZVxuICAgIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAudGhlbi5iaW5kKFByb21pc2UucmVzb2x2ZSgpKShhc3luYyAoKSA9PiB0aGlzLl9yZW1vdmUob2JzZXJ2ZXIpKVxuICAgICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpXG4gIH1cblxuICAvLyBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIG5vdCBpdGVyYXRpbmcgb3ZlciBfb2JzZXJ2ZXJzIHRvIGF2b2lkIGNhbGxiYWNrIHNraXBwaW5nLlxuICAvLyBSZW1vdmVzIGFuIG9ic2VydmVyIGZyb20gdGhlIF9vYnNlcnZlciBBcnJheS5cbiAgcHJpdmF0ZSBfcmVtb3ZlKG9ic2VydmVyOiBudWxsIHwgT2JzZXJ2ZXI8VD4pOiBib29sZWFuIHtcbiAgICBpZiAoIW9ic2VydmVyKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleCA9IHRoaXMuX29ic2VydmVycy5pbmRleE9mKG9ic2VydmVyKVxuXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnNwbGljZShpbmRleCwgMSlcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cbiJdfQ==
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2JzZXJ2YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcm5hbC9PYnNlcnZhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxrQkFBa0I7SUFrQzdCLFlBQVksSUFBWSxFQUFFLGlCQUFpQixHQUFHLEtBQUssRUFBRSxNQUFZLEVBQUUsYUFBbUI7UUFDcEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7SUFVTSxTQUFTLENBQUMsSUFBWSxFQUFFLGlCQUFpQixHQUFHLEtBQUssRUFBRSxNQUFZLEVBQUUsYUFBbUI7UUFDekYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFBO1FBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO1FBQ2xDLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztDQUNGO0FBTUQsTUFBTSxPQUFPLFFBQVE7SUFlbkIsWUFJUyxRQUFnRSxFQUloRSxJQUFZLEVBSVosUUFBYSxJQUFJO1FBUmpCLGFBQVEsR0FBUixRQUFRLENBQXdEO1FBSWhFLFNBQUksR0FBSixJQUFJLENBQVE7UUFJWixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBdkJuQix5QkFBb0IsR0FBRyxLQUFLLENBQUE7UUFHNUIsd0JBQW1CLEdBQUcsS0FBSyxDQUFBO0lBcUIvQixDQUFDO0NBQ0w7QUFZRCxNQUFNLE9BQU8sVUFBVTtJQVdyQixZQUFZLGVBQWlEO1FBVnJELGVBQVUsR0FBRyxJQUFJLEtBQUssRUFBZSxDQUFBO1FBSXJDLHFCQUFnQixHQUE2QyxJQUFJLENBQUE7UUFPdkUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGtCQUFrQixDQUFDLENBQUMsQ0FB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QUMsQ0FBQzthQUNoRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFJTyxPQUFPLENBQUMsUUFBNEI7UUFDMUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUUvQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDaEMsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIGNsYXNzIHNlcnZlcyBhcyBhIG1lZGl1bSBiZXR3ZWVuIHRoZSBvYnNlcnZhYmxlIGFuZCBpdHMgb2JzZXJ2ZXJzXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkXG4gKi9cbmV4cG9ydCBjbGFzcyBPYnNlcnZlckV2ZW50U3RhdGUge1xuICAvKipcbiAgICogQW4gT2JzZXJ2ZXIgY2FuIHNldCB0aGlzIHByb3BlcnR5IHRvIHRydWUgdG8gcHJldmVudCBzdWJzZXF1ZW50IG9ic2VydmVycyBvZiBiZWluZyBub3RpZmllZFxuICAgKi9cbiAgcHVibGljIHNraXBOZXh0T2JzZXJ2ZXJzITogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1hc2sgdmFsdWUgdGhhdCB3ZXJlIHVzZWQgdG8gdHJpZ2dlciB0aGUgZXZlbnQgY29ycmVzcG9uZGluZyB0byB0aGlzIEV2ZW50U3RhdGUgb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgbWFzayE6IG51bWJlclxuXG4gIC8qKlxuICAgKiBUaGUgb2JqZWN0IHRoYXQgb3JpZ2luYWxseSBub3RpZmllZCB0aGUgZXZlbnRcbiAgICovXG4gIHB1YmxpYyB0YXJnZXQ/OiBhbnlcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgb2JqZWN0IGluIHRoZSBidWJibGluZyBwaGFzZVxuICAgKi9cbiAgcHVibGljIGN1cnJlbnRUYXJnZXQ/OiBhbnlcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIHBvcHVsYXRlZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGxhc3QgZnVuY3Rpb24gdGhhdCB3YXMgZXhlY3V0ZWQuXG4gICAqIElmIGl0IGlzIHRoZSBmaXJzdCBmdW5jdGlvbiBpbiB0aGUgY2FsbGJhY2sgY2hhaW4gaXQgd2lsbCBiZSB0aGUgZXZlbnQgZGF0YS5cbiAgICovXG4gIHB1YmxpYyBsYXN0UmV0dXJuVmFsdWU/OiBhbnlcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IEV2ZW50U3RhdGVcbiAgICogQHBhcmFtIG1hc2sgLSBkZWZpbmVzIHRoZSBtYXNrIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHN0YXRlXG4gICAqIEBwYXJhbSBza2lwTmV4dE9ic2VydmVycyAtIGRlZmluZXMgYSBmbGFnIHdoaWNoIHdpbGwgaW5zdHJ1Y3QgdGhlIG9ic2VydmFibGUgdG8gc2tpcCBmb2xsb3dpbmcgb2JzZXJ2ZXJzIHdoZW4gc2V0IHRvIHRydWVcbiAgICogQHBhcmFtIHRhcmdldCAtIGRlZmluZXMgdGhlIG9yaWdpbmFsIHRhcmdldCBvZiB0aGUgc3RhdGVcbiAgICogQHBhcmFtIGN1cnJlbnRUYXJnZXQgLSBkZWZpbmVzIHRoZSBjdXJyZW50IHRhcmdldCBvZiB0aGUgc3RhdGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKG1hc2s6IG51bWJlciwgc2tpcE5leHRPYnNlcnZlcnMgPSBmYWxzZSwgdGFyZ2V0PzogYW55LCBjdXJyZW50VGFyZ2V0PzogYW55KSB7XG4gICAgdGhpcy5pbml0YWxpemUobWFzaywgc2tpcE5leHRPYnNlcnZlcnMsIHRhcmdldCwgY3VycmVudFRhcmdldClcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBjdXJyZW50IGV2ZW50IHN0YXRlXG4gICAqIEBwYXJhbSBtYXNrIC0gZGVmaW5lcyB0aGUgbWFzayBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdGF0ZVxuICAgKiBAcGFyYW0gc2tpcE5leHRPYnNlcnZlcnMgLSBkZWZpbmVzIGEgZmxhZyB3aGljaCB3aWxsIGluc3RydWN0IHRoZSBvYnNlcnZhYmxlIHRvIHNraXAgZm9sbG93aW5nIG9ic2VydmVycyB3aGVuIHNldCB0byB0cnVlXG4gICAqIEBwYXJhbSB0YXJnZXQgLSBkZWZpbmVzIHRoZSBvcmlnaW5hbCB0YXJnZXQgb2YgdGhlIHN0YXRlXG4gICAqIEBwYXJhbSBjdXJyZW50VGFyZ2V0IC0gZGVmaW5lcyB0aGUgY3VycmVudCB0YXJnZXQgb2YgdGhlIHN0YXRlXG4gICAqIEByZXR1cm5zIHRoZSBjdXJyZW50IGV2ZW50IHN0YXRlXG4gICAqL1xuICBwdWJsaWMgaW5pdGFsaXplKG1hc2s6IG51bWJlciwgc2tpcE5leHRPYnNlcnZlcnMgPSBmYWxzZSwgdGFyZ2V0PzogYW55LCBjdXJyZW50VGFyZ2V0PzogYW55KTogT2JzZXJ2ZXJFdmVudFN0YXRlIHtcbiAgICB0aGlzLm1hc2sgPSBtYXNrXG4gICAgdGhpcy5za2lwTmV4dE9ic2VydmVycyA9IHNraXBOZXh0T2JzZXJ2ZXJzXG4gICAgdGhpcy50YXJnZXQgPSB0YXJnZXRcbiAgICB0aGlzLmN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudCBhbiBPYnNlcnZlciByZWdpc3RlcmVkIHRvIGEgZ2l2ZW4gT2JzZXJ2YWJsZSBvYmplY3QuXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkXG4gKi9cbmV4cG9ydCBjbGFzcyBPYnNlcnZlcjxUPiB7XG4gIC8qKlxuICAgKiBHZXRzIG9yIHNldHMgYSBwcm9wZXJ0eSBkZWZpbmluZyB0aGF0IHRoZSBvYnNlcnZlciBhcyB0byBiZSB1bnJlZ2lzdGVyZWQgYWZ0ZXIgdGhlIG5leHQgbm90aWZpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3Rlck9uTmV4dENhbGwgPSBmYWxzZVxuXG4gIC8qKiBGb3IgaW50ZXJuYWwgdXNhZ2UgKi9cbiAgcHVibGljIF93aWxsQmVVbnJlZ2lzdGVyZWQgPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG9ic2VydmVyXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIGRlZmluZXMgdGhlIGNhbGxiYWNrIHRvIGNhbGwgd2hlbiB0aGUgb2JzZXJ2ZXIgaXMgbm90aWZpZWRcbiAgICogQHBhcmFtIG1hc2sgLSBkZWZpbmVzIHRoZSBtYXNrIG9mIHRoZSBvYnNlcnZlciAodXNlZCB0byBmaWx0ZXIgbm90aWZpY2F0aW9ucylcbiAgICogQHBhcmFtIHNjb3BlIC0gZGVmaW5lcyB0aGUgY3VycmVudCBzY29wZSB1c2VkIHRvIHJlc3RvcmUgdGhlIEpTIGNvbnRleHRcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIGNhbGxiYWNrIHRvIGNhbGwgd2hlbiB0aGUgb2JzZXJ2ZXIgaXMgbm90aWZpZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgY2FsbGJhY2s6IChldmVudERhdGE6IFQsIGV2ZW50U3RhdGU6IE9ic2VydmVyRXZlbnRTdGF0ZSkgPT4gdm9pZCxcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBtYXNrIG9mIHRoZSBvYnNlcnZlciAodXNlZCB0byBmaWx0ZXIgbm90aWZpY2F0aW9ucylcbiAgICAgKi9cbiAgICBwdWJsaWMgbWFzazogbnVtYmVyLFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIGN1cnJlbnQgc2NvcGUgdXNlZCB0byByZXN0b3JlIHRoZSBKUyBjb250ZXh0XG4gICAgICovXG4gICAgcHVibGljIHNjb3BlOiBhbnkgPSBudWxsXG4gICkge31cbn1cblxuLyoqXG4gKiBUaGUgT2JzZXJ2YWJsZSBjbGFzcyBpcyBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgT2JzZXJ2YWJsZSBwYXR0ZXJuLlxuICpcbiAqIFRoZXJlJ3Mgb25lIHNsaWdodCBwYXJ0aWN1bGFyaXR5IHRob3VnaDogYSBnaXZlbiBPYnNlcnZhYmxlIGNhbiBub3RpZnkgaXRzIG9ic2VydmVyIHVzaW5nIGEgcGFydGljdWxhciBtYXNrIHZhbHVlLCBvbmx5IHRoZSBPYnNlcnZlcnMgcmVnaXN0ZXJlZCB3aXRoIHRoaXMgbWFzayB2YWx1ZSB3aWxsIGJlIG5vdGlmaWVkLlxuICogVGhpcyBlbmFibGUgYSBtb3JlIGZpbmUgZ3JhaW5lZCBleGVjdXRpb24gd2l0aG91dCBoYXZpbmcgdG8gcmVseSBvbiBtdWx0aXBsZSBkaWZmZXJlbnQgT2JzZXJ2YWJsZSBvYmplY3RzLlxuICogRm9yIGluc3RhbmNlIHlvdSBtYXkgaGF2ZSBhIGdpdmVuIE9ic2VydmFibGUgdGhhdCBoYXZlIGZvdXIgZGlmZmVyZW50IHR5cGVzIG9mIG5vdGlmaWNhdGlvbnM6IE1vdmUgKG1hc2sgPSAweDAxKSwgU3RvcCAobWFzayA9IDB4MDIpLCBUdXJuIFJpZ2h0IChtYXNrID0gMFgwNCksIFR1cm4gTGVmdCAobWFzayA9IDBYMDgpLlxuICogQSBnaXZlbiBvYnNlcnZlciBjYW4gcmVnaXN0ZXIgaXRzZWxmIHdpdGggb25seSBNb3ZlIGFuZCBTdG9wIChtYXNrID0gMHgwMyksIHRoZW4gaXQgd2lsbCBvbmx5IGJlIG5vdGlmaWVkIHdoZW4gb25lIG9mIHRoZXNlIHR3byBvY2N1cnMgYW5kIHdpbGwgbmV2ZXIgYmUgZm9yIFR1cm4gTGVmdC9SaWdodC5cbiAqXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkXG4gKi9cbmV4cG9ydCBjbGFzcyBPYnNlcnZhYmxlPFQ+IHtcbiAgcHJpdmF0ZSBfb2JzZXJ2ZXJzID0gbmV3IEFycmF5PE9ic2VydmVyPFQ+PigpXG5cbiAgcHJpdmF0ZSBfZXZlbnRTdGF0ZTogT2JzZXJ2ZXJFdmVudFN0YXRlXG5cbiAgcHJpdmF0ZSBfb25PYnNlcnZlckFkZGVkOiBudWxsIHwgKChvYnNlcnZlcjogT2JzZXJ2ZXI8VD4pID0+IHZvaWQpID0gbnVsbFxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG9ic2VydmFibGVcbiAgICogQHBhcmFtIG9uT2JzZXJ2ZXJBZGRlZCAtIGRlZmluZXMgYSBjYWxsYmFjayB0byBjYWxsIHdoZW4gYSBuZXcgb2JzZXJ2ZXIgaXMgYWRkZWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9uT2JzZXJ2ZXJBZGRlZD86IChvYnNlcnZlcjogT2JzZXJ2ZXI8VD4pID0+IHZvaWQpIHtcbiAgICB0aGlzLl9ldmVudFN0YXRlID0gbmV3IE9ic2VydmVyRXZlbnRTdGF0ZSgwKVxuXG4gICAgaWYgKG9uT2JzZXJ2ZXJBZGRlZCkge1xuICAgICAgdGhpcy5fb25PYnNlcnZlckFkZGVkID0gb25PYnNlcnZlckFkZGVkXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBPYnNlcnZlciB3aXRoIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2tcbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gdGhlIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBmb3IgdGhhdCBPYnNlcnZlclxuICAgKiBAcGFyYW0gbWFzayAtIHRoZSBtYXNrIHVzZWQgdG8gZmlsdGVyIG9ic2VydmVyc1xuICAgKiBAcGFyYW0gaW5zZXJ0Rmlyc3QgLSBpZiB0cnVlIHRoZSBjYWxsYmFjayB3aWxsIGJlIGluc2VydGVkIGF0IHRoZSBmaXJzdCBwb3NpdGlvbiwgaGVuY2UgZXhlY3V0ZWQgYmVmb3JlIHRoZSBvdGhlcnMgb25lcy4gSWYgZmFsc2UgKGRlZmF1bHQgYmVoYXZpb3IpIHRoZSBjYWxsYmFjayB3aWxsIGJlIGluc2VydGVkIGF0IHRoZSBsYXN0IHBvc2l0aW9uLCBleGVjdXRlZCBhZnRlciBhbGwgdGhlIG90aGVycyBhbHJlYWR5IHByZXNlbnQuXG4gICAqIEBwYXJhbSBzY29wZSAtIG9wdGlvbmFsIHNjb3BlIGZvciB0aGUgY2FsbGJhY2sgdG8gYmUgY2FsbGVkIGZyb21cbiAgICogQHBhcmFtIHVucmVnaXN0ZXJPbkZpcnN0Q2FsbCAtIGRlZmluZXMgaWYgdGhlIG9ic2VydmVyIGFzIHRvIGJlIHVucmVnaXN0ZXJlZCBhZnRlciB0aGUgbmV4dCBub3RpZmljYXRpb25cbiAgICogQHJldHVybnMgdGhlIG5ldyBvYnNlcnZlciBjcmVhdGVkIGZvciB0aGUgY2FsbGJhY2tcbiAgICovXG4gIHB1YmxpYyBhZGQoXG4gICAgY2FsbGJhY2s6IChldmVudERhdGE6IFQsIGV2ZW50U3RhdGU6IE9ic2VydmVyRXZlbnRTdGF0ZSkgPT4gdm9pZCxcbiAgICBtYXNrOiBudW1iZXIgPSAtMSxcbiAgICBpbnNlcnRGaXJzdCA9IGZhbHNlLFxuICAgIHNjb3BlOiBhbnkgPSBudWxsLFxuICAgIHVucmVnaXN0ZXJPbkZpcnN0Q2FsbCA9IGZhbHNlXG4gICk6IG51bGwgfCBPYnNlcnZlcjxUPiB7XG4gICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBPYnNlcnZlcihjYWxsYmFjaywgbWFzaywgc2NvcGUpXG4gICAgb2JzZXJ2ZXIudW5yZWdpc3Rlck9uTmV4dENhbGwgPSB1bnJlZ2lzdGVyT25GaXJzdENhbGxcblxuICAgIGlmIChpbnNlcnRGaXJzdCkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnVuc2hpZnQob2JzZXJ2ZXIpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX29ic2VydmVycy5wdXNoKG9ic2VydmVyKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9vbk9ic2VydmVyQWRkZWQpIHtcbiAgICAgIHRoaXMuX29uT2JzZXJ2ZXJBZGRlZChvYnNlcnZlcilcbiAgICB9XG5cbiAgICByZXR1cm4gb2JzZXJ2ZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgT2JzZXJ2ZXIgd2l0aCB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGFuZCB1bnJlZ2lzdGVycyBhZnRlciB0aGUgbmV4dCBub3RpZmljYXRpb25cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gdGhlIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBmb3IgdGhhdCBPYnNlcnZlclxuICAgKiBAcmV0dXJucyB0aGUgbmV3IG9ic2VydmVyIGNyZWF0ZWQgZm9yIHRoZSBjYWxsYmFja1xuICAgKi9cbiAgcHVibGljIGFkZE9uY2UoY2FsbGJhY2s6IChldmVudERhdGE6IFQsIGV2ZW50U3RhdGU6IE9ic2VydmVyRXZlbnRTdGF0ZSkgPT4gdm9pZCk6IG51bGwgfCBPYnNlcnZlcjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYWRkKGNhbGxiYWNrLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0cnVlKVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbiBPYnNlcnZlciBmcm9tIHRoZSBPYnNlcnZhYmxlIG9iamVjdFxuICAgKiBAcGFyYW0gb2JzZXJ2ZXIgLSB0aGUgaW5zdGFuY2Ugb2YgdGhlIE9ic2VydmVyIHRvIHJlbW92ZVxuICAgKiBAcmV0dXJucyBmYWxzZSBpZiBpdCBkb2Vzbid0IGJlbG9uZyB0byB0aGlzIE9ic2VydmFibGVcbiAgICovXG4gIHB1YmxpYyByZW1vdmUob2JzZXJ2ZXI6IG51bGwgfCBPYnNlcnZlcjxUPik6IGJvb2xlYW4ge1xuICAgIGlmICghb2JzZXJ2ZXIpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fb2JzZXJ2ZXJzLmluZGV4T2Yob2JzZXJ2ZXIpXG5cbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLl9kZWZlclVucmVnaXN0ZXIob2JzZXJ2ZXIpXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIGNhbGxiYWNrIGZyb20gdGhlIE9ic2VydmFibGUgb2JqZWN0XG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIHRoZSBjYWxsYmFjayB0byByZW1vdmVcbiAgICogQHBhcmFtIHNjb3BlIC0gb3B0aW9uYWwgc2NvcGUuIElmIHVzZWQgb25seSB0aGUgY2FsbGJhY2tzIHdpdGggdGhpcyBzY29wZSB3aWxsIGJlIHJlbW92ZWRcbiAgICogQHJldHVybnMgZmFsc2UgaWYgaXQgZG9lc24ndCBiZWxvbmcgdG8gdGhpcyBPYnNlcnZhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlQ2FsbGJhY2soY2FsbGJhY2s6IChldmVudERhdGE6IFQsIGV2ZW50U3RhdGU6IE9ic2VydmVyRXZlbnRTdGF0ZSkgPT4gdm9pZCwgc2NvcGU/OiBhbnkpOiBib29sZWFuIHtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5fb2JzZXJ2ZXJzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgaWYgKHRoaXMuX29ic2VydmVyc1tpbmRleF0uY2FsbGJhY2sgPT09IGNhbGxiYWNrICYmICghc2NvcGUgfHwgc2NvcGUgPT09IHRoaXMuX29ic2VydmVyc1tpbmRleF0uc2NvcGUpKSB7XG4gICAgICAgIHRoaXMuX2RlZmVyVW5yZWdpc3Rlcih0aGlzLl9vYnNlcnZlcnNbaW5kZXhdKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIE5vdGlmeSBhbGwgT2JzZXJ2ZXJzIGJ5IGNhbGxpbmcgdGhlaXIgcmVzcGVjdGl2ZSBjYWxsYmFjayB3aXRoIHRoZSBnaXZlbiBkYXRhXG4gICAqIFdpbGwgcmV0dXJuIHRydWUgaWYgYWxsIG9ic2VydmVycyB3ZXJlIGV4ZWN1dGVkLCBmYWxzZSBpZiBhbiBvYnNlcnZlciBzZXQgc2tpcE5leHRPYnNlcnZlcnMgdG8gdHJ1ZSwgdGhlbiBwcmV2ZW50IHRoZSBzdWJzZXF1ZW50IG9uZXMgdG8gZXhlY3V0ZVxuICAgKiBAcGFyYW0gZXZlbnREYXRhIC0gZGVmaW5lcyB0aGUgZGF0YSB0byBzZW5kIHRvIGFsbCBvYnNlcnZlcnNcbiAgICogQHBhcmFtIG1hc2sgLSBkZWZpbmVzIHRoZSBtYXNrIG9mIHRoZSBjdXJyZW50IG5vdGlmaWNhdGlvbiAob2JzZXJ2ZXJzIHdpdGggaW5jb21wYXRpYmxlIG1hc2sgKGllIG1hc2sgJiBvYnNlcnZlci5tYXNrID09PSAwKSB3aWxsIG5vdCBiZSBub3RpZmllZClcbiAgICogQHBhcmFtIHRhcmdldCAtIGRlZmluZXMgdGhlIG9yaWdpbmFsIHRhcmdldCBvZiB0aGUgc3RhdGVcbiAgICogQHBhcmFtIGN1cnJlbnRUYXJnZXQgLSBkZWZpbmVzIHRoZSBjdXJyZW50IHRhcmdldCBvZiB0aGUgc3RhdGVcbiAgICogQHJldHVybnMgZmFsc2UgaWYgdGhlIGNvbXBsZXRlIG9ic2VydmVyIGNoYWluIHdhcyBub3QgcHJvY2Vzc2VkIChiZWNhdXNlIG9uZSBvYnNlcnZlciBzZXQgdGhlIHNraXBOZXh0T2JzZXJ2ZXJzIHRvIHRydWUpXG4gICAqL1xuICBwdWJsaWMgbm90aWZ5T2JzZXJ2ZXJzKGV2ZW50RGF0YTogVCwgbWFzazogbnVtYmVyID0gLTEsIHRhcmdldD86IGFueSwgY3VycmVudFRhcmdldD86IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5fb2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX2V2ZW50U3RhdGVcbiAgICBzdGF0ZS5tYXNrID0gbWFza1xuICAgIHN0YXRlLnRhcmdldCA9IHRhcmdldFxuICAgIHN0YXRlLmN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0XG4gICAgc3RhdGUuc2tpcE5leHRPYnNlcnZlcnMgPSBmYWxzZVxuICAgIHN0YXRlLmxhc3RSZXR1cm5WYWx1ZSA9IGV2ZW50RGF0YVxuXG4gICAgZm9yIChjb25zdCBvYnMgb2YgdGhpcy5fb2JzZXJ2ZXJzKSB7XG4gICAgICBpZiAob2JzLl93aWxsQmVVbnJlZ2lzdGVyZWQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgaWYgKG9icy5tYXNrICYgbWFzaykge1xuICAgICAgICBpZiAob2JzLnNjb3BlKSB7XG4gICAgICAgICAgc3RhdGUubGFzdFJldHVyblZhbHVlID0gb2JzLmNhbGxiYWNrLmFwcGx5KG9icy5zY29wZSwgW2V2ZW50RGF0YSwgc3RhdGVdKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlLmxhc3RSZXR1cm5WYWx1ZSA9IG9icy5jYWxsYmFjayhldmVudERhdGEsIHN0YXRlKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9icy51bnJlZ2lzdGVyT25OZXh0Q2FsbCkge1xuICAgICAgICAgIHRoaXMuX2RlZmVyVW5yZWdpc3RlcihvYnMpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZS5za2lwTmV4dE9ic2VydmVycykge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsaW5nIHRoaXMgd2lsbCBleGVjdXRlIGVhY2ggY2FsbGJhY2ssIGV4cGVjdGluZyBpdCB0byBiZSBhIHByb21pc2Ugb3IgcmV0dXJuIGEgdmFsdWUuXG4gICAqIElmIGF0IGFueSBwb2ludCBpbiB0aGUgY2hhaW4gb25lIGZ1bmN0aW9uIGZhaWxzLCB0aGUgcHJvbWlzZSB3aWxsIGZhaWwgYW5kIHRoZSBleGVjdXRpb24gd2lsbCBub3QgY29udGludWUuXG4gICAqIFRoaXMgaXMgdXNlZnVsIHdoZW4gYSBjaGFpbiBvZiBldmVudHMgKHNvbWV0aW1lcyBhc3luYyBldmVudHMpIGlzIG5lZWRlZCB0byBpbml0aWFsaXplIGEgY2VydGFpbiBvYmplY3RcbiAgICogYW5kIGl0IGlzIGNydWNpYWwgdGhhdCBhbGwgY2FsbGJhY2tzIHdpbGwgYmUgZXhlY3V0ZWQuXG4gICAqIFRoZSBvcmRlciBvZiB0aGUgY2FsbGJhY2tzIGlzIGtlcHQsIGNhbGxiYWNrcyBhcmUgbm90IGV4ZWN1dGVkIHBhcmFsbGVsLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnREYXRhIC0gVGhlIGRhdGEgdG8gYmUgc2VudCB0byBlYWNoIGNhbGxiYWNrXG4gICAqIEBwYXJhbSBtYXNrIC0gaXMgdXNlZCB0byBmaWx0ZXIgb2JzZXJ2ZXJzIGRlZmF1bHRzIHRvIC0xXG4gICAqIEBwYXJhbSB0YXJnZXQgLSBkZWZpbmVzIHRoZSBjYWxsYmFjayB0YXJnZXQgKHNlZSBFdmVudFN0YXRlKVxuICAgKiBAcGFyYW0gY3VycmVudFRhcmdldCAtIGRlZmluZXMgaGUgY3VycmVudCBvYmplY3QgaW4gdGhlIGJ1YmJsaW5nIHBoYXNlXG4gICAqIEByZXR1cm5zIHdpbGwgcmV0dXJuIGEgUHJvbWlzZSB0aGFuIHJlc29sdmVzIHdoZW4gYWxsIGNhbGxiYWNrcyBleGVjdXRlZCBzdWNjZXNzZnVsbHkuXG4gICAqL1xuICBwdWJsaWMgbm90aWZ5T2JzZXJ2ZXJzV2l0aFByb21pc2UoZXZlbnREYXRhOiBULCBtYXNrOiBudW1iZXIgPSAtMSwgdGFyZ2V0PzogYW55LCBjdXJyZW50VGFyZ2V0PzogYW55KTogUHJvbWlzZTxUPiB7XG4gICAgLy8gY3JlYXRlIGFuIGVtcHR5IHByb21pc2VcbiAgICBsZXQgcDogUHJvbWlzZTxhbnk+ID0gUHJvbWlzZS5yZXNvbHZlKGV2ZW50RGF0YSlcblxuICAgIC8vIG5vIG9ic2VydmVycz8gcmV0dXJuIHRoaXMgcHJvbWlzZS5cbiAgICBpZiAoIXRoaXMuX29ic2VydmVycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBwXG4gICAgfVxuXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9ldmVudFN0YXRlXG4gICAgc3RhdGUubWFzayA9IG1hc2tcbiAgICBzdGF0ZS50YXJnZXQgPSB0YXJnZXRcbiAgICBzdGF0ZS5jdXJyZW50VGFyZ2V0ID0gY3VycmVudFRhcmdldFxuICAgIHN0YXRlLnNraXBOZXh0T2JzZXJ2ZXJzID0gZmFsc2VcblxuICAgIC8vIGV4ZWN1dGUgb25lIGNhbGxiYWNrIGFmdGVyIGFub3RoZXIgKG5vdCB1c2luZyBQcm9taXNlLmFsbCwgdGhlIG9yZGVyIGlzIGltcG9ydGFudClcbiAgICB0aGlzLl9vYnNlcnZlcnMuZm9yRWFjaCgob2JzKSA9PiB7XG4gICAgICBpZiAoc3RhdGUuc2tpcE5leHRPYnNlcnZlcnMpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAob2JzLl93aWxsQmVVbnJlZ2lzdGVyZWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAob2JzLm1hc2sgJiBtYXNrKSB7XG4gICAgICAgIGlmIChvYnMuc2NvcGUpIHtcbiAgICAgICAgICBwID0gcC50aGVuKChsYXN0UmV0dXJuZWRWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUubGFzdFJldHVyblZhbHVlID0gbGFzdFJldHVybmVkVmFsdWVcbiAgICAgICAgICAgIHJldHVybiBvYnMuY2FsbGJhY2suYXBwbHkob2JzLnNjb3BlLCBbZXZlbnREYXRhLCBzdGF0ZV0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwID0gcC50aGVuKChsYXN0UmV0dXJuZWRWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUubGFzdFJldHVyblZhbHVlID0gbGFzdFJldHVybmVkVmFsdWVcbiAgICAgICAgICAgIHJldHVybiBvYnMuY2FsbGJhY2soZXZlbnREYXRhLCBzdGF0ZSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIGlmIChvYnMudW5yZWdpc3Rlck9uTmV4dENhbGwpIHtcbiAgICAgICAgICB0aGlzLl9kZWZlclVucmVnaXN0ZXIob2JzKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcblxuICAgIC8vIHJldHVybiB0aGUgZXZlbnREYXRhXG4gICAgcmV0dXJuIHAudGhlbigoKSA9PiB7XG4gICAgICByZXR1cm4gZXZlbnREYXRhXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3RpZnkgYSBzcGVjaWZpYyBvYnNlcnZlclxuICAgKiBAcGFyYW0gb2JzZXJ2ZXIgLSBkZWZpbmVzIHRoZSBvYnNlcnZlciB0byBub3RpZnlcbiAgICogQHBhcmFtIGV2ZW50RGF0YSAtIGRlZmluZXMgdGhlIGRhdGEgdG8gYmUgc2VudCB0byBlYWNoIGNhbGxiYWNrXG4gICAqIEBwYXJhbSBtYXNrIC0gaXMgdXNlZCB0byBmaWx0ZXIgb2JzZXJ2ZXJzIGRlZmF1bHRzIHRvIC0xXG4gICAqL1xuICBwdWJsaWMgbm90aWZ5T2JzZXJ2ZXIob2JzZXJ2ZXI6IE9ic2VydmVyPFQ+LCBldmVudERhdGE6IFQsIG1hc2s6IG51bWJlciA9IC0xKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLl9ldmVudFN0YXRlXG4gICAgc3RhdGUubWFzayA9IG1hc2tcbiAgICBzdGF0ZS5za2lwTmV4dE9ic2VydmVycyA9IGZhbHNlXG5cbiAgICBvYnNlcnZlci5jYWxsYmFjayhldmVudERhdGEsIHN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIG9ic2VydmFibGUgaGFzIGF0IGxlYXN0IG9uZSBvYnNlcnZlclxuICAgKiBAcmV0dXJucyB0cnVlIGlzIHRoZSBPYnNlcnZhYmxlIGhhcyBhdCBsZWFzdCBvbmUgT2JzZXJ2ZXIgcmVnaXN0ZXJlZFxuICAgKi9cbiAgcHVibGljIGhhc09ic2VydmVycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb2JzZXJ2ZXJzLmxlbmd0aCA+IDBcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgbGlzdCBvZiBvYnNlcnZlcnNcbiAgICovXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlcnMgPSBuZXcgQXJyYXk8T2JzZXJ2ZXI8VD4+KClcbiAgICB0aGlzLl9vbk9ic2VydmVyQWRkZWQgPSBudWxsXG4gIH1cblxuICAvKipcbiAgICogQ2xvbmUgdGhlIGN1cnJlbnQgb2JzZXJ2YWJsZVxuICAgKiBAcmV0dXJucyBhIG5ldyBvYnNlcnZhYmxlXG4gICAqL1xuICBwdWJsaWMgY2xvbmUoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IE9ic2VydmFibGU8VD4oKVxuXG4gICAgcmVzdWx0Ll9vYnNlcnZlcnMgPSB0aGlzLl9vYnNlcnZlcnMuc2xpY2UoMClcblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBEb2VzIHRoaXMgb2JzZXJ2YWJsZSBoYW5kbGVzIG9ic2VydmVyIHJlZ2lzdGVyZWQgd2l0aCBhIGdpdmVuIG1hc2tcbiAgICogQHBhcmFtIG1hc2sgLSBkZWZpbmVzIHRoZSBtYXNrIHRvIGJlIHRlc3RlZFxuICAgKiBAcmV0dXJucyB3aGV0aGVyIG9yIG5vdCBvbmUgb2JzZXJ2ZXIgcmVnaXN0ZXJlZCB3aXRoIHRoZSBnaXZlbiBtYXNrIGlzIGhhbmRlbGVkXG4gICAqL1xuICBwdWJsaWMgaGFzU3BlY2lmaWNNYXNrKG1hc2s6IG51bWJlciA9IC0xKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBvYnMgb2YgdGhpcy5fb2JzZXJ2ZXJzKSB7XG4gICAgICBpZiAob2JzLm1hc2sgJiBtYXNrIHx8IG9icy5tYXNrID09PSBtYXNrKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVmZXJVbnJlZ2lzdGVyKG9ic2VydmVyOiBPYnNlcnZlcjxUPik6IHZvaWQge1xuICAgIG9ic2VydmVyLnVucmVnaXN0ZXJPbk5leHRDYWxsID0gZmFsc2VcbiAgICBvYnNlcnZlci5fd2lsbEJlVW5yZWdpc3RlcmVkID0gdHJ1ZVxuICAgIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAudGhlbi5iaW5kKFByb21pc2UucmVzb2x2ZSgpKShhc3luYyAoKSA9PiB0aGlzLl9yZW1vdmUob2JzZXJ2ZXIpKVxuICAgICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpXG4gIH1cblxuICAvLyBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIG5vdCBpdGVyYXRpbmcgb3ZlciBfb2JzZXJ2ZXJzIHRvIGF2b2lkIGNhbGxiYWNrIHNraXBwaW5nLlxuICAvLyBSZW1vdmVzIGFuIG9ic2VydmVyIGZyb20gdGhlIF9vYnNlcnZlciBBcnJheS5cbiAgcHJpdmF0ZSBfcmVtb3ZlKG9ic2VydmVyOiBudWxsIHwgT2JzZXJ2ZXI8VD4pOiBib29sZWFuIHtcbiAgICBpZiAoIW9ic2VydmVyKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleCA9IHRoaXMuX29ic2VydmVycy5pbmRleE9mKG9ic2VydmVyKVxuXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnNwbGljZShpbmRleCwgMSlcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cbiJdfQ==
@@ -25,4 +25,4 @@ export function getEthereumProvider(sendAsync) {
25
25
  }
26
26
  };
27
27
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW50ZXJuYWwvcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUJBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUF3QjtJQUMxRCxLQUFLLFVBQVUsT0FBTyxDQUFDLE9BQTJCO1FBQ2hELE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDO1lBQy9CLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNkLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQzNDLENBQUMsQ0FBQTtRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUVELE9BQU87UUFFTCxJQUFJLENBQ0YsT0FBMkIsRUFDM0IsUUFBc0Q7WUFFdEQsSUFBSSxPQUFPLElBQUksUUFBUSxJQUFJLFFBQVEsWUFBWSxRQUFRLEVBQUU7Z0JBQ3ZELE9BQU8sQ0FBQyxPQUFPLENBQUM7cUJBQ2IsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUNuQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7YUFDbkI7aUJBQU07Z0JBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFBO2FBQ2pFO1FBQ0gsQ0FBQztRQUNELFNBQVMsQ0FDUCxPQUEyQixFQUMzQixRQUFxRDtZQUVyRCxPQUFPLENBQUMsT0FBTyxDQUFDO2lCQUNiLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDbkMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3BCLENBQUM7S0FDRixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2VuZEFzeW5jUmVzcG9uc2Uge1xuICBqc29uQW55UmVzcG9uc2U6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbmRBc3luY1JlcXVlc3Qge1xuICBpZDogbnVtYmVyXG4gIG1ldGhvZDogc3RyaW5nXG4gIGpzb25QYXJhbXM6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBSUENTZW5kYWJsZU1lc3NhZ2UgPSB7XG4gIGpzb25ycGM6ICcyLjAnXG4gIGlkOiBudW1iZXJcbiAgbWV0aG9kOiBzdHJpbmdcbiAgcGFyYW1zOiBhbnlbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VEaWN0IHtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIFNlbmRBc3luY1R5cGUgPSAoXG4gIHBhcmFtczogU2VuZEFzeW5jUmVxdWVzdFxuKSA9PiBQcm9taXNlPFNlbmRBc3luY1Jlc3BvbnNlPlxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXRoZXJldW1Qcm92aWRlcihzZW5kQXN5bmM6IFNlbmRBc3luY1R5cGUpIHtcbiAgYXN5bmMgZnVuY3Rpb24gcmVxdWVzdChtZXNzYWdlOiBSUENTZW5kYWJsZU1lc3NhZ2UpIHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlbmRBc3luYyh7XG4gICAgICBpZDogbWVzc2FnZS5pZCxcbiAgICAgIG1ldGhvZDogbWVzc2FnZS5tZXRob2QsXG4gICAgICBqc29uUGFyYW1zOiBKU09OLnN0cmluZ2lmeShtZXNzYWdlLnBhcmFtcylcbiAgICB9KVxuICAgIHJldHVybiBKU09OLnBhcnNlKHJlc3BvbnNlLmpzb25BbnlSZXNwb25zZSlcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLy8gQGludGVybmFsXG4gICAgc2VuZChcbiAgICAgIG1lc3NhZ2U6IFJQQ1NlbmRhYmxlTWVzc2FnZSxcbiAgICAgIGNhbGxiYWNrPzogKGVycm9yOiBFcnJvciB8IG51bGwsIHJlc3VsdD86IGFueSkgPT4gdm9pZFxuICAgICk6IHZvaWQge1xuICAgICAgaWYgKG1lc3NhZ2UgJiYgY2FsbGJhY2sgJiYgY2FsbGJhY2sgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICByZXF1ZXN0KG1lc3NhZ2UpXG4gICAgICAgICAgLnRoZW4oKHg6IGFueSkgPT4gY2FsbGJhY2sobnVsbCwgeCkpXG4gICAgICAgICAgLmNhdGNoKGNhbGxiYWNrKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZWNlbnRyYWxhbmQgcHJvdmlkZXIgb25seSBhbGxvd3MgYXN5bmMgY2FsbHMnKVxuICAgICAgfVxuICAgIH0sXG4gICAgc2VuZEFzeW5jKFxuICAgICAgbWVzc2FnZTogUlBDU2VuZGFibGVNZXNzYWdlLFxuICAgICAgY2FsbGJhY2s6IChlcnJvcjogRXJyb3IgfCBudWxsLCByZXN1bHQ/OiBhbnkpID0+IHZvaWRcbiAgICApOiB2b2lkIHtcbiAgICAgIHJlcXVlc3QobWVzc2FnZSlcbiAgICAgICAgLnRoZW4oKHg6IGFueSkgPT4gY2FsbGJhY2sobnVsbCwgeCkpXG4gICAgICAgIC5jYXRjaChjYWxsYmFjaylcbiAgICB9XG4gIH1cbn1cbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW50ZXJuYWwvcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUJBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUF3QjtJQUMxRCxLQUFLLFVBQVUsT0FBTyxDQUFDLE9BQTJCO1FBQ2hELE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDO1lBQy9CLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNkLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQzNDLENBQUMsQ0FBQTtRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUVELE9BQU87UUFFTCxJQUFJLENBQUMsT0FBMkIsRUFBRSxRQUFzRDtZQUN0RixJQUFJLE9BQU8sSUFBSSxRQUFRLElBQUksUUFBUSxZQUFZLFFBQVEsRUFBRTtnQkFDdkQsT0FBTyxDQUFDLE9BQU8sQ0FBQztxQkFDYixJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQ25DLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTthQUNuQjtpQkFBTTtnQkFDTCxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUE7YUFDakU7UUFDSCxDQUFDO1FBQ0QsU0FBUyxDQUFDLE9BQTJCLEVBQUUsUUFBcUQ7WUFDMUYsT0FBTyxDQUFDLE9BQU8sQ0FBQztpQkFDYixJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ25DLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNwQixDQUFDO0tBQ0YsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNlbmRBc3luY1Jlc3BvbnNlIHtcbiAganNvbkFueVJlc3BvbnNlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZW5kQXN5bmNSZXF1ZXN0IHtcbiAgaWQ6IG51bWJlclxuICBtZXRob2Q6IHN0cmluZ1xuICBqc29uUGFyYW1zOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgUlBDU2VuZGFibGVNZXNzYWdlID0ge1xuICBqc29ucnBjOiAnMi4wJ1xuICBpZDogbnVtYmVyXG4gIG1ldGhvZDogc3RyaW5nXG4gIHBhcmFtczogYW55W11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlRGljdCB7XG4gIFtrZXk6IHN0cmluZ106IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBTZW5kQXN5bmNUeXBlID0gKHBhcmFtczogU2VuZEFzeW5jUmVxdWVzdCkgPT4gUHJvbWlzZTxTZW5kQXN5bmNSZXNwb25zZT5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV0aGVyZXVtUHJvdmlkZXIoc2VuZEFzeW5jOiBTZW5kQXN5bmNUeXBlKSB7XG4gIGFzeW5jIGZ1bmN0aW9uIHJlcXVlc3QobWVzc2FnZTogUlBDU2VuZGFibGVNZXNzYWdlKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZW5kQXN5bmMoe1xuICAgICAgaWQ6IG1lc3NhZ2UuaWQsXG4gICAgICBtZXRob2Q6IG1lc3NhZ2UubWV0aG9kLFxuICAgICAganNvblBhcmFtczogSlNPTi5zdHJpbmdpZnkobWVzc2FnZS5wYXJhbXMpXG4gICAgfSlcbiAgICByZXR1cm4gSlNPTi5wYXJzZShyZXNwb25zZS5qc29uQW55UmVzcG9uc2UpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIC8vIEBpbnRlcm5hbFxuICAgIHNlbmQobWVzc2FnZTogUlBDU2VuZGFibGVNZXNzYWdlLCBjYWxsYmFjaz86IChlcnJvcjogRXJyb3IgfCBudWxsLCByZXN1bHQ/OiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgIGlmIChtZXNzYWdlICYmIGNhbGxiYWNrICYmIGNhbGxiYWNrIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgcmVxdWVzdChtZXNzYWdlKVxuICAgICAgICAgIC50aGVuKCh4OiBhbnkpID0+IGNhbGxiYWNrKG51bGwsIHgpKVxuICAgICAgICAgIC5jYXRjaChjYWxsYmFjaylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRGVjZW50cmFsYW5kIHByb3ZpZGVyIG9ubHkgYWxsb3dzIGFzeW5jIGNhbGxzJylcbiAgICAgIH1cbiAgICB9LFxuICAgIHNlbmRBc3luYyhtZXNzYWdlOiBSUENTZW5kYWJsZU1lc3NhZ2UsIGNhbGxiYWNrOiAoZXJyb3I6IEVycm9yIHwgbnVsbCwgcmVzdWx0PzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICByZXF1ZXN0KG1lc3NhZ2UpXG4gICAgICAgIC50aGVuKCh4OiBhbnkpID0+IGNhbGxiYWNrKG51bGwsIHgpKVxuICAgICAgICAuY2F0Y2goY2FsbGJhY2spXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -24,8 +24,7 @@ export function createRendererTransport(engineApi) {
24
24
  }
25
25
  },
26
26
  filter(message) {
27
- if ((message.type === CrdtMessageType.PUT_COMPONENT ||
28
- message.type === CrdtMessageType.DELETE_COMPONENT) &&
27
+ if ((message.type === CrdtMessageType.PUT_COMPONENT || message.type === CrdtMessageType.DELETE_COMPONENT) &&
29
28
  message.componentId > MAX_STATIC_COMPONENT) {
30
29
  return false;
31
30
  }
@@ -34,4 +33,4 @@ export function createRendererTransport(engineApi) {
34
33
  };
35
34
  return rendererTransport;
36
35
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXJUcmFuc3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvdHJhbnNwb3J0cy9yZW5kZXJlclRyYW5zcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQVloRixNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLFNBQWdDO0lBRWhDLEtBQUssVUFBVSxjQUFjLENBQUMsT0FBbUI7UUFDL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsa0JBQWtCLENBQUM7WUFDbEQsSUFBSSxFQUFFLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQztTQUM5QixDQUFDLENBQUE7UUFFRixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3JELElBQUksaUJBQWlCLENBQUMsU0FBUyxFQUFFO2dCQUMvQixLQUFLLE1BQU0sU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUU7b0JBQ3JDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtpQkFDdkM7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELE1BQU0saUJBQWlCLEdBQWM7UUFDbkMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQ2hCLElBQUk7Z0JBQ0YsTUFBTSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUE7YUFDOUI7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUNwQixRQUFRLENBQUE7YUFDVDtRQUNILENBQUM7UUFDRCxNQUFNLENBQUMsT0FBeUI7WUFFOUIsSUFDRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLGFBQWE7Z0JBQzdDLE9BQU8sQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLGdCQUFnQixDQUFDO2dCQUVuRCxPQUFlLENBQUMsV0FBVyxHQUFHLG9CQUFvQixFQUNuRDtnQkFDQSxPQUFPLEtBQUssQ0FBQTthQUNiO1lBRUQsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFBO1FBQ2xCLENBQUM7S0FDRixDQUFBO0lBRUQsT0FBTyxpQkFBaUIsQ0FBQTtBQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNwb3J0LCBUcmFuc3BvcnRNZXNzYWdlLCBDcmR0TWVzc2FnZVR5cGUgfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IE1BWF9TVEFUSUNfQ09NUE9ORU5UIH0gZnJvbSAnQGRjbC9lY3MvZGlzdC9jb21wb25lbnRzL2NvbXBvbmVudC1udW1iZXInXG5pbXBvcnQgdHlwZSB7XG4gIENyZHRTZW5kVG9SZW5kZXJlclJlcXVlc3QsXG4gIENyZHRTZW5kVG9SZXNwb25zZVxufSBmcm9tICd+c3lzdGVtL0VuZ2luZUFwaSdcblxuZXhwb3J0IHR5cGUgRW5naW5lQXBpRm9yVHJhbnNwb3J0ID0ge1xuICBjcmR0U2VuZFRvUmVuZGVyZXIoXG4gICAgYm9keTogQ3JkdFNlbmRUb1JlbmRlcmVyUmVxdWVzdFxuICApOiBQcm9taXNlPENyZHRTZW5kVG9SZXNwb25zZT5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlbmRlcmVyVHJhbnNwb3J0KFxuICBlbmdpbmVBcGk6IEVuZ2luZUFwaUZvclRyYW5zcG9ydFxuKTogVHJhbnNwb3J0IHtcbiAgYXN5bmMgZnVuY3Rpb24gc2VuZFRvUmVuZGVyZXIobWVzc2FnZTogVWludDhBcnJheSkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZW5naW5lQXBpLmNyZHRTZW5kVG9SZW5kZXJlcih7XG4gICAgICBkYXRhOiBuZXcgVWludDhBcnJheShtZXNzYWdlKVxuICAgIH0pXG5cbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuZGF0YSAmJiByZXNwb25zZS5kYXRhLmxlbmd0aCkge1xuICAgICAgaWYgKHJlbmRlcmVyVHJhbnNwb3J0Lm9ubWVzc2FnZSkge1xuICAgICAgICBmb3IgKGNvbnN0IGJ5dGVBcnJheSBvZiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgcmVuZGVyZXJUcmFuc3BvcnQub25tZXNzYWdlKGJ5dGVBcnJheSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlbmRlcmVyVHJhbnNwb3J0OiBUcmFuc3BvcnQgPSB7XG4gICAgYXN5bmMgc2VuZChtZXNzYWdlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBzZW5kVG9SZW5kZXJlcihtZXNzYWdlKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICAgICAgZGVidWdnZXJcbiAgICAgIH1cbiAgICB9LFxuICAgIGZpbHRlcihtZXNzYWdlOiBUcmFuc3BvcnRNZXNzYWdlKSB7XG4gICAgICAvLyBPbmx5IHNlbmQgcmVuZGVyZXIgY29tcG9uZW50cyAoUHJvdG8gR2VuZXJhdGVkKVxuICAgICAgaWYgKFxuICAgICAgICAobWVzc2FnZS50eXBlID09PSBDcmR0TWVzc2FnZVR5cGUuUFVUX0NPTVBPTkVOVCB8fFxuICAgICAgICAgIG1lc3NhZ2UudHlwZSA9PT0gQ3JkdE1lc3NhZ2VUeXBlLkRFTEVURV9DT01QT05FTlQpICYmXG4gICAgICAgIC8vIGZpbHRlciBvdXQgbWVzc2FnZXMgZm9yIG5vbi1jb3JlIGNvbXBvbmVudHNcbiAgICAgICAgKG1lc3NhZ2UgYXMgYW55KS5jb21wb25lbnRJZCA+IE1BWF9TVEFUSUNfQ09NUE9ORU5UXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAhIW1lc3NhZ2VcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVuZGVyZXJUcmFuc3BvcnRcbn1cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXJUcmFuc3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvdHJhbnNwb3J0cy9yZW5kZXJlclRyYW5zcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQU9oRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsU0FBZ0M7SUFDdEUsS0FBSyxVQUFVLGNBQWMsQ0FBQyxPQUFtQjtRQUMvQyxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztZQUNsRCxJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDO1NBQzlCLENBQUMsQ0FBQTtRQUVGLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckQsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7Z0JBQy9CLEtBQUssTUFBTSxTQUFTLElBQUksUUFBUSxDQUFDLElBQUksRUFBRTtvQkFDckMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2lCQUN2QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsTUFBTSxpQkFBaUIsR0FBYztRQUNuQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDaEIsSUFBSTtnQkFDRixNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTthQUM5QjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ3BCLFFBQVEsQ0FBQTthQUNUO1FBQ0gsQ0FBQztRQUNELE1BQU0sQ0FBQyxPQUF5QjtZQUU5QixJQUNFLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLGdCQUFnQixDQUFDO2dCQUVwRyxPQUFlLENBQUMsV0FBVyxHQUFHLG9CQUFvQixFQUNuRDtnQkFDQSxPQUFPLEtBQUssQ0FBQTthQUNiO1lBRUQsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFBO1FBQ2xCLENBQUM7S0FDRixDQUFBO0lBRUQsT0FBTyxpQkFBaUIsQ0FBQTtBQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNwb3J0LCBUcmFuc3BvcnRNZXNzYWdlLCBDcmR0TWVzc2FnZVR5cGUgfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IE1BWF9TVEFUSUNfQ09NUE9ORU5UIH0gZnJvbSAnQGRjbC9lY3MvZGlzdC9jb21wb25lbnRzL2NvbXBvbmVudC1udW1iZXInXG5pbXBvcnQgdHlwZSB7IENyZHRTZW5kVG9SZW5kZXJlclJlcXVlc3QsIENyZHRTZW5kVG9SZXNwb25zZSB9IGZyb20gJ35zeXN0ZW0vRW5naW5lQXBpJ1xuXG5leHBvcnQgdHlwZSBFbmdpbmVBcGlGb3JUcmFuc3BvcnQgPSB7XG4gIGNyZHRTZW5kVG9SZW5kZXJlcihib2R5OiBDcmR0U2VuZFRvUmVuZGVyZXJSZXF1ZXN0KTogUHJvbWlzZTxDcmR0U2VuZFRvUmVzcG9uc2U+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZW5kZXJlclRyYW5zcG9ydChlbmdpbmVBcGk6IEVuZ2luZUFwaUZvclRyYW5zcG9ydCk6IFRyYW5zcG9ydCB7XG4gIGFzeW5jIGZ1bmN0aW9uIHNlbmRUb1JlbmRlcmVyKG1lc3NhZ2U6IFVpbnQ4QXJyYXkpIHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVuZ2luZUFwaS5jcmR0U2VuZFRvUmVuZGVyZXIoe1xuICAgICAgZGF0YTogbmV3IFVpbnQ4QXJyYXkobWVzc2FnZSlcbiAgICB9KVxuXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmRhdGEgJiYgcmVzcG9uc2UuZGF0YS5sZW5ndGgpIHtcbiAgICAgIGlmIChyZW5kZXJlclRyYW5zcG9ydC5vbm1lc3NhZ2UpIHtcbiAgICAgICAgZm9yIChjb25zdCBieXRlQXJyYXkgb2YgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIHJlbmRlcmVyVHJhbnNwb3J0Lm9ubWVzc2FnZShieXRlQXJyYXkpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCByZW5kZXJlclRyYW5zcG9ydDogVHJhbnNwb3J0ID0ge1xuICAgIGFzeW5jIHNlbmQobWVzc2FnZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgc2VuZFRvUmVuZGVyZXIobWVzc2FnZSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICAgIGRlYnVnZ2VyXG4gICAgICB9XG4gICAgfSxcbiAgICBmaWx0ZXIobWVzc2FnZTogVHJhbnNwb3J0TWVzc2FnZSkge1xuICAgICAgLy8gT25seSBzZW5kIHJlbmRlcmVyIGNvbXBvbmVudHMgKFByb3RvIEdlbmVyYXRlZClcbiAgICAgIGlmIChcbiAgICAgICAgKG1lc3NhZ2UudHlwZSA9PT0gQ3JkdE1lc3NhZ2VUeXBlLlBVVF9DT01QT05FTlQgfHwgbWVzc2FnZS50eXBlID09PSBDcmR0TWVzc2FnZVR5cGUuREVMRVRFX0NPTVBPTkVOVCkgJiZcbiAgICAgICAgLy8gZmlsdGVyIG91dCBtZXNzYWdlcyBmb3Igbm9uLWNvcmUgY29tcG9uZW50c1xuICAgICAgICAobWVzc2FnZSBhcyBhbnkpLmNvbXBvbmVudElkID4gTUFYX1NUQVRJQ19DT01QT05FTlRcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICEhbWVzc2FnZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZW5kZXJlclRyYW5zcG9ydFxufVxuIl19
package/messageBus.js CHANGED
@@ -40,4 +40,4 @@ export class MessageBus {
40
40
  });
41
41
  }
42
42
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZUJ1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNyYy9tZXNzYWdlQnVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVyxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDdkQsT0FBTyxLQUFLLHdCQUF3QixNQUFNLGtDQUFrQyxDQUFBO0FBTTVFLE1BQU0sT0FBTyxVQUFVO0lBSXJCO1FBSFEsaUJBQVksR0FBYSxFQUFFLENBQUE7UUFDM0IsYUFBUSxHQUFHLEtBQUssQ0FBQTtJQUVULENBQUM7SUFFaEIsRUFBRSxDQUNBLE9BQWUsRUFDZixRQUE4QztRQUU5QyxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUUvQixJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUFFO2dCQUN6QixRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7YUFDOUI7UUFDSCxDQUFDLENBQUUsQ0FBQTtJQUNMLENBQUM7SUFHRCxPQUFPLENBQUMsT0FBZTtRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUUvQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWUsRUFBRSxPQUF5QjtRQUM3QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUMzQixjQUFjLENBQUMsZUFBZSxDQUFDO1lBQzdCLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLEtBQUs7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFNO1FBQzFDLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFNO1FBRXpCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFHLENBQUE7UUFFMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7UUFFcEIsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzdDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtZQUNyQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDZCxDQUFDLEVBQ0QsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3ZCLENBQUMsQ0FDRixDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2ZXIgfSBmcm9tICcuL2ludGVybmFsL09ic2VydmFibGUnXG5pbXBvcnQgeyBJRXZlbnRzLCBvbkNvbW1zTWVzc2FnZSB9IGZyb20gJy4vb2JzZXJ2YWJsZXMnXG5pbXBvcnQgKiBhcyBjb21tdW5pY2F0aW9uc0NvbnRyb2xsZXIgZnJvbSAnfnN5c3RlbS9Db21tdW5pY2F0aW9uc0NvbnRyb2xsZXInXG5cbi8qKlxuICogQGFscGhhXG4gKiBAZGVwcmVjYXRlZCB0aGlzIHdpbGwgb25seSBleGlzdCBmb3IgYSBmZXcgcmVsZWFzZXMgaW4gRUNTN1xuICovXG5leHBvcnQgY2xhc3MgTWVzc2FnZUJ1cyB7XG4gIHByaXZhdGUgbWVzc2FnZVF1ZXVlOiBzdHJpbmdbXSA9IFtdXG4gIHByaXZhdGUgZmx1c2hpbmcgPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBvbihcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgY2FsbGJhY2s6ICh2YWx1ZTogYW55LCBzZW5kZXI6IHN0cmluZykgPT4gdm9pZFxuICApOiBPYnNlcnZlcjxJRXZlbnRzWydjb21tcyddPiB7XG4gICAgcmV0dXJuIG9uQ29tbXNNZXNzYWdlLmFkZCgoZSkgPT4ge1xuICAgICAgY29uc3QgbSA9IEpTT04ucGFyc2UoZS5tZXNzYWdlKVxuXG4gICAgICBpZiAobS5tZXNzYWdlID09PSBtZXNzYWdlKSB7XG4gICAgICAgIGNhbGxiYWNrKG0ucGF5bG9hZCwgZS5zZW5kZXIpXG4gICAgICB9XG4gICAgfSkhXG4gIH1cblxuICAvLyBAaW50ZXJuYWxcbiAgc2VuZFJhdyhtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1lc3NhZ2VRdWV1ZS5wdXNoKG1lc3NhZ2UpXG5cbiAgICB0aGlzLmZsdXNoKClcbiAgfVxuXG4gIGVtaXQobWVzc2FnZTogc3RyaW5nLCBwYXlsb2FkOiBSZWNvcmQ8YW55LCBhbnk+KSB7XG4gICAgY29uc3QgbWVzc2FnZVRvU2VuZCA9IEpTT04uc3RyaW5naWZ5KHsgbWVzc2FnZSwgcGF5bG9hZCB9KVxuICAgIHRoaXMuc2VuZFJhdyhtZXNzYWdlVG9TZW5kKVxuICAgIG9uQ29tbXNNZXNzYWdlLm5vdGlmeU9ic2VydmVycyh7XG4gICAgICBtZXNzYWdlOiBtZXNzYWdlVG9TZW5kLFxuICAgICAgc2VuZGVyOiAnc2VsZidcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBmbHVzaCgpIHtcbiAgICBpZiAodGhpcy5tZXNzYWdlUXVldWUubGVuZ3RoID09PSAwKSByZXR1cm5cbiAgICBpZiAodGhpcy5mbHVzaGluZykgcmV0dXJuXG5cbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlUXVldWUuc2hpZnQoKSFcblxuICAgIHRoaXMuZmx1c2hpbmcgPSB0cnVlXG5cbiAgICBjb21tdW5pY2F0aW9uc0NvbnRyb2xsZXIuc2VuZCh7IG1lc3NhZ2UgfSkudGhlbihcbiAgICAgIChfKSA9PiB7XG4gICAgICAgIHRoaXMuZmx1c2hpbmcgPSBmYWxzZVxuICAgICAgICB0aGlzLmZsdXNoKClcbiAgICAgIH0sXG4gICAgICAoXykgPT4ge1xuICAgICAgICB0aGlzLmZsdXNoaW5nID0gZmFsc2VcbiAgICAgIH1cbiAgICApXG4gIH1cbn1cbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZUJ1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNyYy9tZXNzYWdlQnVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVyxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDdkQsT0FBTyxLQUFLLHdCQUF3QixNQUFNLGtDQUFrQyxDQUFBO0FBTTVFLE1BQU0sT0FBTyxVQUFVO0lBSXJCO1FBSFEsaUJBQVksR0FBYSxFQUFFLENBQUE7UUFDM0IsYUFBUSxHQUFHLEtBQUssQ0FBQTtJQUVULENBQUM7SUFFaEIsRUFBRSxDQUFDLE9BQWUsRUFBRSxRQUE4QztRQUNoRSxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUUvQixJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUFFO2dCQUN6QixRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7YUFDOUI7UUFDSCxDQUFDLENBQUUsQ0FBQTtJQUNMLENBQUM7SUFHRCxPQUFPLENBQUMsT0FBZTtRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUUvQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWUsRUFBRSxPQUF5QjtRQUM3QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUMzQixjQUFjLENBQUMsZUFBZSxDQUFDO1lBQzdCLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVPLEtBQUs7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFNO1FBQzFDLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFNO1FBRXpCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFHLENBQUE7UUFFMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7UUFFcEIsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzdDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtZQUNyQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDZCxDQUFDLEVBQ0QsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3ZCLENBQUMsQ0FDRixDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2ZXIgfSBmcm9tICcuL2ludGVybmFsL09ic2VydmFibGUnXG5pbXBvcnQgeyBJRXZlbnRzLCBvbkNvbW1zTWVzc2FnZSB9IGZyb20gJy4vb2JzZXJ2YWJsZXMnXG5pbXBvcnQgKiBhcyBjb21tdW5pY2F0aW9uc0NvbnRyb2xsZXIgZnJvbSAnfnN5c3RlbS9Db21tdW5pY2F0aW9uc0NvbnRyb2xsZXInXG5cbi8qKlxuICogQGFscGhhXG4gKiBAZGVwcmVjYXRlZCB0aGlzIHdpbGwgb25seSBleGlzdCBmb3IgYSBmZXcgcmVsZWFzZXMgaW4gRUNTN1xuICovXG5leHBvcnQgY2xhc3MgTWVzc2FnZUJ1cyB7XG4gIHByaXZhdGUgbWVzc2FnZVF1ZXVlOiBzdHJpbmdbXSA9IFtdXG4gIHByaXZhdGUgZmx1c2hpbmcgPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBvbihtZXNzYWdlOiBzdHJpbmcsIGNhbGxiYWNrOiAodmFsdWU6IGFueSwgc2VuZGVyOiBzdHJpbmcpID0+IHZvaWQpOiBPYnNlcnZlcjxJRXZlbnRzWydjb21tcyddPiB7XG4gICAgcmV0dXJuIG9uQ29tbXNNZXNzYWdlLmFkZCgoZSkgPT4ge1xuICAgICAgY29uc3QgbSA9IEpTT04ucGFyc2UoZS5tZXNzYWdlKVxuXG4gICAgICBpZiAobS5tZXNzYWdlID09PSBtZXNzYWdlKSB7XG4gICAgICAgIGNhbGxiYWNrKG0ucGF5bG9hZCwgZS5zZW5kZXIpXG4gICAgICB9XG4gICAgfSkhXG4gIH1cblxuICAvLyBAaW50ZXJuYWxcbiAgc2VuZFJhdyhtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1lc3NhZ2VRdWV1ZS5wdXNoKG1lc3NhZ2UpXG5cbiAgICB0aGlzLmZsdXNoKClcbiAgfVxuXG4gIGVtaXQobWVzc2FnZTogc3RyaW5nLCBwYXlsb2FkOiBSZWNvcmQ8YW55LCBhbnk+KSB7XG4gICAgY29uc3QgbWVzc2FnZVRvU2VuZCA9IEpTT04uc3RyaW5naWZ5KHsgbWVzc2FnZSwgcGF5bG9hZCB9KVxuICAgIHRoaXMuc2VuZFJhdyhtZXNzYWdlVG9TZW5kKVxuICAgIG9uQ29tbXNNZXNzYWdlLm5vdGlmeU9ic2VydmVycyh7XG4gICAgICBtZXNzYWdlOiBtZXNzYWdlVG9TZW5kLFxuICAgICAgc2VuZGVyOiAnc2VsZidcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBmbHVzaCgpIHtcbiAgICBpZiAodGhpcy5tZXNzYWdlUXVldWUubGVuZ3RoID09PSAwKSByZXR1cm5cbiAgICBpZiAodGhpcy5mbHVzaGluZykgcmV0dXJuXG5cbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlUXVldWUuc2hpZnQoKSFcblxuICAgIHRoaXMuZmx1c2hpbmcgPSB0cnVlXG5cbiAgICBjb21tdW5pY2F0aW9uc0NvbnRyb2xsZXIuc2VuZCh7IG1lc3NhZ2UgfSkudGhlbihcbiAgICAgIChfKSA9PiB7XG4gICAgICAgIHRoaXMuZmx1c2hpbmcgPSBmYWxzZVxuICAgICAgICB0aGlzLmZsdXNoKClcbiAgICAgIH0sXG4gICAgICAoXykgPT4ge1xuICAgICAgICB0aGlzLmZsdXNoaW5nID0gZmFsc2VcbiAgICAgIH1cbiAgICApXG4gIH1cbn1cbiJdfQ==
package/observables.js CHANGED
@@ -72,4 +72,4 @@ export async function pollEvents(sendBatch) {
72
72
  }
73
73
  }
74
74
  }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvb2JzZXJ2YWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBSWxELElBQUksaUJBQWlCLEdBRUEsS0FBSyxJQUFJLEVBQUUsR0FBRSxDQUFDLENBQUE7QUFpWW5DLFNBQVMsZ0JBQWdCLENBQUMsU0FBaUI7SUFDekMsT0FBTyxHQUFHLEVBQUU7UUFDVixpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQU9ELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksVUFBVSxDQUNsRCxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FDakMsQ0FBQTtBQUtELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxzQkFBc0IsQ0FBQTtBQU9sRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLFVBQVUsQ0FDbEQsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQ2pDLENBQUE7QUFLRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLENBQUE7QUFPbEQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxVQUFVLENBQ2xELGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUMvQixDQUFBO0FBTUQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxVQUFVLENBRXhELGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQTtBQU12QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxVQUFVLENBQ3hDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUMvQixDQUFBO0FBTUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxVQUFV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ZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuL2ludGVybmFsL09ic2VydmFibGUnXG5pbXBvcnQgeyBRdWF0ZXJuaW9uVHlwZSwgVmVjdG9yM1R5cGUgfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IE1hbnlFbnRpdHlBY3Rpb24sIFNlbmRCYXRjaFJlc3BvbnNlIH0gZnJvbSAnfnN5c3RlbS9FbmdpbmVBcGknXG5cbmxldCBzdWJzY3JpYmVGdW5jdGlvbjogKGV2ZW50OiB7XG4gIGV2ZW50SWQ6IHN0cmluZ1xufSkgPT4gUHJvbWlzZTxhbnk+ID0gYXN5bmMgKCkgPT4ge31cblxuLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCB0eXBlIElucHV0RXZlbnRSZXN1bHQgPSB7XG4gIC8qKiBPcmlnaW4gb2YgdGhlIHJheSwgcmVsYXRpdmUgdG8gdGhlIHNjZW5lICovXG4gIG9yaWdpbjogVmVjdG9yM1R5cGVcbiAgLyoqIERpcmVjdGlvbiB2ZWN0b3Igb2YgdGhlIHJheSAobm9ybWFsaXplZCkgKi9cbiAgZGlyZWN0aW9uOiBWZWN0b3IzVHlwZVxuICAvKiogSUQgb2YgdGhlIHBvaW50ZXIgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50ICovXG4gIGJ1dHRvbklkOiBudW1iZXJcbiAgLyoqIERvZXMgdGhpcyBwb2ludGVyIGV2ZW50IGhpdCBhbnkgb2JqZWN0PyAqL1xuICBoaXQ/OiB7XG4gICAgLyoqIExlbmd0aCBvZiB0aGUgcmF5ICovXG4gICAgbGVuZ3RoOiBudW1iZXJcbiAgICAvKiogSWYgdGhlIHJheSBoaXRzIGEgbWVzaCB0aGUgaW50ZXJzZWN0aW9uIHBvaW50IHdpbGwgYmUgdGhpcyAqL1xuICAgIGhpdFBvaW50OiBWZWN0b3IzVHlwZVxuICAgIC8qKiBJZiB0aGUgbWVzaCBoYXMgYSBuYW1lLCBpdCB3aWxsIGJlIGFzc2lnbmVkIHRvIG1lc2hOYW1lICovXG4gICAgbWVzaE5hbWU6IHN0cmluZ1xuICAgIC8qKiBOb3JtYWwgb2YgdGhlIGhpdCAqL1xuICAgIG5vcm1hbDogVmVjdG9yM1R5cGVcbiAgICAvKiogTm9ybWFsIG9mIHRoZSBoaXQsIGluIHdvcmxkIHNwYWNlICovXG4gICAgd29ybGROb3JtYWw6IFZlY3RvcjNUeXBlXG4gICAgLyoqIEhpdCBlbnRpdHkgSUQgaWYgYW55ICovXG4gICAgZW50aXR5SWQ6IHVua25vd25cbiAgfVxufVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgR2xvYmFsSW5wdXRFdmVudFJlc3VsdCA9IElucHV0RXZlbnRSZXN1bHQgJiB7XG4gIC8qKlxuICAgKiBET1dOID0gMCxcbiAgICogVVAgPSAxXG4gICAqL1xuICB0eXBlOiAwIHwgMVxufVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgUmF5Y2FzdFJlc3BvbnNlUGF5bG9hZDxUPiA9IHtcbiAgcXVlcnlJZDogc3RyaW5nXG4gIHF1ZXJ5VHlwZTogc3RyaW5nXG4gIHBheWxvYWQ6IFRcbn1cblxuLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCB0eXBlIEdpem1vRHJhZ0VuZEV2ZW50ID0ge1xuICB0eXBlOiAnZ2l6bW9EcmFnRW5kZWQnXG4gIHRyYW5zZm9ybXM6IEFycmF5PHtcbiAgICBwb3NpdGlvbjogVmVjdG9yM1R5cGVcbiAgICByb3RhdGlvbjogUXVhdGVybmlvblR5cGVcbiAgICBzY2FsZTogVmVjdG9yM1R5cGVcbiAgICBlbnRpdHlJZDogdW5rbm93blxuICB9PlxufVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgR2l6bW9TZWxlY3RlZEV2ZW50ID0ge1xuICB0eXBlOiAnZ2l6bW9TZWxlY3RlZCdcbiAgZ2l6bW9UeXBlOiAnTU9WRScgfCAnUk9UQVRFJyB8ICdTQ0FMRScgfCAnTk9ORSdcbiAgZW50aXRpZXM6IHN0cmluZ1tdXG59XG5cbi8vLyAtLS0gRVZFTlRTIC0tLVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgSUV2ZW50TmFtZXMgPSBrZXlvZiBJRXZlbnRzXG5cbi8qKiBAcHVibGljICovXG5leHBvcnQgdHlwZSBFbmdpbmVFdmVudDxUIGV4dGVuZHMgSUV2ZW50TmFtZXMgPSBJRXZlbnROYW1lcywgViA9IElFdmVudHNbVF0+ID0ge1xuICAvKiogZXZlbnROYW1lICovXG4gIHR5cGU6IFRcbiAgZGF0YTogUmVhZG9ubHk8Vj5cbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKiBOb3RlOiBEb24ndCB1c2UgYG9uYCBwcmVmaXggZm9yIElFdmVudHMgdG8gYXZvaWQgcmVkdW5kYW5jeSB3aXRoIGBldmVudC5vbihcIm9uRXZlbnROYW1lXCIpYCBzeW50YXguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV2ZW50cyB7XG4gIC8qKlxuICAgKiBgcG9zaXRpb25DaGFuZ2VkYCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNhbWVyYSBjaGFuZ2VzXG4gICAqIFRoaXMgZXZlbnQgaXMgdGhyb3R0bGVkIHRvIDEwIHRpbWVzIHBlciBzZWNvbmQuXG4gICAqL1xuICBwb3NpdGlvbkNoYW5nZWQ6IHtcbiAgICAvKiogQ2FtZXJhIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBiYXNlIHBhcmNlbCBvZiB0aGUgc2NlbmUgKi9cbiAgICBwb3NpdGlvbjogVmVjdG9yM1R5cGVcblxuICAgIC8qKiBDYW1lcmEgcG9zaXRpb24sIHRoaXMgaXMgYSBhYnNvbHV0ZSB3b3JsZCBwb3NpdGlvbiAqL1xuICAgIGNhbWVyYVBvc2l0aW9uOiBWZWN0b3IzVHlwZVxuXG4gICAgLyoqIEV5ZSBoZWlnaHQsIGluIG1ldGVycy4gKi9cbiAgICBwbGF5ZXJIZWlnaHQ6IG51bWJlclxuICB9XG5cbiAgLyoqXG4gICAqIGByb3RhdGlvbkNoYW5nZWRgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSByb3RhdGlvbiBvZiB0aGUgY2FtZXJhIGNoYW5nZXMuXG4gICAqIFRoaXMgZXZlbnQgaXMgdGhyb3R0bGVkIHRvIDEwIHRpbWVzIHBlciBzZWNvbmQuXG4gICAqL1xuICByb3RhdGlvbkNoYW5nZWQ6IHtcbiAgICAvKiogRGVncmVlIHZlY3Rvci4gU2FtZSBhcyBlbnRpdGllcyAqL1xuICAgIHJvdGF0aW9uOiBWZWN0b3IzVHlwZVxuICAgIC8qKiBSb3RhdGlvbiBxdWF0ZXJuaW9uLCB1c2VmdWwgaW4gc29tZSBzY2VuYXJpb3MuICovXG4gICAgcXVhdGVybmlvbjogUXVhdGVybmlvblR5cGVcbiAgfVxuXG4gIC8qKlxuICAgKiBgY2FtZXJhTW9kZUNoYW5nZWRgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgdGhlIGNhbWVyYSBtb2RlXG4gICAqL1xuICBjYW1lcmFNb2RlQ2hhbmdlZDoge1xuICAgIC8qKlxuICAgICAqIEZJUlNUX1BFUlNPTiA9IDAsXG4gICAgICogVEhJUkRfUEVSU09OID0gMSxcbiAgICAgKiBGUkVFX0NBTUVSQSA9IDJcbiAgICAgKi9cbiAgICBjYW1lcmFNb2RlOiAwIHwgMSB8IDJcbiAgfVxuXG4gIC8qKlxuICAgKiBgaWRsZVN0YXRlQ2hhbmdlZGAgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgbm90IG1vdmVzIGZvciBhIGRlZmluZWQgcGVyaW9kIG9mIHRpbWVcbiAgICovXG4gIGlkbGVTdGF0ZUNoYW5nZWQ6IHtcbiAgICBpc0lkbGU6IGJvb2xlYW5cbiAgfVxuXG4gIHBsYXllckV4cHJlc3Npb246IHtcbiAgICBleHByZXNzaW9uSWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIGBwb2ludGVyVXBgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHJlbGVhc2VzIGFuIGlucHV0IHBvaW50ZXIuXG4gICAqIEl0IGNvdWxkIGJlIGEgVlIgY29udHJvbGxlciwgYSB0b3VjaCBzY3JlZW4gb3IgdGhlIG1vdXNlLlxuICAgKi9cbiAgcG9pbnRlclVwOiBJbnB1dEV2ZW50UmVzdWx0XG5cbiAgLyoqXG4gICAqIGBwb2ludGVyRG93bmAgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgcHJlc3MgYW4gaW5wdXQgcG9pbnRlci5cbiAgICogSXQgY291bGQgYmUgYSBWUiBjb250cm9sbGVyLCBhIHRvdWNoIHNjcmVlbiBvciB0aGUgbW91c2UuXG4gICAqL1xuICBwb2ludGVyRG93bjogSW5wdXRFdmVudFJlc3VsdFxuXG4gIC8qKlxuICAgKiBgcG9pbnRlckV2ZW50YCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBwcmVzcyBvciByZWxlYXNlcyBhbiBpbnB1dCBwb2ludGVyLlxuICAgKiBJdCBjb3VsZCBiZSBhIFZSIGNvbnRyb2xsZXIsIGEgdG91Y2ggc2NyZWVuIG9yIHRoZSBtb3VzZS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGFjdGlvbkJ1dHRvbkV2ZW50IGluc3RlYWRcbiAgICovXG4gIHBvaW50ZXJFdmVudDogR2xvYmFsSW5wdXRFdmVudFJlc3VsdFxuXG4gIC8qKlxuICAgKiBgYWN0aW9uQnV0dG9uRXZlbnRgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHByZXNzIG9yIHJlbGVhc2VzIGFuIGlucHV0IHBvaW50ZXIuXG4gICAqIEl0IGNvdWxkIGJlIGEgVlIgY29udHJvbGxlciwgYSB0b3VjaCBzY3JlZW4gb3IgdGhlIG1vdXNlLlxuICAgKlxuICAgKiBUaGlzIGV2ZW50IGlzIGV4YWN0bHkgdGhlIHNhbWUgYXMgYHBvaW50ZXJFdmVudGAgYnV0IHRoZSBsb2dpYyBpbiB0aGUgRUNTIGhhZCBhbiB1bnNvbHZhYmxlXG4gICAqIGNvbmRpdGlvbiB0aGF0IHJlcXVpcmVkIHVzIHRvIGNyZWF0ZSB0aGlzIG5ldyBldmVudCB0byBoYW5kbGUgbW9yZSBjYXNlcyBmb3IgbmV3IGJ1dHRvbnMuXG4gICAqL1xuICBhY3Rpb25CdXR0b25FdmVudDogR2xvYmFsSW5wdXRFdmVudFJlc3VsdFxuXG4gIC8qKlxuICAgKiBgcmF5Y2FzdFJlc3BvbnNlYCBpcyB0cmlnZ2VyZWQgaW4gcmVzcG9uc2UgdG8gYSByYXljYXN0IHF1ZXJ5XG4gICAqL1xuICByYXljYXN0UmVzcG9uc2U6IFJheWNhc3RSZXNwb25zZVBheWxvYWQ8YW55PlxuXG4gIC8qKlxuICAgKiBgY2hhdE1lc3NhZ2VgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHNlbmRzIGEgbWVzc2FnZSB0aHJvdWdoIGNoYXQgZW50aXR5LlxuICAgKi9cbiAgY2hhdE1lc3NhZ2U6IHtcbiAgICBpZDogc3RyaW5nXG4gICAgc2VuZGVyOiBzdHJpbmdcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgICBpc0NvbW1hbmQ6IGJvb2xlYW5cbiAgfVxuXG4gIC8qKlxuICAgKiBgb25DaGFuZ2VgIGlzIHRyaWdnZXJlZCB3aGVuIGFuIGVudGl0eSBjaGFuZ2VzIGl0cyBvd24gaW50ZXJuYWwgc3RhdGUuXG4gICAqIERpc3BhdGNoZWQgYnkgdGhlIGB1aS0qYCBlbnRpdGllcyB3aGVuIHRoZWlyIHZhbHVlIGlzIGNoYW5nZWQuIEl0IHRyaWdnZXJzIGEgY2FsbGJhY2suXG4gICAqIE5vdGljZTogT25seSBlbnRpdGllcyB3aXRoIElEIHdpbGwgYmUgbGlzdGVuaW5nIGZvciBjbGljayBldmVudHMuXG4gICAqL1xuICBvbkNoYW5nZToge1xuICAgIHZhbHVlPzogYW55XG4gICAgLyoqIElEIG9mIHRoZSBwb2ludGVyIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudCAqL1xuICAgIHBvaW50ZXJJZD86IG51bWJlclxuICB9XG5cbiAgLyoqXG4gICAqIGBvbkVudGVyYCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBoaXRzIHRoZSBcIkVudGVyXCIga2V5IGZyb20gdGhlIGtleWJvYXJkXG4gICAqIFVzZWQgcHJpbmNpcGFsbHkgYnkgdGhlIENoYXQgaW50ZXJuYWwgc2NlbmVcbiAgICovXG4gIG9uRW50ZXI6IHVua25vd25cblxuICAvKipcbiAgICogYG9uUG9pbnRlckxvY2tgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGUgd29ybGQgY2FudmFzIGFuZCB0aGVcbiAgICogcG9pbnRlciBsb2NrcyB0byBpdCBzbyB0aGUgcG9pbnRlciBtb3ZlcyB0aGUgY2FtZXJhXG4gICAqL1xuICBvblBvaW50ZXJMb2NrOiB7XG4gICAgbG9ja2VkPzogYm9vbGVhblxuICB9XG5cbiAgLyoqXG4gICAqIGBvbkFuaW1hdGlvbkVuZGAgaXMgdHJpZ2dlcmVkIHdoZW4gYW4gYW5pbWF0aW9uIGNsaXAgZ2V0cyBmaW5pc2hcbiAgICovXG4gIG9uQW5pbWF0aW9uRW5kOiB7XG4gICAgY2xpcE5hbWU6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIGBvbkZvY3VzYCBpcyB0cmlnZ2VyZWQgd2hlbiBhbiBlbnRpdHkgZm9jdXMgaXMgYWN0aXZlLlxuICAgKiBEaXNwYXRjaGVkIGJ5IHRoZSBgdWktaW5wdXRgIGFuZCBgdWktcGFzc3dvcmRgIGVudGl0aWVzIHdoZW4gdGhlIHZhbHVlIGlzIGNoYW5nZWQuXG4gICAqIEl0IHRyaWdnZXJzIGEgY2FsbGJhY2suXG4gICAqXG4gICAqIE5vdGljZTogT25seSBlbnRpdGllcyB3aXRoIElEIHdpbGwgYmUgbGlzdGVuaW5nIGZvciBjbGljayBldmVudHMuXG4gICAqL1xuICBvbkZvY3VzOiB7XG4gICAgLyoqIElEIG9mIHRoZSBlbnRpdGl5IG9mIHRoZSBldmVudCAqL1xuICAgIGVudGl0eUlkOiB1bmtub3duXG4gICAgLyoqIElEIG9mIHRoZSBwb2ludGVyIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudCAqL1xuICAgIHBvaW50ZXJJZDogbnVtYmVyXG4gIH1cblxuICAvKipcbiAgICogYG9uQmx1cmAgaXMgdHJpZ2dlcmVkIHdoZW4gYW4gZW50aXR5IGxvc2VzIGl0cyBmb2N1cy5cbiAgICogRGlzcGF0Y2hlZCBieSB0aGUgYHVpLWlucHV0YCBhbmQgYHVpLXBhc3N3b3JkYCBlbnRpdGllcyB3aGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkLlxuICAgKiAgSXQgdHJpZ2dlcnMgYSBjYWxsYmFjay5cbiAgICpcbiAgICogTm90aWNlOiBPbmx5IGVudGl0aWVzIHdpdGggSUQgd2lsbCBiZSBsaXN0ZW5pbmcgZm9yIGNsaWNrIGV2ZW50cy5cbiAgICovXG4gIG9uQmx1cjoge1xuICAgIC8qKiBJRCBvZiB0aGUgZW50aXRpeSBvZiB0aGUgZXZlbnQgKi9cbiAgICBlbnRpdHlJZDogdW5rbm93blxuICAgIC8qKiBJRCBvZiB0aGUgcG9pbnRlciB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQgKi9cbiAgICBwb2ludGVySWQ6IG51bWJlclxuICB9XG5cbiAgLyoqIFRoZSBvbkNsaWNrIGV2ZW50IGlzIG9ubHkgdXNlZCBmb3IgVUkgZWxlbWVudHMgKi9cbiAgb25DbGljazoge1xuICAgIGVudGl0eUlkOiB1bmtub3duXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCB3aGVuIGFuIGVudGl0eSBsZWF2ZXMgdGhlIHNjZW5lIGZlbmNlcy5cbiAgICovXG4gIGVudGl0eU91dE9mU2NlbmU6IHtcbiAgICBlbnRpdHlJZDogdW5rbm93blxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZ2V0cyB0cmlnZ2VyZWQgd2hlbiBhbiBlbnRpdHkgZW50ZXJzIHRoZSBzY2VuZSBmZW5jZXMuXG4gICAqL1xuICBlbnRpdHlCYWNrSW5TY2VuZToge1xuICAgIGVudGl0eUlkOiB1bmtub3duXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGVudGVycyB0aGUgc2NlbmVcbiAgICovXG4gIG9uRW50ZXJTY2VuZToge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGxlYXZlcyB0aGUgc2NlbmVcbiAgICovXG4gIG9uTGVhdmVTY2VuZToge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCBhZnRlciByZWNlaXZpbmcgYSBjb21tcyBtZXNzYWdlLlxuICAgKi9cbiAgY29tbXM6IHtcbiAgICBzZW5kZXI6IHN0cmluZ1xuICAgIG1lc3NhZ2U6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgdHJpZ2dlcmVkIG9uY2UgdGhlIHNjZW5lIHNob3VsZCBzdGFydC5cbiAgICovXG4gIHNjZW5lU3RhcnQ6IHVua25vd25cblxuICAvKipcbiAgICogVGhpcyBpcyB0cmlnZ2VyZWQgb25jZSB0aGUgYnVpbGRlciBzY2VuZSBpcyBsb2FkZWQuXG4gICAqL1xuICBidWlsZGVyU2NlbmVTdGFydDogdW5rbm93blxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIHRyaWdnZXJlZCBvbmNlIHRoZSBidWlsZGVyIHNjZW5lIGlzIHVubG9hZGVkLlxuICAgKi9cbiAgYnVpbGRlclNjZW5lVW5sb2FkZWQ6IHVua25vd25cblxuICAvKipcbiAgICogQWZ0ZXIgY2hlY2tpbmcgZW50aXRpZXMgb3V0c2lkZSB0aGUgZmVuY2VzLCBpZiBhbnkgaXMgb3V0c2lkZSwgdGhpcyBldmVudFxuICAgKiB3aWxsIGJlIHRyaWdnZXJlZCB3aXRoIGFsbCB0aGUgZW50aXRpZXMgb3V0c2lkZSB0aGUgc2NlbmUuXG4gICAqL1xuICBlbnRpdGllc091dE9mQm91bmRhcmllczoge1xuICAgIGVudGl0aWVzOiBzdHJpbmdbXVxuICB9XG5cbiAgdXVpZEV2ZW50OiB7XG4gICAgdXVpZDogc3RyaW5nXG4gICAgcGF5bG9hZDogYW55XG4gIH1cblxuICBvblRleHRTdWJtaXQ6IHtcbiAgICB0ZXh0OiBzdHJpbmdcbiAgfVxuXG4gIG1ldHJpY3NVcGRhdGU6IHtcbiAgICBnaXZlbjogUmVjb3JkPHN0cmluZywgbnVtYmVyPlxuICAgIGxpbWl0OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG4gIH1cblxuICBsaW1pdHNFeGNlZWRlZDoge1xuICAgIGdpdmVuOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG4gICAgbGltaXQ6IFJlY29yZDxzdHJpbmcsIG51bWJlcj5cbiAgfVxuXG4gIC8qKiBGb3IgZ2l6bW9zICovXG4gIGdpem1vRXZlbnQ6IEdpem1vRHJhZ0VuZEV2ZW50IHwgR2l6bW9TZWxlY3RlZEV2ZW50XG5cbiAgZXh0ZXJuYWxBY3Rpb246IHtcbiAgICB0eXBlOiBzdHJpbmdcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcbiAgfVxuXG4gIHN0YXRlRXZlbnQ6IHtcbiAgICB0eXBlOiBzdHJpbmdcbiAgICBwYXlsb2FkOiBhbnlcbiAgfVxuXG4gIC8qKiBUaGlzIGlzIHRyaWdnZXJlZCBhdCBsZWFzdCBmb3IgZWFjaCB2aWRlb1N0YXR1cyBjaGFuZ2UgKi9cbiAgdmlkZW9FdmVudDoge1xuICAgIGNvbXBvbmVudElkOiBzdHJpbmdcbiAgICB2aWRlb0NsaXBJZDogc3RyaW5nXG4gICAgLyoqIFN0YXR1cywgY2FuIGJlIE5PTkUgPSAwLCBFUlJPUiA9IDEsIExPQURJTkcgPSAyLCBSRUFEWSA9IDMsIFBMQVlJTkcgPSA0LEJVRkZFUklORyA9IDUgKi9cbiAgICB2aWRlb1N0YXR1czogbnVtYmVyXG4gICAgLyoqIEN1cnJlbnQgb2Zmc2V0IHBvc2l0aW9uIGluIHNlY29uZHMgKi9cbiAgICBjdXJyZW50T2Zmc2V0OiBudW1iZXJcbiAgICAvKiogVmlkZW8gbGVuZ3RoIGluIHNlY29uZHMuIENhbiBiZSAtMSAqL1xuICAgIHRvdGFsVmlkZW9MZW5ndGg6IG51bWJlclxuICB9XG5cbiAgLyoqIFRoaXMgaXMgdHJpZ2dlciBldmVyeXRpbWUgYSBwcm9maWxlIGlzIGNoYW5nZWQgKi9cbiAgcHJvZmlsZUNoYW5nZWQ6IHtcbiAgICBldGhBZGRyZXNzOiBzdHJpbmdcbiAgICB2ZXJzaW9uOiBudW1iZXJcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbiBwZWVyJ3MgYXZhdGFyIGlzIGNvbm5lY3RlZCBhbmQgdmlzaWJsZSAqL1xuICBwbGF5ZXJDb25uZWN0ZWQ6IHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBlZXIgZGlzY29ubmVjdCBhbmQvb3IgaXQgYXZhdGFyIGlzIHNldCBpbnZpc2libGUgYnkgY29tbXMgKi9cbiAgcGxheWVyRGlzY29ubmVjdGVkOiB7XG4gICAgdXNlcklkOiBzdHJpbmdcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbiBjdXJyZW50IHJlYWxtIG9yIGlzbGFuZCBjaGFuZ2VzICovXG4gIG9uUmVhbG1DaGFuZ2VkOiB7XG4gICAgZG9tYWluOiBzdHJpbmdcbiAgICByb29tOiBzdHJpbmdcbiAgICBzZXJ2ZXJOYW1lOiBzdHJpbmdcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nXG4gIH1cblxuICAvKiogVHJpZ2dlcmVkIHdoZW4gb3RoZXIgcGxheWVyJ3MgYXZhdGFyIGlzIGNsaWNrZWQgKi9cbiAgcGxheWVyQ2xpY2tlZDoge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gICAgcmF5OiB7XG4gICAgICBvcmlnaW46IFZlY3RvcjNUeXBlXG4gICAgICBkaXJlY3Rpb246IFZlY3RvcjNUeXBlXG4gICAgICBkaXN0YW5jZTogbnVtYmVyXG4gICAgfVxuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBvaW50ZXIgc3RhcnQgaG92ZXJpbmcgYW4gZW50aXRpZXMnIHNoYXBlICovXG4gIHBvaW50ZXJIb3ZlckVudGVyOiB1bmtub3duXG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBvaW50ZXIgc3RvcCBob3ZlcmluZyBhbiBlbnRpdGllcycgc2hhcGUgKi9cbiAgcG9pbnRlckhvdmVyRXhpdDogdW5rbm93blxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogVGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSBjYWxsYmFjayB0aGF0IGlzIHBhc3NlZCB0byB0aGUgT2JzZXJ2YWJsZVxuICogY29uc3RydWN0b3IgdG8gc3Vic2NyaWJlIHRvIHRoZSBldmVudHMgb2YgdGhlIERlY2VudHJhbGFuZEludGVyZmFjZVxuICovXG5mdW5jdGlvbiBjcmVhdGVTdWJzY3JpYmVyKGV2ZW50TmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgc3Vic2NyaWJlRnVuY3Rpb24oeyBldmVudElkOiBldmVudE5hbWUgfSkuY2F0Y2goY29uc29sZS5lcnJvcilcbiAgfVxufVxuXG4vKipcbiAqIFRoZXNlIGV2ZW50cyBhcmUgdHJpZ2dlcmVkIGFmdGVyIHlvdXIgY2hhcmFjdGVyIGVudGVycyB0aGUgc2NlbmUuXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25FbnRlclNjZW5lT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ29uRW50ZXJTY2VuZSddPihcbiAgY3JlYXRlU3Vic2NyaWJlcignb25FbnRlclNjZW5lJylcbilcblxuLyoqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLiBVc2Ugb25FbnRlclNjZW5lT2JzZXJ2YWJsZSBpbnN0ZWFkLiAqL1xuZXhwb3J0IGNvbnN0IG9uRW50ZXJTY2VuZSA9IG9uRW50ZXJTY2VuZU9ic2VydmFibGVcblxuLyoqXG4gKiBUaGVzZSBldmVudHMgYXJlIHRyaWdnZXJlZCBhZnRlciB5b3VyIGNoYXJhY3RlciBsZWF2ZXMgdGhlIHNjZW5lLlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uTGVhdmVTY2VuZU9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydvbkxlYXZlU2NlbmUnXT4oXG4gIGNyZWF0ZVN1YnNjcmliZXIoJ29uTGVhdmVTY2VuZScpXG4pXG5cbi8qKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC4gVXNlIG9uTGVhdmVTY2VuZU9ic2VydmFibGUgaW5zdGVhZC4gKi9cbmV4cG9ydCBjb25zdCBvbkxlYXZlU2NlbmUgPSBvbkxlYXZlU2NlbmVPYnNlcnZhYmxlXG5cbi8qKlxuICogVGhpcyBldmVudCBpcyB0cmlnZ2VyZWQgYWZ0ZXIgYWxsIHRoZSByZXNvdXJjZXMgb2YgdGhlIHNjZW5lIHdlcmUgbG9hZGVkIChtb2RlbHMsIHRleHR1cmVzLCBldGMuLi4pXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25TY2VuZVJlYWR5T2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3NjZW5lU3RhcnQnXT4oXG4gIGNyZWF0ZVN1YnNjcmliZXIoJ3NjZW5lU3RhcnQnKVxuKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblBsYXllckV4cHJlc3Npb25PYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8XG4gIElFdmVudHNbJ3BsYXllckV4cHJlc3Npb24nXVxuPihjcmVhdGVTdWJzY3JpYmVyKCdwbGF5ZXJFeHByZXNzaW9uJykpXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uVmlkZW9FdmVudCA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3ZpZGVvRXZlbnQnXT4oXG4gIGNyZWF0ZVN1YnNjcmliZXIoJ3ZpZGVvRXZlbnQnKVxuKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblByb2ZpbGVDaGFuZ2VkID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sncHJvZmlsZUNoYW5nZWQnXT4oXG4gIGNyZWF0ZVN1YnNjcmliZXIoJ3Byb2ZpbGVDaGFuZ2VkJylcbilcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25QbGF5ZXJDb25uZWN0ZWRPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8XG4gIElFdmVudHNbJ3BsYXllckNvbm5lY3RlZCddXG4+KGNyZWF0ZVN1YnNjcmliZXIoJ3BsYXllckNvbm5lY3RlZCcpKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblBsYXllckRpc2Nvbm5lY3RlZE9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxcbiAgSUV2ZW50c1sncGxheWVyRGlzY29ubmVjdGVkJ11cbj4oY3JlYXRlU3Vic2NyaWJlcigncGxheWVyRGlzY29ubmVjdGVkJykpXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uUmVhbG1DaGFuZ2VkT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPFxuICBJRXZlbnRzWydvblJlYWxtQ2hhbmdlZCddXG4+KGNyZWF0ZVN1YnNjcmliZXIoJ29uUmVhbG1DaGFuZ2VkJykpXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uUGxheWVyQ2xpY2tlZE9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxcbiAgSUV2ZW50c1sncGxheWVyQ2xpY2tlZCddXG4+KGNyZWF0ZVN1YnNjcmliZXIoJ3BsYXllckNsaWNrZWQnKSlcblxuLyoqXG4gKiBAaW50ZXJ0ZXJuYWxcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvbkNvbW1zTWVzc2FnZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ2NvbW1zJ10+KFxuICBjcmVhdGVTdWJzY3JpYmVyKCdjb21tcycpXG4pXG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRTdWJzY3JpYmVGdW5jdGlvbihcbiAgZm46IChldmVudDogeyBldmVudElkOiBzdHJpbmcgfSkgPT4gUHJvbWlzZTxhbnk+XG4pIHtcbiAgc3Vic2NyaWJlRnVuY3Rpb24gPSBmblxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQGRlcHJlY2F0ZWQgdGhpcyBpcyBhbiBPTEQgQVBJLlxuICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBTREs2IHNlbmRCYXRjaCB0byBwb2xsIGV2ZW50cyBmcm9tIHRoZSByZW5kZXJlclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcG9sbEV2ZW50cyhcbiAgc2VuZEJhdGNoOiAoYm9keTogTWFueUVudGl0eUFjdGlvbikgPT4gUHJvbWlzZTxTZW5kQmF0Y2hSZXNwb25zZT5cbikge1xuICBjb25zdCB7IGV2ZW50cyB9ID0gYXdhaXQgc2VuZEJhdGNoKHsgYWN0aW9uczogW10gfSlcbiAgZm9yIChjb25zdCBlIG9mIGV2ZW50cykge1xuICAgIGlmIChlLmdlbmVyaWMpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGUuZ2VuZXJpYy5ldmVudERhdGEpXG4gICAgICBzd2l0Y2ggKGUuZ2VuZXJpYy5ldmVudElkKSB7XG4gICAgICAgIGNhc2UgJ29uRW50ZXJTY2VuZSc6IHtcbiAgICAgICAgICBvbkVudGVyU2NlbmVPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhcbiAgICAgICAgICAgIGRhdGEgYXMgSUV2ZW50c1snb25FbnRlclNjZW5lJ11cbiAgICAgICAgICApXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdvbkxlYXZlU2NlbmUnOiB7XG4gICAgICAgICAgb25MZWF2ZVNjZW5lT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoXG4gICAgICAgICAgICBkYXRhIGFzIElFdmVudHNbJ29uTGVhdmVTY2VuZSddXG4gICAgICAgICAgKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnc2NlbmVTdGFydCc6IHtcbiAgICAgICAgICBvblNjZW5lUmVhZHlPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ3NjZW5lU3RhcnQnXSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3BsYXllckV4cHJlc3Npb24nOiB7XG4gICAgICAgICAgb25QbGF5ZXJFeHByZXNzaW9uT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoXG4gICAgICAgICAgICBkYXRhIGFzIElFdmVudHNbJ3BsYXllckV4cHJlc3Npb24nXVxuICAgICAgICAgIClcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3ZpZGVvRXZlbnQnOiB7XG4gICAgICAgICAgY29uc3QgdmlkZW9EYXRhID0gZGF0YSBhcyBJRXZlbnRzWyd2aWRlb0V2ZW50J11cbiAgICAgICAgICBvblZpZGVvRXZlbnQubm90aWZ5T2JzZXJ2ZXJzKHZpZGVvRGF0YSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3Byb2ZpbGVDaGFuZ2VkJzoge1xuICAgICAgICAgIG9uUHJvZmlsZUNoYW5nZWQubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1sncHJvZmlsZUNoYW5nZWQnXSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3BsYXllckNvbm5lY3RlZCc6IHtcbiAgICAgICAgICBvblBsYXllckNvbm5lY3RlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKFxuICAgICAgICAgICAgZGF0YSBhcyBJRXZlbnRzWydwbGF5ZXJDb25uZWN0ZWQnXVxuICAgICAgICAgIClcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3BsYXllckRpc2Nvbm5lY3RlZCc6IHtcbiAgICAgICAgICBvblBsYXllckRpc2Nvbm5lY3RlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKFxuICAgICAgICAgICAgZGF0YSBhcyBJRXZlbnRzWydwbGF5ZXJEaXNjb25uZWN0ZWQnXVxuICAgICAgICAgIClcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ29uUmVhbG1DaGFuZ2VkJzoge1xuICAgICAgICAgIG9uUmVhbG1DaGFuZ2VkT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoXG4gICAgICAgICAgICBkYXRhIGFzIElFdmVudHNbJ29uUmVhbG1DaGFuZ2VkJ11cbiAgICAgICAgICApXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdwbGF5ZXJDbGlja2VkJzoge1xuICAgICAgICAgIG9uUGxheWVyQ2xpY2tlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKFxuICAgICAgICAgICAgZGF0YSBhcyBJRXZlbnRzWydwbGF5ZXJDbGlja2VkJ11cbiAgICAgICAgICApXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvb2JzZXJ2YWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBSWxELElBQUksaUJBQWlCLEdBQWlELEtBQUssSUFBSSxFQUFFLEdBQUUsQ0FBQyxDQUFBO0FBaVlwRixTQUFTLGdCQUFnQixDQUFDLFNBQWlCO0lBQ3pDLE9BQU8sR0FBRyxFQUFFO1FBQ1YsaUJBQWlCLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLENBQUMsQ0FBQTtBQUNILENBQUM7QUFPRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLFVBQVUsQ0FBMEIsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTtBQUsvRyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLENBQUE7QUFPbEQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxVQUFVLENBQTBCLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7QUFLL0csTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLHNCQUFzQixDQUFBO0FBT2xELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksVUFBVSxDQUF3QixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0FBTTNHLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksVUFBVSxDQUN4RCxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUNyQyxDQUFBO0FBTUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksVUFBVSxDQUF3QixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0FBTWpHLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksVUFB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dCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi9pbnRlcm5hbC9PYnNlcnZhYmxlJ1xuaW1wb3J0IHsgUXVhdGVybmlvblR5cGUsIFZlY3RvcjNUeXBlIH0gZnJvbSAnQGRjbC9lY3MnXG5pbXBvcnQgeyBNYW55RW50aXR5QWN0aW9uLCBTZW5kQmF0Y2hSZXNwb25zZSB9IGZyb20gJ35zeXN0ZW0vRW5naW5lQXBpJ1xuXG5sZXQgc3Vic2NyaWJlRnVuY3Rpb246IChldmVudDogeyBldmVudElkOiBzdHJpbmcgfSkgPT4gUHJvbWlzZTxhbnk+ID0gYXN5bmMgKCkgPT4ge31cblxuLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCB0eXBlIElucHV0RXZlbnRSZXN1bHQgPSB7XG4gIC8qKiBPcmlnaW4gb2YgdGhlIHJheSwgcmVsYXRpdmUgdG8gdGhlIHNjZW5lICovXG4gIG9yaWdpbjogVmVjdG9yM1R5cGVcbiAgLyoqIERpcmVjdGlvbiB2ZWN0b3Igb2YgdGhlIHJheSAobm9ybWFsaXplZCkgKi9cbiAgZGlyZWN0aW9uOiBWZWN0b3IzVHlwZVxuICAvKiogSUQgb2YgdGhlIHBvaW50ZXIgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50ICovXG4gIGJ1dHRvbklkOiBudW1iZXJcbiAgLyoqIERvZXMgdGhpcyBwb2ludGVyIGV2ZW50IGhpdCBhbnkgb2JqZWN0PyAqL1xuICBoaXQ/OiB7XG4gICAgLyoqIExlbmd0aCBvZiB0aGUgcmF5ICovXG4gICAgbGVuZ3RoOiBudW1iZXJcbiAgICAvKiogSWYgdGhlIHJheSBoaXRzIGEgbWVzaCB0aGUgaW50ZXJzZWN0aW9uIHBvaW50IHdpbGwgYmUgdGhpcyAqL1xuICAgIGhpdFBvaW50OiBWZWN0b3IzVHlwZVxuICAgIC8qKiBJZiB0aGUgbWVzaCBoYXMgYSBuYW1lLCBpdCB3aWxsIGJlIGFzc2lnbmVkIHRvIG1lc2hOYW1lICovXG4gICAgbWVzaE5hbWU6IHN0cmluZ1xuICAgIC8qKiBOb3JtYWwgb2YgdGhlIGhpdCAqL1xuICAgIG5vcm1hbDogVmVjdG9yM1R5cGVcbiAgICAvKiogTm9ybWFsIG9mIHRoZSBoaXQsIGluIHdvcmxkIHNwYWNlICovXG4gICAgd29ybGROb3JtYWw6IFZlY3RvcjNUeXBlXG4gICAgLyoqIEhpdCBlbnRpdHkgSUQgaWYgYW55ICovXG4gICAgZW50aXR5SWQ6IHVua25vd25cbiAgfVxufVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgR2xvYmFsSW5wdXRFdmVudFJlc3VsdCA9IElucHV0RXZlbnRSZXN1bHQgJiB7XG4gIC8qKlxuICAgKiBET1dOID0gMCxcbiAgICogVVAgPSAxXG4gICAqL1xuICB0eXBlOiAwIHwgMVxufVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgUmF5Y2FzdFJlc3BvbnNlUGF5bG9hZDxUPiA9IHtcbiAgcXVlcnlJZDogc3RyaW5nXG4gIHF1ZXJ5VHlwZTogc3RyaW5nXG4gIHBheWxvYWQ6IFRcbn1cblxuLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCB0eXBlIEdpem1vRHJhZ0VuZEV2ZW50ID0ge1xuICB0eXBlOiAnZ2l6bW9EcmFnRW5kZWQnXG4gIHRyYW5zZm9ybXM6IEFycmF5PHtcbiAgICBwb3NpdGlvbjogVmVjdG9yM1R5cGVcbiAgICByb3RhdGlvbjogUXVhdGVybmlvblR5cGVcbiAgICBzY2FsZTogVmVjdG9yM1R5cGVcbiAgICBlbnRpdHlJZDogdW5rbm93blxuICB9PlxufVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgR2l6bW9TZWxlY3RlZEV2ZW50ID0ge1xuICB0eXBlOiAnZ2l6bW9TZWxlY3RlZCdcbiAgZ2l6bW9UeXBlOiAnTU9WRScgfCAnUk9UQVRFJyB8ICdTQ0FMRScgfCAnTk9ORSdcbiAgZW50aXRpZXM6IHN0cmluZ1tdXG59XG5cbi8vLyAtLS0gRVZFTlRTIC0tLVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgSUV2ZW50TmFtZXMgPSBrZXlvZiBJRXZlbnRzXG5cbi8qKiBAcHVibGljICovXG5leHBvcnQgdHlwZSBFbmdpbmVFdmVudDxUIGV4dGVuZHMgSUV2ZW50TmFtZXMgPSBJRXZlbnROYW1lcywgViA9IElFdmVudHNbVF0+ID0ge1xuICAvKiogZXZlbnROYW1lICovXG4gIHR5cGU6IFRcbiAgZGF0YTogUmVhZG9ubHk8Vj5cbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKiBOb3RlOiBEb24ndCB1c2UgYG9uYCBwcmVmaXggZm9yIElFdmVudHMgdG8gYXZvaWQgcmVkdW5kYW5jeSB3aXRoIGBldmVudC5vbihcIm9uRXZlbnROYW1lXCIpYCBzeW50YXguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV2ZW50cyB7XG4gIC8qKlxuICAgKiBgcG9zaXRpb25DaGFuZ2VkYCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgcG9zaXRpb24gb2YgdGhlIGNhbWVyYSBjaGFuZ2VzXG4gICAqIFRoaXMgZXZlbnQgaXMgdGhyb3R0bGVkIHRvIDEwIHRpbWVzIHBlciBzZWNvbmQuXG4gICAqL1xuICBwb3NpdGlvbkNoYW5nZWQ6IHtcbiAgICAvKiogQ2FtZXJhIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBiYXNlIHBhcmNlbCBvZiB0aGUgc2NlbmUgKi9cbiAgICBwb3NpdGlvbjogVmVjdG9yM1R5cGVcblxuICAgIC8qKiBDYW1lcmEgcG9zaXRpb24sIHRoaXMgaXMgYSBhYnNvbHV0ZSB3b3JsZCBwb3NpdGlvbiAqL1xuICAgIGNhbWVyYVBvc2l0aW9uOiBWZWN0b3IzVHlwZVxuXG4gICAgLyoqIEV5ZSBoZWlnaHQsIGluIG1ldGVycy4gKi9cbiAgICBwbGF5ZXJIZWlnaHQ6IG51bWJlclxuICB9XG5cbiAgLyoqXG4gICAqIGByb3RhdGlvbkNoYW5nZWRgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSByb3RhdGlvbiBvZiB0aGUgY2FtZXJhIGNoYW5nZXMuXG4gICAqIFRoaXMgZXZlbnQgaXMgdGhyb3R0bGVkIHRvIDEwIHRpbWVzIHBlciBzZWNvbmQuXG4gICAqL1xuICByb3RhdGlvbkNoYW5nZWQ6IHtcbiAgICAvKiogRGVncmVlIHZlY3Rvci4gU2FtZSBhcyBlbnRpdGllcyAqL1xuICAgIHJvdGF0aW9uOiBWZWN0b3IzVHlwZVxuICAgIC8qKiBSb3RhdGlvbiBxdWF0ZXJuaW9uLCB1c2VmdWwgaW4gc29tZSBzY2VuYXJpb3MuICovXG4gICAgcXVhdGVybmlvbjogUXVhdGVybmlvblR5cGVcbiAgfVxuXG4gIC8qKlxuICAgKiBgY2FtZXJhTW9kZUNoYW5nZWRgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgdGhlIGNhbWVyYSBtb2RlXG4gICAqL1xuICBjYW1lcmFNb2RlQ2hhbmdlZDoge1xuICAgIC8qKlxuICAgICAqIEZJUlNUX1BFUlNPTiA9IDAsXG4gICAgICogVEhJUkRfUEVSU09OID0gMSxcbiAgICAgKiBGUkVFX0NBTUVSQSA9IDJcbiAgICAgKi9cbiAgICBjYW1lcmFNb2RlOiAwIHwgMSB8IDJcbiAgfVxuXG4gIC8qKlxuICAgKiBgaWRsZVN0YXRlQ2hhbmdlZGAgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgbm90IG1vdmVzIGZvciBhIGRlZmluZWQgcGVyaW9kIG9mIHRpbWVcbiAgICovXG4gIGlkbGVTdGF0ZUNoYW5nZWQ6IHtcbiAgICBpc0lkbGU6IGJvb2xlYW5cbiAgfVxuXG4gIHBsYXllckV4cHJlc3Npb246IHtcbiAgICBleHByZXNzaW9uSWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIGBwb2ludGVyVXBgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHJlbGVhc2VzIGFuIGlucHV0IHBvaW50ZXIuXG4gICAqIEl0IGNvdWxkIGJlIGEgVlIgY29udHJvbGxlciwgYSB0b3VjaCBzY3JlZW4gb3IgdGhlIG1vdXNlLlxuICAgKi9cbiAgcG9pbnRlclVwOiBJbnB1dEV2ZW50UmVzdWx0XG5cbiAgLyoqXG4gICAqIGBwb2ludGVyRG93bmAgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgcHJlc3MgYW4gaW5wdXQgcG9pbnRlci5cbiAgICogSXQgY291bGQgYmUgYSBWUiBjb250cm9sbGVyLCBhIHRvdWNoIHNjcmVlbiBvciB0aGUgbW91c2UuXG4gICAqL1xuICBwb2ludGVyRG93bjogSW5wdXRFdmVudFJlc3VsdFxuXG4gIC8qKlxuICAgKiBgcG9pbnRlckV2ZW50YCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBwcmVzcyBvciByZWxlYXNlcyBhbiBpbnB1dCBwb2ludGVyLlxuICAgKiBJdCBjb3VsZCBiZSBhIFZSIGNvbnRyb2xsZXIsIGEgdG91Y2ggc2NyZWVuIG9yIHRoZSBtb3VzZS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGFjdGlvbkJ1dHRvbkV2ZW50IGluc3RlYWRcbiAgICovXG4gIHBvaW50ZXJFdmVudDogR2xvYmFsSW5wdXRFdmVudFJlc3VsdFxuXG4gIC8qKlxuICAgKiBgYWN0aW9uQnV0dG9uRXZlbnRgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHByZXNzIG9yIHJlbGVhc2VzIGFuIGlucHV0IHBvaW50ZXIuXG4gICAqIEl0IGNvdWxkIGJlIGEgVlIgY29udHJvbGxlciwgYSB0b3VjaCBzY3JlZW4gb3IgdGhlIG1vdXNlLlxuICAgKlxuICAgKiBUaGlzIGV2ZW50IGlzIGV4YWN0bHkgdGhlIHNhbWUgYXMgYHBvaW50ZXJFdmVudGAgYnV0IHRoZSBsb2dpYyBpbiB0aGUgRUNTIGhhZCBhbiB1bnNvbHZhYmxlXG4gICAqIGNvbmRpdGlvbiB0aGF0IHJlcXVpcmVkIHVzIHRvIGNyZWF0ZSB0aGlzIG5ldyBldmVudCB0byBoYW5kbGUgbW9yZSBjYXNlcyBmb3IgbmV3IGJ1dHRvbnMuXG4gICAqL1xuICBhY3Rpb25CdXR0b25FdmVudDogR2xvYmFsSW5wdXRFdmVudFJlc3VsdFxuXG4gIC8qKlxuICAgKiBgcmF5Y2FzdFJlc3BvbnNlYCBpcyB0cmlnZ2VyZWQgaW4gcmVzcG9uc2UgdG8gYSByYXljYXN0IHF1ZXJ5XG4gICAqL1xuICByYXljYXN0UmVzcG9uc2U6IFJheWNhc3RSZXNwb25zZVBheWxvYWQ8YW55PlxuXG4gIC8qKlxuICAgKiBgY2hhdE1lc3NhZ2VgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHNlbmRzIGEgbWVzc2FnZSB0aHJvdWdoIGNoYXQgZW50aXR5LlxuICAgKi9cbiAgY2hhdE1lc3NhZ2U6IHtcbiAgICBpZDogc3RyaW5nXG4gICAgc2VuZGVyOiBzdHJpbmdcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgICBpc0NvbW1hbmQ6IGJvb2xlYW5cbiAgfVxuXG4gIC8qKlxuICAgKiBgb25DaGFuZ2VgIGlzIHRyaWdnZXJlZCB3aGVuIGFuIGVudGl0eSBjaGFuZ2VzIGl0cyBvd24gaW50ZXJuYWwgc3RhdGUuXG4gICAqIERpc3BhdGNoZWQgYnkgdGhlIGB1aS0qYCBlbnRpdGllcyB3aGVuIHRoZWlyIHZhbHVlIGlzIGNoYW5nZWQuIEl0IHRyaWdnZXJzIGEgY2FsbGJhY2suXG4gICAqIE5vdGljZTogT25seSBlbnRpdGllcyB3aXRoIElEIHdpbGwgYmUgbGlzdGVuaW5nIGZvciBjbGljayBldmVudHMuXG4gICAqL1xuICBvbkNoYW5nZToge1xuICAgIHZhbHVlPzogYW55XG4gICAgLyoqIElEIG9mIHRoZSBwb2ludGVyIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudCAqL1xuICAgIHBvaW50ZXJJZD86IG51bWJlclxuICB9XG5cbiAgLyoqXG4gICAqIGBvbkVudGVyYCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBoaXRzIHRoZSBcIkVudGVyXCIga2V5IGZyb20gdGhlIGtleWJvYXJkXG4gICAqIFVzZWQgcHJpbmNpcGFsbHkgYnkgdGhlIENoYXQgaW50ZXJuYWwgc2NlbmVcbiAgICovXG4gIG9uRW50ZXI6IHVua25vd25cblxuICAvKipcbiAgICogYG9uUG9pbnRlckxvY2tgIGlzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGUgd29ybGQgY2FudmFzIGFuZCB0aGVcbiAgICogcG9pbnRlciBsb2NrcyB0byBpdCBzbyB0aGUgcG9pbnRlciBtb3ZlcyB0aGUgY2FtZXJhXG4gICAqL1xuICBvblBvaW50ZXJMb2NrOiB7XG4gICAgbG9ja2VkPzogYm9vbGVhblxuICB9XG5cbiAgLyoqXG4gICAqIGBvbkFuaW1hdGlvbkVuZGAgaXMgdHJpZ2dlcmVkIHdoZW4gYW4gYW5pbWF0aW9uIGNsaXAgZ2V0cyBmaW5pc2hcbiAgICovXG4gIG9uQW5pbWF0aW9uRW5kOiB7XG4gICAgY2xpcE5hbWU6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIGBvbkZvY3VzYCBpcyB0cmlnZ2VyZWQgd2hlbiBhbiBlbnRpdHkgZm9jdXMgaXMgYWN0aXZlLlxuICAgKiBEaXNwYXRjaGVkIGJ5IHRoZSBgdWktaW5wdXRgIGFuZCBgdWktcGFzc3dvcmRgIGVudGl0aWVzIHdoZW4gdGhlIHZhbHVlIGlzIGNoYW5nZWQuXG4gICAqIEl0IHRyaWdnZXJzIGEgY2FsbGJhY2suXG4gICAqXG4gICAqIE5vdGljZTogT25seSBlbnRpdGllcyB3aXRoIElEIHdpbGwgYmUgbGlzdGVuaW5nIGZvciBjbGljayBldmVudHMuXG4gICAqL1xuICBvbkZvY3VzOiB7XG4gICAgLyoqIElEIG9mIHRoZSBlbnRpdGl5IG9mIHRoZSBldmVudCAqL1xuICAgIGVudGl0eUlkOiB1bmtub3duXG4gICAgLyoqIElEIG9mIHRoZSBwb2ludGVyIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudCAqL1xuICAgIHBvaW50ZXJJZDogbnVtYmVyXG4gIH1cblxuICAvKipcbiAgICogYG9uQmx1cmAgaXMgdHJpZ2dlcmVkIHdoZW4gYW4gZW50aXR5IGxvc2VzIGl0cyBmb2N1cy5cbiAgICogRGlzcGF0Y2hlZCBieSB0aGUgYHVpLWlucHV0YCBhbmQgYHVpLXBhc3N3b3JkYCBlbnRpdGllcyB3aGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkLlxuICAgKiAgSXQgdHJpZ2dlcnMgYSBjYWxsYmFjay5cbiAgICpcbiAgICogTm90aWNlOiBPbmx5IGVudGl0aWVzIHdpdGggSUQgd2lsbCBiZSBsaXN0ZW5pbmcgZm9yIGNsaWNrIGV2ZW50cy5cbiAgICovXG4gIG9uQmx1cjoge1xuICAgIC8qKiBJRCBvZiB0aGUgZW50aXRpeSBvZiB0aGUgZXZlbnQgKi9cbiAgICBlbnRpdHlJZDogdW5rbm93blxuICAgIC8qKiBJRCBvZiB0aGUgcG9pbnRlciB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQgKi9cbiAgICBwb2ludGVySWQ6IG51bWJlclxuICB9XG5cbiAgLyoqIFRoZSBvbkNsaWNrIGV2ZW50IGlzIG9ubHkgdXNlZCBmb3IgVUkgZWxlbWVudHMgKi9cbiAgb25DbGljazoge1xuICAgIGVudGl0eUlkOiB1bmtub3duXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCB3aGVuIGFuIGVudGl0eSBsZWF2ZXMgdGhlIHNjZW5lIGZlbmNlcy5cbiAgICovXG4gIGVudGl0eU91dE9mU2NlbmU6IHtcbiAgICBlbnRpdHlJZDogdW5rbm93blxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZ2V0cyB0cmlnZ2VyZWQgd2hlbiBhbiBlbnRpdHkgZW50ZXJzIHRoZSBzY2VuZSBmZW5jZXMuXG4gICAqL1xuICBlbnRpdHlCYWNrSW5TY2VuZToge1xuICAgIGVudGl0eUlkOiB1bmtub3duXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGVudGVycyB0aGUgc2NlbmVcbiAgICovXG4gIG9uRW50ZXJTY2VuZToge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGxlYXZlcyB0aGUgc2NlbmVcbiAgICovXG4gIG9uTGVhdmVTY2VuZToge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBldmVudCBnZXRzIHRyaWdnZXJlZCBhZnRlciByZWNlaXZpbmcgYSBjb21tcyBtZXNzYWdlLlxuICAgKi9cbiAgY29tbXM6IHtcbiAgICBzZW5kZXI6IHN0cmluZ1xuICAgIG1lc3NhZ2U6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgdHJpZ2dlcmVkIG9uY2UgdGhlIHNjZW5lIHNob3VsZCBzdGFydC5cbiAgICovXG4gIHNjZW5lU3RhcnQ6IHVua25vd25cblxuICAvKipcbiAgICogVGhpcyBpcyB0cmlnZ2VyZWQgb25jZSB0aGUgYnVpbGRlciBzY2VuZSBpcyBsb2FkZWQuXG4gICAqL1xuICBidWlsZGVyU2NlbmVTdGFydDogdW5rbm93blxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIHRyaWdnZXJlZCBvbmNlIHRoZSBidWlsZGVyIHNjZW5lIGlzIHVubG9hZGVkLlxuICAgKi9cbiAgYnVpbGRlclNjZW5lVW5sb2FkZWQ6IHVua25vd25cblxuICAvKipcbiAgICogQWZ0ZXIgY2hlY2tpbmcgZW50aXRpZXMgb3V0c2lkZSB0aGUgZmVuY2VzLCBpZiBhbnkgaXMgb3V0c2lkZSwgdGhpcyBldmVudFxuICAgKiB3aWxsIGJlIHRyaWdnZXJlZCB3aXRoIGFsbCB0aGUgZW50aXRpZXMgb3V0c2lkZSB0aGUgc2NlbmUuXG4gICAqL1xuICBlbnRpdGllc091dE9mQm91bmRhcmllczoge1xuICAgIGVudGl0aWVzOiBzdHJpbmdbXVxuICB9XG5cbiAgdXVpZEV2ZW50OiB7XG4gICAgdXVpZDogc3RyaW5nXG4gICAgcGF5bG9hZDogYW55XG4gIH1cblxuICBvblRleHRTdWJtaXQ6IHtcbiAgICB0ZXh0OiBzdHJpbmdcbiAgfVxuXG4gIG1ldHJpY3NVcGRhdGU6IHtcbiAgICBnaXZlbjogUmVjb3JkPHN0cmluZywgbnVtYmVyPlxuICAgIGxpbWl0OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG4gIH1cblxuICBsaW1pdHNFeGNlZWRlZDoge1xuICAgIGdpdmVuOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG4gICAgbGltaXQ6IFJlY29yZDxzdHJpbmcsIG51bWJlcj5cbiAgfVxuXG4gIC8qKiBGb3IgZ2l6bW9zICovXG4gIGdpem1vRXZlbnQ6IEdpem1vRHJhZ0VuZEV2ZW50IHwgR2l6bW9TZWxlY3RlZEV2ZW50XG5cbiAgZXh0ZXJuYWxBY3Rpb246IHtcbiAgICB0eXBlOiBzdHJpbmdcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcbiAgfVxuXG4gIHN0YXRlRXZlbnQ6IHtcbiAgICB0eXBlOiBzdHJpbmdcbiAgICBwYXlsb2FkOiBhbnlcbiAgfVxuXG4gIC8qKiBUaGlzIGlzIHRyaWdnZXJlZCBhdCBsZWFzdCBmb3IgZWFjaCB2aWRlb1N0YXR1cyBjaGFuZ2UgKi9cbiAgdmlkZW9FdmVudDoge1xuICAgIGNvbXBvbmVudElkOiBzdHJpbmdcbiAgICB2aWRlb0NsaXBJZDogc3RyaW5nXG4gICAgLyoqIFN0YXR1cywgY2FuIGJlIE5PTkUgPSAwLCBFUlJPUiA9IDEsIExPQURJTkcgPSAyLCBSRUFEWSA9IDMsIFBMQVlJTkcgPSA0LEJVRkZFUklORyA9IDUgKi9cbiAgICB2aWRlb1N0YXR1czogbnVtYmVyXG4gICAgLyoqIEN1cnJlbnQgb2Zmc2V0IHBvc2l0aW9uIGluIHNlY29uZHMgKi9cbiAgICBjdXJyZW50T2Zmc2V0OiBudW1iZXJcbiAgICAvKiogVmlkZW8gbGVuZ3RoIGluIHNlY29uZHMuIENhbiBiZSAtMSAqL1xuICAgIHRvdGFsVmlkZW9MZW5ndGg6IG51bWJlclxuICB9XG5cbiAgLyoqIFRoaXMgaXMgdHJpZ2dlciBldmVyeXRpbWUgYSBwcm9maWxlIGlzIGNoYW5nZWQgKi9cbiAgcHJvZmlsZUNoYW5nZWQ6IHtcbiAgICBldGhBZGRyZXNzOiBzdHJpbmdcbiAgICB2ZXJzaW9uOiBudW1iZXJcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbiBwZWVyJ3MgYXZhdGFyIGlzIGNvbm5lY3RlZCBhbmQgdmlzaWJsZSAqL1xuICBwbGF5ZXJDb25uZWN0ZWQ6IHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBlZXIgZGlzY29ubmVjdCBhbmQvb3IgaXQgYXZhdGFyIGlzIHNldCBpbnZpc2libGUgYnkgY29tbXMgKi9cbiAgcGxheWVyRGlzY29ubmVjdGVkOiB7XG4gICAgdXNlcklkOiBzdHJpbmdcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbiBjdXJyZW50IHJlYWxtIG9yIGlzbGFuZCBjaGFuZ2VzICovXG4gIG9uUmVhbG1DaGFuZ2VkOiB7XG4gICAgZG9tYWluOiBzdHJpbmdcbiAgICByb29tOiBzdHJpbmdcbiAgICBzZXJ2ZXJOYW1lOiBzdHJpbmdcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nXG4gIH1cblxuICAvKiogVHJpZ2dlcmVkIHdoZW4gb3RoZXIgcGxheWVyJ3MgYXZhdGFyIGlzIGNsaWNrZWQgKi9cbiAgcGxheWVyQ2xpY2tlZDoge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gICAgcmF5OiB7XG4gICAgICBvcmlnaW46IFZlY3RvcjNUeXBlXG4gICAgICBkaXJlY3Rpb246IFZlY3RvcjNUeXBlXG4gICAgICBkaXN0YW5jZTogbnVtYmVyXG4gICAgfVxuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBvaW50ZXIgc3RhcnQgaG92ZXJpbmcgYW4gZW50aXRpZXMnIHNoYXBlICovXG4gIHBvaW50ZXJIb3ZlckVudGVyOiB1bmtub3duXG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBvaW50ZXIgc3RvcCBob3ZlcmluZyBhbiBlbnRpdGllcycgc2hhcGUgKi9cbiAgcG9pbnRlckhvdmVyRXhpdDogdW5rbm93blxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogVGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSBjYWxsYmFjayB0aGF0IGlzIHBhc3NlZCB0byB0aGUgT2JzZXJ2YWJsZVxuICogY29uc3RydWN0b3IgdG8gc3Vic2NyaWJlIHRvIHRoZSBldmVudHMgb2YgdGhlIERlY2VudHJhbGFuZEludGVyZmFjZVxuICovXG5mdW5jdGlvbiBjcmVhdGVTdWJzY3JpYmVyKGV2ZW50TmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgc3Vic2NyaWJlRnVuY3Rpb24oeyBldmVudElkOiBldmVudE5hbWUgfSkuY2F0Y2goY29uc29sZS5lcnJvcilcbiAgfVxufVxuXG4vKipcbiAqIFRoZXNlIGV2ZW50cyBhcmUgdHJpZ2dlcmVkIGFmdGVyIHlvdXIgY2hhcmFjdGVyIGVudGVycyB0aGUgc2NlbmUuXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25FbnRlclNjZW5lT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ29uRW50ZXJTY2VuZSddPihjcmVhdGVTdWJzY3JpYmVyKCdvbkVudGVyU2NlbmUnKSlcblxuLyoqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLiBVc2Ugb25FbnRlclNjZW5lT2JzZXJ2YWJsZSBpbnN0ZWFkLiAqL1xuZXhwb3J0IGNvbnN0IG9uRW50ZXJTY2VuZSA9IG9uRW50ZXJTY2VuZU9ic2VydmFibGVcblxuLyoqXG4gKiBUaGVzZSBldmVudHMgYXJlIHRyaWdnZXJlZCBhZnRlciB5b3VyIGNoYXJhY3RlciBsZWF2ZXMgdGhlIHNjZW5lLlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uTGVhdmVTY2VuZU9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydvbkxlYXZlU2NlbmUnXT4oY3JlYXRlU3Vic2NyaWJlcignb25MZWF2ZVNjZW5lJykpXG5cbi8qKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC4gVXNlIG9uTGVhdmVTY2VuZU9ic2VydmFibGUgaW5zdGVhZC4gKi9cbmV4cG9ydCBjb25zdCBvbkxlYXZlU2NlbmUgPSBvbkxlYXZlU2NlbmVPYnNlcnZhYmxlXG5cbi8qKlxuICogVGhpcyBldmVudCBpcyB0cmlnZ2VyZWQgYWZ0ZXIgYWxsIHRoZSByZXNvdXJjZXMgb2YgdGhlIHNjZW5lIHdlcmUgbG9hZGVkIChtb2RlbHMsIHRleHR1cmVzLCBldGMuLi4pXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25TY2VuZVJlYWR5T2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3NjZW5lU3RhcnQnXT4oY3JlYXRlU3Vic2NyaWJlcignc2NlbmVTdGFydCcpKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblBsYXllckV4cHJlc3Npb25PYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sncGxheWVyRXhwcmVzc2lvbiddPihcbiAgY3JlYXRlU3Vic2NyaWJlcigncGxheWVyRXhwcmVzc2lvbicpXG4pXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uVmlkZW9FdmVudCA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3ZpZGVvRXZlbnQnXT4oY3JlYXRlU3Vic2NyaWJlcigndmlkZW9FdmVudCcpKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblByb2ZpbGVDaGFuZ2VkID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sncHJvZmlsZUNoYW5nZWQnXT4oY3JlYXRlU3Vic2NyaWJlcigncHJvZmlsZUNoYW5nZWQnKSlcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25QbGF5ZXJDb25uZWN0ZWRPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sncGxheWVyQ29ubmVjdGVkJ10+KFxuICBjcmVhdGVTdWJzY3JpYmVyKCdwbGF5ZXJDb25uZWN0ZWQnKVxuKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblBsYXllckRpc2Nvbm5lY3RlZE9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydwbGF5ZXJEaXNjb25uZWN0ZWQnXT4oXG4gIGNyZWF0ZVN1YnNjcmliZXIoJ3BsYXllckRpc2Nvbm5lY3RlZCcpXG4pXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uUmVhbG1DaGFuZ2VkT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ29uUmVhbG1DaGFuZ2VkJ10+KGNyZWF0ZVN1YnNjcmliZXIoJ29uUmVhbG1DaGFuZ2VkJykpXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uUGxheWVyQ2xpY2tlZE9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydwbGF5ZXJDbGlja2VkJ10+KGNyZWF0ZVN1YnNjcmliZXIoJ3BsYXllckNsaWNrZWQnKSlcblxuLyoqXG4gKiBAaW50ZXJ0ZXJuYWxcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvbkNvbW1zTWVzc2FnZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ2NvbW1zJ10+KGNyZWF0ZVN1YnNjcmliZXIoJ2NvbW1zJykpXG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRTdWJzY3JpYmVGdW5jdGlvbihmbjogKGV2ZW50OiB7IGV2ZW50SWQ6IHN0cmluZyB9KSA9PiBQcm9taXNlPGFueT4pIHtcbiAgc3Vic2NyaWJlRnVuY3Rpb24gPSBmblxufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQGRlcHJlY2F0ZWQgdGhpcyBpcyBhbiBPTEQgQVBJLlxuICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBTREs2IHNlbmRCYXRjaCB0byBwb2xsIGV2ZW50cyBmcm9tIHRoZSByZW5kZXJlclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcG9sbEV2ZW50cyhzZW5kQmF0Y2g6IChib2R5OiBNYW55RW50aXR5QWN0aW9uKSA9PiBQcm9taXNlPFNlbmRCYXRjaFJlc3BvbnNlPikge1xuICBjb25zdCB7IGV2ZW50cyB9ID0gYXdhaXQgc2VuZEJhdGNoKHsgYWN0aW9uczogW10gfSlcbiAgZm9yIChjb25zdCBlIG9mIGV2ZW50cykge1xuICAgIGlmIChlLmdlbmVyaWMpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGUuZ2VuZXJpYy5ldmVudERhdGEpXG4gICAgICBzd2l0Y2ggKGUuZ2VuZXJpYy5ldmVudElkKSB7XG4gICAgICAgIGNhc2UgJ29uRW50ZXJTY2VuZSc6IHtcbiAgICAgICAgICBvbkVudGVyU2NlbmVPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ29uRW50ZXJTY2VuZSddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnb25MZWF2ZVNjZW5lJzoge1xuICAgICAgICAgIG9uTGVhdmVTY2VuZU9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1snb25MZWF2ZVNjZW5lJ10pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdzY2VuZVN0YXJ0Jzoge1xuICAgICAgICAgIG9uU2NlbmVSZWFkeU9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1snc2NlbmVTdGFydCddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAncGxheWVyRXhwcmVzc2lvbic6IHtcbiAgICAgICAgICBvblBsYXllckV4cHJlc3Npb25PYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ3BsYXllckV4cHJlc3Npb24nXSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3ZpZGVvRXZlbnQnOiB7XG4gICAgICAgICAgY29uc3QgdmlkZW9EYXRhID0gZGF0YSBhcyBJRXZlbnRzWyd2aWRlb0V2ZW50J11cbiAgICAgICAgICBvblZpZGVvRXZlbnQubm90aWZ5T2JzZXJ2ZXJzKHZpZGVvRGF0YSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3Byb2ZpbGVDaGFuZ2VkJzoge1xuICAgICAgICAgIG9uUHJvZmlsZUNoYW5nZWQubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1sncHJvZmlsZUNoYW5nZWQnXSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3BsYXllckNvbm5lY3RlZCc6IHtcbiAgICAgICAgICBvblBsYXllckNvbm5lY3RlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1sncGxheWVyQ29ubmVjdGVkJ10pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdwbGF5ZXJEaXNjb25uZWN0ZWQnOiB7XG4gICAgICAgICAgb25QbGF5ZXJEaXNjb25uZWN0ZWRPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ3BsYXllckRpc2Nvbm5lY3RlZCddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnb25SZWFsbUNoYW5nZWQnOiB7XG4gICAgICAgICAgb25SZWFsbUNoYW5nZWRPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ29uUmVhbG1DaGFuZ2VkJ10pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdwbGF5ZXJDbGlja2VkJzoge1xuICAgICAgICAgIG9uUGxheWVyQ2xpY2tlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1sncGxheWVyQ2xpY2tlZCddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dcl/sdk",
3
- "version": "7.0.6-3999809037.commit-0a47a3c",
3
+ "version": "7.0.6-4009020955.commit-08722f5",
4
4
  "description": "",
5
5
  "main": "./index.js",
6
6
  "typings": "./index.d.ts",
@@ -20,21 +20,32 @@
20
20
  "author": "Decentraland",
21
21
  "license": "Apache-2.0",
22
22
  "dependencies": {
23
- "@dcl/dcl-rollup": "7.0.6-3999809037.commit-0a47a3c",
24
- "@dcl/ecs": "7.0.6-3999809037.commit-0a47a3c",
23
+ "@dcl/dcl-rollup": "7.0.6-4009020955.commit-08722f5",
24
+ "@dcl/ecs": "7.0.6-4009020955.commit-08722f5",
25
25
  "@dcl/ecs-math": "2.0.1-20221129185242.commit-40495c1",
26
- "@dcl/js-runtime": "7.0.6-3999809037.commit-0a47a3c",
26
+ "@dcl/js-runtime": "7.0.6-4009020955.commit-08722f5",
27
27
  "@dcl/kernel": "2.0.0-3766760530.commit-239d2a9",
28
- "@dcl/react-ecs": "7.0.6-3999809037.commit-0a47a3c",
28
+ "@dcl/mini-comms": "1.0.0",
29
+ "@dcl/react-ecs": "7.0.6-4009020955.commit-08722f5",
30
+ "@dcl/schemas": "5.14.0",
29
31
  "@dcl/unity-renderer": "1.0.68557-20221221195847.commit-f743b85",
32
+ "@types/inquirer": "^8.2.5",
33
+ "@well-known-components/env-config-provider": "^1.1.2-20220801195549.commit-101c273",
34
+ "@well-known-components/http-server": "^1.1.6-20220927190058.commit-2dfb235",
35
+ "@well-known-components/logger": "^3.0.0",
36
+ "@well-known-components/metrics": "^2.0.1-20220909150423.commit-8f7e5bc",
30
37
  "arg": "5.0.2",
31
38
  "extract-zip": "2.0.1",
32
39
  "inquirer": "^8.2.5",
40
+ "node-fetch": "^2.6.8",
41
+ "open": "^8.4.0",
33
42
  "ora": "6.1.2",
43
+ "portfinder": "^1.0.32",
34
44
  "undici": "^5.14.0"
35
45
  },
36
46
  "devDependencies": {
37
- "@types/inquirer": "^8.2.5"
47
+ "@types/node-fetch": "^2.6.1",
48
+ "@types/ws": "^8.5.4"
38
49
  },
39
50
  "minCliVersion": "3.14.1",
40
51
  "typedoc": {
@@ -43,5 +54,5 @@
43
54
  "displayName": "SDK",
44
55
  "tsconfig": "./tsconfig.json"
45
56
  },
46
- "commit": "0a47a3c6e7e075d98d04c5ceab1eb8185c70bd9c"
57
+ "commit": "08722f5fb9539e46f90cc94b5f9634ef0ef314ea"
47
58
  }
@@ -36,12 +36,7 @@ export class ObserverEventState {
36
36
  * @param target - defines the original target of the state
37
37
  * @param currentTarget - defines the current target of the state
38
38
  */
39
- constructor(
40
- mask: number,
41
- skipNextObservers = false,
42
- target?: any,
43
- currentTarget?: any
44
- ) {
39
+ constructor(mask: number, skipNextObservers = false, target?: any, currentTarget?: any) {
45
40
  this.initalize(mask, skipNextObservers, target, currentTarget)
46
41
  }
47
42
 
@@ -53,12 +48,7 @@ export class ObserverEventState {
53
48
  * @param currentTarget - defines the current target of the state
54
49
  * @returns the current event state
55
50
  */
56
- public initalize(
57
- mask: number,
58
- skipNextObservers = false,
59
- target?: any,
60
- currentTarget?: any
61
- ): ObserverEventState {
51
+ public initalize(mask: number, skipNextObservers = false, target?: any, currentTarget?: any): ObserverEventState {
62
52
  this.mask = mask
63
53
  this.skipNextObservers = skipNextObservers
64
54
  this.target = target
@@ -172,9 +162,7 @@ export class Observable<T> {
172
162
  * @param callback - the callback that will be executed for that Observer
173
163
  * @returns the new observer created for the callback
174
164
  */
175
- public addOnce(
176
- callback: (eventData: T, eventState: ObserverEventState) => void
177
- ): null | Observer<T> {
165
+ public addOnce(callback: (eventData: T, eventState: ObserverEventState) => void): null | Observer<T> {
178
166
  return this.add(callback, undefined, undefined, undefined, true)
179
167
  }
180
168
 
@@ -204,15 +192,9 @@ export class Observable<T> {
204
192
  * @param scope - optional scope. If used only the callbacks with this scope will be removed
205
193
  * @returns false if it doesn't belong to this Observable
206
194
  */
207
- public removeCallback(
208
- callback: (eventData: T, eventState: ObserverEventState) => void,
209
- scope?: any
210
- ): boolean {
195
+ public removeCallback(callback: (eventData: T, eventState: ObserverEventState) => void, scope?: any): boolean {
211
196
  for (let index = 0; index < this._observers.length; index++) {
212
- if (
213
- this._observers[index].callback === callback &&
214
- (!scope || scope === this._observers[index].scope)
215
- ) {
197
+ if (this._observers[index].callback === callback && (!scope || scope === this._observers[index].scope)) {
216
198
  this._deferUnregister(this._observers[index])
217
199
  return true
218
200
  }
@@ -230,12 +212,7 @@ export class Observable<T> {
230
212
  * @param currentTarget - defines the current target of the state
231
213
  * @returns false if the complete observer chain was not processed (because one observer set the skipNextObservers to true)
232
214
  */
233
- public notifyObservers(
234
- eventData: T,
235
- mask: number = -1,
236
- target?: any,
237
- currentTarget?: any
238
- ): boolean {
215
+ public notifyObservers(eventData: T, mask: number = -1, target?: any, currentTarget?: any): boolean {
239
216
  if (!this._observers.length) {
240
217
  return true
241
218
  }
@@ -254,10 +231,7 @@ export class Observable<T> {
254
231
 
255
232
  if (obs.mask & mask) {
256
233
  if (obs.scope) {
257
- state.lastReturnValue = obs.callback.apply(obs.scope, [
258
- eventData,
259
- state
260
- ])
234
+ state.lastReturnValue = obs.callback.apply(obs.scope, [eventData, state])
261
235
  } else {
262
236
  state.lastReturnValue = obs.callback(eventData, state)
263
237
  }
@@ -286,12 +260,7 @@ export class Observable<T> {
286
260
  * @param currentTarget - defines he current object in the bubbling phase
287
261
  * @returns will return a Promise than resolves when all callbacks executed successfully.
288
262
  */
289
- public notifyObserversWithPromise(
290
- eventData: T,
291
- mask: number = -1,
292
- target?: any,
293
- currentTarget?: any
294
- ): Promise<T> {
263
+ public notifyObserversWithPromise(eventData: T, mask: number = -1, target?: any, currentTarget?: any): Promise<T> {
295
264
  // create an empty promise
296
265
  let p: Promise<any> = Promise.resolve(eventData)
297
266
 
@@ -344,11 +313,7 @@ export class Observable<T> {
344
313
  * @param eventData - defines the data to be sent to each callback
345
314
  * @param mask - is used to filter observers defaults to -1
346
315
  */
347
- public notifyObserver(
348
- observer: Observer<T>,
349
- eventData: T,
350
- mask: number = -1
351
- ): void {
316
+ public notifyObserver(observer: Observer<T>, eventData: T, mask: number = -1): void {
352
317
  const state = this._eventState
353
318
  state.mask = mask
354
319
  state.skipNextObservers = false
@@ -19,9 +19,7 @@ export interface MessageDict {
19
19
  [key: string]: string
20
20
  }
21
21
 
22
- export type SendAsyncType = (
23
- params: SendAsyncRequest
24
- ) => Promise<SendAsyncResponse>
22
+ export type SendAsyncType = (params: SendAsyncRequest) => Promise<SendAsyncResponse>
25
23
 
26
24
  export function getEthereumProvider(sendAsync: SendAsyncType) {
27
25
  async function request(message: RPCSendableMessage) {
@@ -35,10 +33,7 @@ export function getEthereumProvider(sendAsync: SendAsyncType) {
35
33
 
36
34
  return {
37
35
  // @internal
38
- send(
39
- message: RPCSendableMessage,
40
- callback?: (error: Error | null, result?: any) => void
41
- ): void {
36
+ send(message: RPCSendableMessage, callback?: (error: Error | null, result?: any) => void): void {
42
37
  if (message && callback && callback instanceof Function) {
43
38
  request(message)
44
39
  .then((x: any) => callback(null, x))
@@ -47,10 +42,7 @@ export function getEthereumProvider(sendAsync: SendAsyncType) {
47
42
  throw new Error('Decentraland provider only allows async calls')
48
43
  }
49
44
  },
50
- sendAsync(
51
- message: RPCSendableMessage,
52
- callback: (error: Error | null, result?: any) => void
53
- ): void {
45
+ sendAsync(message: RPCSendableMessage, callback: (error: Error | null, result?: any) => void): void {
54
46
  request(message)
55
47
  .then((x: any) => callback(null, x))
56
48
  .catch(callback)