@angular/core 18.1.0-next.4 → 18.1.0

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 (44) hide show
  1. package/esm2022/primitives/event-dispatch/index.mjs +3 -2
  2. package/esm2022/primitives/event-dispatch/src/action_resolver.mjs +3 -3
  3. package/esm2022/primitives/event-dispatch/src/attribute.mjs +16 -52
  4. package/esm2022/primitives/event-dispatch/src/cache.mjs +17 -6
  5. package/esm2022/primitives/event-dispatch/src/char.mjs +1 -16
  6. package/esm2022/primitives/event-dispatch/src/event.mjs +2 -3
  7. package/esm2022/primitives/event-dispatch/src/eventcontract.mjs +5 -66
  8. package/esm2022/primitives/event-dispatch/src/property.mjs +17 -22
  9. package/esm2022/primitives/signals/index.mjs +3 -3
  10. package/esm2022/primitives/signals/src/signal.mjs +4 -1
  11. package/esm2022/rxjs-interop/src/to_signal.mjs +4 -4
  12. package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +2 -2
  13. package/esm2022/src/core_private_export.mjs +3 -1
  14. package/esm2022/src/defer/instructions.mjs +53 -35
  15. package/esm2022/src/event_delegation_utils.mjs +40 -23
  16. package/esm2022/src/event_dispatch/event_delegation.mjs +38 -0
  17. package/esm2022/src/hydration/annotate.mjs +3 -3
  18. package/esm2022/src/hydration/event_replay.mjs +5 -5
  19. package/esm2022/src/render3/component_ref.mjs +1 -1
  20. package/esm2022/src/render3/debug/framework_injector_profiler.mjs +3 -2
  21. package/esm2022/src/version.mjs +1 -1
  22. package/esm2022/testing/src/logger.mjs +3 -3
  23. package/fesm2022/core.mjs +127 -63
  24. package/fesm2022/core.mjs.map +1 -1
  25. package/fesm2022/primitives/event-dispatch.mjs +53 -242
  26. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  27. package/fesm2022/primitives/signals.mjs +5 -2
  28. package/fesm2022/primitives/signals.mjs.map +1 -1
  29. package/fesm2022/rxjs-interop.mjs +4 -4
  30. package/fesm2022/rxjs-interop.mjs.map +1 -1
  31. package/fesm2022/testing.mjs +1 -1
  32. package/index.d.ts +31 -2
  33. package/package.json +1 -1
  34. package/primitives/event-dispatch/index.d.ts +22 -102
  35. package/primitives/signals/index.d.ts +10 -1
  36. package/rxjs-interop/index.d.ts +2 -2
  37. package/schematics/migrations/invalid-two-way-bindings/bundle.js +26 -9
  38. package/schematics/migrations/invalid-two-way-bindings/bundle.js.map +2 -2
  39. package/schematics/ng-generate/control-flow-migration/bundle.js +36 -10
  40. package/schematics/ng-generate/control-flow-migration/bundle.js.map +2 -2
  41. package/schematics/ng-generate/standalone-migration/bundle.js +155 -63
  42. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  43. package/testing/index.d.ts +1 -1
  44. package/esm2022/primitives/event-dispatch/src/dom.mjs +0 -48
