@spartan-ng/brain 0.0.1-alpha.400 → 0.0.1-alpha.402

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.
@@ -1,6 +1,6 @@
1
1
  import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
2
2
  import { isPlatformBrowser } from '@angular/common';
3
- import { computed, contentChild, contentChildren, Directive, HostListener, inject, Injector, input, PLATFORM_ID, } from '@angular/core';
3
+ import { computed, contentChild, contentChildren, Directive, effect, HostListener, inject, Injector, input, PLATFORM_ID, } from '@angular/core';
4
4
  import { BrnCommandItemToken } from './brn-command-item.token';
5
5
  import { BrnCommandSearchInputDirective } from './brn-command-search-input.directive';
6
6
  import { provideBrnCommand } from './brn-command.token';
@@ -34,6 +34,13 @@ export class BrnCommandDirective {
34
34
  .withWrap()
35
35
  .withTypeAhead()
36
36
  .skipPredicate((item) => item.disabled || !item.visible());
37
+ // When clearing the search input we also want to reset the active item to the first one
38
+ effect(() => {
39
+ const searchInput = this._searchInput()?.value();
40
+ if (searchInput !== undefined && searchInput.length === 0) {
41
+ this.keyManager.setActiveItem(0);
42
+ }
43
+ }, { allowSignalWrites: true });
37
44
  }
38
45
  ngAfterViewInit() {
39
46
  if (isPlatformBrowser(this._platform) && this.items().length) {
@@ -60,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
60
67
  type: HostListener,
61
68
  args: ['keydown.enter']
62
69
  }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNvbW1hbmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9jb21tYW5kL3NyYy9saWIvYnJuLWNvbW1hbmQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFFTixRQUFRLEVBQ1IsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFdBQVcsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFVeEQsTUFBTSxPQUFPLG1CQUFtQjtJQUN2QixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUVOLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFaEMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5Qyw0QkFBNEI7SUFDWixFQUFFLEdBQUcsS0FBSyxDQUFTLGVBQWUsbUJBQW1CLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRS9FLGtDQUFrQztJQUNqQixjQUFjLEdBQUcsQ0FBQyxLQUFhLEVBQUUsTUFBYyxFQUFFLEVBQUUsQ0FDbkUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUVwRCxzREFBc0Q7SUFDdEMsTUFBTSxHQUFHLEtBQUssQ0FBZ0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRW5FLGlDQUFpQztJQUNqQixNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUU1RSx5Q0FBeUM7SUFDeEIsWUFBWSxHQUFHLFlBQVksQ0FBQyw4QkFBOEIsRUFBRTtRQUM1RSxXQUFXLEVBQUUsSUFBSTtLQUNqQixDQUFDLENBQUM7SUFFSCx5REFBeUQ7SUFDekMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRTtRQUM1RCxXQUFXLEVBQUUsSUFBSTtLQUNqQixDQUFDLENBQUM7SUFFSCwrREFBK0Q7SUFDL0MsVUFBVSxHQUFHLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEY7UUFDQyxJQUFJLENBQUMsVUFBVTthQUNiLHVCQUF1QixFQUFFO2FBQ3pCLGNBQWMsRUFBRTthQUNoQixRQUFRLEVBQUU7YUFDVixhQUFhLEVBQUU7YUFDZixhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsZUFBZTtRQUNkLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0YsQ0FBQztJQUdTLGdCQUFnQjtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQzswSEFuRFcsbUJBQW1COzhHQUFuQixtQkFBbUIsK1lBTHBCLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxvRUEwQk4sOEJBQThCLDJFQUtuQyxtQkFBbUI7OzJGQTFCL0MsbUJBQW1CO2tCQVIvQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsaUJBQWlCLHFCQUFxQixDQUFDO29CQUNuRCxJQUFJLEVBQUU7d0JBQ0wsTUFBTSxFQUFFLE1BQU07cUJBQ2Q7aUJBQ0Q7d0RBa0RVLGdCQUFnQjtzQkFEekIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRBZnRlclZpZXdJbml0LFxuXHRjb21wdXRlZCxcblx0Y29udGVudENoaWxkLFxuXHRjb250ZW50Q2hpbGRyZW4sXG5cdERpcmVjdGl2ZSxcblx0SG9zdExpc3RlbmVyLFxuXHRpbmplY3QsXG5cdEluamVjdG9yLFxuXHRpbnB1dCxcblx0UExBVEZPUk1fSUQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJuQ29tbWFuZEl0ZW1Ub2tlbiB9IGZyb20gJy4vYnJuLWNvbW1hbmQtaXRlbS50b2tlbic7XG5pbXBvcnQgeyBCcm5Db21tYW5kU2VhcmNoSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuL2Jybi1jb21tYW5kLXNlYXJjaC1pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgcHJvdmlkZUJybkNvbW1hbmQgfSBmcm9tICcuL2Jybi1jb21tYW5kLnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JybkNvbW1hbmRdJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZUJybkNvbW1hbmQoQnJuQ29tbWFuZERpcmVjdGl2ZSldLFxuXHRob3N0OiB7XG5cdFx0J1tpZF0nOiAnaWQoKScsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEJybkNvbW1hbmREaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblx0cHJpdmF0ZSBzdGF0aWMgX2lkID0gMDtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9wbGF0Zm9ybSA9IGluamVjdChQTEFURk9STV9JRCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG5cdC8qKiBUaGUgaWQgb2YgdGhlIGNvbW1hbmQgKi9cblx0cHVibGljIHJlYWRvbmx5IGlkID0gaW5wdXQ8c3RyaW5nPihgYnJuLWNvbW1hbmQtJHtCcm5Db21tYW5kRGlyZWN0aXZlLl9pZCsrfWApO1xuXG5cdC8qKiBUaGUgZGVmYXVsdCBmaWx0ZXIgZnVuY3Rpb24gKi9cblx0cHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdEZpbHRlciA9ICh2YWx1ZTogc3RyaW5nLCBzZWFyY2g6IHN0cmluZykgPT5cblx0XHR2YWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTtcblxuXHQvKiogQSBjdXN0b20gZmlsdGVyIGZ1bmN0aW9uIHRvIHVzZSB3aGVuIHNlYXJjaGluZy4gKi9cblx0cHVibGljIHJlYWRvbmx5IGZpbHRlciA9IGlucHV0PENvbW1hbmRGaWx0ZXI+KHRoaXMuX2RlZmF1bHRGaWx0ZXIpO1xuXG5cdC8qKiBAaW50ZXJuYWwgVGhlIHNlYXJjaCBxdWVyeSAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgc2VhcmNoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc2VhcmNoSW5wdXQoKT8udmFsdWUoKSA/PyAnJyk7XG5cblx0LyoqIEFjY2VzcyB0aGUgc2VhcmNoIGlucHV0IGlmIHByZXNlbnQgKi9cblx0cHJpdmF0ZSByZWFkb25seSBfc2VhcmNoSW5wdXQgPSBjb250ZW50Q2hpbGQoQnJuQ29tbWFuZFNlYXJjaElucHV0RGlyZWN0aXZlLCB7XG5cdFx0ZGVzY2VuZGFudHM6IHRydWUsXG5cdH0pO1xuXG5cdC8qKiBAaW50ZXJuYWwgQWNjZXNzIGFsbCB0aGUgaXRlbXMgd2l0aGluIHRoZSBjb21tbWFuZCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgaXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oQnJuQ29tbWFuZEl0ZW1Ub2tlbiwge1xuXHRcdGRlc2NlbmRhbnRzOiB0cnVlLFxuXHR9KTtcblxuXHQvKiogQGludGVybmFsIFRoZSBrZXkgbWFuYWdlciBmb3IgbWFuYWdpbmcgYWN0aXZlIGRlc2NlbmRhbnQgKi9cblx0cHVibGljIHJlYWRvbmx5IGtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIodGhpcy5pdGVtcywgdGhpcy5faW5qZWN0b3IpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMua2V5TWFuYWdlclxuXHRcdFx0LndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKClcblx0XHRcdC53aXRoSG9tZUFuZEVuZCgpXG5cdFx0XHQud2l0aFdyYXAoKVxuXHRcdFx0LndpdGhUeXBlQWhlYWQoKVxuXHRcdFx0LnNraXBQcmVkaWNhdGUoKGl0ZW0pID0+IGl0ZW0uZGlzYWJsZWQgfHwgIWl0ZW0udmlzaWJsZSgpKTtcblx0fVxuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5fcGxhdGZvcm0pICYmIHRoaXMuaXRlbXMoKS5sZW5ndGgpIHtcblx0XHRcdHRoaXMua2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKDApO1xuXHRcdH1cblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInKVxuXHRwcm90ZWN0ZWQgc2VsZWN0QWN0aXZlSXRlbSgpOiB2b2lkIHtcblx0XHR0aGlzLmtleU1hbmFnZXIuYWN0aXZlSXRlbT8uc2VsZWN0ZWQuZW1pdCgpO1xuXHR9XG59XG5cbmV4cG9ydCB0eXBlIENvbW1hbmRGaWx0ZXIgPSAodmFsdWU6IHN0cmluZywgc2VhcmNoOiBzdHJpbmcpID0+IGJvb2xlYW47XG4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNvbW1hbmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9jb21tYW5kL3NyYy9saWIvYnJuLWNvbW1hbmQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFFTixRQUFRLEVBQ1IsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxXQUFXLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBVXhELE1BQU0sT0FBTyxtQkFBbUI7SUFDdkIsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFFTixTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWhDLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFOUMsNEJBQTRCO0lBQ1osRUFBRSxHQUFHLEtBQUssQ0FBUyxlQUFlLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUUvRSxrQ0FBa0M7SUFDakIsY0FBYyxHQUFHLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxFQUFFLENBQ25FLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFcEQsc0RBQXNEO0lBQ3RDLE1BQU0sR0FBRyxLQUFLLENBQWdCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUVuRSxpQ0FBaUM7SUFDakIsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFNUUseUNBQXlDO0lBQ3hCLFlBQVksR0FBRyxZQUFZLENBQUMsOEJBQThCLEVBQUU7UUFDNUUsV0FBVyxFQUFFLElBQUk7S0FDakIsQ0FBQyxDQUFDO0lBRUgseURBQXlEO0lBQ3pDLEtBQUssR0FBRyxlQUFlLENBQUMsbUJBQW1CLEVBQUU7UUFDNUQsV0FBVyxFQUFFLElBQUk7S0FDakIsQ0FBQyxDQUFDO0lBRUgsK0RBQStEO0lBQy9DLFVBQVUsR0FBRyxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXhGO1FBQ0MsSUFBSSxDQUFDLFVBQVU7YUFDYix1QkFBdUIsRUFBRTthQUN6QixjQUFjLEVBQUU7YUFDaEIsUUFBUSxFQUFFO2FBQ1YsYUFBYSxFQUFFO2FBQ2YsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFNUQsd0ZBQXdGO1FBQ3hGLE1BQU0sQ0FDTCxHQUFHLEVBQUU7WUFDSixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDakQsSUFBSSxXQUFXLEtBQUssU0FBUyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLENBQUM7UUFDRixDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2QsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDRixDQUFDO0lBR1MsZ0JBQWdCO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDOzBIQTlEVyxtQkFBbUI7OEdBQW5CLG1CQUFtQiwrWUFMcEIsQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLG9FQTBCTiw4QkFBOEIsMkVBS25DLG1CQUFtQjs7MkZBMUIvQyxtQkFBbUI7a0JBUi9CLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxpQkFBaUIscUJBQXFCLENBQUM7b0JBQ25ELElBQUksRUFBRTt3QkFDTCxNQUFNLEVBQUUsTUFBTTtxQkFDZDtpQkFDRDt3REE2RFUsZ0JBQWdCO3NCQUR6QixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdEFmdGVyVmlld0luaXQsXG5cdGNvbXB1dGVkLFxuXHRjb250ZW50Q2hpbGQsXG5cdGNvbnRlbnRDaGlsZHJlbixcblx0RGlyZWN0aXZlLFxuXHRlZmZlY3QsXG5cdEhvc3RMaXN0ZW5lcixcblx0aW5qZWN0LFxuXHRJbmplY3Rvcixcblx0aW5wdXQsXG5cdFBMQVRGT1JNX0lELFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJybkNvbW1hbmRJdGVtVG9rZW4gfSBmcm9tICcuL2Jybi1jb21tYW5kLWl0ZW0udG9rZW4nO1xuaW1wb3J0IHsgQnJuQ29tbWFuZFNlYXJjaElucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi9icm4tY29tbWFuZC1zZWFyY2gtaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IHByb3ZpZGVCcm5Db21tYW5kIH0gZnJvbSAnLi9icm4tY29tbWFuZC50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1ticm5Db21tYW5kXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVCcm5Db21tYW5kKEJybkNvbW1hbmREaXJlY3RpdmUpXSxcblx0aG9zdDoge1xuXHRcdCdbaWRdJzogJ2lkKCknLFxuXHR9LFxufSlcbmV4cG9ydCBjbGFzcyBCcm5Db21tYW5kRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cdHByaXZhdGUgc3RhdGljIF9pZCA9IDA7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfcGxhdGZvcm0gPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuXHQvKiogVGhlIGlkIG9mIHRoZSBjb21tYW5kICovXG5cdHB1YmxpYyByZWFkb25seSBpZCA9IGlucHV0PHN0cmluZz4oYGJybi1jb21tYW5kLSR7QnJuQ29tbWFuZERpcmVjdGl2ZS5faWQrK31gKTtcblxuXHQvKiogVGhlIGRlZmF1bHQgZmlsdGVyIGZ1bmN0aW9uICovXG5cdHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRGaWx0ZXIgPSAodmFsdWU6IHN0cmluZywgc2VhcmNoOiBzdHJpbmcpID0+XG5cdFx0dmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSk7XG5cblx0LyoqIEEgY3VzdG9tIGZpbHRlciBmdW5jdGlvbiB0byB1c2Ugd2hlbiBzZWFyY2hpbmcuICovXG5cdHB1YmxpYyByZWFkb25seSBmaWx0ZXIgPSBpbnB1dDxDb21tYW5kRmlsdGVyPih0aGlzLl9kZWZhdWx0RmlsdGVyKTtcblxuXHQvKiogQGludGVybmFsIFRoZSBzZWFyY2ggcXVlcnkgKi9cblx0cHVibGljIHJlYWRvbmx5IHNlYXJjaCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3NlYXJjaElucHV0KCk/LnZhbHVlKCkgPz8gJycpO1xuXG5cdC8qKiBBY2Nlc3MgdGhlIHNlYXJjaCBpbnB1dCBpZiBwcmVzZW50ICovXG5cdHByaXZhdGUgcmVhZG9ubHkgX3NlYXJjaElucHV0ID0gY29udGVudENoaWxkKEJybkNvbW1hbmRTZWFyY2hJbnB1dERpcmVjdGl2ZSwge1xuXHRcdGRlc2NlbmRhbnRzOiB0cnVlLFxuXHR9KTtcblxuXHQvKiogQGludGVybmFsIEFjY2VzcyBhbGwgdGhlIGl0ZW1zIHdpdGhpbiB0aGUgY29tbW1hbmQgKi9cblx0cHVibGljIHJlYWRvbmx5IGl0ZW1zID0gY29udGVudENoaWxkcmVuKEJybkNvbW1hbmRJdGVtVG9rZW4sIHtcblx0XHRkZXNjZW5kYW50czogdHJ1ZSxcblx0fSk7XG5cblx0LyoqIEBpbnRlcm5hbCBUaGUga2V5IG1hbmFnZXIgZm9yIG1hbmFnaW5nIGFjdGl2ZSBkZXNjZW5kYW50ICovXG5cdHB1YmxpYyByZWFkb25seSBrZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyKHRoaXMuaXRlbXMsIHRoaXMuX2luamVjdG9yKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLmtleU1hbmFnZXJcblx0XHRcdC53aXRoVmVydGljYWxPcmllbnRhdGlvbigpXG5cdFx0XHQud2l0aEhvbWVBbmRFbmQoKVxuXHRcdFx0LndpdGhXcmFwKClcblx0XHRcdC53aXRoVHlwZUFoZWFkKClcblx0XHRcdC5za2lwUHJlZGljYXRlKChpdGVtKSA9PiBpdGVtLmRpc2FibGVkIHx8ICFpdGVtLnZpc2libGUoKSk7XG5cblx0XHQvLyBXaGVuIGNsZWFyaW5nIHRoZSBzZWFyY2ggaW5wdXQgd2UgYWxzbyB3YW50IHRvIHJlc2V0IHRoZSBhY3RpdmUgaXRlbSB0byB0aGUgZmlyc3Qgb25lXG5cdFx0ZWZmZWN0KFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRjb25zdCBzZWFyY2hJbnB1dCA9IHRoaXMuX3NlYXJjaElucHV0KCk/LnZhbHVlKCk7XG5cdFx0XHRcdGlmIChzZWFyY2hJbnB1dCAhPT0gdW5kZWZpbmVkICYmIHNlYXJjaElucHV0Lmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRcdHRoaXMua2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKDApO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuXHRcdCk7XG5cdH1cblxuXHRuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMuX3BsYXRmb3JtKSAmJiB0aGlzLml0ZW1zKCkubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLmtleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSgwKTtcblx0XHR9XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJylcblx0cHJvdGVjdGVkIHNlbGVjdEFjdGl2ZUl0ZW0oKTogdm9pZCB7XG5cdFx0dGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LnNlbGVjdGVkLmVtaXQoKTtcblx0fVxufVxuXG5leHBvcnQgdHlwZSBDb21tYW5kRmlsdGVyID0gKHZhbHVlOiBzdHJpbmcsIHNlYXJjaDogc3RyaW5nKSA9PiBib29sZWFuO1xuIl19
@@ -28,6 +28,12 @@ export class BrnMenuDirective {
28
28
  // we can access it here and determine the correct side.
29
29
  // eslint-disable-next-line
30
30
  const ps = this._host._parentTrigger._spartanLastPosition;
31
+ if (!ps) {
32
+ // if we have no last position we default to the most likely option
33
+ // I hate that we have to do this and hope we can revisit soon and improve
34
+ this._side.set(isRoot ? 'top' : 'left');
35
+ return;
36
+ }
31
37
  const side = isRoot ? ps.originY : ps.originX === 'end' ? 'right' : 'left';
32
38
  this._side.set(side);
33
39
  });
@@ -47,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
47
53
  hostDirectives: [CdkMenu],
48
54
  }]
