angular-three-postprocessing 2.0.0-beta.255 → 2.0.0-beta.257
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/effect-composer.mjs +3 -14
- package/esm2022/lib/effect.mjs +1 -1
- package/esm2022/lib/effects/depth-of-field.mjs +5 -5
- package/esm2022/lib/effects/glitch.mjs +1 -1
- package/esm2022/lib/effects/god-rays.mjs +5 -5
- package/esm2022/lib/effects/grid.mjs +1 -1
- package/esm2022/lib/effects/lens-flare.mjs +7 -6
- package/esm2022/lib/effects/lut.mjs +1 -1
- package/esm2022/lib/effects/pixelation.mjs +1 -1
- package/fesm2022/angular-three-postprocessing.mjs +11 -21
- package/fesm2022/angular-three-postprocessing.mjs.map +1 -1
- package/lib/effect-composer.d.ts +8 -56
- package/lib/effect.d.ts +1 -1
- package/lib/effects/depth-of-field.d.ts +3 -10
- package/lib/effects/glitch.d.ts +9 -9
- package/lib/effects/god-rays.d.ts +2 -9
- package/lib/effects/grid.d.ts +4 -7
- package/lib/effects/lens-flare.d.ts +10 -24
- package/lib/effects/lut.d.ts +4 -4
- package/lib/effects/pixelation.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, Injector, afterNextRender, computed, inject, input, viewChild, } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { extend, getLocalState, injectBeforeRender, injectStore, pick } from 'angular-three';
|
|
3
3
|
import { injectAutoEffect } from 'ngxtension/auto-effect';
|
|
4
4
|
import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
5
5
|
import { DepthDownsamplingPass, Effect, EffectAttribute, EffectComposer, EffectPass, NormalPass, Pass, RenderPass, } from 'postprocessing';
|
|
@@ -7,7 +7,6 @@ import { Group, HalfFloatType, NoToneMapping } from 'three';
|
|
|
7
7
|
import { isWebGL2Available } from 'three-stdlib';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
extend({ Group });
|
|
10
|
-
export const [injectEffectComposerApi, provideEffectComposerApi] = createApiToken(() => NgtpEffectComposer);
|
|
11
10
|
const defaultOptions = {
|
|
12
11
|
enabled: true,
|
|
13
12
|
renderPriority: 1,
|
|
@@ -74,15 +73,6 @@ export class NgtpEffectComposer {
|
|
|
74
73
|
}
|
|
75
74
|
return { composer, normalPass, downSamplingPass };
|
|
76
75
|
});
|
|
77
|
-
this.api = computed(() => {
|
|
78
|
-
const [{ composer, normalPass, downSamplingPass }, camera, scene, resolutionScale] = [
|
|
79
|
-
this.composerData(),
|
|
80
|
-
this.camera(),
|
|
81
|
-
this.scene(),
|
|
82
|
-
this.resolutionScale(),
|
|
83
|
-
];
|
|
84
|
-
return { composer, camera, scene, normalPass, downSamplingPass, resolutionScale };
|
|
85
|
-
});
|
|
86
76
|
afterNextRender(() => {
|
|
87
77
|
this.disableToneMapping();
|
|
88
78
|
this.setComposerSize();
|
|
@@ -175,7 +165,7 @@ export class NgtpEffectComposer {
|
|
|
175
165
|
});
|
|
176
166
|
}
|
|
177
167
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgtpEffectComposer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
178
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.6", type: NgtpEffectComposer, isStandalone: true, selector: "ngtp-effect-composer", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } },
|
|
168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.6", type: NgtpEffectComposer, isStandalone: true, selector: "ngtp-effect-composer", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "group", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
179
169
|
<ngt-group #group>
|
|
180
170
|
<ng-content />
|
|
181
171
|
</ngt-group>
|
|
@@ -191,9 +181,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
191
181
|
<ng-content />
|
|
192
182
|
</ngt-group>
|
|
193
183
|
`,
|
|
194
|
-
providers: [provideEffectComposerApi()],
|
|
195
184
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
196
185
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
197
186
|
}]
|
|
198
187
|
}], ctorParameters: () => [] });
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LWNvbXBvc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC1jb21wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLGVBQWUsRUFDZixRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFDTixxQkFBcUIsRUFDckIsTUFBTSxFQUNOLGVBQWUsRUFDZixjQUFjLEVBQ2QsVUFBVSxFQUNWLFVBQVUsRUFDVixJQUFJLEVBQ0osVUFBVSxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFVLEtBQUssRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUEwQixNQUFNLE9BQU8sQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRWpELE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFXbEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSx3QkFBd0IsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBaUI1RyxNQUFNLGNBQWMsR0FBOEI7SUFDakQsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsQ0FBQztJQUNqQixTQUFTLEVB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d0JBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3BCLENBQUM7Z0JBQ0YsQ0FBQztnQkFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUMzQixRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN4QixDQUFDO2dCQUVELElBQUksVUFBVTtvQkFBRSxVQUFVLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDMUMsSUFBSSxnQkFBZ0I7b0JBQUUsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUN2RCxDQUFDO1lBRUQsT0FBTyxHQUFHLEVBQUU7Z0JBQ1gsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNO29CQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RELElBQUksVUFBVTtvQkFBRSxVQUFVLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDM0MsSUFBSSxnQkFBZ0I7b0JBQUUsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN4RCxDQUFDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBdExXLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDZNQUpuQixDQUFDLHdCQUF3QixFQUFFLENBQUMsMElBTDdCOzs7O0VBSVQ7OzJGQUtXLGtCQUFrQjtrQkFaOUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7O0VBSVQ7b0JBQ0QsU0FBUyxFQUFFLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdEluamVjdG9yLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbXB1dGVkLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlQXBpVG9rZW4sIGV4dGVuZCwgZ2V0TG9jYWxTdGF0ZSwgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3RTdG9yZSwgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHtcblx0RGVwdGhEb3duc2FtcGxpbmdQYXNzLFxuXHRFZmZlY3QsXG5cdEVmZmVjdEF0dHJpYnV0ZSxcblx0RWZmZWN0Q29tcG9zZXIsXG5cdEVmZmVjdFBhc3MsXG5cdE5vcm1hbFBhc3MsXG5cdFBhc3MsXG5cdFJlbmRlclBhc3MsXG59IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IENhbWVyYSwgR3JvdXAsIEhhbGZGbG9hdFR5cGUsIE5vVG9uZU1hcHBpbmcsIFNjZW5lLCBUZXh0dXJlRGF0YVR5cGUgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBpc1dlYkdMMkF2YWlsYWJsZSB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmV4dGVuZCh7IEdyb3VwIH0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHBFZmZlY3RDb21wb3NlckFwaSB7XG5cdGNvbXBvc2VyOiBFZmZlY3RDb21wb3Nlcjtcblx0Y2FtZXJhOiBDYW1lcmE7XG5cdHNjZW5lOiBTY2VuZTtcblx0bm9ybWFsUGFzczogTm9ybWFsUGFzcyB8IG51bGw7XG5cdGRvd25TYW1wbGluZ1Bhc3M6IERlcHRoRG93bnNhbXBsaW5nUGFzcyB8IG51bGw7XG5cdHJlc29sdXRpb25TY2FsZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFtpbmplY3RFZmZlY3RDb21wb3NlckFwaSwgcHJvdmlkZUVmZmVjdENvbXBvc2VyQXBpXSA9IGNyZWF0ZUFwaVRva2VuKCgpID0+IE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cbmludGVyZmFjZSBOZ3RwRWZmZWN0Q29tcG9zZXJPcHRpb25zIHtcblx0ZW5hYmxlZDogYm9vbGVhbjtcblx0ZGVwdGhCdWZmZXI/OiBib29sZWFuO1xuXHQvKiogT25seSB1c2VkIGZvciBTU0dJIGN1cnJlbnRseSwgbGVhdmUgaXQgZGlzYWJsZWQgZm9yIGV2ZXJ5dGhpbmcgZWxzZSB1bmxlc3MgaXQncyBuZWVkZWQgKi9cblx0ZW5hYmxlTm9ybWFsUGFzcz86IGJvb2xlYW47XG5cdHN0ZW5jaWxCdWZmZXI/OiBib29sZWFuO1xuXHRhdXRvQ2xlYXI6IGJvb2xlYW47XG5cdHJlc29sdXRpb25TY2FsZT86IG51bWJlcjtcblx0bXVsdGlzYW1wbGluZzogbnVtYmVyO1xuXHRmcmFtZUJ1ZmZlclR5cGU6IFRleHR1cmVEYXRhVHlwZTtcblx0cmVuZGVyUHJpb3JpdHk6IG51bWJlcjtcblx0Y2FtZXJhPzogQ2FtZXJhO1xuXHRzY2VuZT86IFNjZW5lO1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0cEVmZmVjdENvbXBvc2VyT3B0aW9ucyA9IHtcblx0ZW5hYmxlZDogdHJ1ZSxcblx0cmVuZGVyUHJpb3JpdHk6IDEsXG5cdGF1dG9DbGVhcjogdHJ1ZSxcblx0bXVsdGlzYW1wbGluZzogOCxcblx0ZnJhbWVCdWZmZXJUeXBlOiBIYWxmRmxvYXRUeXBlLFxufTtcblxuZnVuY3Rpb24gaXNDb252b2x1dGlvbihlZmZlY3Q6IEVmZmVjdCkge1xuXHRyZXR1cm4gKGVmZmVjdC5nZXRBdHRyaWJ1dGVzKCkgJiBFZmZlY3RBdHRyaWJ1dGUuQ09OVk9MVVRJT04pID09PSBFZmZlY3RBdHRyaWJ1dGUuQ09OVk9MVVRJT047XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZWZmZWN0LWNvbXBvc2VyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwICNncm91cD5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZ3JvdXA+XG5cdGAsXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVFZmZlY3RDb21wb3NlckFwaSgpXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEVmZmVjdENvbXBvc2VyIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblx0YXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0c3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRzaXplID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NpemUnKTtcblx0Z2wgPSB0aGlzLnN0b3JlLnNlbGVjdCgnZ2wnKTtcblx0ZGVmYXVsdFNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cdGRlZmF1bHRDYW1lcmEgPSB0aGlzLnN0b3JlLnNlbGVjdCgnY2FtZXJhJyk7XG5cblx0ZGVwdGhCdWZmZXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2RlcHRoQnVmZmVyJyk7XG5cdHN0ZW5jaWxCdWZmZXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3N0ZW5jaWxCdWZmZXInKTtcblx0bXVsdGlzYW1wbGluZyA9IHBpY2sodGhpcy5vcHRpb25zLCAnbXVsdGlzYW1wbGluZycpO1xuXHRmcmFtZUJ1ZmZlclR5cGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ZyYW1lQnVmZmVyVHlwZScpO1xuXHRzY2VuZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLnNjZW5lID8/IHRoaXMuZGVmYXVsdFNjZW5lKCkpO1xuXHRjYW1lcmEgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKS5jYW1lcmEgPz8gdGhpcy5kZWZhdWx0Q2FtZXJhKCkpO1xuXHRlbmFibGVOb3JtYWxQYXNzID0gcGljayh0aGlzLm9wdGlvbnMsICdlbmFibGVOb3JtYWxQYXNzJyk7XG5cdHJlc29sdXRpb25TY2FsZSA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVzb2x1dGlvblNjYWxlJyk7XG5cblx0Z3JvdXAgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxHcm91cD4+KCdncm91cCcpO1xuXG5cdGNvbXBvc2VyRGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCB3ZWJHTDJBdmFpbGFibGUgPSBpc1dlYkdMMkF2YWlsYWJsZSgpO1xuXHRcdGNvbnN0IFtcblx0XHRcdGdsLFxuXHRcdFx0c2NlbmUsXG5cdFx0XHRjYW1lcmEsXG5cdFx0XHRkZXB0aEJ1ZmZlcixcblx0XHRcdHN0ZW5jaWxCdWZmZXIsXG5cdFx0XHRtdWx0aXNhbXBsaW5nLFxuXHRcdFx0ZnJhbWVCdWZmZXJUeXBlLFxuXHRcdFx0ZW5hYmxlTm9ybWFsUGFzcyxcblx0XHRcdHJlc29sdXRpb25TY2FsZSxcblx0XHRdID0gW1xuXHRcdFx0dGhpcy5nbCgpLFxuXHRcdFx0dGhpcy5zY2VuZSgpLFxuXHRcdFx0dGhpcy5jYW1lcmEoKSxcblx0XHRcdHRoaXMuZGVwdGhCdWZmZXIoKSxcblx0XHRcdHRoaXMuc3RlbmNpbEJ1ZmZlcigpLFxuXHRcdFx0dGhpcy5tdWx0aXNhbXBsaW5nKCksXG5cdFx0XHR0aGlzLmZyYW1lQnVmZmVyVHlwZSgpLFxuXHRcdFx0dGhpcy5lbmFibGVOb3JtYWxQYXNzKCksXG5cdFx0XHR0aGlzLnJlc29sdXRpb25TY2FsZSgpLFxuXHRcdF07XG5cblx0XHQvLyBpbml0aWFsaXplIGNvbXBvc2VyXG5cdFx0Y29uc3QgY29tcG9zZXIgPSBuZXcgRWZmZWN0Q29tcG9zZXIoZ2wsIHtcblx0XHRcdGRlcHRoQnVmZmVyLFxuXHRcdFx0c3RlbmNpbEJ1ZmZlcixcblx0XHRcdG11bHRpc2FtcGxpbmc6IG11bHRpc2FtcGxpbmcgPiAwICYmIHdlYkdMMkF2YWlsYWJsZSA/IG11bHRpc2FtcGxpbmcgOiAwLFxuXHRcdFx0ZnJhbWVCdWZmZXJUeXBlLFxuXHRcdH0pO1xuXG5cdFx0Ly8gYWRkIHJlbmRlciBwYXNzXG5cdFx0Y29tcG9zZXIuYWRkUGFzcyhuZXcgUmVuZGVyUGFzcyhzY2VuZSwgY2FtZXJhKSk7XG5cblx0XHQvLyBjcmVhdGUgbm9ybWFsIHBhc3Ncblx0XHRsZXQgZG93blNhbXBsaW5nUGFzcyA9IG51bGw7XG5cdFx0bGV0IG5vcm1hbFBhc3MgPSBudWxsO1xuXHRcdGlmIChlbmFibGVOb3JtYWxQYXNzKSB7XG5cdFx0XHRub3JtYWxQYXNzID0gbmV3IE5vcm1hbFBhc3Moc2NlbmUsIGNhbWVyYSk7XG5cdFx0XHRub3JtYWxQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdGNvbXBvc2VyLmFkZFBhc3Mobm9ybWFsUGFzcyk7XG5cdFx0XHRpZiAocmVzb2x1dGlvblNjYWxlICE9PSB1bmRlZmluZWQgJiYgd2ViR0wyQXZhaWxhYmxlKSB7XG5cdFx0XHRcdGRvd25TYW1wbGluZ1Bhc3MgPSBuZXcgRGVwdGhEb3duc2FtcGxpbmdQYXNzKHsgbm9ybWFsQnVmZmVyOiBub3JtYWxQYXNzLnRleHR1cmUsIHJlc29sdXRpb25TY2FsZSB9KTtcblx0XHRcdFx0ZG93blNhbXBsaW5nUGFzcy5lbmFibGVkID0gZmFsc2U7XG5cdFx0XHRcdGNvbXBvc2VyLmFkZFBhc3MoZG93blNhbXBsaW5nUGFzcyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHsgY29tcG9zZXIsIG5vcm1hbFBhc3MsIGRvd25TYW1wbGluZ1Bhc3MgfTtcblx0fSk7XG5cblx0YXBpID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFt7IGNvbXBvc2VyLCBub3JtYWxQYXNzLCBkb3duU2FtcGxpbmdQYXNzIH0sIGNhbWVyYSwgc2NlbmUsIHJlc29sdXRpb25TY2FsZV0gPSBbXG5cdFx0XHR0aGlzLmNvbXBvc2VyRGF0YSgpLFxuXHRcdFx0dGhpcy5jYW1lcmEoKSxcblx0XHRcdHRoaXMuc2NlbmUoKSxcblx0XHRcdHRoaXMucmVzb2x1dGlvblNjYWxlKCksXG5cdFx0XTtcblx0XHRyZXR1cm4geyBjb21wb3NlciwgY2FtZXJhLCBzY2VuZSwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcywgcmVzb2x1dGlvblNjYWxlIH07XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmRpc2FibGVUb25lTWFwcGluZygpO1xuXHRcdFx0dGhpcy5zZXRDb21wb3NlclNpemUoKTtcblx0XHRcdHRoaXMudXBkYXRlUGFzc2VzKCk7XG5cblx0XHRcdGluamVjdEJlZm9yZVJlbmRlcihcblx0XHRcdFx0KHsgZGVsdGEgfSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IFt7IGNvbXBvc2VyIH0sIHsgZW5hYmxlZCwgYXV0b0NsZWFyLCBzdGVuY2lsQnVmZmVyIH0sIGdsXSA9IFtcblx0XHRcdFx0XHRcdHRoaXMuY29tcG9zZXJEYXRhKCksXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbnMoKSxcblx0XHRcdFx0XHRcdHRoaXMuZ2woKSxcblx0XHRcdFx0XHRdO1xuXG5cdFx0XHRcdFx0aWYgKGVuYWJsZWQpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRBdXRvQ2xlYXIgPSBnbC5hdXRvQ2xlYXI7XG5cdFx0XHRcdFx0XHRnbC5hdXRvQ2xlYXIgPSBhdXRvQ2xlYXI7XG5cdFx0XHRcdFx0XHRpZiAoc3RlbmNpbEJ1ZmZlciAmJiAhYXV0b0NsZWFyKSBnbC5jbGVhclN0ZW5jaWwoKTtcblx0XHRcdFx0XHRcdGNvbXBvc2VyLnJlbmRlcihkZWx0YSk7XG5cdFx0XHRcdFx0XHRnbC5hdXRvQ2xlYXIgPSBjdXJyZW50QXV0b0NsZWFyO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0eyBpbmplY3RvcjogdGhpcy5pbmplY3RvciwgcHJpb3JpdHk6IHRoaXMub3B0aW9ucygpLmVuYWJsZWQgPyB0aGlzLm9wdGlvbnMoKS5yZW5kZXJQcmlvcml0eSA6IDAgfSxcblx0XHRcdCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvLyBOT1RFOiBEaXNhYmxlIHRvbmUgbWFwcGluZyBiZWNhdXNlIHRocmVlanMgZGlzYWxsb3dzIHRvbmVtYXBwaW5nIG9uIHJlbmRlciB0YXJnZXRzXG5cdHByaXZhdGUgZGlzYWJsZVRvbmVNYXBwaW5nKCkge1xuXHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBnbCA9IHRoaXMuZ2woKTtcblx0XHRcdGNvbnN0IGN1cnJlbnRUb25lbWFwcGluZyA9IGdsLnRvbmVNYXBwaW5nO1xuXHRcdFx0Z2wudG9uZU1hcHBpbmcgPSBOb1RvbmVNYXBwaW5nO1xuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0Z2wudG9uZU1hcHBpbmcgPSBjdXJyZW50VG9uZW1hcHBpbmc7XG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBzZXRDb21wb3NlclNpemUoKSB7XG5cdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFt7IGNvbXBvc2VyIH0sIHsgd2lkdGgsIGhlaWdodCB9XSA9IFt0aGlzLmNvbXBvc2VyRGF0YSgpLCB0aGlzLnNpemUoKV07XG5cdFx0XHRpZiAoY29tcG9zZXIpIHtcblx0XHRcdFx0Y29tcG9zZXIuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgdXBkYXRlUGFzc2VzKCkge1xuXHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbZ3JvdXAsIHsgY29tcG9zZXIsIG5vcm1hbFBhc3MsIGRvd25TYW1wbGluZ1Bhc3MgfSwgY2FtZXJhXSA9IFtcblx0XHRcdFx0dGhpcy5ncm91cCgpLFxuXHRcdFx0XHR0aGlzLmNvbXBvc2VyRGF0YSgpLFxuXHRcdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0XTtcblxuXHRcdFx0Y29uc3QgcGFzc2VzOiBQYXNzW10gPSBbXTtcblxuXHRcdFx0aWYgKGdyb3VwLm5hdGl2ZUVsZW1lbnQgJiYgY29tcG9zZXIpIHtcblx0XHRcdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoZ3JvdXAubmF0aXZlRWxlbWVudCk7XG5cdFx0XHRcdGlmICghbG9jYWxTdGF0ZSkgcmV0dXJuO1xuXG5cdFx0XHRcdGNvbnN0IGNoaWxkcmVuID0gbG9jYWxTdGF0ZS5ub25PYmplY3RzKCk7XG5cdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRjb25zdCBjaGlsZCA9IGNoaWxkcmVuW2ldO1xuXHRcdFx0XHRcdGlmIChjaGlsZCBpbnN0YW5jZW9mIEVmZmVjdCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgZWZmZWN0czogRWZmZWN0W10gPSBbY2hpbGRdO1xuXG5cdFx0XHRcdFx0XHRpZiAoIWlzQ29udm9sdXRpb24oY2hpbGQpKSB7XG5cdFx0XHRcdFx0XHRcdGxldCBuZXh0OiB1bmtub3duID0gbnVsbDtcblx0XHRcdFx0XHRcdFx0d2hpbGUgKChuZXh0ID0gY2hpbGRyZW5baSArIDFdKSBpbnN0YW5jZW9mIEVmZmVjdCkge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChpc0NvbnZvbHV0aW9uKG5leHQpKSBicmVhaztcblx0XHRcdFx0XHRcdFx0XHRlZmZlY3RzLnB1c2gobmV4dCBhcyBFZmZlY3QpO1xuXHRcdFx0XHRcdFx0XHRcdGkrKztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRjb25zdCBwYXNzID0gbmV3IEVmZmVjdFBhc3MoY2FtZXJhLCAuLi5lZmZlY3RzKTtcblx0XHRcdFx0XHRcdHBhc3Nlcy5wdXNoKHBhc3MpO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY2hpbGQgaW5zdGFuY2VvZiBQYXNzKSB7XG5cdFx0XHRcdFx0XHRwYXNzZXMucHVzaChjaGlsZCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Zm9yIChjb25zdCBwYXNzIG9mIHBhc3Nlcykge1xuXHRcdFx0XHRcdGNvbXBvc2VyLmFkZFBhc3MocGFzcyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAobm9ybWFsUGFzcykgbm9ybWFsUGFzcy5lbmFibGVkID0gdHJ1ZTtcblx0XHRcdFx0aWYgKGRvd25TYW1wbGluZ1Bhc3MpIGRvd25TYW1wbGluZ1Bhc3MuZW5hYmxlZCA9IHRydWU7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdGZvciAoY29uc3QgcGFzcyBvZiBwYXNzZXMpIGNvbXBvc2VyPy5yZW1vdmVQYXNzKHBhc3MpO1xuXHRcdFx0XHRpZiAobm9ybWFsUGFzcykgbm9ybWFsUGFzcy5lbmFibGVkID0gZmFsc2U7XG5cdFx0XHRcdGlmIChkb3duU2FtcGxpbmdQYXNzKSBkb3duU2FtcGxpbmdQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdH07XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LWNvbXBvc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC1jb21wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLGVBQWUsRUFDZixRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUNOLHFCQUFxQixFQUNyQixNQUFNLEVBQ04sZUFBZSxFQUNmLGNBQWMsRUFDZCxVQUFVLEVBQ1YsVUFBVSxFQUNWLElBQUksRUFDSixVQUFVLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQVUsS0FBSyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQTBCLE1BQU0sT0FBTyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFakQsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQWlCbEIsTUFBTSxjQUFjLEdBQThCO0lBQ2pELE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLENBQUM7SUFDakIsU0FBUyxFQUFFLElBQUk7SUFDZixhQUFhLEVBQUUsQ0FBQztJQUNoQixlQUFlLEVBQUUsYUFBYTtDQUM5QixDQUFDO0FBRUYsU0FBUyxhQUFhLENBQUMsTUFBYztJQUNwQyxPQUFPLENBQUMsTUFBTSxD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QixDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDeEQsQ0FBQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQTVLVyxrQkFBa0I7a0dBQWxCLGtCQUFrQiwwVUFScEI7Ozs7RUFJVDs7MkZBSVcsa0JBQWtCO2tCQVg5QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0SW5qZWN0b3IsXG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Y29tcHV0ZWQsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIGdldExvY2FsU3RhdGUsIGluamVjdEJlZm9yZVJlbmRlciwgaW5qZWN0U3RvcmUsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7XG5cdERlcHRoRG93bnNhbXBsaW5nUGFzcyxcblx0RWZmZWN0LFxuXHRFZmZlY3RBdHRyaWJ1dGUsXG5cdEVmZmVjdENvbXBvc2VyLFxuXHRFZmZlY3RQYXNzLFxuXHROb3JtYWxQYXNzLFxuXHRQYXNzLFxuXHRSZW5kZXJQYXNzLFxufSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBDYW1lcmEsIEdyb3VwLCBIYWxmRmxvYXRUeXBlLCBOb1RvbmVNYXBwaW5nLCBTY2VuZSwgVGV4dHVyZURhdGFUeXBlIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgaXNXZWJHTDJBdmFpbGFibGUgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5leHRlbmQoeyBHcm91cCB9KTtcblxuaW50ZXJmYWNlIE5ndHBFZmZlY3RDb21wb3Nlck9wdGlvbnMge1xuXHRlbmFibGVkOiBib29sZWFuO1xuXHRkZXB0aEJ1ZmZlcj86IGJvb2xlYW47XG5cdC8qKiBPbmx5IHVzZWQgZm9yIFNTR0kgY3VycmVudGx5LCBsZWF2ZSBpdCBkaXNhYmxlZCBmb3IgZXZlcnl0aGluZyBlbHNlIHVubGVzcyBpdCdzIG5lZWRlZCAqL1xuXHRlbmFibGVOb3JtYWxQYXNzPzogYm9vbGVhbjtcblx0c3RlbmNpbEJ1ZmZlcj86IGJvb2xlYW47XG5cdGF1dG9DbGVhcjogYm9vbGVhbjtcblx0cmVzb2x1dGlvblNjYWxlPzogbnVtYmVyO1xuXHRtdWx0aXNhbXBsaW5nOiBudW1iZXI7XG5cdGZyYW1lQnVmZmVyVHlwZTogVGV4dHVyZURhdGFUeXBlO1xuXHRyZW5kZXJQcmlvcml0eTogbnVtYmVyO1xuXHRjYW1lcmE/OiBDYW1lcmE7XG5cdHNjZW5lPzogU2NlbmU7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RwRWZmZWN0Q29tcG9zZXJPcHRpb25zID0ge1xuXHRlbmFibGVkOiB0cnVlLFxuXHRyZW5kZXJQcmlvcml0eTogMSxcblx0YXV0b0NsZWFyOiB0cnVlLFxuXHRtdWx0aXNhbXBsaW5nOiA4LFxuXHRmcmFtZUJ1ZmZlclR5cGU6IEhhbGZGbG9hdFR5cGUsXG59O1xuXG5mdW5jdGlvbiBpc0NvbnZvbHV0aW9uKGVmZmVjdDogRWZmZWN0KSB7XG5cdHJldHVybiAoZWZmZWN0LmdldEF0dHJpYnV0ZXMoKSAmIEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTikgPT09IEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTjtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1lZmZlY3QtY29tcG9zZXInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZ3JvdXAgI2dyb3VwPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEVmZmVjdENvbXBvc2VyIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXHRwcml2YXRlIGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIHNpemUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpO1xuXHRwcml2YXRlIGdsID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJyk7XG5cdHByaXZhdGUgZGVmYXVsdFNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cdHByaXZhdGUgZGVmYXVsdENhbWVyYSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdjYW1lcmEnKTtcblxuXHRkZXB0aEJ1ZmZlciA9IHBpY2sodGhpcy5vcHRpb25zLCAnZGVwdGhCdWZmZXInKTtcblx0c3RlbmNpbEJ1ZmZlciA9IHBpY2sodGhpcy5vcHRpb25zLCAnc3RlbmNpbEJ1ZmZlcicpO1xuXHRtdWx0aXNhbXBsaW5nID0gcGljayh0aGlzLm9wdGlvbnMsICdtdWx0aXNhbXBsaW5nJyk7XG5cdGZyYW1lQnVmZmVyVHlwZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnZnJhbWVCdWZmZXJUeXBlJyk7XG5cdHNjZW5lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkuc2NlbmUgPz8gdGhpcy5kZWZhdWx0U2NlbmUoKSk7XG5cdGNhbWVyYSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmNhbWVyYSA/PyB0aGlzLmRlZmF1bHRDYW1lcmEoKSk7XG5cdGVuYWJsZU5vcm1hbFBhc3MgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2VuYWJsZU5vcm1hbFBhc3MnKTtcblx0cmVzb2x1dGlvblNjYWxlID0gcGljayh0aGlzLm9wdGlvbnMsICdyZXNvbHV0aW9uU2NhbGUnKTtcblxuXHRncm91cCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEdyb3VwPj4oJ2dyb3VwJyk7XG5cblx0Y29tcG9zZXJEYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHdlYkdMMkF2YWlsYWJsZSA9IGlzV2ViR0wyQXZhaWxhYmxlKCk7XG5cdFx0Y29uc3QgW1xuXHRcdFx0Z2wsXG5cdFx0XHRzY2VuZSxcblx0XHRcdGNhbWVyYSxcblx0XHRcdGRlcHRoQnVmZmVyLFxuXHRcdFx0c3RlbmNpbEJ1ZmZlcixcblx0XHRcdG11bHRpc2FtcGxpbmcsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0XHRlbmFibGVOb3JtYWxQYXNzLFxuXHRcdFx0cmVzb2x1dGlvblNjYWxlLFxuXHRcdF0gPSBbXG5cdFx0XHR0aGlzLmdsKCksXG5cdFx0XHR0aGlzLnNjZW5lKCksXG5cdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0dGhpcy5kZXB0aEJ1ZmZlcigpLFxuXHRcdFx0dGhpcy5zdGVuY2lsQnVmZmVyKCksXG5cdFx0XHR0aGlzLm11bHRpc2FtcGxpbmcoKSxcblx0XHRcdHRoaXMuZnJhbWVCdWZmZXJUeXBlKCksXG5cdFx0XHR0aGlzLmVuYWJsZU5vcm1hbFBhc3MoKSxcblx0XHRcdHRoaXMucmVzb2x1dGlvblNjYWxlKCksXG5cdFx0XTtcblxuXHRcdC8vIGluaXRpYWxpemUgY29tcG9zZXJcblx0XHRjb25zdCBjb21wb3NlciA9IG5ldyBFZmZlY3RDb21wb3NlcihnbCwge1xuXHRcdFx0ZGVwdGhCdWZmZXIsXG5cdFx0XHRzdGVuY2lsQnVmZmVyLFxuXHRcdFx0bXVsdGlzYW1wbGluZzogbXVsdGlzYW1wbGluZyA+IDAgJiYgd2ViR0wyQXZhaWxhYmxlID8gbXVsdGlzYW1wbGluZyA6IDAsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0fSk7XG5cblx0XHQvLyBhZGQgcmVuZGVyIHBhc3Ncblx0XHRjb21wb3Nlci5hZGRQYXNzKG5ldyBSZW5kZXJQYXNzKHNjZW5lLCBjYW1lcmEpKTtcblxuXHRcdC8vIGNyZWF0ZSBub3JtYWwgcGFzc1xuXHRcdGxldCBkb3duU2FtcGxpbmdQYXNzID0gbnVsbDtcblx0XHRsZXQgbm9ybWFsUGFzcyA9IG51bGw7XG5cdFx0aWYgKGVuYWJsZU5vcm1hbFBhc3MpIHtcblx0XHRcdG5vcm1hbFBhc3MgPSBuZXcgTm9ybWFsUGFzcyhzY2VuZSwgY2FtZXJhKTtcblx0XHRcdG5vcm1hbFBhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhub3JtYWxQYXNzKTtcblx0XHRcdGlmIChyZXNvbHV0aW9uU2NhbGUgIT09IHVuZGVmaW5lZCAmJiB3ZWJHTDJBdmFpbGFibGUpIHtcblx0XHRcdFx0ZG93blNhbXBsaW5nUGFzcyA9IG5ldyBEZXB0aERvd25zYW1wbGluZ1Bhc3MoeyBub3JtYWxCdWZmZXI6IG5vcm1hbFBhc3MudGV4dHVyZSwgcmVzb2x1dGlvblNjYWxlIH0pO1xuXHRcdFx0XHRkb3duU2FtcGxpbmdQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhkb3duU2FtcGxpbmdQYXNzKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4geyBjb21wb3Nlciwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcyB9O1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5kaXNhYmxlVG9uZU1hcHBpbmcoKTtcblx0XHRcdHRoaXMuc2V0Q29tcG9zZXJTaXplKCk7XG5cdFx0XHR0aGlzLnVwZGF0ZVBhc3NlcygpO1xuXG5cdFx0XHRpbmplY3RCZWZvcmVSZW5kZXIoXG5cdFx0XHRcdCh7IGRlbHRhIH0pID0+IHtcblx0XHRcdFx0XHRjb25zdCBbeyBjb21wb3NlciB9LCB7IGVuYWJsZWQsIGF1dG9DbGVhciwgc3RlbmNpbEJ1ZmZlciB9LCBnbF0gPSBbXG5cdFx0XHRcdFx0XHR0aGlzLmNvbXBvc2VyRGF0YSgpLFxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb25zKCksXG5cdFx0XHRcdFx0XHR0aGlzLmdsKCksXG5cdFx0XHRcdFx0XTtcblxuXHRcdFx0XHRcdGlmIChlbmFibGVkKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBjdXJyZW50QXV0b0NsZWFyID0gZ2wuYXV0b0NsZWFyO1xuXHRcdFx0XHRcdFx0Z2wuYXV0b0NsZWFyID0gYXV0b0NsZWFyO1xuXHRcdFx0XHRcdFx0aWYgKHN0ZW5jaWxCdWZmZXIgJiYgIWF1dG9DbGVhcikgZ2wuY2xlYXJTdGVuY2lsKCk7XG5cdFx0XHRcdFx0XHRjb21wb3Nlci5yZW5kZXIoZGVsdGEpO1xuXHRcdFx0XHRcdFx0Z2wuYXV0b0NsZWFyID0gY3VycmVudEF1dG9DbGVhcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHsgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsIHByaW9yaXR5OiB0aGlzLm9wdGlvbnMoKS5lbmFibGVkID8gdGhpcy5vcHRpb25zKCkucmVuZGVyUHJpb3JpdHkgOiAwIH0sXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG5cblx0Ly8gTk9URTogRGlzYWJsZSB0b25lIG1hcHBpbmcgYmVjYXVzZSB0aHJlZWpzIGRpc2FsbG93cyB0b25lbWFwcGluZyBvbiByZW5kZXIgdGFyZ2V0c1xuXHRwcml2YXRlIGRpc2FibGVUb25lTWFwcGluZygpIHtcblx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgZ2wgPSB0aGlzLmdsKCk7XG5cdFx0XHRjb25zdCBjdXJyZW50VG9uZW1hcHBpbmcgPSBnbC50b25lTWFwcGluZztcblx0XHRcdGdsLnRvbmVNYXBwaW5nID0gTm9Ub25lTWFwcGluZztcblx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdGdsLnRvbmVNYXBwaW5nID0gY3VycmVudFRvbmVtYXBwaW5nO1xuXHRcdFx0fTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgc2V0Q29tcG9zZXJTaXplKCkge1xuXHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbeyBjb21wb3NlciB9LCB7IHdpZHRoLCBoZWlnaHQgfV0gPSBbdGhpcy5jb21wb3NlckRhdGEoKSwgdGhpcy5zaXplKCldO1xuXHRcdFx0aWYgKGNvbXBvc2VyKSB7XG5cdFx0XHRcdGNvbXBvc2VyLnNldFNpemUod2lkdGgsIGhlaWdodCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZVBhc3NlcygpIHtcblx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2dyb3VwLCB7IGNvbXBvc2VyLCBub3JtYWxQYXNzLCBkb3duU2FtcGxpbmdQYXNzIH0sIGNhbWVyYV0gPSBbXG5cdFx0XHRcdHRoaXMuZ3JvdXAoKSxcblx0XHRcdFx0dGhpcy5jb21wb3NlckRhdGEoKSxcblx0XHRcdFx0dGhpcy5jYW1lcmEoKSxcblx0XHRcdF07XG5cblx0XHRcdGNvbnN0IHBhc3NlczogUGFzc1tdID0gW107XG5cblx0XHRcdGlmIChncm91cC5uYXRpdmVFbGVtZW50ICYmIGNvbXBvc2VyKSB7XG5cdFx0XHRcdGNvbnN0IGxvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGdyb3VwLm5hdGl2ZUVsZW1lbnQpO1xuXHRcdFx0XHRpZiAoIWxvY2FsU3RhdGUpIHJldHVybjtcblxuXHRcdFx0XHRjb25zdCBjaGlsZHJlbiA9IGxvY2FsU3RhdGUubm9uT2JqZWN0cygpO1xuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0Y29uc3QgY2hpbGQgPSBjaGlsZHJlbltpXTtcblx0XHRcdFx0XHRpZiAoY2hpbGQgaW5zdGFuY2VvZiBFZmZlY3QpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGVmZmVjdHM6IEVmZmVjdFtdID0gW2NoaWxkXTtcblxuXHRcdFx0XHRcdFx0aWYgKCFpc0NvbnZvbHV0aW9uKGNoaWxkKSkge1xuXHRcdFx0XHRcdFx0XHRsZXQgbmV4dDogdW5rbm93biA9IG51bGw7XG5cdFx0XHRcdFx0XHRcdHdoaWxlICgobmV4dCA9IGNoaWxkcmVuW2kgKyAxXSkgaW5zdGFuY2VvZiBFZmZlY3QpIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoaXNDb252b2x1dGlvbihuZXh0KSkgYnJlYWs7XG5cdFx0XHRcdFx0XHRcdFx0ZWZmZWN0cy5wdXNoKG5leHQgYXMgRWZmZWN0KTtcblx0XHRcdFx0XHRcdFx0XHRpKys7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Y29uc3QgcGFzcyA9IG5ldyBFZmZlY3RQYXNzKGNhbWVyYSwgLi4uZWZmZWN0cyk7XG5cdFx0XHRcdFx0XHRwYXNzZXMucHVzaChwYXNzKTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNoaWxkIGluc3RhbmNlb2YgUGFzcykge1xuXHRcdFx0XHRcdFx0cGFzc2VzLnB1c2goY2hpbGQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZvciAoY29uc3QgcGFzcyBvZiBwYXNzZXMpIHtcblx0XHRcdFx0XHRjb21wb3Nlci5hZGRQYXNzKHBhc3MpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKG5vcm1hbFBhc3MpIG5vcm1hbFBhc3MuZW5hYmxlZCA9IHRydWU7XG5cdFx0XHRcdGlmIChkb3duU2FtcGxpbmdQYXNzKSBkb3duU2FtcGxpbmdQYXNzLmVuYWJsZWQgPSB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRmb3IgKGNvbnN0IHBhc3Mgb2YgcGFzc2VzKSBjb21wb3Nlcj8ucmVtb3ZlUGFzcyhwYXNzKTtcblx0XHRcdFx0aWYgKG5vcm1hbFBhc3MpIG5vcm1hbFBhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0XHRpZiAoZG93blNhbXBsaW5nUGFzcykgZG93blNhbXBsaW5nUGFzcy5lbmFibGVkID0gZmFsc2U7XG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
|
package/esm2022/lib/effect.mjs
CHANGED
|
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
47
47
|
args: [{ standalone: true }]
|
|
48
48
|
}] });
|
|
49
49
|
export const NgtpEffectHostDirective = { directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] };
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBRzdFLE1BQU0sQ0FBQyxNQUFNLENBQUMsMEJBQTBCLEVBQUUsMkJBQTJCLENBQUMsR0FBRyx3QkFBd0IsQ0FHOUYsd0JBQXdCLENBQUMsQ0FBQztBQWM3QixNQUFNLE9BQU8sbUJBQW1CO0lBWmhDO1FBYUMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUNoRDs4R0FGWSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrRkFUckI7Ozs7O0VBS1Q7OzJGQUlXLG1CQUFtQjtrQkFaL0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0M7O0FBTUQsTUFBTSxPQUFPLFVBQVU7SUFEdkI7UUFFQyx5QkFBb0IsR0FBRywwQkFBMEIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXRFLGtCQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNoRSxZQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU1QyxVQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDOUIsV0FBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLGVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUM3Qzs4R0FUWSxVQUFVO2tHQUFWLFVBQVU7OzJGQUFWLFVBQVU7a0JBRHRCLFNBQVM7bUJBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOztBQVkvQixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEaXJlY3RpdmUsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBjcmVhdGVOb29wSW5qZWN0aW9uVG9rZW4gfSBmcm9tICduZ3h0ZW5zaW9uL2NyZWF0ZS1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcblxuZXhwb3J0IGNvbnN0IFtpbmplY3REZWZhdWx0RWZmZWN0T3B0aW9ucywgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zXSA9IGNyZWF0ZU5vb3BJbmplY3Rpb25Ub2tlbjx7XG5cdGJsZW5kRnVuY3Rpb24/OiBCbGVuZEZ1bmN0aW9uO1xuXHRvcGFjaXR5PzogbnVtYmVyO1xufT4oJ0RlZmF1bHQgRWZmZWN0IG9wdGlvbnMnKTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1lZmZlY3QtYmxlbmQtbW9kZScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0QGlmIChlZmZlY3QpIHtcblx0XHRcdDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cImVmZmVjdC5ibGVuZEZ1bmN0aW9uKClcIiBhdHRhY2g9XCJibGVuZE1vZGUuYmxlbmRGdW5jdGlvblwiIC8+XG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJlZmZlY3Qub3BhY2l0eSgpXCIgYXR0YWNoPVwiYmxlbmRNb2RlLm9wYWNpdHkudmFsdWVcIiAvPlxuXHRcdH1cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEVmZmVjdEJsZW5kTW9kZSB7XG5cdGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xufVxuXG5ARGlyZWN0aXZlKHsgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndHBFZmZlY3Qge1xuXHRkZWZhdWx0RWZmZWN0T3B0aW9ucyA9IGluamVjdERlZmF1bHRFZmZlY3RPcHRpb25zKHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cblx0YmxlbmRGdW5jdGlvbiA9IGlucHV0KHRoaXMuZGVmYXVsdEVmZmVjdE9wdGlvbnM/LmJsZW5kRnVuY3Rpb24pO1xuXHRvcGFjaXR5ID0gaW5wdXQodGhpcy5kZWZhdWx0RWZmZWN0T3B0aW9ucz8ub3BhY2l0eSk7XG5cblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdGNhbWVyYSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdjYW1lcmEnKTtcblx0aW52YWxpZGF0ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdpbnZhbGlkYXRlJyk7XG59XG5cbmV4cG9ydCBjb25zdCBOZ3RwRWZmZWN0SG9zdERpcmVjdGl2ZSA9IHsgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfTtcbiJdfQ==
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, afterNextRender, computed, input, } from '@angular/core';
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, afterNextRender, computed, inject, input, } from '@angular/core';
|
|
2
2
|
import { NgtArgs } from 'angular-three';
|
|
3
3
|
import { injectAutoEffect } from 'ngxtension/auto-effect';
|
|
4
4
|
import { DepthOfFieldEffect, MaskFunction } from 'postprocessing';
|
|
5
5
|
import { Vector3 } from 'three';
|
|
6
|
-
import {
|
|
6
|
+
import { NgtpEffectComposer } from '../effect-composer';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class NgtpDepthOfField {
|
|
9
9
|
constructor() {
|
|
10
10
|
this.autoEffect = injectAutoEffect();
|
|
11
|
-
this.
|
|
11
|
+
this.effectComposer = inject(NgtpEffectComposer);
|
|
12
12
|
this.options = input({});
|
|
13
13
|
this.autoFocus = computed(() => this.options().target != null);
|
|
14
14
|
this.effect = computed(() => {
|
|
15
|
-
const [
|
|
15
|
+
const [camera, options, autoFocus] = [this.effectComposer.camera(), this.options(), this.autoFocus()];
|
|
16
16
|
const effect = new DepthOfFieldEffect(camera, options);
|
|
17
17
|
// Creating a target enables autofocus, R3F will set via props
|
|
18
18
|
if (autoFocus)
|
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
53
53
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
54
54
|
}]
|
|
55
55
|
}], ctorParameters: () => [] });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGgtb2YtZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC1vZi1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBbUMsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQXNCeEQsTUFBTSxPQUFPLGdCQUFnQjtJQTBCNUI7UUF6QlEsZUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDaEMsbUJBQWMsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVwRCxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQWdCLENBQUMsQ0FBQztRQUUxQixjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUM7UUFFbEUsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUV0RyxNQUFNLE1BQU0sR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUV2RCw4REFBOEQ7WUFDOUQsSUFBSSxTQUFTO2dCQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QyxpRUFBaUU7WUFDakUsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFpQyxDQUFDLENBQUM7WUFDOUcsQ0FBQztZQUNELDJHQUEyRztZQUMzRyxNQUFNLFFBQVEsR0FBSSxNQUFjLENBQUMsUUFBUSxDQUFDO1lBQzFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLHNCQUFzQixDQUFDO1lBRTVELE9BQU8sTUFBTSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7UUFHRixlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sR0FBRyxFQUFFO29CQUNYLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBbkNXLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLHlOQVBsQjs7RUFFVCw0REFDUyxPQUFPOzsyRkFJTCxnQkFBZ0I7a0JBVjVCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbXB1dGVkLFxuXHRpbmplY3QsXG5cdGlucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIE5ndFZlY3RvcjMgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IERlcHRoT2ZGaWVsZEVmZmVjdCwgTWFza0Z1bmN0aW9uIH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgRGVwdGhQYWNraW5nU3RyYXRlZ2llcywgVGV4dHVyZSwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHBFZmZlY3RDb21wb3NlciB9IGZyb20gJy4uL2VmZmVjdC1jb21wb3Nlcic7XG5cbnR5cGUgRE9GT3B0aW9ucyA9IE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgRGVwdGhPZkZpZWxkRWZmZWN0PlsxXT4gJlxuXHRQYXJ0aWFsPHtcblx0XHR0YXJnZXQ6IE5ndFZlY3RvcjM7XG5cdFx0ZGVwdGhUZXh0dXJlOiB7XG5cdFx0XHR0ZXh0dXJlOiBUZXh0dXJlO1xuXHRcdFx0Ly8gVE9ETzogbmFycm93IHRvIERlcHRoUGFja2luZ1N0cmF0ZWdpZXNcblx0XHRcdHBhY2tpbmc6IG51bWJlcjtcblx0XHR9O1xuXHR9PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1kZXB0aC1vZi1maWVsZCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwRGVwdGhPZkZpZWxkIHtcblx0cHJpdmF0ZSBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIERPRk9wdGlvbnMpO1xuXG5cdHByaXZhdGUgYXV0b0ZvY3VzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkudGFyZ2V0ICE9IG51bGwpO1xuXG5cdGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbY2FtZXJhLCBvcHRpb25zLCBhdXRvRm9jdXNdID0gW3RoaXMuZWZmZWN0Q29tcG9zZXIuY2FtZXJhKCksIHRoaXMub3B0aW9ucygpLCB0aGlzLmF1dG9Gb2N1cygpXTtcblxuXHRcdGNvbnN0IGVmZmVjdCA9IG5ldyBEZXB0aE9mRmllbGRFZmZlY3QoY2FtZXJhLCBvcHRpb25zKTtcblxuXHRcdC8vIENyZWF0aW5nIGEgdGFyZ2V0IGVuYWJsZXMgYXV0b2ZvY3VzLCBSM0Ygd2lsbCBzZXQgdmlhIHByb3BzXG5cdFx0aWYgKGF1dG9Gb2N1cykgZWZmZWN0LnRhcmdldCA9IG5ldyBWZWN0b3IzKCk7XG5cdFx0Ly8gRGVwdGggdGV4dHVyZSBmb3IgZGVwdGggcGlja2luZyB3aXRoIG9wdGlvbmFsIHBhY2tpbmcgc3RyYXRlZ3lcblx0XHRpZiAob3B0aW9ucy5kZXB0aFRleHR1cmUpIHtcblx0XHRcdGVmZmVjdC5zZXREZXB0aFRleHR1cmUob3B0aW9ucy5kZXB0aFRleHR1cmUudGV4dHVyZSwgb3B0aW9ucy5kZXB0aFRleHR1cmUucGFja2luZyBhcyBEZXB0aFBhY2tpbmdTdHJhdGVnaWVzKTtcblx0XHR9XG5cdFx0Ly8gVGVtcG9yYXJ5IGZpeCB0aGF0IHJlc3RvcmVzIERPRiA2LjIxLjMgYmVoYXZpb3IsIGV2ZXJ5dGhpbmcgc2luY2UgdGhlbiBsZXRzIHNoYXBlcyBsZWFrIHRocm91Z2ggdGhlIGJsdXJcblx0XHRjb25zdCBtYXNrUGFzcyA9IChlZmZlY3QgYXMgYW55KS5tYXNrUGFzcztcblx0XHRtYXNrUGFzcy5tYXNrRnVuY3Rpb24gPSBNYXNrRnVuY3Rpb24uTVVMVElQTFlfUkdCX1NFVF9BTFBIQTtcblxuXHRcdHJldHVybiBlZmZlY3Q7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBlZmZlY3QgPSB0aGlzLmVmZmVjdCgpO1xuXHRcdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRcdGVmZmVjdC5kaXNwb3NlKCk7XG5cdFx0XHRcdH07XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuIl19
|
|
@@ -60,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
60
60
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
61
61
|
}]
|
|
62
62
|
}], ctorParameters: () => [] });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xpdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvZ2xpdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsUUFBUSxFQUNSLEtBQUssR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFjLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQXNCMUQsTUFBTSxPQUFPLFVBQVU7SUFvQ3RCO1FBbkNRLGVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hDLFVBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUN0QixlQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFckQsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQW1CLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXpGLFdBQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN0QyxTQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFbEMsVUFBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3Qyw4QkFBeUIsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1FBQy9FLGFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVyRCxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN0QixNQUFNLENBQ0wsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLEVBQzFELEtBQUssRUFDTCxRQUFRLEVBQ1IseUJBQXlCLEVBQ3pCLFFBQVEsRUFDUixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdkcsT0FBTyxJQUFJLFlBQVksQ0FBQztnQkFDdkIsS0FBSztnQkFDTCxNQUFNO2dCQUNOLE9BQU87Z0JBQ1AsYUFBYTtnQkFDYixlQUFlO2dCQUNmLEtBQUs7Z0JBQ0wsUUFBUTtnQkFDUix5QkFBeUI7Z0JBQ3pCLFFBQVE7YUFDUixDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUdGLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDcEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQzFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDekUsVUFBVSxFQUFFLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FqRFcsVUFBVTtrR0FBVixVQUFVLGlOQVBaOztFQUVULDREQUNTLE9BQU87OzJGQUlMLFVBQVU7a0JBVnRCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0aW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgTmd0VmVjdG9yMiwgaW5qZWN0U3RvcmUsIHBpY2ssIHZlY3RvcjIgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEdsaXRjaEVmZmVjdCwgR2xpdGNoTW9kZSB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcblxuZXhwb3J0IHR5cGUgR2xpdGNoT3B0aW9ucyA9IE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgR2xpdGNoRWZmZWN0PlswXT4gJlxuXHRQYXJ0aWFsPHtcblx0XHRtb2RlOiBHbGl0Y2hNb2RlO1xuXHRcdGFjdGl2ZTogYm9vbGVhbjtcblx0XHRkZWxheTogTmd0VmVjdG9yMjtcblx0XHRkdXJhdGlvbjogTmd0VmVjdG9yMjtcblx0XHRjaHJvbWF0aWNBYmVycmF0aW9uT2Zmc2V0OiBOZ3RWZWN0b3IyO1xuXHRcdHN0cmVuZ3RoOiBOZ3RWZWN0b3IyO1xuXHR9PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1nbGl0Y2gnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEdsaXRjaCB7XG5cdHByaXZhdGUgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdHByaXZhdGUgaW52YWxpZGF0ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdpbnZhbGlkYXRlJyk7XG5cblx0b3B0aW9ucyA9IGlucHV0KHsgYWN0aXZlOiB0cnVlIH0gYXMgR2xpdGNoT3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKHsgYWN0aXZlOiB0cnVlIH0pIH0pO1xuXG5cdHByaXZhdGUgYWN0aXZlID0gcGljayh0aGlzLm9wdGlvbnMsICdhY3RpdmUnKTtcblx0cHJpdmF0ZSBtb2RlID0gcGljayh0aGlzLm9wdGlvbnMsICdtb2RlJyk7XG5cblx0cHJpdmF0ZSBkZWxheSA9IHZlY3RvcjIodGhpcy5vcHRpb25zLCAnZGVsYXknKTtcblx0cHJpdmF0ZSBkdXJhdGlvbiA9IHZlY3RvcjIodGhpcy5vcHRpb25zLCAnZHVyYXRpb24nKTtcblx0cHJpdmF0ZSBjaHJvbWF0aWNBYmVycmF0aW9uT2Zmc2V0ID0gdmVjdG9yMih0aGlzLm9wdGlvbnMsICdjaHJvbWF0aWNBYmVycmF0aW9uT2Zmc2V0Jyk7XG5cdHByaXZhdGUgc3RyZW5ndGggPSB2ZWN0b3IyKHRoaXMub3B0aW9ucywgJ3N0cmVuZ3RoJyk7XG5cblx0ZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtcblx0XHRcdHsgcmF0aW8sIGR0U2l6ZSwgY29sdW1ucywgYmxlbmRGdW5jdGlvbiwgcGVydHVyYmF0aW9uTWFwIH0sXG5cdFx0XHRkZWxheSxcblx0XHRcdGR1cmF0aW9uLFxuXHRcdFx0Y2hyb21hdGljQWJlcnJhdGlvbk9mZnNldCxcblx0XHRcdHN0cmVuZ3RoLFxuXHRcdF0gPSBbdGhpcy5vcHRpb25zKCksIHRoaXMuZGVsYXkoKSwgdGhpcy5kdXJhdGlvbigpLCB0aGlzLmNocm9tYXRpY0FiZXJyYXRpb25PZmZzZXQoKSwgdGhpcy5zdHJlbmd0aCgpXTtcblx0XHRyZXR1cm4gbmV3IEdsaXRjaEVmZmVjdCh7XG5cdFx0XHRyYXRpbyxcblx0XHRcdGR0U2l6ZSxcblx0XHRcdGNvbHVtbnMsXG5cdFx0XHRibGVuZEZ1bmN0aW9uLFxuXHRcdFx0cGVydHVyYmF0aW9uTWFwLFxuXHRcdFx0ZGVsYXksXG5cdFx0XHRkdXJhdGlvbixcblx0XHRcdGNocm9tYXRpY0FiZXJyYXRpb25PZmZzZXQsXG5cdFx0XHRzdHJlbmd0aCxcblx0XHR9KTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGVmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRcdHJldHVybiAoKSA9PiBlZmZlY3QuZGlzcG9zZSgpO1xuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IFtlZmZlY3QsIGludmFsaWRhdGUsIG1vZGUsIGFjdGl2ZV0gPSBbdGhpcy5lZmZlY3QoKSwgdGhpcy5pbnZhbGlkYXRlKCksIHRoaXMubW9kZSgpLCB0aGlzLmFjdGl2ZSgpXTtcblx0XHRcdFx0ZWZmZWN0Lm1vZGUgPSBhY3RpdmUgPyBtb2RlIHx8IEdsaXRjaE1vZGUuU1BPUkFESUMgOiBHbGl0Y2hNb2RlLkRJU0FCTEVEO1xuXHRcdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuIl19
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, afterNextRender, computed, input, } from '@angular/core';
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, afterNextRender, computed, inject, input, } from '@angular/core';
|
|
2
2
|
import { NgtArgs, is } from 'angular-three';
|
|
3
3
|
import { injectAutoEffect } from 'ngxtension/auto-effect';
|
|
4
4
|
import { GodRaysEffect } from 'postprocessing';
|
|
5
|
-
import {
|
|
5
|
+
import { NgtpEffectComposer } from '../effect-composer';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class NgtpGodRays {
|
|
8
8
|
constructor() {
|
|
9
9
|
this.autoEffect = injectAutoEffect();
|
|
10
|
-
this.
|
|
10
|
+
this.effectComposer = inject(NgtpEffectComposer);
|
|
11
11
|
this.options = input({});
|
|
12
12
|
this.effect = computed(() => {
|
|
13
|
-
const [
|
|
13
|
+
const [camera, { sun, ...options }] = [this.effectComposer.camera(), this.options()];
|
|
14
14
|
return new GodRaysEffect(camera, is.ref(sun) ? sun.nativeElement : sun, options);
|
|
15
15
|
});
|
|
16
16
|
afterNextRender(() => {
|
|
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
38
38
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
39
39
|
}]
|
|
40
40
|
}], ctorParameters: () => [] });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29kLXJheXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9nb2QtcmF5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFnQnhELE1BQU0sT0FBTyxXQUFXO0lBV3ZCO1FBVlEsZUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDaEMsbUJBQWMsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVwRCxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQW9CLENBQUMsQ0FBQztRQUV0QyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN0QixNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDckYsT0FBTyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxDQUFDO1FBR0YsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDcEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQzFELE1BQU0sQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQWxCVyxXQUFXO2tHQUFYLFdBQVcsbU5BUGI7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsV0FBVztrQkFWdkIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbXB1dGVkLFxuXHRpbmplY3QsXG5cdGlucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGlzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBHb2RSYXlzRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTWVzaCwgUG9pbnRzIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxudHlwZSBHb2RSYXlzT3B0aW9ucyA9IENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgR29kUmF5c0VmZmVjdD5bMl0gJiB7XG5cdHN1bjogTWVzaCB8IFBvaW50cyB8IEVsZW1lbnRSZWY8TWVzaCB8IFBvaW50cz47XG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWdvZC1yYXlzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBHb2RSYXlzIHtcblx0cHJpdmF0ZSBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIEdvZFJheXNPcHRpb25zKTtcblxuXHRlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgW2NhbWVyYSwgeyBzdW4sIC4uLm9wdGlvbnMgfV0gPSBbdGhpcy5lZmZlY3RDb21wb3Nlci5jYW1lcmEoKSwgdGhpcy5vcHRpb25zKCldO1xuXHRcdHJldHVybiBuZXcgR29kUmF5c0VmZmVjdChjYW1lcmEsIGlzLnJlZihzdW4pID8gc3VuLm5hdGl2ZUVsZW1lbnQgOiBzdW4sIG9wdGlvbnMpO1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgW3N1biwgZWZmZWN0XSA9IFt0aGlzLm9wdGlvbnMoKS5zdW4sIHRoaXMuZWZmZWN0KCldO1xuXHRcdFx0XHRlZmZlY3QubGlnaHRTb3VyY2UgPSBpcy5yZWYoc3VuKSA/IHN1bi5uYXRpdmVFbGVtZW50IDogc3VuO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
41
41
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
42
42
|
}]
|
|
43
43
|
}], ctorParameters: () => [] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2dyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixRQUFRLEVBQ1IsS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBZTVDLE1BQU0sT0FBTyxRQUFRO0lBYXBCO1FBWlEsZUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDaEMsVUFBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyRCxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQWlCLENBQUMsQ0FBQztRQUMzQixTQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFMUMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0MsT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUdGLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ3BELElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDekMsQ0FBQztZQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQXRCVyxRQUFRO2tHQUFSLFFBQVEsK01BUFY7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsUUFBUTtrQkFWcEIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbXB1dGVkLFxuXHRpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBpbmplY3RTdG9yZSwgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgR3JpZEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcblxudHlwZSBHcmlkT3B0aW9ucyA9IE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgR3JpZEVmZmVjdD5bMF0+ICZcblx0UGFydGlhbDx7IHNpemU6IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfSB9PjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1ncmlkJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBHcmlkIHtcblx0cHJpdmF0ZSBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0cHJpdmF0ZSBpbnZhbGlkYXRlID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2ludmFsaWRhdGUnKTtcblxuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgR3JpZE9wdGlvbnMpO1xuXHRwcml2YXRlIHNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3NpemUnKTtcblxuXHRlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgeyBzaXplOiBfLCAuLi5vcHRpb25zIH0gPSB0aGlzLm9wdGlvbnMoKTtcblx0XHRyZXR1cm4gbmV3IEdyaWRFZmZlY3Qob3B0aW9ucyk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBbc2l6ZSwgZWZmZWN0XSA9IFt0aGlzLnNpemUoKSwgdGhpcy5lZmZlY3QoKV07XG5cdFx0XHRcdGlmIChzaXplKSB7XG5cdFx0XHRcdFx0ZWZmZWN0LnNldFNpemUoc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuIl19
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// Created by Anderson Mancini 2023
|
|
2
2
|
// React Three Fiber Ultimate LensFlare
|
|
3
|
-
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, afterNextRender, computed, input, } from '@angular/core';
|
|
3
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, afterNextRender, computed, inject, input, } from '@angular/core';
|
|
4
4
|
import { NgtArgs, injectBeforeRender, injectStore } from 'angular-three';
|
|
5
5
|
import { easing } from 'maath';
|
|
6
6
|
import { injectAutoEffect } from 'ngxtension/auto-effect';
|
|
7
7
|
import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
8
8
|
import { BlendFunction, Effect } from 'postprocessing';
|
|
9
9
|
import { Color, Mesh, Uniform, Vector2, Vector3 } from 'three';
|
|
10
|
-
import {
|
|
10
|
+
import { NgtpEffectComposer } from '../effect-composer';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
const LensFlareShader = {
|
|
13
13
|
fragmentShader: /* glsl */ `
|
|
@@ -102,7 +102,7 @@ export class NgtpLensFlare {
|
|
|
102
102
|
this.viewport = this.store.select('viewport');
|
|
103
103
|
this.raycaster = this.store.select('raycaster');
|
|
104
104
|
this.pointer = this.store.select('pointer');
|
|
105
|
-
this.
|
|
105
|
+
this.effectComposer = inject(NgtpEffectComposer);
|
|
106
106
|
this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
|
|
107
107
|
this.projectedPosition = new Vector3();
|
|
108
108
|
this.mouse2d = new Vector2();
|
|
@@ -124,10 +124,11 @@ export class NgtpLensFlare {
|
|
|
124
124
|
const [effect] = [this.effect()];
|
|
125
125
|
if (!effect)
|
|
126
126
|
return;
|
|
127
|
-
const [{ followMouse, position, smoothTime }, pointer,
|
|
127
|
+
const [{ followMouse, position, smoothTime }, pointer, camera, scene, raycaster] = [
|
|
128
128
|
this.options(),
|
|
129
129
|
this.pointer(),
|
|
130
|
-
this.
|
|
130
|
+
this.effectComposer.camera(),
|
|
131
|
+
this.effectComposer.scene(),
|
|
131
132
|
this.raycaster(),
|
|
132
133
|
];
|
|
133
134
|
const uLensPosition = effect.uniforms.get('lensPosition');
|
|
@@ -191,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
191
192
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
192
193
|
}]
|
|
193
194
|
}], ctorParameters: () => [] });
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVucy1mbGFyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2xlbnMtZmxhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBQ25DLHVDQUF1QztBQUV2QyxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFFBQVEsRUFDUixLQUFLLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBVyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFN0QsTUFBTSxlQUFlLEdBQUc7SUFDdkIsY0FBYyxFQUFFLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E0QzNCO0NBQ0EsQ0FBQztBQUVGLE1BQU0sT0FBTyxlQUFnQixTQUFRLE1BQU07SUFDMUMsWUFBWSxFQUNYLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUNwQyxPQUFPLEdBQUcsSUFBSSxFQUNkLFNBQVMsR0FBRyxHQUFHLEVBQ2YsWUFBWSxHQUFHLENBQUMsSUFBSSxFQUFF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QUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQzs0QkFDMUQsb0NBQW9DOzRCQUNwQyxNQUFNLEdBQUcsR0FBRyxDQUFDO3dCQUNkLENBQUM7NkJBQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQzs0QkFDakYsMERBQTBEOzRCQUMxRCxNQUFNLEdBQUcsR0FBRyxDQUFDO3dCQUNkLENBQUM7NkJBQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDOzRCQUN4QyxzREFBc0Q7NEJBQ3RELE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQzt3QkFDbEMsQ0FBQztvQkFDRixDQUFDO2dCQUNGLENBQUM7WUFDRixDQUFDO1lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQW5GVyxhQUFhO2tHQUFiLGFBQWEscU5BUGY7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsYUFBYTtrQkFWekIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENyZWF0ZWQgYnkgQW5kZXJzb24gTWFuY2luaSAyMDIzXG4vLyBSZWFjdCBUaHJlZSBGaWJlciBVbHRpbWF0ZSBMZW5zRmxhcmVcblxuaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0aW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3RTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgZWFzaW5nIH0gZnJvbSAnbWFhdGgnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgQ29sb3IsIE1lc2gsIFRleHR1cmUsIFVuaWZvcm0sIFZlY3RvcjIsIFZlY3RvcjMgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBpbmplY3RFZmZlY3RDb21wb3NlckFwaSB9IGZyb20gJy4uL2VmZmVjdC1jb21wb3Nlcic7XG5cbmNvbnN0IExlbnNGbGFyZVNoYWRlciA9IHtcblx0ZnJhZ21lbnRTaGFkZXI6IC8qIGdsc2wgKi8gYFxuXG4gIHVuaWZvcm0gZmxvYXQgaVRpbWU7XG4gIHVuaWZvcm0gdmVjMiBsZW5zUG9zaXRpb247XG4gIHVuaWZvcm0gdmVjMiBpUmVzb2x1dGlvbjtcbiAgdW5pZm9ybSB2ZWMzIGNvbG9yR2FpbjtcbiAgdW5pZm9ybSBmbG9hdCBzdGFyUG9pbnRzO1xuICB1bmlmb3JtIGZsb2F0IGdsYXJlU2l6ZTtcbiAgdW5pZm9ybSBmbG9hdCBmbGFyZVNpemU7XG4gIHVuaWZvcm0gZmxvYXQgZmxhcmVTcGVlZDtcbiAgdW5pZm9ybSBmbG9hdCBmbGFyZVNoYXBlO1xuICB1bmlmb3JtIGZsb2F0IGhhbG9TY2FsZTtcbiAgdW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuICB1bmlmb3JtIGJvb2wgYW5pbWF0ZWQ7XG4gIHVuaWZvcm0gYm9vbCBhbmFtb3JwaGljO1xuICB1bmlmb3JtIGJvb2wgZW5hYmxlZDtcbiAgdW5pZm9ybSBib29sIHNlY29uZGFyeUdob3N0cztcbiAgdW5pZm9ybSBib29sIHN0YXJCdXJzdDtcbiAgdW5pZm9ybSBmbG9hdCBnaG9zdFNjYWxlO1xuICB1bmlmb3JtIGJvb2wgYWRpdGlvbmFsU3RyZWFrcztcbiAgdW5pZm9ybSBzYW1wbGVyMkQgbGVuc0RpcnRUZXh0dXJlO1xuICB2ZWMyIHZ4dEM7XG5cbiAgZmxvYXQgcm5kZihmbG9hdCBuKXtyZXR1cm4gZnJhY3Qoc2luKG4pICogNDM3NTguNTQ1MzEyMyk7fWZsb2F0IG5peihmbG9hdCBwKXtmbG9hdCBmbCA9IGZsb29yKHApO2Zsb2F0IGZjID0gZnJhY3QocCk7cmV0dXJuIG1peChybmRmKGZsKSxybmRmKGZsICsgMS4wKSwgZmMpO31cbiAgdmVjMyBoc3YycmdiKHZlYzMgYyl7dmVjNCBrID0gdmVjNCgxLjAsIDIuMCAvIDMuMCwgMS4wIC8gMy4wLCAzLjApO3ZlYzMgcCA9IGFicyhmcmFjdChjLnh4eCArIGsueHl6KSAqIDYuMCAtIGsud3d3KTtyZXR1cm4gYy56ICogbWl4KGsueHh4LCBjbGFtcChwIC0gay54eHgsIDAuMCwgMS4wKSwgYy55KTt9XG4gIGZsb2F0IHNhdFUoZmxvYXQgeCl7cmV0dXJuIGNsYW1wKHgsIDAuLDEuKTt9dmVjMiBydFUodmVjMiBuYXosIGZsb2F0IHJ0bil7cmV0dXJuIHZlYzIoY29zKHJ0bikgKiBuYXoueCArIHNpbihydG4pICogbmF6LnksY29zKHJ0bikgKiBuYXoueSAtIHNpbihydG4pICogbmF6LngpO31cbiAgdmVjMyBkcndGKHZlYzIgcCwgZmxvYXQgaW50ZW5zaXR5LCBmbG9hdCBybmQsIGZsb2F0IHNwZWVkLCBpbnQgaWQpe2Zsb2F0IGZsaG9zID0gKDEuIC8gMzIuKSAqIGZsb2F0KGlkKSAqIDAuMTtmbG9hdCBsaW5ncmFkID0gZGlzdGFuY2UodmVjMigwLiksIHApO2Zsb2F0IGV4cGcgPSAxLiAvIGV4cChsaW5ncmFkICogKGZyYWN0KHJuZCkgKiAwLjY2ICsgMC4zMykpO3ZlYzMgcXpUZyA9IGhzdjJyZ2IodmVjMyggZnJhY3QoIChleHBnICogOC4pICsgc3BlZWQgKiBmbGFyZVNwZWVkICsgZmxob3MpLCBwb3coMS4tYWJzKGV4cGcqMi4tMS4pLCAwLjQ1KSwgMjAuMCAqIGV4cGcgKiBpbnRlbnNpdHkpKTtmbG9hdCBpbnRlcm5hbFN0YXJQb2ludHM7aWYoYW5hbW9ycGhpYyl7aW50ZXJuYWxTdGFyUG9pbnRzID0gMS4wO30gZWxzZXtpbnRlcm5hbFN0YXJQb2ludHMgPSBzdGFyUG9pbnRzO31mbG9hdCBhbXMgPSBsZW5ndGgocCAqIGZsYXJlU2hhcGUgKiBzaW4oaW50ZXJuYWxTdGFyUG9pbnRzICogYXRhbihwLngsIHAueSkpKTtmbG9hdCBrSmhnID0gcG93KDEuLXNhdFUoYW1zKSwgKCBhbmFtb3JwaGljID8gMTAwLiA6IDEyLikpO2tKaGcgKz0gc2F0VShleHBnLTAuOSkgKiAzLjtrSmhnID0gcG93KGtKaGcgKiBleHBnLCA4LiArICgxLi1pbnRlbnNpdHkpICogNS4pO2lmKGZsYXJlU3BlZWQgPiAwLjApe3JldHVybiB2ZWMzKGtKaGcpICogcXpUZzt9IGVsc2V7cmV0dXJuIHZlYzMoa0poZykgKiBmbGFyZVNpemUgKiAxNS47fX1cbiAgZmxvYXQgYW1zMih2ZWMzIGEsIHZlYzMgYikgeyByZXR1cm4gYWJzKGEueCAtIGIueCkgKyBhYnMoYS55IC0gYi55KSArIGFicyhhLnogLSBiLnopO312ZWMzIHNhdFUodmVjMyB4KXtyZXR1cm4gY2xhbXAoeCwgdmVjMygwLjApLCB2ZWMzKDEuMCkpO31cbiAgZmxvYXQgZ2xSKHZlYzIgbmF6LCB2ZWMyIHBvcywgZmxvYXQgenNpKXt2ZWMyIG1uaTtpZihhbmltYXRlZCl7bW5pID0gcnRVKG5hei1wb3MsIGlUaW1lICogMC4xKTt9IGVsc2V7bW5pID0gbmF6LXBvczt9ZmxvYXQgYW5nID0gYXRhbihtbmkueSwgbW5pLngpICogKGFuYW1vcnBoaWMgPyAxLjAgOiBzdGFyUG9pbnRzKTtmbG9hdCBhbXMyID0gbGVuZ3RoKG1uaSk7YW1zMiA9IHBvdyhhbXMyLCAuOSk7ZmxvYXQgZjAgPSAxLjAvKGxlbmd0aChuYXotcG9zKSooMS4wL3pzaSoxNi4wKSsuMik7cmV0dXJuIGYwK2YwKihzaW4oKGFuZykpKi4yICsuMyk7fVxuICBmbG9hdCBzZEhleCh2ZWMyIHApe3AgPSBhYnMocCk7dmVjMiBxID0gdmVjMihwLngqMi4wKjAuNTc3MzUwMywgcC55ICsgcC54KjAuNTc3MzUwMyk7cmV0dXJuIGRvdChzdGVwKHEueHkscS55eCksIDEuMC1xLnl4KTt9ZmxvYXQgZnBvdyhmbG9hdCB4LCBmbG9hdCBrKXtyZXR1cm4geCA+IGsgPyBwb3coKHgtaykvKDEuMC1rKSwyLjApIDogMC4wO31cbiAgdmVjMyBySHgodmVjMiBuYXosIHZlYzIgcCwgZmxvYXQgcywgdmVjMyBjb2wpe25heiAtPSBwO2lmIChhYnMobmF6LngpIDwgMC4yKnMgJiYgYWJzKG5hei55KSA8IDAuMipzKXtyZXR1cm4gbWl4KHZlYzMoMCksbWl4KHZlYzMoMCksY29sLDAuMSArIGZwb3cobGVuZ3RoKG5hei9zKSwwLjEpKjEwLjApLHNtb290aHN0ZXAoMC4wLDAuMSxzZEhleChuYXoqMjAuMC9zKSkpO31yZXR1cm4gdmVjMygwKTt9XG4gIHZlYzMgbUxzKHZlYzIgbmF6LCB2ZWMyIHBvcyl7dmVjMiBtbmkgPSBuYXotcG9zO3ZlYzIgenhNcCA9IG5heioobGVuZ3RoKG5heikpO2Zsb2F0IGFuZyA9IGF0YW4obW5pLngsbW5pLnkpO2Zsb2F0IGYwID0gLjMvKGxlbmd0aChuYXotcG9zKSoxNi4wKzEuMCk7ZjAgPSBmMCooc2luKG5peihzaW4oYW5nKjMuOS0oYW5pbWF0ZWQgPyBpVGltZSA6IDAuMCkgKiAwLjMpICogc3RhclBvaW50cykpKi4yICk7ZmxvYXQgZjEgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKG5heisxLjIqcG9zKSwxLjkpLC4wKSo3LjA7ZmxvYXQgZjIgPSBtYXgoLjkvKDEwLjArMzIuMCpwb3cobGVuZ3RoKHp4TXArMC45OSpwb3MpLDIuMCkpLC4wKSowLjM1O2Zsb2F0IGYyMiA9IG1heCguOS8oMTEuMCszMi4wKnBvdyhsZW5ndGgoenhNcCswLjg1KnBvcyksMi4wKSksLjApKjAuMjM7ZmxvYXQgZjIzID0gbWF4KC45LygxMi4wKzMyLjAqcG93KGxlbmd0aCh6eE1wKzAuOTUqcG9zKSwyLjApKSwuMCkqMC42O3ZlYzIgenRYID0gbWl4KG5heix6eE1wLCAwLjEpO2Zsb2F0IGY0ID0gbWF4KDAuMDEtcG93KGxlbmd0aCh6dFgrMC40KnBvcyksMi45KSwuMCkqNC4wMjtmbG9hdCBmNDIgPSBtYXgoMC4wLXBvdyhsZW5ndGgoenRYKzAuNDUqcG9zKSwyLjkpLC4wKSo0LjE7ZmxvYXQgZjQzID0gbWF4KDAuMDEtcG93KGxlbmd0aCh6dFgrMC41KnBvcyksMi45KSwuMCkqNC42O3p0WCA9IG1peChuYXosenhNcCwtLjQpO2Zsb2F0IGY1ID0gbWF4KDAuMDEtcG93KGxlbmd0aCh6dFgrMC4xKnBvcyksNS41KSwuMCkqMi4wO2Zsb2F0IGY1MiA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYKzAuMipwb3MpLDUuNSksLjApKjIuMDtmbG9hdCBmNTMgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WCswLjEqcG9zKSw1LjUpLC4wKSoyLjA7enRYID0gbWl4KG5heix6eE1wLCAyLjEpO2Zsb2F0IGY2ID0gbWF4KDAuMDEtcG93KGxlbmd0aCh6dFgtMC4zKnBvcyksMS42MSksLjApKjMuMTU5O2Zsb2F0IGY2MiA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYLTAuMzI1KnBvcyksMS42MTQpLC4wKSozLjE0O2Zsb2F0IGY2MyA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYLTAuMzg5KnBvcyksMS42MjMpLC4wKSozLjEyO3ZlYzMgYyA9IHZlYzMoZ2xSKG5heixwb3MsIGdsYXJlU2l6ZSkpO3ZlYzIgcHJvdDtpZihhbmltYXRlZCl7cHJvdCA9IHJ0VShuYXogLSBwb3MsIChpVGltZSAqIDAuMSkpO30gZWxzZSBpZihhbmFtb3JwaGljKXtwcm90ID0gcnRVKG5heiAtIHBvcywgMS41NzA3OTYpO30gZWxzZSB7cHJvdCA9IG5heiAtIHBvczt9YyArPSBkcndGKHByb3QsIChhbmFtb3JwaGljID8gZmxhcmVTaXplICogMTAuIDogZmxhcmVTaXplKSwgMC4xLCBpVGltZSwgMSk7Yy5yKz1mMStmMitmNCtmNStmNjsgYy5nKz1mMStmMjIrZjQyK2Y1MitmNjI7IGMuYis9ZjErZjIzK2Y0MytmNTMrZjYzO2MgPSBjKjEuMyAqIHZlYzMobGVuZ3RoKHp4TXApKy4wOSk7Yys9dmVjMyhmMCk7cmV0dXJuIGM7fVxuICB2ZWMzIGNjKHZlYzMgY2xyLCBmbG9hdCBmY3QsZmxvYXQgZmN0Mil7ZmxvYXQgdyA9IGNsci54K2Nsci55K2Nsci56O3JldHVybiBtaXgoY2xyLHZlYzModykqZmN0LHcqZmN0Mik7fWZsb2F0IHJuZCh2ZWMyIHApe2Zsb2F0IGYgPSBmcmFjdChzaW4oZG90KHAsIHZlYzIoMTIuMTIzNCwgNzIuODM5MikgKSo0NTEyMy4yKSk7cmV0dXJuIGY7fWZsb2F0IHJuZChmbG9hdCB3KXtmbG9hdCBmID0gZnJhY3Qoc2luKHcpKjEwMDAuKTtyZXR1cm4gZjt9XG4gIGZsb2F0IHJTaHAodmVjMiBwLCBpbnQgTil7ZmxvYXQgZjtmbG9hdCBhPWF0YW4ocC54LHAueSkrLjI7ZmxvYXQgYj02LjI4MzE5L2Zsb2F0KE4pO2Y9c21vb3Roc3RlcCguNSwuNTEsIGNvcyhmbG9vciguNSthL2IpKmItYSkqbGVuZ3RoKHAueHkpKiAyLjAgIC1naG9zdFNjYWxlKTtyZXR1cm4gZjt9XG4gIHZlYzMgZHJDKHZlYzIgcCwgZmxvYXQgenNpLCBmbG9hdCBkQ3ksIHZlYzMgY2xyLCB2ZWMzIGNscjIsIGZsb2F0IGFtczIsIHZlYzIgZXNvbSl7ZmxvYXQgbCA9IGxlbmd0aChwICsgZXNvbSooYW1zMioyLikpK3pzaS8yLjtmbG9hdCBsMiA9IGxlbmd0aChwICsgZXNvbSooYW1zMio0LikpK3pzaS8zLjtmbG9hdCBjID0gbWF4KDAuMDEtcG93KGxlbmd0aChwICsgZXNvbSphbXMyKSwgenNpKmdob3N0U2NhbGUpLCAwLjApKjEwLjtmbG9hdCBjMSA9IG1heCgwLjAwMS1wb3cobC0wLjMsIDEuLzQwLikrc2luKGwqMjAuKSwgMC4wKSozLjtmbG9hdCBjMiA9ICBtYXgoMC4wOS9wb3cobGVuZ3RoKHAtZXNvbSphbXMyLy41KSoxLiwgLjk1KSwgMC4wKS8yMC47ZmxvYXQgcyA9IG1heCgwLjAyLXBvdyhyU2hwKHAqNS4gKyBlc29tKmFtczIqNS4gKyBkQ3ksIDYpICwgMS4pLCAwLjApKjEuNTtjbHIgPSBjb3ModmVjMygwLjQ0LCAuMjQsIC4yKSo4LiArIGFtczIqNC4pKjAuNSsuNTt2ZWMzIGYgPSBjKmNscjtmICs9IGMxKmNscjtmICs9IGMyKmNscjtmICs9ICBzKmNscjtyZXR1cm4gZi0wLjAxO31cbiAgdmVjNCBnZUxDKGZsb2F0IHgpe3JldHVybiB2ZWM0KHZlYzMobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgodmVjMygwLiwgMC4sIDAuKSx2ZWMzKDAuLCAwLiwgMC4pLCBzbW9vdGhzdGVwKDAuMCwgMC4wNjMsIHgpKSx2ZWMzKDAuLCAwLiwgMC4pLCBzbW9vdGhzdGVwKDAuMDYzLCAwLjEyNSwgeCkpLHZlYzMoMC4wLCAwLiwgMC4pLCBzbW9vdGhzdGVwKDAuMTI1LCAwLjE4OCwgeCkpLHZlYzMoMC4xODgsIDAuMTMxLCAwLjExNiksIHNtb290aHN0ZXAoMC4xODgsIDAuMjI3LCB4KSksdmVjMygwLjMxLCAwLjIwNCwgMC41MzcpLCBzbW9vdGhzdGVwKDAuMjI3LCAwLjI1MSwgeCkpLHZlYzMoMC4xOTIsIDAuMTA2LCAwLjI4NiksIHNtb290aHN0ZXAoMC4yNTEsIDAuMzE0LCB4KSksdmVjMygwLjEwMiwgMC4wMDgsIDAuMzQxKSwgc21vb3Roc3RlcCgwLjMxNCwgMC4zOTIsIHgpKSx2ZWMzKDAuMDg2LCAwLjAsIDAuMTQxKSwgc21vb3Roc3RlcCgwLjM5MiwgMC41MDIsIHgpKSx2ZWMzKDEuMCwgMC4zMSwgMC4wKSwgc21vb3Roc3RlcCgwLjUwMiwgMC42MDQsIHgpKSx2ZWMzKC4xLCAwLjEsIDAuMSksIHNtb290aHN0ZXAoMC42MDQsIDAuNjQzLCB4KSksdmVjMygxLjAsIDAuOTI5LCAwLjApLCBzbW9vdGhzdGVwKDAuNjQzLCAwLjc2MSwgeCkpLHZlYzMoMS4wLCAwLjA4NiwgMC40MjQpLCBzbW9vdGhzdGVwKDAuNzYxLCAwLjg0NywgeCkpLHZlYzMoMS4wLCAwLjQ5LCAwLjApLCBzbW9vdGhzdGVwKDAuODQ3LCAwLjg5LCB4KSksdmVjMygwLjk0NSwgMC4yNzUsIDAuNDc1KSwgc21vb3Roc3RlcCgwLjg5LCAwLjk0MSwgeCkpLHZlYzMoMC4yNTEsIDAuMjc1LCAwLjc5NiksIHNtb290aHN0ZXAoMC45NDEsIDEuMCwgeCkpKSwxLjApO31cbiAgZmxvYXQgZGlUTih2ZWMyIHApe3ZlYzIgZiA9IGZyYWN0KHApO2YgPSAoZiAqIGYpICogKDMuMCAtICgyLjAgKiBmKSk7ZmxvYXQgbiA9IGRvdChmbG9vcihwKSwgdmVjMigxLjAsIDE1Ny4wKSk7dmVjNCBhID0gZnJhY3Qoc2luKHZlYzQobiArIDAuMCwgbiArIDEuMCwgbiArIDE1Ny4wLCBuICsgMTU4LjApKSAqIDQzNzU4LjU0NTMxMjMpO3JldHVybiBtaXgobWl4KGEueCwgYS55LCBmLngpLCBtaXgoYS56LCBhLncsIGYueCksIGYueSk7fVxuICBmbG9hdCBmYm0odmVjMiBwKXtjb25zdCBtYXQyIG0gPSBtYXQyKDAuODAsIC0wLjYwLCAwLjYwLCAwLjgwKTtmbG9hdCBmID0gMC4wO2YgKz0gMC41MDAwKmRpVE4ocCk7IHAgPSBtKnAqMi4wMjtmICs9IDAuMjUwMCpkaVROKHApOyBwID0gbSpwKjIuMDM7ZiArPSAwLjEyNTAqZGlUTihwKTsgcCA9IG0qcCoyLjAxO2YgKz0gMC4wNjI1KmRpVE4ocCk7cmV0dXJuIGYvMC45Mzc1O31cbiAgdmVjNCBnZUxTKHZlYzIgcCl7dmVjMiBwcCA9IChwIC0gdmVjMigwLjUpKSAqIDIuMDtmbG9hdCBhID0gYXRhbihwcC55LCBwcC54KTt2ZWM0IGNwID0gdmVjNChzaW4oYSAqIDEuMCksIGxlbmd0aChwcCksIHNpbihhICogMTMuMCksIHNpbihhICogNTMuMCkpO2Zsb2F0IGQgPSBzaW4oY2xhbXAocG93KGxlbmd0aCh2ZWMyKDAuNSkgLSBwKSAqIDAuNSArIGhhbG9TY2FsZSAvMi4sIDUuMCksIDAuMCwgMS4wKSAqIDMuMTQxNTkpO3ZlYzMgYyA9IHZlYzMoZCkgKiB2ZWMzKGZibShjcC54eSAqIDE2LjApICogZmJtKGNwLnp3ICogOS4wKSAqIG1heChtYXgobWF4KG1heCgwLjUsIHNpbihhICogMS4wKSksIHNpbihhICogMy4wKSAqIDAuOCksIHNpbihhICogNy4wKSAqIDAuOCksIHNpbihhICogOS4wKSAqIDEwLjYpKTtjICo9IHZlYzMobWl4KDIuMCwgKHNpbihsZW5ndGgocHAueHkpICogMjU2LjApICogMC41KSArIDAuNSwgc2luKChjbGFtcCgobGVuZ3RoKHBwLnh5KSAtIDAuODc1KSAvIDAuMSwgMC4wLCAxLjApICsgMC4wKSAqIDIuMCAqIDMuMTQxNTkpICogMS41KSArIDAuNSkgKiAwLjMyNzU7cmV0dXJuIHZlYzQodmVjMyhjICogMS4wKSwgZCk7fVxuICB2ZWM0IGdlTEQodmVjMiBwKXtwLnh5ICs9IHZlYzIoZmJtKHAueXggKiAzLjApLCBmYm0ocC55eCAqIDIuMCkpICogMC4wODI1O3ZlYzMgbyA9IHZlYzMobWl4KDAuMTI1LCAwLjI1LCBtYXgobWF4KHNtb290aHN0ZXAoMC4xLCAwLjAsIGxlbmd0aChwIC0gdmVjMigwLjI1KSkpLHNtb290aHN0ZXAoMC40LCAwLjAsIGxlbmd0aChwIC0gdmVjMigwLjc1KSkpKSxzbW9vdGhzdGVwKDAuOCwgMC4wLCBsZW5ndGgocCAtIHZlYzIoMC44NzUsIDAuMTI1KSkpKSkpO28gKz0gdmVjMyhtYXgoZmJtKHAgKiAxLjApIC0gMC41LCAwLjApKSAqIDAuNTtvICs9IHZlYzMobWF4KGZibShwICogMi4wKSAtIDAuNSwgMC4wKSkgKiAwLjU7byArPSB2ZWMzKG1heChmYm0ocCAqIDQuMCkgLSAwLjUsIDAuMCkpICogMC4yNTtvICs9IHZlYzMobWF4KGZibShwICogOC4wKSAtIDAuNzUsIDAuMCkpICogMS4wO28gKz0gdmVjMyhtYXgoZmJtKHAgKiAxNi4wKSAtIDAuNzUsIDAuMCkpICogMC43NTtvICs9IHZlYzMobWF4KGZibShwICogNjQuMCkgLSAwLjc1LCAwLjApKSAqIDAuNTtyZXR1cm4gdmVjNChjbGFtcChvLCB2ZWMzKDAuMTUpLCB2ZWMzKDEuMCkpLCAxLjApO31cbiAgdmVjNCB0eEwoc2FtcGxlcjJEIHRleCwgdmVjMiB4dEMpe2lmKCgoeHRDLnggPCAwLikgfHwgKHh0Qy55IDwgMC4pKSB8fCAoKHh0Qy54ID4gMS4pIHx8ICh4dEMueSA+IDEuKSkpe3JldHVybiB2ZWM0KDAuMCk7fWVsc2V7cmV0dXJuIHRleHR1cmUodGV4LCB4dEMpOyB9fVxuICB2ZWM0IHR4RChzYW1wbGVyMkQgdGV4LCB2ZWMyIHh0QywgdmVjMiBkaXIsIHZlYzMgZGl0bikge3JldHVybiB2ZWM0KHR4TCh0ZXgsICh4dEMgKyAoZGlyICogZGl0bi5yKSkpLnIsdHhMKHRleCwgKHh0QyArIChkaXIgKiBkaXRuLmcpKSkuZyx0eEwodGV4LCAoeHRDICsgKGRpciAqIGRpdG4uYikpKS5iLDEuMCk7fVxuICB2ZWM0IHN0ckIoKXt2ZWMyIGFzcFh0YyA9IHZlYzIoMS4wKSAtICgoKHZ4dEMgLSB2ZWMyKDAuNSkpICogdmVjMigxLjApKSArIHZlYzIoMC41KSk7IHZlYzIgeHRDID0gdmVjMigxLjApIC0gdnh0QzsgdmVjMiBnaHZjID0gKHZlYzIoMC41KSAtIHh0QykgKiAwLjMgLSBsZW5zUG9zaXRpb247IHZlYzIgZ2hObSA9IG5vcm1hbGl6ZShnaHZjICogdmVjMigxLjApKSAqIHZlYzIoMS4wKTt2ZWMyIGhhbG9WZWMgPSBub3JtYWxpemUoZ2h2YykgKiAwLjY7dmVjMiBobE5tID0gZ2hObSAqIDAuNjt2ZWMyIHRleGVsU2l6ZSA9IHZlYzIoMS4wKSAvIHZlYzIoaVJlc29sdXRpb24ueHkpO3ZlYzMgZGl0biA9IHZlYzMoLSh0ZXhlbFNpemUueCAqIDEuNSksIDAuMiwgdGV4ZWxTaXplLnggKiAxLjUpO3ZlYzQgYyA9IHZlYzQoMC4wKTtmb3IgKGludCBpID0gMDsgaSA8IDg7IGkrKykge3ZlYzIgb2Zmc2V0ID0geHRDICsgKGdodmMgKiBmbG9hdChpKSk7YyArPSB0eEQobGVuc0RpcnRUZXh0dXJlLCBvZmZzZXQsIGdoTm0sIGRpdG4pICogcG93KG1heCgwLjAsIDEuMCAtIChsZW5ndGgodmVjMigwLjUpIC0gb2Zmc2V0KSAvIGxlbmd0aCh2ZWMyKDAuNSkpKSksIDEwLjApO312ZWMyIHV5VHJ6ID0geHRDICsgaGxObTsgcmV0dXJuIChjICogZ2VMQygobGVuZ3RoKHZlYzIoMC41KSAtIGFzcFh0YykgLyBsZW5ndGgodmVjMihoYWxvU2NhbGUpKSkpKSArKHR4RChsZW5zRGlydFRleHR1cmUsIHV5VHJ6LCBnaE5tLCBkaXRuKSAqIHBvdyhtYXgoMC4wLCAxLjAgLSAobGVuZ3RoKHZlYzIoMC41KSAtIHV5VHJ6KSAvIGxlbmd0aCh2ZWMyKDAuNSkpKSksIDEwLjApKTt9XG4gIHZvaWQgbWFpbkltYWdlKHZlYzQgdix2ZWMyIHIsb3V0IHZlYzQgaSl7dmVjMiBnPXItLjU7Zy55Kj1pUmVzb2x1dGlvbi55L2lSZXNvbHV0aW9uLng7dmVjMiBsPWxlbnNQb3NpdGlvbiouNTtsLnkqPWlSZXNvbHV0aW9uLnkvaVJlc29sdXRpb24ueDt2ZWMzIGY9bUxzKGcsbCkqMjAuKmNvbG9yR2Fpbi8yNTYuO2lmKGFkaXRpb25hbFN0cmVha3Mpe3ZlYzMgbz12ZWMzKC45LC4yLC4xKSxwPXZlYzMoLjMsLjEsLjkpO2ZvcihmbG9hdCBuPTAuO248MTAuO24rKylmKz1kckMoZyxwb3cocm5kKG4qMmUzKSoyLjgsLjEpKzEuNDEsMC4sbytuLHArbixybmQobioyMC4pKjMuKy4yLS41LGxlbnNQb3NpdGlvbik7fWlmKHNlY29uZGFyeUdob3N0cyl7dmVjMyBuPXZlYzMoMCk7bis9ckh4KGcsLWxlbnNQb3NpdGlvbiouMjUsZ2hvc3RTY2FsZSoxLjQsdmVjMyguMjUsLjM1LDApKTtuKz1ySHgoZyxsZW5zUG9zaXRpb24qLjI1LGdob3N0U2NhbGUqLjUsdmVjMygxLC41LC41KSk7bis9ckh4KGcsbGVuc1Bvc2l0aW9uKi4xLGdob3N0U2NhbGUqMS42LHZlYzMoMSkpO24rPXJIeChnLGxlbnNQb3NpdGlvbioxLjgsZ2hvc3RTY2FsZSoyLix2ZWMzKDAsLjUsLjc1KSk7bis9ckh4KGcsbGVuc1Bvc2l0aW9uKjEuMjUsZ2hvc3RTY2FsZSouOCx2ZWMzKDEsMSwuNSkpO24rPXJIeChnLC1sZW5zUG9zaXRpb24qMS4yNSxnaG9zdFNjYWxlKjUuLHZlYzMoLjUsLjUsLjI1KSk7bis9ZnBvdygxLi1hYnMoZGlzdGFuY2UobGVuc1Bvc2l0aW9uKi44LGcpLS43KSwuOTg1KSpjb2xvckdhaW4vMjEwMC47Zis9bjt9aWYoc3RhckJ1cnN0KXt2eHRDPWcrLjU7dmVjNCBuPWdlTEQoZyk7ZmxvYXQgbz0xLi1jbGFtcCgwLjUsMC4sLjUpKjIuO24rPW1peChuLHBvdyhuKjIuLHZlYzQoMikpKi41LG8pO2Zsb2F0IHM9KGcueCtnLnkpKigxLi82Lik7dmVjMiBkPW1hdDIoY29zKHMpLC1zaW4ocyksc2luKHMpLGNvcyhzKSkqdnh0QztuKz1nZUxTKGQpKjIuO2YrPWNsYW1wKG4ueHl6KnN0ckIoKS54eXosLjAxLDEuKTt9aT1lbmFibGVkP3ZlYzQobWl4KGYsdmVjMygwKSxvcGFjaXR5KSt2Lnh5eix2LncpOnZlYzQodik7fVxuYCxcbn07XG5cbmV4cG9ydCBjbGFzcyBMZW5zRmxhcmVFZmZlY3QgZXh0ZW5kcyBFZmZlY3Qge1xuXHRjb25zdHJ1Y3Rvcih7XG5cdFx0YmxlbmRGdW5jdGlvbiA9IEJsZW5kRnVuY3Rpb24uTk9STUFMLFxuXHRcdGVuYWJsZWQgPSB0cnVlLFxuXHRcdGdsYXJlU2l6ZSA9IDAuMixcblx0XHRsZW5zUG9zaXRpb24gPSBbMC4wMSwgMC4wMV0sXG5cdFx0aVJlc29sdXRpb24gPSBbMCwgMF0sXG5cdFx0c3RhclBvaW50cyA9IDYsXG5cdFx0ZmxhcmVTaXplID0gMC4wMSxcblx0XHRmbGFyZVNwZWVkID0gMC4wMSxcblx0XHRmbGFyZVNoYXBlID0gMC4wMSxcblx0XHRhbmltYXRlZCA9IHRydWUsXG5cdFx0YW5hbW9ycGhpYyA9IGZhbHNlLFxuXHRcdGNvbG9yR2FpbiA9IG5ldyBDb2xvcigyMCwgMjAsIDIwKSxcblx0XHRsZW5zRGlydFRleHR1cmUgPSBudWxsIGFzIFRleHR1cmUgfCBudWxsLFxuXHRcdGhhbG9TY2FsZSA9IDAuNSxcblx0XHRzZWNvbmRhcnlHaG9zdHMgPSB0cnVlLFxuXHRcdGFkaXRpb25hbFN0cmVha3MgPSB0cnVlLFxuXHRcdGdob3N0U2NhbGUgPSAwLjAsXG5cdFx0b3BhY2l0eSA9IDEuMCxcblx0XHRzdGFyQnVyc3QgPSBmYWxzZSxcblx0fSA9IHt9KSB7XG5cdFx0c3VwZXIoJ0xlbnNGbGFyZUVmZmVjdCcsIExlbnNGbGFyZVNoYWRlci5mcmFnbWVudFNoYWRlciwge1xuXHRcdFx0YmxlbmRGdW5jdGlvbixcblx0XHRcdHVuaWZvcm1zOiBuZXcgTWFwPHN0cmluZywgVW5pZm9ybT4oW1xuXHRcdFx0XHRbJ2VuYWJsZWQnLCBuZXcgVW5pZm9ybShlbmFibGVkKV0sXG5cdFx0XHRcdFsnZ2xhcmVTaXplJywgbmV3IFVuaWZvcm0oZ2xhcmVTaXplKV0sXG5cdFx0XHRcdFsnbGVuc1Bvc2l0aW9uJywgbmV3IFVuaWZvcm0obGVuc1Bvc2l0aW9uKV0sXG5cdFx0XHRcdFsnaVRpbWUnLCBuZXcgVW5pZm9ybSgwKV0sXG5cdFx0XHRcdFsnaVJlc29sdXRpb24nLCBuZXcgVW5pZm9ybShpUmVzb2x1dGlvbildLFxuXHRcdFx0XHRbJ3N0YXJQb2ludHMnLCBuZXcgVW5pZm9ybShzdGFyUG9pbnRzKV0sXG5cdFx0XHRcdFsnZmxhcmVTaXplJywgbmV3IFVuaWZvcm0oZmxhcmVTaXplKV0sXG5cdFx0XHRcdFsnZmxhcmVTcGVlZCcsIG5ldyBVbmlmb3JtKGZsYXJlU3BlZWQpXSxcblx0XHRcdFx0WydmbGFyZVNoYXBlJywgbmV3IFVuaWZvcm0oZmxhcmVTaGFwZSldLFxuXHRcdFx0XHRbJ2FuaW1hdGVkJywgbmV3IFVuaWZvcm0oYW5pbWF0ZWQpXSxcblx0XHRcdFx0WydhbmFtb3JwaGljJywgbmV3IFVuaWZvcm0oYW5hbW9ycGhpYyldLFxuXHRcdFx0XHRbJ2NvbG9yR2FpbicsIG5ldyBVbmlmb3JtKGNvbG9yR2FpbildLFxuXHRcdFx0XHRbJ2xlbnNEaXJ0VGV4dHVyZScsIG5ldyBVbmlmb3JtKGxlbnNEaXJ0VGV4dHVyZSldLFxuXHRcdFx0XHRbJ2hhbG9TY2FsZScsIG5ldyBVbmlmb3JtKGhhbG9TY2FsZSldLFxuXHRcdFx0XHRbJ3NlY29uZGFyeUdob3N0cycsIG5ldyBVbmlmb3JtKHNlY29uZGFyeUdob3N0cyldLFxuXHRcdFx0XHRbJ2FkaXRpb25hbFN0cmVha3MnLCBuZXcgVW5pZm9ybShhZGl0aW9uYWxTdHJlYWtzKV0sXG5cdFx0XHRcdFsnZ2hvc3RTY2FsZScsIG5ldyBVbmlmb3JtKGdob3N0U2NhbGUpXSxcblx0XHRcdFx0WydzdGFyQnVyc3QnLCBuZXcgVW5pZm9ybShzdGFyQnVyc3QpXSxcblx0XHRcdFx0WydvcGFjaXR5JywgbmV3IFVuaWZvcm0ob3BhY2l0eSldLFxuXHRcdFx0XSksXG5cdFx0fSk7XG5cdH1cblxuXHRvdmVycmlkZSB1cGRhdGUoX3JlbmRlcmVyOiBhbnksIF9pbnB1dEJ1ZmZlcjogYW55LCBkZWx0YVRpbWU6IG51bWJlcikge1xuXHRcdGNvbnN0IGlUaW1lID0gdGhpcy51bmlmb3Jtcy5nZXQoJ2lUaW1lJyk7XG5cdFx0aWYgKGlUaW1lKSB7XG5cdFx0XHRpVGltZS52YWx1ZSArPSBkZWx0YVRpbWU7XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCB0eXBlIExlbnNGbGFyZU9wdGlvbnMgPSBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIExlbnNGbGFyZUVmZmVjdD5bMF0gJiB7XG5cdHBvc2l0aW9uOiBWZWN0b3IzO1xuXHRmb2xsb3dNb3VzZTogYm9vbGVhbjtcblx0c21vb3RoVGltZTogbnVtYmVyO1xufTtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IExlbnNGbGFyZU9wdGlvbnMgPSB7XG5cdHBvc2l0aW9uOiBuZXcgVmVjdG9yMygtMjUsIDYsIC02MCksXG5cdGZvbGxvd01vdXNlOiBmYWxzZSxcblx0c21vb3RoVGltZTogMC43LFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1sZW5zLWZsYXJlJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiBbZGlzcG9zZV09XCJudWxsXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwTGVuc0ZsYXJlIHtcblx0YXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0c3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHR2aWV3cG9ydCA9IHRoaXMuc3RvcmUuc2VsZWN0KCd2aWV3cG9ydCcpO1xuXHRyYXljYXN0ZXIgPSB0aGlzLnN0b3JlLnNlbGVjdCgncmF5Y2FzdGVyJyk7XG5cdHBvaW50ZXIgPSB0aGlzLnN0b3JlLnNlbGVjdCgncG9pbnRlcicpO1xuXG5cdGNvbXBvc2VyQXBpID0gaW5qZWN0RWZmZWN0Q29tcG9zZXJBcGkoKTtcblxuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cblx0cHJvamVjdGVkUG9zaXRpb24gPSBuZXcgVmVjdG9yMygpO1xuXHRtb3VzZTJkID0gbmV3IFZlY3RvcjIoKTtcblxuXHRlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgeyBwb3NpdGlvbjogXywgZm9sbG93TW91c2U6IF9fLCBzbW9vdGhUaW1lOiBfX18sIC4uLm9wdGlvbnMgfSA9IHRoaXMub3B0aW9ucygpO1xuXHRcdHJldHVybiBuZXcgTGVuc0ZsYXJlRWZmZWN0KG9wdGlvbnMpO1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgW2VmZmVjdCwgdmlld3BvcnRdID0gW3RoaXMuZWZmZWN0KCksIHRoaXMudmlld3BvcnQoKV07XG5cdFx0XHRcdGNvbnN0IGlSZXNvbHV0aW9uID0gZWZmZWN0LnVuaWZvcm1zLmdldCgnaVJlc29sdXRpb24nKTtcblx0XHRcdFx0aWYgKGlSZXNvbHV0aW9uKSB7XG5cdFx0XHRcdFx0aVJlc29sdXRpb24udmFsdWUueCA9IHZpZXdwb3J0LndpZHRoO1xuXHRcdFx0XHRcdGlSZXNvbHV0aW9uLnZhbHVlLnkgPSB2aWV3cG9ydC5oZWlnaHQ7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCh7IGRlbHRhIH0pID0+IHtcblx0XHRcdGNvbnN0IFtlZmZlY3RdID0gW3RoaXMuZWZmZWN0KCldO1xuXHRcdFx0aWYgKCFlZmZlY3QpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgW3sgZm9sbG93TW91c2UsIHBvc2l0aW9uLCBzbW9vdGhUaW1lIH0sIHBvaW50ZXIsIHsgY2FtZXJhLCBzY2VuZSB9LCByYXljYXN0ZXJdID0gW1xuXHRcdFx0XHR0aGlzLm9wdGlvbnMoKSxcblx0XHRcdFx0dGhpcy5wb2ludGVyKCksXG5cdFx0XHRcdHRoaXMuY29tcG9zZXJBcGkoKSxcblx0XHRcdFx0dGhpcy5yYXljYXN0ZXIoKSxcblx0XHRcdF07XG5cblx0XHRcdGNvbnN0IHVMZW5zUG9zaXRpb24gPSBlZmZlY3QudW5pZm9ybXMuZ2V0KCdsZW5zUG9zaXRpb24nKTtcblx0XHRcdGNvbnN0IHVPcGFjaXR5ID0gZWZmZWN0LnVuaWZvcm1zLmdldCgnb3BhY2l0eScpO1xuXHRcdFx0aWYgKCF1TGVuc1Bvc2l0aW9uIHx8ICF1T3BhY2l0eSkgcmV0dXJuO1xuXG5cdFx0XHRsZXQgdGFyZ2V0ID0gMTtcblxuXHRcdFx0aWYgKGZvbGxvd01vdXNlKSB7XG5cdFx0XHRcdHVMZW5zUG9zaXRpb24udmFsdWUueCA9IHBvaW50ZXIueDtcblx0XHRcdFx0dUxlbnNQb3NpdGlvbi52YWx1ZS55ID0gcG9pbnRlci55O1xuXHRcdFx0XHR0YXJnZXQgPSAwO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5wcm9qZWN0ZWRQb3NpdGlvbi5jb3B5KHBvc2l0aW9uKS5wcm9qZWN0KGNhbWVyYSk7XG5cdFx0XHRcdGlmICh0aGlzLnByb2plY3RlZFBvc2l0aW9uLnogPiAxKSByZXR1cm47XG5cblx0XHRcdFx0dUxlbnNQb3NpdGlvbi52YWx1ZS54ID0gdGhpcy5wcm9qZWN0ZWRQb3NpdGlvbi54O1xuXHRcdFx0XHR1TGVuc1Bvc2l0aW9uLnZhbHVlLnkgPSB0aGlzLnByb2plY3RlZFBvc2l0aW9uLnk7XG5cblx0XHRcdFx0dGhpcy5tb3VzZTJkLnNldCh0aGlzLnByb2plY3RlZFBvc2l0aW9uLngsIHRoaXMucHJvamVjdGVkUG9zaXRpb24ueSk7XG5cdFx0XHRcdHJheWNhc3Rlci5zZXRGcm9tQ2FtZXJhKHRoaXMubW91c2UyZCwgY2FtZXJhKTtcblx0XHRcdFx0Y29uc3QgaW50ZXJzZWN0cyA9IHJheWNhc3Rlci5pbnRlcnNlY3RPYmplY3RzKHNjZW5lLmNoaWxkcmVuLCB0cnVlKTtcblx0XHRcdFx0Y29uc3QgeyBvYmplY3QgfSA9IGludGVyc2VjdHNbMF0gPz8ge307XG5cdFx0XHRcdGlmIChvYmplY3QpIHtcblx0XHRcdFx0XHRpZiAob2JqZWN0LnVzZXJEYXRhPy5bJ2xlbnNmbGFyZSddID09PSAnbm8tb2NjbHVzaW9uJykge1xuXHRcdFx0XHRcdFx0dGFyZ2V0ID0gMDtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKG9iamVjdCBpbnN0YW5jZW9mIE1lc2gpIHtcblx0XHRcdFx0XHRcdGlmIChvYmplY3QubWF0ZXJpYWwudW5pZm9ybXM/Ll90cmFuc21pc3Npb24/LnZhbHVlID4gMC4yKSB7XG5cdFx0XHRcdFx0XHRcdC8vQ2hlY2sgZm9yIE1lc2hUcmFuc21pc3Npb25NYXRlcmlhbFxuXHRcdFx0XHRcdFx0XHR0YXJnZXQgPSAwLjI7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKG9iamVjdC5tYXRlcmlhbC5fdHJhbnNtaXNzaW9uICYmIG9iamVjdC5tYXRlcmlhbC5fdHJhbnNtaXNzaW9uID4gMC4yKSB7XG5cdFx0XHRcdFx0XHRcdC8vQ2hlY2sgZm9yIE1lc2hQaHlzaWNhbE1hdGVyaWFsIHdpdGggdHJhbnNtaXNzaW9uIHNldHRpbmdcblx0XHRcdFx0XHRcdFx0dGFyZ2V0ID0gMC4yO1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChvYmplY3QubWF0ZXJpYWwudHJhbnNwYXJlbnQpIHtcblx0XHRcdFx0XHRcdFx0Ly8gQ2hlY2sgZm9yIE90aGVyTWF0ZXJpYWxzIHdpdGggdHJhbnNwYXJlbnQgcGFyYW1ldGVyXG5cdFx0XHRcdFx0XHRcdHRhcmdldCA9IG9iamVjdC5tYXRlcmlhbC5vcGFjaXR5O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRlYXNpbmcuZGFtcCh1T3BhY2l0eSwgJ3ZhbHVlJywgdGFyZ2V0LCBzbW9vdGhUaW1lLCBkZWx0YSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVucy1mbGFyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2xlbnMtZmxhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBQ25DLHVDQUF1QztBQUV2QyxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQVcsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXhELE1BQU0sZUFBZSxHQUFHO0lBQ3ZCLGNBQWMsRUFBRSxVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNEMzQjtDQUNBLENBQUM7QUFFRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxNQUFNO0lBQzFDLFlBQVksRUFDWCxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFDcEMsT0FBTyxHQUFHLElBQUksRUFDZCxTQUFTLEdBQUcsR0FBRyxFQUNmLFlBQVksR0FBRyxDQUFD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O29CQUNaLENBQUM7eUJBQU0sSUFBSSxNQUFNLFlBQVksSUFBSSxFQUFFLENBQUM7d0JBQ25DLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQzs0QkFDMUQsb0NBQW9DOzRCQUNwQyxNQUFNLEdBQUcsR0FBRyxDQUFDO3dCQUNkLENBQUM7NkJBQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQzs0QkFDakYsMERBQTBEOzRCQUMxRCxNQUFNLEdBQUcsR0FBRyxDQUFDO3dCQUNkLENBQUM7NkJBQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDOzRCQUN4QyxzREFBc0Q7NEJBQ3RELE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQzt3QkFDbEMsQ0FBQztvQkFDRixDQUFDO2dCQUNGLENBQUM7WUFDRixDQUFDO1lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQXBGVyxhQUFhO2tHQUFiLGFBQWEscU5BUGY7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsYUFBYTtrQkFWekIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENyZWF0ZWQgYnkgQW5kZXJzb24gTWFuY2luaSAyMDIzXG4vLyBSZWFjdCBUaHJlZSBGaWJlciBVbHRpbWF0ZSBMZW5zRmxhcmVcblxuaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBlYXNpbmcgfSBmcm9tICdtYWF0aCc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBDb2xvciwgTWVzaCwgVGV4dHVyZSwgVW5pZm9ybSwgVmVjdG9yMiwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHBFZmZlY3RDb21wb3NlciB9IGZyb20gJy4uL2VmZmVjdC1jb21wb3Nlcic7XG5cbmNvbnN0IExlbnNGbGFyZVNoYWRlciA9IHtcblx0ZnJhZ21lbnRTaGFkZXI6IC8qIGdsc2wgKi8gYFxuXG4gIHVuaWZvcm0gZmxvYXQgaVRpbWU7XG4gIHVuaWZvcm0gdmVjMiBsZW5zUG9zaXRpb247XG4gIHVuaWZvcm0gdmVjMiBpUmVzb2x1dGlvbjtcbiAgdW5pZm9ybSB2ZWMzIGNvbG9yR2FpbjtcbiAgdW5pZm9ybSBmbG9hdCBzdGFyUG9pbnRzO1xuICB1bmlmb3JtIGZsb2F0IGdsYXJlU2l6ZTtcbiAgdW5pZm9ybSBmbG9hdCBmbGFyZVNpemU7XG4gIHVuaWZvcm0gZmxvYXQgZmxhcmVTcGVlZDtcbiAgdW5pZm9ybSBmbG9hdCBmbGFyZVNoYXBlO1xuICB1bmlmb3JtIGZsb2F0IGhhbG9TY2FsZTtcbiAgdW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuICB1bmlmb3JtIGJvb2wgYW5pbWF0ZWQ7XG4gIHVuaWZvcm0gYm9vbCBhbmFtb3JwaGljO1xuICB1bmlmb3JtIGJvb2wgZW5hYmxlZDtcbiAgdW5pZm9ybSBib29sIHNlY29uZGFyeUdob3N0cztcbiAgdW5pZm9ybSBib29sIHN0YXJCdXJzdDtcbiAgdW5pZm9ybSBmbG9hdCBnaG9zdFNjYWxlO1xuICB1bmlmb3JtIGJvb2wgYWRpdGlvbmFsU3RyZWFrcztcbiAgdW5pZm9ybSBzYW1wbGVyMkQgbGVuc0RpcnRUZXh0dXJlO1xuICB2ZWMyIHZ4dEM7XG5cbiAgZmxvYXQgcm5kZihmbG9hdCBuKXtyZXR1cm4gZnJhY3Qoc2luKG4pICogNDM3NTguNTQ1MzEyMyk7fWZsb2F0IG5peihmbG9hdCBwKXtmbG9hdCBmbCA9IGZsb29yKHApO2Zsb2F0IGZjID0gZnJhY3QocCk7cmV0dXJuIG1peChybmRmKGZsKSxybmRmKGZsICsgMS4wKSwgZmMpO31cbiAgdmVjMyBoc3YycmdiKHZlYzMgYyl7dmVjNCBrID0gdmVjNCgxLjAsIDIuMCAvIDMuMCwgMS4wIC8gMy4wLCAzLjApO3ZlYzMgcCA9IGFicyhmcmFjdChjLnh4eCArIGsueHl6KSAqIDYuMCAtIGsud3d3KTtyZXR1cm4gYy56ICogbWl4KGsueHh4LCBjbGFtcChwIC0gay54eHgsIDAuMCwgMS4wKSwgYy55KTt9XG4gIGZsb2F0IHNhdFUoZmxvYXQgeCl7cmV0dXJuIGNsYW1wKHgsIDAuLDEuKTt9dmVjMiBydFUodmVjMiBuYXosIGZsb2F0IHJ0bil7cmV0dXJuIHZlYzIoY29zKHJ0bikgKiBuYXoueCArIHNpbihydG4pICogbmF6LnksY29zKHJ0bikgKiBuYXoueSAtIHNpbihydG4pICogbmF6LngpO31cbiAgdmVjMyBkcndGKHZlYzIgcCwgZmxvYXQgaW50ZW5zaXR5LCBmbG9hdCBybmQsIGZsb2F0IHNwZWVkLCBpbnQgaWQpe2Zsb2F0IGZsaG9zID0gKDEuIC8gMzIuKSAqIGZsb2F0KGlkKSAqIDAuMTtmbG9hdCBsaW5ncmFkID0gZGlzdGFuY2UodmVjMigwLiksIHApO2Zsb2F0IGV4cGcgPSAxLiAvIGV4cChsaW5ncmFkICogKGZyYWN0KHJuZCkgKiAwLjY2ICsgMC4zMykpO3ZlYzMgcXpUZyA9IGhzdjJyZ2IodmVjMyggZnJhY3QoIChleHBnICogOC4pICsgc3BlZWQgKiBmbGFyZVNwZWVkICsgZmxob3MpLCBwb3coMS4tYWJzKGV4cGcqMi4tMS4pLCAwLjQ1KSwgMjAuMCAqIGV4cGcgKiBpbnRlbnNpdHkpKTtmbG9hdCBpbnRlcm5hbFN0YXJQb2ludHM7aWYoYW5hbW9ycGhpYyl7aW50ZXJuYWxTdGFyUG9pbnRzID0gMS4wO30gZWxzZXtpbnRlcm5hbFN0YXJQb2ludHMgPSBzdGFyUG9pbnRzO31mbG9hdCBhbXMgPSBsZW5ndGgocCAqIGZsYXJlU2hhcGUgKiBzaW4oaW50ZXJuYWxTdGFyUG9pbnRzICogYXRhbihwLngsIHAueSkpKTtmbG9hdCBrSmhnID0gcG93KDEuLXNhdFUoYW1zKSwgKCBhbmFtb3JwaGljID8gMTAwLiA6IDEyLikpO2tKaGcgKz0gc2F0VShleHBnLTAuOSkgKiAzLjtrSmhnID0gcG93KGtKaGcgKiBleHBnLCA4LiArICgxLi1pbnRlbnNpdHkpICogNS4pO2lmKGZsYXJlU3BlZWQgPiAwLjApe3JldHVybiB2ZWMzKGtKaGcpICogcXpUZzt9IGVsc2V7cmV0dXJuIHZlYzMoa0poZykgKiBmbGFyZVNpemUgKiAxNS47fX1cbiAgZmxvYXQgYW1zMih2ZWMzIGEsIHZlYzMgYikgeyByZXR1cm4gYWJzKGEueCAtIGIueCkgKyBhYnMoYS55IC0gYi55KSArIGFicyhhLnogLSBiLnopO312ZWMzIHNhdFUodmVjMyB4KXtyZXR1cm4gY2xhbXAoeCwgdmVjMygwLjApLCB2ZWMzKDEuMCkpO31cbiAgZmxvYXQgZ2xSKHZlYzIgbmF6LCB2ZWMyIHBvcywgZmxvYXQgenNpKXt2ZWMyIG1uaTtpZihhbmltYXRlZCl7bW5pID0gcnRVKG5hei1wb3MsIGlUaW1lICogMC4xKTt9IGVsc2V7bW5pID0gbmF6LXBvczt9ZmxvYXQgYW5nID0gYXRhbihtbmkueSwgbW5pLngpICogKGFuYW1vcnBoaWMgPyAxLjAgOiBzdGFyUG9pbnRzKTtmbG9hdCBhbXMyID0gbGVuZ3RoKG1uaSk7YW1zMiA9IHBvdyhhbXMyLCAuOSk7ZmxvYXQgZjAgPSAxLjAvKGxlbmd0aChuYXotcG9zKSooMS4wL3pzaSoxNi4wKSsuMik7cmV0dXJuIGYwK2YwKihzaW4oKGFuZykpKi4yICsuMyk7fVxuICBmbG9hdCBzZEhleCh2ZWMyIHApe3AgPSBhYnMocCk7dmVjMiBxID0gdmVjMihwLngqMi4wKjAuNTc3MzUwMywgcC55ICsgcC54KjAuNTc3MzUwMyk7cmV0dXJuIGRvdChzdGVwKHEueHkscS55eCksIDEuMC1xLnl4KTt9ZmxvYXQgZnBvdyhmbG9hdCB4LCBmbG9hdCBrKXtyZXR1cm4geCA+IGsgPyBwb3coKHgtaykvKDEuMC1rKSwyLjApIDogMC4wO31cbiAgdmVjMyBySHgodmVjMiBuYXosIHZlYzIgcCwgZmxvYXQgcywgdmVjMyBjb2wpe25heiAtPSBwO2lmIChhYnMobmF6LngpIDwgMC4yKnMgJiYgYWJzKG5hei55KSA8IDAuMipzKXtyZXR1cm4gbWl4KHZlYzMoMCksbWl4KHZlYzMoMCksY29sLDAuMSArIGZwb3cobGVuZ3RoKG5hei9zKSwwLjEpKjEwLjApLHNtb290aHN0ZXAoMC4wLDAuMSxzZEhleChuYXoqMjAuMC9zKSkpO31yZXR1cm4gdmVjMygwKTt9XG4gIHZlYzMgbUxzKHZlYzIgbmF6LCB2ZWMyIHBvcyl7dmVjMiBtbmkgPSBuYXotcG9zO3ZlYzIgenhNcCA9IG5heioobGVuZ3RoKG5heikpO2Zsb2F0IGFuZyA9IGF0YW4obW5pLngsbW5pLnkpO2Zsb2F0IGYwID0gLjMvKGxlbmd0aChuYXotcG9zKSoxNi4wKzEuMCk7ZjAgPSBmMCooc2luKG5peihzaW4oYW5nKjMuOS0oYW5pbWF0ZWQgPyBpVGltZSA6IDAuMCkgKiAwLjMpICogc3RhclBvaW50cykpKi4yICk7ZmxvYXQgZjEgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKG5heisxLjIqcG9zKSwxLjkpLC4wKSo3LjA7ZmxvYXQgZjIgPSBtYXgoLjkvKDEwLjArMzIuMCpwb3cobGVuZ3RoKHp4TXArMC45OSpwb3MpLDIuMCkpLC4wKSowLjM1O2Zsb2F0IGYyMiA9IG1heCguOS8oMTEuMCszMi4wKnBvdyhsZW5ndGgoenhNcCswLjg1KnBvcyksMi4wKSksLjApKjAuMjM7ZmxvYXQgZjIzID0gbWF4KC45LygxMi4wKzMyLjAqcG93KGxlbmd0aCh6eE1wKzAuOTUqcG9zKSwyLjApKSwuMCkqMC42O3ZlYzIgenRYID0gbWl4KG5heix6eE1wLCAwLjEpO2Zsb2F0IGY0ID0gbWF4KDAuMDEtcG93KGxlbmd0aCh6dFgrMC40KnBvcyksMi45KSwuMCkqNC4wMjtmbG9hdCBmNDIgPSBtYXgoMC4wLXBvdyhsZW5ndGgoenRYKzAuNDUqcG9zKSwyLjkpLC4wKSo0LjE7ZmxvYXQgZjQzID0gbWF4KDAuMDEtcG93KGxlbmd0aCh6dFgrMC41KnBvcyksMi45KSwuMCkqNC42O3p0WCA9IG1peChuYXosenhNcCwtLjQpO2Zsb2F0IGY1ID0gbWF4KDAuMDEtcG93KGxlbmd0aCh6dFgrMC4xKnBvcyksNS41KSwuMCkqMi4wO2Zsb2F0IGY1MiA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYKzAuMipwb3MpLDUuNSksLjApKjIuMDtmbG9hdCBmNTMgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WCswLjEqcG9zKSw1LjUpLC4wKSoyLjA7enRYID0gbWl4KG5heix6eE1wLCAyLjEpO2Zsb2F0IGY2ID0gbWF4KDAuMDEtcG93KGxlbmd0aCh6dFgtMC4zKnBvcyksMS42MSksLjApKjMuMTU5O2Zsb2F0IGY2MiA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYLTAuMzI1KnBvcyksMS42MTQpLC4wKSozLjE0O2Zsb2F0IGY2MyA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYLTAuMzg5KnBvcyksMS42MjMpLC4wKSozLjEyO3ZlYzMgYyA9IHZlYzMoZ2xSKG5heixwb3MsIGdsYXJlU2l6ZSkpO3ZlYzIgcHJvdDtpZihhbmltYXRlZCl7cHJvdCA9IHJ0VShuYXogLSBwb3MsIChpVGltZSAqIDAuMSkpO30gZWxzZSBpZihhbmFtb3JwaGljKXtwcm90ID0gcnRVKG5heiAtIHBvcywgMS41NzA3OTYpO30gZWxzZSB7cHJvdCA9IG5heiAtIHBvczt9YyArPSBkcndGKHByb3QsIChhbmFtb3JwaGljID8gZmxhcmVTaXplICogMTAuIDogZmxhcmVTaXplKSwgMC4xLCBpVGltZSwgMSk7Yy5yKz1mMStmMitmNCtmNStmNjsgYy5nKz1mMStmMjIrZjQyK2Y1MitmNjI7IGMuYis9ZjErZjIzK2Y0MytmNTMrZjYzO2MgPSBjKjEuMyAqIHZlYzMobGVuZ3RoKHp4TXApKy4wOSk7Yys9dmVjMyhmMCk7cmV0dXJuIGM7fVxuICB2ZWMzIGNjKHZlYzMgY2xyLCBmbG9hdCBmY3QsZmxvYXQgZmN0Mil7ZmxvYXQgdyA9IGNsci54K2Nsci55K2Nsci56O3JldHVybiBtaXgoY2xyLHZlYzModykqZmN0LHcqZmN0Mik7fWZsb2F0IHJuZCh2ZWMyIHApe2Zsb2F0IGYgPSBmcmFjdChzaW4oZG90KHAsIHZlYzIoMTIuMTIzNCwgNzIuODM5MikgKSo0NTEyMy4yKSk7cmV0dXJuIGY7fWZsb2F0IHJuZChmbG9hdCB3KXtmbG9hdCBmID0gZnJhY3Qoc2luKHcpKjEwMDAuKTtyZXR1cm4gZjt9XG4gIGZsb2F0IHJTaHAodmVjMiBwLCBpbnQgTil7ZmxvYXQgZjtmbG9hdCBhPWF0YW4ocC54LHAueSkrLjI7ZmxvYXQgYj02LjI4MzE5L2Zsb2F0KE4pO2Y9c21vb3Roc3RlcCguNSwuNTEsIGNvcyhmbG9vciguNSthL2IpKmItYSkqbGVuZ3RoKHAueHkpKiAyLjAgIC1naG9zdFNjYWxlKTtyZXR1cm4gZjt9XG4gIHZlYzMgZHJDKHZlYzIgcCwgZmxvYXQgenNpLCBmbG9hdCBkQ3ksIHZlYzMgY2xyLCB2ZWMzIGNscjIsIGZsb2F0IGFtczIsIHZlYzIgZXNvbSl7ZmxvYXQgbCA9IGxlbmd0aChwICsgZXNvbSooYW1zMioyLikpK3pzaS8yLjtmbG9hdCBsMiA9IGxlbmd0aChwICsgZXNvbSooYW1zMio0LikpK3pzaS8zLjtmbG9hdCBjID0gbWF4KDAuMDEtcG93KGxlbmd0aChwICsgZXNvbSphbXMyKSwgenNpKmdob3N0U2NhbGUpLCAwLjApKjEwLjtmbG9hdCBjMSA9IG1heCgwLjAwMS1wb3cobC0wLjMsIDEuLzQwLikrc2luKGwqMjAuKSwgMC4wKSozLjtmbG9hdCBjMiA9ICBtYXgoMC4wOS9wb3cobGVuZ3RoKHAtZXNvbSphbXMyLy41KSoxLiwgLjk1KSwgMC4wKS8yMC47ZmxvYXQgcyA9IG1heCgwLjAyLXBvdyhyU2hwKHAqNS4gKyBlc29tKmFtczIqNS4gKyBkQ3ksIDYpICwgMS4pLCAwLjApKjEuNTtjbHIgPSBjb3ModmVjMygwLjQ0LCAuMjQsIC4yKSo4LiArIGFtczIqNC4pKjAuNSsuNTt2ZWMzIGYgPSBjKmNscjtmICs9IGMxKmNscjtmICs9IGMyKmNscjtmICs9ICBzKmNscjtyZXR1cm4gZi0wLjAxO31cbiAgdmVjNCBnZUxDKGZsb2F0IHgpe3JldHVybiB2ZWM0KHZlYzMobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgodmVjMygwLiwgMC4sIDAuKSx2ZWMzKDAuLCAwLiwgMC4pLCBzbW9vdGhzdGVwKDAuMCwgMC4wNjMsIHgpKSx2ZWMzKDAuLCAwLiwgMC4pLCBzbW9vdGhzdGVwKDAuMDYzLCAwLjEyNSwgeCkpLHZlYzMoMC4wLCAwLiwgMC4pLCBzbW9vdGhzdGVwKDAuMTI1LCAwLjE4OCwgeCkpLHZlYzMoMC4xODgsIDAuMTMxLCAwLjExNiksIHNtb290aHN0ZXAoMC4xODgsIDAuMjI3LCB4KSksdmVjMygwLjMxLCAwLjIwNCwgMC41MzcpLCBzbW9vdGhzdGVwKDAuMjI3LCAwLjI1MSwgeCkpLHZlYzMoMC4xOTIsIDAuMTA2LCAwLjI4NiksIHNtb290aHN0ZXAoMC4yNTEsIDAuMzE0LCB4KSksdmVjMygwLjEwMiwgMC4wMDgsIDAuMzQxKSwgc21vb3Roc3RlcCgwLjMxNCwgMC4zOTIsIHgpKSx2ZWMzKDAuMDg2LCAwLjAsIDAuMTQxKSwgc21vb3Roc3RlcCgwLjM5MiwgMC41MDIsIHgpKSx2ZWMzKDEuMCwgMC4zMSwgMC4wKSwgc21vb3Roc3RlcCgwLjUwMiwgMC42MDQsIHgpKSx2ZWMzKC4xLCAwLjEsIDAuMSksIHNtb290aHN0ZXAoMC42MDQsIDAuNjQzLCB4KSksdmVjMygxLjAsIDAuOTI5LCAwLjApLCBzbW9vdGhzdGVwKDAuNjQzLCAwLjc2MSwgeCkpLHZlYzMoMS4wLCAwLjA4NiwgMC40MjQpLCBzbW9vdGhzdGVwKDAuNzYxLCAwLjg0NywgeCkpLHZlYzMoMS4wLCAwLjQ5LCAwLjApLCBzbW9vdGhzdGVwKDAuODQ3LCAwLjg5LCB4KSksdmVjMygwLjk0NSwgMC4yNzUsIDAuNDc1KSwgc21vb3Roc3RlcCgwLjg5LCAwLjk0MSwgeCkpLHZlYzMoMC4yNTEsIDAuMjc1LCAwLjc5NiksIHNtb290aHN0ZXAoMC45NDEsIDEuMCwgeCkpKSwxLjApO31cbiAgZmxvYXQgZGlUTih2ZWMyIHApe3ZlYzIgZiA9IGZyYWN0KHApO2YgPSAoZiAqIGYpICogKDMuMCAtICgyLjAgKiBmKSk7ZmxvYXQgbiA9IGRvdChmbG9vcihwKSwgdmVjMigxLjAsIDE1Ny4wKSk7dmVjNCBhID0gZnJhY3Qoc2luKHZlYzQobiArIDAuMCwgbiArIDEuMCwgbiArIDE1Ny4wLCBuICsgMTU4LjApKSAqIDQzNzU4LjU0NTMxMjMpO3JldHVybiBtaXgobWl4KGEueCwgYS55LCBmLngpLCBtaXgoYS56LCBhLncsIGYueCksIGYueSk7fVxuICBmbG9hdCBmYm0odmVjMiBwKXtjb25zdCBtYXQyIG0gPSBtYXQyKDAuODAsIC0wLjYwLCAwLjYwLCAwLjgwKTtmbG9hdCBmID0gMC4wO2YgKz0gMC41MDAwKmRpVE4ocCk7IHAgPSBtKnAqMi4wMjtmICs9IDAuMjUwMCpkaVROKHApOyBwID0gbSpwKjIuMDM7ZiArPSAwLjEyNTAqZGlUTihwKTsgcCA9IG0qcCoyLjAxO2YgKz0gMC4wNjI1KmRpVE4ocCk7cmV0dXJuIGYvMC45Mzc1O31cbiAgdmVjNCBnZUxTKHZlYzIgcCl7dmVjMiBwcCA9IChwIC0gdmVjMigwLjUpKSAqIDIuMDtmbG9hdCBhID0gYXRhbihwcC55LCBwcC54KTt2ZWM0IGNwID0gdmVjNChzaW4oYSAqIDEuMCksIGxlbmd0aChwcCksIHNpbihhICogMTMuMCksIHNpbihhICogNTMuMCkpO2Zsb2F0IGQgPSBzaW4oY2xhbXAocG93KGxlbmd0aCh2ZWMyKDAuNSkgLSBwKSAqIDAuNSArIGhhbG9TY2FsZSAvMi4sIDUuMCksIDAuMCwgMS4wKSAqIDMuMTQxNTkpO3ZlYzMgYyA9IHZlYzMoZCkgKiB2ZWMzKGZibShjcC54eSAqIDE2LjApICogZmJtKGNwLnp3ICogOS4wKSAqIG1heChtYXgobWF4KG1heCgwLjUsIHNpbihhICogMS4wKSksIHNpbihhICogMy4wKSAqIDAuOCksIHNpbihhICogNy4wKSAqIDAuOCksIHNpbihhICogOS4wKSAqIDEwLjYpKTtjICo9IHZlYzMobWl4KDIuMCwgKHNpbihsZW5ndGgocHAueHkpICogMjU2LjApICogMC41KSArIDAuNSwgc2luKChjbGFtcCgobGVuZ3RoKHBwLnh5KSAtIDAuODc1KSAvIDAuMSwgMC4wLCAxLjApICsgMC4wKSAqIDIuMCAqIDMuMTQxNTkpICogMS41KSArIDAuNSkgKiAwLjMyNzU7cmV0dXJuIHZlYzQodmVjMyhjICogMS4wKSwgZCk7fVxuICB2ZWM0IGdlTEQodmVjMiBwKXtwLnh5ICs9IHZlYzIoZmJtKHAueXggKiAzLjApLCBmYm0ocC55eCAqIDIuMCkpICogMC4wODI1O3ZlYzMgbyA9IHZlYzMobWl4KDAuMTI1LCAwLjI1LCBtYXgobWF4KHNtb290aHN0ZXAoMC4xLCAwLjAsIGxlbmd0aChwIC0gdmVjMigwLjI1KSkpLHNtb290aHN0ZXAoMC40LCAwLjAsIGxlbmd0aChwIC0gdmVjMigwLjc1KSkpKSxzbW9vdGhzdGVwKDAuOCwgMC4wLCBsZW5ndGgocCAtIHZlYzIoMC44NzUsIDAuMTI1KSkpKSkpO28gKz0gdmVjMyhtYXgoZmJtKHAgKiAxLjApIC0gMC41LCAwLjApKSAqIDAuNTtvICs9IHZlYzMobWF4KGZibShwICogMi4wKSAtIDAuNSwgMC4wKSkgKiAwLjU7byArPSB2ZWMzKG1heChmYm0ocCAqIDQuMCkgLSAwLjUsIDAuMCkpICogMC4yNTtvICs9IHZlYzMobWF4KGZibShwICogOC4wKSAtIDAuNzUsIDAuMCkpICogMS4wO28gKz0gdmVjMyhtYXgoZmJtKHAgKiAxNi4wKSAtIDAuNzUsIDAuMCkpICogMC43NTtvICs9IHZlYzMobWF4KGZibShwICogNjQuMCkgLSAwLjc1LCAwLjApKSAqIDAuNTtyZXR1cm4gdmVjNChjbGFtcChvLCB2ZWMzKDAuMTUpLCB2ZWMzKDEuMCkpLCAxLjApO31cbiAgdmVjNCB0eEwoc2FtcGxlcjJEIHRleCwgdmVjMiB4dEMpe2lmKCgoeHRDLnggPCAwLikgfHwgKHh0Qy55IDwgMC4pKSB8fCAoKHh0Qy54ID4gMS4pIHx8ICh4dEMueSA+IDEuKSkpe3JldHVybiB2ZWM0KDAuMCk7fWVsc2V7cmV0dXJuIHRleHR1cmUodGV4LCB4dEMpOyB9fVxuICB2ZWM0IHR4RChzYW1wbGVyMkQgdGV4LCB2ZWMyIHh0QywgdmVjMiBkaXIsIHZlYzMgZGl0bikge3JldHVybiB2ZWM0KHR4TCh0ZXgsICh4dEMgKyAoZGlyICogZGl0bi5yKSkpLnIsdHhMKHRleCwgKHh0QyArIChkaXIgKiBkaXRuLmcpKSkuZyx0eEwodGV4LCAoeHRDICsgKGRpciAqIGRpdG4uYikpKS5iLDEuMCk7fVxuICB2ZWM0IHN0ckIoKXt2ZWMyIGFzcFh0YyA9IHZlYzIoMS4wKSAtICgoKHZ4dEMgLSB2ZWMyKDAuNSkpICogdmVjMigxLjApKSArIHZlYzIoMC41KSk7IHZlYzIgeHRDID0gdmVjMigxLjApIC0gdnh0QzsgdmVjMiBnaHZjID0gKHZlYzIoMC41KSAtIHh0QykgKiAwLjMgLSBsZW5zUG9zaXRpb247IHZlYzIgZ2hObSA9IG5vcm1hbGl6ZShnaHZjICogdmVjMigxLjApKSAqIHZlYzIoMS4wKTt2ZWMyIGhhbG9WZWMgPSBub3JtYWxpemUoZ2h2YykgKiAwLjY7dmVjMiBobE5tID0gZ2hObSAqIDAuNjt2ZWMyIHRleGVsU2l6ZSA9IHZlYzIoMS4wKSAvIHZlYzIoaVJlc29sdXRpb24ueHkpO3ZlYzMgZGl0biA9IHZlYzMoLSh0ZXhlbFNpemUueCAqIDEuNSksIDAuMiwgdGV4ZWxTaXplLnggKiAxLjUpO3ZlYzQgYyA9IHZlYzQoMC4wKTtmb3IgKGludCBpID0gMDsgaSA8IDg7IGkrKykge3ZlYzIgb2Zmc2V0ID0geHRDICsgKGdodmMgKiBmbG9hdChpKSk7YyArPSB0eEQobGVuc0RpcnRUZXh0dXJlLCBvZmZzZXQsIGdoTm0sIGRpdG4pICogcG93KG1heCgwLjAsIDEuMCAtIChsZW5ndGgodmVjMigwLjUpIC0gb2Zmc2V0KSAvIGxlbmd0aCh2ZWMyKDAuNSkpKSksIDEwLjApO312ZWMyIHV5VHJ6ID0geHRDICsgaGxObTsgcmV0dXJuIChjICogZ2VMQygobGVuZ3RoKHZlYzIoMC41KSAtIGFzcFh0YykgLyBsZW5ndGgodmVjMihoYWxvU2NhbGUpKSkpKSArKHR4RChsZW5zRGlydFRleHR1cmUsIHV5VHJ6LCBnaE5tLCBkaXRuKSAqIHBvdyhtYXgoMC4wLCAxLjAgLSAobGVuZ3RoKHZlYzIoMC41KSAtIHV5VHJ6KSAvIGxlbmd0aCh2ZWMyKDAuNSkpKSksIDEwLjApKTt9XG4gIHZvaWQgbWFpbkltYWdlKHZlYzQgdix2ZWMyIHIsb3V0IHZlYzQgaSl7dmVjMiBnPXItLjU7Zy55Kj1pUmVzb2x1dGlvbi55L2lSZXNvbHV0aW9uLng7dmVjMiBsPWxlbnNQb3NpdGlvbiouNTtsLnkqPWlSZXNvbHV0aW9uLnkvaVJlc29sdXRpb24ueDt2ZWMzIGY9bUxzKGcsbCkqMjAuKmNvbG9yR2Fpbi8yNTYuO2lmKGFkaXRpb25hbFN0cmVha3Mpe3ZlYzMgbz12ZWMzKC45LC4yLC4xKSxwPXZlYzMoLjMsLjEsLjkpO2ZvcihmbG9hdCBuPTAuO248MTAuO24rKylmKz1kckMoZyxwb3cocm5kKG4qMmUzKSoyLjgsLjEpKzEuNDEsMC4sbytuLHArbixybmQobioyMC4pKjMuKy4yLS41LGxlbnNQb3NpdGlvbik7fWlmKHNlY29uZGFyeUdob3N0cyl7dmVjMyBuPXZlYzMoMCk7bis9ckh4KGcsLWxlbnNQb3NpdGlvbiouMjUsZ2hvc3RTY2FsZSoxLjQsdmVjMyguMjUsLjM1LDApKTtuKz1ySHgoZyxsZW5zUG9zaXRpb24qLjI1LGdob3N0U2NhbGUqLjUsdmVjMygxLC41LC41KSk7bis9ckh4KGcsbGVuc1Bvc2l0aW9uKi4xLGdob3N0U2NhbGUqMS42LHZlYzMoMSkpO24rPXJIeChnLGxlbnNQb3NpdGlvbioxLjgsZ2hvc3RTY2FsZSoyLix2ZWMzKDAsLjUsLjc1KSk7bis9ckh4KGcsbGVuc1Bvc2l0aW9uKjEuMjUsZ2hvc3RTY2FsZSouOCx2ZWMzKDEsMSwuNSkpO24rPXJIeChnLC1sZW5zUG9zaXRpb24qMS4yNSxnaG9zdFNjYWxlKjUuLHZlYzMoLjUsLjUsLjI1KSk7bis9ZnBvdygxLi1hYnMoZGlzdGFuY2UobGVuc1Bvc2l0aW9uKi44LGcpLS43KSwuOTg1KSpjb2xvckdhaW4vMjEwMC47Zis9bjt9aWYoc3RhckJ1cnN0KXt2eHRDPWcrLjU7dmVjNCBuPWdlTEQoZyk7ZmxvYXQgbz0xLi1jbGFtcCgwLjUsMC4sLjUpKjIuO24rPW1peChuLHBvdyhuKjIuLHZlYzQoMikpKi41LG8pO2Zsb2F0IHM9KGcueCtnLnkpKigxLi82Lik7dmVjMiBkPW1hdDIoY29zKHMpLC1zaW4ocyksc2luKHMpLGNvcyhzKSkqdnh0QztuKz1nZUxTKGQpKjIuO2YrPWNsYW1wKG4ueHl6KnN0ckIoKS54eXosLjAxLDEuKTt9aT1lbmFibGVkP3ZlYzQobWl4KGYsdmVjMygwKSxvcGFjaXR5KSt2Lnh5eix2LncpOnZlYzQodik7fVxuYCxcbn07XG5cbmV4cG9ydCBjbGFzcyBMZW5zRmxhcmVFZmZlY3QgZXh0ZW5kcyBFZmZlY3Qge1xuXHRjb25zdHJ1Y3Rvcih7XG5cdFx0YmxlbmRGdW5jdGlvbiA9IEJsZW5kRnVuY3Rpb24uTk9STUFMLFxuXHRcdGVuYWJsZWQgPSB0cnVlLFxuXHRcdGdsYXJlU2l6ZSA9IDAuMixcblx0XHRsZW5zUG9zaXRpb24gPSBbMC4wMSwgMC4wMV0sXG5cdFx0aVJlc29sdXRpb24gPSBbMCwgMF0sXG5cdFx0c3RhclBvaW50cyA9IDYsXG5cdFx0ZmxhcmVTaXplID0gMC4wMSxcblx0XHRmbGFyZVNwZWVkID0gMC4wMSxcblx0XHRmbGFyZVNoYXBlID0gMC4wMSxcblx0XHRhbmltYXRlZCA9IHRydWUsXG5cdFx0YW5hbW9ycGhpYyA9IGZhbHNlLFxuXHRcdGNvbG9yR2FpbiA9IG5ldyBDb2xvcigyMCwgMjAsIDIwKSxcblx0XHRsZW5zRGlydFRleHR1cmUgPSBudWxsIGFzIFRleHR1cmUgfCBudWxsLFxuXHRcdGhhbG9TY2FsZSA9IDAuNSxcblx0XHRzZWNvbmRhcnlHaG9zdHMgPSB0cnVlLFxuXHRcdGFkaXRpb25hbFN0cmVha3MgPSB0cnVlLFxuXHRcdGdob3N0U2NhbGUgPSAwLjAsXG5cdFx0b3BhY2l0eSA9IDEuMCxcblx0XHRzdGFyQnVyc3QgPSBmYWxzZSxcblx0fSA9IHt9KSB7XG5cdFx0c3VwZXIoJ0xlbnNGbGFyZUVmZmVjdCcsIExlbnNGbGFyZVNoYWRlci5mcmFnbWVudFNoYWRlciwge1xuXHRcdFx0YmxlbmRGdW5jdGlvbixcblx0XHRcdHVuaWZvcm1zOiBuZXcgTWFwPHN0cmluZywgVW5pZm9ybT4oW1xuXHRcdFx0XHRbJ2VuYWJsZWQnLCBuZXcgVW5pZm9ybShlbmFibGVkKV0sXG5cdFx0XHRcdFsnZ2xhcmVTaXplJywgbmV3IFVuaWZvcm0oZ2xhcmVTaXplKV0sXG5cdFx0XHRcdFsnbGVuc1Bvc2l0aW9uJywgbmV3IFVuaWZvcm0obGVuc1Bvc2l0aW9uKV0sXG5cdFx0XHRcdFsnaVRpbWUnLCBuZXcgVW5pZm9ybSgwKV0sXG5cdFx0XHRcdFsnaVJlc29sdXRpb24nLCBuZXcgVW5pZm9ybShpUmVzb2x1dGlvbildLFxuXHRcdFx0XHRbJ3N0YXJQb2ludHMnLCBuZXcgVW5pZm9ybShzdGFyUG9pbnRzKV0sXG5cdFx0XHRcdFsnZmxhcmVTaXplJywgbmV3IFVuaWZvcm0oZmxhcmVTaXplKV0sXG5cdFx0XHRcdFsnZmxhcmVTcGVlZCcsIG5ldyBVbmlmb3JtKGZsYXJlU3BlZWQpXSxcblx0XHRcdFx0WydmbGFyZVNoYXBlJywgbmV3IFVuaWZvcm0oZmxhcmVTaGFwZSldLFxuXHRcdFx0XHRbJ2FuaW1hdGVkJywgbmV3IFVuaWZvcm0oYW5pbWF0ZWQpXSxcblx0XHRcdFx0WydhbmFtb3JwaGljJywgbmV3IFVuaWZvcm0oYW5hbW9ycGhpYyldLFxuXHRcdFx0XHRbJ2NvbG9yR2FpbicsIG5ldyBVbmlmb3JtKGNvbG9yR2FpbildLFxuXHRcdFx0XHRbJ2xlbnNEaXJ0VGV4dHVyZScsIG5ldyBVbmlmb3JtKGxlbnNEaXJ0VGV4dHVyZSldLFxuXHRcdFx0XHRbJ2hhbG9TY2FsZScsIG5ldyBVbmlmb3JtKGhhbG9TY2FsZSldLFxuXHRcdFx0XHRbJ3NlY29uZGFyeUdob3N0cycsIG5ldyBVbmlmb3JtKHNlY29uZGFyeUdob3N0cyldLFxuXHRcdFx0XHRbJ2FkaXRpb25hbFN0cmVha3MnLCBuZXcgVW5pZm9ybShhZGl0aW9uYWxTdHJlYWtzKV0sXG5cdFx0XHRcdFsnZ2hvc3RTY2FsZScsIG5ldyBVbmlmb3JtKGdob3N0U2NhbGUpXSxcblx0XHRcdFx0WydzdGFyQnVyc3QnLCBuZXcgVW5pZm9ybShzdGFyQnVyc3QpXSxcblx0XHRcdFx0WydvcGFjaXR5JywgbmV3IFVuaWZvcm0ob3BhY2l0eSldLFxuXHRcdFx0XSksXG5cdFx0fSk7XG5cdH1cblxuXHRvdmVycmlkZSB1cGRhdGUoX3JlbmRlcmVyOiBhbnksIF9pbnB1dEJ1ZmZlcjogYW55LCBkZWx0YVRpbWU6IG51bWJlcikge1xuXHRcdGNvbnN0IGlUaW1lID0gdGhpcy51bmlmb3Jtcy5nZXQoJ2lUaW1lJyk7XG5cdFx0aWYgKGlUaW1lKSB7XG5cdFx0XHRpVGltZS52YWx1ZSArPSBkZWx0YVRpbWU7XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCB0eXBlIExlbnNGbGFyZU9wdGlvbnMgPSBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIExlbnNGbGFyZUVmZmVjdD5bMF0gJiB7XG5cdHBvc2l0aW9uOiBWZWN0b3IzO1xuXHRmb2xsb3dNb3VzZTogYm9vbGVhbjtcblx0c21vb3RoVGltZTogbnVtYmVyO1xufTtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IExlbnNGbGFyZU9wdGlvbnMgPSB7XG5cdHBvc2l0aW9uOiBuZXcgVmVjdG9yMygtMjUsIDYsIC02MCksXG5cdGZvbGxvd01vdXNlOiBmYWxzZSxcblx0c21vb3RoVGltZTogMC43LFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1sZW5zLWZsYXJlJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiBbZGlzcG9zZV09XCJudWxsXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwTGVuc0ZsYXJlIHtcblx0cHJpdmF0ZSBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0cHJpdmF0ZSB2aWV3cG9ydCA9IHRoaXMuc3RvcmUuc2VsZWN0KCd2aWV3cG9ydCcpO1xuXHRwcml2YXRlIHJheWNhc3RlciA9IHRoaXMuc3RvcmUuc2VsZWN0KCdyYXljYXN0ZXInKTtcblx0cHJpdmF0ZSBwb2ludGVyID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3BvaW50ZXInKTtcblxuXHRlZmZlY3RDb21wb3NlciA9IGluamVjdChOZ3RwRWZmZWN0Q29tcG9zZXIpO1xuXG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblxuXHRwcml2YXRlIHByb2plY3RlZFBvc2l0aW9uID0gbmV3IFZlY3RvcjMoKTtcblx0cHJpdmF0ZSBtb3VzZTJkID0gbmV3IFZlY3RvcjIoKTtcblxuXHRlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgeyBwb3NpdGlvbjogXywgZm9sbG93TW91c2U6IF9fLCBzbW9vdGhUaW1lOiBfX18sIC4uLm9wdGlvbnMgfSA9IHRoaXMub3B0aW9ucygpO1xuXHRcdHJldHVybiBuZXcgTGVuc0ZsYXJlRWZmZWN0KG9wdGlvbnMpO1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgW2VmZmVjdCwgdmlld3BvcnRdID0gW3RoaXMuZWZmZWN0KCksIHRoaXMudmlld3BvcnQoKV07XG5cdFx0XHRcdGNvbnN0IGlSZXNvbHV0aW9uID0gZWZmZWN0LnVuaWZvcm1zLmdldCgnaVJlc29sdXRpb24nKTtcblx0XHRcdFx0aWYgKGlSZXNvbHV0aW9uKSB7XG5cdFx0XHRcdFx0aVJlc29sdXRpb24udmFsdWUueCA9IHZpZXdwb3J0LndpZHRoO1xuXHRcdFx0XHRcdGlSZXNvbHV0aW9uLnZhbHVlLnkgPSB2aWV3cG9ydC5oZWlnaHQ7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCh7IGRlbHRhIH0pID0+IHtcblx0XHRcdGNvbnN0IFtlZmZlY3RdID0gW3RoaXMuZWZmZWN0KCldO1xuXHRcdFx0aWYgKCFlZmZlY3QpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgW3sgZm9sbG93TW91c2UsIHBvc2l0aW9uLCBzbW9vdGhUaW1lIH0sIHBvaW50ZXIsIGNhbWVyYSwgc2NlbmUsIHJheWNhc3Rlcl0gPSBbXG5cdFx0XHRcdHRoaXMub3B0aW9ucygpLFxuXHRcdFx0XHR0aGlzLnBvaW50ZXIoKSxcblx0XHRcdFx0dGhpcy5lZmZlY3RDb21wb3Nlci5jYW1lcmEoKSxcblx0XHRcdFx0dGhpcy5lZmZlY3RDb21wb3Nlci5zY2VuZSgpLFxuXHRcdFx0XHR0aGlzLnJheWNhc3RlcigpLFxuXHRcdFx0XTtcblxuXHRcdFx0Y29uc3QgdUxlbnNQb3NpdGlvbiA9IGVmZmVjdC51bmlmb3Jtcy5nZXQoJ2xlbnNQb3NpdGlvbicpO1xuXHRcdFx0Y29uc3QgdU9wYWNpdHkgPSBlZmZlY3QudW5pZm9ybXMuZ2V0KCdvcGFjaXR5Jyk7XG5cdFx0XHRpZiAoIXVMZW5zUG9zaXRpb24gfHwgIXVPcGFjaXR5KSByZXR1cm47XG5cblx0XHRcdGxldCB0YXJnZXQgPSAxO1xuXG5cdFx0XHRpZiAoZm9sbG93TW91c2UpIHtcblx0XHRcdFx0dUxlbnNQb3NpdGlvbi52YWx1ZS54ID0gcG9pbnRlci54O1xuXHRcdFx0XHR1TGVuc1Bvc2l0aW9uLnZhbHVlLnkgPSBwb2ludGVyLnk7XG5cdFx0XHRcdHRhcmdldCA9IDA7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnByb2plY3RlZFBvc2l0aW9uLmNvcHkocG9zaXRpb24pLnByb2plY3QoY2FtZXJhKTtcblx0XHRcdFx0aWYgKHRoaXMucHJvamVjdGVkUG9zaXRpb24ueiA+IDEpIHJldHVybjtcblxuXHRcdFx0XHR1TGVuc1Bvc2l0aW9uLnZhbHVlLnggPSB0aGlzLnByb2plY3RlZFBvc2l0aW9uLng7XG5cdFx0XHRcdHVMZW5zUG9zaXRpb24udmFsdWUueSA9IHRoaXMucHJvamVjdGVkUG9zaXRpb24ueTtcblxuXHRcdFx0XHR0aGlzLm1vdXNlMmQuc2V0KHRoaXMucHJvamVjdGVkUG9zaXRpb24ueCwgdGhpcy5wcm9qZWN0ZWRQb3NpdGlvbi55KTtcblx0XHRcdFx0cmF5Y2FzdGVyLnNldEZyb21DYW1lcmEodGhpcy5tb3VzZTJkLCBjYW1lcmEpO1xuXHRcdFx0XHRjb25zdCBpbnRlcnNlY3RzID0gcmF5Y2FzdGVyLmludGVyc2VjdE9iamVjdHMoc2NlbmUuY2hpbGRyZW4sIHRydWUpO1xuXHRcdFx0XHRjb25zdCB7IG9iamVjdCB9ID0gaW50ZXJzZWN0c1swXSA/PyB7fTtcblx0XHRcdFx0aWYgKG9iamVjdCkge1xuXHRcdFx0XHRcdGlmIChvYmplY3QudXNlckRhdGE/LlsnbGVuc2ZsYXJlJ10gPT09ICduby1vY2NsdXNpb24nKSB7XG5cdFx0XHRcdFx0XHR0YXJnZXQgPSAwO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAob2JqZWN0IGluc3RhbmNlb2YgTWVzaCkge1xuXHRcdFx0XHRcdFx0aWYgKG9iamVjdC5tYXRlcmlhbC51bmlmb3Jtcz8uX3RyYW5zbWlzc2lvbj8udmFsdWUgPiAwLjIpIHtcblx0XHRcdFx0XHRcdFx0Ly9DaGVjayBmb3IgTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsXG5cdFx0XHRcdFx0XHRcdHRhcmdldCA9IDAuMjtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAob2JqZWN0Lm1hdGVyaWFsLl90cmFuc21pc3Npb24gJiYgb2JqZWN0Lm1hdGVyaWFsLl90cmFuc21pc3Npb24gPiAwLjIpIHtcblx0XHRcdFx0XHRcdFx0Ly9DaGVjayBmb3IgTWVzaFBoeXNpY2FsTWF0ZXJpYWwgd2l0aCB0cmFuc21pc3Npb24gc2V0dGluZ1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQgPSAwLjI7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKG9iamVjdC5tYXRlcmlhbC50cmFuc3BhcmVudCkge1xuXHRcdFx0XHRcdFx0XHQvLyBDaGVjayBmb3IgT3RoZXJNYXRlcmlhbHMgd2l0aCB0cmFuc3BhcmVudCBwYXJhbWV0ZXJcblx0XHRcdFx0XHRcdFx0dGFyZ2V0ID0gb2JqZWN0Lm1hdGVyaWFsLm9wYWNpdHk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGVhc2luZy5kYW1wKHVPcGFjaXR5LCAndmFsdWUnLCB0YXJnZXQsIHNtb290aFRpbWUsIGRlbHRhKTtcblx0XHR9KTtcblx0fVxufVxuIl19
|
|
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
47
47
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
48
48
|
}]
|
|
49
49
|
}], ctorParameters: () => [] });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvbHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsUUFBUSxFQUNSLEtBQUssR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFpQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFtQjVELE1BQU0sT0FBTyxPQUFPO0lBYW5CO1FBWlEsZUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDaEMsVUFBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyRCxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQWdCLENBQUMsQ0FBQztRQUMxQixRQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sSUFBSSxXQUFXLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBR0YsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDcEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxFQUFFLFVBQVUsQ0FBQyxHQUFHO29CQUMvRCxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNiLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLFVBQVUsRUFBRTtpQkFDakIsQ0FBQztnQkFFRixJQUFJLHdCQUF3QjtvQkFBRSxNQUFNLENBQUMsd0JBQXdCLEdBQUcsd0JBQXdCLENBQUM7Z0JBQ3pGLElBQUksR0FBRztvQkFBRSxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztnQkFDMUIsVUFBVSxFQUFFLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0EzQlcsT0FBTztrR0FBUCxPQUFPLDhNQVJUOztFQUVULDREQUNTLE9BQU87OzJGQUtMLE9BQU87a0JBVm5CLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0aW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgaW5qZWN0U3RvcmUsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIExVVDNERWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgVGV4dHVyZSB9IGZyb20gJ3RocmVlJztcblxuZXhwb3J0IGludGVyZmFjZSBMVVRPcHRpb25zIHtcblx0bHV0OiBUZXh0dXJlO1xuXHRibGVuZEZ1bmN0aW9uPzogQmxlbmRGdW5jdGlvbjtcblx0dGV0cmFoZWRyYWxJbnRlcnBvbGF0aW9uPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1sdXQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIFtkaXNwb3NlXT1cIm51bGxcIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBMVVQge1xuXHRwcml2YXRlIGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIGludmFsaWRhdGUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnaW52YWxpZGF0ZScpO1xuXG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBMVVRPcHRpb25zKTtcblx0cHJpdmF0ZSBsdXQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2x1dCcpO1xuXG5cdGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbbHV0LCB7IGx1dDogXywgLi4ub3B0aW9ucyB9XSA9IFt0aGlzLmx1dCgpLCB0aGlzLm9wdGlvbnMoKV07XG5cdFx0cmV0dXJuIG5ldyBMVVQzREVmZmVjdChsdXQsIG9wdGlvbnMpO1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgW2VmZmVjdCwgeyBsdXQsIHRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbiB9LCBpbnZhbGlkYXRlXSA9IFtcblx0XHRcdFx0XHR0aGlzLmVmZmVjdCgpLFxuXHRcdFx0XHRcdHRoaXMub3B0aW9ucygpLFxuXHRcdFx0XHRcdHRoaXMuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XHRdO1xuXG5cdFx0XHRcdGlmICh0ZXRyYWhlZHJhbEludGVycG9sYXRpb24pIGVmZmVjdC50ZXRyYWhlZHJhbEludGVycG9sYXRpb24gPSB0ZXRyYWhlZHJhbEludGVycG9sYXRpb247XG5cdFx0XHRcdGlmIChsdXQpIGVmZmVjdC5sdXQgPSBsdXQ7XG5cdFx0XHRcdGludmFsaWRhdGUoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
|
|
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
27
27
|
imports: [NgtArgs],
|
|
28
28
|
}]
|
|
29
29
|
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl4ZWxhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3BpeGVsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFlbEQsTUFBTSxPQUFPLGNBQWM7SUFWM0I7UUFXQyxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBdUIsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakcsZ0JBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUV4RCxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUNsRTs4R0FMWSxjQUFjO2tHQUFkLGNBQWMscU5BUmhCOztFQUVULDREQUlTLE9BQU87OzJGQUVMLGNBQWM7a0JBVjFCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOztFQUVUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IFBpeGVsYXRpb25FZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGl4ZWxhdGlvbk9wdGlvbnMge1xuXHRncmFudWxhcml0eTogbnVtYmVyO1xufVxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1waXhlbGF0aW9uJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiAvPlxuXHRgLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBQaXhlbGF0aW9uIHtcblx0b3B0aW9ucyA9IGlucHV0KHsgZ3JhbnVsYXJpdHk6IDUgfSBhcyBQaXhlbGF0aW9uT3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKHsgZ3JhbnVsYXJpdHk6IDUgfSkgfSk7XG5cdHByaXZhdGUgZ3JhbnVsYXJpdHkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2dyYW51bGFyaXR5Jyk7XG5cblx0ZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4gbmV3IFBpeGVsYXRpb25FZmZlY3QodGhpcy5ncmFudWxhcml0eSgpKSk7XG59XG4iXX0=
|