@dynatrace/rum-javascript-sdk 1.335.1 → 1.337.1

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 (34) hide show
  1. package/dist/api/index.d.ts +16 -0
  2. package/dist/api/index.js +25 -1
  3. package/dist/api/interactions.d.ts +3 -0
  4. package/dist/api/interactions.js +4 -1
  5. package/dist/api/promises/index.d.ts +23 -0
  6. package/dist/api/promises/index.js +36 -7
  7. package/dist/api/promises/interactions.d.ts +3 -0
  8. package/dist/api/promises/interactions.js +4 -1
  9. package/dist/api/user-actions.d.ts +5 -5
  10. package/dist/api/user-actions.js +6 -6
  11. package/dist/types/api/dynatrace-api-types.d.ts +39 -27
  12. package/dist/types/api/dynatrace-api-types.js +1 -1
  13. package/dist/types/index-typedoc.d.ts +1 -0
  14. package/dist/types/index-typedoc.js +2 -1
  15. package/dist/types/rum-events/index.d.ts +1 -0
  16. package/dist/types/rum-events/index.js +2 -1
  17. package/dist/types/rum-events/json-event.d.ts +0 -6
  18. package/dist/types/rum-events/json-event.js +1 -1
  19. package/dist/types/rum-events/open-fields.d.ts +74 -0
  20. package/dist/types/rum-events/open-fields.js +84 -0
  21. package/dist/types/rum-events/rum-internal-selfmonitoring-event.d.ts +17 -1
  22. package/dist/types/rum-events/rum-internal-selfmonitoring-event.js +17 -1
  23. package/dist/types/rum-events/rum-user-interaction-event.d.ts +32 -2
  24. package/dist/types/rum-events/rum-user-interaction-event.js +26 -2
  25. package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-event-fields.d.ts +3 -2
  26. package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-event-fields.js +1 -1
  27. package/dist/types/user-actions/user-action-start-options.d.ts +13 -0
  28. package/dist/types/user-actions/user-action-start-options.js +1 -1
  29. package/dist/types/user-actions/user-action-tracker.d.ts +35 -3
  30. package/dist/types/user-actions/user-action-tracker.js +1 -1
  31. package/docs/1-overview.md +54 -0
  32. package/docs/4-useractions.md +93 -75
  33. package/docs/5-interactions.md +26 -1
  34. package/package.json +7 -7
@@ -38,6 +38,22 @@ export declare function runHealthCheck(config?: HealthCheckConfig): Promise<unkn
38
38
  * @param value The name of the user. For example, use a name, userid, or your user's email address.
39
39
  */
40
40
  export declare function identifyUser(value: string): void;