49
55
  }], ctorParameters: () => [] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLW1lbnUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9tZW51L3NyYy9saWIvYnJuLW1lbnUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQVdoRSxNQUFNLE9BQU8sZ0JBQWdCO0lBQ1gsS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV0QixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFekM7UUFDQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1Qiw2REFBNkQ7UUFDN0QsdUdBQXVHO1FBQ3ZHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVPLG9CQUFvQjtRQUMzQjs7Ozs7OztXQU9HO1FBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssU0FBUyxDQUFDO1FBQ3pELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZiw2RkFBNkY7WUFDN0Ysd0RBQXdEO1lBQ3hELDJCQUEyQjtZQUMzQixNQUFNLEVBQUUsR0FBSSxJQUFJLENBQUMsS0FBYSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQztZQUNuRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUMzRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7MEhBL0JXLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQVQ1QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0wsbUJBQW1CLEVBQUUsVUFBVTt3QkFDL0Isa0JBQWtCLEVBQUUsU0FBUztxQkFDN0I7b0JBQ0QsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka01lbnUgfSBmcm9tICdAYW5ndWxhci9jZGsvbWVudSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1ticm5NZW51XSxbYnJuU3ViTWVudV0nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmRhdGEtc3RhdGVdJzogJ19zdGF0ZSgpJyxcblx0XHQnW2F0dHIuZGF0YS1zaWRlXSc6ICdfc2lkZSgpJyxcblx0fSxcblx0aG9zdERpcmVjdGl2ZXM6IFtDZGtNZW51XSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuTWVudURpcmVjdGl2ZSB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2hvc3QgPSBpbmplY3QoQ2RrTWVudSk7XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9zdGF0ZSA9IHNpZ25hbCgnb3BlbicpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX3NpZGUgPSBzaWduYWwoJ3RvcCcpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuc2V0U2lkZVdpdGhEYXJrTWFnaWMoKTtcblx0XHQvLyB0aGlzIGlzIGEgYmVzdCBlZmZvcnQsIGJ1dCBkb2VzIG5vdCBzZWVtIHRvIHdvcmsgY3VycmVudGx5XG5cdFx0Ly8gVE9ETzogZmlndXJlIG91dCBhIHdheSBmb3IgdXMgdG8ga25vdyB0aGUgaG9zdCBpcyBhYm91dCB0byBiZSBjbG9zZWQuIG1pZ2h0IG5vdCBiZSBwb3NzaWJsZSB3aXRoIENES1xuXHRcdHRoaXMuX2hvc3QuY2xvc2VkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zdGF0ZS5zZXQoJ2Nsb3NlZCcpKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0U2lkZVdpdGhEYXJrTWFnaWMoKSB7XG5cdFx0LyoqXG5cdFx0ICogVGhpcyBpcyBhbiB1Z2x5IHdvcmthcm91bmQgdG8gYXQgbGVhc3QgZmlndXJlIG91dCB0aGUgY29ycmVjdCBzaWRlIG9mIHdoZXJlIGEgc3VibWVudVxuXHRcdCAqIHdpbGwgYXBwZWFyIGFuZCBzZXQgdGhlIGF0dHJpYnV0ZSB0byB0aGUgaG9zdCBhY2NvcmRpbmdseVxuXHRcdCAqXG5cdFx0ICogRmlyc3Qgb2YgYWxsIHdlIHRha2UgYWR2YW50YWdlIG9mIHRoZSBtZW51IHN0YWNrIG5vdCBiZWluZyBhd2FyZSBvZiB0aGUgcm9vdFxuXHRcdCAqIG9iamVjdCBpbW1lZGlhdGVseSBhZnRlciBpdCBpcyBhZGRlZC4gVGhpcyBjb2RlIGV4ZWN1dGVzIGJlZm9yZSB0aGUgcm9vdCBlbGVtZW50IGlzIGFkZGVkLFxuXHRcdCAqIHdoaWNoIG1lYW5zIHRoZSBzdGFjayBpcyBzdGlsbCBlbXB0eSBhbmQgdGhlIHBlZWsgbWV0aG9kIHJldHVybnMgdW5kZWZpbmVkLlxuXHRcdCAqL1xuXHRcdGNvbnN0IGlzUm9vdCA9IHRoaXMuX2hvc3QubWVudVN0YWNrLnBlZWsoKSA9PT0gdW5kZWZpbmVkO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0Ly8gb3VyIG1lbnUgdHJpZ2dlciBkaXJlY3RpdmUgbGVhdmVzIHRoZSBsYXN0IHBvc2l0aW9uIHVzZWQgZm9yIHVzZSBpbW1lZGlhdGVseSBhZnRlciBvcGVuaW5nXG5cdFx0XHQvLyB3ZSBjYW4gYWNjZXNzIGl0IGhlcmUgYW5kIGRldGVybWluZSB0aGUgY29ycmVjdCBzaWRlLlxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5cdFx0XHRjb25zdCBwcyA9ICh0aGlzLl9ob3N0IGFzIGFueSkuX3BhcmVudFRyaWdnZXIuX3NwYXJ0YW5MYXN0UG9zaXRpb247XG5cdFx0XHRjb25zdCBzaWRlID0gaXNSb290ID8gcHMub3JpZ2luWSA6IHBzLm9yaWdpblggPT09ICdlbmQnID8gJ3JpZ2h0JyA6ICdsZWZ0Jztcblx0XHRcdHRoaXMuX3NpZGUuc2V0KHNpZGUpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLW1lbnUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9tZW51L3NyYy9saWIvYnJuLW1lbnUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQVdoRSxNQUFNLE9BQU8sZ0JBQWdCO0lBQ1gsS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV0QixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFekM7UUFDQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1Qiw2REFBNkQ7UUFDN0QsdUdBQXVHO1FBQ3ZHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVPLG9CQUFvQjtRQUMzQjs7Ozs7OztXQU9HO1FBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssU0FBUyxDQUFDO1FBQ3pELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZiw2RkFBNkY7WUFDN0Ysd0RBQXdEO1lBQ3hELDJCQUEyQjtZQUMzQixNQUFNLEVBQUUsR0FBSSxJQUFJLENBQUMsS0FBYSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQztZQUNuRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ1QsbUVBQW1FO2dCQUNuRSwwRUFBMEU7Z0JBQzFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDeEMsT0FBTztZQUNSLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUMzRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7MEhBckNXLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQVQ1QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0wsbUJBQW1CLEVBQUUsVUFBVTt3QkFDL0Isa0JBQWtCLEVBQUUsU0FBUztxQkFDN0I7b0JBQ0QsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka01lbnUgfSBmcm9tICdAYW5ndWxhci9jZGsvbWVudSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1ticm5NZW51XSxbYnJuU3ViTWVudV0nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmRhdGEtc3RhdGVdJzogJ19zdGF0ZSgpJyxcblx0XHQnW2F0dHIuZGF0YS1zaWRlXSc6ICdfc2lkZSgpJyxcblx0fSxcblx0aG9zdERpcmVjdGl2ZXM6IFtDZGtNZW51XSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuTWVudURpcmVjdGl2ZSB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2hvc3QgPSBpbmplY3QoQ2RrTWVudSk7XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9zdGF0ZSA9IHNpZ25hbCgnb3BlbicpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX3NpZGUgPSBzaWduYWwoJ3RvcCcpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuc2V0U2lkZVdpdGhEYXJrTWFnaWMoKTtcblx0XHQvLyB0aGlzIGlzIGEgYmVzdCBlZmZvcnQsIGJ1dCBkb2VzIG5vdCBzZWVtIHRvIHdvcmsgY3VycmVudGx5XG5cdFx0Ly8gVE9ETzogZmlndXJlIG91dCBhIHdheSBmb3IgdXMgdG8ga25vdyB0aGUgaG9zdCBpcyBhYm91dCB0byBiZSBjbG9zZWQuIG1pZ2h0IG5vdCBiZSBwb3NzaWJsZSB3aXRoIENES1xuXHRcdHRoaXMuX2hvc3QuY2xvc2VkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zdGF0ZS5zZXQoJ2Nsb3NlZCcpKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0U2lkZVdpdGhEYXJrTWFnaWMoKSB7XG5cdFx0LyoqXG5cdFx0ICogVGhpcyBpcyBhbiB1Z2x5IHdvcmthcm91bmQgdG8gYXQgbGVhc3QgZmlndXJlIG91dCB0aGUgY29ycmVjdCBzaWRlIG9mIHdoZXJlIGEgc3VibWVudVxuXHRcdCAqIHdpbGwgYXBwZWFyIGFuZCBzZXQgdGhlIGF0dHJpYnV0ZSB0byB0aGUgaG9zdCBhY2NvcmRpbmdseVxuXHRcdCAqXG5cdFx0ICogRmlyc3Qgb2YgYWxsIHdlIHRha2UgYWR2YW50YWdlIG9mIHRoZSBtZW51IHN0YWNrIG5vdCBiZWluZyBhd2FyZSBvZiB0aGUgcm9vdFxuXHRcdCAqIG9iamVjdCBpbW1lZGlhdGVseSBhZnRlciBpdCBpcyBhZGRlZC4gVGhpcyBjb2RlIGV4ZWN1dGVzIGJlZm9yZSB0aGUgcm9vdCBlbGVtZW50IGlzIGFkZGVkLFxuXHRcdCAqIHdoaWNoIG1lYW5zIHRoZSBzdGFjayBpcyBzdGlsbCBlbXB0eSBhbmQgdGhlIHBlZWsgbWV0aG9kIHJldHVybnMgdW5kZWZpbmVkLlxuXHRcdCAqL1xuXHRcdGNvbnN0IGlzUm9vdCA9IHRoaXMuX2hvc3QubWVudVN0YWNrLnBlZWsoKSA9PT0gdW5kZWZpbmVkO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0Ly8gb3VyIG1lbnUgdHJpZ2dlciBkaXJlY3RpdmUgbGVhdmVzIHRoZSBsYXN0IHBvc2l0aW9uIHVzZWQgZm9yIHVzZSBpbW1lZGlhdGVseSBhZnRlciBvcGVuaW5nXG5cdFx0XHQvLyB3ZSBjYW4gYWNjZXNzIGl0IGhlcmUgYW5kIGRldGVybWluZSB0aGUgY29ycmVjdCBzaWRlLlxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG5cdFx0XHRjb25zdCBwcyA9ICh0aGlzLl9ob3N0IGFzIGFueSkuX3BhcmVudFRyaWdnZXIuX3NwYXJ0YW5MYXN0UG9zaXRpb247XG5cdFx0XHRpZiAoIXBzKSB7XG5cdFx0XHRcdC8vIGlmIHdlIGhhdmUgbm8gbGFzdCBwb3NpdGlvbiB3ZSBkZWZhdWx0IHRvIHRoZSBtb3N0IGxpa2VseSBvcHRpb25cblx0XHRcdFx0Ly8gSSBoYXRlIHRoYXQgd2UgaGF2ZSB0byBkbyB0aGlzIGFuZCBob3BlIHdlIGNhbiByZXZpc2l0IHNvb24gYW5kIGltcHJvdmVcblx0XHRcdFx0dGhpcy5fc2lkZS5zZXQoaXNSb290ID8gJ3RvcCcgOiAnbGVmdCcpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBzaWRlID0gaXNSb290ID8gcHMub3JpZ2luWSA6IHBzLm9yaWdpblggPT09ICdlbmQnID8gJ3JpZ2h0JyA6ICdsZWZ0Jztcblx0XHRcdHRoaXMuX3NpZGUuc2V0KHNpZGUpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -18,10 +18,7 @@ export class BrnRadioComponent {
18
18
  /**
19
19
  * Whether the radio button is disabled.
20
20
  */
21
- disabled = input(false, {
22
- transform: booleanAttribute,
23
- alias: 'disabled',
24
- });
21
+ disabled = input(false, { transform: booleanAttribute });
25
22
  /**
26
23
  * Whether the radio button is disabled or the radio group is disabled.
27
24
  */
@@ -43,7 +40,7 @@ export class BrnRadioComponent {
43
40
  /**
44
41
  * The unique ID for the radio button input. If none is supplied, it will be auto-generated.
45
42
  */
46
- id = input(`brn-radio-${++BrnRadioComponent._nextUniqueId}`);
43
+ id = input(undefined);
47
44
  ariaLabel = input(undefined, { alias: 'aria-label' });
48
45
  ariaLabelledby = input(undefined, { alias: 'aria-labelledby' });
49
46
  ariaDescribedby = input(undefined, { alias: 'aria-describedby' });
@@ -61,7 +58,8 @@ export class BrnRadioComponent {
61
58
  * Event emitted when the checked state of this radio button changes.
62
59
  */
63
60
  change = output();
64
- inputId = computed(() => `${this.id()}-input`);
61
+ hostId = computed(() => this.id() ? this.id() : `brn-radio-${++BrnRadioComponent._nextUniqueId}`);
62
+ inputId = computed(() => `${this.hostId()}-input`);
65
63
  inputElement = viewChild.required('input');
66
64
  constructor() {
67
65
  this._focusMonitor.monitor(this._elementRef, true);
@@ -103,8 +101,12 @@ export class BrnRadioComponent {
103
101
  }
104
102
  }
105
103
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
106
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.5", type: BrnRadioComponent, isStandalone: true, selector: "brn-radio", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { listeners: { "focus": "inputElement().nativeElement.focus()" }, properties: { "attr.id": "id()", "class.brn-radio-checked": "checked()", "class.brn-radio-disabled": "disabledState()", "attr.data-checked": "checked()", "attr.data-disabled": "disabledState()", "attr.data-value": "value()", "attr.tabindex": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null" }, classAttribute: "brn-radio" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, isSignal: true }], exportAs: ["brnRadio"], ngImport: i0, template: `
107
- <div style="display: flex; height: fit-content; width: fit-content" (click)="onTouchTargetClick($event)">
104
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.5", type: BrnRadioComponent, isStandalone: true, selector: "brn-radio", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { listeners: { "focus": "inputElement().nativeElement.focus()" }, properties: { "attr.id": "hostId()", "class.brn-radio-checked": "checked()", "class.brn-radio-disabled": "disabledState()", "attr.data-checked": "checked()", "attr.data-disabled": "disabledState()", "attr.data-value": "value()", "attr.tabindex": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null" }, classAttribute: "brn-radio" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, isSignal: true }], exportAs: ["brnRadio"], ngImport: i0, template: `
105
+ <div
106
+ data-slot="indicator"
107
+ style="display: flex; height: fit-content; width: fit-content"
108
+ (click)="onTouchTargetClick($event)"
109
+ >
108
110
  <ng-content select="[target],[indicator]" />
109
111
  </div>
110
112
  <input
@@ -124,7 +126,7 @@ export class BrnRadioComponent {
124
126
  (change)="onInputInteraction($event)"
125
127
  (click)="onInputClick($event)"
126
128
  />
127
- <label style="display: flex; height: fit-content; width: fit-content" [for]="inputId()">
129
+ <label [for]="inputId()" data-slot="label">
128
130
  <ng-content />
129
131
  </label>
130
132
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
@@ -136,7 +138,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
136
138
  standalone: true,
137
139
  host: {
138
140
  class: 'brn-radio',
139
- '[attr.id]': 'id()',
141
+ '[attr.id]': 'hostId()',
140
142
  '[class.brn-radio-checked]': 'checked()',
141
143
  '[class.brn-radio-disabled]': 'disabledState()',
142
144
  '[attr.data-checked]': 'checked()',
@@ -156,7 +158,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
156
158
  encapsulation: ViewEncapsulation.None,
157
159
  changeDetection: ChangeDetectionStrategy.OnPush,
158
160
  template: `
159
- <div style="display: flex; height: fit-content; width: fit-content" (click)="onTouchTargetClick($event)">
161
+ <div
162
+ data-slot="indicator"
163
+ style="display: flex; height: fit-content; width: fit-content"
164
+ (click)="onTouchTargetClick($event)"
165
+ >
160
166
  <ng-content select="[target],[indicator]" />
161
167
  </div>
162
168
  <input
@@ -176,10 +182,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
176
182
  (change)="onInputInteraction($event)"
177
183
  (click)="onInputClick($event)"
178
184
  />
179
- <label style="display: flex; height: fit-content; width: fit-content" [for]="inputId()">
185
+ <label [for]="inputId()" data-slot="label">
180
186
  <ng-content />
181
187
  </label>
182
188
  `,
183
189
  }]
