@unovis/angular 1.6.1 → 1.6.2-pre.1

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.
@@ -83,7 +83,7 @@ export declare class VisCrosshairComponent<Datum> implements CrosshairConfigInte
83
83
  /** Tooltip template accessor. The function is supposed to return either a valid HTML string or an HTMLElement.
84
84
  * When `snapToData` is `false`, `datum` will be `undefined` but `data` and `leftNearestDatumIndex` will be provided.
85
85
  * Default: `d => ''` */
86
- template?: (datum: Datum, x: number | Date, data: Datum[], leftNearestDatumIndex: number) => string | HTMLElement;
86
+ template?: (datum: Datum, x: number | Date, data?: Datum[], leftNearestDatumIndex?: number) => string | HTMLElement;
87
87
  /** Hide Crosshair when the corresponding datum element is far from mouse pointer. Default: `true` */
88
88
  hideWhenFarFromPointer?: boolean;
89
89
  /** Distance in pixels to check in the hideWhenFarFromPointer condition. Default: `100` */
@@ -98,7 +98,7 @@ export declare class VisCrosshairComponent<Datum> implements CrosshairConfigInte
98
98
  * the `yScale` instance to help you calculate the correct vertical position of the circles, and the nearest datum index.
99
99
  * It has to return an array of the `CrosshairCircle` objects: `{ y: number; color: string; opacity?: number }[]`.
100
100
  * Default: `undefined` */
