@angular/core 17.0.0-next.4 → 17.0.0-next.5

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 (42) hide show
  1. package/esm2022/src/core.mjs +2 -2
  2. package/esm2022/src/core_private_export.mjs +3 -1
  3. package/esm2022/src/core_render3_private_export.mjs +3 -2
  4. package/esm2022/src/errors.mjs +1 -1
  5. package/esm2022/src/metadata/ng_module_def.mjs +1 -1
  6. package/esm2022/src/render3/after_render_hooks.mjs +100 -13
  7. package/esm2022/src/render3/deps_tracker/api.mjs +1 -1
  8. package/esm2022/src/render3/deps_tracker/deps_tracker.mjs +13 -3
  9. package/esm2022/src/render3/index.mjs +2 -2
  10. package/esm2022/src/render3/instructions/defer.mjs +121 -40
  11. package/esm2022/src/render3/interfaces/defer.mjs +66 -1
  12. package/esm2022/src/render3/interfaces/definition.mjs +1 -1
  13. package/esm2022/src/render3/local_compilation.mjs +8 -2
  14. package/esm2022/src/render3/reactive_lview_consumer.mjs +1 -1
  15. package/esm2022/src/render3/reactivity/effect.mjs +3 -15
  16. package/esm2022/src/render3/scope.mjs +10 -4
  17. package/esm2022/src/signals/src/api.mjs +2 -2
  18. package/esm2022/src/signals/src/computed.mjs +50 -45
  19. package/esm2022/src/signals/src/graph.mjs +7 -2
  20. package/esm2022/src/signals/src/signal.mjs +11 -6
  21. package/esm2022/src/signals/src/watch.mjs +40 -12
  22. package/esm2022/src/version.mjs +1 -1
  23. package/esm2022/testing/src/component_fixture.mjs +17 -2
  24. package/esm2022/testing/src/defer.mjs +84 -0
  25. package/esm2022/testing/src/logger.mjs +3 -3
  26. package/esm2022/testing/src/test_bed.mjs +12 -2
  27. package/esm2022/testing/src/test_bed_common.mjs +1 -1
  28. package/esm2022/testing/src/test_bed_compiler.mjs +5 -2
  29. package/esm2022/testing/src/testing.mjs +3 -1
  30. package/fesm2022/core.mjs +415 -132
  31. package/fesm2022/core.mjs.map +1 -1
  32. package/fesm2022/rxjs-interop.mjs +1 -1
  33. package/fesm2022/testing.mjs +107 -3
  34. package/fesm2022/testing.mjs.map +1 -1
  35. package/index.d.ts +202 -8
  36. package/package.json +3 -3
  37. package/rxjs-interop/index.d.ts +1 -1
  38. package/schematics/migrations/guard-and-resolve-interfaces/bundle.js +13 -13
  39. package/schematics/migrations/remove-module-id/bundle.js +14 -14
  40. package/schematics/ng-generate/standalone-migration/bundle.js +1890 -1155
  41. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  42. package/testing/index.d.ts +41 -1
@@ -38,7 +38,7 @@ export { Sanitizer } from './sanitization/sanitizer';
38
38
  export { createNgModule, createNgModuleRef, createEnvironmentInjector } from './render3/ng_module_ref';
39
39
  export { createComponent, reflectComponentType } from './render3/component';
40
40
  export { isStandalone } from './render3/definition';
41
- export { afterRender, afterNextRender } from './render3/after_render_hooks';
41
+ export { AfterRenderPhase, afterRender, afterNextRender } from './render3/after_render_hooks';
42
42
  export { mergeApplicationConfig } from './application_config';
43
43
  export { makeStateKey, TransferState } from './transfer_state';
44
44
  export { booleanAttribute, numberAttribute } from './util/coercion';
@@ -55,4 +55,4 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
55
55
  'For server-side rendering applications add the import to your `main.server.ts` file.)');
56
56
  };
57
57
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2NvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7Ozs7R0FJRztBQUNILGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsV0FBVyxDQUFDO0FBRTFCLGNBQWMsTUFBTSxDQUFDO0FBQ3JCLE9BQU8sRUFBQyxjQUFjLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQW1DLFdBQVcsRUFBRSxjQUFjLEVBQUUsMEJBQTBCLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDdFAsT0FBTyxFQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuSSxPQUFPLEVBQUMsZUFBZSxFQUFFLHFCQUFxQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDMUUsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQVksTUFBTSxvQkFBb0IsQ0FBQztBQUMxSCxPQUFPLEVBQWlCLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pILGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxPQUFPLEVBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSwwQkFBMEIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQWUsSUFBSSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxjQUFjLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRyxPQUFPLEVBQUMsZUFBZSxFQUFFLG9CQUFvQixFQUFrQixNQUFNLHFCQUFxQixDQUFDO0FBQzNGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQXFDLFdBQVcsRUFBRSxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RyxPQUFPLEVBQW9CLHNCQUFzQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDL0UsT0FBTyxFQUFDLFlBQVksRUFBWSxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFbEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7SUFDakQsZ0dBQWdHO0lBQ2hHLDhDQUE4QztJQUM5Qyx3REFBd0Q7SUFDeEQsTUFBTSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJO1FBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQ1gsNEVBQTRFO1lBQzVFLGlGQUFpRjtZQUNqRiwrREFBK0Q7WUFDL0QsZ0dBQWdHO1lBQ2hHLHVGQUF1RixDQUFDLENBQUM7SUFDL0YsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlXG4gKiBAZGVzY3JpcHRpb25cbiAqIEVudHJ5IHBvaW50IGZyb20gd2hpY2ggeW91IHNob3VsZCBpbXBvcnQgYWxsIHB1YmxpYyBjb3JlIEFQSXMuXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbWV0YWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi92ZXJzaW9uJztcbmV4cG9ydCB7VHlwZURlY29yYXRvcn0gZnJvbSAnLi91dGlsL2RlY29yYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9kaSc7XG5leHBvcnQge2NyZWF0ZVBsYXRmb3JtLCBhc3NlcnRQbGF0Zm9ybSwgZGVzdHJveVBsYXRmb3JtLCBnZXRQbGF0Zm9ybSwgQm9vdHN0cmFwT3B0aW9ucywgTmdab25lT3B0aW9ucywgUGxhdGZvcm1SZWYsIEFwcGxpY2F0aW9uUmVmLCBwcm92aWRlWm9uZUNoYW5nZURldGVjdGlvbiwgY3JlYXRlUGxhdGZvcm1GYWN0b3J5LCBOZ1Byb2JlVG9rZW4sIEFQUF9CT09UU1RSQVBfTElTVEVORVJ9IGZyb20gJy4vYXBwbGljYXRpb25fcmVmJztcbmV4cG9ydCB7ZW5hYmxlUHJvZE1vZGUsIGlzRGV2TW9kZX0gZnJvbSAnLi91dGlsL2lzX2Rldl9tb2RlJztcbmV4cG9ydCB7QVBQX0lELCBQQUNLQUdFX1JPT1RfVVJMLCBQTEFURk9STV9JTklUSUFMSVpFUiwgUExBVEZPUk1fSUQsIEFOSU1BVElPTl9NT0RVTEVfVFlQRSwgQ1NQX05PTkNFfSBmcm9tICcuL2FwcGxpY2F0aW9uX3Rva2Vucyc7XG5leHBvcnQge0FQUF9JTklUSUFMSVpFUiwgQXBwbGljYXRpb25Jbml0U3RhdHVzfSBmcm9tICcuL2FwcGxpY2F0aW9uX2luaXQnO1xuZXhwb3J0ICogZnJvbSAnLi96b25lJztcbmV4cG9ydCAqIGZyb20gJy4vcmVuZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGlua2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGlua2VyL25nX21vZHVsZV9mYWN0b3J5X2xvYWRlcl9pbXBsJztcbmV4cG9ydCB7RGVidWdFbGVtZW50LCBEZWJ1Z0V2ZW50TGlzdGVuZXIsIERlYnVnTm9kZSwgYXNOYXRpdmVFbGVtZW50cywgZ2V0RGVidWdOb2RlLCBQcmVkaWNhdGV9IGZyb20gJy4vZGVidWcvZGVidWdfbm9kZSc7XG5leHBvcnQge0dldFRlc3RhYmlsaXR5LCBUZXN0YWJpbGl0eSwgVGVzdGFiaWxpdHlSZWdpc3RyeSwgc2V0VGVzdGFiaWxpdHlHZXR0ZXJ9IGZyb20gJy4vdGVzdGFiaWxpdHkvdGVzdGFiaWxpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFuZ2VfZGV0ZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vcGxhdGZvcm1fY29yZV9wcm92aWRlcnMnO1xuZXhwb3J0IHtUUkFOU0xBVElPTlMsIFRSQU5TTEFUSU9OU19GT1JNQVQsIExPQ0FMRV9JRCwgREVGQVVMVF9DVVJSRU5DWV9DT0RFLCBNaXNzaW5nVHJhbnNsYXRpb25TdHJhdGVneX0gZnJvbSAnLi9pMThuL3Rva2Vucyc7XG5leHBvcnQge0FwcGxpY2F0aW9uTW9kdWxlfSBmcm9tICcuL2FwcGxpY2F0aW9uX21vZHVsZSc7XG5leHBvcnQge0Fic3RyYWN0VHlwZSwgVHlwZX0gZnJvbSAnLi9pbnRlcmZhY2UvdHlwZSc7XG5leHBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSAnLi9ldmVudF9lbWl0dGVyJztcbmV4cG9ydCB7RXJyb3JIYW5kbGVyfSBmcm9tICcuL2Vycm9yX2hhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlX3ByaXZhdGVfZXhwb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZV9yZW5kZXIzX3ByaXZhdGVfZXhwb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZV9yZWFjdGl2aXR5X2V4cG9ydCc7XG5leHBvcnQge1NlY3VyaXR5Q29udGV4dH0gZnJvbSAnLi9zYW5pdGl6YXRpb24vc2VjdXJpdHknO1xuZXhwb3J0IHtTYW5pdGl6ZXJ9IGZyb20gJy4vc2FuaXRpemF0aW9uL3Nhbml0aXplcic7XG5leHBvcnQge2NyZWF0ZU5nTW9kdWxlLCBjcmVhdGVOZ01vZHVsZVJlZiwgY3JlYXRlRW52aXJvbm1lbnRJbmplY3Rvcn0gZnJvbSAnLi9yZW5kZXIzL25nX21vZHVsZV9yZWYnO1xuZXhwb3J0IHtjcmVhdGVDb21wb25lbnQsIHJlZmxlY3RDb21wb25lbnRUeXBlLCBDb21wb25lbnRNaXJyb3J9IGZyb20gJy4vcmVuZGVyMy9jb21wb25lbnQnO1xuZXhwb3J0IHtpc1N0YW5kYWxvbmV9IGZyb20gJy4vcmVuZGVyMy9kZWZpbml0aW9uJztcbmV4cG9ydCB7QWZ0ZXJSZW5kZXJSZWYsIEFmdGVyUmVuZGVyT3B0aW9ucywgYWZ0ZXJSZW5kZXIsIGFmdGVyTmV4dFJlbmRlcn0gZnJvbSAnLi9yZW5kZXIzL2FmdGVyX3JlbmRlcl9ob29rcyc7XG5leHBvcnQge0FwcGxpY2F0aW9uQ29uZmlnLCBtZXJnZUFwcGxpY2F0aW9uQ29uZmlnfSBmcm9tICcuL2FwcGxpY2F0aW9uX2NvbmZpZyc7XG5leHBvcnQge21ha2VTdGF0ZUtleSwgU3RhdGVLZXksIFRyYW5zZmVyU3RhdGV9IGZyb20gJy4vdHJhbnNmZXJfc3RhdGUnO1xuZXhwb3J0IHtib29sZWFuQXR0cmlidXRlLCBudW1iZXJBdHRyaWJ1dGV9IGZyb20gJy4vdXRpbC9jb2VyY2lvbic7XG5cbmltcG9ydCB7Z2xvYmFsfSBmcm9tICcuL3V0aWwvZ2xvYmFsJztcbmlmICh0eXBlb2YgbmdEZXZNb2RlICE9PSAndW5kZWZpbmVkJyAmJiBuZ0Rldk1vZGUpIHtcbiAgLy8gVGhpcyBoZWxwZXIgaXMgdG8gZ2l2ZSBhIHJlYXNvbmFibGUgZXJyb3IgbWVzc2FnZSB0byBwZW9wbGUgdXBncmFkaW5nIHRvIHY5IHRoYXQgaGF2ZSBub3QgeWV0XG4gIC8vIGluc3RhbGxlZCBgQGFuZ3VsYXIvbG9jYWxpemVgIGluIHRoZWlyIGFwcC5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby10b3BsZXZlbC1wcm9wZXJ0eS1hY2Nlc3NcbiAgZ2xvYmFsLiRsb2NhbGl6ZSA9IGdsb2JhbC4kbG9jYWxpemUgfHwgZnVuY3Rpb24oKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnSXQgbG9va3MgbGlrZSB5b3VyIGFwcGxpY2F0aW9uIG9yIG9uZSBvZiBpdHMgZGVwZW5kZW5jaWVzIGlzIHVzaW5nIGkxOG4uXFxuJyArXG4gICAgICAgICdBbmd1bGFyIDkgaW50cm9kdWNlZCBhIGdsb2JhbCBgJGxvY2FsaXplKClgIGZ1bmN0aW9uIHRoYXQgbmVlZHMgdG8gYmUgbG9hZGVkLlxcbicgK1xuICAgICAgICAnUGxlYXNlIHJ1biBgbmcgYWRkIEBhbmd1bGFyL2xvY2FsaXplYCBmcm9tIHRoZSBBbmd1bGFyIENMSS5cXG4nICtcbiAgICAgICAgJyhGb3Igbm9uLUNMSSBwcm9qZWN0cywgYWRkIGBpbXBvcnQgXFwnQGFuZ3VsYXIvbG9jYWxpemUvaW5pdFxcJztgIHRvIHlvdXIgYHBvbHlmaWxscy50c2AgZmlsZS5cXG4nICtcbiAgICAgICAgJ0ZvciBzZXJ2ZXItc2lkZSByZW5kZXJpbmcgYXBwbGljYXRpb25zIGFkZCB0aGUgaW1wb3J0IHRvIHlvdXIgYG1haW4uc2VydmVyLnRzYCBmaWxlLiknKTtcbiAgfTtcbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2NvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7Ozs7R0FJRztBQUNILGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsV0FBVyxDQUFDO0FBRTFCLGNBQWMsTUFBTSxDQUFDO0FBQ3JCLE9BQU8sRUFBQyxjQUFjLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQW1DLFdBQVcsRUFBRSxjQUFjLEVBQUUsMEJBQTBCLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDdFAsT0FBTyxFQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuSSxPQUFPLEVBQUMsZUFBZSxFQUFFLHFCQUFxQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDMUUsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQVksTUFBTSxvQkFBb0IsQ0FBQztBQUMxSCxPQUFPLEVBQWlCLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pILGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxPQUFPLEVBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSwwQkFBMEIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQWUsSUFBSSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxjQUFjLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRyxPQUFPLEVBQUMsZUFBZSxFQUFFLG9CQUFvQixFQUFrQixNQUFNLHFCQUFxQixDQUFDO0FBQzNGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQXFDLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoSSxPQUFPLEVBQW9CLHNCQUFzQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDL0UsT0FBTyxFQUFDLFlBQVksRUFBWSxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFbEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7SUFDakQsZ0dBQWdHO0lBQ2hHLDhDQUE4QztJQUM5Qyx3REFBd0Q7SUFDeEQsTUFBTSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJO1FBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQ1gsNEVBQTRFO1lBQzVFLGlGQUFpRjtZQUNqRiwrREFBK0Q7WUFDL0QsZ0dBQWdHO1lBQ2hHLHVGQUF1RixDQUFDLENBQUM7SUFDL0YsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlXG4gKiBAZGVzY3JpcHRpb25cbiAqIEVudHJ5IHBvaW50IGZyb20gd2hpY2ggeW91IHNob3VsZCBpbXBvcnQgYWxsIHB1YmxpYyBjb3JlIEFQSXMuXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbWV0YWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi92ZXJzaW9uJztcbmV4cG9ydCB7VHlwZURlY29yYXRvcn0gZnJvbSAnLi91dGlsL2RlY29yYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9kaSc7XG5leHBvcnQge2NyZWF0ZVBsYXRmb3JtLCBhc3NlcnRQbGF0Zm9ybSwgZGVzdHJveVBsYXRmb3JtLCBnZXRQbGF0Zm9ybSwgQm9vdHN0cmFwT3B0aW9ucywgTmdab25lT3B0aW9ucywgUGxhdGZvcm1SZWYsIEFwcGxpY2F0aW9uUmVmLCBwcm92aWRlWm9uZUNoYW5nZURldGVjdGlvbiwgY3JlYXRlUGxhdGZvcm1GYWN0b3J5LCBOZ1Byb2JlVG9rZW4sIEFQUF9CT09UU1RSQVBfTElTVEVORVJ9IGZyb20gJy4vYXBwbGljYXRpb25fcmVmJztcbmV4cG9ydCB7ZW5hYmxlUHJvZE1vZGUsIGlzRGV2TW9kZX0gZnJvbSAnLi91dGlsL2lzX2Rldl9tb2RlJztcbmV4cG9ydCB7QVBQX0lELCBQQUNLQUdFX1JPT1RfVVJMLCBQTEFURk9STV9JTklUSUFMSVpFUiwgUExBVEZPUk1fSUQsIEFOSU1BVElPTl9NT0RVTEVfVFlQRSwgQ1NQX05PTkNFfSBmcm9tICcuL2FwcGxpY2F0aW9uX3Rva2Vucyc7XG5leHBvcnQge0FQUF9JTklUSUFMSVpFUiwgQXBwbGljYXRpb25Jbml0U3RhdHVzfSBmcm9tICcuL2FwcGxpY2F0aW9uX2luaXQnO1xuZXhwb3J0ICogZnJvbSAnLi96b25lJztcbmV4cG9ydCAqIGZyb20gJy4vcmVuZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGlua2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGlua2VyL25nX21vZHVsZV9mYWN0b3J5X2xvYWRlcl9pbXBsJztcbmV4cG9ydCB7RGVidWdFbGVtZW50LCBEZWJ1Z0V2ZW50TGlzdGVuZXIsIERlYnVnTm9kZSwgYXNOYXRpdmVFbGVtZW50cywgZ2V0RGVidWdOb2RlLCBQcmVkaWNhdGV9IGZyb20gJy4vZGVidWcvZGVidWdfbm9kZSc7XG5leHBvcnQge0dldFRlc3RhYmlsaXR5LCBUZXN0YWJpbGl0eSwgVGVzdGFiaWxpdHlSZWdpc3RyeSwgc2V0VGVzdGFiaWxpdHlHZXR0ZXJ9IGZyb20gJy4vdGVzdGFiaWxpdHkvdGVzdGFiaWxpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFuZ2VfZGV0ZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vcGxhdGZvcm1fY29yZV9wcm92aWRlcnMnO1xuZXhwb3J0IHtUUkFOU0xBVElPTlMsIFRSQU5TTEFUSU9OU19GT1JNQVQsIExPQ0FMRV9JRCwgREVGQVVMVF9DVVJSRU5DWV9DT0RFLCBNaXNzaW5nVHJhbnNsYXRpb25TdHJhdGVneX0gZnJvbSAnLi9pMThuL3Rva2Vucyc7XG5leHBvcnQge0FwcGxpY2F0aW9uTW9kdWxlfSBmcm9tICcuL2FwcGxpY2F0aW9uX21vZHVsZSc7XG5leHBvcnQge0Fic3RyYWN0VHlwZSwgVHlwZX0gZnJvbSAnLi9pbnRlcmZhY2UvdHlwZSc7XG5leHBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSAnLi9ldmVudF9lbWl0dGVyJztcbmV4cG9ydCB7RXJyb3JIYW5kbGVyfSBmcm9tICcuL2Vycm9yX2hhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlX3ByaXZhdGVfZXhwb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZV9yZW5kZXIzX3ByaXZhdGVfZXhwb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZV9yZWFjdGl2aXR5X2V4cG9ydCc7XG5leHBvcnQge1NlY3VyaXR5Q29udGV4dH0gZnJvbSAnLi9zYW5pdGl6YXRpb24vc2VjdXJpdHknO1xuZXhwb3J0IHtTYW5pdGl6ZXJ9IGZyb20gJy4vc2FuaXRpemF0aW9uL3Nhbml0aXplcic7XG5leHBvcnQge2NyZWF0ZU5nTW9kdWxlLCBjcmVhdGVOZ01vZHVsZVJlZiwgY3JlYXRlRW52aXJvbm1lbnRJbmplY3Rvcn0gZnJvbSAnLi9yZW5kZXIzL25nX21vZHVsZV9yZWYnO1xuZXhwb3J0IHtjcmVhdGVDb21wb25lbnQsIHJlZmxlY3RDb21wb25lbnRUeXBlLCBDb21wb25lbnRNaXJyb3J9IGZyb20gJy4vcmVuZGVyMy9jb21wb25lbnQnO1xuZXhwb3J0IHtpc1N0YW5kYWxvbmV9IGZyb20gJy4vcmVuZGVyMy9kZWZpbml0aW9uJztcbmV4cG9ydCB7QWZ0ZXJSZW5kZXJSZWYsIEFmdGVyUmVuZGVyT3B0aW9ucywgQWZ0ZXJSZW5kZXJQaGFzZSwgYWZ0ZXJSZW5kZXIsIGFmdGVyTmV4dFJlbmRlcn0gZnJvbSAnLi9yZW5kZXIzL2FmdGVyX3JlbmRlcl9ob29rcyc7XG5leHBvcnQge0FwcGxpY2F0aW9uQ29uZmlnLCBtZXJnZUFwcGxpY2F0aW9uQ29uZmlnfSBmcm9tICcuL2FwcGxpY2F0aW9uX2NvbmZpZyc7XG5leHBvcnQge21ha2VTdGF0ZUtleSwgU3RhdGVLZXksIFRyYW5zZmVyU3RhdGV9IGZyb20gJy4vdHJhbnNmZXJfc3RhdGUnO1xuZXhwb3J0IHtib29sZWFuQXR0cmlidXRlLCBudW1iZXJBdHRyaWJ1dGV9IGZyb20gJy4vdXRpbC9jb2VyY2lvbic7XG5cbmltcG9ydCB7Z2xvYmFsfSBmcm9tICcuL3V0aWwvZ2xvYmFsJztcbmlmICh0eXBlb2YgbmdEZXZNb2RlICE9PSAndW5kZWZpbmVkJyAmJiBuZ0Rldk1vZGUpIHtcbiAgLy8gVGhpcyBoZWxwZXIgaXMgdG8gZ2l2ZSBhIHJlYXNvbmFibGUgZXJyb3IgbWVzc2FnZSB0byBwZW9wbGUgdXBncmFkaW5nIHRvIHY5IHRoYXQgaGF2ZSBub3QgeWV0XG4gIC8vIGluc3RhbGxlZCBgQGFuZ3VsYXIvbG9jYWxpemVgIGluIHRoZWlyIGFwcC5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby10b3BsZXZlbC1wcm9wZXJ0eS1hY2Nlc3NcbiAgZ2xvYmFsLiRsb2NhbGl6ZSA9IGdsb2JhbC4kbG9jYWxpemUgfHwgZnVuY3Rpb24oKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnSXQgbG9va3MgbGlrZSB5b3VyIGFwcGxpY2F0aW9uIG9yIG9uZSBvZiBpdHMgZGVwZW5kZW5jaWVzIGlzIHVzaW5nIGkxOG4uXFxuJyArXG4gICAgICAgICdBbmd1bGFyIDkgaW50cm9kdWNlZCBhIGdsb2JhbCBgJGxvY2FsaXplKClgIGZ1bmN0aW9uIHRoYXQgbmVlZHMgdG8gYmUgbG9hZGVkLlxcbicgK1xuICAgICAgICAnUGxlYXNlIHJ1biBgbmcgYWRkIEBhbmd1bGFyL2xvY2FsaXplYCBmcm9tIHRoZSBBbmd1bGFyIENMSS5cXG4nICtcbiAgICAgICAgJyhGb3Igbm9uLUNMSSBwcm9qZWN0cywgYWRkIGBpbXBvcnQgXFwnQGFuZ3VsYXIvbG9jYWxpemUvaW5pdFxcJztgIHRvIHlvdXIgYHBvbHlmaWxscy50c2AgZmlsZS5cXG4nICtcbiAgICAgICAgJ0ZvciBzZXJ2ZXItc2lkZSByZW5kZXJpbmcgYXBwbGljYXRpb25zIGFkZCB0aGUgaW1wb3J0IHRvIHlvdXIgYG1haW4uc2VydmVyLnRzYCBmaWxlLiknKTtcbiAgfTtcbn1cbiJdfQ==
@@ -26,6 +26,8 @@ export { ComponentFactory as ɵComponentFactory } from './linker/component_facto
26
26
  export { clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue } from './metadata/resource_loading';
27
27
  export { ReflectionCapabilities as ɵReflectionCapabilities } from './reflection/reflection_capabilities';
28
28
  export { setInjectorProfilerContext as ɵsetInjectorProfilerContext } from './render3/debug/injector_profiler';
29
+ export { getDeferBlocks as ɵgetDeferBlocks, renderDeferBlockState as ɵrenderDeferBlockState, triggerResourceLoading as ɵtriggerResourceLoading } from './render3/instructions/defer';
30
+ export { DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState } from './render3/interfaces/defer';
29
31
  export { allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, getSanitizationBypassType as ɵgetSanitizationBypassType, unwrapSafeValue as ɵunwrapSafeValue } from './sanitization/bypass';
30
32
  export { _sanitizeHtml as ɵ_sanitizeHtml } from './sanitization/html_sanitizer';
31
33
  export { _sanitizeUrl as ɵ_sanitizeUrl } from './sanitization/url_sanitizer';
@@ -37,4 +39,4 @@ export { global as ɵglobal } from './util/global';
37
39
  export { isPromise as ɵisPromise, isSubscribable as ɵisSubscribable } from './util/lang';
38
40
  export { stringify as ɵstringify } from './util/stringify';