@@ -168,7 +168,8 @@ function handleInstanceCreatedByInjectorEvent(context, data) {
168
168
  if (typeof value === 'object') {
169
169
  standaloneComponent = value?.constructor;
170
170
  }
171
- if (standaloneComponent === undefined || !isStandaloneComponent(standaloneComponent)) {
171
+ // We want to also cover if `standaloneComponent === null` in addition to `undefined`
172
+ if (standaloneComponent == undefined || !isStandaloneComponent(standaloneComponent)) {
172
173
  return;
173
174
  }
174
175
  const environmentInjector = context.injector.get(EnvironmentInjector, null, { optional: true });
@@ -246,4 +247,4 @@ function canBeHeldWeakly(value) {
246
247
  return (value !== null &&
247
248
  (typeof value === 'object' || typeof value === 'function' || typeof value === 'symbol'));
248
249
  }
249
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrX2luamVjdG9yX3Byb2ZpbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9kZWJ1Zy9mcmFtZXdvcmtfaW5qZWN0b3JfcHJvZmlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQWMsbUJBQW1CLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBSS9FLE9BQU8sRUFPTCxtQkFBbUIsR0FDcEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQU0sV0FBVztJQUFqQjtRQUNFLGtDQUE2QixHQUFHLElBQUksT0FBTyxFQUd4QyxDQUFDO1FBQ0osd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQXNDLENBQUM7UUFDeEUsa0NBQTZCLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7SUFVekUsQ0FBQztJQVJDLEtBQUs7UUFDSCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxPQUFPLEVBRzdDLENBQUM7UUFDSixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQXNDLENBQUM7UUFDN0UsSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQUVELElBQUksb0JBQW9CLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUU3QyxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU8sb0JBQW9CLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLDhCQUE4QjtJQUM1QyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixtQkFBbUIsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLEVBQUUsQ0FDNUMsMkJBQTJCLENBQUMscUJBQXFCLENBQUMsQ0FDbkQsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLDJCQUEyQixDQUFDLHFCQUE0QztJQUMvRSxNQUFNLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxHQUFHLHFCQUFxQixDQUFDO0lBRTlDLElBQUksSUFBSSw2Q0FBcUMsRUFBRSxDQUFDO1FBQzlDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1RCxDQUFDO1NBQU0sSUFBSSxJQUFJLGdFQUF3RCxFQUFFLENBQUM7UUFDeEUsb0NBQW9DLENBQUMsT0FBTyxFQUFFLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7U0FBTSxJQUFJLElBQUkseURBQWlELEVBQUUsQ0FBQztRQUNqRSw2QkFBNkIsQ0FBQyxPQUFPLEVBQUUscUJBQXFCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDL0UsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsaUJBQWlCLENBQUMsT0FBZ0MsRUFBRSxJQUFxQjtJQUNoRixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELElBQUksVUFBVSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3hCLFVBQVUsQ0FBQywwREFBMEQsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxNQUFNLDZCQUE2QixHQUFHLG9CQUFvQixDQUFDLDZCQUE2QixDQUFDO0lBRXpGLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUNuRCw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksT0FBTyxFQUFvQyxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVELDhGQUE4RjtJQUM5RiwyRUFBMkU7SUFDM0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sK0JBQStCLEdBQUcsNkJBQTZCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBRSxDQUFDO0lBQ3ZGLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQU0sQ0FBQyxFQUFFLENBQUM7UUFDekQsK0JBQStCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELE1BQU0sRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBQyxHQUFHLElBQUksQ0FBQztJQUVuQyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSwrQ0FBK0MsQ0FBQyxDQUFDO0lBRTlFLE1BQU0sWUFBWSxHQUFHLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEUsYUFBYSxDQUFDLFlBQVksRUFBRSwyQ0FBMkMsQ0FBQyxDQUFDO0lBRXpFLElBQUksT0FBTyxDQUFDLFFBQVEsWUFBWSxZQUFZLEVBQUUsQ0FBQztRQUM3QyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLENBQUM7SUFDakcsQ0FBQztTQUFNLENBQUM7UUFDTixZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsc0JBQXNCLENBQUMsUUFBa0I7SUFDaEQsSUFBSSxDQUFDLENBQUMsUUFBUSxZQUFZLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDeEMsVUFBVSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ25CLE9BQU87SUFDVCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRWxDLE9BQU8sRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxvQ0FBb0MsQ0FDM0MsT0FBZ0MsRUFDaEMsSUFBNkI7SUFFN0IsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLElBQUksQ0FBQztJQUVyQixJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDN0MsVUFBVSxDQUFDLDJFQUEyRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVELDZGQUE2RjtJQUM3RixxRUFBcUU7SUFDckUsSUFBSSxtQkFBbUIsR0FBOEIsU0FBUyxDQUFDO0lBQy9ELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsbUJBQW1CLEdBQUcsS0FBSyxFQUFFLFdBQTRCLENBQUM7SUFDNUQsQ0FBQztJQUNELElBQUksbUJBQW1CLEtBQUssU0FBUyxJQUFJLENBQUMscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1FBQ3JGLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxtQkFBbUIsR0FBK0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQzFFLG1CQUFtQixFQUNuQixJQUFJLEVBQ0osRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQ2pCLENBQUM7SUFDRiw4RUFBOEU7SUFDOUUscUZBQXFGO0lBQ3JGLG9FQUFvRTtJQUNwRSxJQUFJLG1CQUFtQixLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxFQUFDLDZCQUE2QixFQUFDLEdBQUcsb0JBQW9CLENBQUM7SUFFN0QsMERBQTBEO0lBQzFELG9FQUFvRTtJQUNwRSx5RUFBeUU7SUFDekUsOENBQThDO0lBQzlDLElBQUksNkJBQTZCLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUMzRCxPQUFPO0lBQ1QsQ0FBQztJQUNELGlGQUFpRjtJQUNqRiw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQUM5RSxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxLQUFvQjtJQUNqRCxNQUFNLEdBQUcsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQztBQUMzQixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLDZCQUE2QixDQUNwQyxPQUFnQyxFQUNoQyxJQUFvQjtJQUVwQixNQUFNLEVBQUMsbUJBQW1CLEVBQUMsR0FBRyxvQkFBb0IsQ0FBQztJQUVuRCxJQUFJLFVBQTRCLENBQUM7SUFDakMsSUFBSSxPQUFPLEVBQUUsUUFBUSxZQUFZLFlBQVksRUFBRSxDQUFDO1FBQzlDLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFVLENBQUM7SUFDL0QsQ0FBQztTQUFNLENBQUM7UUFDTixVQUFVLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDeEIsVUFBVSxDQUFDLHFFQUFxRSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN6QyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxRQUE4QjtJQUNuRCxJQUFJLFVBQVUsR0FBNEIsSUFBSSxDQUFDO0lBRS9DLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUsaUdBQWlHO0lBQ2pHLDZGQUE2RjtJQUM3Riw2RkFBNkY7SUFDN0Ysc0NBQXNDO0lBQ3RDLElBQUksUUFBUSxZQUFZLFlBQVksRUFBRSxDQUFDO1FBQ3JDLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsdUVBQXVFO0lBQ3ZFLFVBQVU7U0FDTCxDQUFDO1FBQ0osVUFBVSxHQUFHLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELGNBQWM7QUFDZCxvR0FBb0c7QUFDcEcsU0FBUyxlQUFlLENBQUMsS0FBVTtJQUNqQyxtRUFBbUU7SUFDbkUsT0FBTyxDQUNMLEtBQUssS0FBSyxJQUFJO1FBQ2QsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUN4RixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0luamVjdG9yfSBmcm9tICcuLi8uLi9kaS9pbmplY3Rvcic7XG5pbXBvcnQge0Vudmlyb25tZW50SW5qZWN0b3J9IGZyb20gJy4uLy4uL2RpL3IzX2luamVjdG9yJztcbmltcG9ydCB7VHlwZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL3R5cGUnO1xuaW1wb3J0IHthc3NlcnREZWZpbmVkLCB0aHJvd0Vycm9yfSBmcm9tICcuLi8uLi91dGlsL2Fzc2VydCc7XG5pbXBvcnQge2Fzc2VydFROb2RlLCBhc3NlcnRUTm9kZUZvckxWaWV3fSBmcm9tICcuLi9hc3NlcnQnO1xuaW1wb3J0IHtnZXRDb21wb25lbnREZWZ9IGZyb20gJy4uL2RlZmluaXRpb24nO1xuaW1wb3J0IHtnZXROb2RlSW5qZWN0b3JMVmlldywgZ2V0Tm9kZUluamVjdG9yVE5vZGUsIE5vZGVJbmplY3Rvcn0gZnJvbSAnLi4vZGknO1xuaW1wb3J0IHtUTm9kZX0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7TFZpZXd9IGZyb20gJy4uL2ludGVyZmFjZXMvdmlldyc7XG5cbmltcG9ydCB7XG4gIEluamVjdGVkU2VydmljZSxcbiAgSW5qZWN0b3JDcmVhdGVkSW5zdGFuY2UsXG4gIEluamVjdG9yUHJvZmlsZXJDb250ZXh0LFxuICBJbmplY3RvclByb2ZpbGVyRXZlbnQsXG4gIEluamVjdG9yUHJvZmlsZXJFdmVudFR5cGUsXG4gIFByb3ZpZGVyUmVjb3JkLFxuICBzZXRJbmplY3RvclByb2ZpbGVyLFxufSBmcm9tICcuL2luamVjdG9yX3Byb2ZpbGVyJztcblxuLyoqXG4gKiBUaGVzZSBhcmUgdGhlIGRhdGEgc3RydWN0dXJlcyB0aGF0IG91ciBmcmFtZXdvcmsgaW5qZWN0b3IgcHJvZmlsZXIgd2lsbCBmaWxsIHdpdGggZGF0YSBpbiBvcmRlclxuICogdG8gc3VwcG9ydCBESSBkZWJ1Z2dpbmcgQVBJcy5cbiAqXG4gKiByZXNvbHZlclRvVG9rZW5Ub0RlcGVuZGVuY2llczogTWFwcyBhbiBpbmplY3RvciB0byBhIE1hcCBvZiB0b2tlbnMgdG8gYW4gQXJyYXkgb2ZcbiAqIGRlcGVuZGVuY2llcy4gSW5qZWN0b3IgLT4gVG9rZW4gLT4gRGVwZW5kZW5jaWVzIFRoaXMgaXMgdXNlZCB0byBzdXBwb3J0IHRoZVxuICogZ2V0RGVwZW5kZW5jaWVzRnJvbUluamVjdGFibGUgQVBJLCB3aGljaCB0YWtlcyBpbiBhbiBpbmplY3RvciBhbmQgYSB0b2tlbiBhbmQgcmV0dXJucyBpdCdzXG4gKiBkZXBlbmRlbmNpZXMuXG4gKlxuICogcmVzb2x2ZXJUb1Byb3ZpZGVyczogTWFwcyBhIERJIHJlc29sdmVyIChhbiBJbmplY3RvciBvciBhIFROb2RlKSB0byB0aGUgcHJvdmlkZXJzIGNvbmZpZ3VyZWRcbiAqIHdpdGhpbiBpdCBUaGlzIGlzIHVzZWQgdG8gc3VwcG9ydCB0aGUgZ2V0SW5qZWN0b3JQcm92aWRlcnMgQVBJLCB3aGljaCB0YWtlcyBpbiBhbiBpbmplY3RvciBhbmRcbiAqIHJldHVybnMgdGhlIHByb3ZpZGVycyB0aGF0IGl0IHdhcyBjb25maWd1cmVkIHdpdGguIE5vdGUgdGhhdCBmb3IgdGhlIGVsZW1lbnQgaW5qZWN0b3IgY2FzZSB3ZVxuICogdXNlIHRoZSBUTm9kZSBpbnN0ZWFkIG9mIHRoZSBMVmlldyBhcyB0aGUgREkgcmVzb2x2ZXIuIFRoaXMgaXMgYmVjYXVzZSB0aGUgcmVnaXN0cmF0aW9uIG9mXG4gKiBwcm92aWRlcnMgaGFwcGVucyBvbmx5IG9uY2UgcGVyIHR5cGUgb2YgVE5vZGUuIElmIGFuIGluamVjdG9yIGlzIGNyZWF0ZWQgd2l0aCBhbiBpZGVudGljYWwgVE5vZGUsXG4gKiB0aGUgcHJvdmlkZXJzIGZvciB0aGF0IGluamVjdG9yIHdpbGwgbm90IGJlIHJlY29uZmlndXJlZC5cbiAqXG4gKiBzdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudDogTWFwcyB0aGUgaW5qZWN0b3Igb2YgYSBzdGFuZGFsb25lIGNvbXBvbmVudCB0byB0aGUgc3RhbmRhbG9uZVxuICogY29tcG9uZW50IHRoYXQgaXQgaXMgYXNzb2NpYXRlZCB3aXRoLiBVc2VkIGluIHRoZSBnZXRJbmplY3RvclByb3ZpZGVycyBBUEksIHNwZWNpZmljaWFsbHkgaW4gdGhlXG4gKiBkaXNjb3Zlcnkgb2YgaW1wb3J0IHBhdGhzIGZvciBlYWNoIHByb3ZpZGVyLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBpbXBvcnRzIGFycmF5IG9mIGFcbiAqIHN0YW5kYWxvbmUgY29tcG9uZW50IGlzIHByb2Nlc3NlZCBhbmQgY29uZmlndXJlZCBpbiBpdHMgc3RhbmRhbG9uZSBpbmplY3RvciwgYnV0IGV4aXN0cyB3aXRoaW5cbiAqIHRoZSBjb21wb25lbnQncyBkZWZpbml0aW9uLiBCZWNhdXNlIGdldEluamVjdG9yUHJvdmlkZXJzIHRha2VzIGluIGFuIGluamVjdG9yLCBpZiB0aGF0IGluamVjdG9yXG4gKiBpcyB0aGUgaW5qZWN0b3Igb2YgYSBzdGFuZGFsb25lIGNvbXBvbmVudCwgd2UgbmVlZCB0byBiZSBhYmxlIHRvIGRpc2NvdmVyIHRoZSBwbGFjZSB3aGVyZSB0aGVcbiAqIGltcG9ydHMgYXJyYXkgaXMgbG9jYXRlZCAodGhlIGNvbXBvbmVudCkgaW4gb3JkZXIgdG8gZmxhdHRlbiB0aGUgaW1wb3J0cyBhcnJheSB3aXRoaW4gaXQgdG9cbiAqIGRpc2NvdmVyIGFsbCBvZiBpdCdzIHByb3ZpZGVycy5cbiAqXG4gKlxuICogQWxsIG9mIHRoZXNlIGRhdGEgc3RydWN0dXJlcyBhcmUgaW5zdGFudGlhdGVkIHdpdGggV2Vha01hcHMuIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUgcHJlc2VuY2VcbiAqIG9mIGFueSBvYmplY3QgaW4gdGhlIGtleXMgb2YgdGhlc2UgbWFwcyBkb2VzIG5vdCBwcmV2ZW50IHRoZSBnYXJiYWdlIGNvbGxlY3RvciBmcm9tIGNvbGxlY3RpbmdcbiAqIHRob3NlIG9iamVjdHMuIEJlY2F1c2Ugb2YgdGhpcyBwcm9wZXJ0eSBvZiBXZWFrTWFwcywgdGhlc2UgZGF0YSBzdHJ1Y3R1cmVzIHdpbGwgbmV2ZXIgYmUgdGhlXG4gKiBzb3VyY2Ugb2YgYSBtZW1vcnkgbGVhay5cbiAqXG4gKiBBbiBleGFtcGxlIG9mIHRoaXMgYWR2YW50YWdlOiBXaGVuIGNvbXBvbmVudHMgYXJlIGRlc3Ryb3llZCwgd2UgZG9uJ3QgbmVlZCB0byBkb1xuICogYW55IGFkZGl0aW9uYWwgd29yayB0byByZW1vdmUgdGhhdCBjb21wb25lbnQgZnJvbSBvdXIgbWFwcGluZ3MuXG4gKlxuICovXG5jbGFzcyBESURlYnVnRGF0YSB7XG4gIHJlc29sdmVyVG9Ub2tlblRvRGVwZW5kZW5jaWVzID0gbmV3IFdlYWtNYXA8XG4gICAgSW5qZWN0b3IgfCBMVmlldyxcbiAgICBXZWFrTWFwPFR5cGU8dW5rbm93bj4sIEluamVjdGVkU2VydmljZVtdPlxuICA+KCk7XG4gIHJlc29sdmVyVG9Qcm92aWRlcnMgPSBuZXcgV2Vha01hcDxJbmplY3RvciB8IFROb2RlLCBQcm92aWRlclJlY29yZFtdPigpO1xuICBzdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudCA9IG5ldyBXZWFrTWFwPEluamVjdG9yLCBUeXBlPHVua25vd24+PigpO1xuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMucmVzb2x2ZXJUb1Rva2VuVG9EZXBlbmRlbmNpZXMgPSBuZXcgV2Vha01hcDxcbiAgICAgIEluamVjdG9yIHwgTFZpZXcsXG4gICAgICBXZWFrTWFwPFR5cGU8dW5rbm93bj4sIEluamVjdGVkU2VydmljZVtdPlxuICAgID4oKTtcbiAgICB0aGlzLnJlc29sdmVyVG9Qcm92aWRlcnMgPSBuZXcgV2Vha01hcDxJbmplY3RvciB8IFROb2RlLCBQcm92aWRlclJlY29yZFtdPigpO1xuICAgIHRoaXMuc3RhbmRhbG9uZUluamVjdG9yVG9Db21wb25lbnQgPSBuZXcgV2Vha01hcDxJbmplY3RvciwgVHlwZTx1bmtub3duPj4oKTtcbiAgfVxufVxuXG5sZXQgZnJhbWV3b3JrRElEZWJ1Z0RhdGEgPSBuZXcgRElEZWJ1Z0RhdGEoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZyYW1ld29ya0RJRGVidWdEYXRhKCk6IERJRGVidWdEYXRhIHtcbiAgcmV0dXJuIGZyYW1ld29ya0RJRGVidWdEYXRhO1xufVxuXG4vKipcbiAqIEluaXRhbGl6ZSBkZWZhdWx0IGhhbmRsaW5nIG9mIGluamVjdG9yIGV2ZW50cy4gVGhpcyBoYW5kbGluZyBwYXJzZXMgZXZlbnRzXG4gKiBhcyB0aGV5IGFyZSBlbWl0dGVkIGFuZCBjb25zdHJ1Y3RzIHRoZSBkYXRhIHN0cnVjdHVyZXMgbmVjZXNzYXJ5IHRvIHN1cHBvcnRcbiAqIHNvbWUgb2YgZGVidWcgQVBJcy5cbiAqXG4gKiBTZWUgaGFuZGxlSW5qZWN0RXZlbnQsIGhhbmRsZUNyZWF0ZUV2ZW50IGFuZCBoYW5kbGVQcm92aWRlckNvbmZpZ3VyZWRFdmVudFxuICogZm9yIGRlc2NyaXB0aW9ucyBvZiBlYWNoIGhhbmRsZXJcbiAqXG4gKiBTdXBwb3J0ZWQgQVBJczpcbiAqICAgICAgICAgICAgICAgLSBnZXREZXBlbmRlbmNpZXNGcm9tSW5qZWN0YWJsZVxuICogICAgICAgICAgICAgICAtIGdldEluamVjdG9yUHJvdmlkZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEZyYW1ld29ya0luamVjdG9yUHJvZmlsZXIoKTogdm9pZCB7XG4gIGZyYW1ld29ya0RJRGVidWdEYXRhLnJlc2V0KCk7XG4gIHNldEluamVjdG9yUHJvZmlsZXIoKGluamVjdG9yUHJvZmlsZXJFdmVudCkgPT5cbiAgICBoYW5kbGVJbmplY3RvclByb2ZpbGVyRXZlbnQoaW5qZWN0b3JQcm9maWxlckV2ZW50KSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlSW5qZWN0b3JQcm9maWxlckV2ZW50KGluamVjdG9yUHJvZmlsZXJFdmVudDogSW5qZWN0b3JQcm9maWxlckV2ZW50KTogdm9pZCB7XG4gIGNvbnN0IHtjb250ZXh0LCB0eXBlfSA9IGluamVjdG9yUHJvZmlsZXJFdmVudDtcblxuICBpZiAodHlwZSA9PT0gSW5qZWN0b3JQcm9maWxlckV2ZW50VHlwZS5JbmplY3QpIHtcbiAgICBoYW5kbGVJbmplY3RFdmVudChjb250ZXh0LCBpbmplY3RvclByb2ZpbGVyRXZlbnQuc2VydmljZSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gSW5qZWN0b3JQcm9maWxlckV2ZW50VHlwZS5JbnN0YW5jZUNyZWF0ZWRCeUluamVjdG9yKSB7XG4gICAgaGFuZGxlSW5zdGFuY2VDcmVhdGVkQnlJbmplY3RvckV2ZW50KGNvbnRleHQsIGluamVjdG9yUHJvZmlsZXJFdmVudC5pbnN0YW5jZSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gSW5qZWN0b3JQcm9maWxlckV2ZW50VHlwZS5Qcm92aWRlckNvbmZpZ3VyZWQpIHtcbiAgICBoYW5kbGVQcm92aWRlckNvbmZpZ3VyZWRFdmVudChjb250ZXh0LCBpbmplY3RvclByb2ZpbGVyRXZlbnQucHJvdmlkZXJSZWNvcmQpO1xuICB9XG59XG5cbi8qKlxuICpcbiAqIFN0b3JlcyB0aGUgaW5qZWN0ZWQgc2VydmljZSBpbiBmcmFtZXdvcmtESURlYnVnRGF0YS5yZXNvbHZlclRvVG9rZW5Ub0RlcGVuZGVuY2llc1xuICogYmFzZWQgb24gaXQncyBpbmplY3RvciBhbmQgdG9rZW4uXG4gKlxuICogQHBhcmFtIGNvbnRleHQgSW5qZWN0b3JQcm9maWxlckNvbnRleHQgdGhlIGluamVjdGlvbiBjb250ZXh0IHRoYXQgdGhpcyBldmVudCBvY2N1cnJlZCBpbi5cbiAqIEBwYXJhbSBkYXRhIEluamVjdGVkU2VydmljZSB0aGUgc2VydmljZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbmplY3QgZXZlbnQuXG4gKlxuICovXG5mdW5jdGlvbiBoYW5kbGVJbmplY3RFdmVudChjb250ZXh0OiBJbmplY3RvclByb2ZpbGVyQ29udGV4dCwgZGF0YTogSW5qZWN0ZWRTZXJ2aWNlKSB7XG4gIGNvbnN0IGRpUmVzb2x2ZXIgPSBnZXRESVJlc29sdmVyKGNvbnRleHQuaW5qZWN0b3IpO1xuICBpZiAoZGlSZXNvbHZlciA9PT0gbnVsbCkge1xuICAgIHRocm93RXJyb3IoJ0FuIEluamVjdCBldmVudCBtdXN0IGJlIHJ1biB3aXRoaW4gYW4gaW5qZWN0aW9uIGNvbnRleHQuJyk7XG4gIH1cblxuICBjb25zdCBkaVJlc29sdmVyVG9JbnN0YW50aWF0ZWRUb2tlbiA9IGZyYW1ld29ya0RJRGVidWdEYXRhLnJlc29sdmVyVG9Ub2tlblRvRGVwZW5kZW5jaWVzO1xuXG4gIGlmICghZGlSZXNvbHZlclRvSW5zdGFudGlhdGVkVG9rZW4uaGFzKGRpUmVzb2x2ZXIpKSB7XG4gICAgZGlSZXNvbHZlclRvSW5zdGFudGlhdGVkVG9rZW4uc2V0KGRpUmVzb2x2ZXIsIG5ldyBXZWFrTWFwPFR5cGU8dW5rbm93bj4sIEluamVjdGVkU2VydmljZVtdPigpKTtcbiAgfVxuXG4gIC8vIGlmIHRva2VuIGlzIGEgcHJpbWl0aXZlIHR5cGUsIGlnbm9yZSB0aGlzIGV2ZW50LiBXZSBkbyB0aGlzIGJlY2F1c2Ugd2UgY2Fubm90IGtlZXAgdHJhY2sgb2ZcbiAgLy8gbm9uLXByaW1pdGl2ZSB0b2tlbnMgaW4gV2Vha01hcHMgc2luY2UgdGhleSBhcmUgbm90IGdhcmJhZ2UgY29sbGVjdGFibGUuXG4gIGlmICghY2FuQmVIZWxkV2Vha2x5KGNvbnRleHQudG9rZW4pKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgaW5zdGFudGlhdGVkVG9rZW5Ub0RlcGVuZGVuY2llcyA9IGRpUmVzb2x2ZXJUb0luc3RhbnRpYXRlZFRva2VuLmdldChkaVJlc29sdmVyKSE7XG4gIGlmICghaW5zdGFudGlhdGVkVG9rZW5Ub0RlcGVuZGVuY2llcy5oYXMoY29udGV4dC50b2tlbiEpKSB7XG4gICAgaW5zdGFudGlhdGVkVG9rZW5Ub0RlcGVuZGVuY2llcy5zZXQoY29udGV4dC50b2tlbiEsIFtdKTtcbiAgfVxuXG4gIGNvbnN0IHt0b2tlbiwgdmFsdWUsIGZsYWdzfSA9IGRhdGE7XG5cbiAgYXNzZXJ0RGVmaW5lZChjb250ZXh0LnRva2VuLCAnSW5qZWN0b3IgcHJvZmlsZXIgY29udGV4dCB0b2tlbiBpcyB1bmRlZmluZWQuJyk7XG5cbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gaW5zdGFudGlhdGVkVG9rZW5Ub0RlcGVuZGVuY2llcy5nZXQoY29udGV4dC50b2tlbik7XG4gIGFzc2VydERlZmluZWQoZGVwZW5kZW5jaWVzLCAnQ291bGQgbm90IHJlc29sdmUgZGVwZW5kZW5jaWVzIGZvciB0b2tlbi4nKTtcblxuICBpZiAoY29udGV4dC5pbmplY3RvciBpbnN0YW5jZW9mIE5vZGVJbmplY3Rvcikge1xuICAgIGRlcGVuZGVuY2llcy5wdXNoKHt0b2tlbiwgdmFsdWUsIGZsYWdzLCBpbmplY3RlZEluOiBnZXROb2RlSW5qZWN0b3JDb250ZXh0KGNvbnRleHQuaW5qZWN0b3IpfSk7XG4gIH0gZWxzZSB7XG4gICAgZGVwZW5kZW5jaWVzLnB1c2goe3Rva2VuLCB2YWx1ZSwgZmxhZ3N9KTtcbiAgfVxufVxuXG4vKipcbiAqXG4gKiBSZXR1cm5zIHRoZSBMVmlldyBhbmQgVE5vZGUgYXNzb2NpYXRlZCB3aXRoIGEgTm9kZUluamVjdG9yLiBSZXR1cm5zIHVuZGVmaW5lZCBpZiB0aGUgaW5qZWN0b3JcbiAqIGlzIG5vdCBhIE5vZGVJbmplY3Rvci5cbiAqXG4gKiBAcGFyYW0gaW5qZWN0b3JcbiAqIEByZXR1cm5zIHtsVmlldzogTFZpZXcsIHROb2RlOiBUTm9kZX18dW5kZWZpbmVkXG4gKi9cbmZ1bmN0aW9uIGdldE5vZGVJbmplY3RvckNvbnRleHQoaW5qZWN0b3I6IEluamVjdG9yKToge2xWaWV3OiBMVmlldzsgdE5vZGU6IFROb2RlfSB8IHVuZGVmaW5lZCB7XG4gIGlmICghKGluamVjdG9yIGluc3RhbmNlb2YgTm9kZUluamVjdG9yKSkge1xuICAgIHRocm93RXJyb3IoJ2dldE5vZGVJbmplY3RvckNvbnRleHQgbXVzdCBiZSBjYWxsZWQgd2l0aCBhIE5vZGVJbmplY3RvcicpO1xuICB9XG5cbiAgY29uc3QgbFZpZXcgPSBnZXROb2RlSW5qZWN0b3JMVmlldyhpbmplY3Rvcik7XG4gIGNvbnN0IHROb2RlID0gZ2V0Tm9kZUluamVjdG9yVE5vZGUoaW5qZWN0b3IpO1xuICBpZiAodE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBhc3NlcnRUTm9kZUZvckxWaWV3KHROb2RlLCBsVmlldyk7XG5cbiAgcmV0dXJuIHtsVmlldywgdE5vZGV9O1xufVxuXG4vKipcbiAqXG4gKiBJZiB0aGUgY3JlYXRlZCBpbnN0YW5jZSBpcyBhbiBpbnN0YW5jZSBvZiBhIHN0YW5kYWxvbmUgY29tcG9uZW50LCBtYXBzIHRoZSBpbmplY3RvciB0byB0aGF0XG4gKiBzdGFuZGFsb25lIGNvbXBvbmVudCBpbiBmcmFtZXdvcmtESURlYnVnRGF0YS5zdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudFxuICpcbiAqIEBwYXJhbSBjb250ZXh0IEluamVjdG9yUHJvZmlsZXJDb250ZXh0IHRoZSBpbmplY3Rpb24gY29udGV4dCB0aGF0IHRoaXMgZXZlbnQgb2NjdXJyZWQgaW4uXG4gKiBAcGFyYW0gZGF0YSBJbmplY3RvckNyZWF0ZWRJbnN0YW5jZSBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgaW5zdGFuY2UgdGhhdCB3YXMganVzdCBjcmVhdGVkXG4gKlxuICovXG5mdW5jdGlvbiBoYW5kbGVJbnN0YW5jZUNyZWF0ZWRCeUluamVjdG9yRXZlbnQoXG4gIGNvbnRleHQ6IEluamVjdG9yUHJvZmlsZXJDb250ZXh0LFxuICBkYXRhOiBJbmplY3RvckNyZWF0ZWRJbnN0YW5jZSxcbik6IHZvaWQge1xuICBjb25zdCB7dmFsdWV9ID0gZGF0YTtcblxuICBpZiAoZ2V0RElSZXNvbHZlcihjb250ZXh0LmluamVjdG9yKSA9PT0gbnVsbCkge1xuICAgIHRocm93RXJyb3IoJ0FuIEluamVjdG9yQ3JlYXRlZEluc3RhbmNlIGV2ZW50IG11c3QgYmUgcnVuIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dC4nKTtcbiAgfVxuXG4gIC8vIGlmIG91ciB2YWx1ZSBpcyBhbiBpbnN0YW5jZSBvZiBhIHN0YW5kYWxvbmUgY29tcG9uZW50LCBtYXAgdGhlIGluamVjdG9yIG9mIHRoYXQgc3RhbmRhbG9uZVxuICAvLyBjb21wb25lbnQgdG8gdGhlIGNvbXBvbmVudCBjbGFzcy4gT3RoZXJ3aXNlLCB0aGlzIGV2ZW50IGlzIGEgbm9vcC5cbiAgbGV0IHN0YW5kYWxvbmVDb21wb25lbnQ6IFR5cGU8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgc3RhbmRhbG9uZUNvbXBvbmVudCA9IHZhbHVlPy5jb25zdHJ1Y3RvciBhcyBUeXBlPHVua25vd24+O1xuICB9XG4gIGlmIChzdGFuZGFsb25lQ29tcG9uZW50ID09PSB1bmRlZmluZWQgfHwgIWlzU3RhbmRhbG9uZUNvbXBvbmVudChzdGFuZGFsb25lQ29tcG9uZW50KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGVudmlyb25tZW50SW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IgfCBudWxsID0gY29udGV4dC5pbmplY3Rvci5nZXQoXG4gICAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBudWxsLFxuICAgIHtvcHRpb25hbDogdHJ1ZX0sXG4gICk7XG4gIC8vIFN0YW5kYWxvbmUgY29tcG9uZW50cyBzaG91bGQgaGF2ZSBhbiBlbnZpcm9ubWVudCBpbmplY3Rvci4gSWYgb25lIGNhbm5vdCBiZVxuICAvLyBmb3VuZCB3ZSBtYXkgYmUgaW4gYSB0ZXN0IGNhc2UgZm9yIGxvdyBsZXZlbCBmdW5jdGlvbmFsaXR5IHRoYXQgZGlkIG5vdCBleHBsaWNpdGx5XG4gIC8vIHNldHVwIHRoaXMgaW5qZWN0b3IuIEluIHRob3NlIGNhc2VzLCB3ZSBzaW1wbHkgaWdub3JlIHRoaXMgZXZlbnQuXG4gIGlmIChlbnZpcm9ubWVudEluamVjdG9yID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qge3N0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50fSA9IGZyYW1ld29ya0RJRGVidWdEYXRhO1xuXG4gIC8vIElmIG91ciBpbmplY3RvciBoYXMgYWxyZWFkeSBiZWVuIG1hcHBlZCwgYXMgaXMgdGhlIGNhc2VcbiAgLy8gd2hlbiBhIHN0YW5kYWxvbmUgY29tcG9uZW50IGltcG9ydHMgYW5vdGhlciBzdGFuZGFsb25lIGNvbXBvbmVudCxcbiAgLy8gd2UgY29uc2lkZXIgdGhlIG9yaWdpbmFsIGNvbXBvbmVudCAodGhlIGNvbXBvbmVudCBkb2luZyB0aGUgaW1wb3J0aW5nKVxuICAvLyBhcyB0aGUgY29tcG9uZW50IGNvbm5lY3RlZCB0byBvdXIgaW5qZWN0b3IuXG4gIGlmIChzdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudC5oYXMoZW52aXJvbm1lbnRJbmplY3RvcikpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gSWYgb3VyIGluamVjdG9yIGhhc24ndCBiZWVuIG1hcHBlZCwgdGhlbiB3ZSBtYXAgaXQgdG8gdGhlIHN0YW5kYWxvbmUgY29tcG9uZW50XG4gIHN0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50LnNldChlbnZpcm9ubWVudEluamVjdG9yLCBzdGFuZGFsb25lQ29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gaXNTdGFuZGFsb25lQ29tcG9uZW50KHZhbHVlOiBUeXBlPHVua25vd24+KTogYm9vbGVhbiB7XG4gIGNvbnN0IGRlZiA9IGdldENvbXBvbmVudERlZih2YWx1ZSk7XG4gIHJldHVybiAhIWRlZj8uc3RhbmRhbG9uZTtcbn1cblxuLyoqXG4gKlxuICogU3RvcmVzIHRoZSBlbWl0dGVkIFByb3ZpZGVyUmVjb3JkcyBmcm9tIHRoZSBJbmplY3RvclByb2ZpbGVyRXZlbnRUeXBlLlByb3ZpZGVyQ29uZmlndXJlZFxuICogZXZlbnQgaW4gZnJhbWV3b3JrRElEZWJ1Z0RhdGEucmVzb2x2ZXJUb1Byb3ZpZGVyc1xuICpcbiAqIEBwYXJhbSBjb250ZXh0IEluamVjdG9yUHJvZmlsZXJDb250ZXh0IHRoZSBpbmplY3Rpb24gY29udGV4dCB0aGF0IHRoaXMgZXZlbnQgb2NjdXJyZWQgaW4uXG4gKiBAcGFyYW0gZGF0YSBQcm92aWRlclJlY29yZCBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgaW5zdGFuY2UgdGhhdCB3YXMganVzdCBjcmVhdGVkXG4gKlxuICovXG5mdW5jdGlvbiBoYW5kbGVQcm92aWRlckNvbmZpZ3VyZWRFdmVudChcbiAgY29udGV4dDogSW5qZWN0b3JQcm9maWxlckNvbnRleHQsXG4gIGRhdGE6IFByb3ZpZGVyUmVjb3JkLFxuKTogdm9pZCB7XG4gIGNvbnN0IHtyZXNvbHZlclRvUHJvdmlkZXJzfSA9IGZyYW1ld29ya0RJRGVidWdEYXRhO1xuXG4gIGxldCBkaVJlc29sdmVyOiBJbmplY3RvciB8IFROb2RlO1xuICBpZiAoY29udGV4dD8uaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkaVJlc29sdmVyID0gZ2V0Tm9kZUluamVjdG9yVE5vZGUoY29udGV4dC5pbmplY3RvcikgYXMgVE5vZGU7XG4gIH0gZWxzZSB7XG4gICAgZGlSZXNvbHZlciA9IGNvbnRleHQuaW5qZWN0b3I7XG4gIH1cblxuICBpZiAoZGlSZXNvbHZlciA9PT0gbnVsbCkge1xuICAgIHRocm93RXJyb3IoJ0EgUHJvdmlkZXJDb25maWd1cmVkIGV2ZW50IG11c3QgYmUgcnVuIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dC4nKTtcbiAgfVxuXG4gIGlmICghcmVzb2x2ZXJUb1Byb3ZpZGVycy5oYXMoZGlSZXNvbHZlcikpIHtcbiAgICByZXNvbHZlclRvUHJvdmlkZXJzLnNldChkaVJlc29sdmVyLCBbXSk7XG4gIH1cblxuICByZXNvbHZlclRvUHJvdmlkZXJzLmdldChkaVJlc29sdmVyKSEucHVzaChkYXRhKTtcbn1cblxuZnVuY3Rpb24gZ2V0RElSZXNvbHZlcihpbmplY3RvcjogSW5qZWN0b3IgfCB1bmRlZmluZWQpOiBJbmplY3RvciB8IExWaWV3IHwgbnVsbCB7XG4gIGxldCBkaVJlc29sdmVyOiBJbmplY3RvciB8IExWaWV3IHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKGluamVjdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZGlSZXNvbHZlcjtcbiAgfVxuXG4gIC8vIFdlIHVzZSB0aGUgTFZpZXcgYXMgdGhlIGRpUmVzb2x2ZXIgZm9yIE5vZGVJbmplY3RvcnMgYmVjYXVzZSB0aGV5XG4gIC8vIGRvIG5vdCBwZXJzaXN0IGFueXdoZXJlIGluIHRoZSBmcmFtZXdvcmsuIFRoZXkgYXJlIHNpbXBseSB3cmFwcGVycyBhcm91bmQgYW4gTFZpZXcgYW5kIGEgVE5vZGVcbiAgLy8gdGhhdCBkbyBwZXJzaXN0LiBCZWNhdXNlIG9mIHRoaXMsIHdlIHJlbHkgb24gdGhlIExWaWV3IG9mIHRoZSBOb2RlSW5qZWN0b3IgaW4gb3JkZXIgdG8gdXNlXG4gIC8vIGFzIGEgY29uY3JldGUga2V5IHRvIHJlcHJlc2VudCB0aGlzIGluamVjdG9yLiBJZiB3ZSBnZXQgdGhlIHNhbWUgTFZpZXcgYmFjayBsYXRlciwgd2Uga25vd1xuICAvLyB3ZSdyZSBsb29raW5nIGF0IHRoZSBzYW1lIGluamVjdG9yLlxuICBpZiAoaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkaVJlc29sdmVyID0gZ2V0Tm9kZUluamVjdG9yTFZpZXcoaW5qZWN0b3IpO1xuICB9XG4gIC8vIE90aGVyIGluamVjdG9ycyBjYW4gYmUgdXNlZCBhIGtleXMgZm9yIGEgbWFwIGJlY2F1c2UgdGhlaXIgaW5zdGFuY2VzXG4gIC8vIHBlcnNpc3RcbiAgZWxzZSB7XG4gICAgZGlSZXNvbHZlciA9IGluamVjdG9yO1xuICB9XG5cbiAgcmV0dXJuIGRpUmVzb2x2ZXI7XG59XG5cbi8vIGluc3BpcmVkIGJ5XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi9tdWx0aXBhZ2UvZXhlY3V0YWJsZS1jb2RlLWFuZC1leGVjdXRpb24tY29udGV4dHMuaHRtbCNzZWMtY2FuYmVoZWxkd2Vha2x5XG5mdW5jdGlvbiBjYW5CZUhlbGRXZWFrbHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAvLyB3ZSBjaGVjayBmb3IgdmFsdWUgIT09IG51bGwgaGVyZSBiZWNhdXNlIHR5cGVvZiBudWxsID09PSAnb2JqZWN0XG4gIHJldHVybiAoXG4gICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHZhbHVlID09PSAnc3ltYm9sJylcbiAgKTtcbn1cbiJdfQ==
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrX2luamVjdG9yX3Byb2ZpbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9kZWJ1Zy9mcmFtZXdvcmtfaW5qZWN0b3JfcHJvZmlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQWMsbUJBQW1CLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBSS9FLE9BQU8sRUFPTCxtQkFBbUIsR0FDcEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQU0sV0FBVztJQUFqQjtRQUNFLGtDQUE2QixHQUFHLElBQUksT0FBTyxFQUd4QyxDQUFDO1FBQ0osd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQXNDLENBQUM7UUFDeEUsa0NBQTZCLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7SUFVekUsQ0FBQztJQVJDLEtBQUs7UUFDSCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxPQUFPLEVBRzdDLENBQUM7UUFDSixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQXNDLENBQUM7UUFDN0UsSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQUVELElBQUksb0JBQW9CLEdBQUcsSUFBSSxXQUFXLEVBQUUs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LENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDekMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsUUFBOEI7SUFDbkQsSUFBSSxVQUFVLEdBQTRCLElBQUksQ0FBQztJQUUvQyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMzQixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsb0VBQW9FO0lBQ3BFLGlHQUFpRztJQUNqRyw2RkFBNkY7SUFDN0YsNkZBQTZGO0lBQzdGLHNDQUFzQztJQUN0QyxJQUFJLFFBQVEsWUFBWSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxVQUFVLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELHVFQUF1RTtJQUN2RSxVQUFVO1NBQ0wsQ0FBQztRQUNKLFVBQVUsR0FBRyxRQUFRLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxjQUFjO0FBQ2Qsb0dBQW9HO0FBQ3BHLFNBQVMsZUFBZSxDQUFDLEtBQVU7SUFDakMsbUVBQW1FO0lBQ25FLE9BQU8sQ0FDTCxLQUFLLEtBQUssSUFBSTtRQUNkLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FDeEYsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmplY3Rvcn0gZnJvbSAnLi4vLi4vZGkvaW5qZWN0b3InO1xuaW1wb3J0IHtFbnZpcm9ubWVudEluamVjdG9yfSBmcm9tICcuLi8uLi9kaS9yM19pbmplY3Rvcic7XG5pbXBvcnQge1R5cGV9IGZyb20gJy4uLy4uL2ludGVyZmFjZS90eXBlJztcbmltcG9ydCB7YXNzZXJ0RGVmaW5lZCwgdGhyb3dFcnJvcn0gZnJvbSAnLi4vLi4vdXRpbC9hc3NlcnQnO1xuaW1wb3J0IHthc3NlcnRUTm9kZSwgYXNzZXJ0VE5vZGVGb3JMVmlld30gZnJvbSAnLi4vYXNzZXJ0JztcbmltcG9ydCB7Z2V0Q29tcG9uZW50RGVmfSBmcm9tICcuLi9kZWZpbml0aW9uJztcbmltcG9ydCB7Z2V0Tm9kZUluamVjdG9yTFZpZXcsIGdldE5vZGVJbmplY3RvclROb2RlLCBOb2RlSW5qZWN0b3J9IGZyb20gJy4uL2RpJztcbmltcG9ydCB7VE5vZGV9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQge0xWaWV3fSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXcnO1xuXG5pbXBvcnQge1xuICBJbmplY3RlZFNlcnZpY2UsXG4gIEluamVjdG9yQ3JlYXRlZEluc3RhbmNlLFxuICBJbmplY3RvclByb2ZpbGVyQ29udGV4dCxcbiAgSW5qZWN0b3JQcm9maWxlckV2ZW50LFxuICBJbmplY3RvclByb2ZpbGVyRXZlbnRUeXBlLFxuICBQcm92aWRlclJlY29yZCxcbiAgc2V0SW5qZWN0b3JQcm9maWxlcixcbn0gZnJvbSAnLi9pbmplY3Rvcl9wcm9maWxlcic7XG5cbi8qKlxuICogVGhlc2UgYXJlIHRoZSBkYXRhIHN0cnVjdHVyZXMgdGhhdCBvdXIgZnJhbWV3b3JrIGluamVjdG9yIHByb2ZpbGVyIHdpbGwgZmlsbCB3aXRoIGRhdGEgaW4gb3JkZXJcbiAqIHRvIHN1cHBvcnQgREkgZGVidWdnaW5nIEFQSXMuXG4gKlxuICogcmVzb2x2ZXJUb1Rva2VuVG9EZXBlbmRlbmNpZXM6IE1hcHMgYW4gaW5qZWN0b3IgdG8gYSBNYXAgb2YgdG9rZW5zIHRvIGFuIEFycmF5IG9mXG4gKiBkZXBlbmRlbmNpZXMuIEluamVjdG9yIC0+IFRva2VuIC0+IERlcGVuZGVuY2llcyBUaGlzIGlzIHVzZWQgdG8gc3VwcG9ydCB0aGVcbiAqIGdldERlcGVuZGVuY2llc0Zyb21JbmplY3RhYmxlIEFQSSwgd2hpY2ggdGFrZXMgaW4gYW4gaW5qZWN0b3IgYW5kIGEgdG9rZW4gYW5kIHJldHVybnMgaXQnc1xuICogZGVwZW5kZW5jaWVzLlxuICpcbiAqIHJlc29sdmVyVG9Qcm92aWRlcnM6IE1hcHMgYSBESSByZXNvbHZlciAoYW4gSW5qZWN0b3Igb3IgYSBUTm9kZSkgdG8gdGhlIHByb3ZpZGVycyBjb25maWd1cmVkXG4gKiB3aXRoaW4gaXQgVGhpcyBpcyB1c2VkIHRvIHN1cHBvcnQgdGhlIGdldEluamVjdG9yUHJvdmlkZXJzIEFQSSwgd2hpY2ggdGFrZXMgaW4gYW4gaW5qZWN0b3IgYW5kXG4gKiByZXR1cm5zIHRoZSBwcm92aWRlcnMgdGhhdCBpdCB3YXMgY29uZmlndXJlZCB3aXRoLiBOb3RlIHRoYXQgZm9yIHRoZSBlbGVtZW50IGluamVjdG9yIGNhc2Ugd2VcbiAqIHVzZSB0aGUgVE5vZGUgaW5zdGVhZCBvZiB0aGUgTFZpZXcgYXMgdGhlIERJIHJlc29sdmVyLiBUaGlzIGlzIGJlY2F1c2UgdGhlIHJlZ2lzdHJhdGlvbiBvZlxuICogcHJvdmlkZXJzIGhhcHBlbnMgb25seSBvbmNlIHBlciB0eXBlIG9mIFROb2RlLiBJZiBhbiBpbmplY3RvciBpcyBjcmVhdGVkIHdpdGggYW4gaWRlbnRpY2FsIFROb2RlLFxuICogdGhlIHByb3ZpZGVycyBmb3IgdGhhdCBpbmplY3RvciB3aWxsIG5vdCBiZSByZWNvbmZpZ3VyZWQuXG4gKlxuICogc3RhbmRhbG9uZUluamVjdG9yVG9Db21wb25lbnQ6IE1hcHMgdGhlIGluamVjdG9yIG9mIGEgc3RhbmRhbG9uZSBjb21wb25lbnQgdG8gdGhlIHN0YW5kYWxvbmVcbiAqIGNvbXBvbmVudCB0aGF0IGl0IGlzIGFzc29jaWF0ZWQgd2l0aC4gVXNlZCBpbiB0aGUgZ2V0SW5qZWN0b3JQcm92aWRlcnMgQVBJLCBzcGVjaWZpY2lhbGx5IGluIHRoZVxuICogZGlzY292ZXJ5IG9mIGltcG9ydCBwYXRocyBmb3IgZWFjaCBwcm92aWRlci4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgaW1wb3J0cyBhcnJheSBvZiBhXG4gKiBzdGFuZGFsb25lIGNvbXBvbmVudCBpcyBwcm9jZXNzZWQgYW5kIGNvbmZpZ3VyZWQgaW4gaXRzIHN0YW5kYWxvbmUgaW5qZWN0b3IsIGJ1dCBleGlzdHMgd2l0aGluXG4gKiB0aGUgY29tcG9uZW50J3MgZGVmaW5pdGlvbi4gQmVjYXVzZSBnZXRJbmplY3RvclByb3ZpZGVycyB0YWtlcyBpbiBhbiBpbmplY3RvciwgaWYgdGhhdCBpbmplY3RvclxuICogaXMgdGhlIGluamVjdG9yIG9mIGEgc3RhbmRhbG9uZSBjb21wb25lbnQsIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBkaXNjb3ZlciB0aGUgcGxhY2Ugd2hlcmUgdGhlXG4gKiBpbXBvcnRzIGFycmF5IGlzIGxvY2F0ZWQgKHRoZSBjb21wb25lbnQpIGluIG9yZGVyIHRvIGZsYXR0ZW4gdGhlIGltcG9ydHMgYXJyYXkgd2l0aGluIGl0IHRvXG4gKiBkaXNjb3ZlciBhbGwgb2YgaXQncyBwcm92aWRlcnMuXG4gKlxuICpcbiAqIEFsbCBvZiB0aGVzZSBkYXRhIHN0cnVjdHVyZXMgYXJlIGluc3RhbnRpYXRlZCB3aXRoIFdlYWtNYXBzLiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgdGhlIHByZXNlbmNlXG4gKiBvZiBhbnkgb2JqZWN0IGluIHRoZSBrZXlzIG9mIHRoZXNlIG1hcHMgZG9lcyBub3QgcHJldmVudCB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IgZnJvbSBjb2xsZWN0aW5nXG4gKiB0aG9zZSBvYmplY3RzLiBCZWNhdXNlIG9mIHRoaXMgcHJvcGVydHkgb2YgV2Vha01hcHMsIHRoZXNlIGRhdGEgc3RydWN0dXJlcyB3aWxsIG5ldmVyIGJlIHRoZVxuICogc291cmNlIG9mIGEgbWVtb3J5IGxlYWsuXG4gKlxuICogQW4gZXhhbXBsZSBvZiB0aGlzIGFkdmFudGFnZTogV2hlbiBjb21wb25lbnRzIGFyZSBkZXN0cm95ZWQsIHdlIGRvbid0IG5lZWQgdG8gZG9cbiAqIGFueSBhZGRpdGlvbmFsIHdvcmsgdG8gcmVtb3ZlIHRoYXQgY29tcG9uZW50IGZyb20gb3VyIG1hcHBpbmdzLlxuICpcbiAqL1xuY2xhc3MgRElEZWJ1Z0RhdGEge1xuICByZXNvbHZlclRvVG9rZW5Ub0RlcGVuZGVuY2llcyA9IG5ldyBXZWFrTWFwPFxuICAgIEluamVjdG9yIHwgTFZpZXcsXG4gICAgV2Vha01hcDxUeXBlPHVua25vd24+LCBJbmplY3RlZFNlcnZpY2VbXT5cbiAgPigpO1xuICByZXNvbHZlclRvUHJvdmlkZXJzID0gbmV3IFdlYWtNYXA8SW5qZWN0b3IgfCBUTm9kZSwgUHJvdmlkZXJSZWNvcmRbXT4oKTtcbiAgc3RhbmRhbG9uZUluamVjdG9yVG9Db21wb25lbnQgPSBuZXcgV2Vha01hcDxJbmplY3RvciwgVHlwZTx1bmtub3duPj4oKTtcblxuICByZXNldCgpIHtcbiAgICB0aGlzLnJlc29sdmVyVG9Ub2tlblRvRGVwZW5kZW5jaWVzID0gbmV3IFdlYWtNYXA8XG4gICAgICBJbmplY3RvciB8IExWaWV3LFxuICAgICAgV2Vha01hcDxUeXBlPHVua25vd24+LCBJbmplY3RlZFNlcnZpY2VbXT5cbiAgICA+KCk7XG4gICAgdGhpcy5yZXNvbHZlclRvUHJvdmlkZXJzID0gbmV3IFdlYWtNYXA8SW5qZWN0b3IgfCBUTm9kZSwgUHJvdmlkZXJSZWNvcmRbXT4oKTtcbiAgICB0aGlzLnN0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50ID0gbmV3IFdlYWtNYXA8SW5qZWN0b3IsIFR5cGU8dW5rbm93bj4+KCk7XG4gIH1cbn1cblxubGV0IGZyYW1ld29ya0RJRGVidWdEYXRhID0gbmV3IERJRGVidWdEYXRhKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGcmFtZXdvcmtESURlYnVnRGF0YSgpOiBESURlYnVnRGF0YSB7XG4gIHJldHVybiBmcmFtZXdvcmtESURlYnVnRGF0YTtcbn1cblxuLyoqXG4gKiBJbml0YWxpemUgZGVmYXVsdCBoYW5kbGluZyBvZiBpbmplY3RvciBldmVudHMuIFRoaXMgaGFuZGxpbmcgcGFyc2VzIGV2ZW50c1xuICogYXMgdGhleSBhcmUgZW1pdHRlZCBhbmQgY29uc3RydWN0cyB0aGUgZGF0YSBzdHJ1Y3R1cmVzIG5lY2Vzc2FyeSB0byBzdXBwb3J0XG4gKiBzb21lIG9mIGRlYnVnIEFQSXMuXG4gKlxuICogU2VlIGhhbmRsZUluamVjdEV2ZW50LCBoYW5kbGVDcmVhdGVFdmVudCBhbmQgaGFuZGxlUHJvdmlkZXJDb25maWd1cmVkRXZlbnRcbiAqIGZvciBkZXNjcmlwdGlvbnMgb2YgZWFjaCBoYW5kbGVyXG4gKlxuICogU3VwcG9ydGVkIEFQSXM6XG4gKiAgICAgICAgICAgICAgIC0gZ2V0RGVwZW5kZW5jaWVzRnJvbUluamVjdGFibGVcbiAqICAgICAgICAgICAgICAgLSBnZXRJbmplY3RvclByb3ZpZGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBGcmFtZXdvcmtJbmplY3RvclByb2ZpbGVyKCk6IHZvaWQge1xuICBmcmFtZXdvcmtESURlYnVnRGF0YS5yZXNldCgpO1xuICBzZXRJbmplY3RvclByb2ZpbGVyKChpbmplY3RvclByb2ZpbGVyRXZlbnQpID0+XG4gICAgaGFuZGxlSW5qZWN0b3JQcm9maWxlckV2ZW50KGluamVjdG9yUHJvZmlsZXJFdmVudCksXG4gICk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUluamVjdG9yUHJvZmlsZXJFdmVudChpbmplY3RvclByb2ZpbGVyRXZlbnQ6IEluamVjdG9yUHJvZmlsZXJFdmVudCk6IHZvaWQge1xuICBjb25zdCB7Y29udGV4dCwgdHlwZX0gPSBpbmplY3RvclByb2ZpbGVyRXZlbnQ7XG5cbiAgaWYgKHR5cGUgPT09IEluamVjdG9yUHJvZmlsZXJFdmVudFR5cGUuSW5qZWN0KSB7XG4gICAgaGFuZGxlSW5qZWN0RXZlbnQoY29udGV4dCwgaW5qZWN0b3JQcm9maWxlckV2ZW50LnNlcnZpY2UpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IEluamVjdG9yUHJvZmlsZXJFdmVudFR5cGUuSW5zdGFuY2VDcmVhdGVkQnlJbmplY3Rvcikge1xuICAgIGhhbmRsZUluc3RhbmNlQ3JlYXRlZEJ5SW5qZWN0b3JFdmVudChjb250ZXh0LCBpbmplY3RvclByb2ZpbGVyRXZlbnQuaW5zdGFuY2UpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IEluamVjdG9yUHJvZmlsZXJFdmVudFR5cGUuUHJvdmlkZXJDb25maWd1cmVkKSB7XG4gICAgaGFuZGxlUHJvdmlkZXJDb25maWd1cmVkRXZlbnQoY29udGV4dCwgaW5qZWN0b3JQcm9maWxlckV2ZW50LnByb3ZpZGVyUmVjb3JkKTtcbiAgfVxufVxuXG4vKipcbiAqXG4gKiBTdG9yZXMgdGhlIGluamVjdGVkIHNlcnZpY2UgaW4gZnJhbWV3b3JrRElEZWJ1Z0RhdGEucmVzb2x2ZXJUb1Rva2VuVG9EZXBlbmRlbmNpZXNcbiAqIGJhc2VkIG9uIGl0J3MgaW5qZWN0b3IgYW5kIHRva2VuLlxuICpcbiAqIEBwYXJhbSBjb250ZXh0IEluamVjdG9yUHJvZmlsZXJDb250ZXh0IHRoZSBpbmplY3Rpb24gY29udGV4dCB0aGF0IHRoaXMgZXZlbnQgb2NjdXJyZWQgaW4uXG4gKiBAcGFyYW0gZGF0YSBJbmplY3RlZFNlcnZpY2UgdGhlIHNlcnZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5qZWN0IGV2ZW50LlxuICpcbiAqL1xuZnVuY3Rpb24gaGFuZGxlSW5qZWN0RXZlbnQoY29udGV4dDogSW5qZWN0b3JQcm9maWxlckNvbnRleHQsIGRhdGE6IEluamVjdGVkU2VydmljZSkge1xuICBjb25zdCBkaVJlc29sdmVyID0gZ2V0RElSZXNvbHZlcihjb250ZXh0LmluamVjdG9yKTtcbiAgaWYgKGRpUmVzb2x2ZXIgPT09IG51bGwpIHtcbiAgICB0aHJvd0Vycm9yKCdBbiBJbmplY3QgZXZlbnQgbXVzdCBiZSBydW4gd2l0aGluIGFuIGluamVjdGlvbiBjb250ZXh0LicpO1xuICB9XG5cbiAgY29uc3QgZGlSZXNvbHZlclRvSW5zdGFudGlhdGVkVG9rZW4gPSBmcmFtZXdvcmtESURlYnVnRGF0YS5yZXNvbHZlclRvVG9rZW5Ub0RlcGVuZGVuY2llcztcblxuICBpZiAoIWRpUmVzb2x2ZXJUb0luc3RhbnRpYXRlZFRva2VuLmhhcyhkaVJlc29sdmVyKSkge1xuICAgIGRpUmVzb2x2ZXJUb0luc3RhbnRpYXRlZFRva2VuLnNldChkaVJlc29sdmVyLCBuZXcgV2Vha01hcDxUeXBlPHVua25vd24+LCBJbmplY3RlZFNlcnZpY2VbXT4oKSk7XG4gIH1cblxuICAvLyBpZiB0b2tlbiBpcyBhIHByaW1pdGl2ZSB0eXBlLCBpZ25vcmUgdGhpcyBldmVudC4gV2UgZG8gdGhpcyBiZWNhdXNlIHdlIGNhbm5vdCBrZWVwIHRyYWNrIG9mXG4gIC8vIG5vbi1wcmltaXRpdmUgdG9rZW5zIGluIFdlYWtNYXBzIHNpbmNlIHRoZXkgYXJlIG5vdCBnYXJiYWdlIGNvbGxlY3RhYmxlLlxuICBpZiAoIWNhbkJlSGVsZFdlYWtseShjb250ZXh0LnRva2VuKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGluc3RhbnRpYXRlZFRva2VuVG9EZXBlbmRlbmNpZXMgPSBkaVJlc29sdmVyVG9JbnN0YW50aWF0ZWRUb2tlbi5nZXQoZGlSZXNvbHZlcikhO1xuICBpZiAoIWluc3RhbnRpYXRlZFRva2VuVG9EZXBlbmRlbmNpZXMuaGFzKGNvbnRleHQudG9rZW4hKSkge1xuICAgIGluc3RhbnRpYXRlZFRva2VuVG9EZXBlbmRlbmNpZXMuc2V0KGNvbnRleHQudG9rZW4hLCBbXSk7XG4gIH1cblxuICBjb25zdCB7dG9rZW4sIHZhbHVlLCBmbGFnc30gPSBkYXRhO1xuXG4gIGFzc2VydERlZmluZWQoY29udGV4dC50b2tlbiwgJ0luamVjdG9yIHByb2ZpbGVyIGNvbnRleHQgdG9rZW4gaXMgdW5kZWZpbmVkLicpO1xuXG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IGluc3RhbnRpYXRlZFRva2VuVG9EZXBlbmRlbmNpZXMuZ2V0KGNvbnRleHQudG9rZW4pO1xuICBhc3NlcnREZWZpbmVkKGRlcGVuZGVuY2llcywgJ0NvdWxkIG5vdCByZXNvbHZlIGRlcGVuZGVuY2llcyBmb3IgdG9rZW4uJyk7XG5cbiAgaWYgKGNvbnRleHQuaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkZXBlbmRlbmNpZXMucHVzaCh7dG9rZW4sIHZhbHVlLCBmbGFncywgaW5qZWN0ZWRJbjogZ2V0Tm9kZUluamVjdG9yQ29udGV4dChjb250ZXh0LmluamVjdG9yKX0pO1xuICB9IGVsc2Uge1xuICAgIGRlcGVuZGVuY2llcy5wdXNoKHt0b2tlbiwgdmFsdWUsIGZsYWdzfSk7XG4gIH1cbn1cblxuLyoqXG4gKlxuICogUmV0dXJucyB0aGUgTFZpZXcgYW5kIFROb2RlIGFzc29jaWF0ZWQgd2l0aCBhIE5vZGVJbmplY3Rvci4gUmV0dXJucyB1bmRlZmluZWQgaWYgdGhlIGluamVjdG9yXG4gKiBpcyBub3QgYSBOb2RlSW5qZWN0b3IuXG4gKlxuICogQHBhcmFtIGluamVjdG9yXG4gKiBAcmV0dXJucyB7bFZpZXc6IExWaWV3LCB0Tm9kZTogVE5vZGV9fHVuZGVmaW5lZFxuICovXG5mdW5jdGlvbiBnZXROb2RlSW5qZWN0b3JDb250ZXh0KGluamVjdG9yOiBJbmplY3Rvcik6IHtsVmlldzogTFZpZXc7IHROb2RlOiBUTm9kZX0gfCB1bmRlZmluZWQge1xuICBpZiAoIShpbmplY3RvciBpbnN0YW5jZW9mIE5vZGVJbmplY3RvcikpIHtcbiAgICB0aHJvd0Vycm9yKCdnZXROb2RlSW5qZWN0b3JDb250ZXh0IG11c3QgYmUgY2FsbGVkIHdpdGggYSBOb2RlSW5qZWN0b3InKTtcbiAgfVxuXG4gIGNvbnN0IGxWaWV3ID0gZ2V0Tm9kZUluamVjdG9yTFZpZXcoaW5qZWN0b3IpO1xuICBjb25zdCB0Tm9kZSA9IGdldE5vZGVJbmplY3RvclROb2RlKGluamVjdG9yKTtcbiAgaWYgKHROb2RlID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgYXNzZXJ0VE5vZGVGb3JMVmlldyh0Tm9kZSwgbFZpZXcpO1xuXG4gIHJldHVybiB7bFZpZXcsIHROb2RlfTtcbn1cblxuLyoqXG4gKlxuICogSWYgdGhlIGNyZWF0ZWQgaW5zdGFuY2UgaXMgYW4gaW5zdGFuY2Ugb2YgYSBzdGFuZGFsb25lIGNvbXBvbmVudCwgbWFwcyB0aGUgaW5qZWN0b3IgdG8gdGhhdFxuICogc3RhbmRhbG9uZSBjb21wb25lbnQgaW4gZnJhbWV3b3JrRElEZWJ1Z0RhdGEuc3RhbmRhbG9uZUluamVjdG9yVG9Db21wb25lbnRcbiAqXG4gKiBAcGFyYW0gY29udGV4dCBJbmplY3RvclByb2ZpbGVyQ29udGV4dCB0aGUgaW5qZWN0aW9uIGNvbnRleHQgdGhhdCB0aGlzIGV2ZW50IG9jY3VycmVkIGluLlxuICogQHBhcmFtIGRhdGEgSW5qZWN0b3JDcmVhdGVkSW5zdGFuY2UgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGluc3RhbmNlIHRoYXQgd2FzIGp1c3QgY3JlYXRlZFxuICpcbiAqL1xuZnVuY3Rpb24gaGFuZGxlSW5zdGFuY2VDcmVhdGVkQnlJbmplY3RvckV2ZW50KFxuICBjb250ZXh0OiBJbmplY3RvclByb2ZpbGVyQ29udGV4dCxcbiAgZGF0YTogSW5qZWN0b3JDcmVhdGVkSW5zdGFuY2UsXG4pOiB2b2lkIHtcbiAgY29uc3Qge3ZhbHVlfSA9IGRhdGE7XG5cbiAgaWYgKGdldERJUmVzb2x2ZXIoY29udGV4dC5pbmplY3RvcikgPT09IG51bGwpIHtcbiAgICB0aHJvd0Vycm9yKCdBbiBJbmplY3RvckNyZWF0ZWRJbnN0YW5jZSBldmVudCBtdXN0IGJlIHJ1biB3aXRoaW4gYW4gaW5qZWN0aW9uIGNvbnRleHQuJyk7XG4gIH1cblxuICAvLyBpZiBvdXIgdmFsdWUgaXMgYW4gaW5zdGFuY2Ugb2YgYSBzdGFuZGFsb25lIGNvbXBvbmVudCwgbWFwIHRoZSBpbmplY3RvciBvZiB0aGF0IHN0YW5kYWxvbmVcbiAgLy8gY29tcG9uZW50IHRvIHRoZSBjb21wb25lbnQgY2xhc3MuIE90aGVyd2lzZSwgdGhpcyBldmVudCBpcyBhIG5vb3AuXG4gIGxldCBzdGFuZGFsb25lQ29tcG9uZW50OiBUeXBlPHVua25vd24+IHwgdW5kZWZpbmVkIHwgbnVsbCA9IHVuZGVmaW5lZDtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzdGFuZGFsb25lQ29tcG9uZW50ID0gdmFsdWU/LmNvbnN0cnVjdG9yIGFzIFR5cGU8dW5rbm93bj4gfCB1bmRlZmluZWQgfCBudWxsO1xuICB9XG5cbiAgLy8gV2Ugd2FudCB0byBhbHNvIGNvdmVyIGlmIGBzdGFuZGFsb25lQ29tcG9uZW50ID09PSBudWxsYCBpbiBhZGRpdGlvbiB0byBgdW5kZWZpbmVkYFxuICBpZiAoc3RhbmRhbG9uZUNvbXBvbmVudCA9PSB1bmRlZmluZWQgfHwgIWlzU3RhbmRhbG9uZUNvbXBvbmVudChzdGFuZGFsb25lQ29tcG9uZW50KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGVudmlyb25tZW50SW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IgfCBudWxsID0gY29udGV4dC5pbmplY3Rvci5nZXQoXG4gICAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBudWxsLFxuICAgIHtvcHRpb25hbDogdHJ1ZX0sXG4gICk7XG4gIC8vIFN0YW5kYWxvbmUgY29tcG9uZW50cyBzaG91bGQgaGF2ZSBhbiBlbnZpcm9ubWVudCBpbmplY3Rvci4gSWYgb25lIGNhbm5vdCBiZVxuICAvLyBmb3VuZCB3ZSBtYXkgYmUgaW4gYSB0ZXN0IGNhc2UgZm9yIGxvdyBsZXZlbCBmdW5jdGlvbmFsaXR5IHRoYXQgZGlkIG5vdCBleHBsaWNpdGx5XG4gIC8vIHNldHVwIHRoaXMgaW5qZWN0b3IuIEluIHRob3NlIGNhc2VzLCB3ZSBzaW1wbHkgaWdub3JlIHRoaXMgZXZlbnQuXG4gIGlmIChlbnZpcm9ubWVudEluamVjdG9yID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qge3N0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50fSA9IGZyYW1ld29ya0RJRGVidWdEYXRhO1xuXG4gIC8vIElmIG91ciBpbmplY3RvciBoYXMgYWxyZWFkeSBiZWVuIG1hcHBlZCwgYXMgaXMgdGhlIGNhc2VcbiAgLy8gd2hlbiBhIHN0YW5kYWxvbmUgY29tcG9uZW50IGltcG9ydHMgYW5vdGhlciBzdGFuZGFsb25lIGNvbXBvbmVudCxcbiAgLy8gd2UgY29uc2lkZXIgdGhlIG9yaWdpbmFsIGNvbXBvbmVudCAodGhlIGNvbXBvbmVudCBkb2luZyB0aGUgaW1wb3J0aW5nKVxuICAvLyBhcyB0aGUgY29tcG9uZW50IGNvbm5lY3RlZCB0byBvdXIgaW5qZWN0b3IuXG4gIGlmIChzdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudC5oYXMoZW52aXJvbm1lbnRJbmplY3RvcikpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gSWYgb3VyIGluamVjdG9yIGhhc24ndCBiZWVuIG1hcHBlZCwgdGhlbiB3ZSBtYXAgaXQgdG8gdGhlIHN0YW5kYWxvbmUgY29tcG9uZW50XG4gIHN0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50LnNldChlbnZpcm9ubWVudEluamVjdG9yLCBzdGFuZGFsb25lQ29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gaXNTdGFuZGFsb25lQ29tcG9uZW50KHZhbHVlOiBUeXBlPHVua25vd24+KTogYm9vbGVhbiB7XG4gIGNvbnN0IGRlZiA9IGdldENvbXBvbmVudERlZih2YWx1ZSk7XG4gIHJldHVybiAhIWRlZj8uc3RhbmRhbG9uZTtcbn1cblxuLyoqXG4gKlxuICogU3RvcmVzIHRoZSBlbWl0dGVkIFByb3ZpZGVyUmVjb3JkcyBmcm9tIHRoZSBJbmplY3RvclByb2ZpbGVyRXZlbnRUeXBlLlByb3ZpZGVyQ29uZmlndXJlZFxuICogZXZlbnQgaW4gZnJhbWV3b3JrRElEZWJ1Z0RhdGEucmVzb2x2ZXJUb1Byb3ZpZGVyc1xuICpcbiAqIEBwYXJhbSBjb250ZXh0IEluamVjdG9yUHJvZmlsZXJDb250ZXh0IHRoZSBpbmplY3Rpb24gY29udGV4dCB0aGF0IHRoaXMgZXZlbnQgb2NjdXJyZWQgaW4uXG4gKiBAcGFyYW0gZGF0YSBQcm92aWRlclJlY29yZCBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgaW5zdGFuY2UgdGhhdCB3YXMganVzdCBjcmVhdGVkXG4gKlxuICovXG5mdW5jdGlvbiBoYW5kbGVQcm92aWRlckNvbmZpZ3VyZWRFdmVudChcbiAgY29udGV4dDogSW5qZWN0b3JQcm9maWxlckNvbnRleHQsXG4gIGRhdGE6IFByb3ZpZGVyUmVjb3JkLFxuKTogdm9pZCB7XG4gIGNvbnN0IHtyZXNvbHZlclRvUHJvdmlkZXJzfSA9IGZyYW1ld29ya0RJRGVidWdEYXRhO1xuXG4gIGxldCBkaVJlc29sdmVyOiBJbmplY3RvciB8IFROb2RlO1xuICBpZiAoY29udGV4dD8uaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkaVJlc29sdmVyID0gZ2V0Tm9kZUluamVjdG9yVE5vZGUoY29udGV4dC5pbmplY3RvcikgYXMgVE5vZGU7XG4gIH0gZWxzZSB7XG4gICAgZGlSZXNvbHZlciA9IGNvbnRleHQuaW5qZWN0b3I7XG4gIH1cblxuICBpZiAoZGlSZXNvbHZlciA9PT0gbnVsbCkge1xuICAgIHRocm93RXJyb3IoJ0EgUHJvdmlkZXJDb25maWd1cmVkIGV2ZW50IG11c3QgYmUgcnVuIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dC4nKTtcbiAgfVxuXG4gIGlmICghcmVzb2x2ZXJUb1Byb3ZpZGVycy5oYXMoZGlSZXNvbHZlcikpIHtcbiAgICByZXNvbHZlclRvUHJvdmlkZXJzLnNldChkaVJlc29sdmVyLCBbXSk7XG4gIH1cblxuICByZXNvbHZlclRvUHJvdmlkZXJzLmdldChkaVJlc29sdmVyKSEucHVzaChkYXRhKTtcbn1cblxuZnVuY3Rpb24gZ2V0RElSZXNvbHZlcihpbmplY3RvcjogSW5qZWN0b3IgfCB1bmRlZmluZWQpOiBJbmplY3RvciB8IExWaWV3IHwgbnVsbCB7XG4gIGxldCBkaVJlc29sdmVyOiBJbmplY3RvciB8IExWaWV3IHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKGluamVjdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZGlSZXNvbHZlcjtcbiAgfVxuXG4gIC8vIFdlIHVzZSB0aGUgTFZpZXcgYXMgdGhlIGRpUmVzb2x2ZXIgZm9yIE5vZGVJbmplY3RvcnMgYmVjYXVzZSB0aGV5XG4gIC8vIGRvIG5vdCBwZXJzaXN0IGFueXdoZXJlIGluIHRoZSBmcmFtZXdvcmsuIFRoZXkgYXJlIHNpbXBseSB3cmFwcGVycyBhcm91bmQgYW4gTFZpZXcgYW5kIGEgVE5vZGVcbiAgLy8gdGhhdCBkbyBwZXJzaXN0LiBCZWNhdXNlIG9mIHRoaXMsIHdlIHJlbHkgb24gdGhlIExWaWV3IG9mIHRoZSBOb2RlSW5qZWN0b3IgaW4gb3JkZXIgdG8gdXNlXG4gIC8vIGFzIGEgY29uY3JldGUga2V5IHRvIHJlcHJlc2VudCB0aGlzIGluamVjdG9yLiBJZiB3ZSBnZXQgdGhlIHNhbWUgTFZpZXcgYmFjayBsYXRlciwgd2Uga25vd1xuICAvLyB3ZSdyZSBsb29raW5nIGF0IHRoZSBzYW1lIGluamVjdG9yLlxuICBpZiAoaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkaVJlc29sdmVyID0gZ2V0Tm9kZUluamVjdG9yTFZpZXcoaW5qZWN0b3IpO1xuICB9XG4gIC8vIE90aGVyIGluamVjdG9ycyBjYW4gYmUgdXNlZCBhIGtleXMgZm9yIGEgbWFwIGJlY2F1c2UgdGhlaXIgaW5zdGFuY2VzXG4gIC8vIHBlcnNpc3RcbiAgZWxzZSB7XG4gICAgZGlSZXNvbHZlciA9IGluamVjdG9yO1xuICB9XG5cbiAgcmV0dXJuIGRpUmVzb2x2ZXI7XG59XG5cbi8vIGluc3BpcmVkIGJ5XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi9tdWx0aXBhZ2UvZXhlY3V0YWJsZS1jb2RlLWFuZC1leGVjdXRpb24tY29udGV4dHMuaHRtbCNzZWMtY2FuYmVoZWxkd2Vha2x5XG5mdW5jdGlvbiBjYW5CZUhlbGRXZWFrbHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAvLyB3ZSBjaGVjayBmb3IgdmFsdWUgIT09IG51bGwgaGVyZSBiZWNhdXNlIHR5cGVvZiBudWxsID09PSAnb2JqZWN0XG4gIHJldHVybiAoXG4gICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHZhbHVlID09PSAnc3ltYm9sJylcbiAgKTtcbn1cbiJdfQ==
@@ -22,5 +22,5 @@ export class Version {
22
22
  /**
23
23
  * @publicApi
24
24
  */
25
- export const VERSION = new Version('18.1.0-next.4');
25
+ export const VERSION = new Version('18.1.0');
26
26
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxPQUFPO0lBS2xCLFlBQW1CLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgdGhlIHZlcnNpb24gb2YgQW5ndWxhclxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGNsYXNzIFZlcnNpb24ge1xuICBwdWJsaWMgcmVhZG9ubHkgbWFqb3I6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG1pbm9yOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBwYXRjaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmdWxsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJ0cyA9IGZ1bGwuc3BsaXQoJy4nKTtcbiAgICB0aGlzLm1ham9yID0gcGFydHNbMF07XG4gICAgdGhpcy5taW5vciA9IHBhcnRzWzFdO1xuICAgIHRoaXMucGF0Y2ggPSBwYXJ0cy5zbGljZSgyKS5qb2luKCcuJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzAuMC4wLVBMQUNFSE9MREVSJyk7XG4iXX0=
@@ -25,10 +25,10 @@ export class Log {
25
25
  result() {
26
26
  return this.logItems.join('; ');
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.4", ngImport: i0, type: Log, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.4", ngImport: i0, type: Log }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: Log, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: Log }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.4", ngImport: i0, type: Log, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: Log, decorators: [{
32
32
  type: Injectable
33
33
  }], ctorParameters: () => [] });