184
190
  }], ctorParameters: () => [] });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vcmFkaW8tZ3JvdXAvc3JjL2xpYi9icm4tcmFkaW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBRVYsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUU5RCxNQUFNLE9BQU8sY0FBYztJQUVsQjtJQUNBO0lBRlIsWUFDUSxNQUE0QixFQUM1QixLQUFRO1FBRFIsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFDNUIsVUFBSyxHQUFMLEtBQUssQ0FBRztJQUNiLENBQUM7Q0FDSjtBQW9ERCxNQUFNLE9BQU8saUJBQWlCO0lBQ3JCLE1BQU0sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLGFBQWEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQixVQUFVLEdBQUcsbUJBQW1CLEVBQUssQ0FBQztJQUV6RDs7T0FFRztJQUNhLFFBQVEsR0FBRyxLQUFLLENBQXdCLEtBQUssRUFBRTtRQUM5RCxTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLEtBQUssRUFBRSxVQUFVO0tBQ2pCLENBQUMsQ0FBQztJQUVIOztPQUVHO0lBQ2dCLGFBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVB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cUJBQ2pEO29CQUNELFFBQVEsRUFBRSxVQUFVO29CQUNwQixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBd0JUO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdHR5cGUgT25EZXN0cm95LFxuXHRWaWV3RW5jYXBzdWxhdGlvbixcblx0Ym9vbGVhbkF0dHJpYnV0ZSxcblx0Y29tcHV0ZWQsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdG91dHB1dCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdEJyblJhZGlvR3JvdXAgfSBmcm9tICcuL2Jybi1yYWRpby1ncm91cC50b2tlbic7XG5cbmV4cG9ydCBjbGFzcyBCcm5SYWRpb0NoYW5nZTxUPiB7XG5cdGNvbnN0cnVjdG9yKFxuXHRcdHB1YmxpYyBzb3VyY2U6IEJyblJhZGlvQ29tcG9uZW50PFQ+LFxuXHRcdHB1YmxpYyB2YWx1ZTogVCxcblx0KSB7fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdicm4tcmFkaW8nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRob3N0OiB7XG5cdFx0Y2xhc3M6ICdicm4tcmFkaW8nLFxuXHRcdCdbYXR0ci5pZF0nOiAnaWQoKScsXG5cdFx0J1tjbGFzcy5icm4tcmFkaW8tY2hlY2tlZF0nOiAnY2hlY2tlZCgpJyxcblx0XHQnW2NsYXNzLmJybi1yYWRpby1kaXNhYmxlZF0nOiAnZGlzYWJsZWRTdGF0ZSgpJyxcblx0XHQnW2F0dHIuZGF0YS1jaGVja2VkXSc6ICdjaGVja2VkKCknLFxuXHRcdCdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdkaXNhYmxlZFN0YXRlKCknLFxuXHRcdCdbYXR0ci5kYXRhLXZhbHVlXSc6ICd2YWx1ZSgpJyxcblx0XHQvLyBOZWVkcyB0byBiZSByZW1vdmVkIHNpbmNlIGl0IGNhdXNlcyBzb21lIGExMXkgaXNzdWVzIChzZWUgIzIxMjY2KS5cblx0XHQnW2F0dHIudGFiaW5kZXhdJzogJ251bGwnLFxuXHRcdCdbYXR0ci5hcmlhLWxhYmVsXSc6ICdudWxsJyxcblx0XHQnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdudWxsJyxcblx0XHQnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnbnVsbCcsXG5cdFx0Ly8gTm90ZTogdW5kZXIgbm9ybWFsIGNvbmRpdGlvbnMgZm9jdXMgc2hvdWxkbid0IGxhbmQgb24gdGhpcyBlbGVtZW50LCBob3dldmVyIGl0IG1heSBiZVxuXHRcdC8vIHByb2dyYW1tYXRpY2FsbHkgc2V0LCBmb3IgZXhhbXBsZSBpbnNpZGUgb2YgYSBmb2N1cyB0cmFwLCBpbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBmb3J3YXJkXG5cdFx0Ly8gdGhlIGZvY3VzIHRvIHRoZSBuYXRpdmUgZWxlbWVudC5cblx0XHQnKGZvY3VzKSc6ICdpbnB1dEVsZW1lbnQoKS5uYXRpdmVFbGVtZW50LmZvY3VzKCknLFxuXHR9LFxuXHRleHBvcnRBczogJ2JyblJhZGlvJyxcblx0ZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGhlaWdodDogZml0LWNvbnRlbnQ7IHdpZHRoOiBmaXQtY29udGVudFwiIChjbGljayk9XCJvblRvdWNoVGFyZ2V0Q2xpY2soJGV2ZW50KVwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW3RhcmdldF0sW2luZGljYXRvcl1cIiAvPlxuXHRcdDwvZGl2PlxuXHRcdDxpbnB1dFxuXHRcdFx0I2lucHV0XG5cdFx0XHRzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IHBhZGRpbmc6IDA7IG1hcmdpbjogLTFweDsgb3ZlcmZsb3c6IGhpZGRlbjsgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgYm9yZGVyLXdpZHRoOiAwO1wiXG5cdFx0XHR0eXBlPVwicmFkaW9cIlxuXHRcdFx0W2lkXT1cImlucHV0SWQoKVwiXG5cdFx0XHRbY2hlY2tlZF09XCJjaGVja2VkKClcIlxuXHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkU3RhdGUoKVwiXG5cdFx0XHRbdGFiSW5kZXhdPVwidGFiSW5kZXgoKVwiXG5cdFx0XHRbYXR0ci5uYW1lXT1cInJhZGlvR3JvdXAubmFtZSgpXCJcblx0XHRcdFthdHRyLnZhbHVlXT1cInZhbHVlKClcIlxuXHRcdFx0W3JlcXVpcmVkXT1cInJlcXVpcmVkKClcIlxuXHRcdFx0W2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKVwiXG5cdFx0XHRbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkYnkoKVwiXG5cdFx0XHRbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRieSgpXCJcblx0XHRcdChjaGFuZ2UpPVwib25JbnB1dEludGVyYWN0aW9uKCRldmVudClcIlxuXHRcdFx0KGNsaWNrKT1cIm9uSW5wdXRDbGljaygkZXZlbnQpXCJcblx0XHQvPlxuXHRcdDxsYWJlbCBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGhlaWdodDogZml0LWNvbnRlbnQ7IHdpZHRoOiBmaXQtY29udGVudFwiIFtmb3JdPVwiaW5wdXRJZCgpXCI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbGFiZWw+XG5cdGAsXG59KVxuZXhwb3J0IGNsYXNzIEJyblJhZGlvQ29tcG9uZW50PFQgPSB1bmtub3duPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cdHByaXZhdGUgc3RhdGljIF9uZXh0VW5pcXVlSWQgPSAwO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9mb2N1c01vbml0b3IgPSBpbmplY3QoRm9jdXNNb25pdG9yKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IHJhZGlvR3JvdXAgPSBpbmplY3RCcm5SYWRpb0dyb3VwPFQ+KCk7XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgdGhlIHJhZGlvIGJ1dHRvbiBpcyBkaXNhYmxlZC5cblx0ICovXG5cdHB1YmxpYyByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIEJvb2xlYW5JbnB1dD4oZmFsc2UsIHtcblx0XHR0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG5cdFx0YWxpYXM6ICdkaXNhYmxlZCcsXG5cdH0pO1xuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgZGlzYWJsZWQgb3IgdGhlIHJhZGlvIGdyb3VwIGlzIGRpc2FibGVkLlxuXHQgKi9cblx0cHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FibGVkU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRpc2FibGVkKCkgfHwgKHRoaXMucmFkaW9Hcm91cCAmJiB0aGlzLnJhZGlvR3JvdXAuZGlzYWJsZWQoKSkpO1xuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgY2hlY2tlZC5cblx0ICovXG5cdHByb3RlY3RlZCByZWFkb25seSBjaGVja2VkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yYWRpb0dyb3VwLnZhbHVlKCkgPT09IHRoaXMudmFsdWUoKSk7XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IHRhYkluZGV4ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGRpc2FibGVkID0gdGhpcy5kaXNhYmxlZFN0YXRlKCk7XG5cdFx0Y29uc3QgY2hlY2tlZCA9IHRoaXMuY2hlY2tlZCgpO1xuXHRcdGNvbnN0IGhhc1NlbGVjdGVkUmFkaW8gPSB0aGlzLnJhZGlvR3JvdXAudmFsdWUoKSAhPT0gdW5kZWZpbmVkO1xuXHRcdGNvbnN0IGlzRmlyc3RSYWRpbyA9IHRoaXMucmFkaW9Hcm91cC5yYWRpb0J1dHRvbnMoKVswXSA9PT0gdGhpcztcblxuXHRcdGlmIChkaXNhYmxlZCB8fCAoIWNoZWNrZWQgJiYgKGhhc1NlbGVjdGVkUmFkaW8gfHwgIWlzRmlyc3RSYWRpbykpKSB7XG5cdFx0XHRyZXR1cm4gLTE7XG5cdFx0fVxuXHRcdHJldHVybiAwO1xuXHR9KTtcblxuXHQvKipcblx0ICogVGhlIHVuaXF1ZSBJRCBmb3IgdGhlIHJhZGlvIGJ1dHRvbiBpbnB1dC4gSWYgbm9uZSBpcyBzdXBwbGllZCwgaXQgd2lsbCBiZSBhdXRvLWdlbmVyYXRlZC5cblx0ICovXG5cdHB1YmxpYyByZWFkb25seSBpZCA9IGlucHV0KGBicm4tcmFkaW8tJHsrK0JyblJhZGlvQ29tcG9uZW50Ll9uZXh0VW5pcXVlSWR9YCk7XG5cblx0cHVibGljIHJlYWRvbmx5IGFyaWFMYWJlbCA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7IGFsaWFzOiAnYXJpYS1sYWJlbCcgfSk7XG5cblx0cHVibGljIHJlYWRvbmx5IGFyaWFMYWJlbGxlZGJ5ID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHsgYWxpYXM6ICdhcmlhLWxhYmVsbGVkYnknIH0pO1xuXG5cdHB1YmxpYyByZWFkb25seSBhcmlhRGVzY3JpYmVkYnkgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwgeyBhbGlhczogJ2FyaWEtZGVzY3JpYmVkYnknIH0pO1xuXG5cdC8qKlxuXHQgKiBUaGUgdmFsdWUgdGhpcyByYWRpbyBidXR0b24gcmVwcmVzZW50cy5cblx0ICovXG5cdHB1YmxpYyByZWFkb25seSB2YWx1ZSA9IGlucHV0LnJlcXVpcmVkPFQ+KCk7XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgdGhlIHJhZGlvIGJ1dHRvbiBpcyByZXF1aXJlZC5cblx0ICovXG5cdHB1YmxpYyByZWFkb25seSByZXF1aXJlZCA9IGlucHV0PGJvb2xlYW4sIEJvb2xlYW5JbnB1dD4oZmFsc2UsIHtcblx0XHR0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG5cdH0pO1xuXG5cdC8qKlxuXHQgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNoZWNrZWQgc3RhdGUgb2YgdGhpcyByYWRpbyBidXR0b24gY2hhbmdlcy5cblx0ICovXG5cdHB1YmxpYyByZWFkb25seSBjaGFuZ2UgPSBvdXRwdXQ8QnJuUmFkaW9DaGFuZ2U8VD4+KCk7XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IGlucHV0SWQgPSBjb21wdXRlZCgoKSA9PiBgJHt0aGlzLmlkKCl9LWlucHV0YCk7XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IGlucHV0RWxlbWVudCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PignaW5wdXQnKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLl9mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLl9lbGVtZW50UmVmLCB0cnVlKTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuX2ZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmKTtcblx0fVxuXG5cdC8qKiBEaXNwYXRjaCBjaGFuZ2UgZXZlbnQgd2l0aCBjdXJyZW50IHZhbHVlLiAqL1xuXHRwcml2YXRlIGVtaXRDaGFuZ2VFdmVudCgpOiB2b2lkIHtcblx0XHR0aGlzLmNoYW5nZS5lbWl0KG5ldyBCcm5SYWRpb0NoYW5nZSh0aGlzLCB0aGlzLnZhbHVlKCkpKTtcblx0fVxuXG5cdHByb3RlY3RlZCBvbklucHV0Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG5cdFx0Ly8gV2UgaGF2ZSB0byBzdG9wIHByb3BhZ2F0aW9uIGZvciBjbGljayBldmVudHMgb24gdGhlIHZpc3VhbCBoaWRkZW4gaW5wdXQgZWxlbWVudC5cblx0XHQvLyBCeSBkZWZhdWx0LCB3aGVuIGEgdXNlciBjbGlja3Mgb24gYSBsYWJlbCBlbGVtZW50LCBhIGdlbmVyYXRlZCBjbGljayBldmVudCB3aWxsIGJlXG5cdFx0Ly8gZGlzcGF0Y2hlZCBvbiB0aGUgYXNzb2NpYXRlZCBpbnB1dCBlbGVtZW50LiBTaW5jZSB3ZSBhcmUgdXNpbmcgYSBsYWJlbCBlbGVtZW50IGFzIG91clxuXHRcdC8vIHJvb3QgY29udGFpbmVyLCB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIGByYWRpby1idXR0b25gIHdpbGwgYmUgZXhlY3V0ZWQgdHdpY2UuXG5cdFx0Ly8gVGhlIHJlYWwgY2xpY2sgZXZlbnQgd2lsbCBidWJibGUgdXAsIGFuZCB0aGUgZ2VuZXJhdGVkIGNsaWNrIGV2ZW50IGFsc28gdHJpZXMgdG8gYnViYmxlIHVwLlxuXHRcdC8vIFRoaXMgd2lsbCBsZWFkIHRvIG11bHRpcGxlIGNsaWNrIGV2ZW50cy5cblx0XHQvLyBQcmV2ZW50aW5nIGJ1YmJsaW5nIGZvciB0aGUgc2Vjb25kIGV2ZW50IHdpbGwgc29sdmUgdGhhdCBpc3N1ZS5cblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0fVxuXG5cdHByb3RlY3RlZCBvbklucHV0SW50ZXJhY3Rpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG5cdFx0Ly8gV2UgYWx3YXlzIGhhdmUgdG8gc3RvcCBwcm9wYWdhdGlvbiBvbiB0aGUgY2hhbmdlIGV2ZW50LlxuXHRcdC8vIE90aGVyd2lzZSB0aGUgY2hhbmdlIGV2ZW50LCBmcm9tIHRoZSBpbnB1dCBlbGVtZW50LCB3aWxsIGJ1YmJsZSB1cCBhbmRcblx0XHQvLyBlbWl0IGl0cyBldmVudCBvYmplY3QgdG8gdGhlIGBjaGFuZ2VgIG91dHB1dC5cblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuXHRcdGlmICghdGhpcy5jaGVja2VkKCkgJiYgIXRoaXMuZGlzYWJsZWRTdGF0ZSgpKSB7XG5cdFx0XHR0aGlzLmVtaXRDaGFuZ2VFdmVudCgpO1xuXHRcdFx0dGhpcy5yYWRpb0dyb3VwLnNlbGVjdCh0aGlzLCB0aGlzLnZhbHVlKCkpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBUcmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhlIHRvdWNoIHRhcmdldC4gKi9cblx0cHJvdGVjdGVkIG9uVG91Y2hUYXJnZXRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLm9uSW5wdXRJbnRlcmFjdGlvbihldmVudCk7XG5cblx0XHRpZiAoIXRoaXMuZGlzYWJsZWRTdGF0ZSgpKSB7XG5cdFx0XHQvLyBOb3JtYWxseSB0aGUgaW5wdXQgc2hvdWxkIGJlIGZvY3VzZWQgYWxyZWFkeSwgYnV0IGlmIHRoZSBjbGlja1xuXHRcdFx0Ly8gY29tZXMgZnJvbSB0aGUgdG91Y2ggdGFyZ2V0LCB0aGVuIHdlIG1pZ2h0IGhhdmUgdG8gZm9jdXMgaXQgb3Vyc2VsdmVzLlxuXHRcdFx0dGhpcy5pbnB1dEVsZW1lbnQoKS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cdFx0fVxuXHR9XG59XG4iXX0=
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vcmFkaW8tZ3JvdXAvc3JjL2xpYi9icm4tcmFkaW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBRVYsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUU5RCxNQUFNLE9BQU8sY0FBYztJQUVsQjtJQUNBO0lBRlIsWUFDUSxNQUE0QixFQUM1QixLQUFRO1FBRFIsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFDNUIsVUFBSyxHQUFMLEtBQUssQ0FBRztJQUNiLENBQUM7Q0FDSjtBQXdERCxNQUFNLE9BQU8saUJBQWlCO0lBQ3JCLE1BQU0sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLGFBQWEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQixVQUFVLEdBQUcsbUJBQW1CLEVBQUssQ0FBQztJQUV6RDs7T0FFRztJQUNhLFFBQVEsR0FBRyxLQUFLLENBQXdCLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFFaEc7O09BRUc7SUFDZ0IsYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFV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QzNCLHdCQUF3QixFQUFFLE1BQU07d0JBQ2hDLHlCQUF5QixFQUFFLE1BQU07d0JBQ2pDLHdGQUF3Rjt3QkFDeEYsNEZBQTRGO3dCQUM1RixtQ0FBbUM7d0JBQ25DLFNBQVMsRUFBRSxzQ0FBc0M7cUJBQ2pEO29CQUNELFFBQVEsRUFBRSxVQUFVO29CQUNwQixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTRCVDtpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHR0eXBlIE9uRGVzdHJveSxcblx0Vmlld0VuY2Fwc3VsYXRpb24sXG5cdGJvb2xlYW5BdHRyaWJ1dGUsXG5cdGNvbXB1dGVkLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHRvdXRwdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RCcm5SYWRpb0dyb3VwIH0gZnJvbSAnLi9icm4tcmFkaW8tZ3JvdXAudG9rZW4nO1xuXG5leHBvcnQgY2xhc3MgQnJuUmFkaW9DaGFuZ2U8VD4ge1xuXHRjb25zdHJ1Y3Rvcihcblx0XHRwdWJsaWMgc291cmNlOiBCcm5SYWRpb0NvbXBvbmVudDxUPixcblx0XHRwdWJsaWMgdmFsdWU6IFQsXG5cdCkge31cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnJuLXJhZGlvJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aG9zdDoge1xuXHRcdGNsYXNzOiAnYnJuLXJhZGlvJyxcblx0XHQnW2F0dHIuaWRdJzogJ2hvc3RJZCgpJyxcblx0XHQnW2NsYXNzLmJybi1yYWRpby1jaGVja2VkXSc6ICdjaGVja2VkKCknLFxuXHRcdCdbY2xhc3MuYnJuLXJhZGlvLWRpc2FibGVkXSc6ICdkaXNhYmxlZFN0YXRlKCknLFxuXHRcdCdbYXR0ci5kYXRhLWNoZWNrZWRdJzogJ2NoZWNrZWQoKScsXG5cdFx0J1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkU3RhdGUoKScsXG5cdFx0J1thdHRyLmRhdGEtdmFsdWVdJzogJ3ZhbHVlKCknLFxuXHRcdC8vIE5lZWRzIHRvIGJlIHJlbW92ZWQgc2luY2UgaXQgY2F1c2VzIHNvbWUgYTExeSBpc3N1ZXMgKHNlZSAjMjEyNjYpLlxuXHRcdCdbYXR0ci50YWJpbmRleF0nOiAnbnVsbCcsXG5cdFx0J1thdHRyLmFyaWEtbGFiZWxdJzogJ251bGwnLFxuXHRcdCdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ251bGwnLFxuXHRcdCdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdudWxsJyxcblx0XHQvLyBOb3RlOiB1bmRlciBub3JtYWwgY29uZGl0aW9ucyBmb2N1cyBzaG91bGRuJ3QgbGFuZCBvbiB0aGlzIGVsZW1lbnQsIGhvd2V2ZXIgaXQgbWF5IGJlXG5cdFx0Ly8gcHJvZ3JhbW1hdGljYWxseSBzZXQsIGZvciBleGFtcGxlIGluc2lkZSBvZiBhIGZvY3VzIHRyYXAsIGluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIGZvcndhcmRcblx0XHQvLyB0aGUgZm9jdXMgdG8gdGhlIG5hdGl2ZSBlbGVtZW50LlxuXHRcdCcoZm9jdXMpJzogJ2lucHV0RWxlbWVudCgpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKScsXG5cdH0sXG5cdGV4cG9ydEFzOiAnYnJuUmFkaW8nLFxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0dGVtcGxhdGU6IGBcblx0XHQ8ZGl2XG5cdFx0XHRkYXRhLXNsb3Q9XCJpbmRpY2F0b3JcIlxuXHRcdFx0c3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBoZWlnaHQ6IGZpdC1jb250ZW50OyB3aWR0aDogZml0LWNvbnRlbnRcIlxuXHRcdFx0KGNsaWNrKT1cIm9uVG91Y2hUYXJnZXRDbGljaygkZXZlbnQpXCJcblx0XHQ+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbdGFyZ2V0XSxbaW5kaWNhdG9yXVwiIC8+XG5cdFx0PC9kaXY+XG5cdFx0PGlucHV0XG5cdFx0XHQjaW5wdXRcblx0XHRcdHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsgcGFkZGluZzogMDsgbWFyZ2luOiAtMXB4OyBvdmVyZmxvdzogaGlkZGVuOyBjbGlwOiByZWN0KDAsIDAsIDAsIDApOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBib3JkZXItd2lkdGg6IDA7XCJcblx0XHRcdHR5cGU9XCJyYWRpb1wiXG5cdFx0XHRbaWRdPVwiaW5wdXRJZCgpXCJcblx0XHRcdFtjaGVja2VkXT1cImNoZWNrZWQoKVwiXG5cdFx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWRTdGF0ZSgpXCJcblx0XHRcdFt0YWJJbmRleF09XCJ0YWJJbmRleCgpXCJcblx0XHRcdFthdHRyLm5hbWVdPVwicmFkaW9Hcm91cC5uYW1lKClcIlxuXHRcdFx0W2F0dHIudmFsdWVdPVwidmFsdWUoKVwiXG5cdFx0XHRbcmVxdWlyZWRdPVwicmVxdWlyZWQoKVwiXG5cdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCgpXCJcblx0XHRcdFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRieSgpXCJcblx0XHRcdFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZGJ5KClcIlxuXHRcdFx0KGNoYW5nZSk9XCJvbklucHV0SW50ZXJhY3Rpb24oJGV2ZW50KVwiXG5cdFx0XHQoY2xpY2spPVwib25JbnB1dENsaWNrKCRldmVudClcIlxuXHRcdC8+XG5cdFx0PGxhYmVsIFtmb3JdPVwiaW5wdXRJZCgpXCIgZGF0YS1zbG90PVwibGFiZWxcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9sYWJlbD5cblx0YCxcbn0pXG5leHBvcnQgY2xhc3MgQnJuUmFkaW9Db21wb25lbnQ8VCA9IHVua25vd24+IGltcGxlbWVudHMgT25EZXN0cm95IHtcblx0cHJpdmF0ZSBzdGF0aWMgX25leHRVbmlxdWVJZCA9IDA7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzTW9uaXRvciA9IGluamVjdChGb2N1c01vbml0b3IpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgcmFkaW9Hcm91cCA9IGluamVjdEJyblJhZGlvR3JvdXA8VD4oKTtcblxuXHQvKipcblx0ICogV2hldGhlciB0aGUgcmFkaW8gYnV0dG9uIGlzIGRpc2FibGVkLlxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgdGhlIHJhZGlvIGJ1dHRvbiBpcyBkaXNhYmxlZCBvciB0aGUgcmFkaW8gZ3JvdXAgaXMgZGlzYWJsZWQuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgZGlzYWJsZWRTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGlzYWJsZWQoKSB8fCAodGhpcy5yYWRpb0dyb3VwICYmIHRoaXMucmFkaW9Hcm91cC5kaXNhYmxlZCgpKSk7XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgdGhlIHJhZGlvIGJ1dHRvbiBpcyBjaGVja2VkLlxuXHQgKi9cblx0cHJvdGVjdGVkIHJlYWRvbmx5IGNoZWNrZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJhZGlvR3JvdXAudmFsdWUoKSA9PT0gdGhpcy52YWx1ZSgpKTtcblxuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgdGFiSW5kZXggPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkU3RhdGUoKTtcblx0XHRjb25zdCBjaGVja2VkID0gdGhpcy5jaGVja2VkKCk7XG5cdFx0Y29uc3QgaGFzU2VsZWN0ZWRSYWRpbyA9IHRoaXMucmFkaW9Hcm91cC52YWx1ZSgpICE9PSB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgaXNGaXJzdFJhZGlvID0gdGhpcy5yYWRpb0dyb3VwLnJhZGlvQnV0dG9ucygpWzBdID09PSB0aGlzO1xuXG5cdFx0aWYgKGRpc2FibGVkIHx8ICghY2hlY2tlZCAmJiAoaGFzU2VsZWN0ZWRSYWRpbyB8fCAhaXNGaXJzdFJhZGlvKSkpIHtcblx0XHRcdHJldHVybiAtMTtcblx0XHR9XG5cdFx0cmV0dXJuIDA7XG5cdH0pO1xuXG5cdC8qKlxuXHQgKiBUaGUgdW5pcXVlIElEIGZvciB0aGUgcmFkaW8gYnV0dG9uIGlucHV0LiBJZiBub25lIGlzIHN1cHBsaWVkLCBpdCB3aWxsIGJlIGF1dG8tZ2VuZXJhdGVkLlxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGlkID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5cdHB1YmxpYyByZWFkb25seSBhcmlhTGFiZWwgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwgeyBhbGlhczogJ2FyaWEtbGFiZWwnIH0pO1xuXG5cdHB1YmxpYyByZWFkb25seSBhcmlhTGFiZWxsZWRieSA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7IGFsaWFzOiAnYXJpYS1sYWJlbGxlZGJ5JyB9KTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgYXJpYURlc2NyaWJlZGJ5ID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHsgYWxpYXM6ICdhcmlhLWRlc2NyaWJlZGJ5JyB9KTtcblxuXHQvKipcblx0ICogVGhlIHZhbHVlIHRoaXMgcmFkaW8gYnV0dG9uIHJlcHJlc2VudHMuXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgdmFsdWUgPSBpbnB1dC5yZXF1aXJlZDxUPigpO1xuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgcmVxdWlyZWQuXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgcmVxdWlyZWQgPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7XG5cdFx0dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuXHR9KTtcblxuXHQvKipcblx0ICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjaGVja2VkIHN0YXRlIG9mIHRoaXMgcmFkaW8gYnV0dG9uIGNoYW5nZXMuXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgY2hhbmdlID0gb3V0cHV0PEJyblJhZGlvQ2hhbmdlPFQ+PigpO1xuXG5cdHByb3RlY3RlZCByZWFkb25seSBob3N0SWQgPSBjb21wdXRlZCgoKSA9PlxuXHRcdHRoaXMuaWQoKSA/IHRoaXMuaWQoKSA6IGBicm4tcmFkaW8tJHsrK0JyblJhZGlvQ29tcG9uZW50Ll9uZXh0VW5pcXVlSWR9YCxcblx0KTtcblxuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgaW5wdXRJZCA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMuaG9zdElkKCl9LWlucHV0YCk7XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IGlucHV0RWxlbWVudCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PignaW5wdXQnKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLl9mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLl9lbGVtZW50UmVmLCB0cnVlKTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuX2ZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmKTtcblx0fVxuXG5cdC8qKiBEaXNwYXRjaCBjaGFuZ2UgZXZlbnQgd2l0aCBjdXJyZW50IHZhbHVlLiAqL1xuXHRwcml2YXRlIGVtaXRDaGFuZ2VFdmVudCgpOiB2b2lkIHtcblx0XHR0aGlzLmNoYW5nZS5lbWl0KG5ldyBCcm5SYWRpb0NoYW5nZSh0aGlzLCB0aGlzLnZhbHVlKCkpKTtcblx0fVxuXG5cdHByb3RlY3RlZCBvbklucHV0Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG5cdFx0Ly8gV2UgaGF2ZSB0byBzdG9wIHByb3BhZ2F0aW9uIGZvciBjbGljayBldmVudHMgb24gdGhlIHZpc3VhbCBoaWRkZW4gaW5wdXQgZWxlbWVudC5cblx0XHQvLyBCeSBkZWZhdWx0LCB3aGVuIGEgdXNlciBjbGlja3Mgb24gYSBsYWJlbCBlbGVtZW50LCBhIGdlbmVyYXRlZCBjbGljayBldmVudCB3aWxsIGJlXG5cdFx0Ly8gZGlzcGF0Y2hlZCBvbiB0aGUgYXNzb2NpYXRlZCBpbnB1dCBlbGVtZW50LiBTaW5jZSB3ZSBhcmUgdXNpbmcgYSBsYWJlbCBlbGVtZW50IGFzIG91clxuXHRcdC8vIHJvb3QgY29udGFpbmVyLCB0aGUgY2xpY2sgZXZlbnQgb24gdGhlIGByYWRpby1idXR0b25gIHdpbGwgYmUgZXhlY3V0ZWQgdHdpY2UuXG5cdFx0Ly8gVGhlIHJlYWwgY2xpY2sgZXZlbnQgd2lsbCBidWJibGUgdXAsIGFuZCB0aGUgZ2VuZXJhdGVkIGNsaWNrIGV2ZW50IGFsc28gdHJpZXMgdG8gYnViYmxlIHVwLlxuXHRcdC8vIFRoaXMgd2lsbCBsZWFkIHRvIG11bHRpcGxlIGNsaWNrIGV2ZW50cy5cblx0XHQvLyBQcmV2ZW50aW5nIGJ1YmJsaW5nIGZvciB0aGUgc2Vjb25kIGV2ZW50IHdpbGwgc29sdmUgdGhhdCBpc3N1ZS5cblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0fVxuXG5cdHByb3RlY3RlZCBvbklucHV0SW50ZXJhY3Rpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG5cdFx0Ly8gV2UgYWx3YXlzIGhhdmUgdG8gc3RvcCBwcm9wYWdhdGlvbiBvbiB0aGUgY2hhbmdlIGV2ZW50LlxuXHRcdC8vIE90aGVyd2lzZSB0aGUgY2hhbmdlIGV2ZW50LCBmcm9tIHRoZSBpbnB1dCBlbGVtZW50LCB3aWxsIGJ1YmJsZSB1cCBhbmRcblx0XHQvLyBlbWl0IGl0cyBldmVudCBvYmplY3QgdG8gdGhlIGBjaGFuZ2VgIG91dHB1dC5cblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuXHRcdGlmICghdGhpcy5jaGVja2VkKCkgJiYgIXRoaXMuZGlzYWJsZWRTdGF0ZSgpKSB7XG5cdFx0XHR0aGlzLmVtaXRDaGFuZ2VFdmVudCgpO1xuXHRcdFx0dGhpcy5yYWRpb0dyb3VwLnNlbGVjdCh0aGlzLCB0aGlzLnZhbHVlKCkpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBUcmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhlIHRvdWNoIHRhcmdldC4gKi9cblx0cHJvdGVjdGVkIG9uVG91Y2hUYXJnZXRDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLm9uSW5wdXRJbnRlcmFjdGlvbihldmVudCk7XG5cblx0XHRpZiAoIXRoaXMuZGlzYWJsZWRTdGF0ZSgpKSB7XG5cdFx0XHQvLyBOb3JtYWxseSB0aGUgaW5wdXQgc2hvdWxkIGJlIGZvY3VzZWQgYWxyZWFkeSwgYnV0IGlmIHRoZSBjbGlja1xuXHRcdFx0Ly8gY29tZXMgZnJvbSB0aGUgdG91Y2ggdGFyZ2V0LCB0aGVuIHdlIG1pZ2h0IGhhdmUgdG8gZm9jdXMgaXQgb3Vyc2VsdmVzLlxuXHRcdFx0dGhpcy5pbnB1dEVsZW1lbnQoKS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cdFx0fVxuXHR9XG59XG4iXX0=
@@ -77,8 +77,8 @@ export class BrnSelectContentComponent {
77
77
  canScrollDown = signal(false);
78
78
  initialSelectedOptions$ = toObservable(this._selectService.selectedOptions);
79
79
  viewport = viewChild.required('viewport');
80
- scrollUpBtn = contentChild.required(BrnSelectScrollUpDirective);
81
- scrollDownBtn = contentChild.required(BrnSelectScrollDownDirective);
80
+ scrollUpBtn = contentChild(BrnSelectScrollUpDirective);
81
+ scrollDownBtn = contentChild(BrnSelectScrollDownDirective);
82
82
  _options = contentChildren(BrnSelectOptionDirective, { descendants: true });
83
83
  constructor() {
84
84
  this._cdkListbox.valueChange
@@ -128,7 +128,7 @@ export class BrnSelectContentComponent {
128
128
  moveFocusUp() {
129
129
  this.viewport().nativeElement.scrollBy({ top: -SCROLLBY_PIXELS, behavior: 'smooth' });
130
130
  if (this.viewport().nativeElement.scrollTop === 0) {
131
- this.scrollUpBtn().stopEmittingEvents();
131
+ this.scrollUpBtn()?.stopEmittingEvents();
132
132
  }
133
133
  }
134
134
  moveFocusDown() {
@@ -137,7 +137,7 @@ export class BrnSelectContentComponent {
137
137
  const viewportScrollPosition = this.viewport().nativeElement.scrollTop;
138
138
  if (viewportSize + viewportScrollPosition + SCROLLBY_PIXELS >
139
139
  this.viewport().nativeElement.scrollHeight + SCROLLBY_PIXELS / 2) {
140
- this.scrollDownBtn().stopEmittingEvents();
140
+ this.scrollDownBtn()?.stopEmittingEvents();
141
141
  }
142
142
  }
143
143
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -202,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
202
202
  <ng-container *ngTemplateOutlet="canScrollDown() && scrollDownBtn() ? scrollDown : null" />
203
203
  `, styles: [":host{display:flex;box-sizing:border-box;flex-direction:column;outline:none;pointer-events:auto}[data-brn-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}[data-brn-select-viewport]::-webkit-scrollbar{display:none}\n"] }]
204
204
  }], ctorParameters: () => [] });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vc2VsZWN0L3NyYy9saWIvYnJuLXNlbGVjdC1jb250ZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFnQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFFTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRTNDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQztBQVU1QixNQUFNLE9BQU8sMEJBQTBCO0lBQ3JCLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekIsY0FBYyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRW5ELFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBQ3JDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFB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Qy9DLE1BQU0sRUFBRSxvQkFBb0I7d0JBQzVCLFlBQVksRUFBRSxzQkFBc0I7cUJBQ3BDLFlBc0JTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBeUJUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrTGlzdGJveCwgdHlwZSBMaXN0Ym94VmFsdWVDaGFuZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9saXN0Ym94JztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0dHlwZSBBZnRlclZpZXdJbml0LFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHREZXN0cm95UmVmLFxuXHRFbGVtZW50UmVmLFxuXHRjb250ZW50Q2hpbGQsXG5cdGNvbnRlbnRDaGlsZHJlbixcblx0ZWZmZWN0LFxuXHRpbmplY3QsXG5cdHNpZ25hbCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQnJuU2VsZWN0T3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9icm4tc2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQnJuU2VsZWN0U2VydmljZSB9IGZyb20gJy4vYnJuLXNlbGVjdC5zZXJ2aWNlJztcblxuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQsIGludGVydmFsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IFNDUk9MTEJZX1BJWEVMUyA9IDEwMDtcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JyblNlbGVjdFNjcm9sbFVwXSwgYnJuLXNlbGVjdC1zY3JvbGwtdXAsIGhsbS1zZWxlY3Qtc2Nyb2xsLXVwOm5vdChub0hsbSknLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRob3N0OiB7XG5cdFx0J2FyaWEtaGlkZGVuJzogJ3RydWUnLFxuXHRcdCcobW91c2VlbnRlciknOiAnc3RhcnRFbWl0dGluZ0V2ZW50cygpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2VsZWN0U2Nyb2xsVXBEaXJlY3RpdmUge1xuXHRwcml2YXRlIHJlYWRvbmx5IF9lbCA9IGluamVjdChFbGVtZW50UmVmKTtcblx0cHJpdmF0ZSByZWFkb25seSBfc2VsZWN0Q29udGVudCA9IGluamVjdChCcm5TZWxlY3RDb250ZW50Q29tcG9uZW50KTtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9lbmRSZWFjaGVkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuXHRwdWJsaWMgc3RhcnRFbWl0dGluZ0V2ZW50cygpOiB2b2lkIHtcblx0XHRjb25zdCBtb3VzZUxlYXZlJCA9IGZyb21FdmVudCh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAnbW91c2VsZWF2ZScpO1xuXG5cdFx0aW50ZXJ2YWwoMTAwKVxuXHRcdFx0LnBpcGUodGFrZVVudGlsKG1vdXNlTGVhdmUkKSwgdGFrZVVudGlsKHRoaXMuX2VuZFJlYWNoZWQpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3NlbGVjdENvbnRlbnQubW92ZUZvY3VzVXAoKSk7XG5cdH1cblxuXHRwdWJsaWMgc3RvcEVtaXR0aW5nRXZlbnRzKCk6IHZvaWQge1xuXHRcdHRoaXMuX2VuZFJlYWNoZWQubmV4dCh0cnVlKTtcblx0fVxufVxuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuU2VsZWN0U2Nyb2xsRG93bl0sIGJybi1zZWxlY3Qtc2Nyb2xsLWRvd24sIGhsbS1zZWxlY3Qtc2Nyb2xsLWRvd246bm90KG5vSGxtKScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGhvc3Q6IHtcblx0XHQnYXJpYS1oaWRkZW4nOiAndHJ1ZScsXG5cdFx0Jyhtb3VzZWVudGVyKSc6ICdzdGFydEVtaXR0aW5nRXZlbnRzKCknLFxuXHR9LFxufSlcbmV4cG9ydCBjbGFzcyBCcm5TZWxlY3RTY3JvbGxEb3duRGlyZWN0aXZlIHtcblx0cHJpdmF0ZSByZWFkb25seSBfZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdENvbnRlbnQgPSBpbmplY3QoQnJuU2VsZWN0Q29udGVudENvbXBvbmVudCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfZW5kUmVhY2hlZCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cblx0cHVibGljIHN0YXJ0RW1pdHRpbmdFdmVudHMoKTogdm9pZCB7XG5cdFx0Y29uc3QgbW91c2VMZWF2ZSQgPSBmcm9tRXZlbnQodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKTtcblxuXHRcdGludGVydmFsKDEwMClcblx0XHRcdC5waXBlKHRha2VVbnRpbChtb3VzZUxlYXZlJCksIHRha2VVbnRpbCh0aGlzLl9lbmRSZWFjaGVkKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zZWxlY3RDb250ZW50Lm1vdmVGb2N1c0Rvd24oKSk7XG5cdH1cblxuXHRwdWJsaWMgc3RvcEVtaXR0aW5nRXZlbnRzKCk6IHZvaWQge1xuXHRcdHRoaXMuX2VuZFJlYWNoZWQubmV4dCh0cnVlKTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdicm4tc2VsZWN0LWNvbnRlbnQsIGhsbS1zZWxlY3QtY29udGVudDpub3Qobm9IbG0pJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW0JyblNlbGVjdFNjcm9sbFVwRGlyZWN0aXZlLCBCcm5TZWxlY3RTY3JvbGxEb3duRGlyZWN0aXZlLCBOZ1RlbXBsYXRlT3V0bGV0XSxcblx0aG9zdERpcmVjdGl2ZXM6IFtDZGtMaXN0Ym94XSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGhvc3Q6IHtcblx0XHQnW2F0dHIuYXJpYS1sYWJlbGxlZEJ5XSc6ICdsYWJlbGxlZEJ5KCknLFxuXHRcdCdbYXR0ci5hcmlhLWNvbnRyb2xsZWRCeV0nOiBcImlkKCkgKyctLXRyaWdnZXInXCIsXG5cdFx0J1tpZF0nOiBcImlkKCkgKyAnLS1jb250ZW50J1wiLFxuXHRcdCdbYXR0ci5kaXJdJzogJ19zZWxlY3RTZXJ2aWNlLmRpcigpJyxcblx0fSxcblx0c3R5bGVzOiBbXG5cdFx0YFxuXHRcdFx0Omhvc3Qge1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0XHRwb2ludGVyLWV2ZW50czogYXV0bztcblx0XHRcdH1cblxuXHRcdFx0W2RhdGEtYnJuLXNlbGVjdC12aWV3cG9ydF0ge1xuXHRcdFx0XHRzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG5cdFx0XHRcdC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcblx0XHRcdFx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXHRcdFx0fVxuXG5cdFx0XHRbZGF0YS1icm4tc2VsZWN0LXZpZXdwb3J0XTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdGAsXG5cdF0sXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5nLXRlbXBsYXRlICNzY3JvbGxVcD5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cImhsbS1zZWxlY3Qtc2Nyb2xsLXVwXCIgLz5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cImJyblNlbGVjdFNjcm9sbFVwXCIgLz5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYW5TY3JvbGxVcCgpICYmIHNjcm9sbFVwQnRuKCkgPyBzY3JvbGxVcCA6IG51bGxcIiAvPlxuXHRcdDxkaXZcblx0XHRcdGRhdGEtYnJuLXNlbGVjdC12aWV3cG9ydFxuXHRcdFx0I3ZpZXdwb3J0XG5cdFx0XHQoc2Nyb2xsKT1cImhhbmRsZVNjcm9sbCgpXCJcblx0XHRcdHN0eWxlPVwiZmxleDogMSAxIDAlO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdG92ZXJmbG93OmF1dG87XG5cdFx0XHRtaW4taGVpZ2h0OiAzNnB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDJweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0ycHg7XCJcblx0XHQ+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvZGl2PlxuXHRcdDxuZy10ZW1wbGF0ZSAjc2Nyb2xsRG93bj5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cImJyblNlbGVjdFNjcm9sbERvd25cIiAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiaGxtLXNlbGVjdC1zY3JvbGwtZG93blwiIC8+XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FuU2Nyb2xsRG93bigpICYmIHNjcm9sbERvd25CdG4oKSA/IHNjcm9sbERvd24gOiBudWxsXCIgLz5cblx0YCxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2VsZWN0Q29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXHRwcml2YXRlIHJlYWRvbmx5IF9lbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2Nka0xpc3Rib3ggPSBpbmplY3QoQ2RrTGlzdGJveCwgeyBob3N0OiB0cnVlIH0pO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX3NlbGVjdFNlcnZpY2UgPSBpbmplY3QoQnJuU2VsZWN0U2VydmljZSk7XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IGxhYmVsbGVkQnkgPSB0aGlzLl9zZWxlY3RTZXJ2aWNlLmxhYmVsSWQ7XG5cdHByb3RlY3RlZCByZWFkb25seSBpZCA9IHRoaXMuX3NlbGVjdFNlcnZpY2UuaWQ7XG5cdHByb3RlY3RlZCByZWFkb25seSBjYW5TY3JvbGxVcCA9IHNpZ25hbChmYWxzZSk7XG5cdHByb3RlY3RlZCByZWFkb25seSBjYW5TY3JvbGxEb3duID0gc2lnbmFsKGZhbHNlKTtcblxuXHRwcm90ZWN0ZWQgaW5pdGlhbFNlbGVjdGVkT3B0aW9ucyQgPSB0b09ic2VydmFibGUodGhpcy5fc2VsZWN0U2VydmljZS5zZWxlY3RlZE9wdGlvbnMpO1xuXG5cdHByb3RlY3RlZCB2aWV3cG9ydCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ3ZpZXdwb3J0Jyk7XG5cblx0cHJvdGVjdGVkIHNjcm9sbFVwQnRuID0gY29udGVudENoaWxkLnJlcXVpcmVkKEJyblNlbGVjdFNjcm9sbFVwRGlyZWN0aXZlKTtcblxuXHRwcm90ZWN0ZWQgc2Nyb2xsRG93bkJ0biA9IGNvbnRlbnRDaGlsZC5yZXF1aXJlZChCcm5TZWxlY3RTY3JvbGxEb3duRGlyZWN0aXZlKTtcblxuXHRwcm90ZWN0ZWQgX29wdGlvbnMgPSBjb250ZW50Q2hpbGRyZW4oQnJuU2VsZWN0T3B0aW9uRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuX2Nka0xpc3Rib3gudmFsdWVDaGFuZ2Vcblx0XHRcdC5hc09ic2VydmFibGUoKVxuXHRcdFx0LnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG5cdFx0XHQuc3Vic2NyaWJlKCh2YWw6IExpc3Rib3hWYWx1ZUNoYW5nZUV2ZW50PHVua25vd24+KSA9PiB0aGlzLl9zZWxlY3RTZXJ2aWNlLmxpc3RCb3hWYWx1ZUNoYW5nZUV2ZW50JC5uZXh0KHZhbCkpO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdHRoaXMuX2Nka0xpc3Rib3gubXVsdGlwbGUgPSB0aGlzLl9zZWxlY3RTZXJ2aWNlLm11bHRpcGxlKCk7XG5cdFx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLmlzRXhwYW5kZWQoKSAmJiBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQXJyb3dEaXNwbGF5KCkpO1xuXHRcdH0pO1xuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuc2V0SW5pdGlhbGx5U2VsZWN0ZWRPcHRpb25zKCk7XG5cdH1cblxuXHRwcml2YXRlIHNldEluaXRpYWxseVNlbGVjdGVkT3B0aW9ucygpIHtcblx0XHR0aGlzLmluaXRpYWxTZWxlY3RlZE9wdGlvbnMkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHNlbGVjdGVkT3B0aW9ucykgPT4ge1xuXHRcdFx0Ly8gUmVhcHBseWluZyBjZGtMaWJzdGJveCBtdWx0aXBsZSBiZWNhdXNlIHNlZW1zIHRoaXMgaXMgcnVubmluZyBiZWZvcmUgZWZmZWN0IHRoYXRcblx0XHRcdC8vIHVwZGF0ZXMgY2RrbGlzdGJveCwgcmVhcHBseWluZyBtdWx0aXBsZSB0cnVlIHNvIHdlIGNhbiBzZXQgdGhlIG11bHRpcGxlIGluaXRpYWwgb3B0aW9uc1xuXHRcdFx0aWYgKHRoaXMuX3NlbGVjdFNlcnZpY2UubXVsdGlwbGUoKSkge1xuXHRcdFx0XHR0aGlzLl9jZGtMaXN0Ym94Lm11bHRpcGxlID0gdHJ1ZTtcblx0XHRcdH1cblxuXHRcdFx0Zm9yIChjb25zdCBjZGtPcHRpb24gb2YgdGhpcy5fc2VsZWN0U2VydmljZS5wb3NzaWJsZU9wdGlvbnMoKSkge1xuXHRcdFx0XHRpZiAoc2VsZWN0ZWRPcHRpb25zLmluY2x1ZGVzKGNka09wdGlvbikpIHtcblx0XHRcdFx0XHRjZGtPcHRpb24/LnNlbGVjdCgpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGNka09wdGlvbj8uZGVzZWxlY3QoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRmb3IgKGNvbnN0IGNka09wdGlvbiBvZiBzZWxlY3RlZE9wdGlvbnMpIHtcblx0XHRcdFx0Y2RrT3B0aW9uPy5zZWxlY3QoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyB1cGRhdGVBcnJvd0Rpc3BsYXkoKTogdm9pZCB7XG5cdFx0Y29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSB0aGlzLnZpZXdwb3J0KCkubmF0aXZlRWxlbWVudDtcblx0XHR0aGlzLmNhblNjcm9sbFVwLnNldChzY3JvbGxUb3AgPiAwKTtcblx0XHRjb25zdCBtYXhTY3JvbGwgPSBzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQ7XG5cdFx0dGhpcy5jYW5TY3JvbGxEb3duLnNldChNYXRoLmNlaWwoc2Nyb2xsVG9wKSA8IG1heFNjcm9sbCk7XG5cdH1cblxuXHRwdWJsaWMgaGFuZGxlU2Nyb2xsKCkge1xuXHRcdHRoaXMudXBkYXRlQXJyb3dEaXNwbGF5KCk7XG5cdH1cblxuXHRwdWJsaWMgZm9jdXNMaXN0KCk6IHZvaWQge1xuXHRcdHRoaXMuX2Nka0xpc3Rib3guZm9jdXMoKTtcblx0fVxuXG5cdHB1YmxpYyBtb3ZlRm9jdXNVcCgpIHtcblx0XHR0aGlzLnZpZXdwb3J0KCkubmF0aXZlRWxlbWVudC5zY3JvbGxCeSh7IHRvcDogLVNDUk9MTEJZX1BJWEVMUywgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuXHRcdGlmICh0aGlzLnZpZXdwb3J0KCkubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPT09IDApIHtcblx0XHRcdHRoaXMuc2Nyb2xsVXBCdG4oKS5zdG9wRW1pdHRpbmdFdmVudHMoKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgbW92ZUZvY3VzRG93bigpIHtcblx0XHR0aGlzLnZpZXdwb3J0KCkubmF0aXZlRWxlbWVudC5zY3JvbGxCeSh7IHRvcDogU0NST0xMQllfUElYRUxTLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG5cdFx0Y29uc3Qgdmlld3BvcnRTaXplID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQ7XG5cdFx0Y29uc3Qgdmlld3BvcnRTY3JvbGxQb3NpdGlvbiA9IHRoaXMudmlld3BvcnQoKS5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcDtcblx0XHRpZiAoXG5cdFx0XHR2aWV3cG9ydFNpemUgKyB2aWV3cG9ydFNjcm9sbFBvc2l0aW9uICsgU0NST0xMQllfUElYRUxTID5cblx0XHRcdHRoaXMudmlld3BvcnQoKS5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCArIFNDUk9MTEJZX1BJWEVMUyAvIDJcblx0XHQpIHtcblx0XHRcdHRoaXMuc2Nyb2xsRG93bkJ0bigpLnN0b3BFbWl0dGluZ0V2ZW50cygpO1xuXHRcdH1cblx0fVxufVxuIl19
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vc2VsZWN0L3NyYy9saWIvYnJuLXNlbGVjdC1jb250ZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFnQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFFTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRTNDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQztBQVU1QixNQUFNLE9BQU8sMEJBQTBCO0lBQ3JCLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekIsY0FBYyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRW5ELFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBQ3JDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFM0MsbUJBQW1CO1FBQ3pCLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVwRSxRQUFRLENBQUMsR0FBRyxDQUFDO2FBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMvRixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQzswSEFqQlcsMEJBQTBCOzhHQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBUnRDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLDRFQUE0RTtvQkFDdEYsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDTCxhQUFhLEVBQUUsTUFBTTt3QkFDckIsY0FBYyxFQUFFLHVCQUF1QjtxQkFDdkM7aUJBQ0Q7O0FBNkJELE1BQU0sT0FBTyw0QkFBNEI7SUFDdkIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QixjQUFjLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFFbkQsV0FBVyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFDckMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUzQyxtQkFBbUI7UUFDekIsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRXBFLFFBQVEsQ0FBQyxHQUFHLENBQUM7YUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQy9GLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDOzBIQWpCVyw0QkFBNEI7OEdBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFSeEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsa0ZBQWtGO29CQUM1RixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNMLGFBQWEsRUFBRSxNQUFNO3dCQUNyQixjQUFjLEVBQUUsdUJBQXVCO3FCQUN2QztpQkFDRDs7QUFpRkQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQixHQUFHLEdBQTRCLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRCxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0IsY0FBYyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUN6QyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7SUFDNUIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXZDLHVCQUF1QixHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRTVFLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUEwQixVQUFVLENBQUMsQ0FBQztJQUVuRSxXQUFXLEdBQUcsWUFBWSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFFdkQsYUFBYSxHQUFHLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBRTNELFFBQVEsR0FBRyxlQUFlLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUV0RjtRQUNDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVzthQUMxQixZQUFZLEVBQUU7YUFDZCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMxQixTQUFTLENBQUMsQ0FBQyxHQUFxQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRS9HLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNELElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLElBQUksVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDakYsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNkLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTywyQkFBMkI7UUFDbEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUNyRyxtRkFBbUY7WUFDbkYsMEZBQTBGO1lBQzFGLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDbEMsQ0FBQztZQUVELEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO2dCQUMvRCxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztvQkFDekMsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUNyQixDQUFDO3FCQUFNLENBQUM7b0JBQ1AsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO2dCQUN2QixDQUFDO1lBQ0YsQ0FBQztZQUVELEtBQUssTUFBTSxTQUFTLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ3pDLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNyQixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU0sa0JBQWtCO1FBQ3hCLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDaEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sWUFBWTtRQUNsQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sU0FBUztRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLFdBQVc7UUFDakIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxlQUFlLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdEYsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQyxDQUFDO0lBQ0YsQ0FBQztJQUVNLGFBQWE7UUFDbkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztRQUN6RCxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQ3ZFLElBQ0MsWUFBWSxHQUFHLHNCQUFzQixHQUFHLGVBQWU7WUFDdkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsZUFBZSxHQUFHLENBQUMsRUFDL0QsQ0FBQztZQUNGLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1FBQzVDLENBQUM7SUFDRixDQUFDOzBIQTNGVyx5QkFBeUI7OEdBQXpCLHlCQUF5Qix1VUFlQSwwQkFBMEIsZ0dBRXhCLDRCQUE0Qiw4RUFFOUIsd0JBQXdCLHNPQTlDbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5QlQsZ1ZBdkRtRSxnQkFBZ0I7OzJGQXlEeEUseUJBQXlCO2tCQTVEckMsU0FBUzsrQkFDQyxtREFBbUQsY0FDakQsSUFBSSxXQUNQLENBQUMsMEJBQTBCLEVBQUUsNEJBQTRCLEVBQUUsZ0JBQWdCLENBQUMsa0JBQ3JFLENBQUMsVUFBVSxDQUFDLG1CQUNYLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0wsd0JBQXdCLEVBQUUsY0FBYzt3QkFDeEMsMEJBQTBCLEVBQUUsbUJBQW1CO3dCQUMvQyxNQUFNLEVBQUUsb0JBQW9CO3dCQUM1QixZQUFZLEVBQUUsc0JBQXNCO3FCQUNwQyxZQXNCUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXlCVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0xpc3Rib3gsIHR5cGUgTGlzdGJveFZhbHVlQ2hhbmdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9jZGsvbGlzdGJveCc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdHR5cGUgQWZ0ZXJWaWV3SW5pdCxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RGVzdHJveVJlZixcblx0RWxlbWVudFJlZixcblx0Y29udGVudENoaWxkLFxuXHRjb250ZW50Q2hpbGRyZW4sXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRzaWduYWwsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEJyblNlbGVjdE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vYnJuLXNlbGVjdC1vcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEJyblNlbGVjdFNlcnZpY2UgfSBmcm9tICcuL2Jybi1zZWxlY3Quc2VydmljZSc7XG5cbmltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBTQ1JPTExCWV9QSVhFTFMgPSAxMDA7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1ticm5TZWxlY3RTY3JvbGxVcF0sIGJybi1zZWxlY3Qtc2Nyb2xsLXVwLCBobG0tc2VsZWN0LXNjcm9sbC11cDpub3Qobm9IbG0pJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aG9zdDoge1xuXHRcdCdhcmlhLWhpZGRlbic6ICd0cnVlJyxcblx0XHQnKG1vdXNlZW50ZXIpJzogJ3N0YXJ0RW1pdHRpbmdFdmVudHMoKScsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEJyblNlbGVjdFNjcm9sbFVwRGlyZWN0aXZlIHtcblx0cHJpdmF0ZSByZWFkb25seSBfZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdENvbnRlbnQgPSBpbmplY3QoQnJuU2VsZWN0Q29udGVudENvbXBvbmVudCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfZW5kUmVhY2hlZCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cblx0cHVibGljIHN0YXJ0RW1pdHRpbmdFdmVudHMoKTogdm9pZCB7XG5cdFx0Y29uc3QgbW91c2VMZWF2ZSQgPSBmcm9tRXZlbnQodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKTtcblxuXHRcdGludGVydmFsKDEwMClcblx0XHRcdC5waXBlKHRha2VVbnRpbChtb3VzZUxlYXZlJCksIHRha2VVbnRpbCh0aGlzLl9lbmRSZWFjaGVkKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zZWxlY3RDb250ZW50Lm1vdmVGb2N1c1VwKCkpO1xuXHR9XG5cblx0cHVibGljIHN0b3BFbWl0dGluZ0V2ZW50cygpOiB2b2lkIHtcblx0XHR0aGlzLl9lbmRSZWFjaGVkLm5leHQodHJ1ZSk7XG5cdH1cbn1cblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JyblNlbGVjdFNjcm9sbERvd25dLCBicm4tc2VsZWN0LXNjcm9sbC1kb3duLCBobG0tc2VsZWN0LXNjcm9sbC1kb3duOm5vdChub0hsbSknLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRob3N0OiB7XG5cdFx0J2FyaWEtaGlkZGVuJzogJ3RydWUnLFxuXHRcdCcobW91c2VlbnRlciknOiAnc3RhcnRFbWl0dGluZ0V2ZW50cygpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2VsZWN0U2Nyb2xsRG93bkRpcmVjdGl2ZSB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2VsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3RDb250ZW50ID0gaW5qZWN0KEJyblNlbGVjdENvbnRlbnRDb21wb25lbnQpO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2VuZFJlYWNoZWQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG5cdHB1YmxpYyBzdGFydEVtaXR0aW5nRXZlbnRzKCk6IHZvaWQge1xuXHRcdGNvbnN0IG1vdXNlTGVhdmUkID0gZnJvbUV2ZW50KHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWxlYXZlJyk7XG5cblx0XHRpbnRlcnZhbCgxMDApXG5cdFx0XHQucGlwZSh0YWtlVW50aWwobW91c2VMZWF2ZSQpLCB0YWtlVW50aWwodGhpcy5fZW5kUmVhY2hlZCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcblx0XHRcdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fc2VsZWN0Q29udGVudC5tb3ZlRm9jdXNEb3duKCkpO1xuXHR9XG5cblx0cHVibGljIHN0b3BFbWl0dGluZ0V2ZW50cygpOiB2b2lkIHtcblx0XHR0aGlzLl9lbmRSZWFjaGVkLm5leHQodHJ1ZSk7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnJuLXNlbGVjdC1jb250ZW50LCBobG0tc2VsZWN0LWNvbnRlbnQ6bm90KG5vSGxtKScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtCcm5TZWxlY3RTY3JvbGxVcERpcmVjdGl2ZSwgQnJuU2VsZWN0U2Nyb2xsRG93bkRpcmVjdGl2ZSwgTmdUZW1wbGF0ZU91dGxldF0sXG5cdGhvc3REaXJlY3RpdmVzOiBbQ2RrTGlzdGJveF0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmFyaWEtbGFiZWxsZWRCeV0nOiAnbGFiZWxsZWRCeSgpJyxcblx0XHQnW2F0dHIuYXJpYS1jb250cm9sbGVkQnldJzogXCJpZCgpICsnLS10cmlnZ2VyJ1wiLFxuXHRcdCdbaWRdJzogXCJpZCgpICsgJy0tY29udGVudCdcIixcblx0XHQnW2F0dHIuZGlyXSc6ICdfc2VsZWN0U2VydmljZS5kaXIoKScsXG5cdH0sXG5cdHN0eWxlczogW1xuXHRcdGBcblx0XHRcdDpob3N0IHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0b3V0bGluZTogbm9uZTtcblx0XHRcdFx0cG9pbnRlci1ldmVudHM6IGF1dG87XG5cdFx0XHR9XG5cblx0XHRcdFtkYXRhLWJybi1zZWxlY3Qtdmlld3BvcnRdIHtcblx0XHRcdFx0c2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuXHRcdFx0XHQtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG5cdFx0XHRcdC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblx0XHRcdH1cblxuXHRcdFx0W2RhdGEtYnJuLXNlbGVjdC12aWV3cG9ydF06Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHRgLFxuXHRdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy10ZW1wbGF0ZSAjc2Nyb2xsVXA+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJobG0tc2VsZWN0LXNjcm9sbC11cFwiIC8+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJicm5TZWxlY3RTY3JvbGxVcFwiIC8+XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FuU2Nyb2xsVXAoKSAmJiBzY3JvbGxVcEJ0bigpID8gc2Nyb2xsVXAgOiBudWxsXCIgLz5cblx0XHQ8ZGl2XG5cdFx0XHRkYXRhLWJybi1zZWxlY3Qtdmlld3BvcnRcblx0XHRcdCN2aWV3cG9ydFxuXHRcdFx0KHNjcm9sbCk9XCJoYW5kbGVTY3JvbGwoKVwiXG5cdFx0XHRzdHlsZT1cImZsZXg6IDEgMSAwJTtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRvdmVyZmxvdzphdXRvO1xuXHRcdFx0bWluLWhlaWdodDogMzZweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAycHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtMnB4O1wiXG5cdFx0PlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L2Rpdj5cblx0XHQ8bmctdGVtcGxhdGUgI3Njcm9sbERvd24+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJicm5TZWxlY3RTY3JvbGxEb3duXCIgLz5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cImhsbS1zZWxlY3Qtc2Nyb2xsLWRvd25cIiAvPlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhblNjcm9sbERvd24oKSAmJiBzY3JvbGxEb3duQnRuKCkgPyBzY3JvbGxEb3duIDogbnVsbFwiIC8+XG5cdGAsXG59KVxuZXhwb3J0IGNsYXNzIEJyblNlbGVjdENvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblx0cHJpdmF0ZSByZWFkb25seSBfZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+ID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9jZGtMaXN0Ym94ID0gaW5qZWN0KENka0xpc3Rib3gsIHsgaG9zdDogdHJ1ZSB9KTtcblx0cHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9zZWxlY3RTZXJ2aWNlID0gaW5qZWN0KEJyblNlbGVjdFNlcnZpY2UpO1xuXG5cdHByb3RlY3RlZCByZWFkb25seSBsYWJlbGxlZEJ5ID0gdGhpcy5fc2VsZWN0U2VydmljZS5sYWJlbElkO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgaWQgPSB0aGlzLl9zZWxlY3RTZXJ2aWNlLmlkO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuU2Nyb2xsVXAgPSBzaWduYWwoZmFsc2UpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuU2Nyb2xsRG93biA9IHNpZ25hbChmYWxzZSk7XG5cblx0cHJvdGVjdGVkIGluaXRpYWxTZWxlY3RlZE9wdGlvbnMkID0gdG9PYnNlcnZhYmxlKHRoaXMuX3NlbGVjdFNlcnZpY2Uuc2VsZWN0ZWRPcHRpb25zKTtcblxuXHRwcm90ZWN0ZWQgdmlld3BvcnQgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCd2aWV3cG9ydCcpO1xuXG5cdHByb3RlY3RlZCBzY3JvbGxVcEJ0biA9IGNvbnRlbnRDaGlsZChCcm5TZWxlY3RTY3JvbGxVcERpcmVjdGl2ZSk7XG5cblx0cHJvdGVjdGVkIHNjcm9sbERvd25CdG4gPSBjb250ZW50Q2hpbGQoQnJuU2VsZWN0U2Nyb2xsRG93bkRpcmVjdGl2ZSk7XG5cblx0cHJvdGVjdGVkIF9vcHRpb25zID0gY29udGVudENoaWxkcmVuKEJyblNlbGVjdE9wdGlvbkRpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLl9jZGtMaXN0Ym94LnZhbHVlQ2hhbmdlXG5cdFx0XHQuYXNPYnNlcnZhYmxlKClcblx0XHRcdC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuXHRcdFx0LnN1YnNjcmliZSgodmFsOiBMaXN0Ym94VmFsdWVDaGFuZ2VFdmVudDx1bmtub3duPikgPT4gdGhpcy5fc2VsZWN0U2VydmljZS5saXN0Qm94VmFsdWVDaGFuZ2VFdmVudCQubmV4dCh2YWwpKTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHR0aGlzLl9jZGtMaXN0Ym94Lm11bHRpcGxlID0gdGhpcy5fc2VsZWN0U2VydmljZS5tdWx0aXBsZSgpO1xuXHRcdFx0dGhpcy5fc2VsZWN0U2VydmljZS5pc0V4cGFuZGVkKCkgJiYgc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUFycm93RGlzcGxheSgpKTtcblx0XHR9KTtcblx0fVxuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLnNldEluaXRpYWxseVNlbGVjdGVkT3B0aW9ucygpO1xuXHR9XG5cblx0cHJpdmF0ZSBzZXRJbml0aWFsbHlTZWxlY3RlZE9wdGlvbnMoKSB7XG5cdFx0dGhpcy5pbml0aWFsU2VsZWN0ZWRPcHRpb25zJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChzZWxlY3RlZE9wdGlvbnMpID0+IHtcblx0XHRcdC8vIFJlYXBwbHlpbmcgY2RrTGlic3Rib3ggbXVsdGlwbGUgYmVjYXVzZSBzZWVtcyB0aGlzIGlzIHJ1bm5pbmcgYmVmb3JlIGVmZmVjdCB0aGF0XG5cdFx0XHQvLyB1cGRhdGVzIGNka2xpc3Rib3gsIHJlYXBwbHlpbmcgbXVsdGlwbGUgdHJ1ZSBzbyB3ZSBjYW4gc2V0IHRoZSBtdWx0aXBsZSBpbml0aWFsIG9wdGlvbnNcblx0XHRcdGlmICh0aGlzLl9zZWxlY3RTZXJ2aWNlLm11bHRpcGxlKCkpIHtcblx0XHRcdFx0dGhpcy5fY2RrTGlzdGJveC5tdWx0aXBsZSA9IHRydWU7XG5cdFx0XHR9XG5cblx0XHRcdGZvciAoY29uc3QgY2RrT3B0aW9uIG9mIHRoaXMuX3NlbGVjdFNlcnZpY2UucG9zc2libGVPcHRpb25zKCkpIHtcblx0XHRcdFx0aWYgKHNlbGVjdGVkT3B0aW9ucy5pbmNsdWRlcyhjZGtPcHRpb24pKSB7XG5cdFx0XHRcdFx0Y2RrT3B0aW9uPy5zZWxlY3QoKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjZGtPcHRpb24/LmRlc2VsZWN0KCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Zm9yIChjb25zdCBjZGtPcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zKSB7XG5cdFx0XHRcdGNka09wdGlvbj8uc2VsZWN0KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgdXBkYXRlQXJyb3dEaXNwbGF5KCk6IHZvaWQge1xuXHRcdGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gdGhpcy52aWV3cG9ydCgpLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0dGhpcy5jYW5TY3JvbGxVcC5zZXQoc2Nyb2xsVG9wID4gMCk7XG5cdFx0Y29uc3QgbWF4U2Nyb2xsID0gc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0O1xuXHRcdHRoaXMuY2FuU2Nyb2xsRG93bi5zZXQoTWF0aC5jZWlsKHNjcm9sbFRvcCkgPCBtYXhTY3JvbGwpO1xuXHR9XG5cblx0cHVibGljIGhhbmRsZVNjcm9sbCgpIHtcblx0XHR0aGlzLnVwZGF0ZUFycm93RGlzcGxheSgpO1xuXHR9XG5cblx0cHVibGljIGZvY3VzTGlzdCgpOiB2b2lkIHtcblx0XHR0aGlzLl9jZGtMaXN0Ym94LmZvY3VzKCk7XG5cdH1cblxuXHRwdWJsaWMgbW92ZUZvY3VzVXAoKSB7XG5cdFx0dGhpcy52aWV3cG9ydCgpLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsQnkoeyB0b3A6IC1TQ1JPTExCWV9QSVhFTFMsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcblx0XHRpZiAodGhpcy52aWV3cG9ydCgpLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID09PSAwKSB7XG5cdFx0XHR0aGlzLnNjcm9sbFVwQnRuKCk/LnN0b3BFbWl0dGluZ0V2ZW50cygpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBtb3ZlRm9jdXNEb3duKCkge1xuXHRcdHRoaXMudmlld3BvcnQoKS5uYXRpdmVFbGVtZW50LnNjcm9sbEJ5KHsgdG9wOiBTQ1JPTExCWV9QSVhFTFMsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcblx0XHRjb25zdCB2aWV3cG9ydFNpemUgPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcblx0XHRjb25zdCB2aWV3cG9ydFNjcm9sbFBvc2l0aW9uID0gdGhpcy52aWV3cG9ydCgpLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wO1xuXHRcdGlmIChcblx0XHRcdHZpZXdwb3J0U2l6ZSArIHZpZXdwb3J0U2Nyb2xsUG9zaXRpb24gKyBTQ1JPTExCWV9QSVhFTFMgPlxuXHRcdFx0dGhpcy52aWV3cG9ydCgpLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICsgU0NST0xMQllfUElYRUxTIC8gMlxuXHRcdCkge1xuXHRcdFx0dGhpcy5zY3JvbGxEb3duQnRuKCk/LnN0b3BFbWl0dGluZ0V2ZW50cygpO1xuXHRcdH1cblx0fVxufVxuIl19
@@ -228,7 +228,7 @@ export class BrnSelectComponent {
228
228
  if (index > 0) {
229
229
  this.handleInvalidOptions(options);
230
230
  }
231
- this.updatePossibleOptions(options);
231
+ this._selectService.updatePossibleOptions(options);
232
232
  });
233
233
  }
234
234
  /**
@@ -239,41 +239,26 @@ export class BrnSelectComponent {
239
239
  const availableOptionSet = new Set(options);
240
240
  if (this._selectService.multiple()) {
241
241
  const filteredOptions = selectedOptions.filter((o) => availableOptionSet.has(o));
242
- // only update if there was an actual change
243
242
  if (selectedOptions.length !== filteredOptions.length) {
244
- // update should result in a value change since we are deselecting a value
245
- this._shouldEmitValueChange.set(true);
246
243
  const value = filteredOptions.map((o) => o?.value ?? '');
247
244
  this._selectService.state.update((state) => ({
248
245
  ...state,
249
246
  selectedOptions: filteredOptions,
250
247
  value: value,
251
248
  }));
252
- this._onChange((value ?? null));
253
249
  }
254
250
  }
255
251
  else {
256
252
  const selectedOption = selectedOptions[0] ?? null;
257
253
  if (selectedOption !== null && !availableOptionSet.has(selectedOption)) {
258
- this._shouldEmitValueChange.set(true);
259
254
  this._selectService.state.update((state) => ({
260
255
  ...state,
261
256
  selectedOptions: [],
262
257
  value: '',
263
258
  }));
264
- this._onChange('');
265
259
  }
266
260
  }
267
261
  }
268
- /**
269
- * Sync the updated options with "possibleOptions" in the select service
270
- */
271
- updatePossibleOptions(options) {
272
- this._selectService.state.update((state) => ({
273
- ...state,
274
- possibleOptions: options,
275
- }));
276
- }
277
262
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
278
263
  /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: BrnSelectComponent, isStandalone: true, selector: "brn-select, hlm-select", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, closeDelay: { classPropertyName: "closeDelay", publicName: "closeDelay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openedChange: "openedChange" }, providers: [
279
264
  BrnSelectService,
@@ -356,4 +341,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
356
341
  `,
357
342
  }]
358
343
  }], ctorParameters: () => [] });