41
+ /**
42
+ * Safe wrapper for {@link dynatrace.userOptIn} which reverts to a noop if RUM JavaScript is not available.
43
+ *
44
+ * Grants consent for data collection.
45
+ *
46
+ * @internal
47
+ */
48
+ export declare function userOptIn(): void;
49
+ /**
50
+ * Safe wrapper for {@link dynatrace.userOptOut} which reverts to a noop if RUM JavaScript is not available.
51
+ *
52
+ * Revokes consent for data collection.
53
+ *
54
+ * @internal
55
+ */
56
+ export declare function userOptOut(): void;
41
57
  /**
42
58
  * Safe wrapper for {@link dynatrace.sendSessionPropertyEvent} which reverts to a noop if RUM JavaScript is not available.
43
59
  *
package/dist/api/index.js CHANGED
@@ -56,6 +56,30 @@ export function identifyUser(value) {
56
56
  dt.identifyUser(value);
57
57
  });
58
58
  }
59
+ /**
60
+ * Safe wrapper for {@link dynatrace.userOptIn} which reverts to a noop if RUM JavaScript is not available.
61
+ *
62
+ * Grants consent for data collection.
63
+ *
64
+ * @internal
65
+ */
66
+ export function userOptIn() {
67
+ guardDynatrace((dt) => {
68
+ dt.userOptIn();
69
+ });
70
+ }
71
+ /**
72
+ * Safe wrapper for {@link dynatrace.userOptOut} which reverts to a noop if RUM JavaScript is not available.
73
+ *
74
+ * Revokes consent for data collection.
75
+ *
76
+ * @internal
77
+ */
78
+ export function userOptOut() {
79
+ guardDynatrace((dt) => {
80
+ dt.userOptOut();
81
+ });
82
+ }
59
83
  /**
60
84
  * Safe wrapper for {@link dynatrace.sendSessionPropertyEvent} which reverts to a noop if RUM JavaScript is not available.
61
85
  *
@@ -107,4 +131,4 @@ function guardDynatrace(fn) {
107
131
  }
108
132
  return fn(globalDt);
109
133
  }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvYXBpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQXNDLEVBQUUsWUFBc0I7SUFDcEYsY0FBYyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDbEIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxhQUFnRztJQUM3SCxPQUFPLGNBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ3pCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUEwQjtJQUNyRCxPQUFPLGNBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ3pCLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFhO0lBQ3RDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ2xCLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsTUFBd0M7SUFDN0UsY0FBYyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDbEIsRUFBRSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBWSxFQUFFLE1BQXVDO0lBQ3BGLGNBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ2xCLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN6QixHQUFHLENBQUMsc0ZBQXNGLENBQUMsQ0FBQztZQUM1RixPQUFPO1FBQ1gsQ0FBQztRQUNELEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLGNBQWMsQ0FBa0UsRUFBSztJQUMxRixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzFCLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gICAgQXBpQ3JlYXRlZEV2ZW50UHJvcGVydGllc0V2ZW50LFxuICAgIEFwaUNyZWF0ZWRTZXNzaW9uUHJvcGVydGllc0V2ZW50LFxuICAgIEV2ZW50Q29udGV4dCxcbiAgICBIZWFsdGhDaGVja0NvbmZpZyxcbiAgICBKU09ORXZlbnQsXG4gICAgVW5zdWJzY3JpYmVyXG59IGZyb20gXCIuLi90eXBlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgZ2V0R2xvYmFsIH0gZnJvbSBcIi4vZ2xvYmFsLWFkYXB0ZXIuanNcIjtcbmltcG9ydCB7IGlzVmFsaWRBZ2VudCB9IGZyb20gXCIuL3R5cGUtZ3VhcmRzL2lzLXZhbGlkLWFnZW50LmpzXCI7XG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiLi9sb2dnaW5nLmpzXCI7XG5cbmV4cG9ydCB7IER5bmF0cmFjZUVycm9yIH0gZnJvbSBcIi4vZHluYXRyYWNlLWVycm9yLmpzXCI7XG5cbi8qKlxuICogU2FmZSB3cmFwcGVyIGZvciB7QGxpbmsgZHluYXRyYWNlLnNlbmRFdmVudH0gd2hpY2ggcmV2ZXJ0cyB0byBhIG5vb3AgaWYgUlVNIEphdmFTY3JpcHQgaXMgbm90IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gZmllbGRzICAgICAgIE11c3QgYmUgYSB2YWxpZCBKU09OIG9iamVjdCBhbmQgY2Fubm90IGNvbnRhaW4gZnVuY3Rpb25zLCB1bmRlZmluZWQsIEluZmluaXR5IGFuZCBOYU4gYXNcbiAqICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLCBvdGhlcndpc2UgdGhleSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggbnVsbC4gVGhlIGBmaWVsZHNgIG5lZWQgdG8gYmUgc2VyaWFsaXphYmxlXG4gKiAgICAgICAgICAgICAgICAgICAgIHVzaW5nIEpTT04uc3RyaW5naWZ5LiBUaGUgcmVzdWx0aW5nIGV2ZW50IHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggYGZpZWxkc2AgcGFyYW1ldGVyLCBhbmRcbiAqICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgd2l0aCBhZGRpdGlvbmFsIHByb3BlcnRpZXMsIHRodXMgYWxzbyBlbXB0eSBvYmplY3RzIGFyZSB2YWxpZC4gT25seSBwcm9wZXJ0aWVzXG4gKiAgICAgICAgICAgICAgICAgICAgIHByZWZpeGVkIHdpdGggYGV2ZW50X3Byb3BlcnRpZXMuYCwgdGhlIGBkdXJhdGlvbmAgcHJvcGVydHkgYW5kIHRoZSBgc3RhcnRfdGltZWAgcHJvcGVydHkgYXJlXG4gKiAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQuXG4gKiBAcGFyYW0gZXZlbnRDb250ZXh0IEFuIG9wdGlvbmFsIGNvbnRleHQgdGhhdCBjYW4gYmUgdXNlZCB0byBtYW5pcHVsYXRlIHRoZVxuICogICAgICAgICAgICAgICAgICAgICByZXN1bHQgZXZlbnQgd2l0aGluIHRoZSBtb2RpZmljYXRpb24gY2FsbGJhY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZW5kRXZlbnQoZmllbGRzOiBBcGlDcmVhdGVkRXZlbnRQcm9wZXJ0aWVzRXZlbnQsIGV2ZW50Q29udGV4dD86IHVua25vd24pOiB2b2lkIHtcbiAgICBndWFyZER5bmF0cmFjZSgoZHQpID0+IHtcbiAgICAgICAgZHQuc2VuZEV2ZW50KGZpZWxkcywgZXZlbnRDb250ZXh0KTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBTYWZlIHdyYXBwZXIgZm9yIHtAbGluayBkeW5hdHJhY2UuYWRkRXZlbnRNb2RpZmllcn0gd2hpY2ggcmV2ZXJ0cyB0byBhIG5vb3AgaWYgUlVNIEphdmFTY3JpcHQgaXMgbm90IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gZXZlbnRNb2RpZmllciBUaGUgbW9kaWZpZXIgZnVuY3Rpb24gdG8gbW9kaWZ5IGEgZ2l2ZW4gKHJlYWRvbmx5KSBKU09ORXZlbnQuIEl0IHJlY2VpdmVzIGFuIG9wdGlvbmFsIGNvbnRleHRcbiAqICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiBldmVudCwgaWYgYXZhaWxhYmxlLiBUaGUgcmV0dXJuZWQgZXZlbnQgbXVzdCBiZSBhIG5ldyBvYmplY3QsIG90aGVyd2lzZVxuICogICAgICAgICAgICAgICAgICAgICAgbW9kaWZpY2F0aW9uIHdpbGwgYmUgaWdub3JlZC5cbiAqIEByZXR1cm5zICAgICAgICAgICAgIFRoZSB1bnN1YnNjcmliZXIgZnVuY3Rpb24gdG8gdHVybiBvZmYgZXZlbnQgbW9kaWZpY2F0aW9uLCBvciB1bmRlZmluZWQgaWYgUlVNIEphdmFTY3JpcHQgaXMgbm90IGF2YWlsYWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEV2ZW50TW9kaWZpZXIoZXZlbnRNb2RpZmllcjogKGpzb25FdmVudDogUmVhZG9ubHk8SlNPTkV2ZW50PiwgZXZlbnRDb250ZXh0PzogRXZlbnRDb250ZXh0KSA9PiBKU09ORXZlbnQgfCBudWxsKTogVW5zdWJzY3JpYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZ3VhcmREeW5hdHJhY2UoKGR0KSA9PiB7XG4gICAgICAgIHJldHVybiBkdC5hZGRFdmVudE1vZGlmaWVyKGV2ZW50TW9kaWZpZXIpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIFNhZmUgd3JhcHBlciBmb3Ige0BsaW5rIGR5bmF0cmFjZS5ydW5IZWFsdGhDaGVja30gd2hpY2ggcmV2ZXJ0cyB0byBhIG5vb3AgaWYgUlVNIEphdmFTY3JpcHQgaXMgbm90IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoZSBoZWFsdGggY2hlY2suXG4gKiBAcGFyYW0gY29uZmlnLmxvZ1ZlcmJvc2UgICAgICAgICAgICAgICBJZiB0cnVlLCB2ZXJib3NlIGluZm9ybWF0aW9uIGlzIGluY2x1ZGVkIGluIHRoZSBoZWFsdGggY2hlY2suXG4gKiBAcGFyYW0gY29uZmlnLnJldHVybkRpYWdub3N0aWNEYXRhICAgICBJZiB0cnVlLCB0aGUgZGlhZ25vc3RpYyBkYXRhIGlzIHJldHVybmVkIGFzIGFycmF5IGluc3RlYWQgb2YganVzdCBiZWluZyBsb2dnZWQuXG4gKiBAcGFyYW0gY29uZmlnLnJ1bkRldGFpbGVkT3ZlcnJpZGVDaGVjayBJZiB0cnVlLCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9nZ2VkIHRvIHRoZSBjb25zb2xlIGZvciBvdmVycmlkZGVuIG5hdGl2ZSBBUElzLlxuICogQHJldHVybnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSBwcm9taXNlIHRoYXQgc2V0dGxlcyBhcyBzb29uIGFzIHRoZSBoZWFsdGggY2hlY2sgaGFzIGJlZW4gcGVyZm9ybWVkLCBvciB1bmRlZmluZWQgaWYgUlVNIEphdmFTY3JpcHQgaXMgbm90IGF2YWlsYWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkhlYWx0aENoZWNrKGNvbmZpZz86IEhlYWx0aENoZWNrQ29uZmlnKTogUHJvbWlzZTx1bmtub3duW10gfCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZ3VhcmREeW5hdHJhY2UoKGR0KSA9PiB7XG4gICAgICAgIHJldHVybiBkdC5ydW5IZWFsdGhDaGVjayhjb25maWcpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIFNhZmUgd3JhcHBlciBmb3Ige0BsaW5rIGR5bmF0cmFjZS5pZGVudGlmeVVzZXJ9IHdoaWNoIHJldmVydHMgdG8gYSBub29wIGlmIFJVTSBKYXZhU2NyaXB0IGlzIG5vdCBhdmFpbGFibGUuXG4gKlxuICogQHBhcmFtIHZhbHVlIFRoZSBuYW1lIG9mIHRoZSB1c2VyLiBGb3IgZXhhbXBsZSwgdXNlIGEgbmFtZSwgdXNlcmlkLCBvciB5b3VyIHVzZXIncyBlbWFpbCBhZGRyZXNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaWRlbnRpZnlVc2VyKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBndWFyZER5bmF0cmFjZSgoZHQpID0+IHtcbiAgICAgICAgZHQuaWRlbnRpZnlVc2VyKHZhbHVlKTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBTYWZlIHdyYXBwZXIgZm9yIHtAbGluayBkeW5hdHJhY2Uuc2VuZFNlc3Npb25Qcm9wZXJ0eUV2ZW50fSB3aGljaCByZXZlcnRzIHRvIGEgbm9vcCBpZiBSVU0gSmF2YVNjcmlwdCBpcyBub3QgYXZhaWxhYmxlLlxuICpcbiAqIEBwYXJhbSBmaWVsZHMgTXVzdCBiZSBhIHZhbGlkIEpTT04gb2JqZWN0IGFuZCBjYW5ub3QgY29udGFpbiBmdW5jdGlvbnMsIHVuZGVmaW5lZCwgSW5maW5pdHkgYW5kIE5hTiBhc1xuICogICAgICAgICAgICAgICB2YWx1ZXMsIG90aGVyd2lzZSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBudWxsLiBUaGUgYGZpZWxkc2AgbmVlZCB0byBiZSBzZXJpYWxpemFibGVcbiAqICAgICAgICAgICAgICAgdXNpbmcgSlNPTi5zdHJpbmdpZnkuIEFsbCBrZXlzIG11c3QgYmUgcHJlZml4ZWQgd2l0aCBcInNlc3Npb25fcHJvcGVydGllcy4qXCIgYW5kIG11c3QgY29udGFpbiBvbmx5XG4gKiAgICAgICAgICAgICAgIGxvd2VyLWNhc2UgY2hhcmFjdGVycywgbnVtYmVycywgdW5kZXJzY29yZXMgb3IgZG90cy4gRWFjaCBkb3QgbXVzdCBiZSBmb2xsb3dlZCBieSBhIGxvd2VyLWNhc2VcbiAqICAgICAgICAgICAgICAgY2hhcmFjdGVyLiBFYWNoIHVuZGVyc2NvcmUgbXVzdCBiZSBmb2xsb3dlZCBieSBhIGxvd2VyLWNhc2UgY2hhcmFjdGVyIG9yIG51bWJlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlbmRTZXNzaW9uUHJvcGVydHlFdmVudChmaWVsZHM6IEFwaUNyZWF0ZWRTZXNzaW9uUHJvcGVydGllc0V2ZW50KTogdm9pZCB7XG4gICAgZ3VhcmREeW5hdHJhY2UoKGR0KSA9PiB7XG4gICAgICAgIGR0LnNlbmRTZXNzaW9uUHJvcGVydHlFdmVudChmaWVsZHMpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhdmFpbGFibGUgaWYgdGhlIEVycm9yIG1vZHVsZSBpcyBlbmFibGVkXG4gKlxuICogQHBhcmFtIGVycm9yICBNdXN0IGJlIGEgdmFsaWQgaW5zdGFuY2Ugb2YgdGhlIEVycm9yIGNsYXNzLiBJZiBhbiBpbnZhbGlkIHZhbHVlIGlzIHByb3ZpZGVkLCB0aGUgZXJyb3Igd2lsbCBub3QgYmUgcHJvY2Vzc2VkIG9yIHNlbnQuXG4gKiBAcGFyYW0gZmllbGRzIE9wdGlvbmFsOiBNdXN0IGJlIGEgdmFsaWQgSlNPTiBvYmplY3QgYW5kIGNhbm5vdCBjb250YWluIGZ1bmN0aW9ucywgdW5kZWZpbmVkLCBJbmZpbml0eSBhbmQgTmFOIGFzXG4gKiAgICAgICAgICAgICAgIHZhbHVlcywgb3RoZXJ3aXNlIHRoZXkgd2lsbCBiZSByZXBsYWNlZCB3aXRoIG51bGwuIFRoZSBgZmllbGRzYCBuZWVkIHRvIGJlIHNlcmlhbGl6YWJsZVxuICogICAgICAgICAgICAgICB1c2luZyBKU09OLnN0cmluZ2lmeS4gVGhlIHJlc3VsdGluZyBldmVudCB3aWxsIGNvbnRhaW4gdGhlIHByb3ZpZGVkIGBmaWVsZHNgLCBhbmQgaXNcbiAqICAgICAgICAgICAgICAgbW9kaWZpZWQgd2l0aCBhZGRpdGlvbmFsIHByb3BlcnRpZXMsIHRodXMgYWxzbyBlbXB0eSBvYmplY3RzIGFyZSB2YWxpZC4gT25seSBwcm9wZXJ0aWVzXG4gKiAgICAgICAgICAgICAgIHByZWZpeGVkIHdpdGggYGV2ZW50X3Byb3BlcnRpZXMuYCwgdGhlIGBkdXJhdGlvbmAgcHJvcGVydHkgYW5kIHRoZSBgc3RhcnRfdGltZWAgcHJvcGVydHkgYXJlXG4gKiAgICAgICAgICAgICAgIGFsbG93ZWQuIFN0cmluZyBwcm9wZXJ0aWVzIGFyZSBsaW1pdGVkIHRvIDUwMDAgY2hhcmFjdGVycywgZXhjZWVkaW5nIGNoYXJhY3RlcnMgYXJlIGN1dCBvZmYuXG4gKiAgICAgICAgICAgICAgIEFsbCBldmVudCBwcm9wZXJ0eSBrZXlzIG11c3QgY29udGFpbiBvbmx5IGFscGhhYmV0aWMgY2hhcmFjdGVycywgbnVtYmVycyxcbiAqICAgICAgICAgICAgICAgdW5kZXJzY29yZXMgb3IgZG90cy4gRWFjaCBkb3QgbXVzdCBiZSBmb2xsb3dlZCBieSBhbiBhbHBoYWJldGljIGNoYXJhY3Rlci4gRWFjaCB1bmRlcnNjb3JlXG4gKiAgICAgICAgICAgICAgIG11c3QgYmUgZm9sbG93ZWQgYnkgYW4gYWxwaGFiZXRpYyBjaGFyYWN0ZXIgb3IgbnVtYmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VuZEV4Y2VwdGlvbkV2ZW50KGVycm9yOiBFcnJvciwgZmllbGRzPzogQXBpQ3JlYXRlZEV2ZW50UHJvcGVydGllc0V2ZW50KTogdm9pZCB7XG4gICAgZ3VhcmREeW5hdHJhY2UoKGR0KSA9PiB7XG4gICAgICAgIGlmICghZHQuc2VuZEV4Y2VwdGlvbkV2ZW50KSB7XG4gICAgICAgICAgICBsb2coXCJkeW5hdHJhY2Uuc2VuZEV4Y2VwdGlvbkV2ZW50IGlzIG5vdCBhdmFpbGFibGUsIHRoZSBFcnJvciBtb2R1bGUgbWlnaHQgbm90IGJlIGVuYWJsZWRcIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZHQuc2VuZEV4Y2VwdGlvbkV2ZW50KGVycm9yLCBmaWVsZHMpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIFNhZmUgd3JhcHBlciBmb3IgdmFyaW91cyBSVU0gSmF2YVNjcmlwdCBBUEkgZnVuY3Rpb25zIHdoaWNoIHJldmVydHMgdG8gYSBub29wIGlmIFJVTSBKYXZhU2NyaXB0IGlzIG5vdCBhdmFpbGFibGUuXG4gKlxuICogQHBhcmFtIGZuIFRoZSBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCBpZiBSVU0gSmF2YVNjcmlwdCBpcyBhdmFpbGFibGUuXG4gKiBAcmV0dXJucyAgVGhlIHJlc3VsdCBvZiB0aGUgcHJvdmlkZWQgZnVuY3Rpb24gY2FsbCBpZiBSVU0gSmF2YVNjcmlwdCBpcyBhdmFpbGFibGUsIG90aGVyd2lzZSB1bmRlZmluZWQuXG4gKi9cbmZ1bmN0aW9uIGd1YXJkRHluYXRyYWNlPFQgZXh0ZW5kcyAoZHQ6IE5vbk51bGxhYmxlPHR5cGVvZiBnbG9iYWxUaGlzLmR5bmF0cmFjZT4pID0+IGFueT4oZm46IFQpOiBSZXR1cm5UeXBlPFQ+IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBnbG9iYWxEdCA9IGdldEdsb2JhbChcImR5bmF0cmFjZVwiKTtcbiAgICBpZiAoIWlzVmFsaWRBZ2VudChnbG9iYWxEdCkpIHtcbiAgICAgICAgbG9nKFwiZHluYXRyYWNlIGlzIG5vdCBhdmFpbGFibGVcIik7XG4gICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIHJldHVybiBmbihnbG9iYWxEdCk7XG59XG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvYXBpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQXNDLEVBQUUsWUFBc0I7SUFDcEYsY0FBYyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDbEIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxhQUFnRztJQUM3SCxPQUFPLGNBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ3pCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUEwQjtJQUNyRCxPQUFPLGNBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ3pCLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFhO0lBQ3RDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ2xCLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFNBQVM7SUFDckIsY0FBYyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDbEIsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxVQUFVO0lBQ3RCLGNBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ2xCLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxNQUF3QztJQUM3RSxjQUFjLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtRQUNsQixFQUFFLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFZLEVBQUUsTUFBdUM7SUFDcEYsY0FBYyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDbEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3pCLEdBQUcsQ0FBQyxzRkFBc0YsQ0FBQyxDQUFDO1lBQzVGLE9BQU87UUFDWCxDQUFDO1FBQ0QsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsY0FBYyxDQUFrRSxFQUFLO0lBQzFGLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDMUIsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbEMsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgICBBcGlDcmVhdGVkRXZlbnRQcm9wZXJ0aWVzRXZlbnQsXG4gICAgQXBpQ3JlYXRlZFNlc3Npb25Qcm9wZXJ0aWVzRXZlbnQsXG4gICAgRXZlbnRDb250ZXh0LFxuICAgIEhlYWx0aENoZWNrQ29uZmlnLFxuICAgIEpTT05FdmVudCxcbiAgICBVbnN1YnNjcmliZXJcbn0gZnJvbSBcIi4uL3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBnZXRHbG9iYWwgfSBmcm9tIFwiLi9nbG9iYWwtYWRhcHRlci5qc1wiO1xuaW1wb3J0IHsgaXNWYWxpZEFnZW50IH0gZnJvbSBcIi4vdHlwZS1ndWFyZHMvaXMtdmFsaWQtYWdlbnQuanNcIjtcbmltcG9ydCB7IGxvZyB9IGZyb20gXCIuL2xvZ2dpbmcuanNcIjtcblxuZXhwb3J0IHsgRHluYXRyYWNlRXJyb3IgfSBmcm9tIFwiLi9keW5hdHJhY2UtZXJyb3IuanNcIjtcblxuLyoqXG4gKiBTYWZlIHdyYXBwZXIgZm9yIHtAbGluayBkeW5hdHJhY2Uuc2VuZEV2ZW50fSB3aGljaCByZXZlcnRzIHRvIGEgbm9vcCBpZiBSVU0gSmF2YVNjcmlwdCBpcyBub3QgYXZhaWxhYmxlLlxuICpcbiAqIEBwYXJhbSBmaWVsZHMgICAgICAgTXVzdCBiZSBhIHZhbGlkIEpTT04gb2JqZWN0IGFuZCBjYW5ub3QgY29udGFpbiBmdW5jdGlvbnMsIHVuZGVmaW5lZCwgSW5maW5pdHkgYW5kIE5hTiBhc1xuICogICAgICAgICAgICAgICAgICAgICB2YWx1ZXMsIG90aGVyd2lzZSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBudWxsLiBUaGUgYGZpZWxkc2AgbmVlZCB0byBiZSBzZXJpYWxpemFibGVcbiAqICAgICAgICAgICAgICAgICAgICAgdXNpbmcgSlNPTi5zdHJpbmdpZnkuIFRoZSByZXN1bHRpbmcgZXZlbnQgd2lsbCBiZSBwb3B1bGF0ZWQgd2l0aCBgZmllbGRzYCBwYXJhbWV0ZXIsIGFuZFxuICogICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCB3aXRoIGFkZGl0aW9uYWwgcHJvcGVydGllcywgdGh1cyBhbHNvIGVtcHR5IG9iamVjdHMgYXJlIHZhbGlkLiBPbmx5IHByb3BlcnRpZXNcbiAqICAgICAgICAgICAgICAgICAgICAgcHJlZml4ZWQgd2l0aCBgZXZlbnRfcHJvcGVydGllcy5gLCB0aGUgYGR1cmF0aW9uYCBwcm9wZXJ0eSBhbmQgdGhlIGBzdGFydF90aW1lYCBwcm9wZXJ0eSBhcmVcbiAqICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZC5cbiAqIEBwYXJhbSBldmVudENvbnRleHQgQW4gb3B0aW9uYWwgY29udGV4dCB0aGF0IGNhbiBiZSB1c2VkIHRvIG1hbmlwdWxhdGUgdGhlXG4gKiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCBldmVudCB3aXRoaW4gdGhlIG1vZGlmaWNhdGlvbiBjYWxsYmFjay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlbmRFdmVudChmaWVsZHM6IEFwaUNyZWF0ZWRFdmVudFByb3BlcnRpZXNFdmVudCwgZXZlbnRDb250ZXh0PzogdW5rbm93bik6IHZvaWQge1xuICAgIGd1YXJkRHluYXRyYWNlKChkdCkgPT4ge1xuICAgICAgICBkdC5zZW5kRXZlbnQoZmllbGRzLCBldmVudENvbnRleHQpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIFNhZmUgd3JhcHBlciBmb3Ige0BsaW5rIGR5bmF0cmFjZS5hZGRFdmVudE1vZGlmaWVyfSB3aGljaCByZXZlcnRzIHRvIGEgbm9vcCBpZiBSVU0gSmF2YVNjcmlwdCBpcyBub3QgYXZhaWxhYmxlLlxuICpcbiAqIEBwYXJhbSBldmVudE1vZGlmaWVyIFRoZSBtb2RpZmllciBmdW5jdGlvbiB0byBtb2RpZnkgYSBnaXZlbiAocmVhZG9ubHkpIEpTT05FdmVudC4gSXQgcmVjZWl2ZXMgYW4gb3B0aW9uYWwgY29udGV4dFxuICogICAgICAgICAgICAgICAgICAgICAgZGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIGV2ZW50LCBpZiBhdmFpbGFibGUuIFRoZSByZXR1cm5lZCBldmVudCBtdXN0IGJlIGEgbmV3IG9iamVjdCwgb3RoZXJ3aXNlXG4gKiAgICAgICAgICAgICAgICAgICAgICBtb2RpZmljYXRpb24gd2lsbCBiZSBpZ25vcmVkLlxuICogQHJldHVybnMgICAgICAgICAgICAgVGhlIHVuc3Vic2NyaWJlciBmdW5jdGlvbiB0byB0dXJuIG9mZiBldmVudCBtb2RpZmljYXRpb24sIG9yIHVuZGVmaW5lZCBpZiBSVU0gSmF2YVNjcmlwdCBpcyBub3QgYXZhaWxhYmxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkRXZlbnRNb2RpZmllcihldmVudE1vZGlmaWVyOiAoanNvbkV2ZW50OiBSZWFkb25seTxKU09ORXZlbnQ+LCBldmVudENvbnRleHQ/OiBFdmVudENvbnRleHQpID0+IEpTT05FdmVudCB8IG51bGwpOiBVbnN1YnNjcmliZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBndWFyZER5bmF0cmFjZSgoZHQpID0+IHtcbiAgICAgICAgcmV0dXJuIGR0LmFkZEV2ZW50TW9kaWZpZXIoZXZlbnRNb2RpZmllcik7XG4gICAgfSk7XG59XG5cbi8qKlxuICogU2FmZSB3cmFwcGVyIGZvciB7QGxpbmsgZHluYXRyYWNlLnJ1bkhlYWx0aENoZWNrfSB3aGljaCByZXZlcnRzIHRvIGEgbm9vcCBpZiBSVU0gSmF2YVNjcmlwdCBpcyBub3QgYXZhaWxhYmxlLlxuICpcbiAqIEBwYXJhbSBjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhlIGhlYWx0aCBjaGVjay5cbiAqIEBwYXJhbSBjb25maWcubG9nVmVyYm9zZSAgICAgICAgICAgICAgIElmIHRydWUsIHZlcmJvc2UgaW5mb3JtYXRpb24gaXMgaW5jbHVkZWQgaW4gdGhlIGhlYWx0aCBjaGVjay5cbiAqIEBwYXJhbSBjb25maWcucmV0dXJuRGlhZ25vc3RpY0RhdGEgICAgIElmIHRydWUsIHRoZSBkaWFnbm9zdGljIGRhdGEgaXMgcmV0dXJuZWQgYXMgYXJyYXkgaW5zdGVhZCBvZiBqdXN0IGJlaW5nIGxvZ2dlZC5cbiAqIEBwYXJhbSBjb25maWcucnVuRGV0YWlsZWRPdmVycmlkZUNoZWNrIElmIHRydWUsIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gd2lsbCBiZSBsb2dnZWQgdG8gdGhlIGNvbnNvbGUgZm9yIG92ZXJyaWRkZW4gbmF0aXZlIEFQSXMuXG4gKiBAcmV0dXJucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIHByb21pc2UgdGhhdCBzZXR0bGVzIGFzIHNvb24gYXMgdGhlIGhlYWx0aCBjaGVjayBoYXMgYmVlbiBwZXJmb3JtZWQsIG9yIHVuZGVmaW5lZCBpZiBSVU0gSmF2YVNjcmlwdCBpcyBub3QgYXZhaWxhYmxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcnVuSGVhbHRoQ2hlY2soY29uZmlnPzogSGVhbHRoQ2hlY2tDb25maWcpOiBQcm9taXNlPHVua25vd25bXSB8IHVuZGVmaW5lZD4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBndWFyZER5bmF0cmFjZSgoZHQpID0+IHtcbiAgICAgICAgcmV0dXJuIGR0LnJ1bkhlYWx0aENoZWNrKGNvbmZpZyk7XG4gICAgfSk7XG59XG5cbi8qKlxuICogU2FmZSB3cmFwcGVyIGZvciB7QGxpbmsgZHluYXRyYWNlLmlkZW50aWZ5VXNlcn0gd2hpY2ggcmV2ZXJ0cyB0byBhIG5vb3AgaWYgUlVNIEphdmFTY3JpcHQgaXMgbm90IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgVGhlIG5hbWUgb2YgdGhlIHVzZXIuIEZvciBleGFtcGxlLCB1c2UgYSBuYW1lLCB1c2VyaWQsIG9yIHlvdXIgdXNlcidzIGVtYWlsIGFkZHJlc3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZGVudGlmeVVzZXIodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGd1YXJkRHluYXRyYWNlKChkdCkgPT4ge1xuICAgICAgICBkdC5pZGVudGlmeVVzZXIodmFsdWUpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIFNhZmUgd3JhcHBlciBmb3Ige0BsaW5rIGR5bmF0cmFjZS51c2VyT3B0SW59IHdoaWNoIHJldmVydHMgdG8gYSBub29wIGlmIFJVTSBKYXZhU2NyaXB0IGlzIG5vdCBhdmFpbGFibGUuXG4gKlxuICogR3JhbnRzIGNvbnNlbnQgZm9yIGRhdGEgY29sbGVjdGlvbi5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZXJPcHRJbigpOiB2b2lkIHtcbiAgICBndWFyZER5bmF0cmFjZSgoZHQpID0+IHtcbiAgICAgICAgZHQudXNlck9wdEluKCk7XG4gICAgfSk7XG59XG5cbi8qKlxuICogU2FmZSB3cmFwcGVyIGZvciB7QGxpbmsgZHluYXRyYWNlLnVzZXJPcHRPdXR9IHdoaWNoIHJldmVydHMgdG8gYSBub29wIGlmIFJVTSBKYXZhU2NyaXB0IGlzIG5vdCBhdmFpbGFibGUuXG4gKlxuICogUmV2b2tlcyBjb25zZW50IGZvciBkYXRhIGNvbGxlY3Rpb24uXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VyT3B0T3V0KCk6IHZvaWQge1xuICAgIGd1YXJkRHluYXRyYWNlKChkdCkgPT4ge1xuICAgICAgICBkdC51c2VyT3B0T3V0KCk7XG4gICAgfSk7XG59XG5cbi8qKlxuICogU2FmZSB3cmFwcGVyIGZvciB7QGxpbmsgZHluYXRyYWNlLnNlbmRTZXNzaW9uUHJvcGVydHlFdmVudH0gd2hpY2ggcmV2ZXJ0cyB0byBhIG5vb3AgaWYgUlVNIEphdmFTY3JpcHQgaXMgbm90IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gZmllbGRzIE11c3QgYmUgYSB2YWxpZCBKU09OIG9iamVjdCBhbmQgY2Fubm90IGNvbnRhaW4gZnVuY3Rpb25zLCB1bmRlZmluZWQsIEluZmluaXR5IGFuZCBOYU4gYXNcbiAqICAgICAgICAgICAgICAgdmFsdWVzLCBvdGhlcndpc2UgdGhleSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggbnVsbC4gVGhlIGBmaWVsZHNgIG5lZWQgdG8gYmUgc2VyaWFsaXphYmxlXG4gKiAgICAgICAgICAgICAgIHVzaW5nIEpTT04uc3RyaW5naWZ5LiBBbGwga2V5cyBtdXN0IGJlIHByZWZpeGVkIHdpdGggXCJzZXNzaW9uX3Byb3BlcnRpZXMuKlwiIGFuZCBtdXN0IGNvbnRhaW4gb25seVxuICogICAgICAgICAgICAgICBsb3dlci1jYXNlIGNoYXJhY3RlcnMsIG51bWJlcnMsIHVuZGVyc2NvcmVzIG9yIGRvdHMuIEVhY2ggZG90IG11c3QgYmUgZm9sbG93ZWQgYnkgYSBsb3dlci1jYXNlXG4gKiAgICAgICAgICAgICAgIGNoYXJhY3Rlci4gRWFjaCB1bmRlcnNjb3JlIG11c3QgYmUgZm9sbG93ZWQgYnkgYSBsb3dlci1jYXNlIGNoYXJhY3RlciBvciBudW1iZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZW5kU2Vzc2lvblByb3BlcnR5RXZlbnQoZmllbGRzOiBBcGlDcmVhdGVkU2Vzc2lvblByb3BlcnRpZXNFdmVudCk6IHZvaWQge1xuICAgIGd1YXJkRHluYXRyYWNlKChkdCkgPT4ge1xuICAgICAgICBkdC5zZW5kU2Vzc2lvblByb3BlcnR5RXZlbnQoZmllbGRzKTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIGlmIHRoZSBFcnJvciBtb2R1bGUgaXMgZW5hYmxlZFxuICpcbiAqIEBwYXJhbSBlcnJvciAgTXVzdCBiZSBhIHZhbGlkIGluc3RhbmNlIG9mIHRoZSBFcnJvciBjbGFzcy4gSWYgYW4gaW52YWxpZCB2YWx1ZSBpcyBwcm92aWRlZCwgdGhlIGVycm9yIHdpbGwgbm90IGJlIHByb2Nlc3NlZCBvciBzZW50LlxuICogQHBhcmFtIGZpZWxkcyBPcHRpb25hbDogTXVzdCBiZSBhIHZhbGlkIEpTT04gb2JqZWN0IGFuZCBjYW5ub3QgY29udGFpbiBmdW5jdGlvbnMsIHVuZGVmaW5lZCwgSW5maW5pdHkgYW5kIE5hTiBhc1xuICogICAgICAgICAgICAgICB2YWx1ZXMsIG90aGVyd2lzZSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBudWxsLiBUaGUgYGZpZWxkc2AgbmVlZCB0byBiZSBzZXJpYWxpemFibGVcbiAqICAgICAgICAgICAgICAgdXNpbmcgSlNPTi5zdHJpbmdpZnkuIFRoZSByZXN1bHRpbmcgZXZlbnQgd2lsbCBjb250YWluIHRoZSBwcm92aWRlZCBgZmllbGRzYCwgYW5kIGlzXG4gKiAgICAgICAgICAgICAgIG1vZGlmaWVkIHdpdGggYWRkaXRpb25hbCBwcm9wZXJ0aWVzLCB0aHVzIGFsc28gZW1wdHkgb2JqZWN0cyBhcmUgdmFsaWQuIE9ubHkgcHJvcGVydGllc1xuICogICAgICAgICAgICAgICBwcmVmaXhlZCB3aXRoIGBldmVudF9wcm9wZXJ0aWVzLmAsIHRoZSBgZHVyYXRpb25gIHByb3BlcnR5IGFuZCB0aGUgYHN0YXJ0X3RpbWVgIHByb3BlcnR5IGFyZVxuICogICAgICAgICAgICAgICBhbGxvd2VkLiBTdHJpbmcgcHJvcGVydGllcyBhcmUgbGltaXRlZCB0byA1MDAwIGNoYXJhY3RlcnMsIGV4Y2VlZGluZyBjaGFyYWN0ZXJzIGFyZSBjdXQgb2ZmLlxuICogICAgICAgICAgICAgICBBbGwgZXZlbnQgcHJvcGVydHkga2V5cyBtdXN0IGNvbnRhaW4gb25seSBhbHBoYWJldGljIGNoYXJhY3RlcnMsIG51bWJlcnMsXG4gKiAgICAgICAgICAgICAgIHVuZGVyc2NvcmVzIG9yIGRvdHMuIEVhY2ggZG90IG11c3QgYmUgZm9sbG93ZWQgYnkgYW4gYWxwaGFiZXRpYyBjaGFyYWN0ZXIuIEVhY2ggdW5kZXJzY29yZVxuICogICAgICAgICAgICAgICBtdXN0IGJlIGZvbGxvd2VkIGJ5IGFuIGFscGhhYmV0aWMgY2hhcmFjdGVyIG9yIG51bWJlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlbmRFeGNlcHRpb25FdmVudChlcnJvcjogRXJyb3IsIGZpZWxkcz86IEFwaUNyZWF0ZWRFdmVudFByb3BlcnRpZXNFdmVudCk6IHZvaWQge1xuICAgIGd1YXJkRHluYXRyYWNlKChkdCkgPT4ge1xuICAgICAgICBpZiAoIWR0LnNlbmRFeGNlcHRpb25FdmVudCkge1xuICAgICAgICAgICAgbG9nKFwiZHluYXRyYWNlLnNlbmRFeGNlcHRpb25FdmVudCBpcyBub3QgYXZhaWxhYmxlLCB0aGUgRXJyb3IgbW9kdWxlIG1pZ2h0IG5vdCBiZSBlbmFibGVkXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGR0LnNlbmRFeGNlcHRpb25FdmVudChlcnJvciwgZmllbGRzKTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBTYWZlIHdyYXBwZXIgZm9yIHZhcmlvdXMgUlVNIEphdmFTY3JpcHQgQVBJIGZ1bmN0aW9ucyB3aGljaCByZXZlcnRzIHRvIGEgbm9vcCBpZiBSVU0gSmF2YVNjcmlwdCBpcyBub3QgYXZhaWxhYmxlLlxuICpcbiAqIEBwYXJhbSBmbiBUaGUgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgaWYgUlVNIEphdmFTY3JpcHQgaXMgYXZhaWxhYmxlLlxuICogQHJldHVybnMgIFRoZSByZXN1bHQgb2YgdGhlIHByb3ZpZGVkIGZ1bmN0aW9uIGNhbGwgaWYgUlVNIEphdmFTY3JpcHQgaXMgYXZhaWxhYmxlLCBvdGhlcndpc2UgdW5kZWZpbmVkLlxuICovXG5mdW5jdGlvbiBndWFyZER5bmF0cmFjZTxUIGV4dGVuZHMgKGR0OiBOb25OdWxsYWJsZTx0eXBlb2YgZ2xvYmFsVGhpcy5keW5hdHJhY2U+KSA9PiBhbnk+KGZuOiBUKTogUmV0dXJuVHlwZTxUPiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZ2xvYmFsRHQgPSBnZXRHbG9iYWwoXCJkeW5hdHJhY2VcIik7XG4gICAgaWYgKCFpc1ZhbGlkQWdlbnQoZ2xvYmFsRHQpKSB7XG4gICAgICAgIGxvZyhcImR5bmF0cmFjZSBpcyBub3QgYXZhaWxhYmxlXCIpO1xuICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICByZXR1cm4gZm4oZ2xvYmFsRHQpO1xufVxuIl19
@@ -4,6 +4,9 @@ import type { SendUserInteractionFields } from "../types/index.js";
4
4
  * interactions module is not available.
5
5
  *
6
6
  * @param fields The interaction fields. Must contain a `keys` array with at least one key.
7
+ * Values can be {@link UserInteractionSpecialKey} members or raw
8
+ * {@link https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key | KeyboardEvent.key}
9
+ * strings — raw values are normalized internally if applicable.
7
10
  * The fields object must be JSON-serializable. Optional `ui_element.custom_name` and
8
11
  * `event_properties.*` entries are allowed. See {@link SendUserInteractionFields} for details.
9
12
  * @param elementOrEvent An optional {@link Element} or {@link KeyboardEvent} used to auto-generate UI element fields.
@@ -6,6 +6,9 @@ import { log } from "./logging.js";
6
6
  * interactions module is not available.
7
7
  *
8
8
  * @param fields The interaction fields. Must contain a `keys` array with at least one key.
9
+ * Values can be {@link UserInteractionSpecialKey} members or raw
10
+ * {@link https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key | KeyboardEvent.key}
11
+ * strings — raw values are normalized internally if applicable.
9
12
  * The fields object must be JSON-serializable. Optional `ui_element.custom_name` and
10
13
  * `event_properties.*` entries are allowed. See {@link SendUserInteractionFields} for details.
11
14
  * @param elementOrEvent An optional {@link Element} or {@link KeyboardEvent} used to auto-generate UI element fields.
@@ -45,4 +48,4 @@ function guardInteractions(fn) {
45
48
  }
46
49
  return fn(globalDt.interactions);
47
50
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2FwaS9pbnRlcmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQWlDLEVBQUUsY0FBZ0M7SUFDakcsaUJBQWlCLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtRQUMvQixZQUFZLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzNELENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMsaUJBQWlCLENBQWdELEVBQUs7SUFDM0UsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUMxQixHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNsQyxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLEdBQUcsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICAgIEludGVyYWN0aW9ucyxcbiAgICBTZW5kVXNlckludGVyYWN0aW9uRmllbGRzXG59IGZyb20gXCIuLi90eXBlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgZ2V0R2xvYmFsIH0gZnJvbSBcIi4vZ2xvYmFsLWFkYXB0ZXIuanNcIjtcbmltcG9ydCB7IGlzVmFsaWRBZ2VudCB9IGZyb20gXCIuL3R5cGUtZ3VhcmRzL2lzLXZhbGlkLWFnZW50LmpzXCI7XG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiLi9sb2dnaW5nLmpzXCI7XG5cbi8qKlxuICogU2FmZSB3cmFwcGVyIGZvciB7QGxpbmsgZHluYXRyYWNlLmludGVyYWN0aW9ucy5zZW5kS2V5UHJlc3NFdmVudH0gd2hpY2ggcmV2ZXJ0cyB0byBhIG5vb3AgaWYgUlVNIEphdmFTY3JpcHQgb3IgdGhlXG4gKiBpbnRlcmFjdGlvbnMgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUuXG4gKlxuICogQHBhcmFtIGZpZWxkcyAgICAgICAgIFRoZSBpbnRlcmFjdGlvbiBmaWVsZHMuIE11c3QgY29udGFpbiBhIGBrZXlzYCBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBrZXkuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgVGhlIGZpZWxkcyBvYmplY3QgbXVzdCBiZSBKU09OLXNlcmlhbGl6YWJsZS4gT3B0aW9uYWwgYHVpX2VsZW1lbnQuY3VzdG9tX25hbWVgIGFuZFxuICogICAgICAgICAgICAgICAgICAgICAgIGBldmVudF9wcm9wZXJ0aWVzLipgIGVudHJpZXMgYXJlIGFsbG93ZWQuIFNlZSB7QGxpbmsgU2VuZFVzZXJJbnRlcmFjdGlvbkZpZWxkc30gZm9yIGRldGFpbHMuXG4gKiBAcGFyYW0gZWxlbWVudE9yRXZlbnQgQW4gb3B0aW9uYWwge0BsaW5rIEVsZW1lbnR9IG9yIHtAbGluayBLZXlib2FyZEV2ZW50fSB1c2VkIHRvIGF1dG8tZ2VuZXJhdGUgVUkgZWxlbWVudCBmaWVsZHMuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgV2hlbiBhIHtAbGluayBLZXlib2FyZEV2ZW50fSBpcyBwcm92aWRlZCwgdGhlIHRhcmdldCBlbGVtZW50IGlzIHJlc29sdmVkIGZyb20gdGhlIGV2ZW50LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgKiBhcyBpbnRlcmFjdGlvbnMgZnJvbSBcIkBkeW5hdHJhY2UvcnVtLWphdmFzY3JpcHQtc2RrL2FwaS9pbnRlcmFjdGlvbnNcIjtcbiAqIGltcG9ydCB7IFVzZXJJbnRlcmFjdGlvblNwZWNpYWxLZXkgfSBmcm9tIFwiQGR5bmF0cmFjZS9ydW0tamF2YXNjcmlwdC1zZGsvdHlwZXMvcnVtLWV2ZW50c1wiO1xuICpcbiAqIGludGVyYWN0aW9ucy5zZW5kS2V5UHJlc3NFdmVudCh7XG4gKiAgICAga2V5czogW1VzZXJJbnRlcmFjdGlvblNwZWNpYWxLZXkuQ1RSTCwgXCJTXCJdXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VuZEtleVByZXNzRXZlbnQoZmllbGRzOiBTZW5kVXNlckludGVyYWN0aW9uRmllbGRzLCBlbGVtZW50T3JFdmVudD86IEVsZW1lbnQgfCBFdmVudCk6IHZvaWQge1xuICAgIGd1YXJkSW50ZXJhY3Rpb25zKChpbnRlcmFjdGlvbnMpID0+IHtcbiAgICAgICAgaW50ZXJhY3Rpb25zLnNlbmRLZXlQcmVzc0V2ZW50KGZpZWxkcywgZWxlbWVudE9yRXZlbnQpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIFNhZmUgd3JhcHBlciBmb3IgdmFyaW91cyBpbnRlcmFjdGlvbnMgQVBJIGZ1bmN0aW9ucyB3aGljaCByZXZlcnRzIHRvIGEgbm9vcCBpZiBSVU0gSmF2YVNjcmlwdCBvciB0aGVcbiAqIGludGVyYWN0aW9ucyBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gZm4gVGhlIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIGlmIHRoZSBpbnRlcmFjdGlvbnMgbW9kdWxlIGlzIGF2YWlsYWJsZS5cbiAqIEByZXR1cm5zICBUaGUgcmVzdWx0IG9mIHRoZSBwcm92aWRlZCBmdW5jdGlvbiBjYWxsIGlmIHRoZSBpbnRlcmFjdGlvbnMgbW9kdWxlIGlzIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIHVuZGVmaW5lZC5cbiAqL1xuZnVuY3Rpb24gZ3VhcmRJbnRlcmFjdGlvbnM8VCBleHRlbmRzIChpbnRlcmFjdGlvbnM6IEludGVyYWN0aW9ucykgPT4gYW55PihmbjogVCk6IFJldHVyblR5cGU8VD4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGdsb2JhbER0ID0gZ2V0R2xvYmFsKFwiZHluYXRyYWNlXCIpO1xuICAgIGlmICghaXNWYWxpZEFnZW50KGdsb2JhbER0KSkge1xuICAgICAgICBsb2coXCJkeW5hdHJhY2UgaXMgbm90IGF2YWlsYWJsZVwiKTtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICBpZiAoIWdsb2JhbER0LmludGVyYWN0aW9ucykge1xuICAgICAgICBsb2coXCJkeW5hdHJhY2UuaW50ZXJhY3Rpb25zIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlXCIpO1xuICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cblxuICAgIHJldHVybiBmbihnbG9iYWxEdC5pbnRlcmFjdGlvbnMpO1xufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2FwaS9pbnRlcmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQWlDLEVBQUUsY0FBZ0M7SUFDakcsaUJBQWlCLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtRQUMvQixZQUFZLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzNELENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMsaUJBQWlCLENBQWdELEVBQUs7SUFDM0UsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUMxQixHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNsQyxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLEdBQUcsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICAgIEludGVyYWN0aW9ucyxcbiAgICBTZW5kVXNlckludGVyYWN0aW9uRmllbGRzXG59IGZyb20gXCIuLi90eXBlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgZ2V0R2xvYmFsIH0gZnJvbSBcIi4vZ2xvYmFsLWFkYXB0ZXIuanNcIjtcbmltcG9ydCB7IGlzVmFsaWRBZ2VudCB9IGZyb20gXCIuL3R5cGUtZ3VhcmRzL2lzLXZhbGlkLWFnZW50LmpzXCI7XG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiLi9sb2dnaW5nLmpzXCI7XG5cbi8qKlxuICogU2FmZSB3cmFwcGVyIGZvciB7QGxpbmsgZHluYXRyYWNlLmludGVyYWN0aW9ucy5zZW5kS2V5UHJlc3NFdmVudH0gd2hpY2ggcmV2ZXJ0cyB0byBhIG5vb3AgaWYgUlVNIEphdmFTY3JpcHQgb3IgdGhlXG4gKiBpbnRlcmFjdGlvbnMgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUuXG4gKlxuICogQHBhcmFtIGZpZWxkcyAgICAgICAgIFRoZSBpbnRlcmFjdGlvbiBmaWVsZHMuIE11c3QgY29udGFpbiBhIGBrZXlzYCBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBrZXkuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzIGNhbiBiZSB7QGxpbmsgVXNlckludGVyYWN0aW9uU3BlY2lhbEtleX0gbWVtYmVycyBvciByYXdcbiAqICAgICAgICAgICAgICAgICAgICAgICB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQva2V5IHwgS2V5Ym9hcmRFdmVudC5rZXl9XG4gKiAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5ncyDigJQgcmF3IHZhbHVlcyBhcmUgbm9ybWFsaXplZCBpbnRlcm5hbGx5IGlmIGFwcGxpY2FibGUuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgVGhlIGZpZWxkcyBvYmplY3QgbXVzdCBiZSBKU09OLXNlcmlhbGl6YWJsZS4gT3B0aW9uYWwgYHVpX2VsZW1lbnQuY3VzdG9tX25hbWVgIGFuZFxuICogICAgICAgICAgICAgICAgICAgICAgIGBldmVudF9wcm9wZXJ0aWVzLipgIGVudHJpZXMgYXJlIGFsbG93ZWQuIFNlZSB7QGxpbmsgU2VuZFVzZXJJbnRlcmFjdGlvbkZpZWxkc30gZm9yIGRldGFpbHMuXG4gKiBAcGFyYW0gZWxlbWVudE9yRXZlbnQgQW4gb3B0aW9uYWwge0BsaW5rIEVsZW1lbnR9IG9yIHtAbGluayBLZXlib2FyZEV2ZW50fSB1c2VkIHRvIGF1dG8tZ2VuZXJhdGUgVUkgZWxlbWVudCBmaWVsZHMuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgV2hlbiBhIHtAbGluayBLZXlib2FyZEV2ZW50fSBpcyBwcm92aWRlZCwgdGhlIHRhcmdldCBlbGVtZW50IGlzIHJlc29sdmVkIGZyb20gdGhlIGV2ZW50LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgKiBhcyBpbnRlcmFjdGlvbnMgZnJvbSBcIkBkeW5hdHJhY2UvcnVtLWphdmFzY3JpcHQtc2RrL2FwaS9pbnRlcmFjdGlvbnNcIjtcbiAqIGltcG9ydCB7IFVzZXJJbnRlcmFjdGlvblNwZWNpYWxLZXkgfSBmcm9tIFwiQGR5bmF0cmFjZS9ydW0tamF2YXNjcmlwdC1zZGsvdHlwZXMvcnVtLWV2ZW50c1wiO1xuICpcbiAqIGludGVyYWN0aW9ucy5zZW5kS2V5UHJlc3NFdmVudCh7XG4gKiAgICAga2V5czogW1VzZXJJbnRlcmFjdGlvblNwZWNpYWxLZXkuQ1RSTCwgXCJTXCJdXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VuZEtleVByZXNzRXZlbnQoZmllbGRzOiBTZW5kVXNlckludGVyYWN0aW9uRmllbGRzLCBlbGVtZW50T3JFdmVudD86IEVsZW1lbnQgfCBFdmVudCk6IHZvaWQge1xuICAgIGd1YXJkSW50ZXJhY3Rpb25zKChpbnRlcmFjdGlvbnMpID0+IHtcbiAgICAgICAgaW50ZXJhY3Rpb25zLnNlbmRLZXlQcmVzc0V2ZW50KGZpZWxkcywgZWxlbWVudE9yRXZlbnQpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIFNhZmUgd3JhcHBlciBmb3IgdmFyaW91cyBpbnRlcmFjdGlvbnMgQVBJIGZ1bmN0aW9ucyB3aGljaCByZXZlcnRzIHRvIGEgbm9vcCBpZiBSVU0gSmF2YVNjcmlwdCBvciB0aGVcbiAqIGludGVyYWN0aW9ucyBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gZm4gVGhlIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIGlmIHRoZSBpbnRlcmFjdGlvbnMgbW9kdWxlIGlzIGF2YWlsYWJsZS5cbiAqIEByZXR1cm5zICBUaGUgcmVzdWx0IG9mIHRoZSBwcm92aWRlZCBmdW5jdGlvbiBjYWxsIGlmIHRoZSBpbnRlcmFjdGlvbnMgbW9kdWxlIGlzIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIHVuZGVmaW5lZC5cbiAqL1xuZnVuY3Rpb24gZ3VhcmRJbnRlcmFjdGlvbnM8VCBleHRlbmRzIChpbnRlcmFjdGlvbnM6IEludGVyYWN0aW9ucykgPT4gYW55PihmbjogVCk6IFJldHVyblR5cGU8VD4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGdsb2JhbER0ID0gZ2V0R2xvYmFsKFwiZHluYXRyYWNlXCIpO1xuICAgIGlmICghaXNWYWxpZEFnZW50KGdsb2JhbER0KSkge1xuICAgICAgICBsb2coXCJkeW5hdHJhY2UgaXMgbm90IGF2YWlsYWJsZVwiKTtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICBpZiAoIWdsb2JhbER0LmludGVyYWN0aW9ucykge1xuICAgICAgICBsb2coXCJkeW5hdHJhY2UuaW50ZXJhY3Rpb25zIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlXCIpO1xuICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cblxuICAgIHJldHVybiBmbihnbG9iYWxEdC5pbnRlcmFjdGlvbnMpO1xufVxuIl19
@@ -1,6 +1,7 @@
1
1
  import type { ApiCreatedEventPropertiesEvent, ApiCreatedSessionPropertiesEvent, EventContext, JSONEvent } from "../../types/index.js";
2
2
  import type { HealthCheckConfig, Unsubscriber } from "../../types/api/dynatrace-api-types.js";
3
3
  export { DynatraceError } from "../dynatrace-error.js";
4
+ export declare const DEFAULT_AGENT_TIMEOUT = 10000;
4
5
  /**
5
6
  * Async wrapper for {@link dynatrace.sendEvent}.
6
7
  *
@@ -51,6 +52,28 @@ export declare function runHealthCheck(config?: HealthCheckConfig, timeout?: num
51
52
  * overridden with an incompatible object
52
53
  */