34
34
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS90ZXN0aW5nL3NyYy9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFHekMsTUFBTSxPQUFPLEdBQUc7SUFHZDtRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBUTtRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxFQUFFLENBQUMsS0FBUTtRQUNULE9BQU8sR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzt5SEF2QlUsR0FBRzs2SEFBSCxHQUFHOztzR0FBSCxHQUFHO2tCQURmLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvZzxUID0gc3RyaW5nPiB7XG4gIGxvZ0l0ZW1zOiBUW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5sb2dJdGVtcyA9IFtdO1xuICB9XG5cbiAgYWRkKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgdGhpcy5sb2dJdGVtcy5wdXNoKHZhbHVlKTtcbiAgfVxuXG4gIGZuKHZhbHVlOiBUKSB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHRoaXMubG9nSXRlbXMucHVzaCh2YWx1ZSk7XG4gICAgfTtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMubG9nSXRlbXMgPSBbXTtcbiAgfVxuXG4gIHJlc3VsdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvZ0l0ZW1zLmpvaW4oJzsgJyk7XG4gIH1cbn1cbiJdfQ==
package/fesm2022/core.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v18.1.0-next.4
2
+ * @license Angular v18.1.0
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -7,8 +7,7 @@
7
7
  import { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1, createWatch as createWatch$1 } from '@angular/core/primitives/signals';