101
- getCircles?: (x: number | Date, data: Datum[], yScale: ContinuousScale, leftNearestDatumIndex: number) => CrosshairCircle[];
101
+ getCircles?: (x: number | Date, data: Datum[], yScale: ContinuousScale, leftNearestDatumIndex?: number) => CrosshairCircle[];
102
102
  /** Callback function that is called when the crosshair is moved:
103
103
  * - `x` is the horizontal position of the crosshair in the data space;
104
104
  * - `datum` is the nearest datum to the crosshair;
@@ -86,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
86
86
  }], data: [{
87
87
  type: Input
88
88
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NoYWlyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Nyb3NzaGFpci9jcm9zc2hhaXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxTQUFTLEdBVVYsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLHFCQUFxQjtJQXVJaEMsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksU0FBUyxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRXZELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzNSLE1BQU0sTUFBTSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLENBQUE7UUFDN1IsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQThDLENBQUE7UUFDN0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTFFLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQzs7bUhBN0pVLHFCQUFxQjt1R0FBckIscUJBQXFCLHNvQkFGckIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLENBQUMsK0NBRmxFLEVBQUU7NEZBSUQscUJBQXFCO2tCQU5qQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUUsRUFBRTtvQkFDWixnREFBZ0Q7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLHVCQUF1QixFQUFFLENBQUM7aUJBQzdFOzhCQUdVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBbUJHLE1BQU07c0JBQWQsS0FBSztnQkF3QkcsVUFBVTtzQkFBbEIsS0FBSztnQkFPRyxDQUFDO3NCQUFULEtBQUs7Z0JBR0csQ0FBQztzQkFBVCxLQUFLO2dCQUdHLEVBQUU7c0JBQVYsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFNRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBR0csOEJBQThCO3NCQUF0QyxLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csVUFBVTtzQkFBbEIsS0FBSztnQkFVRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ3Jvc3NoYWlyLFxuICBDcm9zc2hhaXJDb25maWdJbnRlcmZhY2UsXG4gIENvbnRhaW5lckNvcmUsXG4gIFZpc0V2ZW50VHlwZSxcbiAgVmlzRXZlbnRDYWxsYmFjayxcbiAgTnVtZXJpY0FjY2Vzc29yLFxuICBDb2xvckFjY2Vzc29yLFxuICBDb250aW51b3VzU2NhbGUsXG4gIFRvb2x0aXAsXG4gIENyb3NzaGFpckNpcmNsZSxcbn0gZnJvbSAnQHVub3Zpcy90cydcbmltcG9ydCB7IFZpc1hZQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmlzLWNyb3NzaGFpcicsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzWFlDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNDcm9zc2hhaXJDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFZpc0Nyb3NzaGFpckNvbXBvbmVudDxEYXR1bT4gaW1wbGVtZW50cyBDcm9zc2hhaXJDb25maWdJbnRlcmZhY2U8RGF0dW0+LCBBZnRlclZpZXdJbml0IHtcbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZGF0YSB1cGRhdGUgdHJhbnNpdGlvbnMgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0OiBgNjAwYCAqL1xuICBASW5wdXQoKSBkdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBFdmVudHMgY29uZmlndXJhdGlvbi4gQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFtldmVudFR5cGVdOiBjYWxsYmFja0Z1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIGNsaWNrOiAoZCkgPT4gY29uc29sZS5sb2coXCJDbGlja2VkIEFyZWFcIiwgZClcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgZXZlbnRzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2V2ZW50VHlwZSBpbiBWaXNFdmVudFR5cGVdPzogVmlzRXZlbnRDYWxsYmFja1xuICAgIH07XG4gIH1cblxuICAvKiogWW91IGNhbiBzZXQgZXZlcnkgU1ZHIGFuZCBIVE1MIHZpc3VhbGl6YXRpb24gb2JqZWN0IHRvIGhhdmUgYSBjdXN0b20gRE9NIGF0dHJpYnV0ZXMsIHdoaWNoIGlzIHVzZWZ1bFxuICAgKiB3aGVuIHlvdSB3YW50IHRvIGRvIHVuaXQgb3IgZW5kLXRvLWVuZCB0ZXN0aW5nLiBBdHRyaWJ1dGVzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFthdHRyaWJ1dGVOYW1lXTogYXR0cmlidXRlIGNvbnN0YW50IHZhbHVlIG9yIGFjY2Vzc29yIGZ1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIFwidGVzdC12YWx1ZVwiOiBkID0+IGQudmFsdWVcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgYXR0cmlidXRlcz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFthdHRyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgKChkYXR1bTogYW55KSA9PiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIE9wdGlvbmFsIGFjY2Vzc29yIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRoZSB2YWx1ZXMgYWxvbmcgdGhlIFggYXhpcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeD86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogT3B0aW9uYWwgc2luZ2xlIG9mIG11bHRpcGxlIGFjY2Vzc29yIGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyB0aGUgdmFsdWVzIGFsb25nIHRoZSBZIGF4aXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHk/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+IHwgTnVtZXJpY0FjY2Vzc29yPERhdHVtPltdXG5cbiAgLyoqIEFjY2Vzc29yIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRoZSB1bmlxdWUgZGF0YSByZWNvcmQgaWQuIFVzZWQgZm9yIG1vcmUgcGVyc2lzdGVudCBkYXRhIHVwZGF0ZXMuIERlZmF1bHQ6IGAoZCwgaSkgPT4gZC5pZCA/PyBpYCAqL1xuICBASW5wdXQoKSBpZD86ICgoZDogRGF0dW0sIGk6IG51bWJlciwgLi4ucmVzdCkgPT4gc3RyaW5nKVxuXG4gIC8qKiBPcHRpb25hbCBjb2xvciBhcnJheSBvciBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgY3Jvc3NoYWlyIGNpcmNsZXMuIERlZmF1bHQ6IGBkID0+IGQuY29sb3JgICovXG4gIEBJbnB1dCgpIGNvbG9yPzogQ29sb3JBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogU2NhbGUgZm9yIFggZGltZW5zaW9uLCBlLmcuIFNjYWxlLnNjYWxlTGluZWFyKCkuIElmIHlvdSBzZXQgeFNjYWxlIHlvdSdsbCBiZSByZXNwb25zaWJsZSBmb3Igc2V0dGluZyBpdCdzIGBkb21haW5gIGFuZCBgcmFuZ2VgIGFzIHdlbGwuXG4gICAqIE9ubHkgY29udGludW91cyBzY2FsZXMgYXJlIHN1cHBvcnRlZC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeFNjYWxlPzogQ29udGludW91c1NjYWxlXG5cbiAgLyoqIFNjYWxlIGZvciBZIGRpbWVuc2lvbiwgZS5nLiBTY2FsZS5zY2FsZUxpbmVhcigpLiBJZiB5b3Ugc2V0IHlTY2FsZSB5b3UnbGwgYmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgaXQncyBgZG9tYWluYCBhbmQgYHJhbmdlYCBhcyB3ZWxsLlxuICAgKiBPbmx5IGNvbnRpbnVvdXMgc2NhbGVzIGFyZSBzdXBwb3J0ZWQuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHlTY2FsZT86IENvbnRpbnVvdXNTY2FsZVxuXG4gIC8qKiBJZGVudGlmaWVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSBvdmVyYWxsIFggYW5kIFkgZG9tYWluIGNhbGN1bGF0aW9ucyBvciBub3QuXG4gICAqIFRoaXMgcHJvcGVydHkgY2FuIGJlIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHBhc3MgaW5kaXZpZHVhbCBkYXRhIHRvIGEgY29tcG9uZW50IGFuZCB5b3UgZG9uJ3Qgd2FudCBpdCB0byBhZmZlY3RcbiAgICogdGhlIHNjYWxlcyBvZiB0aGUgY2hhcnQuXG4gICAqIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgZXhjbHVkZUZyb21Eb21haW5DYWxjdWxhdGlvbj86IGJvb2xlYW5cblxuICAvKiogT3B0aW9uYWwgc3Ryb2tlIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIGZvciBjcm9zc2hhaXIgY2lyY2xlcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc3Ryb2tlQ29sb3I/OiBDb2xvckFjY2Vzc29yPERhdHVtPlxuXG4gIC8qKiBPcHRpb25hbCBzdHJva2Ugd2lkdGggZm9yIGNyb3NzaGFpciBjaXJjbGVzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBzdHJva2VXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogU2VwYXJhdGUgYXJyYXkgb2YgYWNjZXNzb3JzIGZvciBzdGFja2VkIGNvbXBvbmVudHMgKGVnIFN0YWNrZWRCYXIsIEFyZWEpLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB5U3RhY2tlZD86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5bXVxuXG4gIC8qKiBCYXNlbGluZSBhY2Nlc3NvciBmdW5jdGlvbiBmb3Igc3RhY2tlZCB2YWx1ZXMsIHVzZWZ1bCB3aXRoIHN0YWNrZWQgYXJlYXMuIERlZmF1bHQ6IGBudWxsYCAqL1xuICBASW5wdXQoKSBiYXNlbGluZT86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogQW4gaW5zdGFuY2Ugb2YgdGhlIFRvb2x0aXAgY29tcG9uZW50IHRvIGJlIHVzZWQgd2l0aCBDcm9zc2hhaXIuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHRvb2x0aXA/OiBUb29sdGlwIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFRvb2x0aXAgdGVtcGxhdGUgYWNjZXNzb3IuIFRoZSBmdW5jdGlvbiBpcyBzdXBwb3NlZCB0byByZXR1cm4gZWl0aGVyIGEgdmFsaWQgSFRNTCBzdHJpbmcgb3IgYW4gSFRNTEVsZW1lbnQuXG4gICAqIFdoZW4gYHNuYXBUb0RhdGFgIGlzIGBmYWxzZWAsIGBkYXR1bWAgd2lsbCBiZSBgdW5kZWZpbmVkYCBidXQgYGRhdGFgIGFuZCBgbGVmdE5lYXJlc3REYXR1bUluZGV4YCB3aWxsIGJlIHByb3ZpZGVkLlxuICAgKiBEZWZhdWx0OiBgZCA9PiAnJ2AgKi9cbiAgQElucHV0KCkgdGVtcGxhdGU/OiAoZGF0dW06IERhdHVtLCB4OiBudW1iZXIgfCBEYXRlLCBkYXRhOiBEYXR1bVtdLCBsZWZ0TmVhcmVzdERhdHVtSW5kZXg6IG51bWJlcikgPT4gc3RyaW5nIHwgSFRNTEVsZW1lbnRcblxuICAvKiogSGlkZSBDcm9zc2hhaXIgd2hlbiB0aGUgY29ycmVzcG9uZGluZyBkYXR1bSBlbGVtZW50IGlzIGZhciBmcm9tIG1vdXNlIHBvaW50ZXIuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBoaWRlV2hlbkZhckZyb21Qb2ludGVyPzogYm9vbGVhblxuXG4gIC8qKiBEaXN0YW5jZSBpbiBwaXhlbHMgdG8gY2hlY2sgaW4gdGhlIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXIgY29uZGl0aW9uLiBEZWZhdWx0OiBgMTAwYCAqL1xuICBASW5wdXQoKSBoaWRlV2hlbkZhckZyb21Qb2ludGVyRGlzdGFuY2U/OiBudW1iZXJcblxuICAvKiogU25hcCB0byB0aGUgbmVhcmVzdCBkYXRhIHBvaW50LlxuICAgKiBJZiBkaXNhYmxlZCwgdGhlIHRvb2x0aXAgdGVtcGxhdGUgd2lsbCByZWNlaXZlIG9ubHkgdGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIGNyb3NzaGFpciBhbmQgeW91J2xsIGJlIHJlc3BvbnNpYmxlXG4gICAqIGZvciBnZXR0aW5nIHRoZSB1bmRlcmx5aW5nIGRhdGEgcmVjb3JkcyBhbmQgY3Jvc3NoYWlyIGNpcmNsZXMgKHNlZSB0aGUgYGdldENpcmNsZXNgIGNvbmZpZ3VyYXRpb24gb3B0aW9uKS5cbiAgICogRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIHNuYXBUb0RhdGE/OiBib29sZWFuXG5cbiAgLyoqIEN1c3RvbSBmdW5jdGlvbiBmb3Igc2V0dGluZyB1cCB0aGUgY3Jvc3NoYWlyIGNpcmNsZXMsIHVzdWFsbHkgbmVlZGVkIHdoZW4gYHNuYXBUb0RhdGFgIGlzIHNldCB0byBgZmFsc2VgLlxuICAgKiBUaGUgZnVuY3Rpb24gcmVjZWl2ZXMgdGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIGNyb3NzaGFpciAoaW4gdGhlIGRhdGEgc3BhY2UsIG5vdCBpbiBwaXhlbHMpLCB0aGUgZGF0YSBhcnJheSxcbiAgICogdGhlIGB5U2NhbGVgIGluc3RhbmNlIHRvIGhlbHAgeW91IGNhbGN1bGF0ZSB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgY2lyY2xlcywgYW5kIHRoZSBuZWFyZXN0IGRhdHVtIGluZGV4LlxuICAgKiBJdCBoYXMgdG8gcmV0dXJuIGFuIGFycmF5IG9mIHRoZSBgQ3Jvc3NoYWlyQ2lyY2xlYCBvYmplY3RzOiBgeyB5OiBudW1iZXI7IGNvbG9yOiBzdHJpbmc7IG9wYWNpdHk/OiBudW1iZXIgfVtdYC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgZ2V0Q2lyY2xlcz86ICh4OiBudW1iZXIgfCBEYXRlLCBkYXRhOiBEYXR1bVtdLCB5U2NhbGU6IENvbnRpbnVvdXNTY2FsZSwgbGVmdE5lYXJlc3REYXR1bUluZGV4OiBudW1iZXIpID0+IENyb3NzaGFpckNpcmNsZVtdXG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIGNyb3NzaGFpciBpcyBtb3ZlZDpcbiAgICogLSBgeGAgaXMgdGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIGNyb3NzaGFpciBpbiB0aGUgZGF0YSBzcGFjZTtcbiAgICogLSBgZGF0dW1gIGlzIHRoZSBuZWFyZXN0IGRhdHVtIHRvIHRoZSBjcm9zc2hhaXI7XG4gICAqIC0gYGRhdHVtSW5kZXhgIGlzIHRoZSBpbmRleCBvZiB0aGUgbmVhcmVzdCBkYXR1bS5cbiAgICogLSBgZXZlbnRgIGlzIHRoZSBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgY3Jvc3NoYWlyIG1vdmUgKG1vdXNlIG9yIHdoZWVsKS5cbiAgICpcbiAgICogV2hlbiB0aGUgbW91c2UgZ29lcyBvdXQgb2YgdGhlIGNvbnRhaW5lciBhbmQgb24gd2hlZWwgZXZlbnRzLCBhbGwgdGhlIGFyZ3VtZW50cyBhcmUgYHVuZGVmaW5lZGAgZXhjZXB0IGZvciBgZXZlbnRgLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbkNyb3NzaGFpck1vdmU/OiAoeD86IG51bWJlciB8IERhdGUsIGRhdHVtPzogRGF0dW0sIGRhdHVtSW5kZXg/OiBudW1iZXIsIGV2ZW50PzogTW91c2VFdmVudCB8IFdoZWVsRXZlbnQpID0+IHZvaWRcblxuICAvKiogRm9yY2UgdGhlIGNyb3NzaGFpciB0byBzaG93IGF0IGEgc3BlY2lmaWMgcG9zaXRpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGZvcmNlU2hvd0F0PzogbnVtYmVyIHwgRGF0ZVxuICBASW5wdXQoKSBkYXRhOiBEYXR1bVtdXG5cbiAgY29tcG9uZW50OiBDcm9zc2hhaXI8RGF0dW0+IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IENyb3NzaGFpcjxEYXR1bT4odGhpcy5nZXRDb25maWcoKSlcblxuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50LnNldERhdGEodGhpcy5kYXRhKVxuICAgICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMgKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kYXRhKSB7IHRoaXMuY29tcG9uZW50Py5zZXREYXRhKHRoaXMuZGF0YSkgfVxuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBDcm9zc2hhaXJDb25maWdJbnRlcmZhY2U8RGF0dW0+IHtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIHgsIHksIGlkLCBjb2xvciwgeFNjYWxlLCB5U2NhbGUsIGV4Y2x1ZGVGcm9tRG9tYWluQ2FsY3VsYXRpb24sIHN0cm9rZUNvbG9yLCBzdHJva2VXaWR0aCwgeVN0YWNrZWQsIGJhc2VsaW5lLCB0b29sdGlwLCB0ZW1wbGF0ZSwgaGlkZVdoZW5GYXJGcm9tUG9pbnRlciwgaGlkZVdoZW5GYXJGcm9tUG9pbnRlckRpc3RhbmNlLCBzbmFwVG9EYXRhLCBnZXRDaXJjbGVzLCBvbkNyb3NzaGFpck1vdmUsIGZvcmNlU2hvd0F0IH0gPSB0aGlzXG4gICAgY29uc3QgY29uZmlnID0geyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCB4LCB5LCBpZCwgY29sb3IsIHhTY2FsZSwgeVNjYWxlLCBleGNsdWRlRnJvbURvbWFpbkNhbGN1bGF0aW9uLCBzdHJva2VDb2xvciwgc3Ryb2tlV2lkdGgsIHlTdGFja2VkLCBiYXNlbGluZSwgdG9vbHRpcCwgdGVtcGxhdGUsIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXIsIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXJEaXN0YW5jZSwgc25hcFRvRGF0YSwgZ2V0Q2lyY2xlcywgb25Dcm9zc2hhaXJNb3ZlLCBmb3JjZVNob3dBdCB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIENyb3NzaGFpckNvbmZpZ0ludGVyZmFjZTxEYXR1bT4pW11cbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsgaWYgKGNvbmZpZ1trZXldID09PSB1bmRlZmluZWQpIGRlbGV0ZSBjb25maWdba2V5XSB9KVxuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG59XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NoYWlyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Nyb3NzaGFpci9jcm9zc2hhaXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxTQUFTLEdBVVYsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLHFCQUFxQjtJQXVJaEMsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksU0FBUyxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRXZELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzNSLE1BQU0sTUFBTSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLENBQUE7UUFDN1IsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQThDLENBQUE7UUFDN0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTFFLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQzs7bUhBN0pVLHFCQUFxQjt1R0FBckIscUJBQXFCLHNvQkFGckIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLENBQUMsK0NBRmxFLEVBQUU7NEZBSUQscUJBQXFCO2tCQU5qQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUUsRUFBRTtvQkFDWixnREFBZ0Q7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLHVCQUF1QixFQUFFLENBQUM7aUJBQzdFOzhCQUdVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBbUJHLE1BQU07c0JBQWQsS0FBSztnQkF3QkcsVUFBVTtzQkFBbEIsS0FBSztnQkFPRyxDQUFDO3NCQUFULEtBQUs7Z0JBR0csQ0FBQztzQkFBVCxLQUFLO2dCQUdHLEVBQUU7c0JBQVYsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFNRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBR0csOEJBQThCO3NCQUF0QyxLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csVUFBVTtzQkFBbEIsS0FBSztnQkFVRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ3Jvc3NoYWlyLFxuICBDcm9zc2hhaXJDb25maWdJbnRlcmZhY2UsXG4gIENvbnRhaW5lckNvcmUsXG4gIFZpc0V2ZW50VHlwZSxcbiAgVmlzRXZlbnRDYWxsYmFjayxcbiAgTnVtZXJpY0FjY2Vzc29yLFxuICBDb2xvckFjY2Vzc29yLFxuICBDb250aW51b3VzU2NhbGUsXG4gIFRvb2x0aXAsXG4gIENyb3NzaGFpckNpcmNsZSxcbn0gZnJvbSAnQHVub3Zpcy90cydcbmltcG9ydCB7IFZpc1hZQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmlzLWNyb3NzaGFpcicsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzWFlDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNDcm9zc2hhaXJDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFZpc0Nyb3NzaGFpckNvbXBvbmVudDxEYXR1bT4gaW1wbGVtZW50cyBDcm9zc2hhaXJDb25maWdJbnRlcmZhY2U8RGF0dW0+LCBBZnRlclZpZXdJbml0IHtcbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZGF0YSB1cGRhdGUgdHJhbnNpdGlvbnMgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0OiBgNjAwYCAqL1xuICBASW5wdXQoKSBkdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBFdmVudHMgY29uZmlndXJhdGlvbi4gQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFtldmVudFR5cGVdOiBjYWxsYmFja0Z1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIGNsaWNrOiAoZCkgPT4gY29uc29sZS5sb2coXCJDbGlja2VkIEFyZWFcIiwgZClcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgZXZlbnRzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2V2ZW50VHlwZSBpbiBWaXNFdmVudFR5cGVdPzogVmlzRXZlbnRDYWxsYmFja1xuICAgIH07XG4gIH1cblxuICAvKiogWW91IGNhbiBzZXQgZXZlcnkgU1ZHIGFuZCBIVE1MIHZpc3VhbGl6YXRpb24gb2JqZWN0IHRvIGhhdmUgYSBjdXN0b20gRE9NIGF0dHJpYnV0ZXMsIHdoaWNoIGlzIHVzZWZ1bFxuICAgKiB3aGVuIHlvdSB3YW50IHRvIGRvIHVuaXQgb3IgZW5kLXRvLWVuZCB0ZXN0aW5nLiBBdHRyaWJ1dGVzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFthdHRyaWJ1dGVOYW1lXTogYXR0cmlidXRlIGNvbnN0YW50IHZhbHVlIG9yIGFjY2Vzc29yIGZ1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIFwidGVzdC12YWx1ZVwiOiBkID0+IGQudmFsdWVcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgYXR0cmlidXRlcz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFthdHRyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgKChkYXR1bTogYW55KSA9PiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIE9wdGlvbmFsIGFjY2Vzc29yIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRoZSB2YWx1ZXMgYWxvbmcgdGhlIFggYXhpcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeD86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogT3B0aW9uYWwgc2luZ2xlIG9mIG11bHRpcGxlIGFjY2Vzc29yIGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyB0aGUgdmFsdWVzIGFsb25nIHRoZSBZIGF4aXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHk/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+IHwgTnVtZXJpY0FjY2Vzc29yPERhdHVtPltdXG5cbiAgLyoqIEFjY2Vzc29yIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRoZSB1bmlxdWUgZGF0YSByZWNvcmQgaWQuIFVzZWQgZm9yIG1vcmUgcGVyc2lzdGVudCBkYXRhIHVwZGF0ZXMuIERlZmF1bHQ6IGAoZCwgaSkgPT4gZC5pZCA/PyBpYCAqL1xuICBASW5wdXQoKSBpZD86ICgoZDogRGF0dW0sIGk6IG51bWJlciwgLi4ucmVzdCkgPT4gc3RyaW5nKVxuXG4gIC8qKiBPcHRpb25hbCBjb2xvciBhcnJheSBvciBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgY3Jvc3NoYWlyIGNpcmNsZXMuIERlZmF1bHQ6IGBkID0+IGQuY29sb3JgICovXG4gIEBJbnB1dCgpIGNvbG9yPzogQ29sb3JBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogU2NhbGUgZm9yIFggZGltZW5zaW9uLCBlLmcuIFNjYWxlLnNjYWxlTGluZWFyKCkuIElmIHlvdSBzZXQgeFNjYWxlIHlvdSdsbCBiZSByZXNwb25zaWJsZSBmb3Igc2V0dGluZyBpdCdzIGBkb21haW5gIGFuZCBgcmFuZ2VgIGFzIHdlbGwuXG4gICAqIE9ubHkgY29udGludW91cyBzY2FsZXMgYXJlIHN1cHBvcnRlZC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeFNjYWxlPzogQ29udGludW91c1NjYWxlXG5cbiAgLyoqIFNjYWxlIGZvciBZIGRpbWVuc2lvbiwgZS5nLiBTY2FsZS5zY2FsZUxpbmVhcigpLiBJZiB5b3Ugc2V0IHlTY2FsZSB5b3UnbGwgYmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgaXQncyBgZG9tYWluYCBhbmQgYHJhbmdlYCBhcyB3ZWxsLlxuICAgKiBPbmx5IGNvbnRpbnVvdXMgc2NhbGVzIGFyZSBzdXBwb3J0ZWQuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHlTY2FsZT86IENvbnRpbnVvdXNTY2FsZVxuXG4gIC8qKiBJZGVudGlmaWVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSBvdmVyYWxsIFggYW5kIFkgZG9tYWluIGNhbGN1bGF0aW9ucyBvciBub3QuXG4gICAqIFRoaXMgcHJvcGVydHkgY2FuIGJlIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHBhc3MgaW5kaXZpZHVhbCBkYXRhIHRvIGEgY29tcG9uZW50IGFuZCB5b3UgZG9uJ3Qgd2FudCBpdCB0byBhZmZlY3RcbiAgICogdGhlIHNjYWxlcyBvZiB0aGUgY2hhcnQuXG4gICAqIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgZXhjbHVkZUZyb21Eb21haW5DYWxjdWxhdGlvbj86IGJvb2xlYW5cblxuICAvKiogT3B0aW9uYWwgc3Ryb2tlIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIGZvciBjcm9zc2hhaXIgY2lyY2xlcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc3Ryb2tlQ29sb3I/OiBDb2xvckFjY2Vzc29yPERhdHVtPlxuXG4gIC8qKiBPcHRpb25hbCBzdHJva2Ugd2lkdGggZm9yIGNyb3NzaGFpciBjaXJjbGVzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBzdHJva2VXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogU2VwYXJhdGUgYXJyYXkgb2YgYWNjZXNzb3JzIGZvciBzdGFja2VkIGNvbXBvbmVudHMgKGVnIFN0YWNrZWRCYXIsIEFyZWEpLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB5U3RhY2tlZD86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5bXVxuXG4gIC8qKiBCYXNlbGluZSBhY2Nlc3NvciBmdW5jdGlvbiBmb3Igc3RhY2tlZCB2YWx1ZXMsIHVzZWZ1bCB3aXRoIHN0YWNrZWQgYXJlYXMuIERlZmF1bHQ6IGBudWxsYCAqL1xuICBASW5wdXQoKSBiYXNlbGluZT86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogQW4gaW5zdGFuY2Ugb2YgdGhlIFRvb2x0aXAgY29tcG9uZW50IHRvIGJlIHVzZWQgd2l0aCBDcm9zc2hhaXIuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHRvb2x0aXA/OiBUb29sdGlwIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFRvb2x0aXAgdGVtcGxhdGUgYWNjZXNzb3IuIFRoZSBmdW5jdGlvbiBpcyBzdXBwb3NlZCB0byByZXR1cm4gZWl0aGVyIGEgdmFsaWQgSFRNTCBzdHJpbmcgb3IgYW4gSFRNTEVsZW1lbnQuXG4gICAqIFdoZW4gYHNuYXBUb0RhdGFgIGlzIGBmYWxzZWAsIGBkYXR1bWAgd2lsbCBiZSBgdW5kZWZpbmVkYCBidXQgYGRhdGFgIGFuZCBgbGVmdE5lYXJlc3REYXR1bUluZGV4YCB3aWxsIGJlIHByb3ZpZGVkLlxuICAgKiBEZWZhdWx0OiBgZCA9PiAnJ2AgKi9cbiAgQElucHV0KCkgdGVtcGxhdGU/OiAoZGF0dW06IERhdHVtLCB4OiBudW1iZXIgfCBEYXRlLCBkYXRhPzogRGF0dW1bXSwgbGVmdE5lYXJlc3REYXR1bUluZGV4PzogbnVtYmVyKSA9PiBzdHJpbmcgfCBIVE1MRWxlbWVudFxuXG4gIC8qKiBIaWRlIENyb3NzaGFpciB3aGVuIHRoZSBjb3JyZXNwb25kaW5nIGRhdHVtIGVsZW1lbnQgaXMgZmFyIGZyb20gbW91c2UgcG9pbnRlci4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXI/OiBib29sZWFuXG5cbiAgLyoqIERpc3RhbmNlIGluIHBpeGVscyB0byBjaGVjayBpbiB0aGUgaGlkZVdoZW5GYXJGcm9tUG9pbnRlciBjb25kaXRpb24uIERlZmF1bHQ6IGAxMDBgICovXG4gIEBJbnB1dCgpIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXJEaXN0YW5jZT86IG51bWJlclxuXG4gIC8qKiBTbmFwIHRvIHRoZSBuZWFyZXN0IGRhdGEgcG9pbnQuXG4gICAqIElmIGRpc2FibGVkLCB0aGUgdG9vbHRpcCB0ZW1wbGF0ZSB3aWxsIHJlY2VpdmUgb25seSB0aGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgY3Jvc3NoYWlyIGFuZCB5b3UnbGwgYmUgcmVzcG9uc2libGVcbiAgICogZm9yIGdldHRpbmcgdGhlIHVuZGVybHlpbmcgZGF0YSByZWNvcmRzIGFuZCBjcm9zc2hhaXIgY2lyY2xlcyAoc2VlIHRoZSBgZ2V0Q2lyY2xlc2AgY29uZmlndXJhdGlvbiBvcHRpb24pLlxuICAgKiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgc25hcFRvRGF0YT86IGJvb2xlYW5cblxuICAvKiogQ3VzdG9tIGZ1bmN0aW9uIGZvciBzZXR0aW5nIHVwIHRoZSBjcm9zc2hhaXIgY2lyY2xlcywgdXN1YWxseSBuZWVkZWQgd2hlbiBgc25hcFRvRGF0YWAgaXMgc2V0IHRvIGBmYWxzZWAuXG4gICAqIFRoZSBmdW5jdGlvbiByZWNlaXZlcyB0aGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgY3Jvc3NoYWlyIChpbiB0aGUgZGF0YSBzcGFjZSwgbm90IGluIHBpeGVscyksIHRoZSBkYXRhIGFycmF5LFxuICAgKiB0aGUgYHlTY2FsZWAgaW5zdGFuY2UgdG8gaGVscCB5b3UgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBjaXJjbGVzLCBhbmQgdGhlIG5lYXJlc3QgZGF0dW0gaW5kZXguXG4gICAqIEl0IGhhcyB0byByZXR1cm4gYW4gYXJyYXkgb2YgdGhlIGBDcm9zc2hhaXJDaXJjbGVgIG9iamVjdHM6IGB7IHk6IG51bWJlcjsgY29sb3I6IHN0cmluZzsgb3BhY2l0eT86IG51bWJlciB9W11gLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBnZXRDaXJjbGVzPzogKHg6IG51bWJlciB8IERhdGUsIGRhdGE6IERhdHVtW10sIHlTY2FsZTogQ29udGludW91c1NjYWxlLCBsZWZ0TmVhcmVzdERhdHVtSW5kZXg/OiBudW1iZXIpID0+IENyb3NzaGFpckNpcmNsZVtdXG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIGNyb3NzaGFpciBpcyBtb3ZlZDpcbiAgICogLSBgeGAgaXMgdGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIGNyb3NzaGFpciBpbiB0aGUgZGF0YSBzcGFjZTtcbiAgICogLSBgZGF0dW1gIGlzIHRoZSBuZWFyZXN0IGRhdHVtIHRvIHRoZSBjcm9zc2hhaXI7XG4gICAqIC0gYGRhdHVtSW5kZXhgIGlzIHRoZSBpbmRleCBvZiB0aGUgbmVhcmVzdCBkYXR1bS5cbiAgICogLSBgZXZlbnRgIGlzIHRoZSBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgY3Jvc3NoYWlyIG1vdmUgKG1vdXNlIG9yIHdoZWVsKS5cbiAgICpcbiAgICogV2hlbiB0aGUgbW91c2UgZ29lcyBvdXQgb2YgdGhlIGNvbnRhaW5lciBhbmQgb24gd2hlZWwgZXZlbnRzLCBhbGwgdGhlIGFyZ3VtZW50cyBhcmUgYHVuZGVmaW5lZGAgZXhjZXB0IGZvciBgZXZlbnRgLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbkNyb3NzaGFpck1vdmU/OiAoeD86IG51bWJlciB8IERhdGUsIGRhdHVtPzogRGF0dW0sIGRhdHVtSW5kZXg/OiBudW1iZXIsIGV2ZW50PzogTW91c2VFdmVudCB8IFdoZWVsRXZlbnQpID0+IHZvaWRcblxuICAvKiogRm9yY2UgdGhlIGNyb3NzaGFpciB0byBzaG93IGF0IGEgc3BlY2lmaWMgcG9zaXRpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGZvcmNlU2hvd0F0PzogbnVtYmVyIHwgRGF0ZVxuICBASW5wdXQoKSBkYXRhOiBEYXR1bVtdXG5cbiAgY29tcG9uZW50OiBDcm9zc2hhaXI8RGF0dW0+IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IENyb3NzaGFpcjxEYXR1bT4odGhpcy5nZXRDb25maWcoKSlcblxuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50LnNldERhdGEodGhpcy5kYXRhKVxuICAgICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMgKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kYXRhKSB7IHRoaXMuY29tcG9uZW50Py5zZXREYXRhKHRoaXMuZGF0YSkgfVxuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBDcm9zc2hhaXJDb25maWdJbnRlcmZhY2U8RGF0dW0+IHtcbiAgICBjb25zdCB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIHgsIHksIGlkLCBjb2xvciwgeFNjYWxlLCB5U2NhbGUsIGV4Y2x1ZGVGcm9tRG9tYWluQ2FsY3VsYXRpb24sIHN0cm9rZUNvbG9yLCBzdHJva2VXaWR0aCwgeVN0YWNrZWQsIGJhc2VsaW5lLCB0b29sdGlwLCB0ZW1wbGF0ZSwgaGlkZVdoZW5GYXJGcm9tUG9pbnRlciwgaGlkZVdoZW5GYXJGcm9tUG9pbnRlckRpc3RhbmNlLCBzbmFwVG9EYXRhLCBnZXRDaXJjbGVzLCBvbkNyb3NzaGFpck1vdmUsIGZvcmNlU2hvd0F0IH0gPSB0aGlzXG4gICAgY29uc3QgY29uZmlnID0geyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCB4LCB5LCBpZCwgY29sb3IsIHhTY2FsZSwgeVNjYWxlLCBleGNsdWRlRnJvbURvbWFpbkNhbGN1bGF0aW9uLCBzdHJva2VDb2xvciwgc3Ryb2tlV2lkdGgsIHlTdGFja2VkLCBiYXNlbGluZSwgdG9vbHRpcCwgdGVtcGxhdGUsIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXIsIGhpZGVXaGVuRmFyRnJvbVBvaW50ZXJEaXN0YW5jZSwgc25hcFRvRGF0YSwgZ2V0Q2lyY2xlcywgb25Dcm9zc2hhaXJNb3ZlLCBmb3JjZVNob3dBdCB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIENyb3NzaGFpckNvbmZpZ0ludGVyZmFjZTxEYXR1bT4pW11cbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsgaWYgKGNvbmZpZ1trZXldID09PSB1bmRlZmluZWQpIGRlbGV0ZSBjb25maWdba2V5XSB9KVxuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG59XG4iXX0=