53
54
  export declare function identifyUser(value: string, timeout?: number): Promise<void>;
55
+ /**
56
+ * Async wrapper for {@link dynatrace.userOptIn}.
57
+ *
58
+ * Grants consent for data collection.
59
+ *
60
+ * @param timeout Timeout in milliseconds to wait for the RUM JavaScript to be available (default: 10000)
61
+ * @throws A {@link DynatraceError} if the RUM JavaScript is not available within the timeout, or the namespace is
62
+ * overridden with an incompatible object
63
+ * @internal
64
+ */
65
+ export declare function userOptIn(timeout?: number): Promise<void>;
66
+ /**
67
+ * Async wrapper for {@link dynatrace.userOptOut}.
68
+ *
69
+ * Revokes consent for data collection.
70
+ *
71
+ * @param timeout Timeout in milliseconds to wait for the RUM JavaScript to be available (default: 10000)
72
+ * @throws A {@link DynatraceError} if the RUM JavaScript is not available within the timeout, or the namespace is
73
+ * overridden with an incompatible object
74
+ * @internal
75
+ */
76
+ export declare function userOptOut(timeout?: number): Promise<void>;
54
77
  /**
55
78
  * Async wrapper for {@link dynatrace.sendSessionPropertyEvent}.
56
79
  *
@@ -1,6 +1,7 @@
1
1
  import { waitForAgent } from "./wait-for-agent.js";
2
2
  import { waitForSendExceptionEvent } from "./wait-for-send-exception-event.js";
3
3
  export { DynatraceError } from "../dynatrace-error.js";
4
+ export const DEFAULT_AGENT_TIMEOUT = 10_000;
4
5
  /**
5
6
  * Async wrapper for {@link dynatrace.sendEvent}.
6
7
  *
@@ -16,7 +17,7 @@ export { DynatraceError } from "../dynatrace-error.js";
16
17
  * @throws A {@link DynatraceError} if the RUM JavaScript is not available within the timeout, or the namespace is
17
18
  * overridden with an incompatible object
18
19
  */