8
8
  import { BehaviorSubject, Subject, Subscription } from 'rxjs';
9
9
  import { map, first } from 'rxjs/operators';
10
- import * as Attributes from '@angular/core/primitives/event-dispatch';
11
- import { EventContract, EventContractContainer, EventDispatcher, registerDispatcher, isSupportedEvent, isCaptureEvent } from '@angular/core/primitives/event-dispatch';
10
+ import { Attribute as Attribute$1, isSupportedEvent, registerEventType, unregisterEventType, EventContract, EventContractContainer, EventDispatcher, registerDispatcher, isCaptureEvent } from '@angular/core/primitives/event-dispatch';
12
11
 
13
12
  /**
14
13
  * Base URL for the error details page.
@@ -17201,7 +17200,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
17201
17200
  function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
17202
17201
  if (rootSelectorOrNode) {
17203
17202
  // The placeholder will be replaced with the actual version at build time.
17204
- setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.1.0-next.4']);
17203
+ setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.1.0']);
17205
17204
  }
17206
17205
  else {
17207
17206
  // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
@@ -20776,17 +20775,55 @@ function renderDeferBlockState(newState, tNode, lContainer, skipTimerScheduling
20776
20775
  }
20777
20776
  }
20778
20777
  /**
20779
- * Creates an instance of the `OutletInjector` using a private factory
20780
- * function available on the `OutletInjector` class.
20781
- *
20782
- * @param parentOutletInjector Parent OutletInjector, which should be used
20783
- * to produce a new instance.
20784
- * @param parentInjector An Injector, which should be used as a parent one
20785
- * for a newly created `OutletInjector` instance.
20778
+ * Checks whether there is a cached injector associated with a given defer block
20779
+ * declaration and returns if it exists. If there is no cached injector present -
20780
+ * creates a new injector and stores in the cache.
20786
20781
  */