39
41
  export { NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR } from './view/provider_flags';
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZV9wcml2YXRlX2V4cG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2NvcmVfcHJpdmF0ZV9leHBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLHdCQUF3QixJQUFJLHlCQUF5QixFQUFFLHlCQUF5QixJQUFJLDBCQUEwQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakosT0FBTyxFQUFDLG9CQUFvQixJQUFJLHFCQUFxQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkYsT0FBTyxFQUFDLHNCQUFzQixJQUFJLHVCQUF1QixFQUFFLHNCQUFzQixJQUFJLHVCQUF1QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDekosT0FBTyxFQUFDLE9BQU8sSUFBSSxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFDLGlCQUFpQixJQUFJLGtCQUFrQixFQUFFLGtCQUFrQixJQUFJLG1CQUFtQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDL0gsT0FBTyxFQUFDLGdCQUFnQixJQUFJLGlCQUFpQixFQUF5QyxNQUFNLHFCQUFxQixDQUFDO0FBQ2xILE9BQU8sRUFBZ0Usc0JBQXNCLElBQUksdUJBQXVCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6SixPQUFPLEVBQUMsY0FBYyxJQUFJLGVBQWUsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUM3RCxPQUFPLEVBQUMsZ0JBQWdCLElBQUksaUJBQWlCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRSxPQUFPLEVBQUMsa0JBQWtCLElBQUksbUJBQW1CLEVBQUUsWUFBWSxJQUFJLGFBQWEsRUFBd0MsTUFBTSxVQUFVLENBQUM7QUFDekksT0FBTyxFQUFDLG9CQUFvQixJQUFJLHFCQUFxQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkYsT0FBTyxFQUFDLGdCQUFnQixJQUFJLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFDLDhCQUE4QixJQUFJLCtCQUErQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDckcsT0FBTyxFQUFDLDRCQUE0QixJQUFJLDZCQUE2QixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEcsT0FBTyxFQUFpRixjQUFjLElBQUksZUFBZSxFQUFFLHFCQUFxQixJQUFJLHNCQUFzQixFQUFFLG1CQUFtQixJQUFJLG9CQUFvQixFQUFFLGVBQWUsSUFBSSxnQkFBZ0IsRUFBRSxrQkFBa0IsSUFBSSxtQkFBbUIsRUFBRSx1QkFBdUIsSUFBSSxxQkFBcUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3pYLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzVFLE9BQU8sRUFBQyx5QkFBeUIsSUFBSSwwQkFBMEIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZHLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxpQkFBaUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pGLE9BQU8sRUFBQyx3Q0FBd0MsSUFBSSx5Q0FBeUMsRUFBRSwrQkFBK0IsSUFBSSxnQ0FBZ0MsRUFBRSx5QkFBeUIsSUFBSSwwQkFBMEIsRUFBRSwrQkFBK0IsSUFBSSxnQ0FBZ0MsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JVLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSx1QkFBdUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZHLE9BQU8sRUFBc0QsMEJBQTBCLElBQUksMkJBQTJCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqSyxPQUFPLEVBQUMsK0JBQStCLElBQUksZ0NBQWdDLEVBQTZCLHlCQUF5QixJQUFJLDBCQUEwQixFQUFnSyxlQUFlLElBQUksZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqWSxPQUFPLEVBQUMsYUFBYSxJQUFJLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzlFLE9BQU8sRUFBQyxZQUFZLElBQUksYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFDLHVCQUF1QixJQUFJLHdCQUF3QixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxXQUFXLElBQUksWUFBWSxFQUFFLGtCQUFrQixJQUFJLG1CQUFtQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDakgsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGVBQWUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxZQUFZLElBQUksYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFDLE1BQU0sSUFBSSxPQUFPLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLFNBQVMsSUFBSSxVQUFVLEVBQUUsY0FBYyxJQUFJLGVBQWUsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN2RixPQUFPLEVBQUMsU0FBUyxJQUFJLFVBQVUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxxQ0FBcUMsSUFBSSxzQ0FBc0MsRUFBQyxNQUFNLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmV4cG9ydCB7QUxMT1dfTVVMVElQTEVfUExBVEZPUk1TIGFzIMm1QUxMT1dfTVVMVElQTEVfUExBVEZPUk1TLCBpbnRlcm5hbENyZWF0ZUFwcGxpY2F0aW9uIGFzIMm1aW50ZXJuYWxDcmVhdGVBcHBsaWNhdGlvbn0gZnJvbSAnLi9hcHBsaWNhdGlvbl9yZWYnO1xuZXhwb3J0IHtFTkFCTEVEX1NTUl9GRUFUVVJFUyBhcyDJtUVOQUJMRURfU1NSX0ZFQVRVUkVTfSBmcm9tICcuL2FwcGxpY2F0aW9uX3Rva2Vucyc7XG5leHBvcnQge2RlZmF1bHRJdGVyYWJsZURpZmZlcnMgYXMgybVkZWZhdWx0SXRlcmFibGVEaWZmZXJzLCBkZWZhdWx0S2V5VmFsdWVEaWZmZXJzIGFzIMm1ZGVmYXVsdEtleVZhbHVlRGlmZmVyc30gZnJvbSAnLi9jaGFuZ2VfZGV0ZWN0aW9uL2NoYW5nZV9kZXRlY3Rpb24nO1xuZXhwb3J0IHtDb25zb2xlIGFzIMm1Q29uc29sZX0gZnJvbSAnLi9jb25zb2xlJztcbmV4cG9ydCB7Y29udmVydFRvQml0RmxhZ3MgYXMgybVjb252ZXJ0VG9CaXRGbGFncywgc2V0Q3VycmVudEluamVjdG9yIGFzIMm1c2V0Q3VycmVudEluamVjdG9yfSBmcm9tICcuL2RpL2luamVjdG9yX2NvbXBhdGliaWxpdHknO1xuZXhwb3J0IHtnZXRJbmplY3RhYmxlRGVmIGFzIMm1Z2V0SW5qZWN0YWJsZURlZiwgybXJtUluamVjdGFibGVEZWNsYXJhdGlvbiwgybXJtUluamVjdG9yRGVmfSBmcm9tICcuL2RpL2ludGVyZmFjZS9kZWZzJztcbmV4cG9ydCB7SW50ZXJuYWxFbnZpcm9ubWVudFByb3ZpZGVycyBhcyDJtUludGVybmFsRW52aXJvbm1lbnRQcm92aWRlcnMsIGlzRW52aXJvbm1lbnRQcm92aWRlcnMgYXMgybVpc0Vudmlyb25tZW50UHJvdmlkZXJzfSBmcm9tICcuL2RpL2ludGVyZmFjZS9wcm92aWRlcic7XG5leHBvcnQge0lOSkVDVE9SX1NDT1BFIGFzIMm1SU5KRUNUT1JfU0NPUEV9IGZyb20gJy4vZGkvc2NvcGUnO1xuZXhwb3J0IHtYU1NfU0VDVVJJVFlfVVJMIGFzIMm1WFNTX1NFQ1VSSVRZX1VSTH0gZnJvbSAnLi9lcnJvcl9kZXRhaWxzX2Jhc2VfdXJsJztcbmV4cG9ydCB7Zm9ybWF0UnVudGltZUVycm9yIGFzIMm1Zm9ybWF0UnVudGltZUVycm9yLCBSdW50aW1lRXJyb3IgYXMgybVSdW50aW1lRXJyb3IsIFJ1bnRpbWVFcnJvckNvZGUgYXMgybVSdW50aW1lRXJyb3JDb2RlfSBmcm9tICcuL2Vycm9ycyc7XG5leHBvcnQge2Fubm90YXRlRm9ySHlkcmF0aW9uIGFzIMm1YW5ub3RhdGVGb3JIeWRyYXRpb259IGZyb20gJy4vaHlkcmF0aW9uL2Fubm90YXRlJztcbmV4cG9ydCB7d2l0aERvbUh5ZHJhdGlvbiBhcyDJtXdpdGhEb21IeWRyYXRpb259IGZyb20gJy4vaHlkcmF0aW9uL2FwaSc7XG5leHBvcnQge0lTX0hZRFJBVElPTl9ET01fUkVVU0VfRU5BQkxFRCBhcyDJtUlTX0hZRFJBVElPTl9ET01fUkVVU0VfRU5BQkxFRH0gZnJvbSAnLi9oeWRyYXRpb24vdG9rZW5zJztcbmV4cG9ydCB7U1NSX0NPTlRFTlRfSU5URUdSSVRZX01BUktFUiBhcyDJtVNTUl9DT05URU5UX0lOVEVHUklUWV9NQVJLRVJ9IGZyb20gJy4vaHlkcmF0aW9uL3V0aWxzJztcbmV4cG9ydCB7Q3VycmVuY3lJbmRleCBhcyDJtUN1cnJlbmN5SW5kZXgsIEV4dHJhTG9jYWxlRGF0YUluZGV4IGFzIMm1RXh0cmFMb2NhbGVEYXRhSW5kZXgsIGZpbmRMb2NhbGVEYXRhIGFzIMm1ZmluZExvY2FsZURhdGEsIGdldExvY2FsZUN1cnJlbmN5Q29kZSBhcyDJtWdldExvY2FsZUN1cnJlbmN5Q29kZSwgZ2V0TG9jYWxlUGx1cmFsQ2FzZSBhcyDJtWdldExvY2FsZVBsdXJhbENhc2UsIExvY2FsZURhdGFJbmRleCBhcyDJtUxvY2FsZURhdGFJbmRleCwgcmVnaXN0ZXJMb2NhbGVEYXRhIGFzIMm1cmVnaXN0ZXJMb2NhbGVEYXRhLCB1bnJlZ2lzdGVyQWxsTG9jYWxlRGF0YSBhcyDJtXVucmVnaXN0ZXJMb2NhbGVEYXRhfSBmcm9tICcuL2kxOG4vbG9jYWxlX2RhdGFfYXBpJztcbmV4cG9ydCB7REVGQVVMVF9MT0NBTEVfSUQgYXMgybVERUZBVUxUX0xPQ0FMRV9JRH0gZnJvbSAnLi9pMThuL2xvY2FsaXphdGlvbic7XG5leHBvcnQge0luaXRpYWxSZW5kZXJQZW5kaW5nVGFza3MgYXMgybVJbml0aWFsUmVuZGVyUGVuZGluZ1Rhc2tzfSBmcm9tICcuL2luaXRpYWxfcmVuZGVyX3BlbmRpbmdfdGFza3MnO1xuZXhwb3J0IHtDb21wb25lbnRGYWN0b3J5IGFzIMm1Q29tcG9uZW50RmFjdG9yeX0gZnJvbSAnLi9saW5rZXIvY29tcG9uZW50X2ZhY3RvcnknO1xuZXhwb3J0IHtjbGVhclJlc29sdXRpb25PZkNvbXBvbmVudFJlc291cmNlc1F1ZXVlIGFzIMm1Y2xlYXJSZXNvbHV0aW9uT2ZDb21wb25lbnRSZXNvdXJjZXNRdWV1ZSwgaXNDb21wb25lbnREZWZQZW5kaW5nUmVzb2x1dGlvbiBhcyDJtWlzQ29tcG9uZW50RGVmUGVuZGluZ1Jlc29sdXRpb24sIHJlc29sdmVDb21wb25lbnRSZXNvdXJjZXMgYXMgybVyZXNvbHZlQ29tcG9uZW50UmVzb3VyY2VzLCByZXN0b3JlQ29tcG9uZW50UmVzb2x1dGlvblF1ZXVlIGFzIMm1cmVzdG9yZUNvbXBvbmVudFJlc29sdXRpb25RdWV1ZX0gZnJvbSAnLi9tZXRhZGF0YS9yZXNvdXJjZV9sb2FkaW5nJztcbmV4cG9ydCB7UmVmbGVjdGlvbkNhcGFiaWxpdGllcyBhcyDJtVJlZmxlY3Rpb25DYXBhYmlsaXRpZXN9IGZyb20gJy4vcmVmbGVjdGlvbi9yZWZsZWN0aW9uX2NhcGFiaWxpdGllcyc7XG5leHBvcnQge0luamVjdG9yUHJvZmlsZXJDb250ZXh0IGFzIMm1SW5qZWN0b3JQcm9maWxlckNvbnRleHQsIHNldEluamVjdG9yUHJvZmlsZXJDb250ZXh0IGFzIMm1c2V0SW5qZWN0b3JQcm9maWxlckNvbnRleHR9IGZyb20gJy4vcmVuZGVyMy9kZWJ1Zy9pbmplY3Rvcl9wcm9maWxlcic7XG5leHBvcnQge2FsbG93U2FuaXRpemF0aW9uQnlwYXNzQW5kVGhyb3cgYXMgybVhbGxvd1Nhbml0aXphdGlvbkJ5cGFzc0FuZFRocm93LCBCeXBhc3NUeXBlIGFzIMm1QnlwYXNzVHlwZSwgZ2V0U2FuaXRpemF0aW9uQnlwYXNzVHlwZSBhcyDJtWdldFNhbml0aXphdGlvbkJ5cGFzc1R5cGUsIFNhZmVIdG1sIGFzIMm1U2FmZUh0bWwsIFNhZmVSZXNvdXJjZVVybCBhcyDJtVNhZmVSZXNvdXJjZVVybCwgU2FmZVNjcmlwdCBhcyDJtVNhZmVTY3JpcHQsIFNhZmVTdHlsZSBhcyDJtVNhZmVTdHlsZSwgU2FmZVVybCBhcyDJtVNhZmVVcmwsIFNhZmVWYWx1ZSBhcyDJtVNhZmVWYWx1ZSwgdW53cmFwU2FmZVZhbHVlIGFzIMm1dW53cmFwU2FmZVZhbHVlfSBmcm9tICcuL3Nhbml0aXphdGlvbi9ieXBhc3MnO1xuZXhwb3J0IHtfc2FuaXRpemVIdG1sIGFzIMm1X3Nhbml0aXplSHRtbH0gZnJvbSAnLi9zYW5pdGl6YXRpb24vaHRtbF9zYW5pdGl6ZXInO1xuZXhwb3J0IHtfc2FuaXRpemVVcmwgYXMgybVfc2FuaXRpemVVcmx9IGZyb20gJy4vc2FuaXRpemF0aW9uL3VybF9zYW5pdGl6ZXInO1xuZXhwb3J0IHtzZXRBbHRlcm5hdGVXZWFrUmVmSW1wbCBhcyDJtXNldEFsdGVybmF0ZVdlYWtSZWZJbXBsfSBmcm9tICcuL3NpZ25hbHMnO1xuZXhwb3J0IHtURVNUQUJJTElUWSBhcyDJtVRFU1RBQklMSVRZLCBURVNUQUJJTElUWV9HRVRURVIgYXMgybVURVNUQUJJTElUWV9HRVRURVJ9IGZyb20gJy4vdGVzdGFiaWxpdHkvdGVzdGFiaWxpdHknO1xuZXhwb3J0IHtib29sZWFuQXR0cmlidXRlLCBudW1iZXJBdHRyaWJ1dGV9IGZyb20gJy4vdXRpbC9jb2VyY2lvbic7XG5leHBvcnQge2Rldk1vZGVFcXVhbCBhcyDJtWRldk1vZGVFcXVhbH0gZnJvbSAnLi91dGlsL2NvbXBhcmlzb24nO1xuZXhwb3J0IHtnbG9iYWwgYXMgybVnbG9iYWx9IGZyb20gJy4vdXRpbC9nbG9iYWwnO1xuZXhwb3J0IHtpc1Byb21pc2UgYXMgybVpc1Byb21pc2UsIGlzU3Vic2NyaWJhYmxlIGFzIMm1aXNTdWJzY3JpYmFibGV9IGZyb20gJy4vdXRpbC9sYW5nJztcbmV4cG9ydCB7c3RyaW5naWZ5IGFzIMm1c3RyaW5naWZ5fSBmcm9tICcuL3V0aWwvc3RyaW5naWZ5JztcbmV4cG9ydCB7Tk9UX0ZPVU5EX0NIRUNLX09OTFlfRUxFTUVOVF9JTkpFQ1RPUiBhcyDJtU5PVF9GT1VORF9DSEVDS19PTkxZX0VMRU1FTlRfSU5KRUNUT1J9IGZyb20gJy4vdmlldy9wcm92aWRlcl9mbGFncyc7XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZV9wcml2YXRlX2V4cG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2NvcmVfcHJpdmF0ZV9leHBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLHdCQUF3QixJQUFJLHlCQUF5QixFQUFFLHlCQUF5QixJQUFJLDBCQUEwQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakosT0FBTyxFQUFDLG9CQUFvQixJQUFJLHFCQUFxQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkYsT0FBTyxFQUFDLHNCQUFzQixJQUFJLHVCQUF1QixFQUFFLHNCQUFzQixJQUFJLHVCQUF1QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDekosT0FBTyxFQUFDLE9BQU8sSUFBSSxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFDLGlCQUFpQixJQUFJLGtCQUFrQixFQUFFLGtCQUFrQixJQUFJLG1CQUFtQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDL0gsT0FBTyxFQUFDLGdCQUFnQixJQUFJLGlCQUFpQixFQUF5QyxNQUFNLHFCQUFxQixDQUFDO0FBQ2xILE9BQU8sRUFBZ0Usc0JBQXNCLElBQUksdUJBQXVCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6SixPQUFPLEVBQUMsY0FBYyxJQUFJLGVBQWUsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUM3RCxPQUFPLEVBQUMsZ0JBQWdCLElBQUksaUJBQWlCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRSxPQUFPLEVBQUMsa0JBQWtCLElBQUksbUJBQW1CLEVBQUUsWUFBWSxJQUFJLGFBQWEsRUFBd0MsTUFBTSxVQUFVLENBQUM7QUFDekksT0FBTyxFQUFDLG9CQUFvQixJQUFJLHFCQUFxQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkYsT0FBTyxFQUFDLGdCQUFnQixJQUFJLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFDLDhCQUE4QixJQUFJLCtCQUErQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDckcsT0FBTyxFQUFDLDRCQUE0QixJQUFJLDZCQUE2QixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEcsT0FBTyxFQUFpRixjQUFjLElBQUksZUFBZSxFQUFFLHFCQUFxQixJQUFJLHNCQUFzQixFQUFFLG1CQUFtQixJQUFJLG9CQUFvQixFQUFFLGVBQWUsSUFBSSxnQkFBZ0IsRUFBRSxrQkFBa0IsSUFBSSxtQkFBbUIsRUFBRSx1QkFBdUIsSUFBSSxxQkFBcUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3pYLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzVFLE9BQU8sRUFBQyx5QkFBeUIsSUFBSSwwQkFBMEIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZHLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxpQkFBaUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pGLE9BQU8sRUFBQyx3Q0FBd0MsSUFBSSx5Q0FBeUMsRUFBRSwrQkFBK0IsSUFBSSxnQ0FBZ0MsRUFBRSx5QkFBeUIsSUFBSSwwQkFBMEIsRUFBRSwrQkFBK0IsSUFBSSxnQ0FBZ0MsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JVLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSx1QkFBdUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZHLE9BQU8sRUFBc0QsMEJBQTBCLElBQUksMkJBQTJCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqSyxPQUFPLEVBQTBDLGNBQWMsSUFBSSxlQUFlLEVBQUUscUJBQXFCLElBQUksc0JBQXNCLEVBQUUsc0JBQXNCLElBQUksdUJBQXVCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM1TixPQUFPLEVBQUMsa0JBQWtCLElBQUksbUJBQW1CLEVBQXlDLGVBQWUsSUFBSSxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pLLE9BQU8sRUFBQywrQkFBK0IsSUFBSSxnQ0FBZ0MsRUFBNkIseUJBQXlCLElBQUksMEJBQTBCLEVBQWdLLGVBQWUsSUFBSSxnQkFBZ0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2pZLE9BQU8sRUFBQyxhQUFhLElBQUksY0FBYyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDOUUsT0FBTyxFQUFDLFlBQVksSUFBSSxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsdUJBQXVCLElBQUksd0JBQXdCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDOUUsT0FBTyxFQUFDLFdBQVcsSUFBSSxZQUFZLEVBQUUsa0JBQWtCLElBQUksbUJBQW1CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNqSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksSUFBSSxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsTUFBTSxJQUFJLE9BQU8sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUMsU0FBUyxJQUFJLFVBQVUsRUFBRSxjQUFjLElBQUksZUFBZSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxTQUFTLElBQUksVUFBVSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFDLHFDQUFxQyxJQUFJLHNDQUFzQyxFQUFDLE1BQU0sdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0IHtBTExPV19NVUxUSVBMRV9QTEFURk9STVMgYXMgybVBTExPV19NVUxUSVBMRV9QTEFURk9STVMsIGludGVybmFsQ3JlYXRlQXBwbGljYXRpb24gYXMgybVpbnRlcm5hbENyZWF0ZUFwcGxpY2F0aW9ufSBmcm9tICcuL2FwcGxpY2F0aW9uX3JlZic7XG5leHBvcnQge0VOQUJMRURfU1NSX0ZFQVRVUkVTIGFzIMm1RU5BQkxFRF9TU1JfRkVBVFVSRVN9IGZyb20gJy4vYXBwbGljYXRpb25fdG9rZW5zJztcbmV4cG9ydCB7ZGVmYXVsdEl0ZXJhYmxlRGlmZmVycyBhcyDJtWRlZmF1bHRJdGVyYWJsZURpZmZlcnMsIGRlZmF1bHRLZXlWYWx1ZURpZmZlcnMgYXMgybVkZWZhdWx0S2V5VmFsdWVEaWZmZXJzfSBmcm9tICcuL2NoYW5nZV9kZXRlY3Rpb24vY2hhbmdlX2RldGVjdGlvbic7XG5leHBvcnQge0NvbnNvbGUgYXMgybVDb25zb2xlfSBmcm9tICcuL2NvbnNvbGUnO1xuZXhwb3J0IHtjb252ZXJ0VG9CaXRGbGFncyBhcyDJtWNvbnZlcnRUb0JpdEZsYWdzLCBzZXRDdXJyZW50SW5qZWN0b3IgYXMgybVzZXRDdXJyZW50SW5qZWN0b3J9IGZyb20gJy4vZGkvaW5qZWN0b3JfY29tcGF0aWJpbGl0eSc7XG5leHBvcnQge2dldEluamVjdGFibGVEZWYgYXMgybVnZXRJbmplY3RhYmxlRGVmLCDJtcm1SW5qZWN0YWJsZURlY2xhcmF0aW9uLCDJtcm1SW5qZWN0b3JEZWZ9IGZyb20gJy4vZGkvaW50ZXJmYWNlL2RlZnMnO1xuZXhwb3J0IHtJbnRlcm5hbEVudmlyb25tZW50UHJvdmlkZXJzIGFzIMm1SW50ZXJuYWxFbnZpcm9ubWVudFByb3ZpZGVycywgaXNFbnZpcm9ubWVudFByb3ZpZGVycyBhcyDJtWlzRW52aXJvbm1lbnRQcm92aWRlcnN9IGZyb20gJy4vZGkvaW50ZXJmYWNlL3Byb3ZpZGVyJztcbmV4cG9ydCB7SU5KRUNUT1JfU0NPUEUgYXMgybVJTkpFQ1RPUl9TQ09QRX0gZnJvbSAnLi9kaS9zY29wZSc7XG5leHBvcnQge1hTU19TRUNVUklUWV9VUkwgYXMgybVYU1NfU0VDVVJJVFlfVVJMfSBmcm9tICcuL2Vycm9yX2RldGFpbHNfYmFzZV91cmwnO1xuZXhwb3J0IHtmb3JtYXRSdW50aW1lRXJyb3IgYXMgybVmb3JtYXRSdW50aW1lRXJyb3IsIFJ1bnRpbWVFcnJvciBhcyDJtVJ1bnRpbWVFcnJvciwgUnVudGltZUVycm9yQ29kZSBhcyDJtVJ1bnRpbWVFcnJvckNvZGV9IGZyb20gJy4vZXJyb3JzJztcbmV4cG9ydCB7YW5ub3RhdGVGb3JIeWRyYXRpb24gYXMgybVhbm5vdGF0ZUZvckh5ZHJhdGlvbn0gZnJvbSAnLi9oeWRyYXRpb24vYW5ub3RhdGUnO1xuZXhwb3J0IHt3aXRoRG9tSHlkcmF0aW9uIGFzIMm1d2l0aERvbUh5ZHJhdGlvbn0gZnJvbSAnLi9oeWRyYXRpb24vYXBpJztcbmV4cG9ydCB7SVNfSFlEUkFUSU9OX0RPTV9SRVVTRV9FTkFCTEVEIGFzIMm1SVNfSFlEUkFUSU9OX0RPTV9SRVVTRV9FTkFCTEVEfSBmcm9tICcuL2h5ZHJhdGlvbi90b2tlbnMnO1xuZXhwb3J0IHtTU1JfQ09OVEVOVF9JTlRFR1JJVFlfTUFSS0VSIGFzIMm1U1NSX0NPTlRFTlRfSU5URUdSSVRZX01BUktFUn0gZnJvbSAnLi9oeWRyYXRpb24vdXRpbHMnO1xuZXhwb3J0IHtDdXJyZW5jeUluZGV4IGFzIMm1Q3VycmVuY3lJbmRleCwgRXh0cmFMb2NhbGVEYXRhSW5kZXggYXMgybVFeHRyYUxvY2FsZURhdGFJbmRleCwgZmluZExvY2FsZURhdGEgYXMgybVmaW5kTG9jYWxlRGF0YSwgZ2V0TG9jYWxlQ3VycmVuY3lDb2RlIGFzIMm1Z2V0TG9jYWxlQ3VycmVuY3lDb2RlLCBnZXRMb2NhbGVQbHVyYWxDYXNlIGFzIMm1Z2V0TG9jYWxlUGx1cmFsQ2FzZSwgTG9jYWxlRGF0YUluZGV4IGFzIMm1TG9jYWxlRGF0YUluZGV4LCByZWdpc3RlckxvY2FsZURhdGEgYXMgybVyZWdpc3RlckxvY2FsZURhdGEsIHVucmVnaXN0ZXJBbGxMb2NhbGVEYXRhIGFzIMm1dW5yZWdpc3RlckxvY2FsZURhdGF9IGZyb20gJy4vaTE4bi9sb2NhbGVfZGF0YV9hcGknO1xuZXhwb3J0IHtERUZBVUxUX0xPQ0FMRV9JRCBhcyDJtURFRkFVTFRfTE9DQUxFX0lEfSBmcm9tICcuL2kxOG4vbG9jYWxpemF0aW9uJztcbmV4cG9ydCB7SW5pdGlhbFJlbmRlclBlbmRpbmdUYXNrcyBhcyDJtUluaXRpYWxSZW5kZXJQZW5kaW5nVGFza3N9IGZyb20gJy4vaW5pdGlhbF9yZW5kZXJfcGVuZGluZ190YXNrcyc7XG5leHBvcnQge0NvbXBvbmVudEZhY3RvcnkgYXMgybVDb21wb25lbnRGYWN0b3J5fSBmcm9tICcuL2xpbmtlci9jb21wb25lbnRfZmFjdG9yeSc7XG5leHBvcnQge2NsZWFyUmVzb2x1dGlvbk9mQ29tcG9uZW50UmVzb3VyY2VzUXVldWUgYXMgybVjbGVhclJlc29sdXRpb25PZkNvbXBvbmVudFJlc291cmNlc1F1ZXVlLCBpc0NvbXBvbmVudERlZlBlbmRpbmdSZXNvbHV0aW9uIGFzIMm1aXNDb21wb25lbnREZWZQZW5kaW5nUmVzb2x1dGlvbiwgcmVzb2x2ZUNvbXBvbmVudFJlc291cmNlcyBhcyDJtXJlc29sdmVDb21wb25lbnRSZXNvdXJjZXMsIHJlc3RvcmVDb21wb25lbnRSZXNvbHV0aW9uUXVldWUgYXMgybVyZXN0b3JlQ29tcG9uZW50UmVzb2x1dGlvblF1ZXVlfSBmcm9tICcuL21ldGFkYXRhL3Jlc291cmNlX2xvYWRpbmcnO1xuZXhwb3J0IHtSZWZsZWN0aW9uQ2FwYWJpbGl0aWVzIGFzIMm1UmVmbGVjdGlvbkNhcGFiaWxpdGllc30gZnJvbSAnLi9yZWZsZWN0aW9uL3JlZmxlY3Rpb25fY2FwYWJpbGl0aWVzJztcbmV4cG9ydCB7SW5qZWN0b3JQcm9maWxlckNvbnRleHQgYXMgybVJbmplY3RvclByb2ZpbGVyQ29udGV4dCwgc2V0SW5qZWN0b3JQcm9maWxlckNvbnRleHQgYXMgybVzZXRJbmplY3RvclByb2ZpbGVyQ29udGV4dH0gZnJvbSAnLi9yZW5kZXIzL2RlYnVnL2luamVjdG9yX3Byb2ZpbGVyJztcbmV4cG9ydCB7RGVmZXJCbG9ja0RldGFpbHMgYXMgybVEZWZlckJsb2NrRGV0YWlscywgZ2V0RGVmZXJCbG9ja3MgYXMgybVnZXREZWZlckJsb2NrcywgcmVuZGVyRGVmZXJCbG9ja1N0YXRlIGFzIMm1cmVuZGVyRGVmZXJCbG9ja1N0YXRlLCB0cmlnZ2VyUmVzb3VyY2VMb2FkaW5nIGFzIMm1dHJpZ2dlclJlc291cmNlTG9hZGluZ30gZnJvbSAnLi9yZW5kZXIzL2luc3RydWN0aW9ucy9kZWZlcic7XG5leHBvcnQge0RlZmVyQmxvY2tCZWhhdmlvciBhcyDJtURlZmVyQmxvY2tCZWhhdmlvciwgRGVmZXJCbG9ja0NvbmZpZyBhcyDJtURlZmVyQmxvY2tDb25maWcsIERlZmVyQmxvY2tTdGF0ZSBhcyDJtURlZmVyQmxvY2tTdGF0ZX0gZnJvbSAnLi9yZW5kZXIzL2ludGVyZmFjZXMvZGVmZXInO1xuZXhwb3J0IHthbGxvd1Nhbml0aXphdGlvbkJ5cGFzc0FuZFRocm93IGFzIMm1YWxsb3dTYW5pdGl6YXRpb25CeXBhc3NBbmRUaHJvdywgQnlwYXNzVHlwZSBhcyDJtUJ5cGFzc1R5cGUsIGdldFNhbml0aXphdGlvbkJ5cGFzc1R5cGUgYXMgybVnZXRTYW5pdGl6YXRpb25CeXBhc3NUeXBlLCBTYWZlSHRtbCBhcyDJtVNhZmVIdG1sLCBTYWZlUmVzb3VyY2VVcmwgYXMgybVTYWZlUmVzb3VyY2VVcmwsIFNhZmVTY3JpcHQgYXMgybVTYWZlU2NyaXB0LCBTYWZlU3R5bGUgYXMgybVTYWZlU3R5bGUsIFNhZmVVcmwgYXMgybVTYWZlVXJsLCBTYWZlVmFsdWUgYXMgybVTYWZlVmFsdWUsIHVud3JhcFNhZmVWYWx1ZSBhcyDJtXVud3JhcFNhZmVWYWx1ZX0gZnJvbSAnLi9zYW5pdGl6YXRpb24vYnlwYXNzJztcbmV4cG9ydCB7X3Nhbml0aXplSHRtbCBhcyDJtV9zYW5pdGl6ZUh0bWx9IGZyb20gJy4vc2FuaXRpemF0aW9uL2h0bWxfc2FuaXRpemVyJztcbmV4cG9ydCB7X3Nhbml0aXplVXJsIGFzIMm1X3Nhbml0aXplVXJsfSBmcm9tICcuL3Nhbml0aXphdGlvbi91cmxfc2FuaXRpemVyJztcbmV4cG9ydCB7c2V0QWx0ZXJuYXRlV2Vha1JlZkltcGwgYXMgybVzZXRBbHRlcm5hdGVXZWFrUmVmSW1wbH0gZnJvbSAnLi9zaWduYWxzJztcbmV4cG9ydCB7VEVTVEFCSUxJVFkgYXMgybVURVNUQUJJTElUWSwgVEVTVEFCSUxJVFlfR0VUVEVSIGFzIMm1VEVTVEFCSUxJVFlfR0VUVEVSfSBmcm9tICcuL3Rlc3RhYmlsaXR5L3Rlc3RhYmlsaXR5JztcbmV4cG9ydCB7Ym9vbGVhbkF0dHJpYnV0ZSwgbnVtYmVyQXR0cmlidXRlfSBmcm9tICcuL3V0aWwvY29lcmNpb24nO1xuZXhwb3J0IHtkZXZNb2RlRXF1YWwgYXMgybVkZXZNb2RlRXF1YWx9IGZyb20gJy4vdXRpbC9jb21wYXJpc29uJztcbmV4cG9ydCB7Z2xvYmFsIGFzIMm1Z2xvYmFsfSBmcm9tICcuL3V0aWwvZ2xvYmFsJztcbmV4cG9ydCB7aXNQcm9taXNlIGFzIMm1aXNQcm9taXNlLCBpc1N1YnNjcmliYWJsZSBhcyDJtWlzU3Vic2NyaWJhYmxlfSBmcm9tICcuL3V0aWwvbGFuZyc7XG5leHBvcnQge3N0cmluZ2lmeSBhcyDJtXN0cmluZ2lmeX0gZnJvbSAnLi91dGlsL3N0cmluZ2lmeSc7XG5leHBvcnQge05PVF9GT1VORF9DSEVDS19PTkxZX0VMRU1FTlRfSU5KRUNUT1IgYXMgybVOT1RfRk9VTkRfQ0hFQ0tfT05MWV9FTEVNRU5UX0lOSkVDVE9SfSBmcm9tICcuL3ZpZXcvcHJvdmlkZXJfZmxhZ3MnO1xuIl19
@@ -18,7 +18,8 @@ export { createInjector as ɵcreateInjector } from './di/create_injector';
18
18
  export { registerNgModuleType as ɵɵregisterNgModuleType, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, } from './linker/ng_module_registration';
