@dcl/sdk 7.4.19 → 7.4.20-8819404191.commit-d68d7a0

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.
package/observables.js CHANGED
@@ -2,6 +2,8 @@ import { Observable } from './internal/Observable';
2
2
  import { AvatarBase, AvatarEmoteCommand, AvatarEquippedData, PlayerIdentityData, PointerEventsResult, RealmInfo, engine } from '@dcl/ecs';
3
3
  import { subscribe } from '~system/EngineApi';
4
4
  import players from './players';
5
+ // Remove this once new components/observables reaches production.
6
+ const __OBSERVABLES_FALLBACK_SUPPORT = true;
5
7
  /**
6
8
  * @internal
7
9
  * This function generates a callback that is passed to the Observable
@@ -9,7 +11,7 @@ import players from './players';
9
11
  */
10
12
  function createSubscriber(eventName) {
11
13
  return () => {
12
- if (eventName === 'comms' || globalThis.__OBSERVABLES_FALLBACK_SUPPORT) {
14
+ if (eventName === 'comms' || __OBSERVABLES_FALLBACK_SUPPORT) {
13
15
  subscribe({ eventId: eventName }).catch(console.error);
14
16
  }
15
17
  else {
@@ -145,7 +147,7 @@ export async function pollEvents(sendBatch) {
145
147
  }
146
148
  const SDK7ComponentsObservable = processObservables();
147
149
  function processObservables() {
148
- if (globalThis.__OBSERVABLES_FALLBACK_SUPPORT)
150
+ if (__OBSERVABLES_FALLBACK_SUPPORT)
149
151
  return;
150
152
  const subscriptions = new Set();
151
153
  function subscribe(eventName) {
@@ -282,4 +284,4 @@ function processObservables() {
282
284
  engine.addSystem(observableSystem);
283
285
  return { subscribe };
284
286
  }
285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvb2JzZXJ2YWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2xELE9BQU8sRUFDTCxVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUVsQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLFNBQVMsRUFFVCxNQUFNLEVBQ1AsTUFBTSxVQUFVLENBQUE7QUFDakIsT0FBTyxFQUF1QyxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRixPQUFPLE9BQU8sTUFBTSxXQUFXLENBQUE7QUEwRi9COzs7O0dBSUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLFNBQXdCO0lBQ2hELE9BQU8sR0FBRyxFQUFFO1FBQ1YsSUFBSSxTQUFTLEtBQUssT0FBTyxJQUFLLFVBQWtCLENBQUMsOEJBQThCLEVBQUU7WUFDL0UsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUN2RDthQUFNO1lBQ0wsd0JBQXdCLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1NBQy9DO0lBQ0gsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLFVBQVUsQ0FBMEIsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTtBQUMvRzs7OE1BRThNO0FBQzlNLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxzQkFBc0IsQ0FBQTtBQUVsRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxVQUFVLENBQTBCLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7QUFFL0c7OzhNQUU4TTtBQUM5TSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLENBQUE7QUFFbEQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksVUFBVSxDQUF3QixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0FBRTNHOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksVUFBVSxDQUN4RCxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUNyQyxDQUFBO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksVUFBVSxDQUF3QixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0FBRWpHOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksVUFBVSxDQUE0QixnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUE7QUFFN0c7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxVQUFVLENBQ3ZELGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQ3BDLENBQUE7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLFVBQVUsQ0FDMUQsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FDdkMsQ0FBQTtBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksVUFBVSxDQUE0QixnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUE7QUFFckg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxVQUFVLENBQTJCLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUE7QUFFcEg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksVUFBVSxDQUFtQixnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0FBRXpGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVUsQ0FBQyxTQUFpRTtJQUNoRyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNuRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRTtRQUN0QixJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDNUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtnQkFDekIsS0FBSyxjQUFjLENBQUMsQ0FBQztvQkFDbkIsc0JBQXNCLENBQUMsZUFBZSxDQUFDLElBQStCLENBQUMsQ0FBQTtvQkFDdkUsTUFBSztpQkFDTjtnQkFDRCxLQUFLLGNBQWMsQ0FBQyxDQUFDO29CQUNuQixzQkFBc0IsQ0FBQyxlQUFlLENBQUMsSUFBK0IsQ0FBQyxDQUFBO29CQUN2RSxNQUFLO2lCQUNOO2dCQUNELEtBQUssWUFBWSxDQUFDLENBQUM7b0JBQ2pCLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxJQUE2QixDQUFDLENBQUE7b0JBQ3JFLE1BQUs7aUJBQ047Z0JBQ0QsS0FBSyxrQkFBa0IsQ0FBQyxDQUFDO29CQUN2Qiw0QkFBNEIsQ0FBQyxlQUFlLENBQUMsSUFBbUMsQ0FBQyxDQUFBO29CQUNqRixNQUFLO2lCQUNOO2dCQUNELEtBQUssWUFBWSxDQUFDLENBQUM7b0JBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQTZCLENBQUE7b0JBQy9DLFlBQVksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUE7b0JBQ3ZDLE1BQUs7aUJBQ047Z0JBQ0QsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDO29CQUNyQixnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBaUMsQ0FBQyxDQUFBO29CQUNuRSxNQUFLO2lCQUNOO2dCQUNELEtBQUssaUJBQWlCLENBQUMsQ0FBQztvQkFDdEIsMkJBQTJCLENBQUMsZUFBZSxDQUFDLElBQWtDLENBQUMsQ0FBQTtvQkFDL0UsTUFBSztpQkFDTjtnQkFDRCxLQUFLLG9CQUFvQixDQUFDLENBQUM7b0JBQ3pCLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxJQUFxQyxDQUFDLENBQUE7b0JBQ3JGLE1BQUs7aUJBQ047Z0JBQ0QsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDO29CQUNyQix3QkFBd0IsQ0FBQyxlQUFlLENBQUMsSUFBaUMsQ0FBQyxDQUFBO29CQUMzRSxNQUFLO2lCQUNOO2dCQUNELEtBQUssZUFBZSxDQUFDLENBQUM7b0JBQ3BCLHlCQUF5QixDQUFDLGVBQWUsQ0FBQyxJQUFnQyxDQUFDLENBQUE7b0JBQzNFLE1BQUs7aUJBQ047Z0JBQ0QsS0FBSyxPQUFPLENBQUMsQ0FBQztvQkFDWixjQUFjLENBQUMsZUFBZSxDQUFDLElBQXdCLENBQUMsQ0FBQTtvQkFDeEQsTUFBSztpQkFDTjthQUNGO1NBQ0Y7S0FDRjtBQUNILENBQUM7QUFFRCxNQUFNLHdCQUF3QixHQUFHLGtCQUFrQixFQUFFLENBQUE7QUFDckQsU0FBUyxrQkFBa0I7SUFDekIsSUFBSyxVQUFrQixDQUFDLDhCQUE4QjtRQUFFLE9BQU07SUFDOUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWlCLENBQUE7SUFFOUMsU0FBUyxTQUFTLENBQUMsU0FBd0I7UUFDekMsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztZQUFFLE9BQU07UUFDeEMsUUFBUSxTQUFTLEVBQUU7WUFDakIsS0FBSyxlQUFlLENBQUMsQ0FBQztnQkFDcEIsb0JBQW9CLEVBQUUsQ0FBQTthQUN2QjtZQUNELEtBQUssY0FBYyxDQUFDO1lBQ3BCLEtBQUssaUJBQWlCLENBQUMsQ0FBQztnQkFDdEIsbUJBQW1CLEVBQUUsQ0FBQTthQUN0QjtZQUNELEtBQUssY0FBYyxDQUFDO1lBQ3BCLEtBQUssb0JBQW9CLENBQUMsQ0FBQztnQkFDekIsbUJBQW1CLEVBQUUsQ0FBQTthQUN0QjtZQUNELEtBQUssZ0JBQWdCLENBQUMsQ0FBQztnQkFDckIsb0JBQW9CLEVBQUUsQ0FBQTthQUN2QjtZQUNELEtBQUssa0JBQWtCLENBQUMsQ0FBQztnQkFDdkIseUJBQXlCLEVBQUUsQ0FBQTthQUM1QjtZQUNELEtBQUssZ0JBQWdCLENBQUMsQ0FBQztnQkFDckIsc0JBQXNCLEVBQUUsQ0FBQTthQUN6QjtTQUNGO1FBQ0QsYUFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBQ0Q7O09BRUc7SUFDSCxTQUFTLG1CQUFtQjtRQUMxQixPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNyQyxzQkFBc0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7YUFDbEU7WUFFRCxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRTtnQkFDeEMsMkJBQTJCLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO2FBQ3ZFO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0Q7O09BRUc7SUFDSCxTQUFTLG1CQUFtQjtRQUMxQixPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNyQyxzQkFBc0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO2FBQ25EO1lBRUQsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEVBQUU7Z0JBQzNDLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7YUFDM0Q7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRDs7T0FFRztJQUNILFNBQVMsb0JBQW9CO1FBQzNCLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzlDLElBQUksS0FBSyxFQUFFO2dCQUNULHdCQUF3QixDQUFDLGVBQWUsQ0FBQztvQkFDdkMsTUFBTSxFQUFFLEtBQUssQ0FBQyxPQUFPO29CQUNyQixXQUFXLEVBQUUsS0FBSyxDQUFDLFNBQVM7b0JBQzVCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUU7b0JBQ3RCLFVBQVUsRUFBRSxLQUFLLENBQUMsU0FBUztpQkFDNUIsQ0FBQyxDQUFBO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRDs7T0FFRztJQUNILFNBQVMsb0JBQW9CO1FBQzNCLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7UUFDeEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO2dCQUNqRSxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO29CQUFFLE9BQU07Z0JBQ3RDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7Z0JBRTFCLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDNUMsSUFBSSxJQUFJLEVBQUUsR0FBRyxFQUFFO3dCQUNiLHlCQUF5QixDQUFDLGVBQWUsQ0FBQzs0QkFDeEMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLElBQUksRUFBRTs0QkFDM0QsR0FBRyxFQUFFO2dDQUNILFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVU7Z0NBQzlCLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU07Z0NBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQWE7NkJBQy9CO3lCQUNGLENBQUMsQ0FBQTtxQkFDSDtnQkFDSCxDQUFDLENBQUMsQ0FBQTthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLHlCQUF5QjtRQUNoQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3pELDRCQUE0QixDQUFDLGVBQWUsQ0FBQyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDdkYsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLHNCQUFzQjtRQUM3QixVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO1lBQzVDLElBQUksQ0FBQyxjQUFjO2dCQUFFLE9BQU07WUFDM0IsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUM5RSxDQUFDLENBQUMsQ0FBQTtRQUVGLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsY0FBYztnQkFBRSxPQUFNO1lBQzNCLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDOUUsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQTtJQUN0QixJQUFJLGNBQWtDLENBQUE7SUFFdEMsU0FBUyxnQkFBZ0I7UUFDdkIsSUFBSSxVQUFVLElBQUksY0FBYyxFQUFFO1lBQ2hDLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1NBQzdDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLFVBQVUsR0FBRyxJQUFJLENBQUE7WUFDakIsc0JBQXNCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1NBQzNDO1FBQ0QsSUFBSSxjQUFjO1lBQUUsT0FBTTtRQUMxQixjQUFjLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUE7SUFDN0UsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUVsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUE7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuL2ludGVybmFsL09ic2VydmFibGUnXG5pbXBvcnQge1xuICBBdmF0YXJCYXNlLFxuICBBdmF0YXJFbW90ZUNvbW1hbmQsXG4gIEF2YXRhckVxdWlwcGVkRGF0YSxcbiAgRW50aXR5LFxuICBQbGF5ZXJJZGVudGl0eURhdGEsXG4gIFBvaW50ZXJFdmVudHNSZXN1bHQsXG4gIFJlYWxtSW5mbyxcbiAgVmVjdG9yM1R5cGUsXG4gIGVuZ2luZVxufSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IE1hbnlFbnRpdHlBY3Rpb24sIFNlbmRCYXRjaFJlc3BvbnNlLCBzdWJzY3JpYmUgfSBmcm9tICd+c3lzdGVtL0VuZ2luZUFwaSdcbmltcG9ydCBwbGF5ZXJzIGZyb20gJy4vcGxheWVycydcblxuLy8vIC0tLSBFVkVOVFMgLS0tXG5cbi8qKiBAcHVibGljICovXG5leHBvcnQgdHlwZSBJRXZlbnROYW1lcyA9IGtleW9mIElFdmVudHNcblxuLyoqXG4gKiBAcHVibGljXG4gKiBOb3RlOiBEb24ndCB1c2UgYG9uYCBwcmVmaXggZm9yIElFdmVudHMgdG8gYXZvaWQgcmVkdW5kYW5jeSB3aXRoIGBldmVudC5vbihcIm9uRXZlbnROYW1lXCIpYCBzeW50YXguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV2ZW50cyB7XG4gIHBsYXllckV4cHJlc3Npb246IHtcbiAgICBleHByZXNzaW9uSWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZ2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBlbnRlcnMgdGhlIHNjZW5lXG4gICAqL1xuICBvbkVudGVyU2NlbmU6IHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZ2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBsZWF2ZXMgdGhlIHNjZW5lXG4gICAqL1xuICBvbkxlYXZlU2NlbmU6IHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZ2V0cyB0cmlnZ2VyZWQgYWZ0ZXIgcmVjZWl2aW5nIGEgY29tbXMgbWVzc2FnZS5cbiAgICovXG4gIGNvbW1zOiB7XG4gICAgc2VuZGVyOiBzdHJpbmdcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIHRyaWdnZXJlZCBvbmNlIHRoZSBzY2VuZSBzaG91bGQgc3RhcnQuXG4gICAqL1xuICBzY2VuZVN0YXJ0OiB1bmtub3duXG5cbiAgLyoqIFRoaXMgaXMgdHJpZ2dlcmVkIGF0IGxlYXN0IGZvciBlYWNoIHZpZGVvU3RhdHVzIGNoYW5nZSAqL1xuICB2aWRlb0V2ZW50OiB7XG4gICAgY29tcG9uZW50SWQ6IHN0cmluZ1xuICAgIHZpZGVvQ2xpcElkOiBzdHJpbmdcbiAgICAvKiogU3RhdHVzLCBjYW4gYmUgTk9ORSA9IDAsIEVSUk9SID0gMSwgTE9BRElORyA9IDIsIFJFQURZID0gMywgUExBWUlORyA9IDQsQlVGRkVSSU5HID0gNSAqL1xuICAgIHZpZGVvU3RhdHVzOiBudW1iZXJcbiAgICAvKiogQ3VycmVudCBvZmZzZXQgcG9zaXRpb24gaW4gc2Vjb25kcyAqL1xuICAgIGN1cnJlbnRPZmZzZXQ6IG51bWJlclxuICAgIC8qKiBWaWRlbyBsZW5ndGggaW4gc2Vjb25kcy4gQ2FuIGJlIC0xICovXG4gICAgdG90YWxWaWRlb0xlbmd0aDogbnVtYmVyXG4gIH1cblxuICAvKiogVGhpcyBpcyB0cmlnZ2VyIGV2ZXJ5dGltZSBhIHByb2ZpbGUgaXMgY2hhbmdlZCAqL1xuICBwcm9maWxlQ2hhbmdlZDoge1xuICAgIGV0aEFkZHJlc3M6IHN0cmluZ1xuICAgIHZlcnNpb246IG51bWJlclxuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBlZXIncyBhdmF0YXIgaXMgY29ubmVjdGVkIGFuZCB2aXNpYmxlICovXG4gIHBsYXllckNvbm5lY3RlZDoge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gIH1cblxuICAvKiogVHJpZ2dlcmVkIHdoZW4gcGVlciBkaXNjb25uZWN0IGFuZC9vciBpdCBhdmF0YXIgaXMgc2V0IGludmlzaWJsZSBieSBjb21tcyAqL1xuICBwbGF5ZXJEaXNjb25uZWN0ZWQ6IHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIGN1cnJlbnQgcmVhbG0gb3IgaXNsYW5kIGNoYW5nZXMgKi9cbiAgb25SZWFsbUNoYW5nZWQ6IHtcbiAgICBkb21haW46IHN0cmluZ1xuICAgIHJvb206IHN0cmluZ1xuICAgIHNlcnZlck5hbWU6IHN0cmluZ1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmdcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbiBvdGhlciBwbGF5ZXIncyBhdmF0YXIgaXMgY2xpY2tlZCAqL1xuICBwbGF5ZXJDbGlja2VkOiB7XG4gICAgdXNlcklkOiBzdHJpbmdcbiAgICByYXk6IHtcbiAgICAgIG9yaWdpbjogVmVjdG9yM1R5cGVcbiAgICAgIGRpcmVjdGlvbjogVmVjdG9yM1R5cGVcbiAgICAgIGRpc3RhbmNlOiBudW1iZXJcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGEgY2FsbGJhY2sgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIE9ic2VydmFibGVcbiAqIGNvbnN0cnVjdG9yIHRvIHN1YnNjcmliZSB0byB0aGUgZXZlbnRzIG9mIHRoZSBEZWNlbnRyYWxhbmRJbnRlcmZhY2VcbiAqL1xuZnVuY3Rpb24gY3JlYXRlU3Vic2NyaWJlcihldmVudE5hbWU6IGtleW9mIElFdmVudHMpIHtcbiAgcmV0dXJuICgpID0+IHtcbiAgICBpZiAoZXZlbnROYW1lID09PSAnY29tbXMnIHx8IChnbG9iYWxUaGlzIGFzIGFueSkuX19PQlNFUlZBQkxFU19GQUxMQkFDS19TVVBQT1JUKSB7XG4gICAgICBzdWJzY3JpYmUoeyBldmVudElkOiBldmVudE5hbWUgfSkuY2F0Y2goY29uc29sZS5lcnJvcilcbiAgICB9IGVsc2Uge1xuICAgICAgU0RLN0NvbXBvbmVudHNPYnNlcnZhYmxlPy5zdWJzY3JpYmUoZXZlbnROYW1lKVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoZXNlIGV2ZW50cyBhcmUgdHJpZ2dlcmVkIGFmdGVyIHlvdXIgY2hhcmFjdGVyIGVudGVycyB0aGUgc2NlbmUuXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25FbnRlclNjZW5lT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ29uRW50ZXJTY2VuZSddPihjcmVhdGVTdWJzY3JpYmVyKCdvbkVudGVyU2NlbmUnKSlcbi8qKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC4gVXNlIG9uRW50ZXJTY2VuZU9ic2VydmFibGUgaW5zdGVhZC4gKi9cbmV4cG9ydCBjb25zdCBvbkVudGVyU2NlbmUgPSBvbkVudGVyU2NlbmVPYnNlcnZhYmxlXG5cbi8qKlxuICogVGhlc2UgZXZlbnRzIGFyZSB0cmlnZ2VyZWQgYWZ0ZXIgeW91ciBjaGFyYWN0ZXIgbGVhdmVzIHRoZSBzY2VuZS5cbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvbkxlYXZlU2NlbmVPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1snb25MZWF2ZVNjZW5lJ10+KGNyZWF0ZVN1YnNjcmliZXIoJ29uTGVhdmVTY2VuZScpKVxuXG4vKiogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuIFVzZSBvbkxlYXZlU2NlbmVPYnNlcnZhYmxlIGluc3RlYWQuICovXG5leHBvcnQgY29uc3Qgb25MZWF2ZVNjZW5lID0gb25MZWF2ZVNjZW5lT2JzZXJ2YWJsZVxuXG4vKipcbiAqIFRoaXMgZXZlbnQgaXMgdHJpZ2dlcmVkIGFmdGVyIGFsbCB0aGUgcmVzb3VyY2VzIG9mIHRoZSBzY2VuZSB3ZXJlIGxvYWRlZCAobW9kZWxzLCB0ZXh0dXJlcywgZXRjLi4uKVxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uU2NlbmVSZWFkeU9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydzY2VuZVN0YXJ0J10+KGNyZWF0ZVN1YnNjcmliZXIoJ3NjZW5lU3RhcnQnKSlcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25QbGF5ZXJFeHByZXNzaW9uT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3BsYXllckV4cHJlc3Npb24nXT4oXG4gIGNyZWF0ZVN1YnNjcmliZXIoJ3BsYXllckV4cHJlc3Npb24nKVxuKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblZpZGVvRXZlbnQgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWyd2aWRlb0V2ZW50J10+KGNyZWF0ZVN1YnNjcmliZXIoJ3ZpZGVvRXZlbnQnKSlcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25Qcm9maWxlQ2hhbmdlZCA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3Byb2ZpbGVDaGFuZ2VkJ10+KGNyZWF0ZVN1YnNjcmliZXIoJ3Byb2ZpbGVDaGFuZ2VkJykpXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uUGxheWVyQ29ubmVjdGVkT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3BsYXllckNvbm5lY3RlZCddPihcbiAgY3JlYXRlU3Vic2NyaWJlcigncGxheWVyQ29ubmVjdGVkJylcbilcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25QbGF5ZXJEaXNjb25uZWN0ZWRPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sncGxheWVyRGlzY29ubmVjdGVkJ10+KFxuICBjcmVhdGVTdWJzY3JpYmVyKCdwbGF5ZXJEaXNjb25uZWN0ZWQnKVxuKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblJlYWxtQ2hhbmdlZE9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydvblJlYWxtQ2hhbmdlZCddPihjcmVhdGVTdWJzY3JpYmVyKCdvblJlYWxtQ2hhbmdlZCcpKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblBsYXllckNsaWNrZWRPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sncGxheWVyQ2xpY2tlZCddPihjcmVhdGVTdWJzY3JpYmVyKCdwbGF5ZXJDbGlja2VkJykpXG5cbi8qKlxuICogQGludGVybmFsXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25Db21tc01lc3NhZ2UgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydjb21tcyddPihjcmVhdGVTdWJzY3JpYmVyKCdjb21tcycpKVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQGRlcHJlY2F0ZWQgdGhpcyBpcyBhbiBPTEQgQVBJLlxuICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBTREs2IHNlbmRCYXRjaCB0byBwb2xsIGV2ZW50cyBmcm9tIHRoZSByZW5kZXJlclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcG9sbEV2ZW50cyhzZW5kQmF0Y2g6IChib2R5OiBNYW55RW50aXR5QWN0aW9uKSA9PiBQcm9taXNlPFNlbmRCYXRjaFJlc3BvbnNlPikge1xuICBjb25zdCB7IGV2ZW50cyB9ID0gYXdhaXQgc2VuZEJhdGNoKHsgYWN0aW9uczogW10gfSlcbiAgZm9yIChjb25zdCBlIG9mIGV2ZW50cykge1xuICAgIGlmIChlLmdlbmVyaWMpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGUuZ2VuZXJpYy5ldmVudERhdGEpXG4gICAgICBzd2l0Y2ggKGUuZ2VuZXJpYy5ldmVudElkKSB7XG4gICAgICAgIGNhc2UgJ29uRW50ZXJTY2VuZSc6IHtcbiAgICAgICAgICBvbkVudGVyU2NlbmVPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ29uRW50ZXJTY2VuZSddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnb25MZWF2ZVNjZW5lJzoge1xuICAgICAgICAgIG9uTGVhdmVTY2VuZU9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1snb25MZWF2ZVNjZW5lJ10pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdzY2VuZVN0YXJ0Jzoge1xuICAgICAgICAgIG9uU2NlbmVSZWFkeU9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1snc2NlbmVTdGFydCddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAncGxheWVyRXhwcmVzc2lvbic6IHtcbiAgICAgICAgICBvblBsYXllckV4cHJlc3Npb25PYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ3BsYXllckV4cHJlc3Npb24nXSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3ZpZGVvRXZlbnQnOiB7XG4gICAgICAgICAgY29uc3QgdmlkZW9EYXRhID0gZGF0YSBhcyBJRXZlbnRzWyd2aWRlb0V2ZW50J11cbiAgICAgICAgICBvblZpZGVvRXZlbnQubm90aWZ5T2JzZXJ2ZXJzKHZpZGVvRGF0YSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3Byb2ZpbGVDaGFuZ2VkJzoge1xuICAgICAgICAgIG9uUHJvZmlsZUNoYW5nZWQubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1sncHJvZmlsZUNoYW5nZWQnXSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3BsYXllckNvbm5lY3RlZCc6IHtcbiAgICAgICAgICBvblBsYXllckNvbm5lY3RlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1sncGxheWVyQ29ubmVjdGVkJ10pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdwbGF5ZXJEaXNjb25uZWN0ZWQnOiB7XG4gICAgICAgICAgb25QbGF5ZXJEaXNjb25uZWN0ZWRPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ3BsYXllckRpc2Nvbm5lY3RlZCddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnb25SZWFsbUNoYW5nZWQnOiB7XG4gICAgICAgICAgb25SZWFsbUNoYW5nZWRPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ29uUmVhbG1DaGFuZ2VkJ10pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdwbGF5ZXJDbGlja2VkJzoge1xuICAgICAgICAgIG9uUGxheWVyQ2xpY2tlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1sncGxheWVyQ2xpY2tlZCddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnY29tbXMnOiB7XG4gICAgICAgICAgb25Db21tc01lc3NhZ2Uubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1snY29tbXMnXSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IFNESzdDb21wb25lbnRzT2JzZXJ2YWJsZSA9IHByb2Nlc3NPYnNlcnZhYmxlcygpXG5mdW5jdGlvbiBwcm9jZXNzT2JzZXJ2YWJsZXMoKSB7XG4gIGlmICgoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fT0JTRVJWQUJMRVNfRkFMTEJBQ0tfU1VQUE9SVCkgcmV0dXJuXG4gIGNvbnN0IHN1YnNjcmlwdGlvbnMgPSBuZXcgU2V0PGtleW9mIElFdmVudHM+KClcblxuICBmdW5jdGlvbiBzdWJzY3JpYmUoZXZlbnROYW1lOiBrZXlvZiBJRXZlbnRzKSB7XG4gICAgaWYgKHN1YnNjcmlwdGlvbnMuaGFzKGV2ZW50TmFtZSkpIHJldHVyblxuICAgIHN3aXRjaCAoZXZlbnROYW1lKSB7XG4gICAgICBjYXNlICdwbGF5ZXJDbGlja2VkJzoge1xuICAgICAgICBzdWJzY3JpYmVQbGF5ZXJDbGljaygpXG4gICAgICB9XG4gICAgICBjYXNlICdvbkVudGVyU2NlbmUnOlxuICAgICAgY2FzZSAncGxheWVyQ29ubmVjdGVkJzoge1xuICAgICAgICBzdWJzY3JpYmVFbnRlclNjZW5lKClcbiAgICAgIH1cbiAgICAgIGNhc2UgJ29uTGVhdmVTY2VuZSc6XG4gICAgICBjYXNlICdwbGF5ZXJEaXNjb25uZWN0ZWQnOiB7XG4gICAgICAgIHN1YnNjcmliZUxlYXZlU2NlbmUoKVxuICAgICAgfVxuICAgICAgY2FzZSAnb25SZWFsbUNoYW5nZWQnOiB7XG4gICAgICAgIHN1YnNjcmliZVJlYWxtQ2hhbmdlKClcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3BsYXllckV4cHJlc3Npb24nOiB7XG4gICAgICAgIHN1YnNjcmliZVBsYXllckV4cHJlc3Npb24oKVxuICAgICAgfVxuICAgICAgY2FzZSAncHJvZmlsZUNoYW5nZWQnOiB7XG4gICAgICAgIHN1YnNjcmliZVByb2ZpbGVDaGFuZ2UoKVxuICAgICAgfVxuICAgIH1cbiAgICBzdWJzY3JpcHRpb25zLmFkZChldmVudE5hbWUpXG4gIH1cbiAgLyoqXG4gICAqIFBMQVlFUiBFTlRFUi9DT05ORUNURUQgb2JzZXJ2YWJsZVxuICAgKi9cbiAgZnVuY3Rpb24gc3Vic2NyaWJlRW50ZXJTY2VuZSgpIHtcbiAgICBwbGF5ZXJzLm9uRW50ZXJTY2VuZSgocGxheWVyKSA9PiB7XG4gICAgICBpZiAoc3Vic2NyaXB0aW9ucy5oYXMoJ29uRW50ZXJTY2VuZScpKSB7XG4gICAgICAgIG9uRW50ZXJTY2VuZU9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKHsgdXNlcklkOiBwbGF5ZXIudXNlcklkIH0pXG4gICAgICB9XG5cbiAgICAgIGlmIChzdWJzY3JpcHRpb25zLmhhcygncGxheWVyQ29ubmVjdGVkJykpIHtcbiAgICAgICAgb25QbGF5ZXJDb25uZWN0ZWRPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyh7IHVzZXJJZDogcGxheWVyLnVzZXJJZCB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgLyoqXG4gICAqIFBMQVlFUiBMRUFWRS9ESVNDT05ORUNURUQgb2JzZXJ2YWJsZVxuICAgKi9cbiAgZnVuY3Rpb24gc3Vic2NyaWJlTGVhdmVTY2VuZSgpIHtcbiAgICBwbGF5ZXJzLm9uTGVhdmVTY2VuZSgodXNlcklkKSA9PiB7XG4gICAgICBpZiAoc3Vic2NyaXB0aW9ucy5oYXMoJ29uTGVhdmVTY2VuZScpKSB7XG4gICAgICAgIG9uTGVhdmVTY2VuZU9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKHsgdXNlcklkIH0pXG4gICAgICB9XG5cbiAgICAgIGlmIChzdWJzY3JpcHRpb25zLmhhcygncGxheWVyRGlzY29ubmVjdGVkJykpIHtcbiAgICAgICAgb25QbGF5ZXJEaXNjb25uZWN0ZWRPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyh7IHVzZXJJZCB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgLyoqXG4gICAqIFJFQUxNIENIQU5HRSBvYnNlcnZhYmxlXG4gICAqL1xuICBmdW5jdGlvbiBzdWJzY3JpYmVSZWFsbUNoYW5nZSgpIHtcbiAgICBSZWFsbUluZm8ub25DaGFuZ2UoZW5naW5lLlJvb3RFbnRpdHksICh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIG9uUmVhbG1DaGFuZ2VkT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoe1xuICAgICAgICAgIGRvbWFpbjogdmFsdWUuYmFzZVVybCxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogdmFsdWUucmVhbG1OYW1lLFxuICAgICAgICAgIHJvb206IHZhbHVlLnJvb20gPz8gJycsXG4gICAgICAgICAgc2VydmVyTmFtZTogdmFsdWUucmVhbG1OYW1lXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuICAvKipcbiAgICogUExBWUVSL0FWQVRBUiBDTElDS0VEIG9ic2VydmFibGVcbiAgICovXG4gIGZ1bmN0aW9uIHN1YnNjcmliZVBsYXllckNsaWNrKCkge1xuICAgIGNvbnN0IHBsYXllckVudGl0aWVzID0gbmV3IFNldDxFbnRpdHk+KClcbiAgICBlbmdpbmUuYWRkU3lzdGVtKCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgW2VudGl0eV0gb2YgZW5naW5lLmdldEVudGl0aWVzV2l0aChQbGF5ZXJJZGVudGl0eURhdGEpKSB7XG4gICAgICAgIGlmIChwbGF5ZXJFbnRpdGllcy5oYXMoZW50aXR5KSkgcmV0dXJuXG4gICAgICAgIHBsYXllckVudGl0aWVzLmFkZChlbnRpdHkpXG5cbiAgICAgICAgUG9pbnRlckV2ZW50c1Jlc3VsdC5vbkNoYW5nZShlbnRpdHksIChkYXRhKSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGE/LmhpdCkge1xuICAgICAgICAgICAgb25QbGF5ZXJDbGlja2VkT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoe1xuICAgICAgICAgICAgICB1c2VySWQ6IFBsYXllcklkZW50aXR5RGF0YS5nZXRPck51bGwoZW50aXR5KT8uYWRkcmVzcyA/PyAnJyxcbiAgICAgICAgICAgICAgcmF5OiB7XG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBkYXRhLmhpdC5kaXJlY3Rpb24hLFxuICAgICAgICAgICAgICAgIGRpc3RhbmNlOiBkYXRhLmhpdC5sZW5ndGgsXG4gICAgICAgICAgICAgICAgb3JpZ2luOiBkYXRhLmhpdC5nbG9iYWxPcmlnaW4hXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUGxheWVyIGV4cHJlc3Npb24gb2JzZXJ2YWJsZVxuICAgKi9cbiAgZnVuY3Rpb24gc3Vic2NyaWJlUGxheWVyRXhwcmVzc2lvbigpIHtcbiAgICBBdmF0YXJFbW90ZUNvbW1hbmQub25DaGFuZ2UoZW5naW5lLlBsYXllckVudGl0eSwgKHZhbHVlKSA9PiB7XG4gICAgICBvblBsYXllckV4cHJlc3Npb25PYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyh7IGV4cHJlc3Npb25JZDogdmFsdWU/LmVtb3RlVXJuID8/ICcnIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBQUk9GSUxFIENIQU5HRSBvYnNlcnZhYmxlXG4gICAqL1xuICBmdW5jdGlvbiBzdWJzY3JpYmVQcm9maWxlQ2hhbmdlKCkge1xuICAgIEF2YXRhckJhc2Uub25DaGFuZ2UoZW5naW5lLlBsYXllckVudGl0eSwgKCkgPT4ge1xuICAgICAgaWYgKCFwcm9maWxlQWRkcmVzcykgcmV0dXJuXG4gICAgICBvblByb2ZpbGVDaGFuZ2VkLm5vdGlmeU9ic2VydmVycyh7IGV0aEFkZHJlc3M6IHByb2ZpbGVBZGRyZXNzLCB2ZXJzaW9uOiAwIH0pXG4gICAgfSlcblxuICAgIEF2YXRhckVxdWlwcGVkRGF0YS5vbkNoYW5nZShlbmdpbmUuUGxheWVyRW50aXR5LCAoKSA9PiB7XG4gICAgICBpZiAoIXByb2ZpbGVBZGRyZXNzKSByZXR1cm5cbiAgICAgIG9uUHJvZmlsZUNoYW5nZWQubm90aWZ5T2JzZXJ2ZXJzKHsgZXRoQWRkcmVzczogcHJvZmlsZUFkZHJlc3MsIHZlcnNpb246IDAgfSlcbiAgICB9KVxuICB9XG5cbiAgLy8gRmxhZyB0byBjYWxsIG9uY2UgdGhlIHNjZW5lIGlzIGluaXRhbGl6ZWQuXG4gIGxldCBzY2VuZVJlYWR5ID0gZmFsc2VcbiAgbGV0IHByb2ZpbGVBZGRyZXNzOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBmdW5jdGlvbiBvYnNlcnZhYmxlU3lzdGVtKCkge1xuICAgIGlmIChzY2VuZVJlYWR5ICYmIHByb2ZpbGVBZGRyZXNzKSB7XG4gICAgICByZXR1cm4gZW5naW5lLnJlbW92ZVN5c3RlbShvYnNlcnZhYmxlU3lzdGVtKVxuICAgIH1cbiAgICBpZiAoIXNjZW5lUmVhZHkpIHtcbiAgICAgIHNjZW5lUmVhZHkgPSB0cnVlXG4gICAgICBvblNjZW5lUmVhZHlPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyh7fSlcbiAgICB9XG4gICAgaWYgKHByb2ZpbGVBZGRyZXNzKSByZXR1cm5cbiAgICBwcm9maWxlQWRkcmVzcyA9IFBsYXllcklkZW50aXR5RGF0YS5nZXRPck51bGwoZW5naW5lLlBsYXllckVudGl0eSk/LmFkZHJlc3NcbiAgfVxuXG4gIGVuZ2luZS5hZGRTeXN0ZW0ob2JzZXJ2YWJsZVN5c3RlbSlcblxuICByZXR1cm4geyBzdWJzY3JpYmUgfVxufVxuIl19
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvb2JzZXJ2YWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2xELE9BQU8sRUFDTCxVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUVsQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLFNBQVMsRUFFVCxNQUFNLEVBQ1AsTUFBTSxVQUFVLENBQUE7QUFDakIsT0FBTyxFQUF1QyxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRixPQUFPLE9BQU8sTUFBTSxXQUFXLENBQUE7QUEwRi9CLGtFQUFrRTtBQUNsRSxNQUFNLDhCQUE4QixHQUFHLElBQUksQ0FBQTtBQUMzQzs7OztHQUlHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxTQUF3QjtJQUNoRCxPQUFPLEdBQUcsRUFBRTtRQUNWLElBQUksU0FBUyxLQUFLLE9BQU8sSUFBSSw4QkFBOEIsRUFBRTtZQUMzRCxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQ3ZEO2FBQU07WUFDTCx3QkFBd0IsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUE7U0FDL0M7SUFDSCxDQUFDLENBQUE7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksVUFBVSxDQUEwQixnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO0FBQy9HOzs4TUFFOE07QUFDOU0sTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLHNCQUFzQixDQUFBO0FBRWxEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLFVBQVUsQ0FBMEIsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMs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Q0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1NBQzdDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLFVBQVUsR0FBRyxJQUFJLENBQUE7WUFDakIsc0JBQXNCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1NBQzNDO1FBQ0QsSUFBSSxjQUFjO1lBQUUsT0FBTTtRQUMxQixjQUFjLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUE7SUFDN0UsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUVsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUE7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuL2ludGVybmFsL09ic2VydmFibGUnXG5pbXBvcnQge1xuICBBdmF0YXJCYXNlLFxuICBBdmF0YXJFbW90ZUNvbW1hbmQsXG4gIEF2YXRhckVxdWlwcGVkRGF0YSxcbiAgRW50aXR5LFxuICBQbGF5ZXJJZGVudGl0eURhdGEsXG4gIFBvaW50ZXJFdmVudHNSZXN1bHQsXG4gIFJlYWxtSW5mbyxcbiAgVmVjdG9yM1R5cGUsXG4gIGVuZ2luZVxufSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IE1hbnlFbnRpdHlBY3Rpb24sIFNlbmRCYXRjaFJlc3BvbnNlLCBzdWJzY3JpYmUgfSBmcm9tICd+c3lzdGVtL0VuZ2luZUFwaSdcbmltcG9ydCBwbGF5ZXJzIGZyb20gJy4vcGxheWVycydcblxuLy8vIC0tLSBFVkVOVFMgLS0tXG5cbi8qKiBAcHVibGljICovXG5leHBvcnQgdHlwZSBJRXZlbnROYW1lcyA9IGtleW9mIElFdmVudHNcblxuLyoqXG4gKiBAcHVibGljXG4gKiBOb3RlOiBEb24ndCB1c2UgYG9uYCBwcmVmaXggZm9yIElFdmVudHMgdG8gYXZvaWQgcmVkdW5kYW5jeSB3aXRoIGBldmVudC5vbihcIm9uRXZlbnROYW1lXCIpYCBzeW50YXguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV2ZW50cyB7XG4gIHBsYXllckV4cHJlc3Npb246IHtcbiAgICBleHByZXNzaW9uSWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZ2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBlbnRlcnMgdGhlIHNjZW5lXG4gICAqL1xuICBvbkVudGVyU2NlbmU6IHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZ2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBsZWF2ZXMgdGhlIHNjZW5lXG4gICAqL1xuICBvbkxlYXZlU2NlbmU6IHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZ2V0cyB0cmlnZ2VyZWQgYWZ0ZXIgcmVjZWl2aW5nIGEgY29tbXMgbWVzc2FnZS5cbiAgICovXG4gIGNvbW1zOiB7XG4gICAgc2VuZGVyOiBzdHJpbmdcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIHRyaWdnZXJlZCBvbmNlIHRoZSBzY2VuZSBzaG91bGQgc3RhcnQuXG4gICAqL1xuICBzY2VuZVN0YXJ0OiB1bmtub3duXG5cbiAgLyoqIFRoaXMgaXMgdHJpZ2dlcmVkIGF0IGxlYXN0IGZvciBlYWNoIHZpZGVvU3RhdHVzIGNoYW5nZSAqL1xuICB2aWRlb0V2ZW50OiB7XG4gICAgY29tcG9uZW50SWQ6IHN0cmluZ1xuICAgIHZpZGVvQ2xpcElkOiBzdHJpbmdcbiAgICAvKiogU3RhdHVzLCBjYW4gYmUgTk9ORSA9IDAsIEVSUk9SID0gMSwgTE9BRElORyA9IDIsIFJFQURZID0gMywgUExBWUlORyA9IDQsQlVGRkVSSU5HID0gNSAqL1xuICAgIHZpZGVvU3RhdHVzOiBudW1iZXJcbiAgICAvKiogQ3VycmVudCBvZmZzZXQgcG9zaXRpb24gaW4gc2Vjb25kcyAqL1xuICAgIGN1cnJlbnRPZmZzZXQ6IG51bWJlclxuICAgIC8qKiBWaWRlbyBsZW5ndGggaW4gc2Vjb25kcy4gQ2FuIGJlIC0xICovXG4gICAgdG90YWxWaWRlb0xlbmd0aDogbnVtYmVyXG4gIH1cblxuICAvKiogVGhpcyBpcyB0cmlnZ2VyIGV2ZXJ5dGltZSBhIHByb2ZpbGUgaXMgY2hhbmdlZCAqL1xuICBwcm9maWxlQ2hhbmdlZDoge1xuICAgIGV0aEFkZHJlc3M6IHN0cmluZ1xuICAgIHZlcnNpb246IG51bWJlclxuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBlZXIncyBhdmF0YXIgaXMgY29ubmVjdGVkIGFuZCB2aXNpYmxlICovXG4gIHBsYXllckNvbm5lY3RlZDoge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gIH1cblxuICAvKiogVHJpZ2dlcmVkIHdoZW4gcGVlciBkaXNjb25uZWN0IGFuZC9vciBpdCBhdmF0YXIgaXMgc2V0IGludmlzaWJsZSBieSBjb21tcyAqL1xuICBwbGF5ZXJEaXNjb25uZWN0ZWQ6IHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIGN1cnJlbnQgcmVhbG0gb3IgaXNsYW5kIGNoYW5nZXMgKi9cbiAgb25SZWFsbUNoYW5nZWQ6IHtcbiAgICBkb21haW46IHN0cmluZ1xuICAgIHJvb206IHN0cmluZ1xuICAgIHNlcnZlck5hbWU6IHN0cmluZ1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmdcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbiBvdGhlciBwbGF5ZXIncyBhdmF0YXIgaXMgY2xpY2tlZCAqL1xuICBwbGF5ZXJDbGlja2VkOiB7XG4gICAgdXNlcklkOiBzdHJpbmdcbiAgICByYXk6IHtcbiAgICAgIG9yaWdpbjogVmVjdG9yM1R5cGVcbiAgICAgIGRpcmVjdGlvbjogVmVjdG9yM1R5cGVcbiAgICAgIGRpc3RhbmNlOiBudW1iZXJcbiAgICB9XG4gIH1cbn1cblxuLy8gUmVtb3ZlIHRoaXMgb25jZSBuZXcgY29tcG9uZW50cy9vYnNlcnZhYmxlcyByZWFjaGVzIHByb2R1Y3Rpb24uXG5jb25zdCBfX09CU0VSVkFCTEVTX0ZBTExCQUNLX1NVUFBPUlQgPSB0cnVlXG4vKipcbiAqIEBpbnRlcm5hbFxuICogVGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSBjYWxsYmFjayB0aGF0IGlzIHBhc3NlZCB0byB0aGUgT2JzZXJ2YWJsZVxuICogY29uc3RydWN0b3IgdG8gc3Vic2NyaWJlIHRvIHRoZSBldmVudHMgb2YgdGhlIERlY2VudHJhbGFuZEludGVyZmFjZVxuICovXG5mdW5jdGlvbiBjcmVhdGVTdWJzY3JpYmVyKGV2ZW50TmFtZToga2V5b2YgSUV2ZW50cykge1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGlmIChldmVudE5hbWUgPT09ICdjb21tcycgfHwgX19PQlNFUlZBQkxFU19GQUxMQkFDS19TVVBQT1JUKSB7XG4gICAgICBzdWJzY3JpYmUoeyBldmVudElkOiBldmVudE5hbWUgfSkuY2F0Y2goY29uc29sZS5lcnJvcilcbiAgICB9IGVsc2Uge1xuICAgICAgU0RLN0NvbXBvbmVudHNPYnNlcnZhYmxlPy5zdWJzY3JpYmUoZXZlbnROYW1lKVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoZXNlIGV2ZW50cyBhcmUgdHJpZ2dlcmVkIGFmdGVyIHlvdXIgY2hhcmFjdGVyIGVudGVycyB0aGUgc2NlbmUuXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25FbnRlclNjZW5lT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ29uRW50ZXJTY2VuZSddPihjcmVhdGVTdWJzY3JpYmVyKCdvbkVudGVyU2NlbmUnKSlcbi8qKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC4gVXNlIG9uRW50ZXJTY2VuZU9ic2VydmFibGUgaW5zdGVhZC4gKi9cbmV4cG9ydCBjb25zdCBvbkVudGVyU2NlbmUgPSBvbkVudGVyU2NlbmVPYnNlcnZhYmxlXG5cbi8qKlxuICogVGhlc2UgZXZlbnRzIGFyZSB0cmlnZ2VyZWQgYWZ0ZXIgeW91ciBjaGFyYWN0ZXIgbGVhdmVzIHRoZSBzY2VuZS5cbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvbkxlYXZlU2NlbmVPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1snb25MZWF2ZVNjZW5lJ10+KGNyZWF0ZVN1YnNjcmliZXIoJ29uTGVhdmVTY2VuZScpKVxuXG4vKiogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuIFVzZSBvbkxlYXZlU2NlbmVPYnNlcnZhYmxlIGluc3RlYWQuICovXG5leHBvcnQgY29uc3Qgb25MZWF2ZVNjZW5lID0gb25MZWF2ZVNjZW5lT2JzZXJ2YWJsZVxuXG4vKipcbiAqIFRoaXMgZXZlbnQgaXMgdHJpZ2dlcmVkIGFmdGVyIGFsbCB0aGUgcmVzb3VyY2VzIG9mIHRoZSBzY2VuZSB3ZXJlIGxvYWRlZCAobW9kZWxzLCB0ZXh0dXJlcywgZXRjLi4uKVxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uU2NlbmVSZWFkeU9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydzY2VuZVN0YXJ0J10+KGNyZWF0ZVN1YnNjcmliZXIoJ3NjZW5lU3RhcnQnKSlcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25QbGF5ZXJFeHByZXNzaW9uT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3BsYXllckV4cHJlc3Npb24nXT4oXG4gIGNyZWF0ZVN1YnNjcmliZXIoJ3BsYXllckV4cHJlc3Npb24nKVxuKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblZpZGVvRXZlbnQgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWyd2aWRlb0V2ZW50J10+KGNyZWF0ZVN1YnNjcmliZXIoJ3ZpZGVvRXZlbnQnKSlcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25Qcm9maWxlQ2hhbmdlZCA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3Byb2ZpbGVDaGFuZ2VkJ10+KGNyZWF0ZVN1YnNjcmliZXIoJ3Byb2ZpbGVDaGFuZ2VkJykpXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uUGxheWVyQ29ubmVjdGVkT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3BsYXllckNvbm5lY3RlZCddPihcbiAgY3JlYXRlU3Vic2NyaWJlcigncGxheWVyQ29ubmVjdGVkJylcbilcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25QbGF5ZXJEaXNjb25uZWN0ZWRPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sncGxheWVyRGlzY29ubmVjdGVkJ10+KFxuICBjcmVhdGVTdWJzY3JpYmVyKCdwbGF5ZXJEaXNjb25uZWN0ZWQnKVxuKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblJlYWxtQ2hhbmdlZE9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydvblJlYWxtQ2hhbmdlZCddPihjcmVhdGVTdWJzY3JpYmVyKCdvblJlYWxtQ2hhbmdlZCcpKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblBsYXllckNsaWNrZWRPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sncGxheWVyQ2xpY2tlZCddPihjcmVhdGVTdWJzY3JpYmVyKCdwbGF5ZXJDbGlja2VkJykpXG5cbi8qKlxuICogQGludGVybmFsXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25Db21tc01lc3NhZ2UgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydjb21tcyddPihjcmVhdGVTdWJzY3JpYmVyKCdjb21tcycpKVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQGRlcHJlY2F0ZWQgdGhpcyBpcyBhbiBPTEQgQVBJLlxuICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBTREs2IHNlbmRCYXRjaCB0byBwb2xsIGV2ZW50cyBmcm9tIHRoZSByZW5kZXJlclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcG9sbEV2ZW50cyhzZW5kQmF0Y2g6IChib2R5OiBNYW55RW50aXR5QWN0aW9uKSA9PiBQcm9taXNlPFNlbmRCYXRjaFJlc3BvbnNlPikge1xuICBjb25zdCB7IGV2ZW50cyB9ID0gYXdhaXQgc2VuZEJhdGNoKHsgYWN0aW9uczogW10gfSlcbiAgZm9yIChjb25zdCBlIG9mIGV2ZW50cykge1xuICAgIGlmIChlLmdlbmVyaWMpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGUuZ2VuZXJpYy5ldmVudERhdGEpXG4gICAgICBzd2l0Y2ggKGUuZ2VuZXJpYy5ldmVudElkKSB7XG4gICAgICAgIGNhc2UgJ29uRW50ZXJTY2VuZSc6IHtcbiAgICAgICAgICBvbkVudGVyU2NlbmVPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ29uRW50ZXJTY2VuZSddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnb25MZWF2ZVNjZW5lJzoge1xuICAgICAgICAgIG9uTGVhdmVTY2VuZU9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1snb25MZWF2ZVNjZW5lJ10pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdzY2VuZVN0YXJ0Jzoge1xuICAgICAgICAgIG9uU2NlbmVSZWFkeU9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1snc2NlbmVTdGFydCddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAncGxheWVyRXhwcmVzc2lvbic6IHtcbiAgICAgICAgICBvblBsYXllckV4cHJlc3Npb25PYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ3BsYXllckV4cHJlc3Npb24nXSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3ZpZGVvRXZlbnQnOiB7XG4gICAgICAgICAgY29uc3QgdmlkZW9EYXRhID0gZGF0YSBhcyBJRXZlbnRzWyd2aWRlb0V2ZW50J11cbiAgICAgICAgICBvblZpZGVvRXZlbnQubm90aWZ5T2JzZXJ2ZXJzKHZpZGVvRGF0YSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3Byb2ZpbGVDaGFuZ2VkJzoge1xuICAgICAgICAgIG9uUHJvZmlsZUNoYW5nZWQubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1sncHJvZmlsZUNoYW5nZWQnXSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3BsYXllckNvbm5lY3RlZCc6IHtcbiAgICAgICAgICBvblBsYXllckNvbm5lY3RlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1sncGxheWVyQ29ubmVjdGVkJ10pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdwbGF5ZXJEaXNjb25uZWN0ZWQnOiB7XG4gICAgICAgICAgb25QbGF5ZXJEaXNjb25uZWN0ZWRPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ3BsYXllckRpc2Nvbm5lY3RlZCddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnb25SZWFsbUNoYW5nZWQnOiB7XG4gICAgICAgICAgb25SZWFsbUNoYW5nZWRPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ29uUmVhbG1DaGFuZ2VkJ10pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdwbGF5ZXJDbGlja2VkJzoge1xuICAgICAgICAgIG9uUGxheWVyQ2xpY2tlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1sncGxheWVyQ2xpY2tlZCddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnY29tbXMnOiB7XG4gICAgICAgICAgb25Db21tc01lc3NhZ2Uubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1snY29tbXMnXSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IFNESzdDb21wb25lbnRzT2JzZXJ2YWJsZSA9IHByb2Nlc3NPYnNlcnZhYmxlcygpXG5mdW5jdGlvbiBwcm9jZXNzT2JzZXJ2YWJsZXMoKSB7XG4gIGlmIChfX09CU0VSVkFCTEVTX0ZBTExCQUNLX1NVUFBPUlQpIHJldHVyblxuICBjb25zdCBzdWJzY3JpcHRpb25zID0gbmV3IFNldDxrZXlvZiBJRXZlbnRzPigpXG5cbiAgZnVuY3Rpb24gc3Vic2NyaWJlKGV2ZW50TmFtZToga2V5b2YgSUV2ZW50cykge1xuICAgIGlmIChzdWJzY3JpcHRpb25zLmhhcyhldmVudE5hbWUpKSByZXR1cm5cbiAgICBzd2l0Y2ggKGV2ZW50TmFtZSkge1xuICAgICAgY2FzZSAncGxheWVyQ2xpY2tlZCc6IHtcbiAgICAgICAgc3Vic2NyaWJlUGxheWVyQ2xpY2soKVxuICAgICAgfVxuICAgICAgY2FzZSAnb25FbnRlclNjZW5lJzpcbiAgICAgIGNhc2UgJ3BsYXllckNvbm5lY3RlZCc6IHtcbiAgICAgICAgc3Vic2NyaWJlRW50ZXJTY2VuZSgpXG4gICAgICB9XG4gICAgICBjYXNlICdvbkxlYXZlU2NlbmUnOlxuICAgICAgY2FzZSAncGxheWVyRGlzY29ubmVjdGVkJzoge1xuICAgICAgICBzdWJzY3JpYmVMZWF2ZVNjZW5lKClcbiAgICAgIH1cbiAgICAgIGNhc2UgJ29uUmVhbG1DaGFuZ2VkJzoge1xuICAgICAgICBzdWJzY3JpYmVSZWFsbUNoYW5nZSgpXG4gICAgICB9XG4gICAgICBjYXNlICdwbGF5ZXJFeHByZXNzaW9uJzoge1xuICAgICAgICBzdWJzY3JpYmVQbGF5ZXJFeHByZXNzaW9uKClcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3Byb2ZpbGVDaGFuZ2VkJzoge1xuICAgICAgICBzdWJzY3JpYmVQcm9maWxlQ2hhbmdlKClcbiAgICAgIH1cbiAgICB9XG4gICAgc3Vic2NyaXB0aW9ucy5hZGQoZXZlbnROYW1lKVxuICB9XG4gIC8qKlxuICAgKiBQTEFZRVIgRU5URVIvQ09OTkVDVEVEIG9ic2VydmFibGVcbiAgICovXG4gIGZ1bmN0aW9uIHN1YnNjcmliZUVudGVyU2NlbmUoKSB7XG4gICAgcGxheWVycy5vbkVudGVyU2NlbmUoKHBsYXllcikgPT4ge1xuICAgICAgaWYgKHN1YnNjcmlwdGlvbnMuaGFzKCdvbkVudGVyU2NlbmUnKSkge1xuICAgICAgICBvbkVudGVyU2NlbmVPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyh7IHVzZXJJZDogcGxheWVyLnVzZXJJZCB9KVxuICAgICAgfVxuXG4gICAgICBpZiAoc3Vic2NyaXB0aW9ucy5oYXMoJ3BsYXllckNvbm5lY3RlZCcpKSB7XG4gICAgICAgIG9uUGxheWVyQ29ubmVjdGVkT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoeyB1c2VySWQ6IHBsYXllci51c2VySWQgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIC8qKlxuICAgKiBQTEFZRVIgTEVBVkUvRElTQ09OTkVDVEVEIG9ic2VydmFibGVcbiAgICovXG4gIGZ1bmN0aW9uIHN1YnNjcmliZUxlYXZlU2NlbmUoKSB7XG4gICAgcGxheWVycy5vbkxlYXZlU2NlbmUoKHVzZXJJZCkgPT4ge1xuICAgICAgaWYgKHN1YnNjcmlwdGlvbnMuaGFzKCdvbkxlYXZlU2NlbmUnKSkge1xuICAgICAgICBvbkxlYXZlU2NlbmVPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyh7IHVzZXJJZCB9KVxuICAgICAgfVxuXG4gICAgICBpZiAoc3Vic2NyaXB0aW9ucy5oYXMoJ3BsYXllckRpc2Nvbm5lY3RlZCcpKSB7XG4gICAgICAgIG9uUGxheWVyRGlzY29ubmVjdGVkT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoeyB1c2VySWQgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIC8qKlxuICAgKiBSRUFMTSBDSEFOR0Ugb2JzZXJ2YWJsZVxuICAgKi9cbiAgZnVuY3Rpb24gc3Vic2NyaWJlUmVhbG1DaGFuZ2UoKSB7XG4gICAgUmVhbG1JbmZvLm9uQ2hhbmdlKGVuZ2luZS5Sb290RW50aXR5LCAodmFsdWUpID0+IHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBvblJlYWxtQ2hhbmdlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKHtcbiAgICAgICAgICBkb21haW46IHZhbHVlLmJhc2VVcmwsXG4gICAgICAgICAgZGlzcGxheU5hbWU6IHZhbHVlLnJlYWxtTmFtZSxcbiAgICAgICAgICByb29tOiB2YWx1ZS5yb29tID8/ICcnLFxuICAgICAgICAgIHNlcnZlck5hbWU6IHZhbHVlLnJlYWxtTmFtZVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgLyoqXG4gICAqIFBMQVlFUi9BVkFUQVIgQ0xJQ0tFRCBvYnNlcnZhYmxlXG4gICAqL1xuICBmdW5jdGlvbiBzdWJzY3JpYmVQbGF5ZXJDbGljaygpIHtcbiAgICBjb25zdCBwbGF5ZXJFbnRpdGllcyA9IG5ldyBTZXQ8RW50aXR5PigpXG4gICAgZW5naW5lLmFkZFN5c3RlbSgoKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IFtlbnRpdHldIG9mIGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoUGxheWVySWRlbnRpdHlEYXRhKSkge1xuICAgICAgICBpZiAocGxheWVyRW50aXRpZXMuaGFzKGVudGl0eSkpIHJldHVyblxuICAgICAgICBwbGF5ZXJFbnRpdGllcy5hZGQoZW50aXR5KVxuXG4gICAgICAgIFBvaW50ZXJFdmVudHNSZXN1bHQub25DaGFuZ2UoZW50aXR5LCAoZGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChkYXRhPy5oaXQpIHtcbiAgICAgICAgICAgIG9uUGxheWVyQ2xpY2tlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKHtcbiAgICAgICAgICAgICAgdXNlcklkOiBQbGF5ZXJJZGVudGl0eURhdGEuZ2V0T3JOdWxsKGVudGl0eSk/LmFkZHJlc3MgPz8gJycsXG4gICAgICAgICAgICAgIHJheToge1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogZGF0YS5oaXQuZGlyZWN0aW9uISxcbiAgICAgICAgICAgICAgICBkaXN0YW5jZTogZGF0YS5oaXQubGVuZ3RoLFxuICAgICAgICAgICAgICAgIG9yaWdpbjogZGF0YS5oaXQuZ2xvYmFsT3JpZ2luIVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFBsYXllciBleHByZXNzaW9uIG9ic2VydmFibGVcbiAgICovXG4gIGZ1bmN0aW9uIHN1YnNjcmliZVBsYXllckV4cHJlc3Npb24oKSB7XG4gICAgQXZhdGFyRW1vdGVDb21tYW5kLm9uQ2hhbmdlKGVuZ2luZS5QbGF5ZXJFbnRpdHksICh2YWx1ZSkgPT4ge1xuICAgICAgb25QbGF5ZXJFeHByZXNzaW9uT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoeyBleHByZXNzaW9uSWQ6IHZhbHVlPy5lbW90ZVVybiA/PyAnJyB9KVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUFJPRklMRSBDSEFOR0Ugb2JzZXJ2YWJsZVxuICAgKi9cbiAgZnVuY3Rpb24gc3Vic2NyaWJlUHJvZmlsZUNoYW5nZSgpIHtcbiAgICBBdmF0YXJCYXNlLm9uQ2hhbmdlKGVuZ2luZS5QbGF5ZXJFbnRpdHksICgpID0+IHtcbiAgICAgIGlmICghcHJvZmlsZUFkZHJlc3MpIHJldHVyblxuICAgICAgb25Qcm9maWxlQ2hhbmdlZC5ub3RpZnlPYnNlcnZlcnMoeyBldGhBZGRyZXNzOiBwcm9maWxlQWRkcmVzcywgdmVyc2lvbjogMCB9KVxuICAgIH0pXG5cbiAgICBBdmF0YXJFcXVpcHBlZERhdGEub25DaGFuZ2UoZW5naW5lLlBsYXllckVudGl0eSwgKCkgPT4ge1xuICAgICAgaWYgKCFwcm9maWxlQWRkcmVzcykgcmV0dXJuXG4gICAgICBvblByb2ZpbGVDaGFuZ2VkLm5vdGlmeU9ic2VydmVycyh7IGV0aEFkZHJlc3M6IHByb2ZpbGVBZGRyZXNzLCB2ZXJzaW9uOiAwIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8vIEZsYWcgdG8gY2FsbCBvbmNlIHRoZSBzY2VuZSBpcyBpbml0YWxpemVkLlxuICBsZXQgc2NlbmVSZWFkeSA9IGZhbHNlXG4gIGxldCBwcm9maWxlQWRkcmVzczogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgZnVuY3Rpb24gb2JzZXJ2YWJsZVN5c3RlbSgpIHtcbiAgICBpZiAoc2NlbmVSZWFkeSAmJiBwcm9maWxlQWRkcmVzcykge1xuICAgICAgcmV0dXJuIGVuZ2luZS5yZW1vdmVTeXN0ZW0ob2JzZXJ2YWJsZVN5c3RlbSlcbiAgICB9XG4gICAgaWYgKCFzY2VuZVJlYWR5KSB7XG4gICAgICBzY2VuZVJlYWR5ID0gdHJ1ZVxuICAgICAgb25TY2VuZVJlYWR5T2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoe30pXG4gICAgfVxuICAgIGlmIChwcm9maWxlQWRkcmVzcykgcmV0dXJuXG4gICAgcHJvZmlsZUFkZHJlc3MgPSBQbGF5ZXJJZGVudGl0eURhdGEuZ2V0T3JOdWxsKGVuZ2luZS5QbGF5ZXJFbnRpdHkpPy5hZGRyZXNzXG4gIH1cblxuICBlbmdpbmUuYWRkU3lzdGVtKG9ic2VydmFibGVTeXN0ZW0pXG5cbiAgcmV0dXJuIHsgc3Vic2NyaWJlIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@dcl/sdk",
3
3
  "description": "",
4
- "version": "7.4.19",
4
+ "version": "7.4.20-8819404191.commit-d68d7a0",
5
5
  "author": "Decentraland",
6
6
  "dependencies": {
7
- "@dcl/ecs": "7.4.19",
7
+ "@dcl/ecs": "7.4.20-8819404191.commit-d68d7a0",
8
8
  "@dcl/ecs-math": "2.0.2",
9
9
  "@dcl/explorer": "1.0.161749-20240401171209.commit-d6d28f4",
10
- "@dcl/js-runtime": "7.4.19",
11
- "@dcl/react-ecs": "7.4.19",
12
- "@dcl/sdk-commands": "7.4.19",
10
+ "@dcl/js-runtime": "7.4.20-8819404191.commit-d68d7a0",
11
+ "@dcl/react-ecs": "7.4.20-8819404191.commit-d68d7a0",
12
+ "@dcl/sdk-commands": "7.4.20-8819404191.commit-d68d7a0",
13
13
  "text-encoding": "0.7.0"
14
14
  },
15
15
  "keywords": [],
@@ -35,5 +35,5 @@
35
35
  },
36
36
  "types": "./index.d.ts",
37
37
  "typings": "./index.d.ts",
38
- "commit": "6d2ec97a241339671c7b75c6971003d24d3fe233"
38
+ "commit": "d68d7a0a06b18cdc987616ad4df36cd6c6a4fdf8"
39
39
  }
@@ -101,6 +101,8 @@ export interface IEvents {
101
101
  }
102
102
  }
103
103
 
104
+ // Remove this once new components/observables reaches production.
105
+ const __OBSERVABLES_FALLBACK_SUPPORT = true
104
106
  /**
105
107
  * @internal
106
108
  * This function generates a callback that is passed to the Observable
@@ -108,7 +110,7 @@ export interface IEvents {
108
110
  */
109
111
  function createSubscriber(eventName: keyof IEvents) {
110
112
  return () => {
111
- if (eventName === 'comms' || (globalThis as any).__OBSERVABLES_FALLBACK_SUPPORT) {
113
+ if (eventName === 'comms' || __OBSERVABLES_FALLBACK_SUPPORT) {
112
114
  subscribe({ eventId: eventName }).catch(console.error)
113
115
  } else {
114
116
  SDK7ComponentsObservable?.subscribe(eventName)
@@ -263,7 +265,7 @@ export async function pollEvents(sendBatch: (body: ManyEntityAction) => Promise<
263
265
 
264
266
  const SDK7ComponentsObservable = processObservables()
265
267
  function processObservables() {
266
- if ((globalThis as any).__OBSERVABLES_FALLBACK_SUPPORT) return
268
+ if (__OBSERVABLES_FALLBACK_SUPPORT) return
267
269
  const subscriptions = new Set<keyof IEvents>()
268
270
 
269
271
  function subscribe(eventName: keyof IEvents) {