20787
- function createRouterOutletInjector(parentOutletInjector, parentInjector) {
20788
- const outletInjector = parentOutletInjector.injector;
20789
- return outletInjector.__ngOutletInjector(parentInjector);
20782
+ function getOrCreateEnvironmentInjector(parentInjector, tDetails, providers) {
20783
+ return parentInjector
20784
+ .get(CachedInjectorService)
20785
+ .getOrCreateInjector(tDetails, parentInjector, providers, ngDevMode ? 'DeferBlock Injector' : '');
20786
+ }
20787
+ /**
20788
+ * Creates a new injector, which contains providers collected from dependencies (NgModules) of
20789
+ * defer-loaded components. This function detects different types of parent injectors and creates
20790
+ * a new injector based on that.
20791
+ */
20792
+ function createDeferBlockInjector(parentInjector, tDetails, providers) {
20793
+ // Check if the parent injector is an instance of a `ChainedInjector`.
20794
+ //
20795
+ // In this case, we retain the shape of the injector and use a newly created
20796
+ // `EnvironmentInjector` as a parent in the `ChainedInjector`. That is needed to
20797
+ // make sure that the primary injector gets consulted first (since it's typically
20798
+ // a NodeInjector) and `EnvironmentInjector` tree is consulted after that.
20799
+ if (parentInjector instanceof ChainedInjector) {
20800
+ const origInjector = parentInjector.injector;
20801
+ // Guaranteed to be an environment injector
20802
+ const parentEnvInjector = parentInjector.parentInjector;
20803
+ const envInjector = getOrCreateEnvironmentInjector(parentEnvInjector, tDetails, providers);
20804
+ return new ChainedInjector(origInjector, envInjector);
20805
+ }
20806
+ const parentEnvInjector = parentInjector.get(EnvironmentInjector);
20807
+ // If the `parentInjector` is *not* an `EnvironmentInjector` - we need to create
20808
+ // a new `ChainedInjector` with the following setup:
20809
+ //
20810
+ // - the provided `parentInjector` becomes a primary injector
20811
+ // - an existing (real) `EnvironmentInjector` becomes a parent injector for
20812
+ // a newly-created one, which contains extra providers
20813
+ //
20814
+ // So the final order in which injectors would be consulted in this case would look like this:
20815
+ //
20816
+ // 1. Provided `parentInjector`
20817
+ // 2. Newly-created `EnvironmentInjector` with extra providers
20818
+ // 3. `EnvironmentInjector` from the `parentInjector`
20819
+ if (parentEnvInjector !== parentInjector) {
20820
+ const envInjector = getOrCreateEnvironmentInjector(parentEnvInjector, tDetails, providers);
20821
+ return new ChainedInjector(parentInjector, envInjector);
20822
+ }
20823
+ // The `parentInjector` is an instance of an `EnvironmentInjector`.
20824
+ // No need for special handling, we can use `parentInjector` as a
20825
+ // parent injector directly.
20826
+ return getOrCreateEnvironmentInjector(parentInjector, tDetails, providers);
20790
20827
  }
20791
20828
  /**
20792
20829
  * Applies changes to the DOM to reflect a given state.
@@ -20808,32 +20845,12 @@ function applyDeferBlockState(newState, lDetails, lContainer, tNode, hostLView)
20808
20845
  // newly loaded standalone components used within the block, which may
20809
20846
  // import NgModules with providers. In order to make those providers
20810
20847
  // available for components declared in that NgModule, we create an instance
20811
- // of environment injector to host those providers and pass this injector
20848
+ // of an environment injector to host those providers and pass this injector
20812
20849
  // to the logic that creates a view.
20813
20850
  const tDetails = getTDeferBlockDetails(hostTView, tNode);
20814
20851
  const providers = tDetails.providers;
20815
20852
  if (providers && providers.length > 0) {
20816
- const parentInjector = hostLView[INJECTOR];
20817
- // Note: we have a special case for Router's `OutletInjector`,
20818
- // since it's not an instance of the `EnvironmentInjector`, so
20819
- // we can't inject it. Once the `OutletInjector` is replaced
20820
- // with the `EnvironmentInjector` in Router's code, this special
20821
- // handling can be removed.
20822
- const isParentOutletInjector = isRouterOutletInjector(parentInjector);
20823
- const parentEnvInjector = isParentOutletInjector
20824
- ? parentInjector
20825
- : parentInjector.get(EnvironmentInjector);
20826
- injector = parentEnvInjector
20827
- .get(CachedInjectorService)
20828
- .getOrCreateInjector(tDetails, parentEnvInjector, providers, ngDevMode ? 'DeferBlock Injector' : '');
20829
- // Note: this is a continuation of the special case for Router's `OutletInjector`.
20830
- // Since the `OutletInjector` handles `ActivatedRoute` and `ChildrenOutletContexts`
20831
- // dynamically (i.e. their values are not really stored statically in an injector),
20832
- // we need to "wrap" a defer injector into another `OutletInjector`, so we retain
20833
- // the dynamic resolution of the mentioned tokens.
20834
- if (isParentOutletInjector) {
20835
- injector = createRouterOutletInjector(parentInjector, injector);
20836
- }
20853
+ injector = createDeferBlockInjector(hostLView[INJECTOR], tDetails, providers);
20837
20854
  }
20838
20855
  }
20839
20856
  const dehydratedView = findMatchingDehydratedView(lContainer, activeBlockTNode.tView.ssrId);
@@ -30981,7 +30998,7 @@ class Version {
30981
30998
  /**
30982
30999
  * @publicApi
30983
31000
  */
30984
- const VERSION = new Version('18.1.0-next.4');
31001
+ const VERSION = new Version('18.1.0');
30985
31002
 
30986
31003
  /*
30987
31004
  * This file exists to support compilation of @angular/core in Ivy mode.
@@ -31178,7 +31195,8 @@ function handleInstanceCreatedByInjectorEvent(context, data) {
31178
31195
  if (typeof value === 'object') {
31179
31196
  standaloneComponent = value?.constructor;
31180
31197
  }
31181
- if (standaloneComponent === undefined || !isStandaloneComponent(standaloneComponent)) {
31198
+ // We want to also cover if `standaloneComponent === null` in addition to `undefined`
31199
+ if (standaloneComponent == undefined || !isStandaloneComponent(standaloneComponent)) {
31182
31200
  return;
31183
31201
  }
31184
31202
  const environmentInjector = context.injector.get(EnvironmentInjector, null, { optional: true });
@@ -33425,7 +33443,7 @@ class ChangeDetectionSchedulerImpl {
33425
33443
  *
33426
33444
  * @publicApi
33427
33445
  * @experimental
33428
- * @see {@link bootstrapApplication}
33446
+ * @see [bootstrapApplication](/api/platform-browser/bootstrapApplication)
33429
33447
  */
33430
33448
  function provideExperimentalZonelessChangeDetection() {
33431
33449
  performanceMarkFeature('NgZoneless');
@@ -36368,6 +36386,9 @@ function signalUpdateFn(node, updater) {
36368
36386
  }
36369
36387
  signalSetFn(node, updater(node.value));
36370
36388
  }
36389
+ function runPostSignalSetFn() {
36390
+ postSignalSetFn?.();
36391
+ }
36371
36392
  // Note: Using an IIFE here to ensure that the spread assignment is not considered
36372
36393
  // a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.
36373
36394
  // TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.
@@ -36756,14 +36777,13 @@ function invokeRegisteredListeners(event) {
36756
36777
  handler(event);
36757
36778
  }
36758
36779
  }