359
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvbGliL2Jybi1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0UsT0FBTyxFQUNOLG1CQUFtQixFQUduQixhQUFhLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBRU4sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFHVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEYsT0FBTyxFQUE2QixrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEcsT0FBTyxFQUdOLGtDQUFrQyxFQUNsQyxtQ0FBbUMsR0FDbkMsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQVksaUJBQWlCLEVBQUUsaUJBQWlCLEVBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlC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RUFBQyxHQUFHLEVBQUUsbUJBQW1CLEVBQUM7d0JBQzdEOzRCQUNDLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsb0JBQW9CO3lCQUMvQjtxQkFDRDtvQkFDRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5QlQ7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtMaXN0Ym94LCBDZGtMaXN0Ym94TW9kdWxlLCBDZGtPcHRpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvbGlzdGJveCc7XG5pbXBvcnQge1xuXHRDZGtDb25uZWN0ZWRPdmVybGF5LFxuXHR0eXBlIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSxcblx0dHlwZSBDb25uZWN0ZWRQb3NpdGlvbixcblx0T3ZlcmxheU1vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcblx0QWZ0ZXJDb250ZW50SW5pdCxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0dHlwZSBEb0NoZWNrLFxuXHR0eXBlIFNpZ25hbCxcblx0Y29tcHV0ZWQsXG5cdGNvbnRlbnRDaGlsZCxcblx0Y29udGVudENoaWxkcmVuLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHRvdXRwdXQsXG5cdHNpZ25hbCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IHR5cGUgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuXHR0eXBlIEV4cG9zZXNTaWRlLFxuXHR0eXBlIEV4cG9zZXNTdGF0ZSxcblx0cHJvdmlkZUV4cG9zZWRTaWRlUHJvdmlkZXJFeGlzdGluZyxcblx0cHJvdmlkZUV4cG9zZXNTdGF0ZVByb3ZpZGVyRXhpc3RpbmcsXG59IGZyb20gJ0BzcGFydGFuLW5nL2JyYWluL2NvcmUnO1xuaW1wb3J0IHsgQnJuRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0BzcGFydGFuLW5nL2JyYWluL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgQ2hhbmdlRm4sIEVycm9yU3RhdGVNYXRjaGVyLCBFcnJvclN0YXRlVHJhY2tlciwgVG91Y2hGbiB9IGZyb20gJ0BzcGFydGFuLW5nL2JyYWluL2Zvcm1zJztcbmltcG9ydCB7IEJybkxhYmVsRGlyZWN0aXZlIH0gZnJvbSAnQHNwYXJ0YW4tbmcvYnJhaW4vbGFiZWwnO1xuaW1wb3J0IHsgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJyblNlbGVjdENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2Jybi1zZWxlY3QtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJuU2VsZWN0U2VydmljZSB9IGZyb20gJy4vYnJuLXNlbGVjdC5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgQnJuUmVhZERpcmVjdGlvbiA9ICdsdHInIHwgJ3J0bCc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdicm4tc2VsZWN0LCBobG0tc2VsZWN0Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW092ZXJsYXlNb2R1bGUsIENka0xpc3Rib3hNb2R1bGVdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0cHJvdmlkZXJzOiBbXG5cdFx0QnJuU2VsZWN0U2VydmljZSxcblx0XHRDZGtMaXN0Ym94LFxuXHRcdHByb3ZpZGVFeHBvc2VkU2lkZVByb3ZpZGVyRXhpc3RpbmcoKCkgPT4gQnJuU2VsZWN0Q29tcG9uZW50KSxcblx0XHRwcm92aWRlRXhwb3Nlc1N0YXRlUHJvdmlkZXJFeGlzdGluZygoKSA9PiBCcm5TZWxlY3RDb21wb25lbnQpLFxuXHRcdHtcblx0XHRcdHByb3ZpZGU6IEJybkZvcm1GaWVsZENvbnRyb2wsXG5cdFx0XHR1c2VFeGlzdGluZzogQnJuU2VsZWN0Q29tcG9uZW50LFxuXHRcdH0sXG5cdF0sXG5cdHRlbXBsYXRlOiBgXG5cdFx0QGlmICghbGFiZWxQcm92aWRlZCgpICYmIHBsYWNlaG9sZGVyKCkpIHtcblx0XHRcdDxsYWJlbCBjbGFzcz1cImhpZGRlblwiIFthdHRyLmlkXT1cImJhY2t1cExhYmVsSWQoKVwiPnt7IHBsYWNlaG9sZGVyKCkgfX08L2xhYmVsPlxuXHRcdH0gQGVsc2Uge1xuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwibGFiZWxbaGxtTGFiZWxdLGxhYmVsW2JybkxhYmVsXVwiIC8+XG5cdFx0fVxuXG5cdFx0PGRpdiBjZGstb3ZlcmxheS1vcmlnaW4gKGNsaWNrKT1cInRvZ2dsZSgpXCIgI3RyaWdnZXI9XCJjZGtPdmVybGF5T3JpZ2luXCI+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJobG0tc2VsZWN0LXRyaWdnZXIsW2JyblNlbGVjdFRyaWdnZXJdXCIgLz5cblx0XHQ8L2Rpdj5cblx0XHQ8bmctdGVtcGxhdGVcblx0XHRcdGNkay1jb25uZWN0ZWQtb3ZlcmxheVxuXHRcdFx0Y2RrQ29ubmVjdGVkT3ZlcmxheUxvY2tQb3NpdGlvblxuXHRcdFx0Y2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXG5cdFx0XHRjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcz1cImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCJcblx0XHRcdFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cInRyaWdnZXJcIlxuXHRcdFx0W2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cIl9kZWxheWVkRXhwYW5kZWQoKVwiXG5cdFx0XHRbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJfcG9zaXRpb25zXCJcblx0XHRcdFtjZGtDb25uZWN0ZWRPdmVybGF5V2lkdGhdPVwidHJpZ2dlcldpZHRoKCkgPiAwID8gdHJpZ2dlcldpZHRoKCkgOiAnYXV0bydcIlxuXHRcdFx0KGJhY2tkcm9wQ2xpY2spPVwiY2xvc2UoKVwiXG5cdFx0XHQoZGV0YWNoKT1cImNsb3NlKClcIlxuXHRcdFx0KHBvc2l0aW9uQ2hhbmdlKT1cIl9wb3NpdGlvbkNoYW5nZXMkLm5leHQoJGV2ZW50KVwiXG5cdFx0PlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRgLFxufSlcbmV4cG9ydCBjbGFzcyBCcm5TZWxlY3RDb21wb25lbnQ8VCA9IHVua25vd24+XG5cdGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyQ29udGVudEluaXQsIERvQ2hlY2ssIEV4cG9zZXNTaWRlLCBFeHBvc2VzU3RhdGUsIEJybkZvcm1GaWVsZENvbnRyb2xcbntcblx0cHJpdmF0ZSByZWFkb25seSBfc2VsZWN0U2VydmljZSA9IGluamVjdChCcm5TZWxlY3RTZXJ2aWNlKTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgdHJpZ2dlcldpZHRoID0gdGhpcy5fc2VsZWN0U2VydmljZS50cmlnZ2VyV2lkdGg7XG5cblx0cHVibGljIHJlYWRvbmx5IG11bHRpcGxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXHRwdWJsaWMgcmVhZG9ubHkgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcblx0cHVibGljIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXHRwdWJsaWMgcmVhZG9ubHkgZGlyID0gaW5wdXQ8QnJuUmVhZERpcmVjdGlvbj4oJ2x0cicpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9kaXNhYmxlZEZyb21TZXREaXNhYmxlZFN0YXRlID0gc2lnbmFsKGZhbHNlKTtcblxuXHRwcm90ZWN0ZWQgc2VsZWN0TGFiZWwgPSBjb250ZW50Q2hpbGQoQnJuTGFiZWxEaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pO1xuXHQvKiogT3ZlcmxheSBwYW5lIGNvbnRhaW5pbmcgdGhlIG9wdGlvbnMuICovXG5cdHByb3RlY3RlZCBzZWxlY3RDb250ZW50ID0gY29udGVudENoaWxkLnJlcXVpcmVkKEJyblNlbGVjdENvbnRlbnRDb21wb25lbnQpO1xuXG5cdHByb3RlY3RlZCBvcHRpb25zID0gY29udGVudENoaWxkcmVuKENka09wdGlvbiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcblx0cHJvdGVjdGVkIG9wdGlvbnMkID0gdG9PYnNlcnZhYmxlKHRoaXMub3B0aW9ucyk7XG5cdHByb3RlY3RlZCBvcHRpb25zQW5kSW5kZXgkID0gdGhpcy5vcHRpb25zJC5waXBlKG1hcCgob3B0aW9ucywgaW5kZXgpID0+IFtvcHRpb25zLCBpbmRleF0gYXMgY29uc3QpKTtcblxuXHQvKiogT3ZlcmxheSBwYW5lIGNvbnRhaW5pbmcgdGhlIG9wdGlvbnMuICovXG5cdHByb3RlY3RlZCBfb3ZlcmxheURpciA9IHZpZXdDaGlsZChDZGtDb25uZWN0ZWRPdmVybGF5KTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgb3BlbmVkQ2hhbmdlID0gb3V0cHV0PGJvb2xlYW4+KCk7XG5cblx0cHVibGljIHJlYWRvbmx5IGNsb3NlRGVsYXkgPSBpbnB1dDxudW1iZXI+KDEwMCk7XG5cdHB1YmxpYyByZWFkb25seSBpc0V4cGFuZGVkID0gdGhpcy5fc2VsZWN0U2VydmljZS5pc0V4cGFuZGVkO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX2RlbGF5ZWRFeHBhbmRlZCA9IHRvU2lnbmFsKFxuXHRcdHRvT2JzZXJ2YWJsZSh0aGlzLmlzRXhwYW5kZWQpLnBpcGUoXG5cdFx0XHRzd2l0Y2hNYXAoKGV4cGFuZGVkKSA9PiAoIWV4cGFuZGVkID8gb2YoZXhwYW5kZWQpLnBpcGUoZGVsYXkodGhpcy5jbG9zZURlbGF5KCkpKSA6IG9mKGV4cGFuZGVkKSkpLFxuXHRcdFx0dGFrZVVudGlsRGVzdHJveWVkKCksXG5cdFx0KSxcblx0XHR7IGluaXRpYWxWYWx1ZTogZmFsc2UgfSxcblx0KTtcblx0cHVibGljIHJlYWRvbmx5IHN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuaXNFeHBhbmRlZCgpID8gJ29wZW4nIDogJ2Nsb3NlZCcpKTtcblxuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX3Bvc2l0aW9uQ2hhbmdlcyQgPSBuZXcgU3ViamVjdDxDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2U+KCk7XG5cdHB1YmxpYyByZWFkb25seSBzaWRlOiBTaWduYWw8J3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCc+ID0gdG9TaWduYWwoXG5cdFx0dGhpcy5fcG9zaXRpb25DaGFuZ2VzJC5waXBlKFxuXHRcdFx0bWFwPENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSwgJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCc+KChjaGFuZ2UpID0+XG5cdFx0XHRcdC8vIHRvZG86IGJldHRlciB0cmFuc2xhdGlvbiBvciBhZGp1c3RpbmcgaGxtIHRvIHRha2UgdGhhdCBpbnRvIGFjY291bnRcblx0XHRcdFx0Y2hhbmdlLmNvbm5lY3Rpb25QYWlyLm9yaWdpblkgPT09ICdjZW50ZXInXG5cdFx0XHRcdFx0PyBjaGFuZ2UuY29ubmVjdGlvblBhaXIub3JpZ2luWCA9PT0gJ3N0YXJ0J1xuXHRcdFx0XHRcdFx0PyAnbGVmdCdcblx0XHRcdFx0XHRcdDogJ3JpZ2h0J1xuXHRcdFx0XHRcdDogY2hhbmdlLmNvbm5lY3Rpb25QYWlyLm9yaWdpblksXG5cdFx0XHQpLFxuXHRcdCksXG5cdFx0eyBpbml0aWFsVmFsdWU6ICdib3R0b20nIH0sXG5cdCk7XG5cblx0cHVibGljIHJlYWRvbmx5IGJhY2t1cExhYmVsSWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9zZWxlY3RTZXJ2aWNlLmxhYmVsSWQoKSk7XG5cdHB1YmxpYyByZWFkb25seSBsYWJlbFByb3ZpZGVkID0gc2lnbmFsKGZhbHNlKTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgbmdDb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwgeyBvcHRpb25hbDogdHJ1ZSwgc2VsZjogdHJ1ZSB9KTtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG5cdHByaXZhdGUgX29uQ2hhbmdlOiBDaGFuZ2VGbjxUPiA9ICgpID0+IHt9O1xuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG5cdHByaXZhdGUgX29uVG91Y2hlZDogVG91Y2hGbiA9ICgpID0+IHt9O1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX3Nob3VsZEVtaXRWYWx1ZUNoYW5nZSA9IHNpZ25hbChmYWxzZSk7XG5cblx0Lypcblx0ICogVGhpcyBwb3NpdGlvbiBjb25maWcgZW5zdXJlcyB0aGF0IHRoZSB0b3AgXCJzdGFydFwiIGNvcm5lciBvZiB0aGUgb3ZlcmxheVxuXHQgKiBpcyBhbGlnbmVkIHdpdGggd2l0aCB0aGUgdG9wIFwic3RhcnRcIiBvZiB0aGUgb3JpZ2luIGJ5IGRlZmF1bHQgKG92ZXJsYXBwaW5nXG5cdCAqIHRoZSB0cmlnZ2VyIGNvbXBsZXRlbHkpLiBJZiB0aGUgcGFuZWwgY2Fubm90IGZpdCBiZWxvdyB0aGUgdHJpZ2dlciwgaXRcblx0ICogd2lsbCBmYWxsIGJhY2sgdG8gYSBwb3NpdGlvbiBhYm92ZSB0aGUgdHJpZ2dlci5cblx0ICovXG5cdHByb3RlY3RlZCBfcG9zaXRpb25zOiBDb25uZWN0ZWRQb3NpdGlvbltdID0gW1xuXHRcdHtcblx0XHRcdG9yaWdpblg6ICdzdGFydCcsXG5cdFx0XHRvcmlnaW5ZOiAnYm90dG9tJyxcblx0XHRcdG92ZXJsYXlYOiAnc3RhcnQnLFxuXHRcdFx0b3ZlcmxheVk6ICd0b3AnLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0b3JpZ2luWDogJ2VuZCcsXG5cdFx0XHRvcmlnaW5ZOiAnYm90dG9tJyxcblx0XHRcdG92ZXJsYXlYOiAnZW5kJyxcblx0XHRcdG92ZXJsYXlZOiAndG9wJyxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG9yaWdpblg6ICdzdGFydCcsXG5cdFx0XHRvcmlnaW5ZOiAndG9wJyxcblx0XHRcdG92ZXJsYXlYOiAnc3RhcnQnLFxuXHRcdFx0b3ZlcmxheVk6ICdib3R0b20nLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0b3JpZ2luWDogJ2VuZCcsXG5cdFx0XHRvcmlnaW5ZOiAndG9wJyxcblx0XHRcdG92ZXJsYXlYOiAnZW5kJyxcblx0XHRcdG92ZXJsYXlZOiAnYm90dG9tJyxcblx0XHR9LFxuXHRdO1xuXG5cdHB1YmxpYyBlcnJvclN0YXRlVHJhY2tlcjogRXJyb3JTdGF0ZVRyYWNrZXI7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyID0gaW5qZWN0KEVycm9yU3RhdGVNYXRjaGVyKTtcblx0cHJpdmF0ZSByZWFkb25seSBfcGFyZW50Rm9ybSA9IGluamVjdChOZ0Zvcm0sIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudEZvcm1Hcm91cCA9IGluamVjdChGb3JtR3JvdXBEaXJlY3RpdmUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cblx0cHVibGljIGVycm9yU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmVycm9yU3RhdGVUcmFja2VyLmVycm9yU3RhdGUoKSk7XG5cblx0cHVibGljIHdyaXRlVmFsdWUkID0gbmV3IFN1YmplY3Q8VD4oKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLnN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG5cdFx0XHQuLi5zdGF0ZSxcblx0XHRcdG11bHRpcGxlOiB0aGlzLm11bHRpcGxlLFxuXHRcdFx0cGxhY2Vob2xkZXI6IHRoaXMucGxhY2Vob2xkZXIsXG5cdFx0XHRkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCxcblx0XHRcdGRpc2FibGVkQnlTZXREaXNhYmxlZDogdGhpcy5fZGlzYWJsZWRGcm9tU2V0RGlzYWJsZWRTdGF0ZSxcblx0XHRcdGRpcjogdGhpcy5kaXIsXG5cdFx0fSkpO1xuXHRcdHRoaXMuaGFuZGxlT3B0aW9uQ2hhbmdlcygpO1xuXHRcdHRoaXMuaGFuZGxlSW5pdGlhbE9wdGlvblNlbGVjdCgpO1xuXG5cdFx0dGhpcy5fc2VsZWN0U2VydmljZS5zdGF0ZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuXHRcdFx0Li4uc3RhdGUsXG5cdFx0XHRpZDogYGJybi1zZWxlY3QtJHtuZXh0SWQrK31gLFxuXHRcdH0pKTtcblx0XHRpZiAodGhpcy5uZ0NvbnRyb2wgIT09IG51bGwpIHtcblx0XHRcdHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuXHRcdH1cblxuXHRcdC8vIFdhdGNoIGZvciBMaXN0Ym94IFNlbGVjdGlvbiBDaGFuZ2VzIHRvIHRyaWdnZXIgQ29sbGFwc2UgYW5kIFZhbHVlIENoYW5nZVxuXHRcdHRoaXMuX3NlbGVjdFNlcnZpY2UubGlzdEJveFZhbHVlQ2hhbmdlRXZlbnQkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRpZiAoIXRoaXMubXVsdGlwbGUoKSkge1xuXHRcdFx0XHR0aGlzLmNsb3NlKCk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIHdlIHNldCBzaG91bGRFbWl0VmFsdWVDaGFuZ2UgdG8gdHJ1ZSBiZWNhdXNlIHdlIHdhbnQgdG8gcHJvcGFnYXRlIHRoZSB2YWx1ZSBjaGFuZ2Vcblx0XHRcdC8vIGFzIGEgcmVzdWx0IG9mIHVzZXIgaW50ZXJhY3Rpb25cblx0XHRcdHRoaXMuX3Nob3VsZEVtaXRWYWx1ZUNoYW5nZS5zZXQodHJ1ZSk7XG5cdFx0fSk7XG5cblx0XHQvKipcblx0XHQgKiBMaXN0ZW5pbmcgdG8gdmFsdWUgY2hhbmdlcyBpbiBvcmRlciB0byB0cmlnZ2VyIGZvcm1zIGFwaSBvbiBjaGFuZ2Vcblx0XHQgKiBTaG91bGRFbWl0VmFsdWVDaGFuZ2Ugc2ltcGx5IGVuc3VyZXMgd2Ugb25seSBwcm9wYWdhdGUgdmFsdWUgY2hhbmdlIHdoZW4gYSB1c2VyIG1ha2VzIGEgc2VsZWN0aW9uXG5cdFx0ICogd2UgZG9uJ3QgcHJvcGFnYXRlIGNoYW5nZXMgbWFkZSBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCAoZXguIHBhdGNoIHZhbHVlIG9yIGluaXRpYWwgdmFsdWUgZnJvbSBmb3JtIGNvbnRyb2wpXG5cdFx0ICovXG5cdFx0dG9PYnNlcnZhYmxlKHRoaXMuX3NlbGVjdFNlcnZpY2UudmFsdWUpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGlmICh0aGlzLl9zaG91bGRFbWl0VmFsdWVDaGFuZ2UoKSkge1xuXHRcdFx0XHR0aGlzLl9vbkNoYW5nZSgodmFsdWUgPz8gbnVsbCkgYXMgVCk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9zaG91bGRFbWl0VmFsdWVDaGFuZ2Uuc2V0KHRydWUpO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5lcnJvclN0YXRlVHJhY2tlciA9IG5ldyBFcnJvclN0YXRlVHJhY2tlcihcblx0XHRcdHRoaXMuX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcixcblx0XHRcdHRoaXMubmdDb250cm9sLFxuXHRcdFx0dGhpcy5fcGFyZW50Rm9ybUdyb3VwLFxuXHRcdFx0dGhpcy5fcGFyZW50Rm9ybSxcblx0XHQpO1xuXHR9XG5cblx0cHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcblx0XHQvLyBDaGVjayBpZiBMYWJlbCBEaXJlY3RpdmUgUHJvdmlkZWQgYW5kIHBhc3MgdG8gc2VydmljZVxuXHRcdGNvbnN0IGxhYmVsID0gdGhpcy5zZWxlY3RMYWJlbCgpO1xuXHRcdGlmIChsYWJlbCkge1xuXHRcdFx0dGhpcy5sYWJlbFByb3ZpZGVkLnNldCh0cnVlKTtcblx0XHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdFx0Li4uc3RhdGUsXG5cdFx0XHRcdGxhYmVsSWQ6IGxhYmVsLmlkKCksXG5cdFx0XHR9KSk7XG5cdFx0fSBlbHNlIGlmICh0aGlzLnBsYWNlaG9sZGVyKCkpIHtcblx0XHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdFx0Li4uc3RhdGUsXG5cdFx0XHRcdGxhYmVsSWQ6IGAke3N0YXRlLmlkfS0tbGFiZWxgLFxuXHRcdFx0fSkpO1xuXHRcdH1cblx0fVxuXG5cdG5nRG9DaGVjaygpIHtcblx0XHR0aGlzLmVycm9yU3RhdGVUcmFja2VyLnVwZGF0ZUVycm9yU3RhdGUoKTtcblx0fVxuXG5cdHB1YmxpYyB0b2dnbGUoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuaXNFeHBhbmRlZCgpKSB7XG5cdFx0XHR0aGlzLmNsb3NlKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMub3BlbigpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuXHRcdGlmICghdGhpcy5fY2FuT3BlbigpKSByZXR1cm47XG5cdFx0dGhpcy5fc2VsZWN0U2VydmljZS5zdGF0ZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuXHRcdFx0Li4uc3RhdGUsXG5cdFx0XHRpc0V4cGFuZGVkOiB0cnVlLFxuXHRcdH0pKTtcblx0XHR0aGlzLm9wZW5lZENoYW5nZS5lbWl0KHRydWUpO1xuXHRcdHRoaXMuX21vdmVGb2N1c1RvQ0RLTGlzdCgpO1xuXHR9XG5cblx0cHVibGljIGNsb3NlKCk6IHZvaWQge1xuXHRcdGlmICghdGhpcy5pc0V4cGFuZGVkKCkpIHJldHVybjtcblxuXHRcdGlmICh0aGlzLl9zZWxlY3RTZXJ2aWNlLnNlbGVjdFRyaWdnZXIpIHtcblx0XHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc2VsZWN0VHJpZ2dlci5mb2N1cygpO1xuXHRcdH1cblxuXHRcdHRoaXMub3BlbmVkQ2hhbmdlLmVtaXQoZmFsc2UpO1xuXHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0aXNFeHBhbmRlZDogZmFsc2UsXG5cdFx0fSkpO1xuXHRcdHRoaXMuX29uVG91Y2hlZCgpO1xuXHR9XG5cblx0cHJvdGVjdGVkIF9jYW5PcGVuKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAhdGhpcy5pc0V4cGFuZGVkKCkgJiYgIXRoaXMuZGlzYWJsZWQoKSAmJiB0aGlzLm9wdGlvbnMoKT8ubGVuZ3RoID4gMDtcblx0fVxuXG5cdHByaXZhdGUgX21vdmVGb2N1c1RvQ0RLTGlzdCgpOiB2b2lkIHtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMuc2VsZWN0Q29udGVudCgpPy5mb2N1c0xpc3QoKTtcblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG5cdFx0dGhpcy53cml0ZVZhbHVlJC5uZXh0KHZhbHVlKTtcblx0fVxuXG5cdHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBDaGFuZ2VGbjxUPik6IHZvaWQge1xuXHRcdHRoaXMuX29uQ2hhbmdlID0gZm47XG5cdH1cblxuXHRwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IFRvdWNoRm4pOiB2b2lkIHtcblx0XHR0aGlzLl9vblRvdWNoZWQgPSBmbjtcblx0fVxuXG5cdHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcblx0XHR0aGlzLl9kaXNhYmxlZEZyb21TZXREaXNhYmxlZFN0YXRlLnNldChpc0Rpc2FibGVkKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBPbmNlIHdyaXRlVmFsdWUgaXMgY2FsbGVkIGFuZCBvcHRpb25zIGFyZSBhdmFpbGFibGUgd2UgY2FuIGhhbmRsZSBzZXR0aW5nIHRoZSBpbml0aWFsIG9wdGlvbnNcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHByaXZhdGUgaGFuZGxlSW5pdGlhbE9wdGlvblNlbGVjdCgpIHtcblx0XHQvLyBXcml0ZSB2YWx1ZSBjYW5ub3QgYmUgaGFuZGxlZCB1bnRpbCBvcHRpb25zIGFyZSBhdmFpbGFibGUsIHNvIHdlIHdhaXQgdW50aWwgYm90aCBhcmUgYXZhaWxhYmxlIHdpdGggYSBjb21iaW5lTGF0ZXN0XG5cdFx0Y29tYmluZUxhdGVzdChbdGhpcy53cml0ZVZhbHVlJCwgdGhpcy5vcHRpb25zJF0pXG5cdFx0XHQucGlwZShcblx0XHRcdFx0bWFwKCh2YWx1ZXMsIGluZGV4KSA9PiBbLi4udmFsdWVzLCBpbmRleF0pLFxuXHRcdFx0XHR0YWtlVW50aWxEZXN0cm95ZWQoKSxcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoKFt2YWx1ZSwgXywgaW5kZXhdKSA9PiB7XG5cdFx0XHRcdHRoaXMuX3Nob3VsZEVtaXRWYWx1ZUNoYW5nZS5zZXQoZmFsc2UpO1xuXHRcdFx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLnNldEluaXRpYWxTZWxlY3RlZE9wdGlvbnModmFsdWUpO1xuXHRcdFx0XHQvLyB0aGUgZmlyc3QgdGltZSB0aGlzIG9ic2VydmFibGUgZW1pdHMgYSB2YWx1ZSB3ZSBhcmUgc2ltcGx5IHNldHRpbmcgdGhlIGluaXRpYWwgc3RhdGVcblx0XHRcdFx0Ly8gdGhpcyBjaGFuZ2Ugc2hvdWxkIG5vdCBjb3VudCBhcyBjaGFuZ2luZyB0aGUgc3RhdGUgb2YgdGhlIHNlbGVjdCwgc28gd2UgbmVlZCB0byBtYXJrIGFzIHByaXN0aW5lXG5cdFx0XHRcdGlmIChpbmRleCA9PT0gMCkge1xuXHRcdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5tYXJrQXNQcmlzdGluZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaGVuIG9wdGlvbnMgY2hhbmdlLCBvdXIgY3VycmVudCBzZWxlY3RlZCBvcHRpb25zIG1heSBiZWNvbWUgaW52YWxpZFxuXHQgKiBIZXJlIHdlIHdpbGwgYXV0b21hdGljYWxseSB1cGRhdGUgb3VyIGN1cnJlbnQgc2VsZWN0ZWQgb3B0aW9ucyBzbyB0aGF0IHRoZXkgYXJlIGFsd2F5cyBpbmxpbmUgd2l0aCB0aGUgcG9zc2libGVPcHRpb25zXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwcml2YXRlIGhhbmRsZU9wdGlvbkNoYW5nZXMoKSB7XG5cdFx0dGhpcy5vcHRpb25zQW5kSW5kZXgkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoW29wdGlvbnMsIGluZGV4XSkgPT4ge1xuXHRcdFx0aWYgKGluZGV4ID4gMCkge1xuXHRcdFx0XHR0aGlzLmhhbmRsZUludmFsaWRPcHRpb25zKG9wdGlvbnMpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy51cGRhdGVQb3NzaWJsZU9wdGlvbnMob3B0aW9ucyk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2sgdGhhdCBvdXIgXCJzZWxlY3RlZE9wdGlvbnNcIiBhcmUgc3RpbGwgdmFsaWQgd2hlbiBcInBvc3NpYmxlT3B0aW9uc1wiIGlzIGFib3V0IHRvIGJlIHVwZGF0ZWRcblx0ICovXG5cdHByaXZhdGUgaGFuZGxlSW52YWxpZE9wdGlvbnMob3B0aW9uczogcmVhZG9ubHkgQ2RrT3B0aW9uW10pIHtcblx0XHRjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLl9zZWxlY3RTZXJ2aWNlLnNlbGVjdGVkT3B0aW9ucygpO1xuXHRcdGNvbnN0IGF2YWlsYWJsZU9wdGlvblNldCA9IG5ldyBTZXQ8Q2RrT3B0aW9uIHwgbnVsbD4ob3B0aW9ucyk7XG5cdFx0aWYgKHRoaXMuX3NlbGVjdFNlcnZpY2UubXVsdGlwbGUoKSkge1xuXHRcdFx0Y29uc3QgZmlsdGVyZWRPcHRpb25zID0gc2VsZWN0ZWRPcHRpb25zLmZpbHRlcigobykgPT4gYXZhaWxhYmxlT3B0aW9uU2V0LmhhcyhvKSk7XG5cdFx0XHQvLyBvbmx5IHVwZGF0ZSBpZiB0aGVyZSB3YXMgYW4gYWN0dWFsIGNoYW5nZVxuXHRcdFx0aWYgKHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggIT09IGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0Ly8gdXBkYXRlIHNob3VsZCByZXN1bHQgaW4gYSB2YWx1ZSBjaGFuZ2Ugc2luY2Ugd2UgYXJlIGRlc2VsZWN0aW5nIGEgdmFsdWVcblx0XHRcdFx0dGhpcy5fc2hvdWxkRW1pdFZhbHVlQ2hhbmdlLnNldCh0cnVlKTtcblx0XHRcdFx0Y29uc3QgdmFsdWUgPSBmaWx0ZXJlZE9wdGlvbnMubWFwKChvKSA9PiAobz8udmFsdWUgYXMgc3RyaW5nKSA/PyAnJyk7XG5cdFx0XHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdFx0XHQuLi5zdGF0ZSxcblx0XHRcdFx0XHRzZWxlY3RlZE9wdGlvbnM6IGZpbHRlcmVkT3B0aW9ucyxcblx0XHRcdFx0XHR2YWx1ZTogdmFsdWUsXG5cdFx0XHRcdH0pKTtcblx0XHRcdFx0dGhpcy5fb25DaGFuZ2UoKHZhbHVlID8/IG51bGwpIGFzIFQpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBzZWxlY3RlZE9wdGlvbiA9IHNlbGVjdGVkT3B0aW9uc1swXSA/PyBudWxsO1xuXHRcdFx0aWYgKHNlbGVjdGVkT3B0aW9uICE9PSBudWxsICYmICFhdmFpbGFibGVPcHRpb25TZXQuaGFzKHNlbGVjdGVkT3B0aW9uKSkge1xuXHRcdFx0XHR0aGlzLl9zaG91bGRFbWl0VmFsdWVDaGFuZ2Uuc2V0KHRydWUpO1xuXHRcdFx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLnN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG5cdFx0XHRcdFx0Li4uc3RhdGUsXG5cdFx0XHRcdFx0c2VsZWN0ZWRPcHRpb25zOiBbXSxcblx0XHRcdFx0XHR2YWx1ZTogJycsXG5cdFx0XHRcdH0pKTtcblx0XHRcdFx0dGhpcy5fb25DaGFuZ2UoJycgYXMgVCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFN5bmMgdGhlIHVwZGF0ZWQgb3B0aW9ucyB3aXRoIFwicG9zc2libGVPcHRpb25zXCIgaW4gdGhlIHNlbGVjdCBzZXJ2aWNlXG5cdCAqL1xuXHRwcml2YXRlIHVwZGF0ZVBvc3NpYmxlT3B0aW9ucyhvcHRpb25zOiByZWFkb25seSBDZGtPcHRpb25bXSkge1xuXHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0cG9zc2libGVPcHRpb25zOiBvcHRpb25zIGFzIENka09wdGlvbltdLFxuXHRcdH0pKTtcblx0fVxufVxuIl19
344
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvbGliL2Jybi1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0UsT0FBTyxFQUNOLG1CQUFtQixFQUduQixhQUFhLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBRU4sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFHVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEYsT0FBTyxFQUE2QixrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEcsT0FBTyxFQUdOLGtDQUFrQyxFQUNsQyxtQ0FBbUMsR0FDbkMsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQVksaUJBQWlCLEVBQUUsaUJBQWlCLEVBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlC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LGtCQUFrQixFQUFDO1lBQzVELG1DQUFtQyxFQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixFQUFDO1lBQzdEO2dCQUNDLE9BQU8sRUFBRSxtQkFBbUI7Z0JBQzVCLFdBQVcsRUFBRSxrQkFBa0I7YUFDL0I7U0FDRCxtRUF5Q29DLGlCQUFpQiw2RUFFTix5QkFBeUIsNkVBRXJDLFNBQVMsNkdBS1gsbUJBQW1CLGdFQWpEM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5QlQsMkRBckNTLGFBQWEsMHJDQUFFLGdCQUFnQjs7MkZBdUM3QixrQkFBa0I7a0JBMUM5QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUM7b0JBQzFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1YsZ0JBQWdCO3dCQUNoQixVQUFVO3dCQUNWLGtDQUFrQyxFQUFDLEdBQUcsRUFBRSxtQkFBbUIsRUFBQzt3QkFDNUQsbUNBQW1DLEVBQUMsR0FBRyxFQUFFLG1CQUFtQixFQUFDO3dCQUM3RDs0QkFDQyxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLG9CQUFvQjt5QkFDL0I7cUJBQ0Q7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBeUJUO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrTGlzdGJveCwgQ2RrTGlzdGJveE1vZHVsZSwgQ2RrT3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xpc3Rib3gnO1xuaW1wb3J0IHtcblx0Q2RrQ29ubmVjdGVkT3ZlcmxheSxcblx0dHlwZSBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UsXG5cdHR5cGUgQ29ubmVjdGVkUG9zaXRpb24sXG5cdE92ZXJsYXlNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG5cdEFmdGVyQ29udGVudEluaXQsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdHR5cGUgRG9DaGVjayxcblx0dHlwZSBTaWduYWwsXG5cdGNvbXB1dGVkLFxuXHRjb250ZW50Q2hpbGQsXG5cdGNvbnRlbnRDaGlsZHJlbixcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0b3V0cHV0LFxuXHRzaWduYWwsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyB0eXBlIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcblx0dHlwZSBFeHBvc2VzU2lkZSxcblx0dHlwZSBFeHBvc2VzU3RhdGUsXG5cdHByb3ZpZGVFeHBvc2VkU2lkZVByb3ZpZGVyRXhpc3RpbmcsXG5cdHByb3ZpZGVFeHBvc2VzU3RhdGVQcm92aWRlckV4aXN0aW5nLFxufSBmcm9tICdAc3BhcnRhbi1uZy9icmFpbi9jb3JlJztcbmltcG9ydCB7IEJybkZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAc3BhcnRhbi1uZy9icmFpbi9mb3JtLWZpZWxkJztcbmltcG9ydCB7IENoYW5nZUZuLCBFcnJvclN0YXRlTWF0Y2hlciwgRXJyb3JTdGF0ZVRyYWNrZXIsIFRvdWNoRm4gfSBmcm9tICdAc3BhcnRhbi1uZy9icmFpbi9mb3Jtcyc7XG5pbXBvcnQgeyBCcm5MYWJlbERpcmVjdGl2ZSB9IGZyb20gJ0BzcGFydGFuLW5nL2JyYWluL2xhYmVsJztcbmltcG9ydCB7IFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCcm5TZWxlY3RDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9icm4tc2VsZWN0LWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEJyblNlbGVjdFNlcnZpY2UgfSBmcm9tICcuL2Jybi1zZWxlY3Quc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIEJyblJlYWREaXJlY3Rpb24gPSAnbHRyJyB8ICdydGwnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnJuLXNlbGVjdCwgaGxtLXNlbGVjdCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtPdmVybGF5TW9kdWxlLCBDZGtMaXN0Ym94TW9kdWxlXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHByb3ZpZGVyczogW1xuXHRcdEJyblNlbGVjdFNlcnZpY2UsXG5cdFx0Q2RrTGlzdGJveCxcblx0XHRwcm92aWRlRXhwb3NlZFNpZGVQcm92aWRlckV4aXN0aW5nKCgpID0+IEJyblNlbGVjdENvbXBvbmVudCksXG5cdFx0cHJvdmlkZUV4cG9zZXNTdGF0ZVByb3ZpZGVyRXhpc3RpbmcoKCkgPT4gQnJuU2VsZWN0Q29tcG9uZW50KSxcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBCcm5Gb3JtRmllbGRDb250cm9sLFxuXHRcdFx0dXNlRXhpc3Rpbmc6IEJyblNlbGVjdENvbXBvbmVudCxcblx0XHR9LFxuXHRdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdEBpZiAoIWxhYmVsUHJvdmlkZWQoKSAmJiBwbGFjZWhvbGRlcigpKSB7XG5cdFx0XHQ8bGFiZWwgY2xhc3M9XCJoaWRkZW5cIiBbYXR0ci5pZF09XCJiYWNrdXBMYWJlbElkKClcIj57eyBwbGFjZWhvbGRlcigpIH19PC9sYWJlbD5cblx0XHR9IEBlbHNlIHtcblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cImxhYmVsW2hsbUxhYmVsXSxsYWJlbFticm5MYWJlbF1cIiAvPlxuXHRcdH1cblxuXHRcdDxkaXYgY2RrLW92ZXJsYXktb3JpZ2luIChjbGljayk9XCJ0b2dnbGUoKVwiICN0cmlnZ2VyPVwiY2RrT3ZlcmxheU9yaWdpblwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiaGxtLXNlbGVjdC10cmlnZ2VyLFticm5TZWxlY3RUcmlnZ2VyXVwiIC8+XG5cdFx0PC9kaXY+XG5cdFx0PG5nLXRlbXBsYXRlXG5cdFx0XHRjZGstY29ubmVjdGVkLW92ZXJsYXlcblx0XHRcdGNka0Nvbm5lY3RlZE92ZXJsYXlMb2NrUG9zaXRpb25cblx0XHRcdGNka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcFxuXHRcdFx0Y2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXG5cdFx0XHRbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCJcblx0XHRcdFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJfZGVsYXllZEV4cGFuZGVkKClcIlxuXHRcdFx0W2Nka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnNdPVwiX3Bvc2l0aW9uc1wiXG5cdFx0XHRbY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoXT1cInRyaWdnZXJXaWR0aCgpID4gMCA/IHRyaWdnZXJXaWR0aCgpIDogJ2F1dG8nXCJcblx0XHRcdChiYWNrZHJvcENsaWNrKT1cImNsb3NlKClcIlxuXHRcdFx0KGRldGFjaCk9XCJjbG9zZSgpXCJcblx0XHRcdChwb3NpdGlvbkNoYW5nZSk9XCJfcG9zaXRpb25DaGFuZ2VzJC5uZXh0KCRldmVudClcIlxuXHRcdD5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0YCxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2VsZWN0Q29tcG9uZW50PFQgPSB1bmtub3duPlxuXHRpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlckNvbnRlbnRJbml0LCBEb0NoZWNrLCBFeHBvc2VzU2lkZSwgRXhwb3Nlc1N0YXRlLCBCcm5Gb3JtRmllbGRDb250cm9sXG57XG5cdHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdFNlcnZpY2UgPSBpbmplY3QoQnJuU2VsZWN0U2VydmljZSk7XG5cblx0cHVibGljIHJlYWRvbmx5IHRyaWdnZXJXaWR0aCA9IHRoaXMuX3NlbGVjdFNlcnZpY2UudHJpZ2dlcldpZHRoO1xuXG5cdHB1YmxpYyByZWFkb25seSBtdWx0aXBsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblx0cHVibGljIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cdHB1YmxpYyByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblx0cHVibGljIHJlYWRvbmx5IGRpciA9IGlucHV0PEJyblJlYWREaXJlY3Rpb24+KCdsdHInKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZGlzYWJsZWRGcm9tU2V0RGlzYWJsZWRTdGF0ZSA9IHNpZ25hbChmYWxzZSk7XG5cblx0cHJvdGVjdGVkIHNlbGVjdExhYmVsID0gY29udGVudENoaWxkKEJybkxhYmVsRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KTtcblx0LyoqIE92ZXJsYXkgcGFuZSBjb250YWluaW5nIHRoZSBvcHRpb25zLiAqL1xuXHRwcm90ZWN0ZWQgc2VsZWN0Q29udGVudCA9IGNvbnRlbnRDaGlsZC5yZXF1aXJlZChCcm5TZWxlY3RDb250ZW50Q29tcG9uZW50KTtcblxuXHRwcm90ZWN0ZWQgb3B0aW9ucyA9IGNvbnRlbnRDaGlsZHJlbihDZGtPcHRpb24sIHsgZGVzY2VuZGFudHM6IHRydWUgfSk7XG5cdHByb3RlY3RlZCBvcHRpb25zJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLm9wdGlvbnMpO1xuXHRwcm90ZWN0ZWQgb3B0aW9uc0FuZEluZGV4JCA9IHRoaXMub3B0aW9ucyQucGlwZShtYXAoKG9wdGlvbnMsIGluZGV4KSA9PiBbb3B0aW9ucywgaW5kZXhdIGFzIGNvbnN0KSk7XG5cblx0LyoqIE92ZXJsYXkgcGFuZSBjb250YWluaW5nIHRoZSBvcHRpb25zLiAqL1xuXHRwcm90ZWN0ZWQgX292ZXJsYXlEaXIgPSB2aWV3Q2hpbGQoQ2RrQ29ubmVjdGVkT3ZlcmxheSk7XG5cblx0cHVibGljIHJlYWRvbmx5IG9wZW5lZENoYW5nZSA9IG91dHB1dDxib29sZWFuPigpO1xuXG5cdHB1YmxpYyByZWFkb25seSBjbG9zZURlbGF5ID0gaW5wdXQ8bnVtYmVyPigxMDApO1xuXHRwdWJsaWMgcmVhZG9ubHkgaXNFeHBhbmRlZCA9IHRoaXMuX3NlbGVjdFNlcnZpY2UuaXNFeHBhbmRlZDtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9kZWxheWVkRXhwYW5kZWQgPSB0b1NpZ25hbChcblx0XHR0b09ic2VydmFibGUodGhpcy5pc0V4cGFuZGVkKS5waXBlKFxuXHRcdFx0c3dpdGNoTWFwKChleHBhbmRlZCkgPT4gKCFleHBhbmRlZCA/IG9mKGV4cGFuZGVkKS5waXBlKGRlbGF5KHRoaXMuY2xvc2VEZWxheSgpKSkgOiBvZihleHBhbmRlZCkpKSxcblx0XHRcdHRha2VVbnRpbERlc3Ryb3llZCgpLFxuXHRcdCksXG5cdFx0eyBpbml0aWFsVmFsdWU6IGZhbHNlIH0sXG5cdCk7XG5cdHB1YmxpYyByZWFkb25seSBzdGF0ZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmlzRXhwYW5kZWQoKSA/ICdvcGVuJyA6ICdjbG9zZWQnKSk7XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9wb3NpdGlvbkNoYW5nZXMkID0gbmV3IFN1YmplY3Q8Q29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlPigpO1xuXHRwdWJsaWMgcmVhZG9ubHkgc2lkZTogU2lnbmFsPCd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnPiA9IHRvU2lnbmFsKFxuXHRcdHRoaXMuX3Bvc2l0aW9uQ2hhbmdlcyQucGlwZShcblx0XHRcdG1hcDxDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UsICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnPigoY2hhbmdlKSA9PlxuXHRcdFx0XHQvLyB0b2RvOiBiZXR0ZXIgdHJhbnNsYXRpb24gb3IgYWRqdXN0aW5nIGhsbSB0byB0YWtlIHRoYXQgaW50byBhY2NvdW50XG5cdFx0XHRcdGNoYW5nZS5jb25uZWN0aW9uUGFpci5vcmlnaW5ZID09PSAnY2VudGVyJ1xuXHRcdFx0XHRcdD8gY2hhbmdlLmNvbm5lY3Rpb25QYWlyLm9yaWdpblggPT09ICdzdGFydCdcblx0XHRcdFx0XHRcdD8gJ2xlZnQnXG5cdFx0XHRcdFx0XHQ6ICdyaWdodCdcblx0XHRcdFx0XHQ6IGNoYW5nZS5jb25uZWN0aW9uUGFpci5vcmlnaW5ZLFxuXHRcdFx0KSxcblx0XHQpLFxuXHRcdHsgaW5pdGlhbFZhbHVlOiAnYm90dG9tJyB9LFxuXHQpO1xuXG5cdHB1YmxpYyByZWFkb25seSBiYWNrdXBMYWJlbElkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc2VsZWN0U2VydmljZS5sYWJlbElkKCkpO1xuXHRwdWJsaWMgcmVhZG9ubHkgbGFiZWxQcm92aWRlZCA9IHNpZ25hbChmYWxzZSk7XG5cblx0cHVibGljIHJlYWRvbmx5IG5nQ29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wsIHsgb3B0aW9uYWw6IHRydWUsIHNlbGY6IHRydWUgfSk7XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuXHRwcml2YXRlIF9vbkNoYW5nZTogQ2hhbmdlRm48VD4gPSAoKSA9PiB7fTtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuXHRwcml2YXRlIF9vblRvdWNoZWQ6IFRvdWNoRm4gPSAoKSA9PiB7fTtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9zaG91bGRFbWl0VmFsdWVDaGFuZ2UgPSBzaWduYWwoZmFsc2UpO1xuXG5cdC8qXG5cdCAqIFRoaXMgcG9zaXRpb24gY29uZmlnIGVuc3VyZXMgdGhhdCB0aGUgdG9wIFwic3RhcnRcIiBjb3JuZXIgb2YgdGhlIG92ZXJsYXlcblx0ICogaXMgYWxpZ25lZCB3aXRoIHdpdGggdGhlIHRvcCBcInN0YXJ0XCIgb2YgdGhlIG9yaWdpbiBieSBkZWZhdWx0IChvdmVybGFwcGluZ1xuXHQgKiB0aGUgdHJpZ2dlciBjb21wbGV0ZWx5KS4gSWYgdGhlIHBhbmVsIGNhbm5vdCBmaXQgYmVsb3cgdGhlIHRyaWdnZXIsIGl0XG5cdCAqIHdpbGwgZmFsbCBiYWNrIHRvIGEgcG9zaXRpb24gYWJvdmUgdGhlIHRyaWdnZXIuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgX3Bvc2l0aW9uczogQ29ubmVjdGVkUG9zaXRpb25bXSA9IFtcblx0XHR7XG5cdFx0XHRvcmlnaW5YOiAnc3RhcnQnLFxuXHRcdFx0b3JpZ2luWTogJ2JvdHRvbScsXG5cdFx0XHRvdmVybGF5WDogJ3N0YXJ0Jyxcblx0XHRcdG92ZXJsYXlZOiAndG9wJyxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG9yaWdpblg6ICdlbmQnLFxuXHRcdFx0b3JpZ2luWTogJ2JvdHRvbScsXG5cdFx0XHRvdmVybGF5WDogJ2VuZCcsXG5cdFx0XHRvdmVybGF5WTogJ3RvcCcsXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRvcmlnaW5YOiAnc3RhcnQnLFxuXHRcdFx0b3JpZ2luWTogJ3RvcCcsXG5cdFx0XHRvdmVybGF5WDogJ3N0YXJ0Jyxcblx0XHRcdG92ZXJsYXlZOiAnYm90dG9tJyxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG9yaWdpblg6ICdlbmQnLFxuXHRcdFx0b3JpZ2luWTogJ3RvcCcsXG5cdFx0XHRvdmVybGF5WDogJ2VuZCcsXG5cdFx0XHRvdmVybGF5WTogJ2JvdHRvbScsXG5cdFx0fSxcblx0XTtcblxuXHRwdWJsaWMgZXJyb3JTdGF0ZVRyYWNrZXI6IEVycm9yU3RhdGVUcmFja2VyO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlciA9IGluamVjdChFcnJvclN0YXRlTWF0Y2hlcik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudEZvcm0gPSBpbmplY3QoTmdGb3JtLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnRGb3JtR3JvdXAgPSBpbmplY3QoRm9ybUdyb3VwRGlyZWN0aXZlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG5cdHB1YmxpYyBlcnJvclN0YXRlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5lcnJvclN0YXRlVHJhY2tlci5lcnJvclN0YXRlKCkpO1xuXG5cdHB1YmxpYyB3cml0ZVZhbHVlJCA9IG5ldyBTdWJqZWN0PFQ+KCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5fc2VsZWN0U2VydmljZS5zdGF0ZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuXHRcdFx0Li4uc3RhdGUsXG5cdFx0XHRtdWx0aXBsZTogdGhpcy5tdWx0aXBsZSxcblx0XHRcdHBsYWNlaG9sZGVyOiB0aGlzLnBsYWNlaG9sZGVyLFxuXHRcdFx0ZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG5cdFx0XHRkaXNhYmxlZEJ5U2V0RGlzYWJsZWQ6IHRoaXMuX2Rpc2FibGVkRnJvbVNldERpc2FibGVkU3RhdGUsXG5cdFx0XHRkaXI6IHRoaXMuZGlyLFxuXHRcdH0pKTtcblx0XHR0aGlzLmhhbmRsZU9wdGlvbkNoYW5nZXMoKTtcblx0XHR0aGlzLmhhbmRsZUluaXRpYWxPcHRpb25TZWxlY3QoKTtcblxuXHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0aWQ6IGBicm4tc2VsZWN0LSR7bmV4dElkKyt9YCxcblx0XHR9KSk7XG5cdFx0aWYgKHRoaXMubmdDb250cm9sICE9PSBudWxsKSB7XG5cdFx0XHR0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcblx0XHR9XG5cblx0XHQvLyBXYXRjaCBmb3IgTGlzdGJveCBTZWxlY3Rpb24gQ2hhbmdlcyB0byB0cmlnZ2VyIENvbGxhcHNlIGFuZCBWYWx1ZSBDaGFuZ2Vcblx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLmxpc3RCb3hWYWx1ZUNoYW5nZUV2ZW50JC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0aWYgKCF0aGlzLm11bHRpcGxlKCkpIHtcblx0XHRcdFx0dGhpcy5jbG9zZSgpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyB3ZSBzZXQgc2hvdWxkRW1pdFZhbHVlQ2hhbmdlIHRvIHRydWUgYmVjYXVzZSB3ZSB3YW50IHRvIHByb3BhZ2F0ZSB0aGUgdmFsdWUgY2hhbmdlXG5cdFx0XHQvLyBhcyBhIHJlc3VsdCBvZiB1c2VyIGludGVyYWN0aW9uXG5cdFx0XHR0aGlzLl9zaG91bGRFbWl0VmFsdWVDaGFuZ2Uuc2V0KHRydWUpO1xuXHRcdH0pO1xuXG5cdFx0LyoqXG5cdFx0ICogTGlzdGVuaW5nIHRvIHZhbHVlIGNoYW5nZXMgaW4gb3JkZXIgdG8gdHJpZ2dlciBmb3JtcyBhcGkgb24gY2hhbmdlXG5cdFx0ICogU2hvdWxkRW1pdFZhbHVlQ2hhbmdlIHNpbXBseSBlbnN1cmVzIHdlIG9ubHkgcHJvcGFnYXRlIHZhbHVlIGNoYW5nZSB3aGVuIGEgdXNlciBtYWtlcyBhIHNlbGVjdGlvblxuXHRcdCAqIHdlIGRvbid0IHByb3BhZ2F0ZSBjaGFuZ2VzIG1hZGUgZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQgKGV4LiBwYXRjaCB2YWx1ZSBvciBpbml0aWFsIHZhbHVlIGZyb20gZm9ybSBjb250cm9sKVxuXHRcdCAqL1xuXHRcdHRvT2JzZXJ2YWJsZSh0aGlzLl9zZWxlY3RTZXJ2aWNlLnZhbHVlKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5fc2hvdWxkRW1pdFZhbHVlQ2hhbmdlKCkpIHtcblx0XHRcdFx0dGhpcy5fb25DaGFuZ2UoKHZhbHVlID8/IG51bGwpIGFzIFQpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5fc2hvdWxkRW1pdFZhbHVlQ2hhbmdlLnNldCh0cnVlKTtcblx0XHR9KTtcblxuXHRcdHRoaXMuZXJyb3JTdGF0ZVRyYWNrZXIgPSBuZXcgRXJyb3JTdGF0ZVRyYWNrZXIoXG5cdFx0XHR0aGlzLl9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXIsXG5cdFx0XHR0aGlzLm5nQ29udHJvbCxcblx0XHRcdHRoaXMuX3BhcmVudEZvcm1Hcm91cCxcblx0XHRcdHRoaXMuX3BhcmVudEZvcm0sXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG5cdFx0Ly8gQ2hlY2sgaWYgTGFiZWwgRGlyZWN0aXZlIFByb3ZpZGVkIGFuZCBwYXNzIHRvIHNlcnZpY2Vcblx0XHRjb25zdCBsYWJlbCA9IHRoaXMuc2VsZWN0TGFiZWwoKTtcblx0XHRpZiAobGFiZWwpIHtcblx0XHRcdHRoaXMubGFiZWxQcm92aWRlZC5zZXQodHJ1ZSk7XG5cdFx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLnN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG5cdFx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0XHRsYWJlbElkOiBsYWJlbC5pZCgpLFxuXHRcdFx0fSkpO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5wbGFjZWhvbGRlcigpKSB7XG5cdFx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLnN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG5cdFx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0XHRsYWJlbElkOiBgJHtzdGF0ZS5pZH0tLWxhYmVsYCxcblx0XHRcdH0pKTtcblx0XHR9XG5cdH1cblxuXHRuZ0RvQ2hlY2soKSB7XG5cdFx0dGhpcy5lcnJvclN0YXRlVHJhY2tlci51cGRhdGVFcnJvclN0YXRlKCk7XG5cdH1cblxuXHRwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmlzRXhwYW5kZWQoKSkge1xuXHRcdFx0dGhpcy5jbG9zZSgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLm9wZW4oKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgb3BlbigpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuX2Nhbk9wZW4oKSkgcmV0dXJuO1xuXHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0aXNFeHBhbmRlZDogdHJ1ZSxcblx0XHR9KSk7XG5cdFx0dGhpcy5vcGVuZWRDaGFuZ2UuZW1pdCh0cnVlKTtcblx0XHR0aGlzLl9tb3ZlRm9jdXNUb0NES0xpc3QoKTtcblx0fVxuXG5cdHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuaXNFeHBhbmRlZCgpKSByZXR1cm47XG5cblx0XHRpZiAodGhpcy5fc2VsZWN0U2VydmljZS5zZWxlY3RUcmlnZ2VyKSB7XG5cdFx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLnNlbGVjdFRyaWdnZXIuZm9jdXMoKTtcblx0XHR9XG5cblx0XHR0aGlzLm9wZW5lZENoYW5nZS5lbWl0KGZhbHNlKTtcblx0XHR0aGlzLl9zZWxlY3RTZXJ2aWNlLnN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG5cdFx0XHQuLi5zdGF0ZSxcblx0XHRcdGlzRXhwYW5kZWQ6IGZhbHNlLFxuXHRcdH0pKTtcblx0XHR0aGlzLl9vblRvdWNoZWQoKTtcblx0fVxuXG5cdHByb3RlY3RlZCBfY2FuT3BlbigpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gIXRoaXMuaXNFeHBhbmRlZCgpICYmICF0aGlzLmRpc2FibGVkKCkgJiYgdGhpcy5vcHRpb25zKCk/Lmxlbmd0aCA+IDA7XG5cdH1cblxuXHRwcml2YXRlIF9tb3ZlRm9jdXNUb0NES0xpc3QoKTogdm9pZCB7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLnNlbGVjdENvbnRlbnQoKT8uZm9jdXNMaXN0KCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuXHRcdHRoaXMud3JpdGVWYWx1ZSQubmV4dCh2YWx1ZSk7XG5cdH1cblxuXHRwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogQ2hhbmdlRm48VD4pOiB2b2lkIHtcblx0XHR0aGlzLl9vbkNoYW5nZSA9IGZuO1xuXHR9XG5cblx0cHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBUb3VjaEZuKTogdm9pZCB7XG5cdFx0dGhpcy5fb25Ub3VjaGVkID0gZm47XG5cdH1cblxuXHRwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG5cdFx0dGhpcy5fZGlzYWJsZWRGcm9tU2V0RGlzYWJsZWRTdGF0ZS5zZXQoaXNEaXNhYmxlZCk7XG5cdH1cblxuXHQvKipcblx0ICogT25jZSB3cml0ZVZhbHVlIGlzIGNhbGxlZCBhbmQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIHdlIGNhbiBoYW5kbGUgc2V0dGluZyB0aGUgaW5pdGlhbCBvcHRpb25zXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwcml2YXRlIGhhbmRsZUluaXRpYWxPcHRpb25TZWxlY3QoKSB7XG5cdFx0Ly8gV3JpdGUgdmFsdWUgY2Fubm90IGJlIGhhbmRsZWQgdW50aWwgb3B0aW9ucyBhcmUgYXZhaWxhYmxlLCBzbyB3ZSB3YWl0IHVudGlsIGJvdGggYXJlIGF2YWlsYWJsZSB3aXRoIGEgY29tYmluZUxhdGVzdFxuXHRcdGNvbWJpbmVMYXRlc3QoW3RoaXMud3JpdGVWYWx1ZSQsIHRoaXMub3B0aW9ucyRdKVxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdG1hcCgodmFsdWVzLCBpbmRleCkgPT4gWy4uLnZhbHVlcywgaW5kZXhdKSxcblx0XHRcdFx0dGFrZVVudGlsRGVzdHJveWVkKCksXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKChbdmFsdWUsIF8sIGluZGV4XSkgPT4ge1xuXHRcdFx0XHR0aGlzLl9zaG91bGRFbWl0VmFsdWVDaGFuZ2Uuc2V0KGZhbHNlKTtcblx0XHRcdFx0dGhpcy5fc2VsZWN0U2VydmljZS5zZXRJbml0aWFsU2VsZWN0ZWRPcHRpb25zKHZhbHVlKTtcblx0XHRcdFx0Ly8gdGhlIGZpcnN0IHRpbWUgdGhpcyBvYnNlcnZhYmxlIGVtaXRzIGEgdmFsdWUgd2UgYXJlIHNpbXBseSBzZXR0aW5nIHRoZSBpbml0aWFsIHN0YXRlXG5cdFx0XHRcdC8vIHRoaXMgY2hhbmdlIHNob3VsZCBub3QgY291bnQgYXMgY2hhbmdpbmcgdGhlIHN0YXRlIG9mIHRoZSBzZWxlY3QsIHNvIHdlIG5lZWQgdG8gbWFyayBhcyBwcmlzdGluZVxuXHRcdFx0XHRpZiAoaW5kZXggPT09IDApIHtcblx0XHRcdFx0XHR0aGlzLm5nQ29udHJvbD8uY29udHJvbD8ubWFya0FzUHJpc3RpbmUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogV2hlbiBvcHRpb25zIGNoYW5nZSwgb3VyIGN1cnJlbnQgc2VsZWN0ZWQgb3B0aW9ucyBtYXkgYmVjb21lIGludmFsaWRcblx0ICogSGVyZSB3ZSB3aWxsIGF1dG9tYXRpY2FsbHkgdXBkYXRlIG91ciBjdXJyZW50IHNlbGVjdGVkIG9wdGlvbnMgc28gdGhhdCB0aGV5IGFyZSBhbHdheXMgaW5saW5lIHdpdGggdGhlIHBvc3NpYmxlT3B0aW9uc1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cHJpdmF0ZSBoYW5kbGVPcHRpb25DaGFuZ2VzKCkge1xuXHRcdHRoaXMub3B0aW9uc0FuZEluZGV4JC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKFtvcHRpb25zLCBpbmRleF0pID0+IHtcblx0XHRcdGlmIChpbmRleCA+IDApIHtcblx0XHRcdFx0dGhpcy5oYW5kbGVJbnZhbGlkT3B0aW9ucyhvcHRpb25zKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuX3NlbGVjdFNlcnZpY2UudXBkYXRlUG9zc2libGVPcHRpb25zKG9wdGlvbnMpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrIHRoYXQgb3VyIFwic2VsZWN0ZWRPcHRpb25zXCIgYXJlIHN0aWxsIHZhbGlkIHdoZW4gXCJwb3NzaWJsZU9wdGlvbnNcIiBpcyBhYm91dCB0byBiZSB1cGRhdGVkXG5cdCAqL1xuXHRwcml2YXRlIGhhbmRsZUludmFsaWRPcHRpb25zKG9wdGlvbnM6IHJlYWRvbmx5IENka09wdGlvbltdKSB7XG5cdFx0Y29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5fc2VsZWN0U2VydmljZS5zZWxlY3RlZE9wdGlvbnMoKTtcblx0XHRjb25zdCBhdmFpbGFibGVPcHRpb25TZXQgPSBuZXcgU2V0PENka09wdGlvbiB8IG51bGw+KG9wdGlvbnMpO1xuXHRcdGlmICh0aGlzLl9zZWxlY3RTZXJ2aWNlLm11bHRpcGxlKCkpIHtcblx0XHRcdGNvbnN0IGZpbHRlcmVkT3B0aW9ucyA9IHNlbGVjdGVkT3B0aW9ucy5maWx0ZXIoKG8pID0+IGF2YWlsYWJsZU9wdGlvblNldC5oYXMobykpO1xuXHRcdFx0aWYgKHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggIT09IGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0Y29uc3QgdmFsdWUgPSBmaWx0ZXJlZE9wdGlvbnMubWFwKChvKSA9PiAobz8udmFsdWUgYXMgc3RyaW5nKSA/PyAnJyk7XG5cdFx0XHRcdHRoaXMuX3NlbGVjdFNlcnZpY2Uuc3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcblx0XHRcdFx0XHQuLi5zdGF0ZSxcblx0XHRcdFx0XHRzZWxlY3RlZE9wdGlvbnM6IGZpbHRlcmVkT3B0aW9ucyxcblx0XHRcdFx0XHR2YWx1ZTogdmFsdWUsXG5cdFx0XHRcdH0pKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBzZWxlY3RlZE9wdGlvbnNbMF0gPz8gbnVsbDtcblx0XHRcdGlmIChzZWxlY3RlZE9wdGlvbiAhPT0gbnVsbCAmJiAhYXZhaWxhYmxlT3B0aW9uU2V0LmhhcyhzZWxlY3RlZE9wdGlvbikpIHtcblx0XHRcdFx0dGhpcy5fc2VsZWN0U2VydmljZS5zdGF0ZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuXHRcdFx0XHRcdC4uLnN0YXRlLFxuXHRcdFx0XHRcdHNlbGVjdGVkT3B0aW9uczogW10sXG5cdFx0XHRcdFx0dmFsdWU6ICcnLFxuXHRcdFx0XHR9KSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iXX0=