19
- export async function sendEvent(fields, eventContext, timeout = 10_000) {
20
+ export async function sendEvent(fields, eventContext, timeout = DEFAULT_AGENT_TIMEOUT) {
20
21
  const dynatrace = await waitForAgent(timeout);
21
22
  dynatrace.sendEvent(fields, eventContext);
22
23
  }
@@ -31,7 +32,7 @@ export async function sendEvent(fields, eventContext, timeout = 10_000) {
31
32
  * @throws A {@link DynatraceError} if the RUM JavaScript is not available within the timeout, or the
32
33
  * namespace is overridden with an incompatible object
33
34
  */
34
- export async function addEventModifier(eventModifier, timeout = 10_000) {
35
+ export async function addEventModifier(eventModifier, timeout = DEFAULT_AGENT_TIMEOUT) {
35
36
  const dynatrace = await waitForAgent(timeout);
36
37
  return dynatrace.addEventModifier(eventModifier);
37
38
  }
@@ -47,7 +48,7 @@ export async function addEventModifier(eventModifier, timeout = 10_000) {
47
48
  * @throws A {@link DynatraceError} if the RUM JavaScript is not available within the
48
49
  * timeout, or the namespace is overridden with an incompatible object
49
50
  */
50
- export async function runHealthCheck(config, timeout = 10_000) {
51
+ export async function runHealthCheck(config, timeout = DEFAULT_AGENT_TIMEOUT) {
51
52
  const dynatrace = await waitForAgent(timeout);
52
53
  return dynatrace.runHealthCheck(config);
53
54
  }
@@ -59,10 +60,38 @@ export async function runHealthCheck(config, timeout = 10_000) {
59
60
  * @throws A {@link DynatraceError} if the RUM JavaScript is not available within the timeout, or the namespace is
60
61
  * overridden with an incompatible object
61
62
  */
62
- export async function identifyUser(value, timeout = 10_000) {
63
+ export async function identifyUser(value, timeout = DEFAULT_AGENT_TIMEOUT) {
63
64
  const dynatrace = await waitForAgent(timeout);
64
65
  dynatrace.identifyUser(value);
65
66
  }
67
+ /**
68
+ * Async wrapper for {@link dynatrace.userOptIn}.
69
+ *
70
+ * Grants consent for data collection.
71
+ *
72
+ * @param timeout Timeout in milliseconds to wait for the RUM JavaScript to be available (default: 10000)
73
+ * @throws A {@link DynatraceError} if the RUM JavaScript is not available within the timeout, or the namespace is
74
+ * overridden with an incompatible object
75
+ * @internal
76
+ */
77
+ export async function userOptIn(timeout = DEFAULT_AGENT_TIMEOUT) {
78
+ const dynatrace = await waitForAgent(timeout);
79
+ dynatrace.userOptIn();
80
+ }
81
+ /**
82
+ * Async wrapper for {@link dynatrace.userOptOut}.
83
+ *
84
+ * Revokes consent for data collection.
85
+ *
86
+ * @param timeout Timeout in milliseconds to wait for the RUM JavaScript to be available (default: 10000)
87
+ * @throws A {@link DynatraceError} if the RUM JavaScript is not available within the timeout, or the namespace is
88
+ * overridden with an incompatible object
89
+ * @internal
90
+ */
91
+ export async function userOptOut(timeout = DEFAULT_AGENT_TIMEOUT) {
92
+ const dynatrace = await waitForAgent(timeout);
93
+ dynatrace.userOptOut();
94
+ }
66
95
  /**
67
96
  * Async wrapper for {@link dynatrace.sendSessionPropertyEvent}.
68
97
  *
@@ -75,7 +104,7 @@ export async function identifyUser(value, timeout = 10_000) {
75
104
  * @throws A {@link DynatraceError} if the RUM JavaScript is not available within the timeout, or the namespace is
76
105
  * overridden with an incompatible object
77
106
  */
78
- export async function sendSessionPropertyEvent(fields, timeout = 10_000) {
107
+ export async function sendSessionPropertyEvent(fields, timeout = DEFAULT_AGENT_TIMEOUT) {
79
108
  const dynatrace = await waitForAgent(timeout);
80
109
  dynatrace.sendSessionPropertyEvent(fields);
81
110
  }
@@ -97,8 +126,8 @@ export async function sendSessionPropertyEvent(fields, timeout = 10_000) {
97
126
  * @throws A {@link DynatraceError} if the RUM JavaScript is not available within the timeout, or the namespace is
98
127
  * overridden with an incompatible object
99
128
  */
100
- export async function sendExceptionEvent(error, fields, timeout = 10_000) {
129
+ export async function sendExceptionEvent(error, fields, timeout = DEFAULT_AGENT_TIMEOUT) {
101
130
  const sendExceptionEventGuarded = await waitForSendExceptionEvent(timeout);
102
131
  sendExceptionEventGuarded(error, fields);
103
132
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zb3VyY2UvYXBpL3Byb21pc2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFNBQVMsQ0FBQyxNQUFzQyxFQUFFLFlBQXNCLEVBQUUsVUFBa0IsTUFBTTtJQUNwSCxNQUFNLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsYUFBZ0csRUFBRSxVQUFrQixNQUFNO0lBQzdKLE1BQU0sU0FBUyxHQUFHLE1BQU0sWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLE9BQU8sU0FBUyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUFDLE1BQTBCLEVBQUUsVUFBa0IsTUFBTTtJQUNyRixNQUFNLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxPQUFPLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FBQyxLQUFhLEVBQUUsVUFBa0IsTUFBTTtJQUN0RSxNQUFNLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsd0JBQXdCLENBQUMsTUFBd0MsRUFBRSxVQUFrQixNQUFNO0lBQzdHLE1BQU0sU0FBUyxHQUFHLE1BQU0sWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxLQUFZLEVBQUUsTUFBdUMsRUFBRSxVQUFrQixNQUFNO0lBQ3BILE1BQU0seUJBQXlCLEdBQUcsTUFBTSx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRSx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgICBBcGlDcmVhdGVkRXZlbnRQcm9wZXJ0aWVzRXZlbnQsXG4gICAgQXBpQ3JlYXRlZFNlc3Npb25Qcm9wZXJ0aWVzRXZlbnQsXG4gICAgRXZlbnRDb250ZXh0LFxuICAgIEpTT05FdmVudFxufSBmcm9tIFwiLi4vLi4vdHlwZXMvaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgICBIZWFsdGhDaGVja0NvbmZpZyxcbiAgICBVbnN1YnNjcmliZXJcbn0gZnJvbSBcIi4uLy4uL3R5cGVzL2FwaS9keW5hdHJhY2UtYXBpLXR5cGVzLmpzXCI7XG5pbXBvcnQgeyB3YWl0Rm9yQWdlbnQgfSBmcm9tIFwiLi93YWl0LWZvci1hZ2VudC5qc1wiO1xuaW1wb3J0IHsgd2FpdEZvclNlbmRFeGNlcHRpb25FdmVudCB9IGZyb20gXCIuL3dhaXQtZm9yLXNlbmQtZXhjZXB0aW9uLWV2ZW50LmpzXCI7XG5cbmV4cG9ydCB7IER5bmF0cmFjZUVycm9yIH0gZnJvbSBcIi4uL2R5bmF0cmFjZS1lcnJvci5qc1wiO1xuXG4vKipcbiAqIEFzeW5jIHdyYXBwZXIgZm9yIHtAbGluayBkeW5hdHJhY2Uuc2VuZEV2ZW50fS5cbiAqXG4gKiBAcGFyYW0gZmllbGRzICAgICAgIE11c3QgYmUgYSB2YWxpZCBKU09OIG9iamVjdCBhbmQgY2Fubm90IGNvbnRhaW4gZnVuY3Rpb25zLCB1bmRlZmluZWQsIEluZmluaXR5IGFuZCBOYU4gYXNcbiAqICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLCBvdGhlcndpc2UgdGhleSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggbnVsbC4gVGhlIGBmaWVsZHNgIG5lZWQgdG8gYmUgc2VyaWFsaXphYmxlXG4gKiAgICAgICAgICAgICAgICAgICAgIHVzaW5nIEpTT04uc3RyaW5naWZ5LiBUaGUgcmVzdWx0aW5nIGV2ZW50IHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggYGZpZWxkc2AgcGFyYW1ldGVyLCBhbmRcbiAqICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgd2l0aCBhZGRpdGlvbmFsIHByb3BlcnRpZXMsIHRodXMgYWxzbyBlbXB0eSBvYmplY3RzIGFyZSB2YWxpZC4gT25seSBwcm9wZXJ0aWVzXG4gKiAgICAgICAgICAgICAgICAgICAgIHByZWZpeGVkIHdpdGggYGV2ZW50X3Byb3BlcnRpZXMuYCwgdGhlIGBkdXJhdGlvbmAgcHJvcGVydHkgYW5kIHRoZSBgc3RhcnRfdGltZWAgcHJvcGVydHkgYXJlXG4gKiAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQuXG4gKiBAcGFyYW0gZXZlbnRDb250ZXh0IEFuIG9wdGlvbmFsIGNvbnRleHQgdGhhdCBjYW4gYmUgdXNlZCB0byBtYW5pcHVsYXRlIHRoZVxuICogICAgICAgICAgICAgICAgICAgICByZXN1bHQgZXZlbnQgd2l0aGluIHRoZSBtb2RpZmljYXRpb24gY2FsbGJhY2suXG4gKiBAcGFyYW0gdGltZW91dCAgICAgIFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSBSVU0gSmF2YVNjcmlwdCB0byBiZSBhdmFpbGFibGUgKGRlZmF1bHQ6IDEwMDAwKVxuICogQHRocm93cyAgICAgICAgICAgICBBIHtAbGluayBEeW5hdHJhY2VFcnJvcn0gaWYgdGhlIFJVTSBKYXZhU2NyaXB0IGlzIG5vdCBhdmFpbGFibGUgd2l0aGluIHRoZSB0aW1lb3V0LCBvciB0aGUgbmFtZXNwYWNlIGlzXG4gKiAgICAgICAgICAgICAgICAgICAgIG92ZXJyaWRkZW4gd2l0aCBhbiBpbmNvbXBhdGlibGUgb2JqZWN0XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kRXZlbnQoZmllbGRzOiBBcGlDcmVhdGVkRXZlbnRQcm9wZXJ0aWVzRXZlbnQsIGV2ZW50Q29udGV4dD86IHVua25vd24sIHRpbWVvdXQ6IG51bWJlciA9IDEwXzAwMCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGR5bmF0cmFjZSA9IGF3YWl0IHdhaXRGb3JBZ2VudCh0aW1lb3V0KTtcbiAgICBkeW5hdHJhY2Uuc2VuZEV2ZW50KGZpZWxkcywgZXZlbnRDb250ZXh0KTtcbn1cblxuLyoqXG4gKiBBc3luYyB3cmFwcGVyIGZvciB7QGxpbmsgZHluYXRyYWNlLmFkZEV2ZW50TW9kaWZpZXJ9LlxuICpcbiAqIEBwYXJhbSBldmVudE1vZGlmaWVyIFRoZSBtb2RpZmllciBmdW5jdGlvbiB0byBtb2RpZnkgYSBnaXZlbiAocmVhZG9ubHkpIEpTT05FdmVudC4gSXQgcmVjZWl2ZXMgYW4gb3B0aW9uYWwgY29udGV4dFxuICogICAgICAgICAgICAgICAgICAgICAgZGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIGV2ZW50LCBpZiBhdmFpbGFibGUuIFRoZSByZXR1cm5lZCBldmVudCBtdXN0IGJlIGEgbmV3IG9iamVjdCwgb3RoZXJ3aXNlXG4gKiAgICAgICAgICAgICAgICAgICAgICBtb2RpZmljYXRpb24gd2lsbCBiZSBpZ25vcmVkLlxuICogQHBhcmFtIHRpbWVvdXQgICAgICAgVGltZW91dCBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIFJVTSBKYXZhU2NyaXB0IHRvIGJlIGF2YWlsYWJsZSAoZGVmYXVsdDogMTAwMDApXG4gKiBAcmV0dXJucyAgICAgICAgICAgICBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgdW5zdWJzY3JpYmVyIGZ1bmN0aW9uIHRvIHR1cm4gb2ZmIGV2ZW50IG1vZGlmaWNhdGlvbi5cbiAqIEB0aHJvd3MgICAgICAgICAgICAgIEEge0BsaW5rIER5bmF0cmFjZUVycm9yfSBpZiB0aGUgUlVNIEphdmFTY3JpcHQgaXMgbm90IGF2YWlsYWJsZSB3aXRoaW4gdGhlIHRpbWVvdXQsIG9yIHRoZVxuICogICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlIGlzIG92ZXJyaWRkZW4gd2l0aCBhbiBpbmNvbXBhdGlibGUgb2JqZWN0XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhZGRFdmVudE1vZGlmaWVyKGV2ZW50TW9kaWZpZXI6IChqc29uRXZlbnQ6IFJlYWRvbmx5PEpTT05FdmVudD4sIGV2ZW50Q29udGV4dD86IEV2ZW50Q29udGV4dCkgPT4gSlNPTkV2ZW50IHwgbnVsbCwgdGltZW91dDogbnVtYmVyID0gMTBfMDAwKTogUHJvbWlzZTxVbnN1YnNjcmliZXI+IHtcbiAgICBjb25zdCBkeW5hdHJhY2UgPSBhd2FpdCB3YWl0Rm9yQWdlbnQodGltZW91dCk7XG4gICAgcmV0dXJuIGR5bmF0cmFjZS5hZGRFdmVudE1vZGlmaWVyKGV2ZW50TW9kaWZpZXIpO1xufVxuXG4vKipcbiAqIEFzeW5jIHdyYXBwZXIgZm9yIHtAbGluayBkeW5hdHJhY2UucnVuSGVhbHRoQ2hlY2t9LlxuICpcbiAqIEBwYXJhbSBjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhlIGhlYWx0aCBjaGVjay5cbiAqIEBwYXJhbSBjb25maWcubG9nVmVyYm9zZSAgICAgICAgICAgICAgIElmIHRydWUsIHZlcmJvc2UgaW5mb3JtYXRpb24gaXMgaW5jbHVkZWQgaW4gdGhlIGhlYWx0aCBjaGVjay5cbiAqIEBwYXJhbSBjb25maWcucmV0dXJuRGlhZ25vc3RpY0RhdGEgICAgIElmIHRydWUsIHRoZSBkaWFnbm9zdGljIGRhdGEgaXMgcmV0dXJuZWQgYXMgYXJyYXkgaW5zdGVhZCBvZiBqdXN0IGJlaW5nIGxvZ2dlZC5cbiAqIEBwYXJhbSBjb25maWcucnVuRGV0YWlsZWRPdmVycmlkZUNoZWNrIElmIHRydWUsIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gd2lsbCBiZSBsb2dnZWQgdG8gdGhlIGNvbnNvbGUgZm9yIG92ZXJyaWRkZW4gbmF0aXZlIEFQSXMuXG4gKiBAcGFyYW0gdGltZW91dCAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcyB0byB3YWl0IGZvciB0aGUgUlVNIEphdmFTY3JpcHQgdG8gYmUgYXZhaWxhYmxlIChkZWZhdWx0OiAxMDAwMClcbiAqIEByZXR1cm5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgcHJvbWlzZSB0aGF0IHNldHRsZXMgYXMgc29vbiBhcyB0aGUgaGVhbHRoIGNoZWNrIGhhcyBiZWVuIHBlcmZvcm1lZC5cbiAqIEB0aHJvd3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEge0BsaW5rIER5bmF0cmFjZUVycm9yfSBpZiB0aGUgUlVNIEphdmFTY3JpcHQgaXMgbm90IGF2YWlsYWJsZSB3aXRoaW4gdGhlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LCBvciB0aGUgbmFtZXNwYWNlIGlzIG92ZXJyaWRkZW4gd2l0aCBhbiBpbmNvbXBhdGlibGUgb2JqZWN0XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5IZWFsdGhDaGVjayhjb25maWc/OiBIZWFsdGhDaGVja0NvbmZpZywgdGltZW91dDogbnVtYmVyID0gMTBfMDAwKTogUHJvbWlzZTx1bmtub3duW10gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBkeW5hdHJhY2UgPSBhd2FpdCB3YWl0Rm9yQWdlbnQodGltZW91dCk7XG4gICAgcmV0dXJuIGR5bmF0cmFjZS5ydW5IZWFsdGhDaGVjayhjb25maWcpO1xufVxuXG4vKipcbiAqIEFzeW5jIHdyYXBwZXIgZm9yIHtAbGluayBkeW5hdHJhY2UuaWRlbnRpZnlVc2VyfS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgICBUaGUgbmFtZSBvZiB0aGUgdXNlci4gRm9yIGV4YW1wbGUsIHVzZSBhIG5hbWUsIHVzZXJpZCwgb3IgeW91ciB1c2VyJ3MgZW1haWwgYWRkcmVzcy5cbiAqIEBwYXJhbSB0aW1lb3V0IFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSBSVU0gSmF2YVNjcmlwdCB0byBiZSBhdmFpbGFibGUgKGRlZmF1bHQ6IDEwMDAwKVxuICogQHRocm93cyAgICAgICAgQSB7QGxpbmsgRHluYXRyYWNlRXJyb3J9IGlmIHRoZSBSVU0gSmF2YVNjcmlwdCBpcyBub3QgYXZhaWxhYmxlIHdpdGhpbiB0aGUgdGltZW91dCwgb3IgdGhlIG5hbWVzcGFjZSBpc1xuICogICAgICAgICAgICAgICAgb3ZlcnJpZGRlbiB3aXRoIGFuIGluY29tcGF0aWJsZSBvYmplY3RcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlkZW50aWZ5VXNlcih2YWx1ZTogc3RyaW5nLCB0aW1lb3V0OiBudW1iZXIgPSAxMF8wMDApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkeW5hdHJhY2UgPSBhd2FpdCB3YWl0Rm9yQWdlbnQodGltZW91dCk7XG4gICAgZHluYXRyYWNlLmlkZW50aWZ5VXNlcih2YWx1ZSk7XG59XG5cbi8qKlxuICogQXN5bmMgd3JhcHBlciBmb3Ige0BsaW5rIGR5bmF0cmFjZS5zZW5kU2Vzc2lvblByb3BlcnR5RXZlbnR9LlxuICpcbiAqIEBwYXJhbSBmaWVsZHMgIE11c3QgYmUgYSB2YWxpZCBKU09OIG9iamVjdCBhbmQgY2Fubm90IGNvbnRhaW4gZnVuY3Rpb25zLCB1bmRlZmluZWQsIEluZmluaXR5IGFuZCBOYU4gYXNcbiAqICAgICAgICAgICAgICAgIHZhbHVlcywgb3RoZXJ3aXNlIHRoZXkgd2lsbCBiZSByZXBsYWNlZCB3aXRoIG51bGwuIFRoZSBgZmllbGRzYCBuZWVkIHRvIGJlIHNlcmlhbGl6YWJsZVxuICogICAgICAgICAgICAgICAgdXNpbmcgSlNPTi5zdHJpbmdpZnkuIEFsbCBrZXlzIG11c3QgYmUgcHJlZml4ZWQgd2l0aCBcInNlc3Npb25fcHJvcGVydGllcy4qXCIgYW5kIG11c3QgY29udGFpbiBvbmx5XG4gKiAgICAgICAgICAgICAgICBsb3dlci1jYXNlIGNoYXJhY3RlcnMsIG51bWJlcnMsIHVuZGVyc2NvcmVzIG9yIGRvdHMuIEVhY2ggZG90IG11c3QgYmUgZm9sbG93ZWQgYnkgYSBsb3dlci1jYXNlXG4gKiAgICAgICAgICAgICAgICBjaGFyYWN0ZXIuIEVhY2ggdW5kZXJzY29yZSBtdXN0IGJlIGZvbGxvd2VkIGJ5IGEgbG93ZXItY2FzZSBjaGFyYWN0ZXIgb3IgbnVtYmVyLlxuICogQHBhcmFtIHRpbWVvdXQgVGltZW91dCBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIFJVTSBKYXZhU2NyaXB0IHRvIGJlIGF2YWlsYWJsZSAoZGVmYXVsdDogMTAwMDApXG4gKiBAdGhyb3dzICAgICAgICBBIHtAbGluayBEeW5hdHJhY2VFcnJvcn0gaWYgdGhlIFJVTSBKYXZhU2NyaXB0IGlzIG5vdCBhdmFpbGFibGUgd2l0aGluIHRoZSB0aW1lb3V0LCBvciB0aGUgbmFtZXNwYWNlIGlzXG4gKiAgICAgICAgICAgICAgICBvdmVycmlkZGVuIHdpdGggYW4gaW5jb21wYXRpYmxlIG9iamVjdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZFNlc3Npb25Qcm9wZXJ0eUV2ZW50KGZpZWxkczogQXBpQ3JlYXRlZFNlc3Npb25Qcm9wZXJ0aWVzRXZlbnQsIHRpbWVvdXQ6IG51bWJlciA9IDEwXzAwMCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGR5bmF0cmFjZSA9IGF3YWl0IHdhaXRGb3JBZ2VudCh0aW1lb3V0KTtcbiAgICBkeW5hdHJhY2Uuc2VuZFNlc3Npb25Qcm9wZXJ0eUV2ZW50KGZpZWxkcyk7XG59XG5cbi8qKlxuICogQXN5bmMgd3JhcHBlciBmb3Ige0BsaW5rIGR5bmF0cmFjZS5zZW5kRXhjZXB0aW9uRXZlbnR9LlxuICogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBpZiB0aGUgRXJyb3IgbW9kdWxlIGlzIGVuYWJsZWRcbiAqXG4gKiBAcGFyYW0gZXJyb3IgICBNdXN0IGJlIGEgdmFsaWQgaW5zdGFuY2Ugb2YgdGhlIEVycm9yIGNsYXNzLiBJZiBhbiBpbnZhbGlkIHZhbHVlIGlzIHByb3ZpZGVkLCB0aGUgZXJyb3Igd2lsbCBub3QgYmUgcHJvY2Vzc2VkIG9yIHNlbnQuXG4gKiBAcGFyYW0gZmllbGRzICBPcHRpb25hbDogTXVzdCBiZSBhIHZhbGlkIEpTT04gb2JqZWN0IGFuZCBjYW5ub3QgY29udGFpbiBmdW5jdGlvbnMsIHVuZGVmaW5lZCwgSW5maW5pdHkgYW5kIE5hTiBhc1xuICogICAgICAgICAgICAgICAgdmFsdWVzLCBvdGhlcndpc2UgdGhleSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggbnVsbC4gVGhlIGBmaWVsZHNgIG5lZWQgdG8gYmUgc2VyaWFsaXphYmxlXG4gKiAgICAgICAgICAgICAgICB1c2luZyBKU09OLnN0cmluZ2lmeS4gVGhlIHJlc3VsdGluZyBldmVudCB3aWxsIGNvbnRhaW4gdGhlIHByb3ZpZGVkIGBmaWVsZHNgLCBhbmQgaXNcbiAqICAgICAgICAgICAgICAgIG1vZGlmaWVkIHdpdGggYWRkaXRpb25hbCBwcm9wZXJ0aWVzLCB0aHVzIGFsc28gZW1wdHkgb2JqZWN0cyBhcmUgdmFsaWQuIE9ubHkgcHJvcGVydGllc1xuICogICAgICAgICAgICAgICAgcHJlZml4ZWQgd2l0aCBgZXZlbnRfcHJvcGVydGllcy5gLCB0aGUgYGR1cmF0aW9uYCBwcm9wZXJ0eSBhbmQgdGhlIGBzdGFydF90aW1lYCBwcm9wZXJ0eSBhcmVcbiAqICAgICAgICAgICAgICAgIGFsbG93ZWQuIFN0cmluZyBwcm9wZXJ0aWVzIGFyZSBsaW1pdGVkIHRvIDUwMDAgY2hhcmFjdGVycywgZXhjZWVkaW5nIGNoYXJhY3RlcnMgYXJlIGN1dCBvZmYuXG4gKiAgICAgICAgICAgICAgICBBbGwgZXZlbnQgcHJvcGVydHkga2V5cyBtdXN0IGNvbnRhaW4gb25seSBhbHBoYWJldGljIGNoYXJhY3RlcnMsIG51bWJlcnMsXG4gKiAgICAgICAgICAgICAgICB1bmRlcnNjb3JlcyBvciBkb3RzLiBFYWNoIGRvdCBtdXN0IGJlIGZvbGxvd2VkIGJ5IGFuIGFscGhhYmV0aWMgY2hhcmFjdGVyLiBFYWNoIHVuZGVyc2NvcmVcbiAqICAgICAgICAgICAgICAgIG11c3QgYmUgZm9sbG93ZWQgYnkgYW4gYWxwaGFiZXRpYyBjaGFyYWN0ZXIgb3IgbnVtYmVyLlxuICogQHBhcmFtIHRpbWVvdXQgVGltZW91dCBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIFJVTSBKYXZhU2NyaXB0IHRvIGJlIGF2YWlsYWJsZSAoZGVmYXVsdDogMTAwMDApXG4gKiBAdGhyb3dzICAgICAgICBBIHtAbGluayBEeW5hdHJhY2VFcnJvcn0gaWYgdGhlIFJVTSBKYXZhU2NyaXB0IGlzIG5vdCBhdmFpbGFibGUgd2l0aGluIHRoZSB0aW1lb3V0LCBvciB0aGUgbmFtZXNwYWNlIGlzXG4gKiAgICAgICAgICAgICAgICBvdmVycmlkZGVuIHdpdGggYW4gaW5jb21wYXRpYmxlIG9iamVjdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZEV4Y2VwdGlvbkV2ZW50KGVycm9yOiBFcnJvciwgZmllbGRzPzogQXBpQ3JlYXRlZEV2ZW50UHJvcGVydGllc0V2ZW50LCB0aW1lb3V0OiBudW1iZXIgPSAxMF8wMDApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzZW5kRXhjZXB0aW9uRXZlbnRHdWFyZGVkID0gYXdhaXQgd2FpdEZvclNlbmRFeGNlcHRpb25FdmVudCh0aW1lb3V0KTtcbiAgICBzZW5kRXhjZXB0aW9uRXZlbnRHdWFyZGVkKGVycm9yLCBmaWVsZHMpO1xufVxuIl19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zb3VyY2UvYXBpL3Byb21pc2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDO0FBRTVDOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxTQUFTLENBQUMsTUFBc0MsRUFBRSxZQUFzQixFQUFFLFVBQWtCLHFCQUFxQjtJQUNuSSxNQUFNLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCLENBQ2xDLGFBQWdHLEVBQ2hHLFVBQWtCLHFCQUFxQjtJQUV2QyxNQUFNLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxPQUFPLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FBQyxNQUEwQixFQUFFLFVBQWtCLHFCQUFxQjtJQUNwRyxNQUFNLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxPQUFPLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FBQyxLQUFhLEVBQUUsVUFBa0IscUJBQXFCO0lBQ3JGLE1BQU0sU0FBUyxHQUFHLE1BQU0sWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsU0FBUyxDQUFDLFVBQWtCLHFCQUFxQjtJQUNuRSxNQUFNLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsVUFBVSxDQUFDLFVBQWtCLHFCQUFxQjtJQUNwRSxNQUFNLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDM0IsQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSx3QkFBd0IsQ0FBQyxNQUF3QyxFQUFFLFVBQWtCLHFCQUFxQjtJQUM1SCxNQUFNLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxTQUFTLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQUMsS0FBWSxFQUFFLE1BQXVDLEVBQUUsVUFBa0IscUJBQXFCO0lBQ25JLE1BQU0seUJBQXlCLEdBQUcsTUFBTSx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRSx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgICBBcGlDcmVhdGVkRXZlbnRQcm9wZXJ0aWVzRXZlbnQsXG4gICAgQXBpQ3JlYXRlZFNlc3Npb25Qcm9wZXJ0aWVzRXZlbnQsXG4gICAgRXZlbnRDb250ZXh0LFxuICAgIEpTT05FdmVudFxufSBmcm9tIFwiLi4vLi4vdHlwZXMvaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgICBIZWFsdGhDaGVja0NvbmZpZyxcbiAgICBVbnN1YnNjcmliZXJcbn0gZnJvbSBcIi4uLy4uL3R5cGVzL2FwaS9keW5hdHJhY2UtYXBpLXR5cGVzLmpzXCI7XG5pbXBvcnQgeyB3YWl0Rm9yQWdlbnQgfSBmcm9tIFwiLi93YWl0LWZvci1hZ2VudC5qc1wiO1xuaW1wb3J0IHsgd2FpdEZvclNlbmRFeGNlcHRpb25FdmVudCB9IGZyb20gXCIuL3dhaXQtZm9yLXNlbmQtZXhjZXB0aW9uLWV2ZW50LmpzXCI7XG5cbmV4cG9ydCB7IER5bmF0cmFjZUVycm9yIH0gZnJvbSBcIi4uL2R5bmF0cmFjZS1lcnJvci5qc1wiO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQUdFTlRfVElNRU9VVCA9IDEwXzAwMDtcblxuLyoqXG4gKiBBc3luYyB3cmFwcGVyIGZvciB7QGxpbmsgZHluYXRyYWNlLnNlbmRFdmVudH0uXG4gKlxuICogQHBhcmFtIGZpZWxkcyAgICAgICBNdXN0IGJlIGEgdmFsaWQgSlNPTiBvYmplY3QgYW5kIGNhbm5vdCBjb250YWluIGZ1bmN0aW9ucywgdW5kZWZpbmVkLCBJbmZpbml0eSBhbmQgTmFOIGFzXG4gKiAgICAgICAgICAgICAgICAgICAgIHZhbHVlcywgb3RoZXJ3aXNlIHRoZXkgd2lsbCBiZSByZXBsYWNlZCB3aXRoIG51bGwuIFRoZSBgZmllbGRzYCBuZWVkIHRvIGJlIHNlcmlhbGl6YWJsZVxuICogICAgICAgICAgICAgICAgICAgICB1c2luZyBKU09OLnN0cmluZ2lmeS4gVGhlIHJlc3VsdGluZyBldmVudCB3aWxsIGJlIHBvcHVsYXRlZCB3aXRoIGBmaWVsZHNgIHBhcmFtZXRlciwgYW5kXG4gKiAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkIHdpdGggYWRkaXRpb25hbCBwcm9wZXJ0aWVzLCB0aHVzIGFsc28gZW1wdHkgb2JqZWN0cyBhcmUgdmFsaWQuIE9ubHkgcHJvcGVydGllc1xuICogICAgICAgICAgICAgICAgICAgICBwcmVmaXhlZCB3aXRoIGBldmVudF9wcm9wZXJ0aWVzLmAsIHRoZSBgZHVyYXRpb25gIHByb3BlcnR5IGFuZCB0aGUgYHN0YXJ0X3RpbWVgIHByb3BlcnR5IGFyZVxuICogICAgICAgICAgICAgICAgICAgICBhbGxvd2VkLlxuICogQHBhcmFtIGV2ZW50Q29udGV4dCBBbiBvcHRpb25hbCBjb250ZXh0IHRoYXQgY2FuIGJlIHVzZWQgdG8gbWFuaXB1bGF0ZSB0aGVcbiAqICAgICAgICAgICAgICAgICAgICAgcmVzdWx0IGV2ZW50IHdpdGhpbiB0aGUgbW9kaWZpY2F0aW9uIGNhbGxiYWNrLlxuICogQHBhcmFtIHRpbWVvdXQgICAgICBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcyB0byB3YWl0IGZvciB0aGUgUlVNIEphdmFTY3JpcHQgdG8gYmUgYXZhaWxhYmxlIChkZWZhdWx0OiAxMDAwMClcbiAqIEB0aHJvd3MgICAgICAgICAgICAgQSB7QGxpbmsgRHluYXRyYWNlRXJyb3J9IGlmIHRoZSBSVU0gSmF2YVNjcmlwdCBpcyBub3QgYXZhaWxhYmxlIHdpdGhpbiB0aGUgdGltZW91dCwgb3IgdGhlIG5hbWVzcGFjZSBpc1xuICogICAgICAgICAgICAgICAgICAgICBvdmVycmlkZGVuIHdpdGggYW4gaW5jb21wYXRpYmxlIG9iamVjdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZEV2ZW50KGZpZWxkczogQXBpQ3JlYXRlZEV2ZW50UHJvcGVydGllc0V2ZW50LCBldmVudENvbnRleHQ/OiB1bmtub3duLCB0aW1lb3V0OiBudW1iZXIgPSBERUZBVUxUX0FHRU5UX1RJTUVPVVQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkeW5hdHJhY2UgPSBhd2FpdCB3YWl0Rm9yQWdlbnQodGltZW91dCk7XG4gICAgZHluYXRyYWNlLnNlbmRFdmVudChmaWVsZHMsIGV2ZW50Q29udGV4dCk7XG59XG5cbi8qKlxuICogQXN5bmMgd3JhcHBlciBmb3Ige0BsaW5rIGR5bmF0cmFjZS5hZGRFdmVudE1vZGlmaWVyfS5cbiAqXG4gKiBAcGFyYW0gZXZlbnRNb2RpZmllciBUaGUgbW9kaWZpZXIgZnVuY3Rpb24gdG8gbW9kaWZ5IGEgZ2l2ZW4gKHJlYWRvbmx5KSBKU09ORXZlbnQuIEl0IHJlY2VpdmVzIGFuIG9wdGlvbmFsIGNvbnRleHRcbiAqICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiBldmVudCwgaWYgYXZhaWxhYmxlLiBUaGUgcmV0dXJuZWQgZXZlbnQgbXVzdCBiZSBhIG5ldyBvYmplY3QsIG90aGVyd2lzZVxuICogICAgICAgICAgICAgICAgICAgICAgbW9kaWZpY2F0aW9uIHdpbGwgYmUgaWdub3JlZC5cbiAqIEBwYXJhbSB0aW1lb3V0ICAgICAgIFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSBSVU0gSmF2YVNjcmlwdCB0byBiZSBhdmFpbGFibGUgKGRlZmF1bHQ6IDEwMDAwKVxuICogQHJldHVybnMgICAgICAgICAgICAgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHVuc3Vic2NyaWJlciBmdW5jdGlvbiB0byB0dXJuIG9mZiBldmVudCBtb2RpZmljYXRpb24uXG4gKiBAdGhyb3dzICAgICAgICAgICAgICBBIHtAbGluayBEeW5hdHJhY2VFcnJvcn0gaWYgdGhlIFJVTSBKYXZhU2NyaXB0IGlzIG5vdCBhdmFpbGFibGUgd2l0aGluIHRoZSB0aW1lb3V0LCBvciB0aGVcbiAqICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZSBpcyBvdmVycmlkZGVuIHdpdGggYW4gaW5jb21wYXRpYmxlIG9iamVjdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkRXZlbnRNb2RpZmllcihcbiAgICBldmVudE1vZGlmaWVyOiAoanNvbkV2ZW50OiBSZWFkb25seTxKU09ORXZlbnQ+LCBldmVudENvbnRleHQ/OiBFdmVudENvbnRleHQpID0+IEpTT05FdmVudCB8IG51bGwsXG4gICAgdGltZW91dDogbnVtYmVyID0gREVGQVVMVF9BR0VOVF9USU1FT1VUXG4pOiBQcm9taXNlPFVuc3Vic2NyaWJlcj4ge1xuICAgIGNvbnN0IGR5bmF0cmFjZSA9IGF3YWl0IHdhaXRGb3JBZ2VudCh0aW1lb3V0KTtcbiAgICByZXR1cm4gZHluYXRyYWNlLmFkZEV2ZW50TW9kaWZpZXIoZXZlbnRNb2RpZmllcik7XG59XG5cbi8qKlxuICogQXN5bmMgd3JhcHBlciBmb3Ige0BsaW5rIGR5bmF0cmFjZS5ydW5IZWFsdGhDaGVja30uXG4gKlxuICogQHBhcmFtIGNvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgaGVhbHRoIGNoZWNrLlxuICogQHBhcmFtIGNvbmZpZy5sb2dWZXJib3NlICAgICAgICAgICAgICAgSWYgdHJ1ZSwgdmVyYm9zZSBpbmZvcm1hdGlvbiBpcyBpbmNsdWRlZCBpbiB0aGUgaGVhbHRoIGNoZWNrLlxuICogQHBhcmFtIGNvbmZpZy5yZXR1cm5EaWFnbm9zdGljRGF0YSAgICAgSWYgdHJ1ZSwgdGhlIGRpYWdub3N0aWMgZGF0YSBpcyByZXR1cm5lZCBhcyBhcnJheSBpbnN0ZWFkIG9mIGp1c3QgYmVpbmcgbG9nZ2VkLlxuICogQHBhcmFtIGNvbmZpZy5ydW5EZXRhaWxlZE92ZXJyaWRlQ2hlY2sgSWYgdHJ1ZSwgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB3aWxsIGJlIGxvZ2dlZCB0byB0aGUgY29uc29sZSBmb3Igb3ZlcnJpZGRlbiBuYXRpdmUgQVBJcy5cbiAqIEBwYXJhbSB0aW1lb3V0ICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSBSVU0gSmF2YVNjcmlwdCB0byBiZSBhdmFpbGFibGUgKGRlZmF1bHQ6IDEwMDAwKVxuICogQHJldHVybnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSBwcm9taXNlIHRoYXQgc2V0dGxlcyBhcyBzb29uIGFzIHRoZSBoZWFsdGggY2hlY2sgaGFzIGJlZW4gcGVyZm9ybWVkLlxuICogQHRocm93cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSB7QGxpbmsgRHluYXRyYWNlRXJyb3J9IGlmIHRoZSBSVU0gSmF2YVNjcmlwdCBpcyBub3QgYXZhaWxhYmxlIHdpdGhpbiB0aGVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQsIG9yIHRoZSBuYW1lc3BhY2UgaXMgb3ZlcnJpZGRlbiB3aXRoIGFuIGluY29tcGF0aWJsZSBvYmplY3RcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkhlYWx0aENoZWNrKGNvbmZpZz86IEhlYWx0aENoZWNrQ29uZmlnLCB0aW1lb3V0OiBudW1iZXIgPSBERUZBVUxUX0FHRU5UX1RJTUVPVVQpOiBQcm9taXNlPHVua25vd25bXSB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGR5bmF0cmFjZSA9IGF3YWl0IHdhaXRGb3JBZ2VudCh0aW1lb3V0KTtcbiAgICByZXR1cm4gZHluYXRyYWNlLnJ1bkhlYWx0aENoZWNrKGNvbmZpZyk7XG59XG5cbi8qKlxuICogQXN5bmMgd3JhcHBlciBmb3Ige0BsaW5rIGR5bmF0cmFjZS5pZGVudGlmeVVzZXJ9LlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAgIFRoZSBuYW1lIG9mIHRoZSB1c2VyLiBGb3IgZXhhbXBsZSwgdXNlIGEgbmFtZSwgdXNlcmlkLCBvciB5b3VyIHVzZXIncyBlbWFpbCBhZGRyZXNzLlxuICogQHBhcmFtIHRpbWVvdXQgVGltZW91dCBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIFJVTSBKYXZhU2NyaXB0IHRvIGJlIGF2YWlsYWJsZSAoZGVmYXVsdDogMTAwMDApXG4gKiBAdGhyb3dzICAgICAgICBBIHtAbGluayBEeW5hdHJhY2VFcnJvcn0gaWYgdGhlIFJVTSBKYXZhU2NyaXB0IGlzIG5vdCBhdmFpbGFibGUgd2l0aGluIHRoZSB0aW1lb3V0LCBvciB0aGUgbmFtZXNwYWNlIGlzXG4gKiAgICAgICAgICAgICAgICBvdmVycmlkZGVuIHdpdGggYW4gaW5jb21wYXRpYmxlIG9iamVjdFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaWRlbnRpZnlVc2VyKHZhbHVlOiBzdHJpbmcsIHRpbWVvdXQ6IG51bWJlciA9IERFRkFVTFRfQUdFTlRfVElNRU9VVCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGR5bmF0cmFjZSA9IGF3YWl0IHdhaXRGb3JBZ2VudCh0aW1lb3V0KTtcbiAgICBkeW5hdHJhY2UuaWRlbnRpZnlVc2VyKHZhbHVlKTtcbn1cblxuLyoqXG4gKiBBc3luYyB3cmFwcGVyIGZvciB7QGxpbmsgZHluYXRyYWNlLnVzZXJPcHRJbn0uXG4gKlxuICogR3JhbnRzIGNvbnNlbnQgZm9yIGRhdGEgY29sbGVjdGlvbi5cbiAqXG4gKiBAcGFyYW0gdGltZW91dCBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcyB0byB3YWl0IGZvciB0aGUgUlVNIEphdmFTY3JpcHQgdG8gYmUgYXZhaWxhYmxlIChkZWZhdWx0OiAxMDAwMClcbiAqIEB0aHJvd3MgICAgICAgIEEge0BsaW5rIER5bmF0cmFjZUVycm9yfSBpZiB0aGUgUlVNIEphdmFTY3JpcHQgaXMgbm90IGF2YWlsYWJsZSB3aXRoaW4gdGhlIHRpbWVvdXQsIG9yIHRoZSBuYW1lc3BhY2UgaXNcbiAqICAgICAgICAgICAgICAgIG92ZXJyaWRkZW4gd2l0aCBhbiBpbmNvbXBhdGlibGUgb2JqZWN0XG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVzZXJPcHRJbih0aW1lb3V0OiBudW1iZXIgPSBERUZBVUxUX0FHRU5UX1RJTUVPVVQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkeW5hdHJhY2UgPSBhd2FpdCB3YWl0Rm9yQWdlbnQodGltZW91dCk7XG4gICAgZHluYXRyYWNlLnVzZXJPcHRJbigpO1xufVxuXG4vKipcbiAqIEFzeW5jIHdyYXBwZXIgZm9yIHtAbGluayBkeW5hdHJhY2UudXNlck9wdE91dH0uXG4gKlxuICogUmV2b2tlcyBjb25zZW50IGZvciBkYXRhIGNvbGxlY3Rpb24uXG4gKlxuICogQHBhcmFtIHRpbWVvdXQgVGltZW91dCBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIFJVTSBKYXZhU2NyaXB0IHRvIGJlIGF2YWlsYWJsZSAoZGVmYXVsdDogMTAwMDApXG4gKiBAdGhyb3dzICAgICAgICBBIHtAbGluayBEeW5hdHJhY2VFcnJvcn0gaWYgdGhlIFJVTSBKYXZhU2NyaXB0IGlzIG5vdCBhdmFpbGFibGUgd2l0aGluIHRoZSB0aW1lb3V0LCBvciB0aGUgbmFtZXNwYWNlIGlzXG4gKiAgICAgICAgICAgICAgICBvdmVycmlkZGVuIHdpdGggYW4gaW5jb21wYXRpYmxlIG9iamVjdFxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1c2VyT3B0T3V0KHRpbWVvdXQ6IG51bWJlciA9IERFRkFVTFRfQUdFTlRfVElNRU9VVCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGR5bmF0cmFjZSA9IGF3YWl0IHdhaXRGb3JBZ2VudCh0aW1lb3V0KTtcbiAgICBkeW5hdHJhY2UudXNlck9wdE91dCgpO1xufVxuXG4vKipcbiAqIEFzeW5jIHdyYXBwZXIgZm9yIHtAbGluayBkeW5hdHJhY2Uuc2VuZFNlc3Npb25Qcm9wZXJ0eUV2ZW50fS5cbiAqXG4gKiBAcGFyYW0gZmllbGRzICBNdXN0IGJlIGEgdmFsaWQgSlNPTiBvYmplY3QgYW5kIGNhbm5vdCBjb250YWluIGZ1bmN0aW9ucywgdW5kZWZpbmVkLCBJbmZpbml0eSBhbmQgTmFOIGFzXG4gKiAgICAgICAgICAgICAgICB2YWx1ZXMsIG90aGVyd2lzZSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBudWxsLiBUaGUgYGZpZWxkc2AgbmVlZCB0byBiZSBzZXJpYWxpemFibGVcbiAqICAgICAgICAgICAgICAgIHVzaW5nIEpTT04uc3RyaW5naWZ5LiBBbGwga2V5cyBtdXN0IGJlIHByZWZpeGVkIHdpdGggXCJzZXNzaW9uX3Byb3BlcnRpZXMuKlwiIGFuZCBtdXN0IGNvbnRhaW4gb25seVxuICogICAgICAgICAgICAgICAgbG93ZXItY2FzZSBjaGFyYWN0ZXJzLCBudW1iZXJzLCB1bmRlcnNjb3JlcyBvciBkb3RzLiBFYWNoIGRvdCBtdXN0IGJlIGZvbGxvd2VkIGJ5IGEgbG93ZXItY2FzZVxuICogICAgICAgICAgICAgICAgY2hhcmFjdGVyLiBFYWNoIHVuZGVyc2NvcmUgbXVzdCBiZSBmb2xsb3dlZCBieSBhIGxvd2VyLWNhc2UgY2hhcmFjdGVyIG9yIG51bWJlci5cbiAqIEBwYXJhbSB0aW1lb3V0IFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSBSVU0gSmF2YVNjcmlwdCB0byBiZSBhdmFpbGFibGUgKGRlZmF1bHQ6IDEwMDAwKVxuICogQHRocm93cyAgICAgICAgQSB7QGxpbmsgRHluYXRyYWNlRXJyb3J9IGlmIHRoZSBSVU0gSmF2YVNjcmlwdCBpcyBub3QgYXZhaWxhYmxlIHdpdGhpbiB0aGUgdGltZW91dCwgb3IgdGhlIG5hbWVzcGFjZSBpc1xuICogICAgICAgICAgICAgICAgb3ZlcnJpZGRlbiB3aXRoIGFuIGluY29tcGF0aWJsZSBvYmplY3RcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRTZXNzaW9uUHJvcGVydHlFdmVudChmaWVsZHM6IEFwaUNyZWF0ZWRTZXNzaW9uUHJvcGVydGllc0V2ZW50LCB0aW1lb3V0OiBudW1iZXIgPSBERUZBVUxUX0FHRU5UX1RJTUVPVVQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkeW5hdHJhY2UgPSBhd2FpdCB3YWl0Rm9yQWdlbnQodGltZW91dCk7XG4gICAgZHluYXRyYWNlLnNlbmRTZXNzaW9uUHJvcGVydHlFdmVudChmaWVsZHMpO1xufVxuXG4vKipcbiAqIEFzeW5jIHdyYXBwZXIgZm9yIHtAbGluayBkeW5hdHJhY2Uuc2VuZEV4Y2VwdGlvbkV2ZW50fS5cbiAqIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhdmFpbGFibGUgaWYgdGhlIEVycm9yIG1vZHVsZSBpcyBlbmFibGVkXG4gKlxuICogQHBhcmFtIGVycm9yICAgTXVzdCBiZSBhIHZhbGlkIGluc3RhbmNlIG9mIHRoZSBFcnJvciBjbGFzcy4gSWYgYW4gaW52YWxpZCB2YWx1ZSBpcyBwcm92aWRlZCwgdGhlIGVycm9yIHdpbGwgbm90IGJlIHByb2Nlc3NlZCBvciBzZW50LlxuICogQHBhcmFtIGZpZWxkcyAgT3B0aW9uYWw6IE11c3QgYmUgYSB2YWxpZCBKU09OIG9iamVjdCBhbmQgY2Fubm90IGNvbnRhaW4gZnVuY3Rpb25zLCB1bmRlZmluZWQsIEluZmluaXR5IGFuZCBOYU4gYXNcbiAqICAgICAgICAgICAgICAgIHZhbHVlcywgb3RoZXJ3aXNlIHRoZXkgd2lsbCBiZSByZXBsYWNlZCB3aXRoIG51bGwuIFRoZSBgZmllbGRzYCBuZWVkIHRvIGJlIHNlcmlhbGl6YWJsZVxuICogICAgICAgICAgICAgICAgdXNpbmcgSlNPTi5zdHJpbmdpZnkuIFRoZSByZXN1bHRpbmcgZXZlbnQgd2lsbCBjb250YWluIHRoZSBwcm92aWRlZCBgZmllbGRzYCwgYW5kIGlzXG4gKiAgICAgICAgICAgICAgICBtb2RpZmllZCB3aXRoIGFkZGl0aW9uYWwgcHJvcGVydGllcywgdGh1cyBhbHNvIGVtcHR5IG9iamVjdHMgYXJlIHZhbGlkLiBPbmx5IHByb3BlcnRpZXNcbiAqICAgICAgICAgICAgICAgIHByZWZpeGVkIHdpdGggYGV2ZW50X3Byb3BlcnRpZXMuYCwgdGhlIGBkdXJhdGlvbmAgcHJvcGVydHkgYW5kIHRoZSBgc3RhcnRfdGltZWAgcHJvcGVydHkgYXJlXG4gKiAgICAgICAgICAgICAgICBhbGxvd2VkLiBTdHJpbmcgcHJvcGVydGllcyBhcmUgbGltaXRlZCB0byA1MDAwIGNoYXJhY3RlcnMsIGV4Y2VlZGluZyBjaGFyYWN0ZXJzIGFyZSBjdXQgb2ZmLlxuICogICAgICAgICAgICAgICAgQWxsIGV2ZW50IHByb3BlcnR5IGtleXMgbXVzdCBjb250YWluIG9ubHkgYWxwaGFiZXRpYyBjaGFyYWN0ZXJzLCBudW1iZXJzLFxuICogICAgICAgICAgICAgICAgdW5kZXJzY29yZXMgb3IgZG90cy4gRWFjaCBkb3QgbXVzdCBiZSBmb2xsb3dlZCBieSBhbiBhbHBoYWJldGljIGNoYXJhY3Rlci4gRWFjaCB1bmRlcnNjb3JlXG4gKiAgICAgICAgICAgICAgICBtdXN0IGJlIGZvbGxvd2VkIGJ5IGFuIGFscGhhYmV0aWMgY2hhcmFjdGVyIG9yIG51bWJlci5cbiAqIEBwYXJhbSB0aW1lb3V0IFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSBSVU0gSmF2YVNjcmlwdCB0byBiZSBhdmFpbGFibGUgKGRlZmF1bHQ6IDEwMDAwKVxuICogQHRocm93cyAgICAgICAgQSB7QGxpbmsgRHluYXRyYWNlRXJyb3J9IGlmIHRoZSBSVU0gSmF2YVNjcmlwdCBpcyBub3QgYXZhaWxhYmxlIHdpdGhpbiB0aGUgdGltZW91dCwgb3IgdGhlIG5hbWVzcGFjZSBpc1xuICogICAgICAgICAgICAgICAgb3ZlcnJpZGRlbiB3aXRoIGFuIGluY29tcGF0aWJsZSBvYmplY3RcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRFeGNlcHRpb25FdmVudChlcnJvcjogRXJyb3IsIGZpZWxkcz86IEFwaUNyZWF0ZWRFdmVudFByb3BlcnRpZXNFdmVudCwgdGltZW91dDogbnVtYmVyID0gREVGQVVMVF9BR0VOVF9USU1FT1VUKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc2VuZEV4Y2VwdGlvbkV2ZW50R3VhcmRlZCA9IGF3YWl0IHdhaXRGb3JTZW5kRXhjZXB0aW9uRXZlbnQodGltZW91dCk7XG4gICAgc2VuZEV4Y2VwdGlvbkV2ZW50R3VhcmRlZChlcnJvciwgZmllbGRzKTtcbn1cbiJdfQ==
@@ -4,6 +4,9 @@ import type { SendUserInteractionFields } from "../../types/index.js";
4
4
  * This function is only available if the User Interaction module is enabled.
5
5
  *
6
6
  * @param fields The interaction fields. Must contain a `keys` array with at least one key.
7
+ * Values can be {@link UserInteractionSpecialKey} members or raw
8
+ * {@link https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key | KeyboardEvent.key}
9
+ * strings — raw values are normalized internally if applicable.
7
10
  * The fields object must be JSON-serializable. Optional `ui_element.custom_name` and
8
11
  * `event_properties.*` entries are allowed. See {@link SendUserInteractionFields} for details.
9
12
  * @param elementOrEvent An optional {@link Element} or {@link KeyboardEvent} used to auto-generate UI element fields.
@@ -4,6 +4,9 @@ import { waitForInteractions } from "./wait-for-interactions.js";
4
4
  * This function is only available if the User Interaction module is enabled.
5
5
  *
6
6
  * @param fields The interaction fields. Must contain a `keys` array with at least one key.
7
+ * Values can be {@link UserInteractionSpecialKey} members or raw
8
+ * {@link https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key | KeyboardEvent.key}
9
+ * strings — raw values are normalized internally if applicable.
7
10
  * The fields object must be JSON-serializable. Optional `ui_element.custom_name` and
8
11
  * `event_properties.*` entries are allowed. See {@link SendUserInteractionFields} for details.
9
12
  * @param elementOrEvent An optional {@link Element} or {@link KeyboardEvent} used to auto-generate UI element fields.
@@ -16,4 +19,4 @@ export async function sendKeyPressEvent(fields, elementOrEvent, timeout = 10_000
16
19
  const interactions = await waitForInteractions(timeout);
17
20
  interactions.sendKeyPressEvent(fields, elementOrEvent);
18
21
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL2FwaS9wcm9taXNlcy9pbnRlcmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFakU7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxpQkFBaUIsQ0FDbkMsTUFBaUMsRUFDakMsY0FBZ0MsRUFDaEMsVUFBa0IsTUFBTTtJQUV4QixNQUFNLFlBQVksR0FBRyxNQUFNLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VuZFVzZXJJbnRlcmFjdGlvbkZpZWxkcyB9IGZyb20gXCIuLi8uLi90eXBlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgd2FpdEZvckludGVyYWN0aW9ucyB9IGZyb20gXCIuL3dhaXQtZm9yLWludGVyYWN0aW9ucy5qc1wiO1xuXG4vKipcbiAqIEFzeW5jIHdyYXBwZXIgZm9yIHtAbGluayBkeW5hdHJhY2UuaW50ZXJhY3Rpb25zLnNlbmRLZXlQcmVzc0V2ZW50fS5cbiAqIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhdmFpbGFibGUgaWYgdGhlIFVzZXIgSW50ZXJhY3Rpb24gbW9kdWxlIGlzIGVuYWJsZWQuXG4gKlxuICogQHBhcmFtIGZpZWxkcyAgICAgICAgIFRoZSBpbnRlcmFjdGlvbiBmaWVsZHMuIE11c3QgY29udGFpbiBhIGBrZXlzYCBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBrZXkuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgVGhlIGZpZWxkcyBvYmplY3QgbXVzdCBiZSBKU09OLXNlcmlhbGl6YWJsZS4gT3B0aW9uYWwgYHVpX2VsZW1lbnQuY3VzdG9tX25hbWVgIGFuZFxuICogICAgICAgICAgICAgICAgICAgICAgIGBldmVudF9wcm9wZXJ0aWVzLipgIGVudHJpZXMgYXJlIGFsbG93ZWQuIFNlZSB7QGxpbmsgU2VuZFVzZXJJbnRlcmFjdGlvbkZpZWxkc30gZm9yIGRldGFpbHMuXG4gKiBAcGFyYW0gZWxlbWVudE9yRXZlbnQgQW4gb3B0aW9uYWwge0BsaW5rIEVsZW1lbnR9IG9yIHtAbGluayBLZXlib2FyZEV2ZW50fSB1c2VkIHRvIGF1dG8tZ2VuZXJhdGUgVUkgZWxlbWVudCBmaWVsZHMuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgV2hlbiBhIHtAbGluayBLZXlib2FyZEV2ZW50fSBpcyBwcm92aWRlZCwgdGhlIHRhcmdldCBlbGVtZW50IGlzIHJlc29sdmVkIGZyb20gdGhlIGV2ZW50LlxuICogQHBhcmFtIHRpbWVvdXQgICAgICAgIFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSBSVU0gSmF2YVNjcmlwdCB0byBiZSBhdmFpbGFibGUgKGRlZmF1bHQ6IDEwMDAwKVxuICogQHRocm93cyAgICAgICAgICAgICAgICBBIHtAbGluayBEeW5hdHJhY2VFcnJvcn0gaWYgdGhlIFJVTSBKYXZhU2NyaXB0IG9yIFVzZXIgSW50ZXJhY3Rpb24gbW9kdWxlIGlzIG5vdCBhdmFpbGFibGVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgd2l0aGluIHRoZSB0aW1lb3V0LCBvciB0aGUgbmFtZXNwYWNlIGlzIG92ZXJyaWRkZW4gd2l0aCBhbiBpbmNvbXBhdGlibGUgb2JqZWN0XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kS2V5UHJlc3NFdmVudChcbiAgICBmaWVsZHM6IFNlbmRVc2VySW50ZXJhY3Rpb25GaWVsZHMsXG4gICAgZWxlbWVudE9yRXZlbnQ/OiBFbGVtZW50IHwgRXZlbnQsXG4gICAgdGltZW91dDogbnVtYmVyID0gMTBfMDAwXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpbnRlcmFjdGlvbnMgPSBhd2FpdCB3YWl0Rm9ySW50ZXJhY3Rpb25zKHRpbWVvdXQpO1xuICAgIGludGVyYWN0aW9ucy5zZW5kS2V5UHJlc3NFdmVudChmaWVsZHMsIGVsZW1lbnRPckV2ZW50KTtcbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL2FwaS9wcm9taXNlcy9pbnRlcmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFakU7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxpQkFBaUIsQ0FDbkMsTUFBaUMsRUFDakMsY0FBZ0MsRUFDaEMsVUFBa0IsTUFBTTtJQUV4QixNQUFNLFlBQVksR0FBRyxNQUFNLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VuZFVzZXJJbnRlcmFjdGlvbkZpZWxkcyB9IGZyb20gXCIuLi8uLi90eXBlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgd2FpdEZvckludGVyYWN0aW9ucyB9IGZyb20gXCIuL3dhaXQtZm9yLWludGVyYWN0aW9ucy5qc1wiO1xuXG4vKipcbiAqIEFzeW5jIHdyYXBwZXIgZm9yIHtAbGluayBkeW5hdHJhY2UuaW50ZXJhY3Rpb25zLnNlbmRLZXlQcmVzc0V2ZW50fS5cbiAqIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhdmFpbGFibGUgaWYgdGhlIFVzZXIgSW50ZXJhY3Rpb24gbW9kdWxlIGlzIGVuYWJsZWQuXG4gKlxuICogQHBhcmFtIGZpZWxkcyAgICAgICAgIFRoZSBpbnRlcmFjdGlvbiBmaWVsZHMuIE11c3QgY29udGFpbiBhIGBrZXlzYCBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBrZXkuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzIGNhbiBiZSB7QGxpbmsgVXNlckludGVyYWN0aW9uU3BlY2lhbEtleX0gbWVtYmVycyBvciByYXdcbiAqICAgICAgICAgICAgICAgICAgICAgICB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQva2V5IHwgS2V5Ym9hcmRFdmVudC5rZXl9XG4gKiAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5ncyDigJQgcmF3IHZhbHVlcyBhcmUgbm9ybWFsaXplZCBpbnRlcm5hbGx5IGlmIGFwcGxpY2FibGUuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgVGhlIGZpZWxkcyBvYmplY3QgbXVzdCBiZSBKU09OLXNlcmlhbGl6YWJsZS4gT3B0aW9uYWwgYHVpX2VsZW1lbnQuY3VzdG9tX25hbWVgIGFuZFxuICogICAgICAgICAgICAgICAgICAgICAgIGBldmVudF9wcm9wZXJ0aWVzLipgIGVudHJpZXMgYXJlIGFsbG93ZWQuIFNlZSB7QGxpbmsgU2VuZFVzZXJJbnRlcmFjdGlvbkZpZWxkc30gZm9yIGRldGFpbHMuXG4gKiBAcGFyYW0gZWxlbWVudE9yRXZlbnQgQW4gb3B0aW9uYWwge0BsaW5rIEVsZW1lbnR9IG9yIHtAbGluayBLZXlib2FyZEV2ZW50fSB1c2VkIHRvIGF1dG8tZ2VuZXJhdGUgVUkgZWxlbWVudCBmaWVsZHMuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgV2hlbiBhIHtAbGluayBLZXlib2FyZEV2ZW50fSBpcyBwcm92aWRlZCwgdGhlIHRhcmdldCBlbGVtZW50IGlzIHJlc29sdmVkIGZyb20gdGhlIGV2ZW50LlxuICogQHBhcmFtIHRpbWVvdXQgICAgICAgIFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSBSVU0gSmF2YVNjcmlwdCB0byBiZSBhdmFpbGFibGUgKGRlZmF1bHQ6IDEwMDAwKVxuICogQHRocm93cyAgICAgICAgICAgICAgICBBIHtAbGluayBEeW5hdHJhY2VFcnJvcn0gaWYgdGhlIFJVTSBKYXZhU2NyaXB0IG9yIFVzZXIgSW50ZXJhY3Rpb24gbW9kdWxlIGlzIG5vdCBhdmFpbGFibGVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgd2l0aGluIHRoZSB0aW1lb3V0LCBvciB0aGUgbmFtZXNwYWNlIGlzIG92ZXJyaWRkZW4gd2l0aCBhbiBpbmNvbXBhdGlibGUgb2JqZWN0XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kS2V5UHJlc3NFdmVudChcbiAgICBmaWVsZHM6IFNlbmRVc2VySW50ZXJhY3Rpb25GaWVsZHMsXG4gICAgZWxlbWVudE9yRXZlbnQ/OiBFbGVtZW50IHwgRXZlbnQsXG4gICAgdGltZW91dDogbnVtYmVyID0gMTBfMDAwXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpbnRlcmFjdGlvbnMgPSBhd2FpdCB3YWl0Rm9ySW50ZXJhY3Rpb25zKHRpbWVvdXQpO1xuICAgIGludGVyYWN0aW9ucy5zZW5kS2V5UHJlc3NFdmVudChmaWVsZHMsIGVsZW1lbnRPckV2ZW50KTtcbn1cbiJdfQ==
@@ -3,14 +3,14 @@ import type { UserActionStartOptions, UserActionTracker } from "../types/index.j
3
3
  * Safe wrapper for {@link dynatrace.userActions.create} which reverts to a noop if RUM JavaScript or the user actions module is not available.
4
4
  *
5
5
  * @param options An optional options object to configure the user action.
6
- * @returns A `UserActionTracker` object that can be started and finished, or `undefined` if the user actions module is not enabled.
6
+ * @returns A `UserActionTracker` object that can be started and completed, or `undefined` if the user actions module is not enabled.
7
7
  *
8
8
  * @example
9
9
  * ```typescript
10
10
  * import * as userActions from "@dynatrace/rum-javascript-sdk/api/user-actions";
11
- * const userAction = userActions.create({ autoClose: false });
11
+ * const userAction = userActions.create({ completeAutomatically: false });
12
12
  * // perform work
13
- * userAction?.finish();
13
+ * userAction?.complete();
14
14
  * ```
15
15
  */
16
16
  export declare function create(options?: UserActionStartOptions): UserActionTracker | undefined;
@@ -25,7 +25,7 @@ export declare function create(options?: UserActionStartOptions): UserActionTrac
25
25
  * import * as userActions from "@dynatrace/rum-javascript-sdk/api/user-actions";
26
26
  * const unsubscribe = userActions.subscribe((userAction) => {
27
27
  * console.log('New user action created');
28
- * userAction.autoClose = false;
28
+ * userAction.completeAutomatically = false;
29
29
  * });
30
30
  * // later
31
31
  * unsubscribe?.();
@@ -55,7 +55,7 @@ export declare function setAutomaticDetection(automaticDetection: boolean): void
55
55
  * import * as userActions from "@dynatrace/rum-javascript-sdk/api/user-actions";
56
56
  * const currentAction = userActions.getCurrent();
57
57
  * if (currentAction) {
58
- * currentAction.autoClose = false;
58
+ * currentAction.completeAutomatically = false;
59
59
  * }
60
60
  * ```
61
61
  */
@@ -5,14 +5,14 @@ import { log } from "./logging.js";
5
5
  * Safe wrapper for {@link dynatrace.userActions.create} which reverts to a noop if RUM JavaScript or the user actions module is not available.
6
6
  *
7
7
  * @param options An optional options object to configure the user action.
8
- * @returns A `UserActionTracker` object that can be started and finished, or `undefined` if the user actions module is not enabled.
8
+ * @returns A `UserActionTracker` object that can be started and completed, or `undefined` if the user actions module is not enabled.
9
9
  *
10
10
  * @example
11
11
  * ```typescript
12
12
  * import * as userActions from "@dynatrace/rum-javascript-sdk/api/user-actions";
13
- * const userAction = userActions.create({ autoClose: false });
13
+ * const userAction = userActions.create({ completeAutomatically: false });
14
14
  * // perform work
15
- * userAction?.finish();
15
+ * userAction?.complete();
16
16
  * ```
17
17
  */
18
18
  export function create(options) {
@@ -31,7 +31,7 @@ export function create(options) {
31
31
  * import * as userActions from "@dynatrace/rum-javascript-sdk/api/user-actions";
32
32
  * const unsubscribe = userActions.subscribe((userAction) => {
33
33
  * console.log('New user action created');
34
- * userAction.autoClose = false;
34
+ * userAction.completeAutomatically = false;
35
35
  * });
36
36
  * // later
37
37
  * unsubscribe?.();
@@ -69,7 +69,7 @@ export function setAutomaticDetection(automaticDetection) {
69
69
  * import * as userActions from "@dynatrace/rum-javascript-sdk/api/user-actions";
70
70
  * const currentAction = userActions.getCurrent();
71
71
  * if (currentAction) {
72
- * currentAction.autoClose = false;
72
+ * currentAction.completeAutomatically = false;
73
73
  * }
74
74
  * ```
75
75
  */
@@ -96,4 +96,4 @@ function guardUserActions(fn) {
96
96
  }
97
97
  return fn(globalDt.userActions);
98
98
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2FwaS91c2VyLWFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5DOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFDLE9BQWdDO0lBQ25ELE9BQU8sZ0JBQWdCLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNwQyxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLFVBQW1EO0lBQ3pFLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNwQyxPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsa0JBQTJCO0lBQzdELGdCQUFnQixDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDN0IsV0FBVyxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDMUQsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSxVQUFVO0lBQ3RCLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNwQyxPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUM7SUFDL0IsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLGdCQUFnQixDQUE4QyxFQUFLO0lBQ3hFLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDMUIsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbEMsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN4QixHQUFHLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUNyRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgICBVc2VyQWN0aW9ucyxcbiAgICBVc2VyQWN0aW9uU3RhcnRPcHRpb25zLFxuICAgIFVzZXJBY3Rpb25UcmFja2VyXG59IGZyb20gXCIuLi90eXBlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgZ2V0R2xvYmFsIH0gZnJvbSBcIi4vZ2xvYmFsLWFkYXB0ZXIuanNcIjtcbmltcG9ydCB7IGlzVmFsaWRBZ2VudCB9IGZyb20gXCIuL3R5cGUtZ3VhcmRzL2lzLXZhbGlkLWFnZW50LmpzXCI7XG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiLi9sb2dnaW5nLmpzXCI7XG5cbi8qKlxuICogU2FmZSB3cmFwcGVyIGZvciB7QGxpbmsgZHluYXRyYWNlLnVzZXJBY3Rpb25zLmNyZWF0ZX0gd2hpY2ggcmV2ZXJ0cyB0byBhIG5vb3AgaWYgUlVNIEphdmFTY3JpcHQgb3IgdGhlIHVzZXIgYWN0aW9ucyBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyBBbiBvcHRpb25hbCBvcHRpb25zIG9iamVjdCB0byBjb25maWd1cmUgdGhlIHVzZXIgYWN0aW9uLlxuICogQHJldHVybnMgICAgICAgQSBgVXNlckFjdGlvblRyYWNrZXJgIG9iamVjdCB0aGF0IGNhbiBiZSBzdGFydGVkIGFuZCBmaW5pc2hlZCwgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIHVzZXIgYWN0aW9ucyBtb2R1bGUgaXMgbm90IGVuYWJsZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCAqIGFzIHVzZXJBY3Rpb25zIGZyb20gXCJAZHluYXRyYWNlL3J1bS1qYXZhc2NyaXB0LXNkay9hcGkvdXNlci1hY3Rpb25zXCI7XG4gKiBjb25zdCB1c2VyQWN0aW9uID0gdXNlckFjdGlvbnMuY3JlYXRlKHsgYXV0b0Nsb3NlOiBmYWxzZSB9KTtcbiAqIC8vIHBlcmZvcm0gd29ya1xuICogdXNlckFjdGlvbj8uZmluaXNoKCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShvcHRpb25zPzogVXNlckFjdGlvblN0YXJ0T3B0aW9ucyk6IFVzZXJBY3Rpb25UcmFja2VyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZ3VhcmRVc2VyQWN0aW9ucygodXNlckFjdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIHVzZXJBY3Rpb25zLmNyZWF0ZShvcHRpb25zKTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBTYWZlIHdyYXBwZXIgZm9yIHtAbGluayBkeW5hdHJhY2UudXNlckFjdGlvbnMuc3Vic2NyaWJlfSB3aGljaCByZXZlcnRzIHRvIGEgbm9vcCBpZiBSVU0gSmF2YVNjcmlwdCBvciB0aGUgdXNlciBhY3Rpb25zIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlLlxuICpcbiAqIEBwYXJhbSBzdWJzY3JpYmVyIEEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbmV2ZXIgRHluYXRyYWNlIGNyZWF0ZXMgYSBuZXcgdXNlciBhY3Rpb24uXG4gKiBAcmV0dXJucyAgICAgICAgICBBbiB1bnN1YnNjcmliZXIgZnVuY3Rpb24gdG8gcmVtb3ZlIHRoZSBzdWJzY3JpcHRpb24sIG9yIHVuZGVmaW5lZCBpZiB0aGUgdXNlciBhY3Rpb25zIG1vZHVsZSBpcyBub3QgZW5hYmxlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0ICogYXMgdXNlckFjdGlvbnMgZnJvbSBcIkBkeW5hdHJhY2UvcnVtLWphdmFzY3JpcHQtc2RrL2FwaS91c2VyLWFjdGlvbnNcIjtcbiAqIGNvbnN0IHVuc3Vic2NyaWJlID0gdXNlckFjdGlvbnMuc3Vic2NyaWJlKCh1c2VyQWN0aW9uKSA9PiB7XG4gKiAgICAgY29uc29sZS5sb2coJ05ldyB1c2VyIGFjdGlvbiBjcmVhdGVkJyk7XG4gKiAgICAgdXNlckFjdGlvbi5hdXRvQ2xvc2UgPSBmYWxzZTtcbiAqIH0pO1xuICogLy8gbGF0ZXJcbiAqIHVuc3Vic2NyaWJlPy4oKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3Vic2NyaWJlKHN1YnNjcmliZXI6ICh1c2VyQWN0aW9uOiBVc2VyQWN0aW9uVHJhY2tlcikgPT4gdm9pZCk6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGd1YXJkVXNlckFjdGlvbnMoKHVzZXJBY3Rpb25zKSA9PiB7XG4gICAgICAgIHJldHVybiB1c2VyQWN0aW9ucy5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gICAgfSk7XG59XG5cbi8qKlxuICogU2FmZSB3cmFwcGVyIGZvciB7QGxpbmsgZHluYXRyYWNlLnVzZXJBY3Rpb25zLnNldEF1dG9tYXRpY0RldGVjdGlvbn0gd2hpY2ggcmV2ZXJ0cyB0byBhIG5vb3AgaWYgUlVNIEphdmFTY3JpcHQgb3IgdGhlIHVzZXIgYWN0aW9ucyBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gYXV0b21hdGljRGV0ZWN0aW9uIElmIGZhbHNlLCBkaXNhYmxlcyBhdXRvbWF0aWMgdXNlciBhY3Rpb24gZGV0ZWN0aW9uLCBvdGhlcndpc2UgZW5hYmxlcyBpdC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0ICogYXMgdXNlckFjdGlvbnMgZnJvbSBcIkBkeW5hdHJhY2UvcnVtLWphdmFzY3JpcHQtc2RrL2FwaS91c2VyLWFjdGlvbnNcIjtcbiAqIHVzZXJBY3Rpb25zLnNldEF1dG9tYXRpY0RldGVjdGlvbihmYWxzZSk7XG4gKiAvLyBtYW51YWwgdXNlciBhY3Rpb24gaGFuZGxpbmdcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0QXV0b21hdGljRGV0ZWN0aW9uKGF1dG9tYXRpY0RldGVjdGlvbjogYm9vbGVhbik6IHZvaWQge1xuICAgIGd1YXJkVXNlckFjdGlvbnMoKHVzZXJBY3Rpb25zKSA9PiB7XG4gICAgICAgIHVzZXJBY3Rpb25zLnNldEF1dG9tYXRpY0RldGVjdGlvbihhdXRvbWF0aWNEZXRlY3Rpb24pO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIFNhZmUgd3JhcHBlciBmb3Ige0BsaW5rIGR5bmF0cmFjZS51c2VyQWN0aW9ucy5jdXJyZW50fSB3aGljaCByZXR1cm5zIHVuZGVmaW5lZCBpZiBSVU0gSmF2YVNjcmlwdCBvciB0aGUgdXNlciBhY3Rpb25zIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlLlxuICpcbiAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHVzZXIgYWN0aW9uLCBvciBgdW5kZWZpbmVkYCBpZiBubyB1c2VyIGFjdGlvbiBpcyBpbiBwcm9ncmVzcyBvciB0aGUgdXNlciBhY3Rpb25zIG1vZHVsZSBpcyBub3QgZW5hYmxlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0ICogYXMgdXNlckFjdGlvbnMgZnJvbSBcIkBkeW5hdHJhY2UvcnVtLWphdmFzY3JpcHQtc2RrL2FwaS91c2VyLWFjdGlvbnNcIjtcbiAqIGNvbnN0IGN1cnJlbnRBY3Rpb24gPSB1c2VyQWN0aW9ucy5nZXRDdXJyZW50KCk7XG4gKiBpZiAoY3VycmVudEFjdGlvbikge1xuICogICAgIGN1cnJlbnRBY3Rpb24uYXV0b0Nsb3NlID0gZmFsc2U7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnQoKTogVXNlckFjdGlvblRyYWNrZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBndWFyZFVzZXJBY3Rpb25zKCh1c2VyQWN0aW9ucykgPT4ge1xuICAgICAgICByZXR1cm4gdXNlckFjdGlvbnMuY3VycmVudDtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBTYWZlIHdyYXBwZXIgZm9yIHZhcmlvdXMgdXNlciBhY3Rpb25zIEFQSSBmdW5jdGlvbnMgd2hpY2ggcmV2ZXJ0cyB0byBhIG5vb3AgaWYgUlVNIEphdmFTY3JpcHQgb3IgdGhlIHVzZXIgYWN0aW9ucyBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gZm4gVGhlIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIGlmIHRoZSB1c2VyIGFjdGlvbnMgbW9kdWxlIGlzIGF2YWlsYWJsZS5cbiAqIEByZXR1cm5zICBUaGUgcmVzdWx0IG9mIHRoZSBwcm92aWRlZCBmdW5jdGlvbiBjYWxsIGlmIHRoZSB1c2VyIGFjdGlvbnMgbW9kdWxlIGlzIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIHVuZGVmaW5lZC5cbiAqL1xuZnVuY3Rpb24gZ3VhcmRVc2VyQWN0aW9uczxUIGV4dGVuZHMgKHVzZXJBY3Rpb25zOiBVc2VyQWN0aW9ucykgPT4gYW55PihmbjogVCk6IFJldHVyblR5cGU8VD4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGdsb2JhbER0ID0gZ2V0R2xvYmFsKFwiZHluYXRyYWNlXCIpO1xuICAgIGlmICghaXNWYWxpZEFnZW50KGdsb2JhbER0KSkge1xuICAgICAgICBsb2coXCJkeW5hdHJhY2UgaXMgbm90IGF2YWlsYWJsZVwiKTtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICBpZiAoIWdsb2JhbER0LnVzZXJBY3Rpb25zKSB7XG4gICAgICAgIGxvZyhcImR5bmF0cmFjZS51c2VyQWN0aW9ucyBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZVwiKTtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICByZXR1cm4gZm4oZ2xvYmFsRHQudXNlckFjdGlvbnMpO1xufVxuIl19
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2FwaS91c2VyLWFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5DOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFDLE9BQWdDO0lBQ25ELE9BQU8sZ0JBQWdCLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNwQyxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLFVBQW1EO0lBQ3pFLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNwQyxPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsa0JBQTJCO0lBQzdELGdCQUFnQixDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDN0IsV0FBVyxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDMUQsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSxVQUFVO0lBQ3RCLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNwQyxPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUM7SUFDL0IsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLGdCQUFnQixDQUE4QyxFQUFLO0lBQ3hFLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDMUIsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbEMsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN4QixHQUFHLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUNyRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgICBVc2VyQWN0aW9ucyxcbiAgICBVc2VyQWN0aW9uU3RhcnRPcHRpb25zLFxuICAgIFVzZXJBY3Rpb25UcmFja2VyXG59IGZyb20gXCIuLi90eXBlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgZ2V0R2xvYmFsIH0gZnJvbSBcIi4vZ2xvYmFsLWFkYXB0ZXIuanNcIjtcbmltcG9ydCB7IGlzVmFsaWRBZ2VudCB9IGZyb20gXCIuL3R5cGUtZ3VhcmRzL2lzLXZhbGlkLWFnZW50LmpzXCI7XG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiLi9sb2dnaW5nLmpzXCI7XG5cbi8qKlxuICogU2FmZSB3cmFwcGVyIGZvciB7QGxpbmsgZHluYXRyYWNlLnVzZXJBY3Rpb25zLmNyZWF0ZX0gd2hpY2ggcmV2ZXJ0cyB0byBhIG5vb3AgaWYgUlVNIEphdmFTY3JpcHQgb3IgdGhlIHVzZXIgYWN0aW9ucyBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyBBbiBvcHRpb25hbCBvcHRpb25zIG9iamVjdCB0byBjb25maWd1cmUgdGhlIHVzZXIgYWN0aW9uLlxuICogQHJldHVybnMgICAgICAgQSBgVXNlckFjdGlvblRyYWNrZXJgIG9iamVjdCB0aGF0IGNhbiBiZSBzdGFydGVkIGFuZCBjb21wbGV0ZWQsIG9yIGB1bmRlZmluZWRgIGlmIHRoZSB1c2VyIGFjdGlvbnMgbW9kdWxlIGlzIG5vdCBlbmFibGVkLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgKiBhcyB1c2VyQWN0aW9ucyBmcm9tIFwiQGR5bmF0cmFjZS9ydW0tamF2YXNjcmlwdC1zZGsvYXBpL3VzZXItYWN0aW9uc1wiO1xuICogY29uc3QgdXNlckFjdGlvbiA9IHVzZXJBY3Rpb25zLmNyZWF0ZSh7IGNvbXBsZXRlQXV0b21hdGljYWxseTogZmFsc2UgfSk7XG4gKiAvLyBwZXJmb3JtIHdvcmtcbiAqIHVzZXJBY3Rpb24/LmNvbXBsZXRlKCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShvcHRpb25zPzogVXNlckFjdGlvblN0YXJ0T3B0aW9ucyk6IFVzZXJBY3Rpb25UcmFja2VyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZ3VhcmRVc2VyQWN0aW9ucygodXNlckFjdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIHVzZXJBY3Rpb25zLmNyZWF0ZShvcHRpb25zKTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBTYWZlIHdyYXBwZXIgZm9yIHtAbGluayBkeW5hdHJhY2UudXNlckFjdGlvbnMuc3Vic2NyaWJlfSB3aGljaCByZXZlcnRzIHRvIGEgbm9vcCBpZiBSVU0gSmF2YVNjcmlwdCBvciB0aGUgdXNlciBhY3Rpb25zIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlLlxuICpcbiAqIEBwYXJhbSBzdWJzY3JpYmVyIEEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbmV2ZXIgRHluYXRyYWNlIGNyZWF0ZXMgYSBuZXcgdXNlciBhY3Rpb24uXG4gKiBAcmV0dXJucyAgICAgICAgICBBbiB1bnN1YnNjcmliZXIgZnVuY3Rpb24gdG8gcmVtb3ZlIHRoZSBzdWJzY3JpcHRpb24sIG9yIHVuZGVmaW5lZCBpZiB0aGUgdXNlciBhY3Rpb25zIG1vZHVsZSBpcyBub3QgZW5hYmxlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0ICogYXMgdXNlckFjdGlvbnMgZnJvbSBcIkBkeW5hdHJhY2UvcnVtLWphdmFzY3JpcHQtc2RrL2FwaS91c2VyLWFjdGlvbnNcIjtcbiAqIGNvbnN0IHVuc3Vic2NyaWJlID0gdXNlckFjdGlvbnMuc3Vic2NyaWJlKCh1c2VyQWN0aW9uKSA9PiB7XG4gKiAgICAgY29uc29sZS5sb2coJ05ldyB1c2VyIGFjdGlvbiBjcmVhdGVkJyk7XG4gKiAgICAgdXNlckFjdGlvbi5jb21wbGV0ZUF1dG9tYXRpY2FsbHkgPSBmYWxzZTtcbiAqIH0pO1xuICogLy8gbGF0ZXJcbiAqIHVuc3Vic2NyaWJlPy4oKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3Vic2NyaWJlKHN1YnNjcmliZXI6ICh1c2VyQWN0aW9uOiBVc2VyQWN0aW9uVHJhY2tlcikgPT4gdm9pZCk6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGd1YXJkVXNlckFjdGlvbnMoKHVzZXJBY3Rpb25zKSA9PiB7XG4gICAgICAgIHJldHVybiB1c2VyQWN0aW9ucy5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gICAgfSk7XG59XG5cbi8qKlxuICogU2FmZSB3cmFwcGVyIGZvciB7QGxpbmsgZHluYXRyYWNlLnVzZXJBY3Rpb25zLnNldEF1dG9tYXRpY0RldGVjdGlvbn0gd2hpY2ggcmV2ZXJ0cyB0byBhIG5vb3AgaWYgUlVNIEphdmFTY3JpcHQgb3IgdGhlIHVzZXIgYWN0aW9ucyBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gYXV0b21hdGljRGV0ZWN0aW9uIElmIGZhbHNlLCBkaXNhYmxlcyBhdXRvbWF0aWMgdXNlciBhY3Rpb24gZGV0ZWN0aW9uLCBvdGhlcndpc2UgZW5hYmxlcyBpdC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0ICogYXMgdXNlckFjdGlvbnMgZnJvbSBcIkBkeW5hdHJhY2UvcnVtLWphdmFzY3JpcHQtc2RrL2FwaS91c2VyLWFjdGlvbnNcIjtcbiAqIHVzZXJBY3Rpb25zLnNldEF1dG9tYXRpY0RldGVjdGlvbihmYWxzZSk7XG4gKiAvLyBtYW51YWwgdXNlciBhY3Rpb24gaGFuZGxpbmdcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0QXV0b21hdGljRGV0ZWN0aW9uKGF1dG9tYXRpY0RldGVjdGlvbjogYm9vbGVhbik6IHZvaWQge1xuICAgIGd1YXJkVXNlckFjdGlvbnMoKHVzZXJBY3Rpb25zKSA9PiB7XG4gICAgICAgIHVzZXJBY3Rpb25zLnNldEF1dG9tYXRpY0RldGVjdGlvbihhdXRvbWF0aWNEZXRlY3Rpb24pO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIFNhZmUgd3JhcHBlciBmb3Ige0BsaW5rIGR5bmF0cmFjZS51c2VyQWN0aW9ucy5jdXJyZW50fSB3aGljaCByZXR1cm5zIHVuZGVmaW5lZCBpZiBSVU0gSmF2YVNjcmlwdCBvciB0aGUgdXNlciBhY3Rpb25zIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlLlxuICpcbiAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHVzZXIgYWN0aW9uLCBvciBgdW5kZWZpbmVkYCBpZiBubyB1c2VyIGFjdGlvbiBpcyBpbiBwcm9ncmVzcyBvciB0aGUgdXNlciBhY3Rpb25zIG1vZHVsZSBpcyBub3QgZW5hYmxlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0ICogYXMgdXNlckFjdGlvbnMgZnJvbSBcIkBkeW5hdHJhY2UvcnVtLWphdmFzY3JpcHQtc2RrL2FwaS91c2VyLWFjdGlvbnNcIjtcbiAqIGNvbnN0IGN1cnJlbnRBY3Rpb24gPSB1c2VyQWN0aW9ucy5nZXRDdXJyZW50KCk7XG4gKiBpZiAoY3VycmVudEFjdGlvbikge1xuICogICAgIGN1cnJlbnRBY3Rpb24uY29tcGxldGVBdXRvbWF0aWNhbGx5ID0gZmFsc2U7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnQoKTogVXNlckFjdGlvblRyYWNrZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBndWFyZFVzZXJBY3Rpb25zKCh1c2VyQWN0aW9ucykgPT4ge1xuICAgICAgICByZXR1cm4gdXNlckFjdGlvbnMuY3VycmVudDtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBTYWZlIHdyYXBwZXIgZm9yIHZhcmlvdXMgdXNlciBhY3Rpb25zIEFQSSBmdW5jdGlvbnMgd2hpY2ggcmV2ZXJ0cyB0byBhIG5vb3AgaWYgUlVNIEphdmFTY3JpcHQgb3IgdGhlIHVzZXIgYWN0aW9ucyBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gZm4gVGhlIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIGlmIHRoZSB1c2VyIGFjdGlvbnMgbW9kdWxlIGlzIGF2YWlsYWJsZS5cbiAqIEByZXR1cm5zICBUaGUgcmVzdWx0IG9mIHRoZSBwcm92aWRlZCBmdW5jdGlvbiBjYWxsIGlmIHRoZSB1c2VyIGFjdGlvbnMgbW9kdWxlIGlzIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIHVuZGVmaW5lZC5cbiAqL1xuZnVuY3Rpb24gZ3VhcmRVc2VyQWN0aW9uczxUIGV4dGVuZHMgKHVzZXJBY3Rpb25zOiBVc2VyQWN0aW9ucykgPT4gYW55PihmbjogVCk6IFJldHVyblR5cGU8VD4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGdsb2JhbER0ID0gZ2V0R2xvYmFsKFwiZHluYXRyYWNlXCIpO1xuICAgIGlmICghaXNWYWxpZEFnZW50KGdsb2JhbER0KSkge1xuICAgICAgICBsb2coXCJkeW5hdHJhY2UgaXMgbm90IGF2YWlsYWJsZVwiKTtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICBpZiAoIWdsb2JhbER0LnVzZXJBY3Rpb25zKSB7XG4gICAgICAgIGxvZyhcImR5bmF0cmFjZS51c2VyQWN0aW9ucyBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZVwiKTtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICByZXR1cm4gZm4oZ2xvYmFsRHQudXNlckFjdGlvbnMpO1xufVxuIl19