36759
- function setJSActionAttribute(nativeElement, eventTypes) {
36780
+ function setJSActionAttributes(nativeElement, eventTypes) {
36760
36781
  if (!eventTypes.length) {
36761
36782
  return;
36762
36783
  }
36763
36784
  const parts = eventTypes.reduce((prev, curr) => prev + curr + ':;', '');
36764
- const existingAttr = nativeElement.getAttribute(Attributes.JSACTION);
36765
- // This is required to be a module accessor to appease security tests on setAttribute.
36766
- nativeElement.setAttribute(Attributes.JSACTION, `${existingAttr ?? ''}${parts}`);
36785
+ const existingAttr = nativeElement.getAttribute(Attribute$1.JSACTION);
36786
+ nativeElement.setAttribute(Attribute$1.JSACTION, `${existingAttr ?? ''}${parts}`);
36767
36787
  }
36768
36788
  const sharedStashFunction = (rEl, eventType, listenerFn) => {
36769
36789
  const el = rEl;
@@ -36774,33 +36794,51 @@ const sharedStashFunction = (rEl, eventType, listenerFn) => {
36774
36794
  el.__jsaction_fns = eventListenerMap;
36775
36795
  };
36776
36796
  const removeListeners = (el) => {
36777
- el.removeAttribute(Attributes.JSACTION);
36797
+ el.removeAttribute(Attribute$1.JSACTION);
36778
36798
  el.__jsaction_fns = undefined;
36779
36799
  };
36800
+ const JSACTION_EVENT_CONTRACT = new InjectionToken(ngDevMode ? 'EVENT_CONTRACT_DETAILS' : '', {
36801
+ providedIn: 'root',
36802
+ factory: () => ({}),
36803
+ });
36804
+ const GLOBAL_EVENT_DELEGATION = new InjectionToken(ngDevMode ? 'GLOBAL_EVENT_DELEGATION' : '');
36805
+ /**
36806
+ * This class is the delegate for `EventDelegationPlugin`. It represents the
36807
+ * noop version of this class, with the enabled version set when
36808
+ * `provideGlobalEventDelegation` is called.
36809
+ */
36780
36810
  class GlobalEventDelegation {
36781
- addEvent(el, eventName) {
36782
- if (this.eventContract) {
36783
- this.eventContract.addEvent(eventName);
36784
- setJSActionAttribute(el, [eventName]);
36785
- return true;
36786
- }
36787
- return false;
36811
+ constructor() {
36812
+ this.eventContractDetails = inject(JSACTION_EVENT_CONTRACT);
36813
+ }
36814
+ ngOnDestroy() {
36815
+ this.eventContractDetails.instance?.cleanUp();
36816
+ }
36817
+ supports(eventName) {
36818
+ return isSupportedEvent(eventName);
36819
+ }
36820
+ addEventListener(element, eventName, handler) {
36821
+ this.eventContractDetails.instance.addEvent(eventName);
36822
+ registerEventType(element, eventName, '');
36823
+ return () => this.removeEventListener(element, eventName, handler);
36824
+ }
36825
+ removeEventListener(element, eventName, callback) {
36826
+ unregisterEventType(element, eventName);
36788
36827
  }
36789
36828
  static { this.ɵfac = function GlobalEventDelegation_Factory(t) { return new (t || GlobalEventDelegation)(); }; }
36790
- static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: GlobalEventDelegation, factory: GlobalEventDelegation.ɵfac, providedIn: 'root' }); }
36829
+ static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: GlobalEventDelegation, factory: GlobalEventDelegation.ɵfac }); }
36791
36830
  }