19
19
  export { getLContext as ɵgetLContext } from './render3/context_discovery';
20
20
  export { NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, } from './render3/fields';
21
- export { ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, detectChanges as ɵdetectChanges, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, LifecycleHooksFeature as ɵLifecycleHooksFeature, NgModuleFactory as ɵNgModuleFactory, NgModuleRef as ɵRender3NgModuleRef, NO_CHANGE as ɵNO_CHANGE, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setLocaleId as ɵsetLocaleId, store as ɵstore, ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵconditional, ɵɵcontentQuery, ɵɵcomponentInstance, ɵɵCopyDefinitionFeature, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵNgOnChangesFeature, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵProvidersFeature, ɵɵHostDirectivesFeature, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryRefresh, ɵɵreference, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵgetComponentDepsFactory, ɵɵStandaloneFeature, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵdefer, ɵɵdeferWhen, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnTimer, ɵɵdeferOnHover, ɵɵdeferOnInteraction, ɵɵdeferOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnViewport, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵviewQuery, ɵgetUnknownElementStrictMode, ɵsetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetUnknownPropertyStrictMode } from './render3/index';
21
+ export { ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, detectChanges as ɵdetectChanges, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, LifecycleHooksFeature as ɵLifecycleHooksFeature, NgModuleFactory as ɵNgModuleFactory, NgModuleRef as ɵRender3NgModuleRef, NO_CHANGE as ɵNO_CHANGE, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setLocaleId as ɵsetLocaleId, store as ɵstore, ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, ɵDEFER_BLOCK_CONFIG, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵconditional, ɵɵcontentQuery, ɵɵcomponentInstance, ɵɵCopyDefinitionFeature, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵNgOnChangesFeature, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵProvidersFeature, ɵɵHostDirectivesFeature, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryRefresh, ɵɵreference, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵgetComponentDepsFactory, ɵɵStandaloneFeature, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵdefer, ɵɵdeferWhen, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnTimer, ɵɵdeferOnHover, ɵɵdeferOnInteraction, ɵɵdeferOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnViewport, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵviewQuery, ɵgetUnknownElementStrictMode, ɵsetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetUnknownPropertyStrictMode } from './render3/index';
22
+ export { CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, } from './render3/interfaces/container';
22
23
  export { LContext as ɵLContext, } from './render3/interfaces/context';
23
24
  export { setDocument as ɵsetDocument } from './render3/interfaces/document';
24
25
  export { compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, } from './render3/jit/directive';