36792
36831
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(GlobalEventDelegation, [{
36793
- type: Injectable,
36794
- args: [{ providedIn: 'root' }]
36832
+ type: Injectable
36795
36833
  }], null, null); })();
36796
- const initGlobalEventDelegation = (eventDelegation, injector) => {
36834
+ const initGlobalEventDelegation = (eventContractDetails, injector) => {
36797
36835
  if (injector.get(IS_EVENT_REPLAY_ENABLED, EVENT_REPLAY_ENABLED_DEFAULT)) {
36798
36836
  return;
36799
36837
  }
36800
- eventDelegation.eventContract = new EventContract(new EventContractContainer(document.body),
36801
- /* useActionResolver= */ false);
36838
+ const eventContract = (eventContractDetails.instance = new EventContract(new EventContractContainer(document.body),
36839
+ /* useActionResolver= */ false));
36802
36840
  const dispatcher = new EventDispatcher(invokeRegisteredListeners);
36803
- registerDispatcher(eventDelegation.eventContract, dispatcher);
36841
+ registerDispatcher(eventContract, dispatcher);
36804
36842
  };
36805
36843
 
36806
36844
  const CONTRACT_PROPERTY = 'ngContracts';
@@ -36868,8 +36906,8 @@ function withEventReplay() {
36868
36906
  // of the application is completed. This timing is similar to the unclaimed
36869
36907
  // dehydrated views cleanup timing.
36870
36908
  whenStable(appRef).then(() => {
36871
- const globalEventDelegation = injector.get(GlobalEventDelegation);
36872
- initEventReplay(globalEventDelegation, injector);
36909
+ const eventContractDetails = injector.get(JSACTION_EVENT_CONTRACT);
36910
+ initEventReplay(eventContractDetails, injector);
36873
36911
  jsactionSet.forEach(removeListeners);
36874
36912
  // After hydration, we shouldn't need to do anymore work related to
36875
36913
  // event replay anymore.
@@ -36892,7 +36930,7 @@ const initEventReplay = (eventDelegation, injector) => {
36892
36930
  // This is set in packages/platform-server/src/utils.ts
36893
36931
  const container = globalThis[CONTRACT_PROPERTY]?.[appId];
36894
36932
  const earlyJsactionData = getJsactionData(container);
36895
- const eventContract = (eventDelegation.eventContract = new EventContract(new EventContractContainer(earlyJsactionData.c),
36933
+ const eventContract = (eventDelegation.instance = new EventContract(new EventContractContainer(earlyJsactionData.c),
36896
36934
  /* useActionResolver= */ false));
36897
36935
  for (const et of earlyJsactionData.et) {
36898
36936
  eventContract.addEvent(et);
@@ -37276,7 +37314,7 @@ function serializeLView(lView, context) {
37276
37314
  if (nativeElementsToEventTypes && tNode.type & 2 /* TNodeType.Element */) {
37277
37315
  const nativeElement = unwrapRNode(lView[i]);
37278
37316
  if (nativeElementsToEventTypes.has(nativeElement)) {
37279
- setJSActionAttribute(nativeElement, nativeElementsToEventTypes.get(nativeElement));
37317
+ setJSActionAttributes(nativeElement, nativeElementsToEventTypes.get(nativeElement));
37280
37318
  }
37281
37319
  }
37282
37320
  if (Array.isArray(tNode.projection)) {
@@ -37723,6 +37761,32 @@ function verifySsrContentsIntegrity() {
37723
37761
  }
37724
37762
  }
37725
37763
 
37764
+ /**
37765
+ * Returns a set of providers required to setup support for event delegation.
37766
+ */
37767
+ function provideGlobalEventDelegation() {
37768
+ return [
37769
+ {
37770
+ provide: IS_GLOBAL_EVENT_DELEGATION_ENABLED,
37771
+ useValue: true,
37772
+ },
37773
+ {
37774
+ provide: ENVIRONMENT_INITIALIZER,
37775
+ useValue: () => {
37776
+ const injector = inject(Injector);
37777
+ const eventContractDetails = injector.get(JSACTION_EVENT_CONTRACT);
37778
+ initGlobalEventDelegation(eventContractDetails, injector);
37779
+ setStashFn(sharedStashFunction);
37780
+ },
37781
+ multi: true,
37782
+ },
37783
+ {
37784
+ provide: GLOBAL_EVENT_DELEGATION,
37785
+ useClass: GlobalEventDelegation,
37786
+ },
37787
+ ];
37788
+ }
37789
+
37726
37790
  /**
37727
37791
  * Queue a state update to be performed asynchronously.
37728
37792
  *
@@ -38288,5 +38352,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
38288
38352
  * Generated bundle index. Do not edit.
38289
38353
  */
38290
38354
 
38291
- export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, ExperimentalPendingTasks, HOST_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, OutputEmitterRef, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, afterNextRender, afterRender, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderEventManager as ɵAfterRenderEventManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, EffectScheduler as ɵEffectScheduler, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasks as ɵPendingTasks, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, depsTracker as ɵdepsTracker, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalAfterNextRender as ɵinternalAfterNextRender, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, queueStateUpdate as ɵqueueStateUpdate, readHydrationInfo as ɵreadHydrationInfo, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, whenStable as ɵwhenStable, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareClassMetadataAsync, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
38355
+ export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, ExperimentalPendingTasks, HOST_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, OutputEmitterRef, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, afterNextRender, afterRender, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderEventManager as ɵAfterRenderEventManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, EffectScheduler as ɵEffectScheduler, GLOBAL_EVENT_DELEGATION as ɵGLOBAL_EVENT_DELEGATION, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasks as ɵPendingTasks, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, depsTracker as ɵdepsTracker, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalAfterNextRender as ɵinternalAfterNextRender, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, provideGlobalEventDelegation as ɵprovideGlobalEventDelegation, queueStateUpdate as ɵqueueStateUpdate, readHydrationInfo as ɵreadHydrationInfo, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, whenStable as ɵwhenStable, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareClassMetadataAsync, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
38292
38356
  //# sourceMappingURL=core.mjs.map