@@ -38,4 +39,4 @@ export { depsTracker as ɵdepsTracker, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE
38
39
  export { generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError } from './render3/jit/module';
39
40
  export { getAsyncClassMetadata as ɵgetAsyncClassMetadata } from './render3/metadata';
40
41
  // clang-format on
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZV9yZW5kZXIzX3ByaXZhdGVfZXhwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvY29yZV9yZW5kZXIzX3ByaXZhdGVfZXhwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILG1CQUFtQjtBQUNuQiw0RkFBNEY7QUFDNUYsc0RBQXNEO0FBQ3RELEVBQUU7QUFDRiw0RUFBNEU7QUFDNUUsT0FBTyxFQUNMLHNCQUFzQixJQUFJLHVCQUF1QixFQUNqRCxlQUFlLElBQUksZ0JBQWdCLEVBQ3BDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLHVCQUF1QixJQUFJLHdCQUF3QixHQUNwRCxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFDTCxZQUFZLElBQUksYUFBYSxHQUM5QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDTCxVQUFVLElBQUksV0FBVyxFQUN6QixXQUFXLElBQUksWUFBWSxFQUMzQixZQUFZLElBQUksYUFBYSxHQUM5QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxjQUFjLElBQUksZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkUsT0FBTyxFQUNMLG9CQUFvQixJQUFJLHNCQUFzQixFQUM5QyxtQ0FBbUMsSUFBSSxvQ0FBb0MsR0FDNUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUt6QyxPQUFPLEVBQ0wsV0FBVyxJQUFJLFlBQVksRUFDNUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsV0FBVyxJQUFJLFlBQVksRUFDM0IsVUFBVSxJQUFJLFdBQVcsRUFDekIsYUFBYSxJQUFJLGNBQWMsRUFDL0IsVUFBVSxJQUFJLFdBQVcsRUFDekIsV0FBVyxJQUFJLFlBQVksR0FDNUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBR0wsZ0JBQWdCLElBQUksd0JBQXdC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QUksc0NBQXNDLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNySCxPQUFPLEVBQUMscUJBQXFCLElBQUksc0JBQXNCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLy8gY2xhbmctZm9ybWF0IG9mZlxuLy8gd2UgcmVleHBvcnQgdGhlc2Ugc3ltYm9scyBqdXN0IHNvIHRoYXQgdGhleSBhcmUgcmV0YWluZWQgZHVyaW5nIHRoZSBkZWFkIGNvZGUgZWxpbWluYXRpb25cbi8vIHBlcmZvcm1lZCBieSByb2xsdXAgd2hpbGUgaXQncyBjcmVhdGluZyBmZXNtIGZpbGVzLlxuLy9cbi8vIG5vIGNvZGUgYWN0dWFsbHkgaW1wb3J0cyB0aGVzZSBzeW1ib2xzIGZyb20gdGhlIEBhbmd1bGFyL2NvcmUgZW50cnkgcG9pbnRcbmV4cG9ydCB7XG4gIGNvbXBpbGVOZ01vZHVsZUZhY3RvcnkgYXMgybVjb21waWxlTmdNb2R1bGVGYWN0b3J5LFxuICBpc0JvdW5kVG9Nb2R1bGUgYXMgybVpc0JvdW5kVG9Nb2R1bGVcbn0gZnJvbSAnLi9hcHBsaWNhdGlvbl9yZWYnO1xuZXhwb3J0IHtcbiAgaW5qZWN0Q2hhbmdlRGV0ZWN0b3JSZWYgYXMgybVpbmplY3RDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnLi9jaGFuZ2VfZGV0ZWN0aW9uL2NoYW5nZV9kZXRlY3Rvcl9yZWYnO1xuZXhwb3J0IHtcbiAgZ2V0RGVidWdOb2RlIGFzIMm1Z2V0RGVidWdOb2RlLFxufSBmcm9tICcuL2RlYnVnL2RlYnVnX25vZGUnO1xuZXhwb3J0IHtcbiAgTkdfSU5KX0RFRiBhcyDJtU5HX0lOSl9ERUYsXG4gIE5HX1BST1ZfREVGIGFzIMm1TkdfUFJPVl9ERUYsXG4gIGlzSW5qZWN0YWJsZSBhcyDJtWlzSW5qZWN0YWJsZSxcbn0gZnJvbSAnLi9kaS9pbnRlcmZhY2UvZGVmcyc7XG5leHBvcnQge2NyZWF0ZUluamVjdG9yIGFzIMm1Y3JlYXRlSW5qZWN0b3J9IGZyb20gJy4vZGkvY3JlYXRlX2luamVjdG9yJztcbmV4cG9ydCB7XG4gIHJlZ2lzdGVyTmdNb2R1bGVUeXBlIGFzIMm1ybVyZWdpc3Rlck5nTW9kdWxlVHlwZSxcbiAgc2V0QWxsb3dEdXBsaWNhdGVOZ01vZHVsZUlkc0ZvclRlc3QgYXMgybVzZXRBbGxvd0R1cGxpY2F0ZU5nTW9kdWxlSWRzRm9yVGVzdCxcbn0gZnJvbSAnLi9saW5rZXIvbmdfbW9kdWxlX3JlZ2lzdHJhdGlvbic7XG5leHBvcnQge1xuICBOZ01vZHVsZURlZiBhcyDJtU5nTW9kdWxlRGVmLFxuICBOZ01vZHVsZVRyYW5zaXRpdmVTY29wZXMgYXMgybVOZ01vZHVsZVRyYW5zaXRpdmVTY29wZXMsXG59IGZyb20gJy4vbWV0YWRhdGEvbmdfbW9kdWxlX2RlZic7XG5leHBvcnQge1xuICBnZXRMQ29udGV4dCBhcyDJtWdldExDb250ZXh0XG59IGZyb20gJy4vcmVuZGVyMy9jb250ZXh0X2Rpc2NvdmVyeSc7XG5leHBvcnQge1xuICBOR19DT01QX0RFRiBhcyDJtU5HX0NPTVBfREVGLFxuICBOR19ESVJfREVGIGFzIMm1TkdfRElSX0RFRixcbiAgTkdfRUxFTUVOVF9JRCBhcyDJtU5HX0VMRU1FTlRfSUQsXG4gIE5HX01PRF9ERUYgYXMgybVOR19NT0RfREVGLFxuICBOR19QSVBFX0RFRiBhcyDJtU5HX1BJUEVfREVGLFxufSBmcm9tICcuL3JlbmRlcjMvZmllbGRzJztcbmV4cG9ydCB7XG4gIEF0dHJpYnV0ZU1hcmtlciBhcyDJtUF0dHJpYnV0ZU1hcmtlcixcbiAgQ29tcG9uZW50RGVmIGFzIMm1Q29tcG9uZW50RGVmLFxuICBDb21wb25lbnRGYWN0b3J5IGFzIMm1UmVuZGVyM0NvbXBvbmVudEZhY3RvcnksXG4gIENvbXBvbmVudFJlZiBhcyDJtVJlbmRlcjNDb21wb25lbnRSZWYsXG4gIENvbXBvbmVudFR5cGUgYXMgybVDb21wb25lbnRUeXBlLFxuICBDc3NTZWxlY3Rvckxpc3QgYXMgybVDc3NTZWxlY3Rvckxpc3QsXG4gIGRldGVjdENoYW5nZXMgYXMgybVkZXRlY3RDaGFuZ2VzLFxuICBEaXJlY3RpdmVEZWYgYXMgybVEaXJlY3RpdmVEZWYsXG4gIERpcmVjdGl2ZVR5cGUgYXMgybVEaXJlY3RpdmVUeXBlLFxuICBnZXREaXJlY3RpdmVzIGFzIMm1Z2V0RGlyZWN0aXZlcyxcbiAgZ2V0SG9zdEVsZW1lbnQgYXMgybVnZXRIb3N0RWxlbWVudCxcbiAgTGlmZWN5Y2xlSG9va3NGZWF0dXJlIGFzIMm1TGlmZWN5Y2xlSG9va3NGZWF0dXJlLFxuICBOZ01vZHVsZUZhY3RvcnkgYXMgybVOZ01vZHVsZUZhY3RvcnksXG4gIE5nTW9kdWxlUmVmIGFzIMm1UmVuZGVyM05nTW9kdWxlUmVmLFxuICBOZ01vZHVsZVR5cGUgYXMgybVOZ01vZHVsZVR5cGUsXG4gIE5PX0NIQU5HRSBhcyDJtU5PX0NIQU5HRSxcbiAgUGlwZURlZiBhcyDJtVBpcGVEZWYsXG4gIFJlbmRlckZsYWdzIGFzIMm1UmVuZGVyRmxhZ3MsXG4gIHNldENsYXNzTWV0YWRhdGEgYXMgybVzZXRDbGFzc01ldGFkYXRhLFxuICBzZXRDbGFzc01ldGFkYXRhQXN5bmMgYXMgybVzZXRDbGFzc01ldGFkYXRhQXN5bmMsXG4gIHNldExvY2FsZUlkIGFzIMm1c2V0TG9jYWxlSWQsXG4gIHN0b3JlIGFzIMm1c3RvcmUsXG4gIMm1RGVmZXJCbG9ja0RlcGVuZGVuY3lJbnRlcmNlcHRvcixcbiAgybVERUZFUl9CTE9DS19ERVBFTkRFTkNZX0lOVEVSQ0VQVE9SLFxuICDJtcm1YWR2YW5jZSxcbiAgybXJtWF0dHJpYnV0ZSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMixcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMyxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNCxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNixcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNyxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlOCxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlVixcbiAgybXJtWNsYXNzTWFwLFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTEsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlMixcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUzLFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTQsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlNSxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU2LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTcsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlOCxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGVWLFxuICDJtcm1Y2xhc3NQcm9wLFxuICDJtcm1Q29tcG9uZW50RGVjbGFyYXRpb24sXG4gIMm1ybVjb25kaXRpb25hbCxcbiAgybXJtWNvbnRlbnRRdWVyeSxcbiAgybXJtWNvbXBvbmVudEluc3RhbmNlLFxuICDJtcm1Q29weURlZmluaXRpb25GZWF0dXJlLFxuICDJtcm1ZGVmaW5lQ29tcG9uZW50LFxuICDJtcm1ZGVmaW5lRGlyZWN0aXZlLFxuICDJtcm1ZGVmaW5lTmdNb2R1bGUsXG4gIMm1ybVkZWZpbmVQaXBlLFxuICDJtcm1RGlyZWN0aXZlRGVjbGFyYXRpb24sXG4gIMm1ybVkaXJlY3RpdmVJbmplY3QsXG4gIMm1ybVkaXNhYmxlQmluZGluZ3MsXG4gIMm1ybVlbGVtZW50LFxuICDJtcm1ZWxlbWVudENvbnRhaW5lcixcbiAgybXJtWVsZW1lbnRDb250YWluZXJFbmQsXG4gIMm1ybVlbGVtZW50Q29udGFpbmVyU3RhcnQsXG4gIMm1ybVlbGVtZW50RW5kLFxuICDJtcm1ZWxlbWVudFN0YXJ0LFxuICDJtcm1ZW5hYmxlQmluZGluZ3MsXG4gIMm1ybVGYWN0b3J5RGVjbGFyYXRpb24sXG4gIMm1ybVnZXRDdXJyZW50VmlldyxcbiAgybXJtWdldEluaGVyaXRlZEZhY3RvcnksXG4gIMm1ybVob3N0UHJvcGVydHksXG4gIMm1ybVpMThuLFxuICDJtcm1aTE4bkFwcGx5LFxuICDJtcm1aTE4bkF0dHJpYnV0ZXMsXG4gIMm1ybVpMThuRW5kLFxuICDJtcm1aTE4bkV4cCxcbiAgybXJtWkxOG5Qb3N0cHJvY2VzcyxcbiAgybXJtWkxOG5TdGFydCxcbiAgybXJtUluaGVyaXREZWZpbml0aW9uRmVhdHVyZSxcbiAgybXJtUlucHV0VHJhbnNmb3Jtc0ZlYXR1cmUsXG4gIMm1ybVpbmplY3RBdHRyaWJ1dGUsXG4gIMm1ybVJbmplY3RvckRlY2xhcmF0aW9uLFxuICDJtcm1aW52YWxpZEZhY3RvcnksXG4gIMm1ybVsaXN0ZW5lcixcbiAgybXJtWxvYWRRdWVyeSxcbiAgybXJtW5hbWVzcGFjZUhUTUwsXG4gIMm1ybVuYW1lc3BhY2VNYXRoTUwsXG4gIMm1ybVuYW1lc3BhY2VTVkcsXG4gIMm1ybVuZXh0Q29udGV4dCxcbiAgybXJtU5nTW9kdWxlRGVjbGFyYXRpb24sXG4gIMm1ybVOZ09uQ2hhbmdlc0ZlYXR1cmUsXG4gIMm1ybVwaXBlLFxuICDJtcm1cGlwZUJpbmQxLFxuICDJtcm1cGlwZUJpbmQyLFxuICDJtcm1cGlwZUJpbmQzLFxuICDJtcm1cGlwZUJpbmQ0LFxuICDJtcm1cGlwZUJpbmRWLFxuICDJtcm1UGlwZURlY2xhcmF0aW9uLFxuICDJtcm1cHJvamVjdGlvbixcbiAgybXJtXByb2plY3Rpb25EZWYsXG4gIMm1ybVwcm9wZXJ0eSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlMSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUyLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTMsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNCxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU1LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTYsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNyxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU4LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZVYsXG4gIMm1ybVQcm92aWRlcnNGZWF0dXJlLFxuICDJtcm1SG9zdERpcmVjdGl2ZXNGZWF0dXJlLFxuICDJtcm1cHVyZUZ1bmN0aW9uMCxcbiAgybXJtXB1cmVGdW5jdGlvbjEsXG4gIMm1ybVwdXJlRnVuY3Rpb24yLFxuICDJtcm1cHVyZUZ1bmN0aW9uMyxcbiAgybXJtXB1cmVGdW5jdGlvbjQsXG4gIMm1ybVwdXJlRnVuY3Rpb241LFxuICDJtcm1cHVyZUZ1bmN0aW9uNixcbiAgybXJtXB1cmVGdW5jdGlvbjcsXG4gIMm1ybVwdXJlRnVuY3Rpb244LFxuICDJtcm1cHVyZUZ1bmN0aW9uVixcbiAgybXJtXF1ZXJ5UmVmcmVzaCxcbiAgybXJtXJlZmVyZW5jZSxcbiAgybXJtXJlc2V0VmlldyxcbiAgybXJtXJlc29sdmVCb2R5LFxuICDJtcm1cmVzb2x2ZURvY3VtZW50LFxuICDJtcm1cmVzb2x2ZVdpbmRvdyxcbiAgybXJtXJlc3RvcmVWaWV3LFxuXG4gIMm1ybVyZXBlYXRlcixcbiAgybXJtXJlcGVhdGVyQ3JlYXRlLFxuICDJtcm1cmVwZWF0ZXJUcmFja0J5SWRlbnRpdHksXG4gIMm1ybVyZXBlYXRlclRyYWNrQnlJbmRleCxcblxuICDJtcm1c2V0Q29tcG9uZW50U2NvcGUsXG4gIMm1ybVzZXROZ01vZHVsZVNjb3BlLFxuICDJtcm1Z2V0Q29tcG9uZW50RGVwc0ZhY3RvcnksXG4gIMm1ybVTdGFuZGFsb25lRmVhdHVyZSxcbiAgybXJtXN0eWxlTWFwLFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTEsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlMixcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUzLFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTQsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlNSxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU2LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTcsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlOCxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGVWLFxuICDJtcm1c3R5bGVQcm9wLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUxLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUyLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUzLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU0LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU1LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU2LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU3LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU4LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGVWLFxuICDJtcm1c3ludGhldGljSG9zdExpc3RlbmVyLFxuICDJtcm1c3ludGhldGljSG9zdFByb3BlcnR5LFxuICDJtcm1dGVtcGxhdGUsXG4gIMm1ybV0ZW1wbGF0ZVJlZkV4dHJhY3RvcixcbiAgybXJtWRlZmVyLFxuICDJtcm1ZGVmZXJXaGVuLFxuICDJtcm1ZGVmZXJPbklkbGUsXG4gIMm1ybVkZWZlck9uSW1tZWRpYXRlLFxuICDJtcm1ZGVmZXJPblRpbWVyLFxuICDJtcm1ZGVmZXJPbkhvdmVyLFxuICDJtcm1ZGVmZXJPbkludGVyYWN0aW9uLFxuICDJtcm1ZGVmZXJPblZpZXdwb3J0LFxuICDJtcm1ZGVmZXJQcmVmZXRjaFdoZW4sXG4gIMm1ybVkZWZlclByZWZldGNoT25JZGxlLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uSW1tZWRpYXRlLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uVGltZXIsXG4gIMm1ybVkZWZlclByZWZldGNoT25Ib3ZlcixcbiAgybXJtWRlZmVyUHJlZmV0Y2hPbkludGVyYWN0aW9uLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uVmlld3BvcnQsXG4gIMm1ybV0ZXh0LFxuICDJtcm1dGV4dEludGVycG9sYXRlLFxuICDJtcm1dGV4dEludGVycG9sYXRlMSxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTIsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGUzLFxuICDJtcm1dGV4dEludGVycG9sYXRlNCxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTUsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU2LFxuICDJtcm1dGV4dEludGVycG9sYXRlNyxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTgsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGVWLFxuICDJtcm1dmlld1F1ZXJ5LFxuICDJtWdldFVua25vd25FbGVtZW50U3RyaWN0TW9kZSxcbiAgybVzZXRVbmtub3duRWxlbWVudFN0cmljdE1vZGUsXG4gIMm1Z2V0VW5rbm93blByb3BlcnR5U3RyaWN0TW9kZSxcbiAgybVzZXRVbmtub3duUHJvcGVydHlTdHJpY3RNb2RlXG59IGZyb20gJy4vcmVuZGVyMy9pbmRleCc7XG5leHBvcnQge1xuICBMQ29udGV4dCBhcyDJtUxDb250ZXh0LFxufSBmcm9tICcuL3JlbmRlcjMvaW50ZXJmYWNlcy9jb250ZXh0JztcbmV4cG9ydCB7XG4gIHNldERvY3VtZW50IGFzIMm1c2V0RG9jdW1lbnRcbn0gZnJvbSAnLi9yZW5kZXIzL2ludGVyZmFjZXMvZG9jdW1lbnQnO1xuZXhwb3J0IHtcbiAgY29tcGlsZUNvbXBvbmVudCBhcyDJtWNvbXBpbGVDb21wb25lbnQsXG4gIGNvbXBpbGVEaXJlY3RpdmUgYXMgybVjb21waWxlRGlyZWN0aXZlLFxufSBmcm9tICcuL3JlbmRlcjMvaml0L2RpcmVjdGl2ZSc7XG5leHBvcnQge1xuICByZXNldEppdE9wdGlvbnMgYXMgybVyZXNldEppdE9wdGlvbnMsXG59IGZyb20gJy4vcmVuZGVyMy9qaXQvaml0X29wdGlvbnMnO1xuZXhwb3J0IHtcbiAgY29tcGlsZU5nTW9kdWxlIGFzIMm1Y29tcGlsZU5nTW9kdWxlLFxuICBjb21waWxlTmdNb2R1bGVEZWZzIGFzIMm1Y29tcGlsZU5nTW9kdWxlRGVmcyxcbiAgZmx1c2hNb2R1bGVTY29waW5nUXVldWVBc011Y2hBc1Bvc3NpYmxlIGFzIMm1Zmx1c2hNb2R1bGVTY29waW5nUXVldWVBc011Y2hBc1Bvc3NpYmxlLFxuICBwYXRjaENvbXBvbmVudERlZldpdGhTY29wZSBhcyDJtXBhdGNoQ29tcG9uZW50RGVmV2l0aFNjb3BlLFxuICByZXNldENvbXBpbGVkQ29tcG9uZW50cyBhcyDJtXJlc2V0Q29tcGlsZWRDb21wb25lbnRzLFxuICB0cmFuc2l0aXZlU2NvcGVzRm9yIGFzIMm1dHJhbnNpdGl2ZVNjb3Blc0Zvcixcbn0gZnJvbSAnLi9yZW5kZXIzL2ppdC9tb2R1bGUnO1xuZXhwb3J0IHtcbiAgRmFjdG9yeVRhcmdldCBhcyDJtcm1RmFjdG9yeVRhcmdldCxcbiAgybXJtW5nRGVjbGFyZUNsYXNzTWV0YWRhdGEsXG4gIMm1ybVuZ0RlY2xhcmVDb21wb25lbnQsXG4gIMm1ybVuZ0RlY2xhcmVEaXJlY3RpdmUsXG4gIMm1ybVuZ0RlY2xhcmVGYWN0b3J5LFxuICDJtcm1bmdEZWNsYXJlSW5qZWN0YWJsZSxcbiAgybXJtW5nRGVjbGFyZUluamVjdG9yLFxuICDJtcm1bmdEZWNsYXJlTmdNb2R1bGUsXG4gIMm1ybVuZ0RlY2xhcmVQaXBlLFxufSBmcm9tICcuL3JlbmRlcjMvaml0L3BhcnRpYWwnO1xuZXhwb3J0IHtcbiAgY29tcGlsZVBpcGUgYXMgybVjb21waWxlUGlwZSxcbn0gZnJvbSAnLi9yZW5kZXIzL2ppdC9waXBlJztcbmV4cG9ydCB7XG4gIGlzTmdNb2R1bGUgYXMgybVpc05nTW9kdWxlXG59IGZyb20gJy4vcmVuZGVyMy9qaXQvdXRpbCc7XG5leHBvcnQgeyBQcm9maWxlciBhcyDJtVByb2ZpbGVyLCBQcm9maWxlckV2ZW50IGFzIMm1UHJvZmlsZXJFdmVudCB9IGZyb20gJy4vcmVuZGVyMy9wcm9maWxlcic7XG5leHBvcnQge1xuICBwdWJsaXNoRGVmYXVsdEdsb2JhbFV0aWxzIGFzIMm1cHVibGlzaERlZmF1bHRHbG9iYWxVdGlsc1xuLFxuICBwdWJsaXNoR2xvYmFsVXRpbCBhcyDJtXB1Ymxpc2hHbG9iYWxVdGlsfSBmcm9tICcuL3JlbmRlcjMvdXRpbC9nbG9iYWxfdXRpbHMnO1xuZXhwb3J0IHtWaWV3UmVmIGFzIMm1Vmlld1JlZn0gZnJvbSAnLi9yZW5kZXIzL3ZpZXdfcmVmJztcbmV4cG9ydCB7XG4gIGJ5cGFzc1Nhbml0aXphdGlvblRydXN0SHRtbCBhcyDJtWJ5cGFzc1Nhbml0aXphdGlvblRydXN0SHRtbCxcbiAgYnlwYXNzU2FuaXRpemF0aW9uVHJ1c3RSZXNvdXJjZVVybCBhcyDJtWJ5cGFzc1Nhbml0aXphdGlvblRydXN0UmVzb3VyY2VVcmwsXG4gIGJ5cGFzc1Nhbml0aXphdGlvblRydXN0U2NyaXB0IGFzIMm1YnlwYXNzU2FuaXRpemF0aW9uVHJ1c3RTY3JpcHQsXG4gIGJ5cGFzc1Nhbml0aXphdGlvblRydXN0U3R5bGUgYXMgybVieXBhc3NTYW5pdGl6YXRpb25UcnVzdFN0eWxlLFxuICBieXBhc3NTYW5pdGl6YXRpb25UcnVzdFVybCBhcyDJtWJ5cGFzc1Nhbml0aXphdGlvblRydXN0VXJsLFxufSBmcm9tICcuL3Nhbml0aXphdGlvbi9ieXBhc3MnO1xuZXhwb3J0IHtcbiAgybXJtXNhbml0aXplSHRtbCxcbiAgybXJtXNhbml0aXplUmVzb3VyY2VVcmwsXG4gIMm1ybVzYW5pdGl6ZVNjcmlwdCxcbiAgybXJtXNhbml0aXplU3R5bGUsXG4gIMm1ybVzYW5pdGl6ZVVybCxcbiAgybXJtXNhbml0aXplVXJsT3JSZXNvdXJjZVVybCxcbiAgybXJtXRydXN0Q29uc3RhbnRIdG1sLFxuICDJtcm1dHJ1c3RDb25zdGFudFJlc291cmNlVXJsLFxufSBmcm9tICcuL3Nhbml0aXphdGlvbi9zYW5pdGl6YXRpb24nO1xuZXhwb3J0IHtcbiAgybXJtXZhbGlkYXRlSWZyYW1lQXR0cmlidXRlLFxufSBmcm9tICcuL3Nhbml0aXphdGlvbi9pZnJhbWVfYXR0cnNfdmFsaWRhdGlvbic7XG5leHBvcnQge1xuICBub1NpZGVFZmZlY3RzIGFzIMm1bm9TaWRlRWZmZWN0cyxcbn0gZnJvbSAnLi91dGlsL2Nsb3N1cmUnO1xuZXhwb3J0IHsgQWZ0ZXJSZW5kZXJFdmVudE1hbmFnZXIgYXMgybVBZnRlclJlbmRlckV2ZW50TWFuYWdlciB9IGZyb20gJy4vcmVuZGVyMy9hZnRlcl9yZW5kZXJfaG9va3MnO1xuZXhwb3J0IHtkZXBzVHJhY2tlciBhcyDJtWRlcHNUcmFja2VyLCBVU0VfUlVOVElNRV9ERVBTX1RSQUNLRVJfRk9SX0pJVCBhcyDJtVVTRV9SVU5USU1FX0RFUFNfVFJBQ0tFUl9GT1JfSklUfSBmcm9tICcuL3JlbmRlcjMvZGVwc190cmFja2VyL2RlcHNfdHJhY2tlcic7XG5leHBvcnQge2dlbmVyYXRlU3RhbmRhbG9uZUluRGVjbGFyYXRpb25zRXJyb3IgYXMgybVnZW5lcmF0ZVN0YW5kYWxvbmVJbkRlY2xhcmF0aW9uc0Vycm9yfSBmcm9tICcuL3JlbmRlcjMvaml0L21vZHVsZSc7XG5leHBvcnQge2dldEFzeW5jQ2xhc3NNZXRhZGF0YSBhcyDJtWdldEFzeW5jQ2xhc3NNZXRhZGF0YX0gZnJvbSAnLi9yZW5kZXIzL21ldGFkYXRhJztcblxuLy8gY2xhbmctZm9ybWF0IG9uXG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZV9yZW5kZXIzX3ByaXZhdGVfZXhwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvY29yZV9yZW5kZXIzX3ByaXZhdGVfZXhwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILG1CQUFtQjtBQUNuQiw0RkFBNEY7QUFDNUYsc0RBQXNEO0FBQ3RELEVBQUU7QUFDRiw0RUFBNEU7QUFDNUUsT0FBTyxFQUNMLHNCQUFzQixJQUFJLHVCQUF1QixFQUNqRCxlQUFlLElBQUksZ0JBQWdCLEVBQ3BDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLHVCQUF1QixJQUFJLHdCQUF3QixHQUNwRCxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFDTCxZQUFZLElBQUksYUFBYSxHQUM5QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDTCxVQUFVLElBQUksV0FBVyxFQUN6QixXQUFXLElBQUksWUFBWSxFQUMzQixZQUFZLElBQUksYUFBYSxHQUM5QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxjQUFjLElBQUksZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkUsT0FBTyxFQUNMLG9CQUFvQixJQUFJLHNCQUFzQixFQUM5QyxtQ0FBbUMsSUFBSSxvQ0FBb0MsR0FDNUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUt6QyxPQUFPLEVBQ0wsV0FBVyxJQUFJLFlBQVksRUFDNUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsV0FBVyxJQUFJLFlBQVksRUFDM0IsVUFBVSxJQUFJLFdBQVcsRUFDekIsYUFBYSxJQUFJLGNBQWMsRUFDL0IsVUFBVSxJQUFJLFdBQVcsRUFDekIsV0FBVyxJQUFJLFlBQVksR0FDNUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBR0wsZ0JBQWdCLElBQUksd0JBQXdC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RUFBRSxnQ0FBZ0MsSUFBSSxpQ0FBaUMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZKLE9BQU8sRUFBQyxxQ0FBcUMsSUFBSSxzQ0FBc0MsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3JILE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxzQkFBc0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRW5GLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vLyBjbGFuZy1mb3JtYXQgb2ZmXG4vLyB3ZSByZWV4cG9ydCB0aGVzZSBzeW1ib2xzIGp1c3Qgc28gdGhhdCB0aGV5IGFyZSByZXRhaW5lZCBkdXJpbmcgdGhlIGRlYWQgY29kZSBlbGltaW5hdGlvblxuLy8gcGVyZm9ybWVkIGJ5IHJvbGx1cCB3aGlsZSBpdCdzIGNyZWF0aW5nIGZlc20gZmlsZXMuXG4vL1xuLy8gbm8gY29kZSBhY3R1YWxseSBpbXBvcnRzIHRoZXNlIHN5bWJvbHMgZnJvbSB0aGUgQGFuZ3VsYXIvY29yZSBlbnRyeSBwb2ludFxuZXhwb3J0IHtcbiAgY29tcGlsZU5nTW9kdWxlRmFjdG9yeSBhcyDJtWNvbXBpbGVOZ01vZHVsZUZhY3RvcnksXG4gIGlzQm91bmRUb01vZHVsZSBhcyDJtWlzQm91bmRUb01vZHVsZVxufSBmcm9tICcuL2FwcGxpY2F0aW9uX3JlZic7XG5leHBvcnQge1xuICBpbmplY3RDaGFuZ2VEZXRlY3RvclJlZiBhcyDJtWluamVjdENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICcuL2NoYW5nZV9kZXRlY3Rpb24vY2hhbmdlX2RldGVjdG9yX3JlZic7XG5leHBvcnQge1xuICBnZXREZWJ1Z05vZGUgYXMgybVnZXREZWJ1Z05vZGUsXG59IGZyb20gJy4vZGVidWcvZGVidWdfbm9kZSc7XG5leHBvcnQge1xuICBOR19JTkpfREVGIGFzIMm1TkdfSU5KX0RFRixcbiAgTkdfUFJPVl9ERUYgYXMgybVOR19QUk9WX0RFRixcbiAgaXNJbmplY3RhYmxlIGFzIMm1aXNJbmplY3RhYmxlLFxufSBmcm9tICcuL2RpL2ludGVyZmFjZS9kZWZzJztcbmV4cG9ydCB7Y3JlYXRlSW5qZWN0b3IgYXMgybVjcmVhdGVJbmplY3Rvcn0gZnJvbSAnLi9kaS9jcmVhdGVfaW5qZWN0b3InO1xuZXhwb3J0IHtcbiAgcmVnaXN0ZXJOZ01vZHVsZVR5cGUgYXMgybXJtXJlZ2lzdGVyTmdNb2R1bGVUeXBlLFxuICBzZXRBbGxvd0R1cGxpY2F0ZU5nTW9kdWxlSWRzRm9yVGVzdCBhcyDJtXNldEFsbG93RHVwbGljYXRlTmdNb2R1bGVJZHNGb3JUZXN0LFxufSBmcm9tICcuL2xpbmtlci9uZ19tb2R1bGVfcmVnaXN0cmF0aW9uJztcbmV4cG9ydCB7XG4gIE5nTW9kdWxlRGVmIGFzIMm1TmdNb2R1bGVEZWYsXG4gIE5nTW9kdWxlVHJhbnNpdGl2ZVNjb3BlcyBhcyDJtU5nTW9kdWxlVHJhbnNpdGl2ZVNjb3Blcyxcbn0gZnJvbSAnLi9tZXRhZGF0YS9uZ19tb2R1bGVfZGVmJztcbmV4cG9ydCB7XG4gIGdldExDb250ZXh0IGFzIMm1Z2V0TENvbnRleHRcbn0gZnJvbSAnLi9yZW5kZXIzL2NvbnRleHRfZGlzY292ZXJ5JztcbmV4cG9ydCB7XG4gIE5HX0NPTVBfREVGIGFzIMm1TkdfQ09NUF9ERUYsXG4gIE5HX0RJUl9ERUYgYXMgybVOR19ESVJfREVGLFxuICBOR19FTEVNRU5UX0lEIGFzIMm1TkdfRUxFTUVOVF9JRCxcbiAgTkdfTU9EX0RFRiBhcyDJtU5HX01PRF9ERUYsXG4gIE5HX1BJUEVfREVGIGFzIMm1TkdfUElQRV9ERUYsXG59IGZyb20gJy4vcmVuZGVyMy9maWVsZHMnO1xuZXhwb3J0IHtcbiAgQXR0cmlidXRlTWFya2VyIGFzIMm1QXR0cmlidXRlTWFya2VyLFxuICBDb21wb25lbnREZWYgYXMgybVDb21wb25lbnREZWYsXG4gIENvbXBvbmVudEZhY3RvcnkgYXMgybVSZW5kZXIzQ29tcG9uZW50RmFjdG9yeSxcbiAgQ29tcG9uZW50UmVmIGFzIMm1UmVuZGVyM0NvbXBvbmVudFJlZixcbiAgQ29tcG9uZW50VHlwZSBhcyDJtUNvbXBvbmVudFR5cGUsXG4gIENzc1NlbGVjdG9yTGlzdCBhcyDJtUNzc1NlbGVjdG9yTGlzdCxcbiAgZGV0ZWN0Q2hhbmdlcyBhcyDJtWRldGVjdENoYW5nZXMsXG4gIERpcmVjdGl2ZURlZiBhcyDJtURpcmVjdGl2ZURlZixcbiAgRGlyZWN0aXZlVHlwZSBhcyDJtURpcmVjdGl2ZVR5cGUsXG4gIGdldERpcmVjdGl2ZXMgYXMgybVnZXREaXJlY3RpdmVzLFxuICBnZXRIb3N0RWxlbWVudCBhcyDJtWdldEhvc3RFbGVtZW50LFxuICBMaWZlY3ljbGVIb29rc0ZlYXR1cmUgYXMgybVMaWZlY3ljbGVIb29rc0ZlYXR1cmUsXG4gIE5nTW9kdWxlRmFjdG9yeSBhcyDJtU5nTW9kdWxlRmFjdG9yeSxcbiAgTmdNb2R1bGVSZWYgYXMgybVSZW5kZXIzTmdNb2R1bGVSZWYsXG4gIE5nTW9kdWxlVHlwZSBhcyDJtU5nTW9kdWxlVHlwZSxcbiAgTk9fQ0hBTkdFIGFzIMm1Tk9fQ0hBTkdFLFxuICBQaXBlRGVmIGFzIMm1UGlwZURlZixcbiAgUmVuZGVyRmxhZ3MgYXMgybVSZW5kZXJGbGFncyxcbiAgc2V0Q2xhc3NNZXRhZGF0YSBhcyDJtXNldENsYXNzTWV0YWRhdGEsXG4gIHNldENsYXNzTWV0YWRhdGFBc3luYyBhcyDJtXNldENsYXNzTWV0YWRhdGFBc3luYyxcbiAgc2V0TG9jYWxlSWQgYXMgybVzZXRMb2NhbGVJZCxcbiAgc3RvcmUgYXMgybVzdG9yZSxcbiAgybVEZWZlckJsb2NrRGVwZW5kZW5jeUludGVyY2VwdG9yLFxuICDJtURFRkVSX0JMT0NLX0RFUEVOREVOQ1lfSU5URVJDRVBUT1IsXG4gIMm1REVGRVJfQkxPQ0tfQ09ORklHLFxuICDJtcm1YWR2YW5jZSxcbiAgybXJtWF0dHJpYnV0ZSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMixcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlMyxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNCxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNSxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNixcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlNyxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlOCxcbiAgybXJtWF0dHJpYnV0ZUludGVycG9sYXRlVixcbiAgybXJtWNsYXNzTWFwLFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTEsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlMixcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGUzLFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTQsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlNSxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGU2LFxuICDJtcm1Y2xhc3NNYXBJbnRlcnBvbGF0ZTcsXG4gIMm1ybVjbGFzc01hcEludGVycG9sYXRlOCxcbiAgybXJtWNsYXNzTWFwSW50ZXJwb2xhdGVWLFxuICDJtcm1Y2xhc3NQcm9wLFxuICDJtcm1Q29tcG9uZW50RGVjbGFyYXRpb24sXG4gIMm1ybVjb25kaXRpb25hbCxcbiAgybXJtWNvbnRlbnRRdWVyeSxcbiAgybXJtWNvbXBvbmVudEluc3RhbmNlLFxuICDJtcm1Q29weURlZmluaXRpb25GZWF0dXJlLFxuICDJtcm1ZGVmaW5lQ29tcG9uZW50LFxuICDJtcm1ZGVmaW5lRGlyZWN0aXZlLFxuICDJtcm1ZGVmaW5lTmdNb2R1bGUsXG4gIMm1ybVkZWZpbmVQaXBlLFxuICDJtcm1RGlyZWN0aXZlRGVjbGFyYXRpb24sXG4gIMm1ybVkaXJlY3RpdmVJbmplY3QsXG4gIMm1ybVkaXNhYmxlQmluZGluZ3MsXG4gIMm1ybVlbGVtZW50LFxuICDJtcm1ZWxlbWVudENvbnRhaW5lcixcbiAgybXJtWVsZW1lbnRDb250YWluZXJFbmQsXG4gIMm1ybVlbGVtZW50Q29udGFpbmVyU3RhcnQsXG4gIMm1ybVlbGVtZW50RW5kLFxuICDJtcm1ZWxlbWVudFN0YXJ0LFxuICDJtcm1ZW5hYmxlQmluZGluZ3MsXG4gIMm1ybVGYWN0b3J5RGVjbGFyYXRpb24sXG4gIMm1ybVnZXRDdXJyZW50VmlldyxcbiAgybXJtWdldEluaGVyaXRlZEZhY3RvcnksXG4gIMm1ybVob3N0UHJvcGVydHksXG4gIMm1ybVpMThuLFxuICDJtcm1aTE4bkFwcGx5LFxuICDJtcm1aTE4bkF0dHJpYnV0ZXMsXG4gIMm1ybVpMThuRW5kLFxuICDJtcm1aTE4bkV4cCxcbiAgybXJtWkxOG5Qb3N0cHJvY2VzcyxcbiAgybXJtWkxOG5TdGFydCxcbiAgybXJtUluaGVyaXREZWZpbml0aW9uRmVhdHVyZSxcbiAgybXJtUlucHV0VHJhbnNmb3Jtc0ZlYXR1cmUsXG4gIMm1ybVpbmplY3RBdHRyaWJ1dGUsXG4gIMm1ybVJbmplY3RvckRlY2xhcmF0aW9uLFxuICDJtcm1aW52YWxpZEZhY3RvcnksXG4gIMm1ybVsaXN0ZW5lcixcbiAgybXJtWxvYWRRdWVyeSxcbiAgybXJtW5hbWVzcGFjZUhUTUwsXG4gIMm1ybVuYW1lc3BhY2VNYXRoTUwsXG4gIMm1ybVuYW1lc3BhY2VTVkcsXG4gIMm1ybVuZXh0Q29udGV4dCxcbiAgybXJtU5nTW9kdWxlRGVjbGFyYXRpb24sXG4gIMm1ybVOZ09uQ2hhbmdlc0ZlYXR1cmUsXG4gIMm1ybVwaXBlLFxuICDJtcm1cGlwZUJpbmQxLFxuICDJtcm1cGlwZUJpbmQyLFxuICDJtcm1cGlwZUJpbmQzLFxuICDJtcm1cGlwZUJpbmQ0LFxuICDJtcm1cGlwZUJpbmRWLFxuICDJtcm1UGlwZURlY2xhcmF0aW9uLFxuICDJtcm1cHJvamVjdGlvbixcbiAgybXJtXByb2plY3Rpb25EZWYsXG4gIMm1ybVwcm9wZXJ0eSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlMSxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGUyLFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTMsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNCxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU1LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZTYsXG4gIMm1ybVwcm9wZXJ0eUludGVycG9sYXRlNyxcbiAgybXJtXByb3BlcnR5SW50ZXJwb2xhdGU4LFxuICDJtcm1cHJvcGVydHlJbnRlcnBvbGF0ZVYsXG4gIMm1ybVQcm92aWRlcnNGZWF0dXJlLFxuICDJtcm1SG9zdERpcmVjdGl2ZXNGZWF0dXJlLFxuICDJtcm1cHVyZUZ1bmN0aW9uMCxcbiAgybXJtXB1cmVGdW5jdGlvbjEsXG4gIMm1ybVwdXJlRnVuY3Rpb24yLFxuICDJtcm1cHVyZUZ1bmN0aW9uMyxcbiAgybXJtXB1cmVGdW5jdGlvbjQsXG4gIMm1ybVwdXJlRnVuY3Rpb241LFxuICDJtcm1cHVyZUZ1bmN0aW9uNixcbiAgybXJtXB1cmVGdW5jdGlvbjcsXG4gIMm1ybVwdXJlRnVuY3Rpb244LFxuICDJtcm1cHVyZUZ1bmN0aW9uVixcbiAgybXJtXF1ZXJ5UmVmcmVzaCxcbiAgybXJtXJlZmVyZW5jZSxcbiAgybXJtXJlc2V0VmlldyxcbiAgybXJtXJlc29sdmVCb2R5LFxuICDJtcm1cmVzb2x2ZURvY3VtZW50LFxuICDJtcm1cmVzb2x2ZVdpbmRvdyxcbiAgybXJtXJlc3RvcmVWaWV3LFxuXG4gIMm1ybVyZXBlYXRlcixcbiAgybXJtXJlcGVhdGVyQ3JlYXRlLFxuICDJtcm1cmVwZWF0ZXJUcmFja0J5SWRlbnRpdHksXG4gIMm1ybVyZXBlYXRlclRyYWNrQnlJbmRleCxcblxuICDJtcm1c2V0Q29tcG9uZW50U2NvcGUsXG4gIMm1ybVzZXROZ01vZHVsZVNjb3BlLFxuICDJtcm1Z2V0Q29tcG9uZW50RGVwc0ZhY3RvcnksXG4gIMm1ybVTdGFuZGFsb25lRmVhdHVyZSxcbiAgybXJtXN0eWxlTWFwLFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTEsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlMixcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGUzLFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTQsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlNSxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGU2LFxuICDJtcm1c3R5bGVNYXBJbnRlcnBvbGF0ZTcsXG4gIMm1ybVzdHlsZU1hcEludGVycG9sYXRlOCxcbiAgybXJtXN0eWxlTWFwSW50ZXJwb2xhdGVWLFxuICDJtcm1c3R5bGVQcm9wLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUxLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUyLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGUzLFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU0LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU1LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU2LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU3LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGU4LFxuICDJtcm1c3R5bGVQcm9wSW50ZXJwb2xhdGVWLFxuICDJtcm1c3ludGhldGljSG9zdExpc3RlbmVyLFxuICDJtcm1c3ludGhldGljSG9zdFByb3BlcnR5LFxuICDJtcm1dGVtcGxhdGUsXG4gIMm1ybV0ZW1wbGF0ZVJlZkV4dHJhY3RvcixcbiAgybXJtWRlZmVyLFxuICDJtcm1ZGVmZXJXaGVuLFxuICDJtcm1ZGVmZXJPbklkbGUsXG4gIMm1ybVkZWZlck9uSW1tZWRpYXRlLFxuICDJtcm1ZGVmZXJPblRpbWVyLFxuICDJtcm1ZGVmZXJPbkhvdmVyLFxuICDJtcm1ZGVmZXJPbkludGVyYWN0aW9uLFxuICDJtcm1ZGVmZXJPblZpZXdwb3J0LFxuICDJtcm1ZGVmZXJQcmVmZXRjaFdoZW4sXG4gIMm1ybVkZWZlclByZWZldGNoT25JZGxlLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uSW1tZWRpYXRlLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uVGltZXIsXG4gIMm1ybVkZWZlclByZWZldGNoT25Ib3ZlcixcbiAgybXJtWRlZmVyUHJlZmV0Y2hPbkludGVyYWN0aW9uLFxuICDJtcm1ZGVmZXJQcmVmZXRjaE9uVmlld3BvcnQsXG4gIMm1ybV0ZXh0LFxuICDJtcm1dGV4dEludGVycG9sYXRlLFxuICDJtcm1dGV4dEludGVycG9sYXRlMSxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTIsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGUzLFxuICDJtcm1dGV4dEludGVycG9sYXRlNCxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTUsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGU2LFxuICDJtcm1dGV4dEludGVycG9sYXRlNyxcbiAgybXJtXRleHRJbnRlcnBvbGF0ZTgsXG4gIMm1ybV0ZXh0SW50ZXJwb2xhdGVWLFxuICDJtcm1dmlld1F1ZXJ5LFxuICDJtWdldFVua25vd25FbGVtZW50U3RyaWN0TW9kZSxcbiAgybVzZXRVbmtub3duRWxlbWVudFN0cmljdE1vZGUsXG4gIMm1Z2V0VW5rbm93blByb3BlcnR5U3RyaWN0TW9kZSxcbiAgybVzZXRVbmtub3duUHJvcGVydHlTdHJpY3RNb2RlXG59IGZyb20gJy4vcmVuZGVyMy9pbmRleCc7XG5leHBvcnQge1xuICBDT05UQUlORVJfSEVBREVSX09GRlNFVCBhcyDJtUNPTlRBSU5FUl9IRUFERVJfT0ZGU0VULFxufSBmcm9tICcuL3JlbmRlcjMvaW50ZXJmYWNlcy9jb250YWluZXInO1xuZXhwb3J0IHtcbiAgTENvbnRleHQgYXMgybVMQ29udGV4dCxcbn0gZnJvbSAnLi9yZW5kZXIzL2ludGVyZmFjZXMvY29udGV4dCc7XG5leHBvcnQge1xuICBzZXREb2N1bWVudCBhcyDJtXNldERvY3VtZW50XG59IGZyb20gJy4vcmVuZGVyMy9pbnRlcmZhY2VzL2RvY3VtZW50JztcbmV4cG9ydCB7XG4gIGNvbXBpbGVDb21wb25lbnQgYXMgybVjb21waWxlQ29tcG9uZW50LFxuICBjb21waWxlRGlyZWN0aXZlIGFzIMm1Y29tcGlsZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi9yZW5kZXIzL2ppdC9kaXJlY3RpdmUnO1xuZXhwb3J0IHtcbiAgcmVzZXRKaXRPcHRpb25zIGFzIMm1cmVzZXRKaXRPcHRpb25zLFxufSBmcm9tICcuL3JlbmRlcjMvaml0L2ppdF9vcHRpb25zJztcbmV4cG9ydCB7XG4gIGNvbXBpbGVOZ01vZHVsZSBhcyDJtWNvbXBpbGVOZ01vZHVsZSxcbiAgY29tcGlsZU5nTW9kdWxlRGVmcyBhcyDJtWNvbXBpbGVOZ01vZHVsZURlZnMsXG4gIGZsdXNoTW9kdWxlU2NvcGluZ1F1ZXVlQXNNdWNoQXNQb3NzaWJsZSBhcyDJtWZsdXNoTW9kdWxlU2NvcGluZ1F1ZXVlQXNNdWNoQXNQb3NzaWJsZSxcbiAgcGF0Y2hDb21wb25lbnREZWZXaXRoU2NvcGUgYXMgybVwYXRjaENvbXBvbmVudERlZldpdGhTY29wZSxcbiAgcmVzZXRDb21waWxlZENvbXBvbmVudHMgYXMgybVyZXNldENvbXBpbGVkQ29tcG9uZW50cyxcbiAgdHJhbnNpdGl2ZVNjb3Blc0ZvciBhcyDJtXRyYW5zaXRpdmVTY29wZXNGb3IsXG59IGZyb20gJy4vcmVuZGVyMy9qaXQvbW9kdWxlJztcbmV4cG9ydCB7XG4gIEZhY3RvcnlUYXJnZXQgYXMgybXJtUZhY3RvcnlUYXJnZXQsXG4gIMm1ybVuZ0RlY2xhcmVDbGFzc01ldGFkYXRhLFxuICDJtcm1bmdEZWNsYXJlQ29tcG9uZW50LFxuICDJtcm1bmdEZWNsYXJlRGlyZWN0aXZlLFxuICDJtcm1bmdEZWNsYXJlRmFjdG9yeSxcbiAgybXJtW5nRGVjbGFyZUluamVjdGFibGUsXG4gIMm1ybVuZ0RlY2xhcmVJbmplY3RvcixcbiAgybXJtW5nRGVjbGFyZU5nTW9kdWxlLFxuICDJtcm1bmdEZWNsYXJlUGlwZSxcbn0gZnJvbSAnLi9yZW5kZXIzL2ppdC9wYXJ0aWFsJztcbmV4cG9ydCB7XG4gIGNvbXBpbGVQaXBlIGFzIMm1Y29tcGlsZVBpcGUsXG59IGZyb20gJy4vcmVuZGVyMy9qaXQvcGlwZSc7XG5leHBvcnQge1xuICBpc05nTW9kdWxlIGFzIMm1aXNOZ01vZHVsZVxufSBmcm9tICcuL3JlbmRlcjMvaml0L3V0aWwnO1xuZXhwb3J0IHsgUHJvZmlsZXIgYXMgybVQcm9maWxlciwgUHJvZmlsZXJFdmVudCBhcyDJtVByb2ZpbGVyRXZlbnQgfSBmcm9tICcuL3JlbmRlcjMvcHJvZmlsZXInO1xuZXhwb3J0IHtcbiAgcHVibGlzaERlZmF1bHRHbG9iYWxVdGlscyBhcyDJtXB1Ymxpc2hEZWZhdWx0R2xvYmFsVXRpbHNcbixcbiAgcHVibGlzaEdsb2JhbFV0aWwgYXMgybVwdWJsaXNoR2xvYmFsVXRpbH0gZnJvbSAnLi9yZW5kZXIzL3V0aWwvZ2xvYmFsX3V0aWxzJztcbmV4cG9ydCB7Vmlld1JlZiBhcyDJtVZpZXdSZWZ9IGZyb20gJy4vcmVuZGVyMy92aWV3X3JlZic7XG5leHBvcnQge1xuICBieXBhc3NTYW5pdGl6YXRpb25UcnVzdEh0bWwgYXMgybVieXBhc3NTYW5pdGl6YXRpb25UcnVzdEh0bWwsXG4gIGJ5cGFzc1Nhbml0aXphdGlvblRydXN0UmVzb3VyY2VVcmwgYXMgybVieXBhc3NTYW5pdGl6YXRpb25UcnVzdFJlc291cmNlVXJsLFxuICBieXBhc3NTYW5pdGl6YXRpb25UcnVzdFNjcmlwdCBhcyDJtWJ5cGFzc1Nhbml0aXphdGlvblRydXN0U2NyaXB0LFxuICBieXBhc3NTYW5pdGl6YXRpb25UcnVzdFN0eWxlIGFzIMm1YnlwYXNzU2FuaXRpemF0aW9uVHJ1c3RTdHlsZSxcbiAgYnlwYXNzU2FuaXRpemF0aW9uVHJ1c3RVcmwgYXMgybVieXBhc3NTYW5pdGl6YXRpb25UcnVzdFVybCxcbn0gZnJvbSAnLi9zYW5pdGl6YXRpb24vYnlwYXNzJztcbmV4cG9ydCB7XG4gIMm1ybVzYW5pdGl6ZUh0bWwsXG4gIMm1ybVzYW5pdGl6ZVJlc291cmNlVXJsLFxuICDJtcm1c2FuaXRpemVTY3JpcHQsXG4gIMm1ybVzYW5pdGl6ZVN0eWxlLFxuICDJtcm1c2FuaXRpemVVcmwsXG4gIMm1ybVzYW5pdGl6ZVVybE9yUmVzb3VyY2VVcmwsXG4gIMm1ybV0cnVzdENvbnN0YW50SHRtbCxcbiAgybXJtXRydXN0Q29uc3RhbnRSZXNvdXJjZVVybCxcbn0gZnJvbSAnLi9zYW5pdGl6YXRpb24vc2FuaXRpemF0aW9uJztcbmV4cG9ydCB7XG4gIMm1ybV2YWxpZGF0ZUlmcmFtZUF0dHJpYnV0ZSxcbn0gZnJvbSAnLi9zYW5pdGl6YXRpb24vaWZyYW1lX2F0dHJzX3ZhbGlkYXRpb24nO1xuZXhwb3J0IHtcbiAgbm9TaWRlRWZmZWN0cyBhcyDJtW5vU2lkZUVmZmVjdHMsXG59IGZyb20gJy4vdXRpbC9jbG9zdXJlJztcbmV4cG9ydCB7IEFmdGVyUmVuZGVyRXZlbnRNYW5hZ2VyIGFzIMm1QWZ0ZXJSZW5kZXJFdmVudE1hbmFnZXIgfSBmcm9tICcuL3JlbmRlcjMvYWZ0ZXJfcmVuZGVyX2hvb2tzJztcbmV4cG9ydCB7ZGVwc1RyYWNrZXIgYXMgybVkZXBzVHJhY2tlciwgVVNFX1JVTlRJTUVfREVQU19UUkFDS0VSX0ZPUl9KSVQgYXMgybVVU0VfUlVOVElNRV9ERVBTX1RSQUNLRVJfRk9SX0pJVH0gZnJvbSAnLi9yZW5kZXIzL2RlcHNfdHJhY2tlci9kZXBzX3RyYWNrZXInO1xuZXhwb3J0IHtnZW5lcmF0ZVN0YW5kYWxvbmVJbkRlY2xhcmF0aW9uc0Vycm9yIGFzIMm1Z2VuZXJhdGVTdGFuZGFsb25lSW5EZWNsYXJhdGlvbnNFcnJvcn0gZnJvbSAnLi9yZW5kZXIzL2ppdC9tb2R1bGUnO1xuZXhwb3J0IHtnZXRBc3luY0NsYXNzTWV0YWRhdGEgYXMgybVnZXRBc3luY0NsYXNzTWV0YWRhdGF9IGZyb20gJy4vcmVuZGVyMy9tZXRhZGF0YSc7XG5cbi8vIGNsYW5nLWZvcm1hdCBvblxuIl19
@@ -46,4 +46,4 @@ export function formatRuntimeError(code, message) {
46
46
  }
47
47
  return errorMessage;
48
48
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBOEdyRTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLE9BQU8sWUFBa0QsU0FBUSxLQUFLO0lBQzFFLFlBQW1CLElBQU8sRUFBRSxPQUEwQjtRQUNwRCxLQUFLLENBQUMsa0JBQWtCLENBQUksSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFEM0IsU0FBSSxHQUFKLElBQUksQ0FBRztJQUUxQixDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQzlCLElBQU8sRUFBRSxPQUEwQjtJQUNyQywrRkFBK0Y7SUFDL0YsMkRBQTJEO0lBQzNELGtEQUFrRDtJQUNsRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUV4QyxJQUFJLFlBQVksR0FBRyxHQUFHLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBRWpFLElBQUksU0FBUyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7UUFDekIsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0QsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hELFlBQVk7WUFDUixHQUFHLFlBQVksR0FBRyxTQUFTLGlCQUFpQiwyQkFBMkIsSUFBSSxRQUFRLEVBQUUsQ0FBQztLQUMzRjtJQUNELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtFUlJPUl9ERVRBSUxTX1BBR0VfQkFTRV9VUkx9IGZyb20gJy4vZXJyb3JfZGV0YWlsc19iYXNlX3VybCc7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2YgZXJyb3IgY29kZXMgdXNlZCBpbiBydW50aW1lIGNvZGUgb2YgdGhlIGBjb3JlYCBwYWNrYWdlLlxuICogUmVzZXJ2ZWQgZXJyb3IgY29kZSByYW5nZTogMTAwLTk5OS5cbiAqXG4gKiBOb3RlOiB0aGUgbWludXMgc2lnbiBkZW5vdGVzIHRoZSBmYWN0IHRoYXQgYSBwYXJ0aWN1bGFyIGNvZGUgaGFzIGEgZGV0YWlsZWQgZ3VpZGUgb25cbiAqIGFuZ3VsYXIuaW8uIFRoaXMgZXh0cmEgYW5ub3RhdGlvbiBpcyBuZWVkZWQgdG8gYXZvaWQgaW50cm9kdWNpbmcgYSBzZXBhcmF0ZSBzZXQgdG8gc3RvcmVcbiAqIGVycm9yIGNvZGVzIHdoaWNoIGhhdmUgZ3VpZGVzLCB3aGljaCBtaWdodCBsZWFrIGludG8gcnVudGltZSBjb2RlLlxuICpcbiAqIEZ1bGwgbGlzdCBvZiBhdmFpbGFibGUgZXJyb3IgZ3VpZGVzIGNhbiBiZSBmb3VuZCBhdCBodHRwczovL2FuZ3VsYXIuaW8vZXJyb3JzLlxuICpcbiAqIEVycm9yIGNvZGUgcmFuZ2VzIHBlciBwYWNrYWdlOlxuICogIC0gY29yZSAodGhpcyBwYWNrYWdlKTogMTAwLTk5OVxuICogIC0gZm9ybXM6IDEwMDAtMTk5OVxuICogIC0gY29tbW9uOiAyMDAwLTI5OTlcbiAqICAtIGFuaW1hdGlvbnM6IDMwMDAtMzk5OVxuICogIC0gcm91dGVyOiA0MDAwLTQ5OTlcbiAqICAtIHBsYXRmb3JtLWJyb3dzZXI6IDUwMDAtNTUwMFxuICovXG5leHBvcnQgY29uc3QgZW51bSBSdW50aW1lRXJyb3JDb2RlIHtcbiAgLy8gQ2hhbmdlIERldGVjdGlvbiBFcnJvcnNcbiAgRVhQUkVTU0lPTl9DSEFOR0VEX0FGVEVSX0NIRUNLRUQgPSAtMTAwLFxuICBSRUNVUlNJVkVfQVBQTElDQVRJT05fUkVGX1RJQ0sgPSAxMDEsXG4gIFJFQ1VSU0lWRV9BUFBMSUNBVElPTl9SRU5ERVIgPSAxMDIsXG5cbiAgLy8gRGVwZW5kZW5jeSBJbmplY3Rpb24gRXJyb3JzXG4gIENZQ0xJQ19ESV9ERVBFTkRFTkNZID0gLTIwMCxcbiAgUFJPVklERVJfTk9UX0ZPVU5EID0gLTIwMSxcbiAgSU5WQUxJRF9GQUNUT1JZX0RFUEVOREVOQ1kgPSAyMDIsXG4gIE1JU1NJTkdfSU5KRUNUSU9OX0NPTlRFWFQgPSAtMjAzLFxuICBJTlZBTElEX0lOSkVDVElPTl9UT0tFTiA9IDIwNCxcbiAgSU5KRUNUT1JfQUxSRUFEWV9ERVNUUk9ZRUQgPSAyMDUsXG4gIFBST1ZJREVSX0lOX1dST05HX0NPTlRFWFQgPSAyMDcsXG4gIE1JU1NJTkdfSU5KRUNUSU9OX1RPS0VOID0gMjA4LFxuICBJTlZBTElEX01VTFRJX1BST1ZJREVSID0gLTIwOSxcbiAgTUlTU0lOR19ET0NVTUVOVCA9IDIxMCxcblxuICAvLyBUZW1wbGF0ZSBFcnJvcnNcbiAgTVVMVElQTEVfQ09NUE9ORU5UU19NQVRDSCA9IC0zMDAsXG4gIEVYUE9SVF9OT1RfRk9VTkQgPSAtMzAxLFxuICBQSVBFX05PVF9GT1VORCA9IC0zMDIsXG4gIFVOS05PV05fQklORElORyA9IDMwMyxcbiAgVU5LTk9XTl9FTEVNRU5UID0gMzA0LFxuICBURU1QTEFURV9TVFJVQ1RVUkVfRVJST1IgPSAzMDUsXG4gIElOVkFMSURfRVZFTlRfQklORElORyA9IDMwNixcbiAgSE9TVF9ESVJFQ1RJVkVfVU5SRVNPTFZBQkxFID0gMzA3LFxuICBIT1NUX0RJUkVDVElWRV9OT1RfU1RBTkRBTE9ORSA9IDMwOCxcbiAgRFVQTElDQVRFX0RJUkVDVElUVkUgPSAzMDksXG4gIEhPU1RfRElSRUNUSVZFX0NPTVBPTkVOVCA9IDMxMCxcbiAgSE9TVF9ESVJFQ1RJVkVfVU5ERUZJTkVEX0JJTkRJTkcgPSAzMTEsXG4gIEhPU1RfRElSRUNUSVZFX0NPTkZMSUNUSU5HX0FMSUFTID0gMzEyLFxuICBNVUxUSVBMRV9NQVRDSElOR19QSVBFUyA9IDMxMyxcblxuICAvLyBCb290c3RyYXAgRXJyb3JzXG4gIE1VTFRJUExFX1BMQVRGT1JNUyA9IDQwMCxcbiAgUExBVEZPUk1fTk9UX0ZPVU5EID0gNDAxLFxuICBNSVNTSU5HX1JFUVVJUkVEX0lOSkVDVEFCTEVfSU5fQk9PVFNUUkFQID0gNDAyLFxuICBCT09UU1RSQVBfQ09NUE9ORU5UU19OT1RfRk9VTkQgPSAtNDAzLFxuICBQTEFURk9STV9BTFJFQURZX0RFU1RST1lFRCA9IDQwNCxcbiAgQVNZTkNfSU5JVElBTElaRVJTX1NUSUxMX1JVTk5JTkcgPSA0MDUsXG4gIEFQUExJQ0FUSU9OX1JFRl9BTFJFQURZX0RFU1RST1lFRCA9IDQwNixcbiAgUkVOREVSRVJfTk9UX0ZPVU5EID0gNDA3LFxuXG4gIC8vIEh5ZHJhdGlvbiBFcnJvcnNcbiAgSFlEUkFUSU9OX05PREVfTUlTTUFUQ0ggPSAtNTAwLFxuICBIWURSQVRJT05fTUlTU0lOR19TSUJMSU5HUyA9IC01MDEsXG4gIEhZRFJBVElPTl9NSVNTSU5HX05PREUgPSAtNTAyLFxuICBVTlNVUFBPUlRFRF9QUk9KRUNUSU9OX0RPTV9OT0RFUyA9IC01MDMsXG4gIElOVkFMSURfU0tJUF9IWURSQVRJT05fSE9TVCA9IC01MDQsXG4gIE1JU1NJTkdfSFlEUkFUSU9OX0FOTk9UQVRJT05TID0gLTUwNSxcbiAgSFlEUkFUSU9OX1NUQUJMRV9USU1FRE9VVCA9IC01MDYsXG4gIE1JU1NJTkdfU1NSX0NPTlRFTlRfSU5URUdSSVRZX01BUktFUiA9IC01MDcsXG5cbiAgLy8gU2lnbmFsIEVycm9yc1xuICBTSUdOQUxfV1JJVEVfRlJPTV9JTExFR0FMX0NPTlRFWFQgPSA2MDAsXG4gIFJFUVVJUkVfU1lOQ19XSVRIT1VUX1NZTkNfRU1JVCA9IDYwMSxcblxuICAvLyBTdHlsaW5nIEVycm9yc1xuXG4gIC8vIERlY2xhcmF0aW9ucyBFcnJvcnNcblxuICAvLyBpMThuIEVycm9yc1xuICBJTlZBTElEX0kxOE5fU1RSVUNUVVJFID0gNzAwLFxuICBNSVNTSU5HX0xPQ0FMRV9EQVRBID0gNzAxLFxuXG4gIC8vIHN0YW5kYWxvbmUgZXJyb3JzXG4gIElNUE9SVF9QUk9WSURFUlNfRlJPTV9TVEFOREFMT05FID0gODAwLFxuXG4gIC8vIEpJVCBDb21waWxhdGlvbiBFcnJvcnNcbiAgLy8gT3RoZXJcbiAgSU5WQUxJRF9ESUZGRVJfSU5QVVQgPSA5MDAsXG4gIE5PX1NVUFBPUlRJTkdfRElGRkVSX0ZBQ1RPUlkgPSA5MDEsXG4gIFZJRVdfQUxSRUFEWV9BVFRBQ0hFRCA9IDkwMixcbiAgSU5WQUxJRF9JTkhFUklUQU5DRSA9IDkwMyxcbiAgVU5TQUZFX1ZBTFVFX0lOX1JFU09VUkNFX1VSTCA9IDkwNCxcbiAgVU5TQUZFX1ZBTFVFX0lOX1NDUklQVCA9IDkwNSxcbiAgTUlTU0lOR19HRU5FUkFURURfREVGID0gOTA2LFxuICBUWVBFX0lTX05PVF9TVEFOREFMT05FID0gOTA3LFxuICBNSVNTSU5HX1pPTkVKUyA9IDkwOCxcbiAgVU5FWFBFQ1RFRF9aT05FX1NUQVRFID0gOTA5LFxuICBVTlNBRkVfSUZSQU1FX0FUVFJTID0gLTkxMCxcbiAgVklFV19BTFJFQURZX0RFU1RST1lFRCA9IDkxMSxcbiAgQ09NUE9ORU5UX0lEX0NPTExJU0lPTiA9IC05MTIsXG5cbiAgLy8gUnVudGltZSBkZXBlbmRlbmN5IHRyYWNrZXIgZXJyb3JzXG4gIFJVTlRJTUVfREVQU19JTlZBTElEX0lNUE9SVEVEX1RZUEUgPSAxMDAwLFxufVxuXG5cbi8qKlxuICogQ2xhc3MgdGhhdCByZXByZXNlbnRzIGEgcnVudGltZSBlcnJvci5cbiAqIEZvcm1hdHMgYW5kIG91dHB1dHMgdGhlIGVycm9yIG1lc3NhZ2UgaW4gYSBjb25zaXN0ZW50IHdheS5cbiAqXG4gKiBFeGFtcGxlOlxuICogYGBgXG4gKiAgdGhyb3cgbmV3IFJ1bnRpbWVFcnJvcihcbiAqICAgIFJ1bnRpbWVFcnJvckNvZGUuSU5KRUNUT1JfQUxSRUFEWV9ERVNUUk9ZRUQsXG4gKiAgICBuZ0Rldk1vZGUgJiYgJ0luamVjdG9yIGhhcyBhbHJlYWR5IGJlZW4gZGVzdHJveWVkLicpO1xuICogYGBgXG4gKlxuICogTm90ZTogdGhlIGBtZXNzYWdlYCBhcmd1bWVudCBjb250YWlucyBhIGRlc2NyaXB0aXZlIGVycm9yIG1lc3NhZ2UgYXMgYSBzdHJpbmcgaW4gZGV2ZWxvcG1lbnRcbiAqIG1vZGUgKHdoZW4gdGhlIGBuZ0Rldk1vZGVgIGlzIGRlZmluZWQpLiBJbiBwcm9kdWN0aW9uIG1vZGUgKGFmdGVyIHRyZWUtc2hha2luZyBwYXNzKSwgdGhlXG4gKiBgbWVzc2FnZWAgYXJndW1lbnQgYmVjb21lcyBgZmFsc2VgLCB0aHVzIHdlIGFjY291bnQgZm9yIGl0IGluIHRoZSB0eXBpbmdzIGFuZCB0aGUgcnVudGltZVxuICogbG9naWMuXG4gKi9cbmV4cG9ydCBjbGFzcyBSdW50aW1lRXJyb3I8VCBleHRlbmRzIG51bWJlciA9IFJ1bnRpbWVFcnJvckNvZGU+IGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29kZTogVCwgbWVzc2FnZTogbnVsbHxmYWxzZXxzdHJpbmcpIHtcbiAgICBzdXBlcihmb3JtYXRSdW50aW1lRXJyb3I8VD4oY29kZSwgbWVzc2FnZSkpO1xuICB9XG59XG5cbi8qKlxuICogQ2FsbGVkIHRvIGZvcm1hdCBhIHJ1bnRpbWUgZXJyb3IuXG4gKiBTZWUgYWRkaXRpb25hbCBpbmZvIG9uIHRoZSBgbWVzc2FnZWAgYXJndW1lbnQgdHlwZSBpbiB0aGUgYFJ1bnRpbWVFcnJvcmAgY2xhc3MgZGVzY3JpcHRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRSdW50aW1lRXJyb3I8VCBleHRlbmRzIG51bWJlciA9IFJ1bnRpbWVFcnJvckNvZGU+KFxuICAgIGNvZGU6IFQsIG1lc3NhZ2U6IG51bGx8ZmFsc2V8c3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gRXJyb3IgY29kZSBtaWdodCBiZSBhIG5lZ2F0aXZlIG51bWJlciwgd2hpY2ggaXMgYSBzcGVjaWFsIG1hcmtlciB0aGF0IGluc3RydWN0cyB0aGUgbG9naWMgdG9cbiAgLy8gZ2VuZXJhdGUgYSBsaW5rIHRvIHRoZSBlcnJvciBkZXRhaWxzIHBhZ2Ugb24gYW5ndWxhci5pby5cbiAgLy8gV2UgYWxzbyBwcmVwZW5kIGAwYCB0byBub24tY29tcGlsZS10aW1lIGVycm9ycy5cbiAgY29uc3QgZnVsbENvZGUgPSBgTkcwJHtNYXRoLmFicyhjb2RlKX1gO1xuXG4gIGxldCBlcnJvck1lc3NhZ2UgPSBgJHtmdWxsQ29kZX0ke21lc3NhZ2UgPyAnOiAnICsgbWVzc2FnZSA6ICcnfWA7XG5cbiAgaWYgKG5nRGV2TW9kZSAmJiBjb2RlIDwgMCkge1xuICAgIGNvbnN0IGFkZFBlcmlvZFNlcGFyYXRvciA9ICFlcnJvck1lc3NhZ2UubWF0Y2goL1suLDshP1xcbl0kLyk7XG4gICAgY29uc3Qgc2VwYXJhdG9yID0gYWRkUGVyaW9kU2VwYXJhdG9yID8gJy4nIDogJyc7XG4gICAgZXJyb3JNZXNzYWdlID1cbiAgICAgICAgYCR7ZXJyb3JNZXNzYWdlfSR7c2VwYXJhdG9yfSBGaW5kIG1vcmUgYXQgJHtFUlJPUl9ERVRBSUxTX1BBR0VfQkFTRV9VUkx9LyR7ZnVsbENvZGV9YDtcbiAgfVxuICByZXR1cm4gZXJyb3JNZXNzYWdlO1xufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBK0dyRTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLE9BQU8sWUFBa0QsU0FBUSxLQUFLO0lBQzFFLFlBQW1CLElBQU8sRUFBRSxPQUEwQjtRQUNwRCxLQUFLLENBQUMsa0JBQWtCLENBQUksSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFEM0IsU0FBSSxHQUFKLElBQUksQ0FBRztJQUUxQixDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQzlCLElBQU8sRUFBRSxPQUEwQjtJQUNyQywrRkFBK0Y7SUFDL0YsMkRBQTJEO0lBQzNELGtEQUFrRDtJQUNsRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUV4QyxJQUFJLFlBQVksR0FBRyxHQUFHLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBRWpFLElBQUksU0FBUyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7UUFDekIsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0QsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hELFlBQVk7WUFDUixHQUFHLFlBQVksR0FBRyxTQUFTLGlCQUFpQiwyQkFBMkIsSUFBSSxRQUFRLEVBQUUsQ0FBQztLQUMzRjtJQUNELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtFUlJPUl9ERVRBSUxTX1BBR0VfQkFTRV9VUkx9IGZyb20gJy4vZXJyb3JfZGV0YWlsc19iYXNlX3VybCc7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2YgZXJyb3IgY29kZXMgdXNlZCBpbiBydW50aW1lIGNvZGUgb2YgdGhlIGBjb3JlYCBwYWNrYWdlLlxuICogUmVzZXJ2ZWQgZXJyb3IgY29kZSByYW5nZTogMTAwLTk5OS5cbiAqXG4gKiBOb3RlOiB0aGUgbWludXMgc2lnbiBkZW5vdGVzIHRoZSBmYWN0IHRoYXQgYSBwYXJ0aWN1bGFyIGNvZGUgaGFzIGEgZGV0YWlsZWQgZ3VpZGUgb25cbiAqIGFuZ3VsYXIuaW8uIFRoaXMgZXh0cmEgYW5ub3RhdGlvbiBpcyBuZWVkZWQgdG8gYXZvaWQgaW50cm9kdWNpbmcgYSBzZXBhcmF0ZSBzZXQgdG8gc3RvcmVcbiAqIGVycm9yIGNvZGVzIHdoaWNoIGhhdmUgZ3VpZGVzLCB3aGljaCBtaWdodCBsZWFrIGludG8gcnVudGltZSBjb2RlLlxuICpcbiAqIEZ1bGwgbGlzdCBvZiBhdmFpbGFibGUgZXJyb3IgZ3VpZGVzIGNhbiBiZSBmb3VuZCBhdCBodHRwczovL2FuZ3VsYXIuaW8vZXJyb3JzLlxuICpcbiAqIEVycm9yIGNvZGUgcmFuZ2VzIHBlciBwYWNrYWdlOlxuICogIC0gY29yZSAodGhpcyBwYWNrYWdlKTogMTAwLTk5OVxuICogIC0gZm9ybXM6IDEwMDAtMTk5OVxuICogIC0gY29tbW9uOiAyMDAwLTI5OTlcbiAqICAtIGFuaW1hdGlvbnM6IDMwMDAtMzk5OVxuICogIC0gcm91dGVyOiA0MDAwLTQ5OTlcbiAqICAtIHBsYXRmb3JtLWJyb3dzZXI6IDUwMDAtNTUwMFxuICovXG5leHBvcnQgY29uc3QgZW51bSBSdW50aW1lRXJyb3JDb2RlIHtcbiAgLy8gQ2hhbmdlIERldGVjdGlvbiBFcnJvcnNcbiAgRVhQUkVTU0lPTl9DSEFOR0VEX0FGVEVSX0NIRUNLRUQgPSAtMTAwLFxuICBSRUNVUlNJVkVfQVBQTElDQVRJT05fUkVGX1RJQ0sgPSAxMDEsXG4gIFJFQ1VSU0lWRV9BUFBMSUNBVElPTl9SRU5ERVIgPSAxMDIsXG5cbiAgLy8gRGVwZW5kZW5jeSBJbmplY3Rpb24gRXJyb3JzXG4gIENZQ0xJQ19ESV9ERVBFTkRFTkNZID0gLTIwMCxcbiAgUFJPVklERVJfTk9UX0ZPVU5EID0gLTIwMSxcbiAgSU5WQUxJRF9GQUNUT1JZX0RFUEVOREVOQ1kgPSAyMDIsXG4gIE1JU1NJTkdfSU5KRUNUSU9OX0NPTlRFWFQgPSAtMjAzLFxuICBJTlZBTElEX0lOSkVDVElPTl9UT0tFTiA9IDIwNCxcbiAgSU5KRUNUT1JfQUxSRUFEWV9ERVNUUk9ZRUQgPSAyMDUsXG4gIFBST1ZJREVSX0lOX1dST05HX0NPTlRFWFQgPSAyMDcsXG4gIE1JU1NJTkdfSU5KRUNUSU9OX1RPS0VOID0gMjA4LFxuICBJTlZBTElEX01VTFRJX1BST1ZJREVSID0gLTIwOSxcbiAgTUlTU0lOR19ET0NVTUVOVCA9IDIxMCxcblxuICAvLyBUZW1wbGF0ZSBFcnJvcnNcbiAgTVVMVElQTEVfQ09NUE9ORU5UU19NQVRDSCA9IC0zMDAsXG4gIEVYUE9SVF9OT1RfRk9VTkQgPSAtMzAxLFxuICBQSVBFX05PVF9GT1VORCA9IC0zMDIsXG4gIFVOS05PV05fQklORElORyA9IDMwMyxcbiAgVU5LTk9XTl9FTEVNRU5UID0gMzA0LFxuICBURU1QTEFURV9TVFJVQ1RVUkVfRVJST1IgPSAzMDUsXG4gIElOVkFMSURfRVZFTlRfQklORElORyA9IDMwNixcbiAgSE9TVF9ESVJFQ1RJVkVfVU5SRVNPTFZBQkxFID0gMzA3LFxuICBIT1NUX0RJUkVDVElWRV9OT1RfU1RBTkRBTE9ORSA9IDMwOCxcbiAgRFVQTElDQVRFX0RJUkVDVElUVkUgPSAzMDksXG4gIEhPU1RfRElSRUNUSVZFX0NPTVBPTkVOVCA9IDMxMCxcbiAgSE9TVF9ESVJFQ1RJVkVfVU5ERUZJTkVEX0JJTkRJTkcgPSAzMTEsXG4gIEhPU1RfRElSRUNUSVZFX0NPTkZMSUNUSU5HX0FMSUFTID0gMzEyLFxuICBNVUxUSVBMRV9NQVRDSElOR19QSVBFUyA9IDMxMyxcblxuICAvLyBCb290c3RyYXAgRXJyb3JzXG4gIE1VTFRJUExFX1BMQVRGT1JNUyA9IDQwMCxcbiAgUExBVEZPUk1fTk9UX0ZPVU5EID0gNDAxLFxuICBNSVNTSU5HX1JFUVVJUkVEX0lOSkVDVEFCTEVfSU5fQk9PVFNUUkFQID0gNDAyLFxuICBCT09UU1RSQVBfQ09NUE9ORU5UU19OT1RfRk9VTkQgPSAtNDAzLFxuICBQTEFURk9STV9BTFJFQURZX0RFU1RST1lFRCA9IDQwNCxcbiAgQVNZTkNfSU5JVElBTElaRVJTX1NUSUxMX1JVTk5JTkcgPSA0MDUsXG4gIEFQUExJQ0FUSU9OX1JFRl9BTFJFQURZX0RFU1RST1lFRCA9IDQwNixcbiAgUkVOREVSRVJfTk9UX0ZPVU5EID0gNDA3LFxuXG4gIC8vIEh5ZHJhdGlvbiBFcnJvcnNcbiAgSFlEUkFUSU9OX05PREVfTUlTTUFUQ0ggPSAtNTAwLFxuICBIWURSQVRJT05fTUlTU0lOR19TSUJMSU5HUyA9IC01MDEsXG4gIEhZRFJBVElPTl9NSVNTSU5HX05PREUgPSAtNTAyLFxuICBVTlNVUFBPUlRFRF9QUk9KRUNUSU9OX0RPTV9OT0RFUyA9IC01MDMsXG4gIElOVkFMSURfU0tJUF9IWURSQVRJT05fSE9TVCA9IC01MDQsXG4gIE1JU1NJTkdfSFlEUkFUSU9OX0FOTk9UQVRJT05TID0gLTUwNSxcbiAgSFlEUkFUSU9OX1NUQUJMRV9USU1FRE9VVCA9IC01MDYsXG4gIE1JU1NJTkdfU1NSX0NPTlRFTlRfSU5URUdSSVRZX01BUktFUiA9IC01MDcsXG5cbiAgLy8gU2lnbmFsIEVycm9yc1xuICBTSUdOQUxfV1JJVEVfRlJPTV9JTExFR0FMX0NPTlRFWFQgPSA2MDAsXG4gIFJFUVVJUkVfU1lOQ19XSVRIT1VUX1NZTkNfRU1JVCA9IDYwMSxcblxuICAvLyBTdHlsaW5nIEVycm9yc1xuXG4gIC8vIERlY2xhcmF0aW9ucyBFcnJvcnNcblxuICAvLyBpMThuIEVycm9yc1xuICBJTlZBTElEX0kxOE5fU1RSVUNUVVJFID0gNzAwLFxuICBNSVNTSU5HX0xPQ0FMRV9EQVRBID0gNzAxLFxuXG4gIC8vIHN0YW5kYWxvbmUgZXJyb3JzXG4gIElNUE9SVF9QUk9WSURFUlNfRlJPTV9TVEFOREFMT05FID0gODAwLFxuXG4gIC8vIEpJVCBDb21waWxhdGlvbiBFcnJvcnNcbiAgLy8gT3RoZXJcbiAgSU5WQUxJRF9ESUZGRVJfSU5QVVQgPSA5MDAsXG4gIE5PX1NVUFBPUlRJTkdfRElGRkVSX0ZBQ1RPUlkgPSA5MDEsXG4gIFZJRVdfQUxSRUFEWV9BVFRBQ0hFRCA9IDkwMixcbiAgSU5WQUxJRF9JTkhFUklUQU5DRSA9IDkwMyxcbiAgVU5TQUZFX1ZBTFVFX0lOX1JFU09VUkNFX1VSTCA9IDkwNCxcbiAgVU5TQUZFX1ZBTFVFX0lOX1NDUklQVCA9IDkwNSxcbiAgTUlTU0lOR19HRU5FUkFURURfREVGID0gOTA2LFxuICBUWVBFX0lTX05PVF9TVEFOREFMT05FID0gOTA3LFxuICBNSVNTSU5HX1pPTkVKUyA9IDkwOCxcbiAgVU5FWFBFQ1RFRF9aT05FX1NUQVRFID0gOTA5LFxuICBVTlNBRkVfSUZSQU1FX0FUVFJTID0gLTkxMCxcbiAgVklFV19BTFJFQURZX0RFU1RST1lFRCA9IDkxMSxcbiAgQ09NUE9ORU5UX0lEX0NPTExJU0lPTiA9IC05MTIsXG5cbiAgLy8gUnVudGltZSBkZXBlbmRlbmN5IHRyYWNrZXIgZXJyb3JzXG4gIFJVTlRJTUVfREVQU19JTlZBTElEX0lNUE9SVEVEX1RZUEUgPSAxMDAwLFxuICBSVU5USU1FX0RFUFNfT1JQSEFOX0NPTVBPTkVOVCA9IDEwMDEsXG59XG5cblxuLyoqXG4gKiBDbGFzcyB0aGF0IHJlcHJlc2VudHMgYSBydW50aW1lIGVycm9yLlxuICogRm9ybWF0cyBhbmQgb3V0cHV0cyB0aGUgZXJyb3IgbWVzc2FnZSBpbiBhIGNvbnNpc3RlbnQgd2F5LlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGBcbiAqICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFxuICogICAgUnVudGltZUVycm9yQ29kZS5JTkpFQ1RPUl9BTFJFQURZX0RFU1RST1lFRCxcbiAqICAgIG5nRGV2TW9kZSAmJiAnSW5qZWN0b3IgaGFzIGFscmVhZHkgYmVlbiBkZXN0cm95ZWQuJyk7XG4gKiBgYGBcbiAqXG4gKiBOb3RlOiB0aGUgYG1lc3NhZ2VgIGFyZ3VtZW50IGNvbnRhaW5zIGEgZGVzY3JpcHRpdmUgZXJyb3IgbWVzc2FnZSBhcyBhIHN0cmluZyBpbiBkZXZlbG9wbWVudFxuICogbW9kZSAod2hlbiB0aGUgYG5nRGV2TW9kZWAgaXMgZGVmaW5lZCkuIEluIHByb2R1Y3Rpb24gbW9kZSAoYWZ0ZXIgdHJlZS1zaGFraW5nIHBhc3MpLCB0aGVcbiAqIGBtZXNzYWdlYCBhcmd1bWVudCBiZWNvbWVzIGBmYWxzZWAsIHRodXMgd2UgYWNjb3VudCBmb3IgaXQgaW4gdGhlIHR5cGluZ3MgYW5kIHRoZSBydW50aW1lXG4gKiBsb2dpYy5cbiAqL1xuZXhwb3J0IGNsYXNzIFJ1bnRpbWVFcnJvcjxUIGV4dGVuZHMgbnVtYmVyID0gUnVudGltZUVycm9yQ29kZT4gZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb2RlOiBULCBtZXNzYWdlOiBudWxsfGZhbHNlfHN0cmluZykge1xuICAgIHN1cGVyKGZvcm1hdFJ1bnRpbWVFcnJvcjxUPihjb2RlLCBtZXNzYWdlKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDYWxsZWQgdG8gZm9ybWF0IGEgcnVudGltZSBlcnJvci5cbiAqIFNlZSBhZGRpdGlvbmFsIGluZm8gb24gdGhlIGBtZXNzYWdlYCBhcmd1bWVudCB0eXBlIGluIHRoZSBgUnVudGltZUVycm9yYCBjbGFzcyBkZXNjcmlwdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFJ1bnRpbWVFcnJvcjxUIGV4dGVuZHMgbnVtYmVyID0gUnVudGltZUVycm9yQ29kZT4oXG4gICAgY29kZTogVCwgbWVzc2FnZTogbnVsbHxmYWxzZXxzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBFcnJvciBjb2RlIG1pZ2h0IGJlIGEgbmVnYXRpdmUgbnVtYmVyLCB3aGljaCBpcyBhIHNwZWNpYWwgbWFya2VyIHRoYXQgaW5zdHJ1Y3RzIHRoZSBsb2dpYyB0b1xuICAvLyBnZW5lcmF0ZSBhIGxpbmsgdG8gdGhlIGVycm9yIGRldGFpbHMgcGFnZSBvbiBhbmd1bGFyLmlvLlxuICAvLyBXZSBhbHNvIHByZXBlbmQgYDBgIHRvIG5vbi1jb21waWxlLXRpbWUgZXJyb3JzLlxuICBjb25zdCBmdWxsQ29kZSA9IGBORzAke01hdGguYWJzKGNvZGUpfWA7XG5cbiAgbGV0IGVycm9yTWVzc2FnZSA9IGAke2Z1bGxDb2RlfSR7bWVzc2FnZSA/ICc6ICcgKyBtZXNzYWdlIDogJyd9YDtcblxuICBpZiAobmdEZXZNb2RlICYmIGNvZGUgPCAwKSB7XG4gICAgY29uc3QgYWRkUGVyaW9kU2VwYXJhdG9yID0gIWVycm9yTWVzc2FnZS5tYXRjaCgvWy4sOyE/XFxuXSQvKTtcbiAgICBjb25zdCBzZXBhcmF0b3IgPSBhZGRQZXJpb2RTZXBhcmF0b3IgPyAnLicgOiAnJztcbiAgICBlcnJvck1lc3NhZ2UgPVxuICAgICAgICBgJHtlcnJvck1lc3NhZ2V9JHtzZXBhcmF0b3J9IEZpbmQgbW9yZSBhdCAke0VSUk9SX0RFVEFJTFNfUEFHRV9CQVNFX1VSTH0vJHtmdWxsQ29kZX1gO1xuICB9XG4gIHJldHVybiBlcnJvck1lc3NhZ2U7XG59XG4iXX0=
@@ -6,4 +6,4 @@
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
8
  export {};
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdfbW9kdWxlX2RlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL21ldGFkYXRhL25nX21vZHVsZV9kZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7VHlwZX0gZnJvbSAnLi4vaW50ZXJmYWNlL3R5cGUnO1xuaW1wb3J0IHtTY2hlbWFNZXRhZGF0YX0gZnJvbSAnLi9zY2hlbWEnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgTmdNb2R1bGVUeXBlPFQgPSBhbnk+IGV4dGVuZHMgVHlwZTxUPiB7XG4gIMm1bW9kOiBOZ01vZHVsZURlZjxUPjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBleHBhbnNpb24gb2YgYW4gYE5nTW9kdWxlYCBpbnRvIGl0cyBzY29wZXMuXG4gKlxuICogQSBzY29wZSBpcyBhIHNldCBvZiBkaXJlY3RpdmVzIGFuZCBwaXBlcyB0aGF0IGFyZSB2aXNpYmxlIGluIGEgcGFydGljdWxhciBjb250ZXh0LiBFYWNoXG4gKiBgTmdNb2R1bGVgIGhhcyB0d28gc2NvcGVzLiBUaGUgYGNvbXBpbGF0aW9uYCBzY29wZSBpcyB0aGUgc2V0IG9mIGRpcmVjdGl2ZXMgYW5kIHBpcGVzIHRoYXQgd2lsbFxuICogYmUgcmVjb2duaXplZCBpbiB0aGUgdGVtcGxhdGVzIG9mIGNvbXBvbmVudHMgZGVjbGFyZWQgYnkgdGhlIG1vZHVsZS4gVGhlIGBleHBvcnRlZGAgc2NvcGUgaXMgdGhlXG4gKiBzZXQgb2YgZGlyZWN0aXZlcyBhbmQgcGlwZXMgZXhwb3J0ZWQgYnkgYSBtb2R1bGUgKHRoYXQgaXMsIG1vZHVsZSBCJ3MgZXhwb3J0ZWQgc2NvcGUgZ2V0cyBhZGRlZFxuICogdG8gbW9kdWxlIEEncyBjb21waWxhdGlvbiBzY29wZSB3aGVuIG1vZHVsZSBBIGltcG9ydHMgQikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmdNb2R1bGVUcmFuc2l0aXZlU2NvcGVzIHtcbiAgY29tcGlsYXRpb246IHtkaXJlY3RpdmVzOiBTZXQ8YW55PjsgcGlwZXM6IFNldDxhbnk+O307XG4gIGV4cG9ydGVkOiB7ZGlyZWN0aXZlczogU2V0PGFueT47IHBpcGVzOiBTZXQ8YW55Pjt9O1xuICBzY2hlbWFzOiBTY2hlbWFNZXRhZGF0YVtdfG51bGw7XG59XG5cbi8qKlxuICogUnVudGltZSBsaW5rIGluZm9ybWF0aW9uIGZvciBOZ01vZHVsZXMuXG4gKlxuICogVGhpcyBpcyB0aGUgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmUgdXNlZCBieSB0aGUgcnVudGltZSB0byBhc3NlbWJsZSBjb21wb25lbnRzLCBkaXJlY3RpdmVzLFxuICogcGlwZXMsIGFuZCBpbmplY3RvcnMuXG4gKlxuICogTk9URTogQWx3YXlzIHVzZSBgybXJtWRlZmluZU5nTW9kdWxlYCBmdW5jdGlvbiB0byBjcmVhdGUgdGhpcyBvYmplY3QsXG4gKiBuZXZlciBjcmVhdGUgdGhlIG9iamVjdCBkaXJlY3RseSBzaW5jZSB0aGUgc2hhcGUgb2YgdGhpcyBvYmplY3RcbiAqIGNhbiBjaGFuZ2UgYmV0d2VlbiB2ZXJzaW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZ01vZHVsZURlZjxUPiB7XG4gIC8qKiBUb2tlbiByZXByZXNlbnRpbmcgdGhlIG1vZHVsZS4gVXNlZCBieSBESS4gKi9cbiAgdHlwZTogVDtcblxuICAvKiogTGlzdCBvZiBjb21wb25lbnRzIHRvIGJvb3RzdHJhcC4gKi9cbiAgYm9vdHN0cmFwOiBUeXBlPGFueT5bXXwoKCkgPT4gVHlwZTxhbnk+W10pO1xuXG4gIC8qKiBMaXN0IG9mIGNvbXBvbmVudHMsIGRpcmVjdGl2ZXMsIGFuZCBwaXBlcyBkZWNsYXJlZCBieSB0aGlzIG1vZHVsZS4gKi9cbiAgZGVjbGFyYXRpb25zOiBUeXBlPGFueT5bXXwoKCkgPT4gVHlwZTxhbnk+W10pO1xuXG4gIC8qKiBMaXN0IG9mIG1vZHVsZXMgb3IgYE1vZHVsZVdpdGhQcm92aWRlcnNgIGltcG9ydGVkIGJ5IHRoaXMgbW9kdWxlLiAqL1xuICBpbXBvcnRzOiBUeXBlPGFueT5bXXwoKCkgPT4gVHlwZTxhbnk+W10pO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIG1vZHVsZXMsIGBNb2R1bGVXaXRoUHJvdmlkZXJzYCwgY29tcG9uZW50cywgZGlyZWN0aXZlcywgb3IgcGlwZXMgZXhwb3J0ZWQgYnkgdGhpc1xuICAgKiBtb2R1bGUuXG4gICAqL1xuICBleHBvcnRzOiBUeXBlPGFueT5bXXwoKCkgPT4gVHlwZTxhbnk+W10pO1xuXG4gIC8qKlxuICAgKiBDYWNoZWQgdmFsdWUgb2YgY29tcHV0ZWQgYHRyYW5zaXRpdmVDb21waWxlU2NvcGVzYCBmb3IgdGhpcyBtb2R1bGUuXG4gICAqXG4gICAqIFRoaXMgc2hvdWxkIG5ldmVyIGJlIHJlYWQgZGlyZWN0bHksIGJ1dCBhY2Nlc3NlZCB2aWEgYHRyYW5zaXRpdmVTY29wZXNGb3JgLlxuICAgKi9cbiAgdHJhbnNpdGl2ZUNvbXBpbGVTY29wZXM6IE5nTW9kdWxlVHJhbnNpdGl2ZVNjb3Blc3xudWxsO1xuXG4gIC8qKiBUaGUgc2V0IG9mIHNjaGVtYXMgdGhhdCBkZWNsYXJlIGVsZW1lbnRzIHRvIGJlIGFsbG93ZWQgaW4gdGhlIE5nTW9kdWxlLiAqL1xuICBzY2hlbWFzOiBTY2hlbWFNZXRhZGF0YVtdfG51bGw7XG5cbiAgLyoqIFVuaXF1ZSBJRCBmb3IgdGhlIG1vZHVsZSB3aXRoIHdoaWNoIGl0IHNob3VsZCBiZSByZWdpc3RlcmVkLiAgKi9cbiAgaWQ6IHN0cmluZ3xudWxsO1xufVxuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdfbW9kdWxlX2RlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL21ldGFkYXRhL25nX21vZHVsZV9kZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7VHlwZX0gZnJvbSAnLi4vaW50ZXJmYWNlL3R5cGUnO1xuXG5pbXBvcnQge1NjaGVtYU1ldGFkYXRhfSBmcm9tICcuL3NjaGVtYSc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBOZ01vZHVsZVR5cGU8VCA9IGFueT4gZXh0ZW5kcyBUeXBlPFQ+IHtcbiAgybVtb2Q6IE5nTW9kdWxlRGVmPFQ+O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGV4cGFuc2lvbiBvZiBhbiBgTmdNb2R1bGVgIGludG8gaXRzIHNjb3Blcy5cbiAqXG4gKiBBIHNjb3BlIGlzIGEgc2V0IG9mIGRpcmVjdGl2ZXMgYW5kIHBpcGVzIHRoYXQgYXJlIHZpc2libGUgaW4gYSBwYXJ0aWN1bGFyIGNvbnRleHQuIEVhY2hcbiAqIGBOZ01vZHVsZWAgaGFzIHR3byBzY29wZXMuIFRoZSBgY29tcGlsYXRpb25gIHNjb3BlIGlzIHRoZSBzZXQgb2YgZGlyZWN0aXZlcyBhbmQgcGlwZXMgdGhhdCB3aWxsXG4gKiBiZSByZWNvZ25pemVkIGluIHRoZSB0ZW1wbGF0ZXMgb2YgY29tcG9uZW50cyBkZWNsYXJlZCBieSB0aGUgbW9kdWxlLiBUaGUgYGV4cG9ydGVkYCBzY29wZSBpcyB0aGVcbiAqIHNldCBvZiBkaXJlY3RpdmVzIGFuZCBwaXBlcyBleHBvcnRlZCBieSBhIG1vZHVsZSAodGhhdCBpcywgbW9kdWxlIEIncyBleHBvcnRlZCBzY29wZSBnZXRzIGFkZGVkXG4gKiB0byBtb2R1bGUgQSdzIGNvbXBpbGF0aW9uIHNjb3BlIHdoZW4gbW9kdWxlIEEgaW1wb3J0cyBCKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZ01vZHVsZVRyYW5zaXRpdmVTY29wZXMge1xuICBjb21waWxhdGlvbjoge2RpcmVjdGl2ZXM6IFNldDxhbnk+OyBwaXBlczogU2V0PGFueT47fTtcbiAgZXhwb3J0ZWQ6IHtkaXJlY3RpdmVzOiBTZXQ8YW55PjsgcGlwZXM6IFNldDxhbnk+O307XG4gIHNjaGVtYXM6IFNjaGVtYU1ldGFkYXRhW118bnVsbDtcbn1cblxuLyoqXG4gKiBSdW50aW1lIGxpbmsgaW5mb3JtYXRpb24gZm9yIE5nTW9kdWxlcy5cbiAqXG4gKiBUaGlzIGlzIHRoZSBpbnRlcm5hbCBkYXRhIHN0cnVjdHVyZSB1c2VkIGJ5IHRoZSBydW50aW1lIHRvIGFzc2VtYmxlIGNvbXBvbmVudHMsIGRpcmVjdGl2ZXMsXG4gKiBwaXBlcywgYW5kIGluamVjdG9ycy5cbiAqXG4gKiBOT1RFOiBBbHdheXMgdXNlIGDJtcm1ZGVmaW5lTmdNb2R1bGVgIGZ1bmN0aW9uIHRvIGNyZWF0ZSB0aGlzIG9iamVjdCxcbiAqIG5ldmVyIGNyZWF0ZSB0aGUgb2JqZWN0IGRpcmVjdGx5IHNpbmNlIHRoZSBzaGFwZSBvZiB0aGlzIG9iamVjdFxuICogY2FuIGNoYW5nZSBiZXR3ZWVuIHZlcnNpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5nTW9kdWxlRGVmPFQ+IHtcbiAgLyoqIFRva2VuIHJlcHJlc2VudGluZyB0aGUgbW9kdWxlLiBVc2VkIGJ5IERJLiAqL1xuICB0eXBlOiBUO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNvbXBvbmVudHMgdG8gYm9vdHN0cmFwLlxuICAgKlxuICAgKiBAc2VlIHtOZ01vZHVsZVNjb3BlSW5mb0Zyb21EZWNvcmF0b3J9IFRoaXMgZmllbGQgaXMgb25seSB1c2VkIGluIGdsb2JhbCBjb21waWxhdGlvbiBtb2RlLiBJbiBsb2NhbCBjb21waWxhdGlvbiBtb2RlIHRoZSBib290c3RyYXAgaW5mbyBpcyBjb21wdXRlZCBhbmQgYWRkZWQgaW4gcnVudGltZS5cbiAgICovXG4gIGJvb3RzdHJhcDogVHlwZTxhbnk+W118KCgpID0+IFR5cGU8YW55PltdKTtcblxuICAvKiogTGlzdCBvZiBjb21wb25lbnRzLCBkaXJlY3RpdmVzLCBhbmQgcGlwZXMgZGVjbGFyZWQgYnkgdGhpcyBtb2R1bGUuICovXG4gIGRlY2xhcmF0aW9uczogVHlwZTxhbnk+W118KCgpID0+IFR5cGU8YW55PltdKTtcblxuICAvKiogTGlzdCBvZiBtb2R1bGVzIG9yIGBNb2R1bGVXaXRoUHJvdmlkZXJzYCBpbXBvcnRlZCBieSB0aGlzIG1vZHVsZS4gKi9cbiAgaW1wb3J0czogVHlwZTxhbnk+W118KCgpID0+IFR5cGU8YW55PltdKTtcblxuICAvKipcbiAgICogTGlzdCBvZiBtb2R1bGVzLCBgTW9kdWxlV2l0aFByb3ZpZGVyc2AsIGNvbXBvbmVudHMsIGRpcmVjdGl2ZXMsIG9yIHBpcGVzIGV4cG9ydGVkIGJ5IHRoaXNcbiAgICogbW9kdWxlLlxuICAgKi9cbiAgZXhwb3J0czogVHlwZTxhbnk+W118KCgpID0+IFR5cGU8YW55PltdKTtcblxuICAvKipcbiAgICogQ2FjaGVkIHZhbHVlIG9mIGNvbXB1dGVkIGB0cmFuc2l0aXZlQ29tcGlsZVNjb3Blc2AgZm9yIHRoaXMgbW9kdWxlLlxuICAgKlxuICAgKiBUaGlzIHNob3VsZCBuZXZlciBiZSByZWFkIGRpcmVjdGx5LCBidXQgYWNjZXNzZWQgdmlhIGB0cmFuc2l0aXZlU2NvcGVzRm9yYC5cbiAgICovXG4gIHRyYW5zaXRpdmVDb21waWxlU2NvcGVzOiBOZ01vZHVsZVRyYW5zaXRpdmVTY29wZXN8bnVsbDtcblxuICAvKiogVGhlIHNldCBvZiBzY2hlbWFzIHRoYXQgZGVjbGFyZSBlbGVtZW50cyB0byBiZSBhbGxvd2VkIGluIHRoZSBOZ01vZHVsZS4gKi9cbiAgc2NoZW1hczogU2NoZW1hTWV0YWRhdGFbXXxudWxsO1xuXG4gIC8qKiBVbmlxdWUgSUQgZm9yIHRoZSBtb2R1bGUgd2l0aCB3aGljaCBpdCBzaG91bGQgYmUgcmVnaXN0ZXJlZC4gICovXG4gIGlkOiBzdHJpbmd8bnVsbDtcbn1cbiJdfQ==
@@ -13,10 +13,77 @@ import { DestroyRef } from '../linker/destroy_ref';
13
13
  import { assertGreaterThan } from '../util/assert';
14
14
  import { NgZone } from '../zone';
15
15
  import { isPlatformBrowser } from './util/misc_utils';
16
+ /**
17
+ * The phase to run an `afterRender` or `afterNextRender` callback in.
18
+ *
19
+ * Callbacks in the same phase run in the order they are registered. Phases run in the
20
+ * following order after each render:
21
+ *
22
+ * 1. `AfterRenderPhase.EarlyRead`
23
+ * 2. `AfterRenderPhase.Write`
24
+ * 3. `AfterRenderPhase.MixedReadWrite`
25
+ * 4. `AfterRenderPhase.Read`
26
+ *
27
+ * Angular is unable to verify or enforce that phases are used correctly, and instead
28
+ * relies on each developer to follow the guidelines documented for each value and
29
+ * carefully choose the appropriate one, refactoring their code if necessary. By doing
30
+ * so, Angular is better able to minimize the performance degradation associated with
31
+ * manual DOM access, ensuring the best experience for the end users of your application
32
+ * or library.
33
+ *
34
+ * @developerPreview
35
+ */
36
+ export var AfterRenderPhase;
37
+ (function (AfterRenderPhase) {
38
+ /**
39
+ * Use `AfterRenderPhase.EarlyRead` for callbacks that only need to **read** from the
40
+ * DOM before a subsequent `AfterRenderPhase.Write` callback, for example to perform
41
+ * custom layout that the browser doesn't natively support. **Never** use this phase
42
+ * for callbacks that can write to the DOM or when `AfterRenderPhase.Read` is adequate.
43
+ *
44
+ * <div class="alert is-important">
45
+ *
46
+ * Using this value can degrade performance.
47
+ * Instead, prefer using built-in browser functionality when possible.
48
+ *
49
+ * </div>
50
+ */
51
+ AfterRenderPhase[AfterRenderPhase["EarlyRead"] = 0] = "EarlyRead";
52
+ /**
53
+ * Use `AfterRenderPhase.Write` for callbacks that only **write** to the DOM. **Never**
54
+ * use this phase for callbacks that can read from the DOM.
55
+ */
56
+ AfterRenderPhase[AfterRenderPhase["Write"] = 1] = "Write";
57
+ /**
58
+ * Use `AfterRenderPhase.MixedReadWrite` for callbacks that read from or write to the
59
+ * DOM, that haven't been refactored to use a different phase. **Never** use this phase
60
+ * for callbacks that can use a different phase instead.
61
+ *
62
+ * <div class="alert is-critical">
63
+ *
64
+ * Using this value can **significantly** degrade performance.
65
+ * Instead, prefer refactoring into multiple callbacks using a more specific phase.
66
+ *
67
+ * </div>
68
+ */
69
+ AfterRenderPhase[AfterRenderPhase["MixedReadWrite"] = 2] = "MixedReadWrite";
70
+ /**
71
+ * Use `AfterRenderPhase.Read` for callbacks that only **read** from the DOM. **Never**
72
+ * use this phase for callbacks that can write to the DOM.
73
+ */
74
+ AfterRenderPhase[AfterRenderPhase["Read"] = 3] = "Read";
75
+ })(AfterRenderPhase || (AfterRenderPhase = {}));
16
76
  /**
17
77
  * Register a callback to be invoked each time the application
18
78
  * finishes rendering.
19
79
  *
80
+ * <div class="alert is-critical">
81
+ *
82
+ * You should always explicitly specify a non-default [phase](api/core/AfterRenderPhase), or you
83
+ * risk significant performance degradation.
84
+ *
85
+ * </div>
86
+ *
20
87
  * Note that the callback will run
21
88
  * - in the order it was registered
22
89
  * - once per render
@@ -47,7 +114,7 @@ import { isPlatformBrowser } from './util/misc_utils';
47
114
  * constructor() {
48
115
  * afterRender(() => {
49
116
  * console.log('content height: ' + this.contentRef.nativeElement.scrollHeight);
50
- * });
117
+ * }, {phase: AfterRenderPhase.Read});
51
118
  * }
52
119
  * }
53
120
  * ```
@@ -68,7 +135,8 @@ export function afterRender(callback, options) {
68
135
  const callbackHandler = afterRenderEventManager.handler ??= new AfterRenderCallbackHandlerImpl();
69
136
  const ngZone = injector.get(NgZone);
70
137
  const errorHandler = injector.get(ErrorHandler, null, { optional: true });
71
- const instance = new AfterRenderCallback(ngZone, errorHandler, callback);
138
+ const phase = options?.phase ?? AfterRenderPhase.MixedReadWrite;
139
+ const instance = new AfterRenderCallback(ngZone, errorHandler, phase, callback);
72
140
  destroy = () => {
73
141
  callbackHandler.unregister(instance);
74
142
  unregisterFn();
@@ -80,6 +148,13 @@ export function afterRender(callback, options) {
80
148
  * Register a callback to be invoked the next time the application
81
149
  * finishes rendering.
82
150
  *
151
+ * <div class="alert is-critical">
152
+ *
153
+ * You should always explicitly specify a non-default [phase](api/core/AfterRenderPhase), or you
154
+ * risk significant performance degradation.
155
+ *
156
+ * </div>
157
+ *
83
158
  * Note that the callback will run
84
159
  * - in the order it was registered
85
160
  * - on browser platforms only
@@ -111,7 +186,7 @@ export function afterRender(callback, options) {
111
186
  * constructor() {
112
187
  * afterNextRender(() => {
113
188
  * this.chart = new MyChart(this.chartRef.nativeElement);
114
- * });
189
+ * }, {phase: AfterRenderPhase.Write});
115
190
  * }
116
191
  * }
117
192
  * ```
@@ -132,7 +207,8 @@ export function afterNextRender(callback, options) {
132
207
  const callbackHandler = afterRenderEventManager.handler ??= new AfterRenderCallbackHandlerImpl();
133
208
  const ngZone = injector.get(NgZone);
134
209
  const errorHandler = injector.get(ErrorHandler, null, { optional: true });
135
- const instance = new AfterRenderCallback(ngZone, errorHandler, () => {
210
+ const phase = options?.phase ?? AfterRenderPhase.MixedReadWrite;
211
+ const instance = new AfterRenderCallback(ngZone, errorHandler, phase, () => {
136
212
  destroy?.();
137
213
  callback();
138
214
  });
@@ -147,9 +223,10 @@ export function afterNextRender(callback, options) {
147
223
  * A wrapper around a function to be used as an after render callback.
148
224
  */
149
225
  class AfterRenderCallback {
150
- constructor(zone, errorHandler, callbackFn) {
226
+ constructor(zone, errorHandler, phase, callbackFn) {
151
227
  this.zone = zone;
152
228
  this.errorHandler = errorHandler;
229
+ this.phase = phase;
153
230
  this.callbackFn = callbackFn;
154
231
  }
155
232
  invoke() {
@@ -168,7 +245,13 @@ class AfterRenderCallback {
168
245
  class AfterRenderCallbackHandlerImpl {
169
246
  constructor() {
170
247
  this.executingCallbacks = false;
171
- this.callbacks = new Set();
248
+ this.buckets = {
249
+ // Note: the order of these keys controls the order the phases are run.
250
+ [AfterRenderPhase.EarlyRead]: new Set(),
251
+ [AfterRenderPhase.Write]: new Set(),
252
+ [AfterRenderPhase.MixedReadWrite]: new Set(),
253
+ [AfterRenderPhase.Read]: new Set(),
254
+ };
172
255
  this.deferredCallbacks = new Set();
173
256
  }
174
257
  validateBegin() {
@@ -181,26 +264,30 @@ class AfterRenderCallbackHandlerImpl {
181
264
  register(callback) {
182
265
  // If we're currently running callbacks, new callbacks should be deferred
183
266
  // until the next render operation.
184
- const target = this.executingCallbacks ? this.deferredCallbacks : this.callbacks;
267
+ const target = this.executingCallbacks ? this.deferredCallbacks : this.buckets[callback.phase];
185
268
  target.add(callback);
186
269
  }
187
270
  unregister(callback) {
188
- this.callbacks.delete(callback);
271
+ this.buckets[callback.phase].delete(callback);
189
272
  this.deferredCallbacks.delete(callback);
190
273
  }
191
274
  execute() {
192
275
  this.executingCallbacks = true;
193
- for (const callback of this.callbacks) {
194
- callback.invoke();
276
+ for (const bucket of Object.values(this.buckets)) {
277
+ for (const callback of bucket) {
278
+ callback.invoke();
279
+ }
195
280
  }
196
281
  this.executingCallbacks = false;
197
282
  for (const callback of this.deferredCallbacks) {
198
- this.callbacks.add(callback);
283
+ this.buckets[callback.phase].add(callback);
199
284
  }
200
285
  this.deferredCallbacks.clear();
201
286
  }
202
287
  destroy() {
203
- this.callbacks.clear();
288
+ for (const bucket of Object.values(this.buckets)) {
289
+ bucket.clear();
290
+ }
204
291
  this.deferredCallbacks.clear();
205
292
  }
206
293
  }
@@ -244,4 +331,4 @@ export class AfterRenderEventManager {
244
331
  factory: () => new AfterRenderEventManager(),
245
332
  }); }
246
333
  }
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZ0ZXJfcmVuZGVyX2hvb2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9hZnRlcl9yZW5kZXJfaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLE9BQU8sQ0FBQztBQUM3RSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxZQUFZLEVBQW1CLE1BQU0sV0FBVyxDQUFDO0FBQ3pELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRS9CLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBNEJwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsUUFBc0IsRUFBRSxPQUE0QjtJQUM5RSxDQUFDLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV2RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDaEMsT0FBTyxFQUFDLE9BQU8sS0FBSSxDQUFDLEVBQUMsQ0FBQztLQUN2QjtJQUVELElBQUksT0FBK0IsQ0FBQztJQUNwQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsR0FB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SUFDdEIsQ0FBQztJQUVELGtCQUFrQjthQUNYLFVBQUssR0FBNkIsa0JBQWtCLENBQUM7UUFDMUQsS0FBSyxFQUFFLHVCQUF1QjtRQUM5QixVQUFVLEVBQUUsTUFBTTtRQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSx1QkFBdUIsRUFBRTtLQUM3QyxDQUFDLEFBSlUsQ0FJVCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2Fzc2VydEluSW5qZWN0aW9uQ29udGV4dCwgSW5qZWN0b3IsIMm1ybVkZWZpbmVJbmplY3RhYmxlfSBmcm9tICcuLi9kaSc7XG5pbXBvcnQge2luamVjdH0gZnJvbSAnLi4vZGkvaW5qZWN0b3JfY29tcGF0aWJpbGl0eSc7XG5pbXBvcnQge0Vycm9ySGFuZGxlcn0gZnJvbSAnLi4vZXJyb3JfaGFuZGxlcic7XG5pbXBvcnQge1J1bnRpbWVFcnJvciwgUnVudGltZUVycm9yQ29kZX0gZnJvbSAnLi4vZXJyb3JzJztcbmltcG9ydCB7RGVzdHJveVJlZn0gZnJvbSAnLi4vbGlua2VyL2Rlc3Ryb3lfcmVmJztcbmltcG9ydCB7YXNzZXJ0R3JlYXRlclRoYW59IGZyb20gJy4uL3V0aWwvYXNzZXJ0JztcbmltcG9ydCB7Tmdab25lfSBmcm9tICcuLi96b25lJztcblxuaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3Nlcn0gZnJvbSAnLi91dGlsL21pc2NfdXRpbHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgcGFzc2VkIHRvIGBhZnRlclJlbmRlcmAgYW5kIGBhZnRlck5leHRSZW5kZXJgLlxuICpcbiAqIEBkZXZlbG9wZXJQcmV2aWV3XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWZ0ZXJSZW5kZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBgSW5qZWN0b3JgIHRvIHVzZSBkdXJpbmcgY3JlYXRpb24uXG4gICAqXG4gICAqIElmIHRoaXMgaXMgbm90IHByb3ZpZGVkLCB0aGUgY3VycmVudCBpbmplY3Rpb24gY29udGV4dCB3aWxsIGJlIHVzZWQgaW5zdGVhZCAodmlhIGBpbmplY3RgKS5cbiAgICovXG4gIGluamVjdG9yPzogSW5qZWN0b3I7XG59XG5cbi8qKlxuICogQSBjYWxsYmFjayB0aGF0IHJ1bnMgYWZ0ZXIgcmVuZGVyLlxuICpcbiAqIEBkZXZlbG9wZXJQcmV2aWV3XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWZ0ZXJSZW5kZXJSZWYge1xuICAvKipcbiAgICogU2h1dCBkb3duIHRoZSBjYWxsYmFjaywgcHJldmVudGluZyBpdCBmcm9tIGJlaW5nIGNhbGxlZCBhZ2Fpbi5cbiAgICovXG4gIGRlc3Ryb3koKTogdm9pZDtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIGNhbGxiYWNrIHRvIGJlIGludm9rZWQgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvblxuICogZmluaXNoZXMgcmVuZGVyaW5nLlxuICpcbiAqIE5vdGUgdGhhdCB0aGUgY2FsbGJhY2sgd2lsbCBydW5cbiAqIC0gaW4gdGhlIG9yZGVyIGl0IHdhcyByZWdpc3RlcmVkXG4gKiAtIG9uY2UgcGVyIHJlbmRlclxuICogLSBvbiBicm93c2VyIHBsYXRmb3JtcyBvbmx5XG4gKlxuICogPGRpdiBjbGFzcz1cImFsZXJ0IGlzLWltcG9ydGFudFwiPlxuICpcbiAqIENvbXBvbmVudHMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIFtoeWRyYXRlZF0oZ3VpZGUvaHlkcmF0aW9uKSBiZWZvcmUgdGhlIGNhbGxiYWNrIHJ1bnMuXG4gKiBZb3UgbXVzdCB1c2UgY2F1dGlvbiB3aGVuIGRpcmVjdGx5IHJlYWRpbmcgb3Igd3JpdGluZyB0aGUgRE9NIGFuZCBsYXlvdXQuXG4gKlxuICogPC9kaXY+XG4gKlxuICogQHBhcmFtIGNhbGxiYWNrIEEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gcmVnaXN0ZXJcbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICpcbiAqIFVzZSBgYWZ0ZXJSZW5kZXJgIHRvIHJlYWQgb3Igd3JpdGUgdGhlIERPTSBhZnRlciBlYWNoIHJlbmRlci5cbiAqXG4gKiAjIyMgRXhhbXBsZVxuICogYGBgdHNcbiAqIEBDb21wb25lbnQoe1xuICogICBzZWxlY3RvcjogJ215LWNtcCcsXG4gKiAgIHRlbXBsYXRlOiBgPHNwYW4gI2NvbnRlbnQ+e3sgLi4uIH19PC9zcGFuPmAsXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IHtcbiAqICAgQFZpZXdDaGlsZCgnY29udGVudCcpIGNvbnRlbnRSZWY6IEVsZW1lbnRSZWY7XG4gKlxuICogICBjb25zdHJ1Y3RvcigpIHtcbiAqICAgICBhZnRlclJlbmRlcigoKSA9PiB7XG4gKiAgICAgICBjb25zb2xlLmxvZygnY29udGVudCBoZWlnaHQ6ICcgKyB0aGlzLmNvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQpO1xuICogICAgIH0pO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBAZGV2ZWxvcGVyUHJldmlld1xuICovXG5leHBvcnQgZnVuY3Rpb24gYWZ0ZXJSZW5kZXIoY2FsbGJhY2s6IFZvaWRGdW5jdGlvbiwgb3B0aW9ucz86IEFmdGVyUmVuZGVyT3B0aW9ucyk6IEFmdGVyUmVuZGVyUmVmIHtcbiAgIW9wdGlvbnMgJiYgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KGFmdGVyUmVuZGVyKTtcbiAgY29uc3QgaW5qZWN0b3IgPSBvcHRpb25zPy5pbmplY3RvciA/PyBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIoaW5qZWN0b3IpKSB7XG4gICAgcmV0dXJuIHtkZXN0cm95KCkge319O1xuICB9XG5cbiAgbGV0IGRlc3Ryb3k6IFZvaWRGdW5jdGlvbnx1bmRlZmluZWQ7XG4gIGNvbnN0IHVucmVnaXN0ZXJGbiA9IGluamVjdG9yLmdldChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4gZGVzdHJveT8uKCkpO1xuICBjb25zdCBhZnRlclJlbmRlckV2ZW50TWFuYWdlciA9IGluamVjdG9yLmdldChBZnRlclJlbmRlckV2ZW50TWFuYWdlcik7XG4gIC8vIExhemlseSBpbml0aWFsaXplIHRoZSBoYW5kbGVyIGltcGxlbWVudGF0aW9uLCBpZiBuZWNlc3NhcnkuIFRoaXMgaXMgc28gdGhhdCBpdCBjYW4gYmVcbiAgLy8gdHJlZS1zaGFrZW4gaWYgYGFmdGVyUmVuZGVyYCBhbmQgYGFmdGVyTmV4dFJlbmRlcmAgYXJlbid0IHVzZWQuXG4gIGNvbnN0IGNhbGxiYWNrSGFuZGxlciA9IGFmdGVyUmVuZGVyRXZlbnRNYW5hZ2VyLmhhbmRsZXIgPz89IG5ldyBBZnRlclJlbmRlckNhbGxiYWNrSGFuZGxlckltcGwoKTtcbiAgY29uc3Qgbmdab25lID0gaW5qZWN0b3IuZ2V0KE5nWm9uZSk7XG4gIGNvbnN0IGVycm9ySGFuZGxlciA9IGluamVjdG9yLmdldChFcnJvckhhbmRsZXIsIG51bGwsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICBjb25zdCBpbnN0YW5jZSA9IG5ldyBBZnRlclJlbmRlckNhbGxiYWNrKG5nWm9uZSwgZXJyb3JIYW5kbGVyLCBjYWxsYmFjayk7XG5cbiAgZGVzdHJveSA9ICgpID0+IHtcbiAgICBjYWxsYmFja0hhbmRsZXIudW5yZWdpc3RlcihpbnN0YW5jZSk7XG4gICAgdW5yZWdpc3RlckZuKCk7XG4gIH07XG4gIGNhbGxiYWNrSGFuZGxlci5yZWdpc3RlcihpbnN0YW5jZSk7XG4gIHJldHVybiB7ZGVzdHJveX07XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgYSBjYWxsYmFjayB0byBiZSBpbnZva2VkIHRoZSBuZXh0IHRpbWUgdGhlIGFwcGxpY2F0aW9uXG4gKiBmaW5pc2hlcyByZW5kZXJpbmcuXG4gKlxuICogTm90ZSB0aGF0IHRoZSBjYWxsYmFjayB3aWxsIHJ1blxuICogLSBpbiB0aGUgb3JkZXIgaXQgd2FzIHJlZ2lzdGVyZWRcbiAqIC0gb24gYnJvd3NlciBwbGF0Zm9ybXMgb25seVxuICpcbiAqIDxkaXYgY2xhc3M9XCJhbGVydCBpcy1pbXBvcnRhbnRcIj5cbiAqXG4gKiBDb21wb25lbnRzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBiZSBbaHlkcmF0ZWRdKGd1aWRlL2h5ZHJhdGlvbikgYmVmb3JlIHRoZSBjYWxsYmFjayBydW5zLlxuICogWW91IG11c3QgdXNlIGNhdXRpb24gd2hlbiBkaXJlY3RseSByZWFkaW5nIG9yIHdyaXRpbmcgdGhlIERPTSBhbmQgbGF5b3V0LlxuICpcbiAqIDwvZGl2PlxuICpcbiAqIEBwYXJhbSBjYWxsYmFjayBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIHJlZ2lzdGVyXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqXG4gKiBVc2UgYGFmdGVyTmV4dFJlbmRlcmAgdG8gcmVhZCBvciB3cml0ZSB0aGUgRE9NIG9uY2UsXG4gKiBmb3IgZXhhbXBsZSB0byBpbml0aWFsaXplIGEgbm9uLUFuZ3VsYXIgbGlicmFyeS5cbiAqXG4gKiAjIyMgRXhhbXBsZVxuICogYGBgdHNcbiAqIEBDb21wb25lbnQoe1xuICogICBzZWxlY3RvcjogJ215LWNoYXJ0LWNtcCcsXG4gKiAgIHRlbXBsYXRlOiBgPGRpdiAjY2hhcnQ+e3sgLi4uIH19PC9kaXY+YCxcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgTXlDaGFydENtcCB7XG4gKiAgIEBWaWV3Q2hpbGQoJ2NoYXJ0JykgY2hhcnRSZWY6IEVsZW1lbnRSZWY7XG4gKiAgIGNoYXJ0OiBNeUNoYXJ0fG51bGw7XG4gKlxuICogICBjb25zdHJ1Y3RvcigpIHtcbiAqICAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICogICAgICAgdGhpcy5jaGFydCA9IG5ldyBNeUNoYXJ0KHRoaXMuY2hhcnRSZWYubmF0aXZlRWxlbWVudCk7XG4gKiAgICAgfSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEBkZXZlbG9wZXJQcmV2aWV3XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZnRlck5leHRSZW5kZXIoXG4gICAgY2FsbGJhY2s6IFZvaWRGdW5jdGlvbiwgb3B0aW9ucz86IEFmdGVyUmVuZGVyT3B0aW9ucyk6IEFmdGVyUmVuZGVyUmVmIHtcbiAgIW9wdGlvbnMgJiYgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KGFmdGVyTmV4dFJlbmRlcik7XG4gIGNvbnN0IGluamVjdG9yID0gb3B0aW9ucz8uaW5qZWN0b3IgPz8gaW5qZWN0KEluamVjdG9yKTtcblxuICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKGluamVjdG9yKSkge1xuICAgIHJldHVybiB7ZGVzdHJveSgpIHt9fTtcbiAgfVxuXG4gIGxldCBkZXN0cm95OiBWb2lkRnVuY3Rpb258dW5kZWZpbmVkO1xuICBjb25zdCB1bnJlZ2lzdGVyRm4gPSBpbmplY3Rvci5nZXQoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IGRlc3Ryb3k/LigpKTtcbiAgY29uc3QgYWZ0ZXJSZW5kZXJFdmVudE1hbmFnZXIgPSBpbmplY3Rvci5nZXQoQWZ0ZXJSZW5kZXJFdmVudE1hbmFnZXIpO1xuICAvLyBMYXppbHkgaW5pdGlhbGl6ZSB0aGUgaGFuZGxlciBpbXBsZW1lbnRhdGlvbiwgaWYgbmVjZXNzYXJ5LiBUaGlzIGlzIHNvIHRoYXQgaXQgY2FuIGJlXG4gIC8vIHRyZWUtc2hha2VuIGlmIGBhZnRlclJlbmRlcmAgYW5kIGBhZnRlck5leHRSZW5kZXJgIGFyZW4ndCB1c2VkLlxuICBjb25zdCBjYWxsYmFja0hhbmRsZXIgPSBhZnRlclJlbmRlckV2ZW50TWFuYWdlci5oYW5kbGVyID8/PSBuZXcgQWZ0ZXJSZW5kZXJDYWxsYmFja0hhbmRsZXJJbXBsKCk7XG4gIGNvbnN0IG5nWm9uZSA9IGluamVjdG9yLmdldChOZ1pvbmUpO1xuICBjb25zdCBlcnJvckhhbmRsZXIgPSBpbmplY3Rvci5nZXQoRXJyb3JIYW5kbGVyLCBudWxsLCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQWZ0ZXJSZW5kZXJDYWxsYmFjayhuZ1pvbmUsIGVycm9ySGFuZGxlciwgKCkgPT4ge1xuICAgIGRlc3Ryb3k/LigpO1xuICAgIGNhbGxiYWNrKCk7XG4gIH0pO1xuXG4gIGRlc3Ryb3kgPSAoKSA9PiB7XG4gICAgY2FsbGJhY2tIYW5kbGVyLnVucmVnaXN0ZXIoaW5zdGFuY2UpO1xuICAgIHVucmVnaXN0ZXJGbigpO1xuICB9O1xuICBjYWxsYmFja0hhbmRsZXIucmVnaXN0ZXIoaW5zdGFuY2UpO1xuICByZXR1cm4ge2Rlc3Ryb3l9O1xufVxuXG4vKipcbiAqIEEgd3JhcHBlciBhcm91bmQgYSBmdW5jdGlvbiB0byBiZSB1c2VkIGFzIGFuIGFmdGVyIHJlbmRlciBjYWxsYmFjay5cbiAqL1xuY2xhc3MgQWZ0ZXJSZW5kZXJDYWxsYmFjayB7XG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXJ8bnVsbCxcbiAgICAgIHByaXZhdGUgY2FsbGJhY2tGbjogVm9pZEZ1bmN0aW9uKSB7fVxuXG4gIGludm9rZSgpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKHRoaXMuY2FsbGJhY2tGbik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ySGFuZGxlcj8uaGFuZGxlRXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBJbXBsZW1lbnRzIGBhZnRlclJlbmRlcmAgYW5kIGBhZnRlck5leHRSZW5kZXJgIGNhbGxiYWNrIGhhbmRsZXIgbG9naWMuXG4gKi9cbmludGVyZmFjZSBBZnRlclJlbmRlckNhbGxiYWNrSGFuZGxlciB7XG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGF0IGl0J3Mgc2FmZSBmb3IgYSByZW5kZXIgb3BlcmF0aW9uIHRvIGJlZ2luLFxuICAgKiB0aHJvd2luZyBpZiBub3QuIE5vdCBndWFyYW50ZWVkIHRvIGJlIGNhbGxlZCBpZiBhIHJlbmRlclxuICAgKiBvcGVyYXRpb24gaXMgc3RhcnRlZCBiZWZvcmUgaGFuZGxlciB3YXMgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHZhbGlkYXRlQmVnaW4oKTogdm9pZDtcblxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBuZXcgY2FsbGJhY2suXG4gICAqL1xuICByZWdpc3RlcihjYWxsYmFjazogQWZ0ZXJSZW5kZXJDYWxsYmFjayk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXIgYW4gZXhpc3RpbmcgY2FsbGJhY2suXG4gICAqL1xuICB1bnJlZ2lzdGVyKGNhbGxiYWNrOiBBZnRlclJlbmRlckNhbGxiYWNrKTogdm9pZDtcblxuICAvKipcbiAgICogRXhlY3V0ZSBjYWxsYmFja3MuXG4gICAqL1xuICBleGVjdXRlKCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gYW55IG5lY2Vzc2FyeSBjbGVhbnVwLlxuICAgKi9cbiAgZGVzdHJveSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIENvcmUgZnVuY3Rpb25hbGl0eSBmb3IgYGFmdGVyUmVuZGVyYCBhbmQgYGFmdGVyTmV4dFJlbmRlcmAuIEtlcHQgc2VwYXJhdGUgZnJvbVxuICogYEFmdGVyUmVuZGVyRXZlbnRNYW5hZ2VyYCBmb3IgdHJlZS1zaGFraW5nLlxuICovXG5jbGFzcyBBZnRlclJlbmRlckNhbGxiYWNrSGFuZGxlckltcGwgaW1wbGVtZW50cyBBZnRlclJlbmRlckNhbGxiYWNrSGFuZGxlciB7XG4gIHByaXZhdGUgZXhlY3V0aW5nQ2FsbGJhY2tzID0gZmFsc2U7XG4gIHByaXZhdGUgY2FsbGJhY2tzID0gbmV3IFNldDxBZnRlclJlbmRlckNhbGxiYWNrPigpO1xuICBwcml2YXRlIGRlZmVycmVkQ2FsbGJhY2tzID0gbmV3IFNldDxBZnRlclJlbmRlckNhbGxiYWNrPigpO1xuXG4gIHZhbGlkYXRlQmVnaW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZXhlY3V0aW5nQ2FsbGJhY2tzKSB7XG4gICAgICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFxuICAgICAgICAgIFJ1bnRpbWVFcnJvckNvZGUuUkVDVVJTSVZFX0FQUExJQ0FUSU9OX1JFTkRFUixcbiAgICAgICAgICBuZ0Rldk1vZGUgJiZcbiAgICAgICAgICAgICAgJ0EgbmV3IHJlbmRlciBvcGVyYXRpb24gYmVnYW4gYmVmb3JlIHRoZSBwcmV2aW91cyBvcGVyYXRpb24gZW5kZWQuICcgK1xuICAgICAgICAgICAgICAgICAgJ0RpZCB5b3UgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIGZyb20gYWZ0ZXJSZW5kZXIgb3IgYWZ0ZXJOZXh0UmVuZGVyPycpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyKGNhbGxiYWNrOiBBZnRlclJlbmRlckNhbGxiYWNrKTogdm9pZCB7XG4gICAgLy8gSWYgd2UncmUgY3VycmVudGx5IHJ1bm5pbmcgY2FsbGJhY2tzLCBuZXcgY2FsbGJhY2tzIHNob3VsZCBiZSBkZWZlcnJlZFxuICAgIC8vIHVudGlsIHRoZSBuZXh0IHJlbmRlciBvcGVyYXRpb24uXG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5leGVjdXRpbmdDYWxsYmFja3MgPyB0aGlzLmRlZmVycmVkQ2FsbGJhY2tzIDogdGhpcy5jYWxsYmFja3M7XG4gICAgdGFyZ2V0LmFkZChjYWxsYmFjayk7XG4gIH1cblxuICB1bnJlZ2lzdGVyKGNhbGxiYWNrOiBBZnRlclJlbmRlckNhbGxiYWNrKTogdm9pZCB7XG4gICAgdGhpcy5jYWxsYmFja3MuZGVsZXRlKGNhbGxiYWNrKTtcbiAgICB0aGlzLmRlZmVycmVkQ2FsbGJhY2tzLmRlbGV0ZShjYWxsYmFjayk7XG4gIH1cblxuICBleGVjdXRlKCk6IHZvaWQge1xuICAgIHRoaXMuZXhlY3V0aW5nQ2FsbGJhY2tzID0gdHJ1ZTtcbiAgICBmb3IgKGNvbnN0IGNhbGxiYWNrIG9mIHRoaXMuY2FsbGJhY2tzKSB7XG4gICAgICBjYWxsYmFjay5pbnZva2UoKTtcbiAgICB9XG4gICAgdGhpcy5leGVjdXRpbmdDYWxsYmFja3MgPSBmYWxzZTtcblxuICAgIGZvciAoY29uc3QgY2FsbGJhY2sgb2YgdGhpcy5kZWZlcnJlZENhbGxiYWNrcykge1xuICAgICAgdGhpcy5jYWxsYmFja3MuYWRkKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgdGhpcy5kZWZlcnJlZENhbGxiYWNrcy5jbGVhcigpO1xuICB9XG5cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGxiYWNrcy5jbGVhcigpO1xuICAgIHRoaXMuZGVmZXJyZWRDYWxsYmFja3MuY2xlYXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIEltcGxlbWVudHMgY29yZSB0aW1pbmcgZm9yIGBhZnRlclJlbmRlcmAgYW5kIGBhZnRlck5leHRSZW5kZXJgIGV2ZW50cy5cbiAqIERlbGVnYXRlcyB0byBhbiBvcHRpb25hbCBgQWZ0ZXJSZW5kZXJDYWxsYmFja0hhbmRsZXJgIGZvciBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEFmdGVyUmVuZGVyRXZlbnRNYW5hZ2VyIHtcbiAgcHJpdmF0ZSByZW5kZXJEZXB0aCA9IDA7XG5cbiAgLyogQGludGVybmFsICovXG4gIGhhbmRsZXI6IEFmdGVyUmVuZGVyQ2FsbGJhY2tIYW5kbGVyfG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBNYXJrIHRoZSBiZWdpbm5pbmcgb2YgYSByZW5kZXIgb3BlcmF0aW9uIChpLmUuIENEIGN5Y2xlKS5cbiAgICogVGhyb3dzIGlmIGNhbGxlZCB3aGlsZSBleGVjdXRpbmcgY2FsbGJhY2tzLlxuICAgKi9cbiAgYmVnaW4oKSB7XG4gICAgdGhpcy5oYW5kbGVyPy52YWxpZGF0ZUJlZ2luKCk7XG4gICAgdGhpcy5yZW5kZXJEZXB0aCsrO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmsgdGhlIGVuZCBvZiBhIHJlbmRlciBvcGVyYXRpb24uIENhbGxiYWNrcyB3aWxsIGJlXG4gICAqIGV4ZWN1dGVkIGlmIHRoZXJlIGFyZSBubyBtb3JlIHBlbmRpbmcgb3BlcmF0aW9ucy5cbiAgICovXG4gIGVuZCgpIHtcbiAgICBuZ0Rldk1vZGUgJiYgYXNzZXJ0R3JlYXRlclRoYW4odGhpcy5yZW5kZXJEZXB0aCwgMCwgJ3JlbmRlckRlcHRoIG11c3QgYmUgZ3JlYXRlciB0aGFuIDAnKTtcbiAgICB0aGlzLnJlbmRlckRlcHRoLS07XG5cbiAgICBpZiAodGhpcy5yZW5kZXJEZXB0aCA9PT0gMCkge1xuICAgICAgdGhpcy5oYW5kbGVyPy5leGVjdXRlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5oYW5kbGVyPy5kZXN0cm95KCk7XG4gICAgdGhpcy5oYW5kbGVyID0gbnVsbDtcbiAgfVxuXG4gIC8qKiBAbm9jb2xsYXBzZSAqL1xuICBzdGF0aWMgybVwcm92ID0gLyoqIEBwdXJlT3JCcmVha015Q29kZSAqLyDJtcm1ZGVmaW5lSW5qZWN0YWJsZSh7XG4gICAgdG9rZW46IEFmdGVyUmVuZGVyRXZlbnRNYW5hZ2VyLFxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICBmYWN0b3J5OiAoKSA9PiBuZXcgQWZ0ZXJSZW5kZXJFdmVudE1hbmFnZXIoKSxcbiAgfSk7XG59XG4iXX0=
334
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZ0ZXJfcmVuZGVyX2hvb2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9hZnRlcl9yZW5kZXJfaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLE9BQU8sQ0FBQztBQUM3RSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxZQUFZLEVBQW1CLE1BQU0sV0FBVyxDQUFDO0FBQ3pELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRS9CLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRXBEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxDQUFOLElBQVksZ0JBeUNYO0FBekNELFdBQVksZ0JBQWdCO0lBQzFCOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILGlFQUFTLENBQUE7SUFFVDs7O09BR0c7SUFDSCx5REFBSyxDQUFBO0lBRUw7Ozs7Ozs7Ozs7O09BV0c7SUFDSCwyRUFBYyxDQUFBO0lBRWQ7OztPQUdHO0lBQ0gsdURBQUksQ0FBQTtBQUNOLENBQUMsRUF6Q1csZ0JBQWdCLEtBQWhCLGdCQUFnQixRQXlDM0I7QUF3Q0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxRQUFzQixFQUFFLE9BQTRCO0lBQzlF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QUssR0FBNkIsa0JBQWtCLENBQUM7UUFDMUQsS0FBSyxFQUFFLHVCQUF1QjtRQUM5QixVQUFVLEVBQUUsTUFBTTtRQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSx1QkFBdUIsRUFBRTtLQUM3QyxDQUFDLEFBSlUsQ0FJVCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2Fzc2VydEluSW5qZWN0aW9uQ29udGV4dCwgSW5qZWN0b3IsIMm1ybVkZWZpbmVJbmplY3RhYmxlfSBmcm9tICcuLi9kaSc7XG5pbXBvcnQge2luamVjdH0gZnJvbSAnLi4vZGkvaW5qZWN0b3JfY29tcGF0aWJpbGl0eSc7XG5pbXBvcnQge0Vycm9ySGFuZGxlcn0gZnJvbSAnLi4vZXJyb3JfaGFuZGxlcic7XG5pbXBvcnQge1J1bnRpbWVFcnJvciwgUnVudGltZUVycm9yQ29kZX0gZnJvbSAnLi4vZXJyb3JzJztcbmltcG9ydCB7RGVzdHJveVJlZn0gZnJvbSAnLi4vbGlua2VyL2Rlc3Ryb3lfcmVmJztcbmltcG9ydCB7YXNzZXJ0R3JlYXRlclRoYW59IGZyb20gJy4uL3V0aWwvYXNzZXJ0JztcbmltcG9ydCB7Tmdab25lfSBmcm9tICcuLi96b25lJztcblxuaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3Nlcn0gZnJvbSAnLi91dGlsL21pc2NfdXRpbHMnO1xuXG4vKipcbiAqIFRoZSBwaGFzZSB0byBydW4gYW4gYGFmdGVyUmVuZGVyYCBvciBgYWZ0ZXJOZXh0UmVuZGVyYCBjYWxsYmFjayBpbi5cbiAqXG4gKiBDYWxsYmFja3MgaW4gdGhlIHNhbWUgcGhhc2UgcnVuIGluIHRoZSBvcmRlciB0aGV5IGFyZSByZWdpc3RlcmVkLiBQaGFzZXMgcnVuIGluIHRoZVxuICogZm9sbG93aW5nIG9yZGVyIGFmdGVyIGVhY2ggcmVuZGVyOlxuICpcbiAqICAgMS4gYEFmdGVyUmVuZGVyUGhhc2UuRWFybHlSZWFkYFxuICogICAyLiBgQWZ0ZXJSZW5kZXJQaGFzZS5Xcml0ZWBcbiAqICAgMy4gYEFmdGVyUmVuZGVyUGhhc2UuTWl4ZWRSZWFkV3JpdGVgXG4gKiAgIDQuIGBBZnRlclJlbmRlclBoYXNlLlJlYWRgXG4gKlxuICogQW5ndWxhciBpcyB1bmFibGUgdG8gdmVyaWZ5IG9yIGVuZm9yY2UgdGhhdCBwaGFzZXMgYXJlIHVzZWQgY29ycmVjdGx5LCBhbmQgaW5zdGVhZFxuICogcmVsaWVzIG9uIGVhY2ggZGV2ZWxvcGVyIHRvIGZvbGxvdyB0aGUgZ3VpZGVsaW5lcyBkb2N1bWVudGVkIGZvciBlYWNoIHZhbHVlIGFuZFxuICogY2FyZWZ1bGx5IGNob29zZSB0aGUgYXBwcm9wcmlhdGUgb25lLCByZWZhY3RvcmluZyB0aGVpciBjb2RlIGlmIG5lY2Vzc2FyeS4gQnkgZG9pbmdcbiAqIHNvLCBBbmd1bGFyIGlzIGJldHRlciBhYmxlIHRvIG1pbmltaXplIHRoZSBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvbiBhc3NvY2lhdGVkIHdpdGhcbiAqIG1hbnVhbCBET00gYWNjZXNzLCBlbnN1cmluZyB0aGUgYmVzdCBleHBlcmllbmNlIGZvciB0aGUgZW5kIHVzZXJzIG9mIHlvdXIgYXBwbGljYXRpb25cbiAqIG9yIGxpYnJhcnkuXG4gKlxuICogQGRldmVsb3BlclByZXZpZXdcbiAqL1xuZXhwb3J0IGVudW0gQWZ0ZXJSZW5kZXJQaGFzZSB7XG4gIC8qKlxuICAgKiBVc2UgYEFmdGVyUmVuZGVyUGhhc2UuRWFybHlSZWFkYCBmb3IgY2FsbGJhY2tzIHRoYXQgb25seSBuZWVkIHRvICoqcmVhZCoqIGZyb20gdGhlXG4gICAqIERPTSBiZWZvcmUgYSBzdWJzZXF1ZW50IGBBZnRlclJlbmRlclBoYXNlLldyaXRlYCBjYWxsYmFjaywgZm9yIGV4YW1wbGUgdG8gcGVyZm9ybVxuICAgKiBjdXN0b20gbGF5b3V0IHRoYXQgdGhlIGJyb3dzZXIgZG9lc24ndCBuYXRpdmVseSBzdXBwb3J0LiAqKk5ldmVyKiogdXNlIHRoaXMgcGhhc2VcbiAgICogZm9yIGNhbGxiYWNrcyB0aGF0IGNhbiB3cml0ZSB0byB0aGUgRE9NIG9yIHdoZW4gYEFmdGVyUmVuZGVyUGhhc2UuUmVhZGAgaXMgYWRlcXVhdGUuXG4gICAqXG4gICAqIDxkaXYgY2xhc3M9XCJhbGVydCBpcy1pbXBvcnRhbnRcIj5cbiAgICpcbiAgICogVXNpbmcgdGhpcyB2YWx1ZSBjYW4gZGVncmFkZSBwZXJmb3JtYW5jZS5cbiAgICogSW5zdGVhZCwgcHJlZmVyIHVzaW5nIGJ1aWx0LWluIGJyb3dzZXIgZnVuY3Rpb25hbGl0eSB3aGVuIHBvc3NpYmxlLlxuICAgKlxuICAgKiA8L2Rpdj5cbiAgICovXG4gIEVhcmx5UmVhZCxcblxuICAvKipcbiAgICogVXNlIGBBZnRlclJlbmRlclBoYXNlLldyaXRlYCBmb3IgY2FsbGJhY2tzIHRoYXQgb25seSAqKndyaXRlKiogdG8gdGhlIERPTS4gKipOZXZlcioqXG4gICAqIHVzZSB0aGlzIHBoYXNlIGZvciBjYWxsYmFja3MgdGhhdCBjYW4gcmVhZCBmcm9tIHRoZSBET00uXG4gICAqL1xuICBXcml0ZSxcblxuICAvKipcbiAgICogVXNlIGBBZnRlclJlbmRlclBoYXNlLk1peGVkUmVhZFdyaXRlYCBmb3IgY2FsbGJhY2tzIHRoYXQgcmVhZCBmcm9tIG9yIHdyaXRlIHRvIHRoZVxuICAgKiBET00sIHRoYXQgaGF2ZW4ndCBiZWVuIHJlZmFjdG9yZWQgdG8gdXNlIGEgZGlmZmVyZW50IHBoYXNlLiAqKk5ldmVyKiogdXNlIHRoaXMgcGhhc2VcbiAgICogZm9yIGNhbGxiYWNrcyB0aGF0IGNhbiB1c2UgYSBkaWZmZXJlbnQgcGhhc2UgaW5zdGVhZC5cbiAgICpcbiAgICogPGRpdiBjbGFzcz1cImFsZXJ0IGlzLWNyaXRpY2FsXCI+XG4gICAqXG4gICAqIFVzaW5nIHRoaXMgdmFsdWUgY2FuICoqc2lnbmlmaWNhbnRseSoqIGRlZ3JhZGUgcGVyZm9ybWFuY2UuXG4gICAqIEluc3RlYWQsIHByZWZlciByZWZhY3RvcmluZyBpbnRvIG11bHRpcGxlIGNhbGxiYWNrcyB1c2luZyBhIG1vcmUgc3BlY2lmaWMgcGhhc2UuXG4gICAqXG4gICAqIDwvZGl2PlxuICAgKi9cbiAgTWl4ZWRSZWFkV3JpdGUsXG5cbiAgLyoqXG4gICAqIFVzZSBgQWZ0ZXJSZW5kZXJQaGFzZS5SZWFkYCBmb3IgY2FsbGJhY2tzIHRoYXQgb25seSAqKnJlYWQqKiBmcm9tIHRoZSBET00uICoqTmV2ZXIqKlxuICAgKiB1c2UgdGhpcyBwaGFzZSBmb3IgY2FsbGJhY2tzIHRoYXQgY2FuIHdyaXRlIHRvIHRoZSBET00uXG4gICAqL1xuICBSZWFkLFxufVxuXG4vKipcbiAqIE9wdGlvbnMgcGFzc2VkIHRvIGBhZnRlclJlbmRlcmAgYW5kIGBhZnRlck5leHRSZW5kZXJgLlxuICpcbiAqIEBkZXZlbG9wZXJQcmV2aWV3XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWZ0ZXJSZW5kZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBgSW5qZWN0b3JgIHRvIHVzZSBkdXJpbmcgY3JlYXRpb24uXG4gICAqXG4gICAqIElmIHRoaXMgaXMgbm90IHByb3ZpZGVkLCB0aGUgY3VycmVudCBpbmplY3Rpb24gY29udGV4dCB3aWxsIGJlIHVzZWQgaW5zdGVhZCAodmlhIGBpbmplY3RgKS5cbiAgICovXG4gIGluamVjdG9yPzogSW5qZWN0b3I7XG5cbiAgLyoqXG4gICAqIFRoZSBwaGFzZSB0aGUgY2FsbGJhY2sgc2hvdWxkIGJlIGludm9rZWQgaW4uXG4gICAqXG4gICAqIDxkaXYgY2xhc3M9XCJhbGVydCBpcy1jcml0aWNhbFwiPlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBgQWZ0ZXJSZW5kZXJQaGFzZS5NaXhlZFJlYWRXcml0ZWAuIFlvdSBzaG91bGQgY2hvb3NlIGEgbW9yZSBzcGVjaWZpY1xuICAgKiBwaGFzZSBpbnN0ZWFkLiBTZWUgYEFmdGVyUmVuZGVyUGhhc2VgIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiA8L2Rpdj5cbiAgICovXG4gIHBoYXNlPzogQWZ0ZXJSZW5kZXJQaGFzZTtcbn1cblxuLyoqXG4gKiBBIGNhbGxiYWNrIHRoYXQgcnVucyBhZnRlciByZW5kZXIuXG4gKlxuICogQGRldmVsb3BlclByZXZpZXdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZnRlclJlbmRlclJlZiB7XG4gIC8qKlxuICAgKiBTaHV0IGRvd24gdGhlIGNhbGxiYWNrLCBwcmV2ZW50aW5nIGl0IGZyb20gYmVpbmcgY2FsbGVkIGFnYWluLlxuICAgKi9cbiAgZGVzdHJveSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVyIGEgY2FsbGJhY2sgdG8gYmUgaW52b2tlZCBlYWNoIHRpbWUgdGhlIGFwcGxpY2F0aW9uXG4gKiBmaW5pc2hlcyByZW5kZXJpbmcuXG4gKlxuICogPGRpdiBjbGFzcz1cImFsZXJ0IGlzLWNyaXRpY2FsXCI+XG4gKlxuICogWW91IHNob3VsZCBhbHdheXMgZXhwbGljaXRseSBzcGVjaWZ5IGEgbm9uLWRlZmF1bHQgW3BoYXNlXShhcGkvY29yZS9BZnRlclJlbmRlclBoYXNlKSwgb3IgeW91XG4gKiByaXNrIHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uLlxuICpcbiAqIDwvZGl2PlxuICpcbiAqIE5vdGUgdGhhdCB0aGUgY2FsbGJhY2sgd2lsbCBydW5cbiAqIC0gaW4gdGhlIG9yZGVyIGl0IHdhcyByZWdpc3RlcmVkXG4gKiAtIG9uY2UgcGVyIHJlbmRlclxuICogLSBvbiBicm93c2VyIHBsYXRmb3JtcyBvbmx5XG4gKlxuICogPGRpdiBjbGFzcz1cImFsZXJ0IGlzLWltcG9ydGFudFwiPlxuICpcbiAqIENvbXBvbmVudHMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIFtoeWRyYXRlZF0oZ3VpZGUvaHlkcmF0aW9uKSBiZWZvcmUgdGhlIGNhbGxiYWNrIHJ1bnMuXG4gKiBZb3UgbXVzdCB1c2UgY2F1dGlvbiB3aGVuIGRpcmVjdGx5IHJlYWRpbmcgb3Igd3JpdGluZyB0aGUgRE9NIGFuZCBsYXlvdXQuXG4gKlxuICogPC9kaXY+XG4gKlxuICogQHBhcmFtIGNhbGxiYWNrIEEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gcmVnaXN0ZXJcbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICpcbiAqIFVzZSBgYWZ0ZXJSZW5kZXJgIHRvIHJlYWQgb3Igd3JpdGUgdGhlIERPTSBhZnRlciBlYWNoIHJlbmRlci5cbiAqXG4gKiAjIyMgRXhhbXBsZVxuICogYGBgdHNcbiAqIEBDb21wb25lbnQoe1xuICogICBzZWxlY3RvcjogJ215LWNtcCcsXG4gKiAgIHRlbXBsYXRlOiBgPHNwYW4gI2NvbnRlbnQ+e3sgLi4uIH19PC9zcGFuPmAsXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IHtcbiAqICAgQFZpZXdDaGlsZCgnY29udGVudCcpIGNvbnRlbnRSZWY6IEVsZW1lbnRSZWY7XG4gKlxuICogICBjb25zdHJ1Y3RvcigpIHtcbiAqICAgICBhZnRlclJlbmRlcigoKSA9PiB7XG4gKiAgICAgICBjb25zb2xlLmxvZygnY29udGVudCBoZWlnaHQ6ICcgKyB0aGlzLmNvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQpO1xuICogICAgIH0sIHtwaGFzZTogQWZ0ZXJSZW5kZXJQaGFzZS5SZWFkfSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEBkZXZlbG9wZXJQcmV2aWV3XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZnRlclJlbmRlcihjYWxsYmFjazogVm9pZEZ1bmN0aW9uLCBvcHRpb25zPzogQWZ0ZXJSZW5kZXJPcHRpb25zKTogQWZ0ZXJSZW5kZXJSZWYge1xuICAhb3B0aW9ucyAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQoYWZ0ZXJSZW5kZXIpO1xuICBjb25zdCBpbmplY3RvciA9IG9wdGlvbnM/LmluamVjdG9yID8/IGluamVjdChJbmplY3Rvcik7XG5cbiAgaWYgKCFpc1BsYXRmb3JtQnJvd3NlcihpbmplY3RvcikpIHtcbiAgICByZXR1cm4ge2Rlc3Ryb3koKSB7fX07XG4gIH1cblxuICBsZXQgZGVzdHJveTogVm9pZEZ1bmN0aW9ufHVuZGVmaW5lZDtcbiAgY29uc3QgdW5yZWdpc3RlckZuID0gaW5qZWN0b3IuZ2V0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiBkZXN0cm95Py4oKSk7XG4gIGNvbnN0IGFmdGVyUmVuZGVyRXZlbnRNYW5hZ2VyID0gaW5qZWN0b3IuZ2V0KEFmdGVyUmVuZGVyRXZlbnRNYW5hZ2VyKTtcbiAgLy8gTGF6aWx5IGluaXRpYWxpemUgdGhlIGhhbmRsZXIgaW1wbGVtZW50YXRpb24sIGlmIG5lY2Vzc2FyeS4gVGhpcyBpcyBzbyB0aGF0IGl0IGNhbiBiZVxuICAvLyB0cmVlLXNoYWtlbiBpZiBgYWZ0ZXJSZW5kZXJgIGFuZCBgYWZ0ZXJOZXh0UmVuZGVyYCBhcmVuJ3QgdXNlZC5cbiAgY29uc3QgY2FsbGJhY2tIYW5kbGVyID0gYWZ0ZXJSZW5kZXJFdmVudE1hbmFnZXIuaGFuZGxlciA/Pz0gbmV3IEFmdGVyUmVuZGVyQ2FsbGJhY2tIYW5kbGVySW1wbCgpO1xuICBjb25zdCBuZ1pvbmUgPSBpbmplY3Rvci5nZXQoTmdab25lKTtcbiAgY29uc3QgZXJyb3JIYW5kbGVyID0gaW5qZWN0b3IuZ2V0KEVycm9ySGFuZGxlciwgbnVsbCwge29wdGlvbmFsOiB0cnVlfSk7XG4gIGNvbnN0IHBoYXNlID0gb3B0aW9ucz8ucGhhc2UgPz8gQWZ0ZXJSZW5kZXJQaGFzZS5NaXhlZFJlYWRXcml0ZTtcbiAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQWZ0ZXJSZW5kZXJDYWxsYmFjayhuZ1pvbmUsIGVycm9ySGFuZGxlciwgcGhhc2UsIGNhbGxiYWNrKTtcblxuICBkZXN0cm95ID0gKCkgPT4ge1xuICAgIGNhbGxiYWNrSGFuZGxlci51bnJlZ2lzdGVyKGluc3RhbmNlKTtcbiAgICB1bnJlZ2lzdGVyRm4oKTtcbiAgfTtcbiAgY2FsbGJhY2tIYW5kbGVyLnJlZ2lzdGVyKGluc3RhbmNlKTtcbiAgcmV0dXJuIHtkZXN0cm95fTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIGNhbGxiYWNrIHRvIGJlIGludm9rZWQgdGhlIG5leHQgdGltZSB0aGUgYXBwbGljYXRpb25cbiAqIGZpbmlzaGVzIHJlbmRlcmluZy5cbiAqXG4gKiA8ZGl2IGNsYXNzPVwiYWxlcnQgaXMtY3JpdGljYWxcIj5cbiAqXG4gKiBZb3Ugc2hvdWxkIGFsd2F5cyBleHBsaWNpdGx5IHNwZWNpZnkgYSBub24tZGVmYXVsdCBbcGhhc2VdKGFwaS9jb3JlL0FmdGVyUmVuZGVyUGhhc2UpLCBvciB5b3VcbiAqIHJpc2sgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgZGVncmFkYXRpb24uXG4gKlxuICogPC9kaXY+XG4gKlxuICogTm90ZSB0aGF0IHRoZSBjYWxsYmFjayB3aWxsIHJ1blxuICogLSBpbiB0aGUgb3JkZXIgaXQgd2FzIHJlZ2lzdGVyZWRcbiAqIC0gb24gYnJvd3NlciBwbGF0Zm9ybXMgb25seVxuICpcbiAqIDxkaXYgY2xhc3M9XCJhbGVydCBpcy1pbXBvcnRhbnRcIj5cbiAqXG4gKiBDb21wb25lbnRzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBiZSBbaHlkcmF0ZWRdKGd1aWRlL2h5ZHJhdGlvbikgYmVmb3JlIHRoZSBjYWxsYmFjayBydW5zLlxuICogWW91IG11c3QgdXNlIGNhdXRpb24gd2hlbiBkaXJlY3RseSByZWFkaW5nIG9yIHdyaXRpbmcgdGhlIERPTSBhbmQgbGF5b3V0LlxuICpcbiAqIDwvZGl2PlxuICpcbiAqIEBwYXJhbSBjYWxsYmFjayBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIHJlZ2lzdGVyXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqXG4gKiBVc2UgYGFmdGVyTmV4dFJlbmRlcmAgdG8gcmVhZCBvciB3cml0ZSB0aGUgRE9NIG9uY2UsXG4gKiBmb3IgZXhhbXBsZSB0byBpbml0aWFsaXplIGEgbm9uLUFuZ3VsYXIgbGlicmFyeS5cbiAqXG4gKiAjIyMgRXhhbXBsZVxuICogYGBgdHNcbiAqIEBDb21wb25lbnQoe1xuICogICBzZWxlY3RvcjogJ215LWNoYXJ0LWNtcCcsXG4gKiAgIHRlbXBsYXRlOiBgPGRpdiAjY2hhcnQ+e3sgLi4uIH19PC9kaXY+YCxcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgTXlDaGFydENtcCB7XG4gKiAgIEBWaWV3Q2hpbGQoJ2NoYXJ0JykgY2hhcnRSZWY6IEVsZW1lbnRSZWY7XG4gKiAgIGNoYXJ0OiBNeUNoYXJ0fG51bGw7XG4gKlxuICogICBjb25zdHJ1Y3RvcigpIHtcbiAqICAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICogICAgICAgdGhpcy5jaGFydCA9IG5ldyBNeUNoYXJ0KHRoaXMuY2hhcnRSZWYubmF0aXZlRWxlbWVudCk7XG4gKiAgICAgfSwge3BoYXNlOiBBZnRlclJlbmRlclBoYXNlLldyaXRlfSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEBkZXZlbG9wZXJQcmV2aWV3XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZnRlck5leHRSZW5kZXIoXG4gICAgY2FsbGJhY2s6IFZvaWRGdW5jdGlvbiwgb3B0aW9ucz86IEFmdGVyUmVuZGVyT3B0aW9ucyk6IEFmdGVyUmVuZGVyUmVmIHtcbiAgIW9wdGlvbnMgJiYgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KGFmdGVyTmV4dFJlbmRlcik7XG4gIGNvbnN0IGluamVjdG9yID0gb3B0aW9ucz8uaW5qZWN0b3IgPz8gaW5qZWN0KEluamVjdG9yKTtcblxuICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKGluamVjdG9yKSkge1xuICAgIHJldHVybiB7ZGVzdHJveSgpIHt9fTtcbiAgfVxuXG4gIGxldCBkZXN0cm95OiBWb2lkRnVuY3Rpb258dW5kZWZpbmVkO1xuICBjb25zdCB1bnJlZ2lzdGVyRm4gPSBpbmplY3Rvci5nZXQoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IGRlc3Ryb3k/LigpKTtcbiAgY29uc3QgYWZ0ZXJSZW5kZXJFdmVudE1hbmFnZXIgPSBpbmplY3Rvci5nZXQoQWZ0ZXJSZW5kZXJFdmVudE1hbmFnZXIpO1xuICAvLyBMYXppbHkgaW5pdGlhbGl6ZSB0aGUgaGFuZGxlciBpbXBsZW1lbnRhdGlvbiwgaWYgbmVjZXNzYXJ5LiBUaGlzIGlzIHNvIHRoYXQgaXQgY2FuIGJlXG4gIC8vIHRyZWUtc2hha2VuIGlmIGBhZnRlclJlbmRlcmAgYW5kIGBhZnRlck5leHRSZW5kZXJgIGFyZW4ndCB1c2VkLlxuICBjb25zdCBjYWxsYmFja0hhbmRsZXIgPSBhZnRlclJlbmRlckV2ZW50TWFuYWdlci5oYW5kbGVyID8/PSBuZXcgQWZ0ZXJSZW5kZXJDYWxsYmFja0hhbmRsZXJJbXBsKCk7XG4gIGNvbnN0IG5nWm9uZSA9IGluamVjdG9yLmdldChOZ1pvbmUpO1xuICBjb25zdCBlcnJvckhhbmRsZXIgPSBpbmplY3Rvci5nZXQoRXJyb3JIYW5kbGVyLCBudWxsLCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgY29uc3QgcGhhc2UgPSBvcHRpb25zPy5waGFzZSA/PyBBZnRlclJlbmRlclBoYXNlLk1peGVkUmVhZFdyaXRlO1xuICBjb25zdCBpbnN0YW5jZSA9IG5ldyBBZnRlclJlbmRlckNhbGxiYWNrKG5nWm9uZSwgZXJyb3JIYW5kbGVyLCBwaGFzZSwgKCkgPT4ge1xuICAgIGRlc3Ryb3k/LigpO1xuICAgIGNhbGxiYWNrKCk7XG4gIH0pO1xuXG4gIGRlc3Ryb3kgPSAoKSA9PiB7XG4gICAgY2FsbGJhY2tIYW5kbGVyLnVucmVnaXN0ZXIoaW5zdGFuY2UpO1xuICAgIHVucmVnaXN0ZXJGbigpO1xuICB9O1xuICBjYWxsYmFja0hhbmRsZXIucmVnaXN0ZXIoaW5zdGFuY2UpO1xuICByZXR1cm4ge2Rlc3Ryb3l9O1xufVxuXG4vKipcbiAqIEEgd3JhcHBlciBhcm91bmQgYSBmdW5jdGlvbiB0byBiZSB1c2VkIGFzIGFuIGFmdGVyIHJlbmRlciBjYWxsYmFjay5cbiAqL1xuY2xhc3MgQWZ0ZXJSZW5kZXJDYWxsYmFjayB7XG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXJ8bnVsbCxcbiAgICAgIHB1YmxpYyByZWFkb25seSBwaGFzZTogQWZ0ZXJSZW5kZXJQaGFzZSwgcHJpdmF0ZSBjYWxsYmFja0ZuOiBWb2lkRnVuY3Rpb24pIHt9XG5cbiAgaW52b2tlKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIodGhpcy5jYWxsYmFja0ZuKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZXJyb3JIYW5kbGVyPy5oYW5kbGVFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEltcGxlbWVudHMgYGFmdGVyUmVuZGVyYCBhbmQgYGFmdGVyTmV4dFJlbmRlcmAgY2FsbGJhY2sgaGFuZGxlciBsb2dpYy5cbiAqL1xuaW50ZXJmYWNlIEFmdGVyUmVuZGVyQ2FsbGJhY2tIYW5kbGVyIHtcbiAgLyoqXG4gICAqIFZhbGlkYXRlIHRoYXQgaXQncyBzYWZlIGZvciBhIHJlbmRlciBvcGVyYXRpb24gdG8gYmVnaW4sXG4gICAqIHRocm93aW5nIGlmIG5vdC4gTm90IGd1YXJhbnRlZWQgdG8gYmUgY2FsbGVkIGlmIGEgcmVuZGVyXG4gICAqIG9wZXJhdGlvbiBpcyBzdGFydGVkIGJlZm9yZSBoYW5kbGVyIHdhcyByZWdpc3RlcmVkLlxuICAgKi9cbiAgdmFsaWRhdGVCZWdpbigpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIG5ldyBjYWxsYmFjay5cbiAgICovXG4gIHJlZ2lzdGVyKGNhbGxiYWNrOiBBZnRlclJlbmRlckNhbGxiYWNrKTogdm9pZDtcblxuICAvKipcbiAgICogVW5yZWdpc3RlciBhbiBleGlzdGluZyBjYWxsYmFjay5cbiAgICovXG4gIHVucmVnaXN0ZXIoY2FsbGJhY2s6IEFmdGVyUmVuZGVyQ2FsbGJhY2spOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGNhbGxiYWNrcy5cbiAgICovXG4gIGV4ZWN1dGUoKTogdm9pZDtcblxuICAvKipcbiAgICogUGVyZm9ybSBhbnkgbmVjZXNzYXJ5IGNsZWFudXAuXG4gICAqL1xuICBkZXN0cm95KCk6IHZvaWQ7XG59XG5cbi8qKlxuICogQ29yZSBmdW5jdGlvbmFsaXR5IGZvciBgYWZ0ZXJSZW5kZXJgIGFuZCBgYWZ0ZXJOZXh0UmVuZGVyYC4gS2VwdCBzZXBhcmF0ZSBmcm9tXG4gKiBgQWZ0ZXJSZW5kZXJFdmVudE1hbmFnZXJgIGZvciB0cmVlLXNoYWtpbmcuXG4gKi9cbmNsYXNzIEFmdGVyUmVuZGVyQ2FsbGJhY2tIYW5kbGVySW1wbCBpbXBsZW1lbnRzIEFmdGVyUmVuZGVyQ2FsbGJhY2tIYW5kbGVyIHtcbiAgcHJpdmF0ZSBleGVjdXRpbmdDYWxsYmFja3MgPSBmYWxzZTtcbiAgcHJpdmF0ZSBidWNrZXRzID0ge1xuICAgIC8vIE5vdGU6IHRoZSBvcmRlciBvZiB0aGVzZSBrZXlzIGNvbnRyb2xzIHRoZSBvcmRlciB0aGUgcGhhc2VzIGFyZSBydW4uXG4gICAgW0FmdGVyUmVuZGVyUGhhc2UuRWFybHlSZWFkXTogbmV3IFNldDxBZnRlclJlbmRlckNhbGxiYWNrPigpLFxuICAgIFtBZnRlclJlbmRlclBoYXNlLldyaXRlXTogbmV3IFNldDxBZnRlclJlbmRlckNhbGxiYWNrPigpLFxuICAgIFtBZnRlclJlbmRlclBoYXNlLk1peGVkUmVhZFdyaXRlXTogbmV3IFNldDxBZnRlclJlbmRlckNhbGxiYWNrPigpLFxuICAgIFtBZnRlclJlbmRlclBoYXNlLlJlYWRdOiBuZXcgU2V0PEFmdGVyUmVuZGVyQ2FsbGJhY2s+KCksXG4gIH07XG4gIHByaXZhdGUgZGVmZXJyZWRDYWxsYmFja3MgPSBuZXcgU2V0PEFmdGVyUmVuZGVyQ2FsbGJhY2s+KCk7XG5cbiAgdmFsaWRhdGVCZWdpbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5leGVjdXRpbmdDYWxsYmFja3MpIHtcbiAgICAgIHRocm93IG5ldyBSdW50aW1lRXJyb3IoXG4gICAgICAgICAgUnVudGltZUVycm9yQ29kZS5SRUNVUlNJVkVfQVBQTElDQVRJT05fUkVOREVSLFxuICAgICAgICAgIG5nRGV2TW9kZSAmJlxuICAgICAgICAgICAgICAnQSBuZXcgcmVuZGVyIG9wZXJhdGlvbiBiZWdhbiBiZWZvcmUgdGhlIHByZXZpb3VzIG9wZXJhdGlvbiBlbmRlZC4gJyArXG4gICAgICAgICAgICAgICAgICAnRGlkIHlvdSB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gZnJvbSBhZnRlclJlbmRlciBvciBhZnRlck5leHRSZW5kZXI/Jyk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXIoY2FsbGJhY2s6IEFmdGVyUmVuZGVyQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAvLyBJZiB3ZSdyZSBjdXJyZW50bHkgcnVubmluZyBjYWxsYmFja3MsIG5ldyBjYWxsYmFja3Mgc2hvdWxkIGJlIGRlZmVycmVkXG4gICAgLy8gdW50aWwgdGhlIG5leHQgcmVuZGVyIG9wZXJhdGlvbi5cbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmV4ZWN1dGluZ0NhbGxiYWNrcyA/IHRoaXMuZGVmZXJyZWRDYWxsYmFja3MgOiB0aGlzLmJ1Y2tldHNbY2FsbGJhY2sucGhhc2VdO1xuICAgIHRhcmdldC5hZGQoY2FsbGJhY2spO1xuICB9XG5cbiAgdW5yZWdpc3RlcihjYWxsYmFjazogQWZ0ZXJSZW5kZXJDYWxsYmFjayk6IHZvaWQge1xuICAgIHRoaXMuYnVja2V0c1tjYWxsYmFjay5waGFzZV0uZGVsZXRlKGNhbGxiYWNrKTtcbiAgICB0aGlzLmRlZmVycmVkQ2FsbGJhY2tzLmRlbGV0ZShjYWxsYmFjayk7XG4gIH1cblxuICBleGVjdXRlKCk6IHZvaWQge1xuICAgIHRoaXMuZXhlY3V0aW5nQ2FsbGJhY2tzID0gdHJ1ZTtcbiAgICBmb3IgKGNvbnN0IGJ1Y2tldCBvZiBPYmplY3QudmFsdWVzKHRoaXMuYnVja2V0cykpIHtcbiAgICAgIGZvciAoY29uc3QgY2FsbGJhY2sgb2YgYnVja2V0KSB7XG4gICAgICAgIGNhbGxiYWNrLmludm9rZSgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmV4ZWN1dGluZ0NhbGxiYWNrcyA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBjYWxsYmFjayBvZiB0aGlzLmRlZmVycmVkQ2FsbGJhY2tzKSB7XG4gICAgICB0aGlzLmJ1Y2tldHNbY2FsbGJhY2sucGhhc2VdLmFkZChjYWxsYmFjayk7XG4gICAgfVxuICAgIHRoaXMuZGVmZXJyZWRDYWxsYmFja3MuY2xlYXIoKTtcbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBidWNrZXQgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLmJ1Y2tldHMpKSB7XG4gICAgICBidWNrZXQuY2xlYXIoKTtcbiAgICB9XG4gICAgdGhpcy5kZWZlcnJlZENhbGxiYWNrcy5jbGVhcigpO1xuICB9XG59XG5cbi8qKlxuICogSW1wbGVtZW50cyBjb3JlIHRpbWluZyBmb3IgYGFmdGVyUmVuZGVyYCBhbmQgYGFmdGVyTmV4dFJlbmRlcmAgZXZlbnRzLlxuICogRGVsZWdhdGVzIHRvIGFuIG9wdGlvbmFsIGBBZnRlclJlbmRlckNhbGxiYWNrSGFuZGxlcmAgZm9yIGltcGxlbWVudGF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQWZ0ZXJSZW5kZXJFdmVudE1hbmFnZXIge1xuICBwcml2YXRlIHJlbmRlckRlcHRoID0gMDtcblxuICAvKiBAaW50ZXJuYWwgKi9cbiAgaGFuZGxlcjogQWZ0ZXJSZW5kZXJDYWxsYmFja0hhbmRsZXJ8bnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIE1hcmsgdGhlIGJlZ2lubmluZyBvZiBhIHJlbmRlciBvcGVyYXRpb24gKGkuZS4gQ0QgY3ljbGUpLlxuICAgKiBUaHJvd3MgaWYgY2FsbGVkIHdoaWxlIGV4ZWN1dGluZyBjYWxsYmFja3MuXG4gICAqL1xuICBiZWdpbigpIHtcbiAgICB0aGlzLmhhbmRsZXI/LnZhbGlkYXRlQmVnaW4oKTtcbiAgICB0aGlzLnJlbmRlckRlcHRoKys7XG4gIH1cblxuICAvKipcbiAgICogTWFyayB0aGUgZW5kIG9mIGEgcmVuZGVyIG9wZXJhdGlvbi4gQ2FsbGJhY2tzIHdpbGwgYmVcbiAgICogZXhlY3V0ZWQgaWYgdGhlcmUgYXJlIG5vIG1vcmUgcGVuZGluZyBvcGVyYXRpb25zLlxuICAgKi9cbiAgZW5kKCkge1xuICAgIG5nRGV2TW9kZSAmJiBhc3NlcnRHcmVhdGVyVGhhbih0aGlzLnJlbmRlckRlcHRoLCAwLCAncmVuZGVyRGVwdGggbXVzdCBiZSBncmVhdGVyIHRoYW4gMCcpO1xuICAgIHRoaXMucmVuZGVyRGVwdGgtLTtcblxuICAgIGlmICh0aGlzLnJlbmRlckRlcHRoID09PSAwKSB7XG4gICAgICB0aGlzLmhhbmRsZXI/LmV4ZWN1dGUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmhhbmRsZXI/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmhhbmRsZXIgPSBudWxsO1xuICB9XG5cbiAgLyoqIEBub2NvbGxhcHNlICovXG4gIHN0YXRpYyDJtXByb3YgPSAvKiogQHB1cmVPckJyZWFrTXlDb2RlICovIMm1ybVkZWZpbmVJbmplY3RhYmxlKHtcbiAgICB0b2tlbjogQWZ0ZXJSZW5kZXJFdmVudE1hbmFnZXIsXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IG5ldyBBZnRlclJlbmRlckV2ZW50TWFuYWdlcigpLFxuICB9KTtcbn1cbiJdfQ==