@snabcentr/client-core 2.63.0 → 2.63.2
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/catalog/tokens/sc-count-first-discounted-products.mjs +5 -3
- package/esm2022/httpInterceptors/tokens/sc-guest-endpoints.mjs +5 -3
- package/esm2022/httpInterceptors/tokens/sc-guest-parameter-name.mjs +5 -3
- package/esm2022/providers/sc-id-or-slug-in-route.mjs +5 -3
- package/esm2022/providers/sc-product-pagination-options.mjs +8 -5
- package/esm2022/providers/ssr.providers.mjs +7 -4
- package/esm2022/services/sc-seo.service.mjs +28 -2
- package/esm2022/tokens/notification-options.mjs +5 -3
- package/esm2022/tokens/sc-date-format.mjs +3 -3
- package/esm2022/tokens/sc-default-page-meta.mjs +3 -3
- package/esm2022/tokens/sc-feedback-api.mjs +3 -3
- package/esm2022/tokens/sc-linear-values-token.mjs +5 -3
- package/esm2022/user/tokens/sc-user-providers.mjs +7 -6
- package/esm2022/warehouse/services/sc-warehouse.service.mjs +2 -2
- package/fesm2022/snabcentr-client-core.mjs +67 -19
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/httpInterceptors/tokens/sc-guest-endpoints.d.ts +2 -1
- package/httpInterceptors/tokens/sc-guest-parameter-name.d.ts +2 -1
- package/package.json +1 -1
- package/providers/sc-id-or-slug-in-route.d.ts +1 -1
- package/services/sc-seo.service.d.ts +14 -0
- package/tokens/notification-options.d.ts +2 -1
- package/tokens/sc-default-page-meta.d.ts +2 -1
- package/tokens/sc-linear-values-token.d.ts +2 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
2
|
/**
|
|
3
3
|
* Токен, указывающий число первых записей товаров со скидкой.
|
|
4
4
|
*/
|
|
5
|
-
export const SC_COUNT_FIRST_DISCOUNTED_PRODUCTS =
|
|
6
|
-
|
|
5
|
+
export const SC_COUNT_FIRST_DISCOUNTED_PRODUCTS = new InjectionToken('SC_COUNT_FIRST_DISCOUNTED_PRODUCTS', {
|
|
6
|
+
factory: () => 10,
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY291bnQtZmlyc3QtZGlzY291bnRlZC1wcm9kdWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy90b2tlbnMvc2MtY291bnQtZmlyc3QtZGlzY291bnRlZC1wcm9kdWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsSUFBSSxjQUFjLENBQVMsb0NBQW9DLEVBQUU7SUFDL0csT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Q0FDcEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiDQotC+0LrQtdC9LCDRg9C60LDQt9GL0LLQsNGO0YnQuNC5INGH0LjRgdC70L4g0L/QtdGA0LLRi9GFINC30LDQv9C40YHQtdC5INGC0L7QstCw0YDQvtCyINGB0L4g0YHQutC40LTQutC+0LkuXG4gKi9cbmV4cG9ydCBjb25zdCBTQ19DT1VOVF9GSVJTVF9ESVNDT1VOVEVEX1BST0RVQ1RTID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oJ1NDX0NPVU5UX0ZJUlNUX0RJU0NPVU5URURfUFJPRFVDVFMnLCB7XG4gICAgZmFjdG9yeTogKCkgPT4gMTAsXG59KTtcbiJdfQ==
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
2
|
/**
|
|
3
3
|
* Токен списка URL, которые нужно кешировать для гостя.
|
|
4
4
|
*/
|
|
5
|
-
export const SC_GUEST_ENDPOINTS_TOKEN =
|
|
6
|
-
|
|
5
|
+
export const SC_GUEST_ENDPOINTS_TOKEN = new InjectionToken('SC_GUEST_ENDPOINTS_TOKEN', {
|
|
6
|
+
factory: () => [],
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZ3Vlc3QtZW5kcG9pbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9odHRwSW50ZXJjZXB0b3JzL3Rva2Vucy9zYy1ndWVzdC1lbmRwb2ludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFXLDBCQUEwQixFQUFFO0lBQzdGLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO0NBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICog0KLQvtC60LXQvSDRgdC/0LjRgdC60LAgVVJMLCDQutC+0YLQvtGA0YvQtSDQvdGD0LbQvdC+INC60LXRiNC40YDQvtCy0LDRgtGMINC00LvRjyDQs9C+0YHRgtGPLlxuICovXG5leHBvcnQgY29uc3QgU0NfR1VFU1RfRU5EUE9JTlRTX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZ1tdPignU0NfR1VFU1RfRU5EUE9JTlRTX1RPS0VOJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IFtdLFxufSk7XG4iXX0=
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
2
|
/**
|
|
3
3
|
* Токен имени параметра, при котором кешируются запросы у гостя.
|
|
4
4
|
*/
|
|
5
|
-
export const SC_GUEST_PARAMETER_NAME_TOKEN =
|
|
6
|
-
|
|
5
|
+
export const SC_GUEST_PARAMETER_NAME_TOKEN = new InjectionToken('SC_GUEST_PARAMETER_NAME_TOKEN', {
|
|
6
|
+
factory: () => '',
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZ3Vlc3QtcGFyYW1ldGVyLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2h0dHBJbnRlcmNlcHRvcnMvdG9rZW5zL3NjLWd1ZXN0LXBhcmFtZXRlci1uYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLGNBQWMsQ0FBUywrQkFBK0IsRUFBRTtJQUNyRyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtDQUNwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqINCi0L7QutC10L0g0LjQvNC10L3QuCDQv9Cw0YDQsNC80LXRgtGA0LAsINC/0YDQuCDQutC+0YLQvtGA0L7QvCDQutC10YjQuNGA0YPRjtGC0YHRjyDQt9Cw0L/RgNC+0YHRiyDRgyDQs9C+0YHRgtGPLlxuICovXG5leHBvcnQgY29uc3QgU0NfR1VFU1RfUEFSQU1FVEVSX05BTUVfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignU0NfR1VFU1RfUEFSQU1FVEVSX05BTUVfVE9LRU4nLCB7XG4gICAgZmFjdG9yeTogKCkgPT4gJycsXG59KTtcbiJdfQ==
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
2
|
/**
|
|
3
3
|
* Токен определяющий, идентификатор или символьное обозначение (slug) используется для роутинга и маршрутизации.
|
|
4
4
|
*/
|
|
5
|
-
export const SC_ID_OR_SLUG_IN_ROUTE =
|
|
6
|
-
|
|
5
|
+
export const SC_ID_OR_SLUG_IN_ROUTE = new InjectionToken('SC_ID_OR_SLUG_IN_ROUTE', {
|
|
6
|
+
factory: () => 'id',
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaWQtb3Itc2x1Zy1pbi1yb3V0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvcHJvdmlkZXJzL3NjLWlkLW9yLXNsdWctaW4tcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUFnQix3QkFBd0IsRUFBRTtJQUM5RixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtDQUN0QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqINCi0L7QutC10L0g0L7Qv9GA0LXQtNC10LvRj9GO0YnQuNC5LCDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lgg0YHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1Zykg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDRgNC+0YPRgtC40L3Qs9CwINC4INC80LDRgNGI0YDRg9GC0LjQt9Cw0YbQuNC4LlxuICovXG5leHBvcnQgY29uc3QgU0NfSURfT1JfU0xVR19JTl9ST1VURSA9IG5ldyBJbmplY3Rpb25Ub2tlbjwnaWQnIHwgJ3NsdWcnPignU0NfSURfT1JfU0xVR19JTl9ST1VURScsIHtcbiAgICBmYWN0b3J5OiAoKSA9PiAnaWQnLFxufSk7XG4iXX0=
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { tuiCreateToken } from '@taiga-ui/cdk';
|
|
1
|
+
import { EventEmitter, InjectionToken } from '@angular/core';
|
|
3
2
|
/**
|
|
4
3
|
* Значения пагинации списка товаров категории по умолчанию.
|
|
5
4
|
*/
|
|
@@ -11,9 +10,13 @@ export const SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS = {
|
|
|
11
10
|
/**
|
|
12
11
|
* Токен значений пагинации списка товаров в каталоге по умолчанию.
|
|
13
12
|
*/
|
|
14
|
-
export const SC_PRODUCT_PAGINATION_OPTIONS =
|
|
13
|
+
export const SC_PRODUCT_PAGINATION_OPTIONS = new InjectionToken('SC_PRODUCT_PAGINATION_OPTIONS', {
|
|
14
|
+
factory: () => SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS,
|
|
15
|
+
});
|
|
15
16
|
/**
|
|
16
17
|
* Токен {@link EventEmitter} событие нажатия на кнопку "Показать следующие позиции категории".
|
|
17
18
|
*/
|
|
18
|
-
export const SC_NEXT_PAGE_PAGINATION_CLICK =
|
|
19
|
-
|
|
19
|
+
export const SC_NEXT_PAGE_PAGINATION_CLICK = new InjectionToken('SC_NEXT_PAGE_PAGINATION_CLICK', {
|
|
20
|
+
factory: () => new EventEmitter(),
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJvZHVjdC1wYWdpbmF0aW9uLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Byb3ZpZGVycy9zYy1wcm9kdWN0LXBhZ2luYXRpb24tb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk3RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUF3QjtJQUN0RSxPQUFPLEVBQUUsRUFBRTtJQUNYLFFBQVEsRUFBRSxJQUFJO0lBQ2QsSUFBSSxFQUFFLENBQUM7Q0FDVixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsK0JBQStCLEVBQUU7SUFDbEgsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLHFDQUFxQztDQUN2RCxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLElBQUksY0FBYyxDQUFxQiwrQkFBK0IsRUFBRTtJQUNqSCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxZQUFZLEVBQVE7Q0FDMUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTY0lQYWdpbmF0aW9uUGFyYW1zIH0gZnJvbSAnLi4vcGFnaW5hdGlvbi9kdG8vc2MtaS1wYWdpbmF0aW9uLXBhcmFtcyc7XG5cbi8qKlxuICog0JfQvdCw0YfQtdC90LjRjyDQv9Cw0LPQuNC90LDRhtC40Lgg0YHQv9C40YHQutCwINGC0L7QstCw0YDQvtCyINC60LDRgtC10LPQvtGA0LjQuCDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX1BST0RVQ1RfUEFHSU5BVElPTl9ERUZBVUxUX09QVElPTlM6IFNjSVBhZ2luYXRpb25QYXJhbXMgPSB7XG4gICAgcGVyUGFnZTogMjAsXG4gICAgcGFnaW5hdGU6IHRydWUsXG4gICAgcGFnZTogMCxcbn07XG5cbi8qKlxuICog0KLQvtC60LXQvSDQt9C90LDRh9C10L3QuNC5INC/0LDQs9C40L3QsNGG0LjQuCDRgdC/0LjRgdC60LAg0YLQvtCy0LDRgNC+0LIg0LIg0LrQsNGC0LDQu9C+0LPQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX1BST0RVQ1RfUEFHSU5BVElPTl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFNjSVBhZ2luYXRpb25QYXJhbXM+KCdTQ19QUk9EVUNUX1BBR0lOQVRJT05fT1BUSU9OUycsIHtcbiAgICBmYWN0b3J5OiAoKSA9PiBTQ19QUk9EVUNUX1BBR0lOQVRJT05fREVGQVVMVF9PUFRJT05TLFxufSk7XG5cbi8qKlxuICogINCi0L7QutC10L0ge0BsaW5rIEV2ZW50RW1pdHRlcn0g0YHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMgXCLQn9C+0LrQsNC30LDRgtGMINGB0LvQtdC00YPRjtGJ0LjQtSDQv9C+0LfQuNGG0LjQuCDQutCw0YLQtdCz0L7RgNC40LhcIi5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX05FWFRfUEFHRV9QQUdJTkFUSU9OX0NMSUNLID0gbmV3IEluamVjdGlvblRva2VuPEV2ZW50RW1pdHRlcjx2b2lkPj4oJ1NDX05FWFRfUEFHRV9QQUdJTkFUSU9OX0NMSUNLJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKSxcbn0pO1xuIl19
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { isPlatformBrowser, isPlatformServer } from '@angular/common';
|
|
2
2
|
import { inject, InjectionToken, PLATFORM_ID } from '@angular/core';
|
|
3
|
-
import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk';
|
|
4
3
|
/**
|
|
5
4
|
* Токен для получения признака, что скрипт выполняется в браузере.
|
|
6
5
|
*/
|
|
7
|
-
export const IS_BROWSER =
|
|
6
|
+
export const IS_BROWSER = new InjectionToken('IS_BROWSER', {
|
|
7
|
+
factory: () => isPlatformBrowser(inject(PLATFORM_ID)),
|
|
8
|
+
});
|
|
8
9
|
/**
|
|
9
10
|
* Токен для получения признака, что скрипт выполняется на сервере.
|
|
10
11
|
*/
|
|
11
|
-
export const IS_SERVER =
|
|
12
|
+
export const IS_SERVER = new InjectionToken('IS_SERVER', {
|
|
13
|
+
factory: () => isPlatformServer(inject(PLATFORM_ID)),
|
|
14
|
+
});
|
|
12
15
|
/**
|
|
13
16
|
* Токен для получения данных об ответе на запрос.
|
|
14
17
|
*/
|
|
15
18
|
export const RESPONSE = new InjectionToken('RESPONSE');
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvcHJvdmlkZXJzL3Nzci5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3BFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFVLFlBQVksRUFBRTtJQUNoRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0NBQ3hELENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUFVLFdBQVcsRUFBRTtJQUM5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0NBQ3ZELENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFXLFVBQVUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIsIGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcyc7XG5cbi8qKlxuICog0KLQvtC60LXQvSDQtNC70Y8g0L/QvtC70YPRh9C10L3QuNGPINC/0YDQuNC30L3QsNC60LAsINGH0YLQviDRgdC60YDQuNC/0YIg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDQsiDQsdGA0LDRg9C30LXRgNC1LlxuICovXG5leHBvcnQgY29uc3QgSVNfQlJPV1NFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPignSVNfQlJPV1NFUicsIHtcbiAgICBmYWN0b3J5OiAoKSA9PiBpc1BsYXRmb3JtQnJvd3NlcihpbmplY3QoUExBVEZPUk1fSUQpKSxcbn0pO1xuXG4vKipcbiAqINCi0L7QutC10L0g0LTQu9GPINC/0L7Qu9GD0YfQtdC90LjRjyDQv9GA0LjQt9C90LDQutCwLCDRh9GC0L4g0YHQutGA0LjQv9GCINCy0YvQv9C+0LvQvdGP0LXRgtGB0Y8g0L3QsCDRgdC10YDQstC10YDQtS5cbiAqL1xuZXhwb3J0IGNvbnN0IElTX1NFUlZFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPignSVNfU0VSVkVSJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IGlzUGxhdGZvcm1TZXJ2ZXIoaW5qZWN0KFBMQVRGT1JNX0lEKSksXG59KTtcblxuLyoqXG4gKiDQotC+0LrQtdC9INC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0LTQsNC90L3Ri9GFINC+0LEg0L7RgtCy0LXRgtC1INC90LAg0LfQsNC/0YDQvtGBLlxuICovXG5leHBvcnQgY29uc3QgUkVTUE9OU0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48UmVzcG9uc2U+KCdSRVNQT05TRScpO1xuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { EventEmitter, inject, Injectable } from '@angular/core';
|
|
2
|
+
import { EventEmitter, inject, Injectable, RendererFactory2 } from '@angular/core';
|
|
3
3
|
import { Meta, Title } from '@angular/platform-browser';
|
|
4
4
|
import { Router } from '@angular/router';
|
|
5
5
|
import { SC_COMPANY_NAME } from '../tokens/sc-company-name';
|
|
@@ -46,6 +46,14 @@ export class ScSeoService {
|
|
|
46
46
|
* Объект {@link Document}, предоставляющий доступ к DOM страницы.
|
|
47
47
|
*/
|
|
48
48
|
this.document = inject(DOCUMENT);
|
|
49
|
+
/**
|
|
50
|
+
* Фабрика для создания экземпляров {@link Renderer2}.
|
|
51
|
+
*/
|
|
52
|
+
this.rendererFactory = inject(RendererFactory2);
|
|
53
|
+
/**
|
|
54
|
+
* Экземпляр {@link Renderer2} для безопасной работы с DOM.
|
|
55
|
+
*/
|
|
56
|
+
this.renderer = this.rendererFactory.createRenderer(null, null);
|
|
49
57
|
/**
|
|
50
58
|
* Название компании.
|
|
51
59
|
*/
|
|
@@ -166,6 +174,24 @@ export class ScSeoService {
|
|
|
166
174
|
meta: seo?.meta,
|
|
167
175
|
};
|
|
168
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Устанавливает тег канонической страницы <link rel="canonical" href="..." />.
|
|
179
|
+
*
|
|
180
|
+
* @param url URL который необходимо использовать в качестве ссылки.
|
|
181
|
+
*/
|
|
182
|
+
setCanonicalLink(url) {
|
|
183
|
+
// Удаляем существующий link canonical.
|
|
184
|
+
const existingLink = this.document.querySelector('link[rel="canonical"]');
|
|
185
|
+
if (existingLink?.parentNode) {
|
|
186
|
+
this.renderer.removeChild(existingLink.parentNode, existingLink);
|
|
187
|
+
}
|
|
188
|
+
// Создаём и устанавливаем новый тег.
|
|
189
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
190
|
+
const link = this.renderer.createElement('link');
|
|
191
|
+
this.renderer.setAttribute(link, 'rel', 'canonical');
|
|
192
|
+
this.renderer.setAttribute(link, 'href', url);
|
|
193
|
+
this.renderer.appendChild(this.document.head, link);
|
|
194
|
+
}
|
|
169
195
|
/**
|
|
170
196
|
* Устанавливает title-заголовок страницы.
|
|
171
197
|
*
|
|
@@ -242,4 +268,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
242
268
|
providedIn: 'root',
|
|
243
269
|
}]
|
|
244
270
|
}], ctorParameters: () => [] });
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NlcnZpY2VzL3NjLXNlby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHNUM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQThDckI7O09BRUc7SUFDSDtRQWhEQTs7V0FFRztRQUNhLDhCQUF5QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXpGOztXQUVHO1FBQ2MsZUFBVSxHQUF1QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUUvRTs7V0FFRztRQUNjLFdBQU0sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDYyxTQUFJLEdBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ2MsZ0JBQVcsR0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEQ7O1dBRUc7UUFDYyxpQkFBWSxHQUFVLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyRDs7V0FFRztRQUNjLHNCQUFpQixHQUFXLFVBQVUsQ0FBQztRQUV4RDs7V0FFRztRQUNjLGFB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QU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBTY0lTZW8gfSBmcm9tICcuLi9jYXRhbG9nL2R0by9zYy1pLXNlbyc7XG5pbXBvcnQgeyBTY0lEZWZhdWx0UGFnZU1ldGEgfSBmcm9tICcuLi9jb25maWcvc2MtaS1kZWZhdWx0LXBhZ2UtbWV0YSc7XG5pbXBvcnQgeyBTY0lVcmxzIH0gZnJvbSAnLi4vY29uZmlnL3NjLWktdXJscyc7XG5pbXBvcnQgeyBTQ19DT01QQU5ZX05BTUUgfSBmcm9tICcuLi90b2tlbnMvc2MtY29tcGFueS1uYW1lJztcbmltcG9ydCB7IFNDX0RFRkFVTFRfUEFHRV9NRVRBIH0gZnJvbSAnLi4vdG9rZW5zL3NjLWRlZmF1bHQtcGFnZS1tZXRhJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBSb2JvdHNUYWdUeXBlIH0gZnJvbSAnLi90eXBlcy9yb2JvdHMtdGFnLXR5cGUnO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyBTRU8t0L/QsNGA0LDQvNC10YLRgNCw0LzQuC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NTZW9TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDRg9GB0YLQsNC90L7QstC60LggbWV0YS3RgtC10LPQvtCyINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlzU2V0TWV0YVRhZ3NFdmVudEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQviDQvNC10YLQsC3QtNCw0L3QvdGL0YUg0YHRgtGA0LDQvdC40YbRiyDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTZW86IFNjSURlZmF1bHRQYWdlTWV0YSA9IGluamVjdChTQ19ERUZBVUxUX1BBR0VfTUVUQSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LzQsNGA0YjRgNGD0YLQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0YPRgdGC0LDQvdC+0LLQutC4INC80LXRgtCw0LTQsNC90L3Ri9GFINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXRhU2VydmljZTogTWV0YSA9IGluamVjdChNZXRhKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyDQt9Cw0LPQvtC70L7QstC60L7QvCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGl0bGVTZXJ2aWNlOiBUaXRsZSA9IGluamVjdChUaXRsZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10LvQtdC60YLQvtGAINCz0YDRg9C/0L/RiyDQtNC70Y8g0YPRgdGC0LDQvdCw0LLQu9C40LLQsNC10LzRi9GFINC80LXRgtCw0YLQtdCz0L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFHcm91cFNlbGVjdG9yOiBzdHJpbmcgPSAnc2VvLXRhZ3MnO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGK0LXQutGCIHtAbGluayBEb2N1bWVudH0sINC/0YDQtdC00L7RgdGC0LDQstC70Y/RjtGJ0LjQuSDQtNC+0YHRgtGD0L8g0LogRE9NINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgLyoqXG4gICAgICog0J3QsNC30LLQsNC90LjQtSDQutC+0LzQv9Cw0L3QuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcGFueU5hbWU6IHN0cmluZyA9IGluamVjdChTQ19DT01QQU5ZX05BTUUpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1Nlb1NlcnZpY2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZXRTaGFyZVR5cGUoJ3dlYnNpdGUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdGC0LXQs9C4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDQntC/0LjRgdCw0L3QuNC1INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGtleXdvcmRzINCa0LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBlbWl0RXZlbnRBZnRlclNldCDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0L3QtdC+0LHRhdC+0LTQuNC80L4g0LvQuCDQs9C10L3QtdGA0LjRgNC+0LLQsNGC0Ywg0YHQvtCx0YvRgtC40LUsINC/0L7RgdC70LUg0YPRgdGC0LDQvdC+0LLQutC4INGC0LXQs9C+0LIuINCf0L4g0YPQvNC+0LvRh9Cw0L3QuNGOIHtAbGluayB0cnVlfS5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UGFnZU1ldGFUYWdzKFxuICAgICAgICB0aXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLFxuICAgICAgICBrZXl3b3Jkczogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmtleXdvcmRzLFxuICAgICAgICBlbWl0RXZlbnRBZnRlclNldDogYm9vbGVhbiA9IHRydWUsXG4gICAgICAgIHJvYm90czogUm9ib3RzVGFnVHlwZVtdID0gWydpbmRleCcsICdmb2xsb3cnXVxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSh0aXRsZSk7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFEZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFLZXl3b3JkcyhrZXl3b3Jkcyk7XG5cbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YVJvYm90cyhyb2JvdHMpO1xuXG4gICAgICAgIGlmIChlbWl0RXZlbnRBZnRlclNldCkge1xuICAgICAgICAgICAgdGhpcy5pc1NldE1ldGFUYWdzRXZlbnRFbWl0dGVyLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIE9wZW4gR3JhcGggbWV0YS3RgtC10LPQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvZ1RpdGxlIE9wZW4gR3JhcGgg0LfQsNCz0L7Qu9C+0LLQvtC6LlxuICAgICAqIEBwYXJhbSBvZ0Rlc2NyaXB0aW9uIE9wZW4gR3JhcGgg0L7Qv9C40YHQsNC90LjQtS5cbiAgICAgKiBAcGFyYW0gb2dJbWcgT3BlbiBHcmFwaCDQuNC30L7QsdGA0LDQttC10L3QuNC1LlxuICAgICAqIEBwYXJhbSBlbWl0RXZlbnRBZnRlclNldCDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0L3QtdC+0LHRhdC+0LTQuNC80L4g0LvQuCDQs9C10L3QtdGA0LjRgNC+0LLQsNGC0Ywg0YHQvtCx0YvRgtC40LUsINC/0L7RgdC70LUg0YPRgdGC0LDQvdC+0LLQutC4INGC0LXQs9C+0LIuINCf0L4g0YPQvNC+0LvRh9Cw0L3QuNGOIHtAbGluayB0cnVlfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UGFnZU9wZW5HcmFwaE1ldGFUYWdzKFxuICAgICAgICBvZ1RpdGxlOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8udGl0bGUsXG4gICAgICAgIG9nRGVzY3JpcHRpb246IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAgb2dJbWc6IHN0cmluZyA9IHRoaXMudXJscy5sb2dvVXJsLFxuICAgICAgICBlbWl0RXZlbnRBZnRlclNldDogYm9vbGVhbiA9IHRydWVcbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuR3JhcGhNZXRhVGFncyhvZ1RpdGxlLCBvZ0Rlc2NyaXB0aW9uLCBgJHt0aGlzLnVybHMuc2l0ZVVybH0ke3RoaXMucm91dGVyLnVybH1gLCBvZ0ltZyk7XG5cbiAgICAgICAgaWYgKGVtaXRFdmVudEFmdGVyU2V0KSB7XG4gICAgICAgICAgICB0aGlzLmlzU2V0TWV0YVRhZ3NFdmVudEVtaXR0ZXIuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLRgdC1IG1ldGEt0YLQtdCz0Lgg0LjQtyDQv9GA0LjRiNC10LTRiNC10LPQviDQuNGB0YLQvtGH0L3QuNC60LAuINCV0YHQu9C4INC60LDQutC+0LPQvi3RgtC+INGC0LXQs9CwINC90LXRgiwg0LHRg9C00LXRgiDRg9GB0YLQsNC90L7QstC70LXQvdC+INC30L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVzb3VyY2Ug0JjRgdGC0L7Rh9C90LjQuiBtZXRhIC0g0YLQtdCz0L7Qsi5cbiAgICAgKiBAcGFyYW0gaW1nINCY0LfQvtCx0YDQsNC20LXQvdC40LUuINCV0YHQu9C4INC90LUg0L/RgNC40YjQu9C+LCDRgtC+INCx0YPQtNC10YIg0YPRgdGC0LDQvdC+0LLQu9C10L3QviDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRNZXRhVGFnc0Zyb21SZXNvdXJjZShyZXNvdXJjZT86IFNjSVNlbywgaW1nOiBzdHJpbmcgPSB0aGlzLnVybHMubG9nb1VybCwgcm9ib3RzOiBSb2JvdHNUYWdUeXBlW10gPSBbJ2luZGV4JywgJ2ZvbGxvdyddKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0QWxsUGFnZU1ldGFUYWdzKHJlc291cmNlPy50aXRsZSwgcmVzb3VyY2U/LmRlc2NyaXB0aW9uLCByZXNvdXJjZT8ua2V5d29yZHMsIGltZywgcmVzb3VyY2U/Lm1ldGEsIHJvYm90cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLRgdC1IG1ldGEt0YLQtdCz0Lgg0YHRgtGA0LDQvdC40YbRiyDRgdC+INC30L3QsNGH0LXQvdC40LXQvCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiwg0LLQvdC10LTRgNGP0Y8g0YLRg9C00LAg0LfQsNCz0L7Qu9C+0LLQvtC6LCDQtdGB0LvQuCDQvtC9INC/0LXRgNC10LTQsNC9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXREZWZhdWx0QWxsUGFnZU1ldGFUYWdzKHRpdGxlOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8udGl0bGUsIHJvYm90czogUm9ib3RzVGFnVHlwZVtdID0gWydpbmRleCcsICdmb2xsb3cnXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEFsbFBhZ2VNZXRhVGFncyhgJHt0aXRsZX0gLSAke3RoaXMuY29tcGFueU5hbWV9YCwgYCR7dGl0bGV9LCAke3RoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbn1gLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgW10sIHJvYm90cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLRgdC1IG1ldGEt0YLQtdCz0Lgg0YHRgtGA0LDQvdC40YbRiyDRgdC+INC30L3QsNGH0LXQvdC40LXQvCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiwg0LLQvdC10LTRgNGP0Y8g0YLRg9C00LAg0LfQsNCz0L7Qu9C+0LLQvtC6LCDQtdGB0LvQuCDQvtC9INC/0LXRgNC10LTQsNC9LiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQt9C90LDRh9C10L3QuNC1IFwi0L3QtSDQuNC90LTQtdC60YHQuNGA0L7QstCw0YLRjFwiINC00LvRjyDQv9C+0LjRgdC60L7QstGL0YUg0YDQvtCx0L7RgtC+0LIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldE5vSW5kZXhEZWZhdWx0QWxsUGFnZU1ldGFUYWdzKHRpdGxlOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8udGl0bGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRBbGxQYWdlTWV0YVRhZ3MoYCR7dGl0bGV9IC0gJHt0aGlzLmNvbXBhbnlOYW1lfWAsIGAke3RpdGxlfSwgJHt0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb259YCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIFtdLCBbJ25vaW5kZXgnLCAnbm9mb2xsb3cnLCAnbm9hcmNoaXZlJ10pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0YHQtSBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0YsuINCV0YHQu9C4INC60LDQutC+0Lkt0LvQuNCx0L4g0LjQtyDQv9Cw0YDQsNC80LXRgtGA0L7QsiDQvdC1INGD0LrQsNC30LDQvSwg0LTQu9GPINC90LXQs9C+INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGC0YHRjyDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDQntC/0LjRgdCw0L3QuNC1INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGtleXdvcmRzINCa0LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBpbWcg0JjQt9C+0LHRgNCw0LbQtdC90LjQtS5cbiAgICAgKiBAcGFyYW0gbWV0YSDQnNCw0YHRgdC40LIg0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvRhSDQt9C90LDRh9C10L3QuNC5INC80LXRgtCw0YLQtdCz0L7Qsi5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0QWxsUGFnZU1ldGFUYWdzKFxuICAgICAgICB0aXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLFxuICAgICAgICBrZXl3b3Jkczogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmtleXdvcmRzLFxuICAgICAgICBpbWc6IHN0cmluZyA9IHRoaXMudXJscy5sb2dvVXJsLFxuICAgICAgICBtZXRhOiBTY0lTZW9bJ21ldGEnXSA9IFtdLFxuICAgICAgICByb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSA9IFsnaW5kZXgnLCAnZm9sbG93J11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVNZXRhVGFncygpO1xuICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSh0aXRsZSk7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFEZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFLZXl3b3JkcyhrZXl3b3Jkcyk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YVRhZ3ModGl0bGUsIGRlc2NyaXB0aW9uLCBgJHt0aGlzLnVybHMuc2l0ZVVybH0ke3RoaXMucm91dGVyLnVybH1gLCBpbWcpO1xuICAgICAgICBtZXRhLmZvckVhY2goKHRhZykgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdlTWV0YUJ5TmFtZSh0YWcubmFtZSwgdGFnLmNvbnRlbnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YVJvYm90cyhyb2JvdHMpO1xuXG4gICAgICAgIHRoaXMuaXNTZXRNZXRhVGFnc0V2ZW50RW1pdHRlci5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgbWV0YS3RgtC10LMgcm9ib3RzINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzINGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldFBhZ2VNZXRhUm9ib3RzKHJvYm90czogUm9ib3RzVGFnVHlwZVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFCeU5hbWUoJ3JvYm90cycsIHJvYm90cy5qb2luKCcsICcpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDQstGB0LUg0YPRgdGC0LDQvdC+0LLQu9C10L3QvdGL0LUgbWV0YS3RgtC10LPQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlTWV0YVRhZ3MoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTE1ldGFFbGVtZW50PihgbWV0YVtkYXRhLWdyb3VwPVwiJHt0aGlzLmRhdGFHcm91cFNlbGVjdG9yfVwiXWApO1xuXG4gICAgICAgIHRhZ3MuZm9yRWFjaCgodGFnKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1ldGFTZXJ2aWNlLnJlbW92ZVRhZ0VsZW1lbnQodGFnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQs9C10L3QtdGA0LjRgNC+0LLQsNC90L3Ri9C5IFNFTy1yZXNvdXJjZSDRgSDRg9C60LDQt9Cw0L3QvdGL0LzQuCDQv9Cw0YDQsNC80LXRgtGA0LDQvNC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHNlbyDQlNCw0L3QvdGL0LUgU0VPINGA0LXRgdGD0YDRgdCwLlxuICAgICAqIEBwYXJhbSBkZWZhdWx0VGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0Ysg0LjRgdC/0L7Qu9GM0LfRg9C10LzRi9C5INCyINGB0LvRg9GH0LDQtSDQvtGC0YHRg9GC0YHRgtCy0LjRjyDQt9Cw0LPQvtC70L7QstC60LAg0LIgU0VPLdGA0LXRgdGD0YDRgdC1LlxuICAgICAqIEBwYXJhbSBkZWZhdWx0RGVzY3JpcHRpb24g0J7Qv9C40YHQsNC90LjQtSDRgdGC0YDQsNC90LjRhtGLINC40YHQv9C+0LvRjNC30YPQtdC80L7QtSDQsiDRgdC70YPRh9Cw0LUg0L7RgtGB0YPRgtGB0YLQstC40Y8g0L7Qv9C40YHQsNC90LjRjyDQsiBTRU8t0YDQtdGB0YPRgNGB0LUuXG4gICAgICogQHBhcmFtIGRlZmF1bHRLZXlXb3JkcyDQmtC70Y7Rh9C10LLRi9C1INGB0LvQvtCy0LAg0YHRgtGA0LDQvdC40YbRiyDQuNGB0L/QvtC70YzQt9GD0LXQvNGL0LUg0LIg0YHQu9GD0YfQsNC1INC+0YLRgdGD0YLRgdGC0LLQuNGPINC60LvRjtGH0LXQstGL0YUg0YHQu9C+0LIg0LIgU0VPLdGA0LXRgdGD0YDRgdC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRHZW5lcmF0ZVNlb1Jlc291cmNlKFxuICAgICAgICBzZW86IFNjSVNlbyB8IHVuZGVmaW5lZCxcbiAgICAgICAgZGVmYXVsdFRpdGxlOiBzdHJpbmcsXG4gICAgICAgIGRlZmF1bHREZXNjcmlwdGlvbjogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLFxuICAgICAgICBkZWZhdWx0S2V5V29yZHM6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5rZXl3b3Jkc1xuICAgICk6IFNjSVNlbyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0aXRsZTogc2VvPy50aXRsZSA/PyBkZWZhdWx0VGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc2VvPy5kZXNjcmlwdGlvbiA/PyBkZWZhdWx0RGVzY3JpcHRpb24sXG4gICAgICAgICAgICBrZXl3b3Jkczogc2VvPy5rZXl3b3JkcyA/PyBkZWZhdWx0S2V5V29yZHMsXG4gICAgICAgICAgICBtZXRhOiBzZW8/Lm1ldGEsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgdGl0bGUt0LfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGFwcGVuZERlZmF1bHRUaXRsZSDQpNC70LDQsyDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLQuCDQtNC+0LHQsNCy0LjRgtGMINC30LDQs9C+0LvQvtCy0L7QuiDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQsiDQutC+0L3QtdGGINC30LDQs9C+0LvQvtCy0LrQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0UGFnZVRpdGxlKHRpdGxlOiBzdHJpbmcsIGFwcGVuZERlZmF1bHRUaXRsZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRpdGxlICsgKGFwcGVuZERlZmF1bHRUaXRsZSA/IGAgLSAke3RoaXMuZGVmYXVsdFNlby50aXRsZX1gIDogJycpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdC+0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBNZXRhLdC+0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFBhZ2VNZXRhRGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhQnlOYW1lKCdkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdC60LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleXdvcmRzIE1ldGEt0LrQu9GO0YfQtdCy0YvQtSDRgdC70L7QstCwINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRQYWdlTWV0YUtleXdvcmRzKGtleXdvcmRzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YUJ5TmFtZSgna2V5d29yZHMnLCBrZXl3b3Jkcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgT3BlbiBHcmFwaCBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0Ysg0LTQu9GPINGB0L7RhtC40LDQu9GM0L3Ri9GFINGB0LXRgtC10LkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGRlc2NyaXB0aW9uINCe0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gdXJsINCh0YHRi9C70LrQsCDQvdCwINGB0YLRgNCw0L3QuNGG0YMuXG4gICAgICogQHBhcmFtIGltZyDQmNC30L7QsdGA0LDQttC10L3QuNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0T3BlbkdyYXBoTWV0YVRhZ3ModGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdXJsOiBzdHJpbmcsIGltZzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOnRpdGxlJywgdGl0bGUpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzp1cmwnLCB1cmwpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzppbWFnZScsIGltZyk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOmRlc2NyaXB0aW9uJywgZGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzp0eXBlJywgJ3dlYnNpdGUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdGC0LXQsyDRgdGC0YDQsNC90LjRhtGLINGBINGD0LrQsNC30LDQvdC90YvQvCDQuNC80LXQvdC10LwuXG4gICAgICog0JHRg9C00LXRgiDRgdC+0LfQtNCw0L0g0LjQu9C4INC+0LHQvdC+0LLQu9GR0L0g0LfQsNCz0L7Qu9C+0LLQvtC6INCy0LjQtNCwIGA8bWV0YSBuYW1lPVwie25hbWV9XCIgY29udGVudD1cIntjb250ZW50fVwiIC8+YFxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUg0J3QsNC30LLQsNC90LjQtSDQt9Cw0LPQvtC70L7QstC60LAuXG4gICAgICogQHBhcmFtIGNvbnRlbnQg0KHQvtC00LXRgNC20LjQvNC+0LUg0LfQsNCz0L7Qu9C+0LLQutCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0UGFnZU1ldGFCeU5hbWUobmFtZTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiBuYW1lLCBjb250ZW50OiBjb250ZW50LCAnZGF0YS1ncm91cCc6IHRoaXMuZGF0YUdyb3VwU2VsZWN0b3IgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgT3BlbiBHcmFwaCBtZXRhLdGC0LXQsyDQv9C+INGB0LLQvtC50YHRgtCy0YMg0LDRgtGA0LjQsdGD0YLQsCBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eSDQodCy0L7QudGB0YLQstC+INCw0YLRgNC40LHRg9GC0LAuXG4gICAgICogQHBhcmFtIGNvbnRlbnQg0KHQvtC00LXRgNC20LjQvNC+0LUg0YLQtdCz0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRPcGVuR3JhcGhNZXRhQnlQcm9wZXJ0eShwcm9wZXJ0eTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogcHJvcGVydHksIGNvbnRlbnQ6IGNvbnRlbnQsICdkYXRhLWdyb3VwJzogdGhpcy5kYXRhR3JvdXBTZWxlY3RvciB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBPcGVuIEdyYXBoINC80LXRgtCwLdGC0LXQsyDRgtC40L/QsCDQvtCx0YrQtdC60YLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlINCi0LjQvyDQvtCx0YrQtdC60YLQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFNoYXJlVHlwZSh0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuR3JhcGhNZXRhQnlQcm9wZXJ0eSgnb2c6dHlwZScsIHR5cGUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NlcnZpY2VzL3NjLXNlby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHNUM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQXdEckI7O09BRUc7SUFDSDtRQTFEQTs7V0FFRztRQUNhLDhCQUF5QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXpGOztXQUVHO1FBQ2MsZUFBVSxHQUF1QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUUvRTs7V0FFRztRQUNjLFdBQU0sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDYyxTQUFJLEdBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ2MsZ0JBQVcsR0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEQ7O1dBRUc7UUFDYyxpQkFBWSxHQUFVLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyRDs7V0FFRztRQUNjLHNCQUFpQixHQUFXLFVBQVUsQ0FBQztRQUV4RDs7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L0MsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBQUMsSUFBWSxFQUFFLE9BQWU7UUFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssMEJBQTBCLENBQUMsUUFBZ0IsRUFBRSxPQUFlO1FBQ2hFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssWUFBWSxDQUFDLElBQVk7UUFDN0IsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDOytHQW5UUSxZQUFZO21IQUFaLFlBQVksY0FGVCxNQUFNOzs0RkFFVCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBTY0lTZW8gfSBmcm9tICcuLi9jYXRhbG9nL2R0by9zYy1pLXNlbyc7XG5pbXBvcnQgeyBTY0lEZWZhdWx0UGFnZU1ldGEgfSBmcm9tICcuLi9jb25maWcvc2MtaS1kZWZhdWx0LXBhZ2UtbWV0YSc7XG5pbXBvcnQgeyBTY0lVcmxzIH0gZnJvbSAnLi4vY29uZmlnL3NjLWktdXJscyc7XG5pbXBvcnQgeyBTQ19DT01QQU5ZX05BTUUgfSBmcm9tICcuLi90b2tlbnMvc2MtY29tcGFueS1uYW1lJztcbmltcG9ydCB7IFNDX0RFRkFVTFRfUEFHRV9NRVRBIH0gZnJvbSAnLi4vdG9rZW5zL3NjLWRlZmF1bHQtcGFnZS1tZXRhJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBSb2JvdHNUYWdUeXBlIH0gZnJvbSAnLi90eXBlcy9yb2JvdHMtdGFnLXR5cGUnO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyBTRU8t0L/QsNGA0LDQvNC10YLRgNCw0LzQuC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NTZW9TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDRg9GB0YLQsNC90L7QstC60LggbWV0YS3RgtC10LPQvtCyINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlzU2V0TWV0YVRhZ3NFdmVudEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQviDQvNC10YLQsC3QtNCw0L3QvdGL0YUg0YHRgtGA0LDQvdC40YbRiyDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTZW86IFNjSURlZmF1bHRQYWdlTWV0YSA9IGluamVjdChTQ19ERUZBVUxUX1BBR0VfTUVUQSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LzQsNGA0YjRgNGD0YLQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0YPRgdGC0LDQvdC+0LLQutC4INC80LXRgtCw0LTQsNC90L3Ri9GFINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXRhU2VydmljZTogTWV0YSA9IGluamVjdChNZXRhKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyDQt9Cw0LPQvtC70L7QstC60L7QvCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGl0bGVTZXJ2aWNlOiBUaXRsZSA9IGluamVjdChUaXRsZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10LvQtdC60YLQvtGAINCz0YDRg9C/0L/RiyDQtNC70Y8g0YPRgdGC0LDQvdCw0LLQu9C40LLQsNC10LzRi9GFINC80LXRgtCw0YLQtdCz0L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFHcm91cFNlbGVjdG9yOiBzdHJpbmcgPSAnc2VvLXRhZ3MnO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGK0LXQutGCIHtAbGluayBEb2N1bWVudH0sINC/0YDQtdC00L7RgdGC0LDQstC70Y/RjtGJ0LjQuSDQtNC+0YHRgtGD0L8g0LogRE9NINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgLyoqXG4gICAgICog0KTQsNCx0YDQuNC60LAg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0Y3QutC30LXQvNC/0LvRj9GA0L7QsiB7QGxpbmsgUmVuZGVyZXIyfS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MiA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKTtcblxuICAgIC8qKlxuICAgICAqINCt0LrQt9C10LzQv9C70Y/RgCB7QGxpbmsgUmVuZGVyZXIyfSDQtNC70Y8g0LHQtdC30L7Qv9Cw0YHQvdC+0Lkg0YDQsNCx0L7RgtGLINGBIERPTS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcblxuICAgIC8qKlxuICAgICAqINCd0LDQt9Cy0LDQvdC40LUg0LrQvtC80L/QsNC90LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBhbnlOYW1lOiBzdHJpbmcgPSBpbmplY3QoU0NfQ09NUEFOWV9OQU1FKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NTZW9TZXJ2aWNlfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc2V0U2hhcmVUeXBlKCd3ZWJzaXRlJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgbWV0YS3RgtC10LPQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSDQl9Cw0LPQvtC70L7QstC+0Log0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24g0J7Qv9C40YHQsNC90LjQtSDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBrZXl3b3JkcyDQmtC70Y7Rh9C10LLRi9C1INGB0LvQvtCy0LAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gZW1pdEV2ZW50QWZ0ZXJTZXQg0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINC90LXQvtCx0YXQvtC00LjQvNC+INC70Lgg0LPQtdC90LXRgNC40YDQvtCy0LDRgtGMINGB0L7QsdGL0YLQuNC1LCDQv9C+0YHQu9C1INGD0YHRgtCw0L3QvtCy0LrQuCDRgtC10LPQvtCyLiDQn9C+INGD0LzQvtC70YfQsNC90LjRjiB7QGxpbmsgdHJ1ZX0uXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzINGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldFBhZ2VNZXRhVGFncyhcbiAgICAgICAgdGl0bGU6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby50aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAga2V5d29yZHM6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5rZXl3b3JkcyxcbiAgICAgICAgZW1pdEV2ZW50QWZ0ZXJTZXQ6IGJvb2xlYW4gPSB0cnVlLFxuICAgICAgICByb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSA9IFsnaW5kZXgnLCAnZm9sbG93J11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQYWdlVGl0bGUodGl0bGUpO1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhS2V5d29yZHMoa2V5d29yZHMpO1xuXG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFSb2JvdHMocm9ib3RzKTtcblxuICAgICAgICBpZiAoZW1pdEV2ZW50QWZ0ZXJTZXQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZXRNZXRhVGFnc0V2ZW50RW1pdHRlci5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBPcGVuIEdyYXBoIG1ldGEt0YLQtdCz0LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2dUaXRsZSBPcGVuIEdyYXBoINC30LDQs9C+0LvQvtCy0L7Qui5cbiAgICAgKiBAcGFyYW0gb2dEZXNjcmlwdGlvbiBPcGVuIEdyYXBoINC+0L/QuNGB0LDQvdC40LUuXG4gICAgICogQHBhcmFtIG9nSW1nIE9wZW4gR3JhcGgg0LjQt9C+0LHRgNCw0LbQtdC90LjQtS5cbiAgICAgKiBAcGFyYW0gZW1pdEV2ZW50QWZ0ZXJTZXQg0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINC90LXQvtCx0YXQvtC00LjQvNC+INC70Lgg0LPQtdC90LXRgNC40YDQvtCy0LDRgtGMINGB0L7QsdGL0YLQuNC1LCDQv9C+0YHQu9C1INGD0YHRgtCw0L3QvtCy0LrQuCDRgtC10LPQvtCyLiDQn9C+INGD0LzQvtC70YfQsNC90LjRjiB7QGxpbmsgdHJ1ZX0uXG4gICAgICovXG4gICAgcHVibGljIHNldFBhZ2VPcGVuR3JhcGhNZXRhVGFncyhcbiAgICAgICAgb2dUaXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLFxuICAgICAgICBvZ0Rlc2NyaXB0aW9uOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb24sXG4gICAgICAgIG9nSW1nOiBzdHJpbmcgPSB0aGlzLnVybHMubG9nb1VybCxcbiAgICAgICAgZW1pdEV2ZW50QWZ0ZXJTZXQ6IGJvb2xlYW4gPSB0cnVlXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YVRhZ3Mob2dUaXRsZSwgb2dEZXNjcmlwdGlvbiwgYCR7dGhpcy51cmxzLnNpdGVVcmx9JHt0aGlzLnJvdXRlci51cmx9YCwgb2dJbWcpO1xuXG4gICAgICAgIGlmIChlbWl0RXZlbnRBZnRlclNldCkge1xuICAgICAgICAgICAgdGhpcy5pc1NldE1ldGFUYWdzRXZlbnRFbWl0dGVyLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0YHQtSBtZXRhLdGC0LXQs9C4INC40Lcg0L/RgNC40YjQtdC00YjQtdCz0L4g0LjRgdGC0L7Rh9C90LjQutCwLiDQldGB0LvQuCDQutCw0LrQvtCz0L4t0YLQviDRgtC10LPQsCDQvdC10YIsINCx0YPQtNC10YIg0YPRgdGC0LDQvdC+0LLQu9C10L3QviDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlc291cmNlINCY0YHRgtC+0YfQvdC40LogbWV0YSAtINGC0LXQs9C+0LIuXG4gICAgICogQHBhcmFtIGltZyDQmNC30L7QsdGA0LDQttC10L3QuNC1LiDQldGB0LvQuCDQvdC1INC/0YDQuNGI0LvQviwg0YLQviDQsdGD0LTQtdGCINGD0YHRgtCw0L3QvtCy0LvQtdC90L4g0LfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0TWV0YVRhZ3NGcm9tUmVzb3VyY2UocmVzb3VyY2U/OiBTY0lTZW8sIGltZzogc3RyaW5nID0gdGhpcy51cmxzLmxvZ29VcmwsIHJvYm90czogUm9ib3RzVGFnVHlwZVtdID0gWydpbmRleCcsICdmb2xsb3cnXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEFsbFBhZ2VNZXRhVGFncyhyZXNvdXJjZT8udGl0bGUsIHJlc291cmNlPy5kZXNjcmlwdGlvbiwgcmVzb3VyY2U/LmtleXdvcmRzLCBpbWcsIHJlc291cmNlPy5tZXRhLCByb2JvdHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0YHQtSBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0Ysg0YHQviDQt9C90LDRh9C10L3QuNC10Lwg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINCy0L3QtdC00YDRj9GPINGC0YPQtNCwINC30LDQs9C+0LvQvtCy0L7Quiwg0LXRgdC70Lgg0L7QvSDQv9C10YDQtdC00LDQvS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSDQl9Cw0LPQvtC70L7QstC+0Log0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RGVmYXVsdEFsbFBhZ2VNZXRhVGFncyh0aXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLCByb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSA9IFsnaW5kZXgnLCAnZm9sbG93J10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRBbGxQYWdlTWV0YVRhZ3MoYCR7dGl0bGV9IC0gJHt0aGlzLmNvbXBhbnlOYW1lfWAsIGAke3RpdGxlfSwgJHt0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb259YCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIFtdLCByb2JvdHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0YHQtSBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0Ysg0YHQviDQt9C90LDRh9C10L3QuNC10Lwg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINCy0L3QtdC00YDRj9GPINGC0YPQtNCwINC30LDQs9C+0LvQvtCy0L7Quiwg0LXRgdC70Lgg0L7QvSDQv9C10YDQtdC00LDQvS4g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LfQvdCw0YfQtdC90LjQtSBcItC90LUg0LjQvdC00LXQutGB0LjRgNC+0LLQsNGC0YxcIiDQtNC70Y8g0L/QvtC40YHQutC+0LLRi9GFINGA0L7QsdC+0YLQvtCyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXROb0luZGV4RGVmYXVsdEFsbFBhZ2VNZXRhVGFncyh0aXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0QWxsUGFnZU1ldGFUYWdzKGAke3RpdGxlfSAtICR7dGhpcy5jb21wYW55TmFtZX1gLCBgJHt0aXRsZX0sICR7dGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9ufWAsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBbXSwgWydub2luZGV4JywgJ25vZm9sbG93JywgJ25vYXJjaGl2ZSddKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQstGB0LUgbWV0YS3RgtC10LPQuCDRgdGC0YDQsNC90LjRhtGLLiDQldGB0LvQuCDQutCw0LrQvtC5LdC70LjQsdC+INC40Lcg0L/QsNGA0LDQvNC10YLRgNC+0LIg0L3QtSDRg9C60LDQt9Cw0L0sINC00LvRjyDQvdC10LPQviDRg9GB0YLQsNC90LDQstC70LjQstCw0LXRgtGB0Y8g0LfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSDQl9Cw0LPQvtC70L7QstC+0Log0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24g0J7Qv9C40YHQsNC90LjQtSDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBrZXl3b3JkcyDQmtC70Y7Rh9C10LLRi9C1INGB0LvQvtCy0LAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gaW1nINCY0LfQvtCx0YDQsNC20LXQvdC40LUuXG4gICAgICogQHBhcmFtIG1ldGEg0JzQsNGB0YHQuNCyINC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0YUg0LfQvdCw0YfQtdC90LjQuSDQvNC10YLQsNGC0LXQs9C+0LIuXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzINGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldEFsbFBhZ2VNZXRhVGFncyhcbiAgICAgICAgdGl0bGU6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby50aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAga2V5d29yZHM6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5rZXl3b3JkcyxcbiAgICAgICAgaW1nOiBzdHJpbmcgPSB0aGlzLnVybHMubG9nb1VybCxcbiAgICAgICAgbWV0YTogU2NJU2VvWydtZXRhJ10gPSBbXSxcbiAgICAgICAgcm9ib3RzOiBSb2JvdHNUYWdUeXBlW10gPSBbJ2luZGV4JywgJ2ZvbGxvdyddXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlTWV0YVRhZ3MoKTtcbiAgICAgICAgdGhpcy5zZXRQYWdlVGl0bGUodGl0bGUpO1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhS2V5d29yZHMoa2V5d29yZHMpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFUYWdzKHRpdGxlLCBkZXNjcmlwdGlvbiwgYCR7dGhpcy51cmxzLnNpdGVVcmx9JHt0aGlzLnJvdXRlci51cmx9YCwgaW1nKTtcbiAgICAgICAgbWV0YS5mb3JFYWNoKCh0YWcpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnZU1ldGFCeU5hbWUodGFnLm5hbWUsIHRhZy5jb250ZW50KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFSb2JvdHMocm9ib3RzKTtcblxuICAgICAgICB0aGlzLmlzU2V0TWV0YVRhZ3NFdmVudEVtaXR0ZXIuZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIG1ldGEt0YLQtdCzIHJvYm90cyDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQYWdlTWV0YVJvYm90cyhyb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhQnlOYW1lKCdyb2JvdHMnLCByb2JvdHMuam9pbignLCAnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LLRgdC1INGD0YHRgtCw0L3QvtCy0LvQtdC90L3Ri9C1IG1ldGEt0YLQtdCz0LguXG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZU1ldGFUYWdzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWdzID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxNZXRhRWxlbWVudD4oYG1ldGFbZGF0YS1ncm91cD1cIiR7dGhpcy5kYXRhR3JvdXBTZWxlY3Rvcn1cIl1gKTtcblxuICAgICAgICB0YWdzLmZvckVhY2goKHRhZykgPT4ge1xuICAgICAgICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWdFbGVtZW50KHRhZyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0LPQtdC90LXRgNC40YDQvtCy0LDQvdC90YvQuSBTRU8tcmVzb3VyY2Ug0YEg0YPQutCw0LfQsNC90L3Ri9C80Lgg0L/QsNGA0LDQvNC10YLRgNCw0LzQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzZW8g0JTQsNC90L3Ri9C1IFNFTyDRgNC10YHRg9GA0YHQsC5cbiAgICAgKiBAcGFyYW0gZGVmYXVsdFRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLINC40YHQv9C+0LvRjNC30YPQtdC80YvQuSDQsiDRgdC70YPRh9Cw0LUg0L7RgtGB0YPRgtGB0YLQstC40Y8g0LfQsNCz0L7Qu9C+0LLQutCwINCyIFNFTy3RgNC10YHRg9GA0YHQtS5cbiAgICAgKiBAcGFyYW0gZGVmYXVsdERlc2NyaXB0aW9uINCe0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiyDQuNGB0L/QvtC70YzQt9GD0LXQvNC+0LUg0LIg0YHQu9GD0YfQsNC1INC+0YLRgdGD0YLRgdGC0LLQuNGPINC+0L/QuNGB0LDQvdC40Y8g0LIgU0VPLdGA0LXRgdGD0YDRgdC1LlxuICAgICAqIEBwYXJhbSBkZWZhdWx0S2V5V29yZHMg0JrQu9GO0YfQtdCy0YvQtSDRgdC70L7QstCwINGB0YLRgNCw0L3QuNGG0Ysg0LjRgdC/0L7Qu9GM0LfRg9C10LzRi9C1INCyINGB0LvRg9GH0LDQtSDQvtGC0YHRg9GC0YHRgtCy0LjRjyDQutC70Y7Rh9C10LLRi9GFINGB0LvQvtCyINCyIFNFTy3RgNC10YHRg9GA0YHQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0R2VuZXJhdGVTZW9SZXNvdXJjZShcbiAgICAgICAgc2VvOiBTY0lTZW8gfCB1bmRlZmluZWQsXG4gICAgICAgIGRlZmF1bHRUaXRsZTogc3RyaW5nLFxuICAgICAgICBkZWZhdWx0RGVzY3JpcHRpb246IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAgZGVmYXVsdEtleVdvcmRzOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8ua2V5d29yZHNcbiAgICApOiBTY0lTZW8ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGl0bGU6IHNlbz8udGl0bGUgPz8gZGVmYXVsdFRpdGxlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHNlbz8uZGVzY3JpcHRpb24gPz8gZGVmYXVsdERlc2NyaXB0aW9uLFxuICAgICAgICAgICAga2V5d29yZHM6IHNlbz8ua2V5d29yZHMgPz8gZGVmYXVsdEtleVdvcmRzLFxuICAgICAgICAgICAgbWV0YTogc2VvPy5tZXRhLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGC0LXQsyDQutCw0L3QvtC90LjRh9C10YHQutC+0Lkg0YHRgtGA0LDQvdC40YbRiyA8bGluayByZWw9XCJjYW5vbmljYWxcIiBocmVmPVwiLi4uXCIgLz4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsIFVSTCDQutC+0YLQvtGA0YvQuSDQvdC10L7QsdGF0L7QtNC40LzQviDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LIg0LrQsNGH0LXRgdGC0LLQtSDRgdGB0YvQu9C60LguXG4gICAgICovXG4gICAgcHVibGljIHNldENhbm9uaWNhbExpbmsodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8g0KPQtNCw0LvRj9C10Lwg0YHRg9GJ0LXRgdGC0LLRg9GO0YnQuNC5IGxpbmsgY2Fub25pY2FsLlxuICAgICAgICBjb25zdCBleGlzdGluZ0xpbmsgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2xpbmtbcmVsPVwiY2Fub25pY2FsXCJdJyk7XG5cbiAgICAgICAgaWYgKGV4aXN0aW5nTGluaz8ucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChleGlzdGluZ0xpbmsucGFyZW50Tm9kZSwgZXhpc3RpbmdMaW5rKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vINCh0L7Qt9C00LDRkdC8INC4INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdC8INC90L7QstGL0Lkg0YLQtdCzLlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgIGNvbnN0IGxpbmsgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUobGluaywgJ3JlbCcsICdjYW5vbmljYWwnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUobGluaywgJ2hyZWYnLCB1cmwpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuaGVhZCwgbGluayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgdGl0bGUt0LfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGFwcGVuZERlZmF1bHRUaXRsZSDQpNC70LDQsyDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLQuCDQtNC+0LHQsNCy0LjRgtGMINC30LDQs9C+0LvQvtCy0L7QuiDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQsiDQutC+0L3QtdGGINC30LDQs9C+0LvQvtCy0LrQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0UGFnZVRpdGxlKHRpdGxlOiBzdHJpbmcsIGFwcGVuZERlZmF1bHRUaXRsZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRpdGxlICsgKGFwcGVuZERlZmF1bHRUaXRsZSA/IGAgLSAke3RoaXMuZGVmYXVsdFNlby50aXRsZX1gIDogJycpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdC+0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBNZXRhLdC+0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFBhZ2VNZXRhRGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhQnlOYW1lKCdkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdC60LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleXdvcmRzIE1ldGEt0LrQu9GO0YfQtdCy0YvQtSDRgdC70L7QstCwINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRQYWdlTWV0YUtleXdvcmRzKGtleXdvcmRzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YUJ5TmFtZSgna2V5d29yZHMnLCBrZXl3b3Jkcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgT3BlbiBHcmFwaCBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0Ysg0LTQu9GPINGB0L7RhtC40LDQu9GM0L3Ri9GFINGB0LXRgtC10LkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGRlc2NyaXB0aW9uINCe0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gdXJsINCh0YHRi9C70LrQsCDQvdCwINGB0YLRgNCw0L3QuNGG0YMuXG4gICAgICogQHBhcmFtIGltZyDQmNC30L7QsdGA0LDQttC10L3QuNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0T3BlbkdyYXBoTWV0YVRhZ3ModGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdXJsOiBzdHJpbmcsIGltZzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOnRpdGxlJywgdGl0bGUpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzp1cmwnLCB1cmwpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzppbWFnZScsIGltZyk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOmRlc2NyaXB0aW9uJywgZGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzp0eXBlJywgJ3dlYnNpdGUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdGC0LXQsyDRgdGC0YDQsNC90LjRhtGLINGBINGD0LrQsNC30LDQvdC90YvQvCDQuNC80LXQvdC10LwuXG4gICAgICog0JHRg9C00LXRgiDRgdC+0LfQtNCw0L0g0LjQu9C4INC+0LHQvdC+0LLQu9GR0L0g0LfQsNCz0L7Qu9C+0LLQvtC6INCy0LjQtNCwIGA8bWV0YSBuYW1lPVwie25hbWV9XCIgY29udGVudD1cIntjb250ZW50fVwiIC8+YFxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUg0J3QsNC30LLQsNC90LjQtSDQt9Cw0LPQvtC70L7QstC60LAuXG4gICAgICogQHBhcmFtIGNvbnRlbnQg0KHQvtC00LXRgNC20LjQvNC+0LUg0LfQsNCz0L7Qu9C+0LLQutCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0UGFnZU1ldGFCeU5hbWUobmFtZTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiBuYW1lLCBjb250ZW50OiBjb250ZW50LCAnZGF0YS1ncm91cCc6IHRoaXMuZGF0YUdyb3VwU2VsZWN0b3IgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgT3BlbiBHcmFwaCBtZXRhLdGC0LXQsyDQv9C+INGB0LLQvtC50YHRgtCy0YMg0LDRgtGA0LjQsdGD0YLQsCBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eSDQodCy0L7QudGB0YLQstC+INCw0YLRgNC40LHRg9GC0LAuXG4gICAgICogQHBhcmFtIGNvbnRlbnQg0KHQvtC00LXRgNC20LjQvNC+0LUg0YLQtdCz0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRPcGVuR3JhcGhNZXRhQnlQcm9wZXJ0eShwcm9wZXJ0eTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogcHJvcGVydHksIGNvbnRlbnQ6IGNvbnRlbnQsICdkYXRhLWdyb3VwJzogdGhpcy5kYXRhR3JvdXBTZWxlY3RvciB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBPcGVuIEdyYXBoINC80LXRgtCwLdGC0LXQsyDRgtC40L/QsCDQvtCx0YrQtdC60YLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlINCi0LjQvyDQvtCx0YrQtdC60YLQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFNoYXJlVHlwZSh0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuR3JhcGhNZXRhQnlQcm9wZXJ0eSgnb2c6dHlwZScsIHR5cGUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
2
|
/**
|
|
3
3
|
* Параметры по-умолчанию авторизации под клиентом.
|
|
4
4
|
*/
|
|
@@ -9,5 +9,7 @@ export const SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS = {
|
|
|
9
9
|
/**
|
|
10
10
|
* Параметры авторизации под клиентом.
|
|
11
11
|
*/
|
|
12
|
-
export const SC_AUTH_AS_CLIENT_OPTIONS =
|
|
13
|
-
|
|
12
|
+
export const SC_AUTH_AS_CLIENT_OPTIONS = new InjectionToken('SC_AUTH_AS_CLIENT_OPTIONS', {
|
|
13
|
+
factory: () => SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS,
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Rva2Vucy9ub3RpZmljYXRpb24tb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBa0IvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUEwQjtJQUNwRSxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUM7SUFDckIsZUFBZSxFQUFFLENBQUM7Q0FDckIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQXdCLDJCQUEyQixFQUFFO0lBQzVHLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxpQ0FBaUM7Q0FDbkQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiDQn9Cw0YDQsNC80LXRgtGA0Ysg0LDQstGC0L7RgNC40LfQsNGG0LjQuCDQv9C+0LQg0LrQu9C40LXQvdGC0L7QvC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY0F1dGhBc0NsaWVudE9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqINCh0LXQs9C80LXQvdGC0YsgVVJMLdCw0LTRgNC10YHQvtCyINC00LvRjyDQv9C+0YHRgtGA0L7QtdC90LjRjyDQv9GD0YLQuCDRgNC10LTQuNGA0LXQutGC0LAuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB1cmxUcmVlOiBhbnlbXTtcblxuICAgIC8qKlxuICAgICAqINCa0L7Qu9C40YfQtdGB0YLQstC+INC80LjQvdGD0YIg0LbQuNC30L3QuCDRgtC+0LrQtdC90LAsINC00L4g0LXQs9C+INC+0LHQvdC+0LLQu9C10L3QuNGPLlxuICAgICAqL1xuICAgIGV4cGlyZWRBdE1pbnV0ZTogbnVtYmVyO1xufVxuXG4vKipcbiAqINCf0LDRgNCw0LzQtdGC0YDRiyDQv9C+LdGD0LzQvtC70YfQsNC90LjRjiDQsNCy0YLQvtGA0LjQt9Cw0YbQuNC4INC/0L7QtCDQutC70LjQtdC90YLQvtC8LlxuICovXG5leHBvcnQgY29uc3QgU0NfQVVUSF9BU19DTElFTlRfREVGQVVMVF9PUFRJT05TOiBTY0F1dGhBc0NsaWVudE9wdGlvbnMgPSB7XG4gICAgdXJsVHJlZTogWycvY2F0YWxvZyddLFxuICAgIGV4cGlyZWRBdE1pbnV0ZTogMixcbn07XG5cbi8qKlxuICog0J/QsNGA0LDQvNC10YLRgNGLINCw0LLRgtC+0YDQuNC30LDRhtC40Lgg0L/QvtC0INC60LvQuNC10L3RgtC+0LwuXG4gKi9cbmV4cG9ydCBjb25zdCBTQ19BVVRIX0FTX0NMSUVOVF9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFNjQXV0aEFzQ2xpZW50T3B0aW9ucz4oJ1NDX0FVVEhfQVNfQ0xJRU5UX09QVElPTlMnLCB7XG4gICAgZmFjdG9yeTogKCkgPT4gU0NfQVVUSF9BU19DTElFTlRfREVGQVVMVF9PUFRJT05TLFxufSk7XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
2
|
/**
|
|
3
3
|
* Токен внедрения формата дат.
|
|
4
4
|
*/
|
|
5
|
-
export const SC_DATE_FORMAT =
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const SC_DATE_FORMAT = new InjectionToken('SC_DATE_FORMAT');
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZGF0ZS1mb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Rva2Vucy9zYy1kYXRlLWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFnQixnQkFBZ0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2NJRGF0ZUZvcm1hdCB9IGZyb20gJy4uL2NvbmZpZy9zYy1pLWRhdGUtZm9ybWF0JztcblxuLyoqXG4gKiDQotC+0LrQtdC9INCy0L3QtdC00YDQtdC90LjRjyDRhNC+0YDQvNCw0YLQsCDQtNCw0YIuXG4gKi9cbmV4cG9ydCBjb25zdCBTQ19EQVRFX0ZPUk1BVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTY0lEYXRlRm9ybWF0PignU0NfREFURV9GT1JNQVQnKTtcbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
2
|
/**
|
|
3
3
|
* Токен внедрения мета-данных страницы по умолчанию.
|
|
4
4
|
*/
|
|
5
|
-
export const SC_DEFAULT_PAGE_META =
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const SC_DEFAULT_PAGE_META = new InjectionToken('SC_DEFAULT_PAGE_META');
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZGVmYXVsdC1wYWdlLW1ldGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Rva2Vucy9zYy1kZWZhdWx0LXBhZ2UtbWV0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQXFCLHNCQUFzQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTY0lEZWZhdWx0UGFnZU1ldGEgfSBmcm9tICcuLi9jb25maWcnO1xuXG4vKipcbiAqINCi0L7QutC10L0g0LLQvdC10LTRgNC10L3QuNGPINC80LXRgtCwLdC00LDQvdC90YvRhSDRgdGC0YDQsNC90LjRhtGLINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICovXG5leHBvcnQgY29uc3QgU0NfREVGQVVMVF9QQUdFX01FVEEgPSBuZXcgSW5qZWN0aW9uVG9rZW48U2NJRGVmYXVsdFBhZ2VNZXRhPignU0NfREVGQVVMVF9QQUdFX01FVEEnKTtcbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
2
|
/**
|
|
3
3
|
* Токен внедрения данных API обратной связи.
|
|
4
4
|
*/
|
|
5
|
-
export const SC_FEEDBACK_API =
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const SC_FEEDBACK_API = new InjectionToken('SC_FEEDBACK_API');
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZmVlZGJhY2stYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS90b2tlbnMvc2MtZmVlZGJhY2stYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQWlCLGlCQUFpQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTY0lGZWVkYmFja0FQSSB9IGZyb20gJy4uL2NvbmZpZy9zYy1pLWZlZWRiYWNrLWFwaSc7XG5cbi8qKlxuICog0KLQvtC60LXQvSDQstC90LXQtNGA0LXQvdC40Y8g0LTQsNC90L3Ri9GFIEFQSSDQvtCx0YDQsNGC0L3QvtC5INGB0LLRj9C30LguXG4gKi9cbmV4cG9ydCBjb25zdCBTQ19GRUVEQkFDS19BUEkgPSBuZXcgSW5qZWN0aW9uVG9rZW48U2NJRmVlZGJhY2tBUEk+KCdTQ19GRUVEQkFDS19BUEknKTtcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
2
|
/**
|
|
3
3
|
* Единицы измерения линейной величины по умолчанию.
|
|
4
4
|
*/
|
|
@@ -6,5 +6,7 @@ export const SC_LINEAR_VALUES = ['пог.м.', 'м.', 'м2'];
|
|
|
6
6
|
/**
|
|
7
7
|
* Токен единиц измерения линейной величины по умолчанию.
|
|
8
8
|
*/
|
|
9
|
-
export const SC_LINEAR_VALUES_TOKEN =
|
|
10
|
-
|
|
9
|
+
export const SC_LINEAR_VALUES_TOKEN = new InjectionToken('SC_LINEAR_VALUES_TOKEN', {
|
|
10
|
+
factory: () => SC_LINEAR_VALUES,
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbGluZWFyLXZhbHVlcy10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvdG9rZW5zL3NjLWxpbmVhci12YWx1ZXMtdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFhLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVqRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUFXLHdCQUF3QixFQUFFO0lBQ3pGLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0I7Q0FDbEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiDQldC00LjQvdC40YbRiyDQuNC30LzQtdGA0LXQvdC40Y8g0LvQuNC90LXQudC90L7QuSDQstC10LvQuNGH0LjQvdGLINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICovXG5leHBvcnQgY29uc3QgU0NfTElORUFSX1ZBTFVFUzogc3RyaW5nW10gPSBbJ9C/0L7Qsy7QvC4nLCAn0LwuJywgJ9C8MiddO1xuXG4vKipcbiAqINCi0L7QutC10L0g0LXQtNC40L3QuNGGINC40LfQvNC10YDQtdC90LjRjyDQu9C40L3QtdC50L3QvtC5INCy0LXQu9C40YfQuNC90Ysg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gKi9cbmV4cG9ydCBjb25zdCBTQ19MSU5FQVJfVkFMVUVTX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZ1tdPignU0NfTElORUFSX1ZBTFVFU19UT0tFTicsIHtcbiAgICBmYWN0b3J5OiAoKSA9PiBTQ19MSU5FQVJfVkFMVUVTLFxufSk7XG4iXX0=
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { inject } from '@angular/core';
|
|
1
|
+
import { inject, InjectionToken } from '@angular/core';
|
|
2
2
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk';
|
|
4
3
|
import { distinctUntilChanged } from 'rxjs';
|
|
5
4
|
import { ScUserService } from '../services/sc-user.service';
|
|
6
5
|
/**
|
|
7
6
|
* Токен потока данных о текущем пользователе.
|
|
8
7
|
*/
|
|
9
|
-
export const SC_USER_INFO =
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
export const SC_USER_INFO = new InjectionToken('SC_USER_INFO', {
|
|
9
|
+
factory: () => inject(ScUserService)
|
|
10
|
+
.getUserChange$()
|
|
11
|
+
.pipe(distinctUntilChanged((previous, current) => !current.isGuest && previous.id === current.id), takeUntilDestroyed()),
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXNlci1wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3VzZXIvdG9rZW5zL3NjLXVzZXItcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUd4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQXFCLGNBQWMsRUFBRTtJQUMvRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQ1YsTUFBTSxDQUFDLGFBQWEsQ0FBQztTQUNoQixjQUFjLEVBQUU7U0FDaEIsSUFBSSxDQUNELG9CQUFvQixDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUMzRixrQkFBa0IsRUFBRSxDQUN2QjtDQUNaLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjVXNlciB9IGZyb20gJy4uL2R0by9zYy11c2VyJztcbmltcG9ydCB7IFNjVXNlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zYy11c2VyLnNlcnZpY2UnO1xuXG4vKipcbiAqINCi0L7QutC10L0g0L/QvtGC0L7QutCwINC00LDQvdC90YvRhSDQviDRgtC10LrRg9GJ0LXQvCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gKi9cbmV4cG9ydCBjb25zdCBTQ19VU0VSX0lORk8gPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTxTY1VzZXI+PignU0NfVVNFUl9JTkZPJywge1xuICAgIGZhY3Rvcnk6ICgpID0+XG4gICAgICAgIGluamVjdChTY1VzZXJTZXJ2aWNlKVxuICAgICAgICAgICAgLmdldFVzZXJDaGFuZ2UkKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2aW91cywgY3VycmVudCkgPT4gIWN1cnJlbnQuaXNHdWVzdCAmJiBwcmV2aW91cy5pZCA9PT0gY3VycmVudC5pZCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKClcbiAgICAgICAgICAgICksXG59KTtcbiJdfQ==
|
|
@@ -72,7 +72,7 @@ export class ScWarehouseService {
|
|
|
72
72
|
*/
|
|
73
73
|
setWarehouseIdSelectChange(warehouseId) {
|
|
74
74
|
this.warehouseIdSelectSubject.next(warehouseId);
|
|
75
|
-
// this.uiService.setSelectedWarehouseId(warehouseId);
|
|
75
|
+
// TODO: Доработать this.uiService.setSelectedWarehouseId(warehouseId);
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
78
78
|
* Возвращает {@link Observable} выбранного склада.
|
|
@@ -116,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
116
116
|
providedIn: 'root',
|
|
117
117
|
}]
|
|
118
118
|
}], ctorParameters: () => [] });
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtd2FyZWhvdXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dhcmVob3VzZS9zZXJ2aWNlcy9zYy13YXJlaG91c2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHekgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxZQUFZLENBQUM7O0FBR2xEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQXFCM0I7O09BRUc7SUFDSDtRQXZCQTs7V0FFRztRQUNjLFVBQUssR0FBdUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ2MsYUFBUSxHQUF3QixNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVoRjs7V0FFRztRQUNLLGdCQUFXLEdBQStCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLGFBQWEsQ0FBaUIsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1Sjs7V0FFRztRQUNLLDZCQUF3QixHQUFtQyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENB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QUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUNuSCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQ3ZCLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSwyQkFBMkI7UUFDOUIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEQsQ0FBQzsrR0EzSVEsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGZixNQUFNOzs0RkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0dWlJc1ByZXNlbnQgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgc2tpcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NJVGVybWluYWxQcm92aWRlciB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9pbnRlcmZhY2VzL3NjLWktdGVybWluYWwtcHJvdmlkZXInO1xuaW1wb3J0IHsgSVNfUlVOTklOR19PTl9URVJNSU5BTCB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy90ZXJtaW5hbC5wcm92aWRlcnMnO1xuaW1wb3J0IHsgU2NSZWZlcmVuY2VOYW1lIH0gZnJvbSAnLi4vLi4vcmVmZXJlbmNlcy9lbnVtcy9zYy1yZWZlcmVuY2UtbmFtZSc7XG5pbXBvcnQgeyBTY1JlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVmZXJlbmNlcy9zZXJ2aWNlcy9zYy1yZWZlcmVuY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU0NfVVNFUl9JTkZPLCBTY1VzZXIgfSBmcm9tICcuLi8uLi91c2VyJztcbmltcG9ydCB7IFNjSVdhcmVob3VzZSB9IGZyb20gJy4uL2R0byc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YHQviDRgdC60LvQsNC00LDQvNC4LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1dhcmVob3VzZVNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQtNCw0L3QvdGL0YUg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlciQ6IE9ic2VydmFibGU8U2NVc2VyPiA9IGluamVjdChTQ19VU0VSX0lORk8pO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIFNjSVRlcm1pbmFsUHJvdmlkZXJ9INC00LDQvdC90YvRhSDQviDRgtC10YDQvNC40L3QsNC70LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXJtaW5hbDogU2NJVGVybWluYWxQcm92aWRlciA9IGluamVjdChJU19SVU5OSU5HX09OX1RFUk1JTkFMKTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdC60LvQsNC00L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHdhcmVob3VzZXMkOiBPYnNlcnZhYmxlPFNjSVdhcmVob3VzZVtdPiA9IGluamVjdChTY1JlZmVyZW5jZXNTZXJ2aWNlKS5nZXRSZWZlcmVuY2UkPFNjSVdhcmVob3VzZVtdPihTY1JlZmVyZW5jZU5hbWUud2FyZWhvdXNlKS5waXBlKHNoYXJlUmVwbGF5KDEpKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBCZWhhdmlvclN1YmplY3R9INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0LAg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgd2FyZWhvdXNlSWRTZWxlY3RTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1dhcmVob3VzZVNlcnZpY2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pbml0U3Vic2NyaXB0aW9uT25Vc2VyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDQv9C+0LTQv9C40YHQutC4INC90LAg0LjQt9C80LXQvdC10L3QuNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIGluaXRTdWJzY3JpcHRpb25PblVzZXIoKTogdm9pZCB7XG4gICAgICAgIC8vIE9ic2VydmFibGUg0LTQsNC90L3Ri9GFINC00LvRjyDQvtCx0YDQsNCx0L7RgtC60Lgg0YHQuNCz0L3QsNC70L7QsiDQuNC30LzQtdC90LXQvdC40Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAgICBjb25zdCBkYXRhJCA9IHRoaXMud2FyZWhvdXNlcyQucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgod2FyZWhvdXNlcykgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnVzZXIkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgodXNlcikgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcmVob3VzZXM6IHdhcmVob3VzZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZElkTWV0YWRhdGE6IHVzZXIubWV0YWRhdGEuc2VsZWN0ZWRXYXJlaG91c2VJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNpdHk6IHVzZXIuY2l0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbjogdXNlci5yZWdpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogdXNlci5pZCxcbiAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vINCf0YDQuCDQstGF0L7QtNC1INC4INCy0YvRhdC+0LTQtSDRg9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBJZCDRgdC60LvQsNC00LAsINC30LDQv9C40YHQsNC90L3Ri9C5INCyIG1ldGFkYXRhLCDQu9C40LHQviBJZCDRgdC60LvQsNC00LAg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnQuNC5INGA0LXQs9C40L7QvdGDINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjywg0LvQuNCx0L4gSWQg0YHQutC70LDQtNCwINGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgICAgZGF0YSRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLW5lZ2F0aW9uLWluLWVxdWFsaXR5LWNoZWNrXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXZpb3VzLCBjdXJyZW50KSA9PiAhcHJldmlvdXMuaWQgPT09ICFjdXJyZW50LmlkKSxcbiAgICAgICAgICAgICAgICBtYXAoKGRhdGEpID0+IC8qKiBkYXRhLnNlbGVjdGVkSWRNZXRhZGF0YSB8fCAqLyBkYXRhLndhcmVob3VzZXMuZmluZCgod2FyZWhvdXNlKSA9PiBkYXRhLnJlZ2lvbiAmJiB3YXJlaG91c2UucmVnaW9ucz8uaW5jbHVkZXMoZGF0YS5yZWdpb24pKT8uaWQgPz8gbnVsbCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKChzZWxlY3RlZElkKSA9PiB0aGlzLndhcmVob3VzZUlkU2VsZWN0U3ViamVjdC52YWx1ZSAhPT0gc2VsZWN0ZWRJZCksXG4gICAgICAgICAgICAgICAgdGFwKChzZWxlY3RlZElkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2FyZWhvdXNlSWRTZWxlY3RTdWJqZWN0Lm5leHQoc2VsZWN0ZWRJZCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgICAgICAvLyDQn9GA0Lgg0YHQvNC10L3QtSDRgNC10LPQuNC+0L3QsCDRg9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQsiBtZXRhZGF0YSBpZCDRgdC60LvQsNC00LAg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YDQtdCz0LjQvtC90LAsINC70LjQsdC+INGB0YLQsNCy0LjRgiBJZCDRgdC60LvQsNC00LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINC10YHQu9C4INGA0LXQs9C40L7QvSDQsdGL0Lsg0YPQtNCw0LvRkdC9LlxuICAgICAgICBkYXRhJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbm8tbmVnYXRpb24taW4tZXF1YWxpdHktY2hlY2tcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXMsIGN1cnJlbnQpID0+ICFwcmV2aW91cy5pZCAhPT0gIWN1cnJlbnQuaWQgfHwgcHJldmlvdXMuY2l0eSA9PT0gY3VycmVudC5jaXR5KSxcbiAgICAgICAgICAgICAgICBza2lwKDEpLCAvLyBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpINCy0YHQtdCz0LTQsCDQstGL0LTQsNGR0YIg0L/QtdGA0LLQvtC1INC30L3QsNGH0LXQvdC40LUsINC/0L7RjdGC0L7QvNGDINC/0YDQvtC/0YPRgdC60LDQtdC8INC10LPQviDQuCDRgNC10LDQs9C40YDRg9C10Lwg0YLQvtC70YzQutC+INC90LAg0LjQt9C80LXQvdC10L3QuNC1LlxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZyxzb25hcmpzL3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICBtYXAoKGRhdGEpID0+IGRhdGEud2FyZWhvdXNlcy5maW5kKCh3YXJlaG91c2UpID0+IGRhdGEucmVnaW9uICYmIHdhcmVob3VzZS5yZWdpb25zPy5pbmNsdWRlcyhkYXRhLnJlZ2lvbikpPy5pZCB8fCBkYXRhLndhcmVob3VzZXMuZmluZCgoaXRlbSkgPT4gaXRlbS5pc01haW4pPy5pZCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKChzZWxlY3RlZElkKSA9PiBzZWxlY3RlZElkICE9PSB1bmRlZmluZWQgJiYgdGhpcy53YXJlaG91c2VJZFNlbGVjdFN1YmplY3QudmFsdWUgIT09IHNlbGVjdGVkSWQpLFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgICAgICAgICAgbWFwKChzZWxlY3RlZElkKSA9PiBzZWxlY3RlZElkISksXG4gICAgICAgICAgICAgICAgdGFwKChzZWxlY3RlZElkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0V2FyZWhvdXNlSWRTZWxlY3RDaGFuZ2Uoc2VsZWN0ZWRJZCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQstGL0LHRgNCw0L3QvdC+0LPQviDRgdC60LvQsNC00LAg0LIge0BsaW5rIEJlaGF2aW9yU3ViamVjdH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2FyZWhvdXNlSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRXYXJlaG91c2VJZFNlbGVjdENoYW5nZSh3YXJlaG91c2VJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2FyZWhvdXNlSWRTZWxlY3RTdWJqZWN0Lm5leHQod2FyZWhvdXNlSWQpO1xuXG4gICAgICAgIC8vIHRoaXMudWlTZXJ2aWNlLnNldFNlbGVjdGVkV2FyZWhvdXNlSWQod2FyZWhvdXNlSWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQstGL0LHRgNCw0L3QvdC+0LPQviDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIGdldFdhcmVob3VzZVNlbGVjdENoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY0lXYXJlaG91c2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FyZWhvdXNlcyQucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgod2FyZWhvdXNlcykgPT5cbiAgICAgICAgICAgICAgICB0aGlzLndhcmVob3VzZUlkU2VsZWN0U3ViamVjdC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKGlkKSA9PiB3YXJlaG91c2VzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGlkKSA/PyB3YXJlaG91c2VzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaXNNYWluKSksXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigod2FyZWhvdXNlKSA9PiB3YXJlaG91c2UgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbWFwKCh3YXJlaG91c2UpID0+IHdhcmVob3VzZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQutC70LDQtNCwINC00LvRjyDQtNC+0YHRgtCw0LLQutC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXREZWxpdmVyeVdhcmVob3VzZSQoKTogT2JzZXJ2YWJsZTxTY0lXYXJlaG91c2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FyZWhvdXNlcyQucGlwZShcbiAgICAgICAgICAgIG1hcCgod2FyZWhvdXNlcykgPT4gd2FyZWhvdXNlcy5maW5kKChpdGVtKSA9PiBpdGVtLmlzTWFpbikpLFxuICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQutC70LDQtNCwINCyINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDRgtC+0LPQviwg0LPQtNC1INC30LDQv9GD0YnQtdC90L4g0L/RgNC40LvQvtC20LXQvdC40LUuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyDQldGB0LvQuCDQv9GA0LjQu9C+0LbQtdC90LjQtSDQt9Cw0L/Rg9GJ0LXQvdC+INC90LAg0YLQtdGA0LzQuNC90LDQu9C1INC4INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGB0LrQu9Cw0LTQsCDQv9GA0LjQstGP0LfQsNC90L3QvtCz0L4g0Log0YLQtdGA0LzQuNC90LDQu9GDINC90LUgbnVsbCwg0YLQviDQstC+0LfQstGA0LDRidCw0LXRgiDRgdC60LvQsNC0INGC0LXRgNC80LjQvdCw0LvQsCxcbiAgICAgKiDQstC+INCy0YHQtdGFINC+0YHRgtCw0LvRjNC90YvRhSDRgdC70YPRh9Cw0Y/RhSDQstC+0LfQstGA0LDRidCw0LXRgiDQvtGB0L3QvtCy0L3QvtC5INGB0LrQu9Cw0LQuXG4gICAgICovXG4gICAgcHVibGljIGdldENhdGFsb2dXYXJlaG91c2VDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NJV2FyZWhvdXNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLndhcmVob3VzZXMkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHdhcmVob3VzZXMpID0+IHdhcmVob3VzZXMuZmluZCgodykgPT4gdy5pZCA9PT0gdGhpcy50ZXJtaW5hbC53YXJlaG91c2VJZCkgPz8gd2FyZWhvdXNlcy5maW5kKCh3KSA9PiB3LmlzTWFpbikpLFxuICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQv9C40YHQutCwINGB0LrQu9Cw0LTQvtCyLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRXYXJlaG91c2VzJCgpOiBPYnNlcnZhYmxlPFNjSVdhcmVob3VzZVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLndhcmVob3VzZXMkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINCy0YvQsdGA0LDQvdC90L7Qs9C+INGB0LrQu9Cw0LTQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q3VycmVudFdhcmVob3VzZUlkU2VsZWN0KCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy53YXJlaG91c2VJZFNlbGVjdFN1YmplY3QuZ2V0VmFsdWUoKTtcbiAgICB9XG59XG4iXX0=
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtd2FyZWhvdXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dhcmVob3VzZS9zZXJ2aWNlcy9zYy13YXJlaG91c2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHekgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxZQUFZLENBQUM7O0FBR2xEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQXFCM0I7O09BRUc7SUFDSDtRQXZCQTs7V0FFRztRQUNjLFVBQUssR0FBdUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ2MsYUFBUSxHQUF3QixNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVoRjs7V0FFRztRQUNLLGdCQUFXLEdBQStCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLGFBQWEsQ0FBaUIsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1Sjs7V0FFRztRQUNLLDZCQUF3QixHQUFtQyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENB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QUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUNuSCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQ3ZCLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSwyQkFBMkI7UUFDOUIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEQsQ0FBQzsrR0EzSVEsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGZixNQUFNOzs0RkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0dWlJc1ByZXNlbnQgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgc2tpcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NJVGVybWluYWxQcm92aWRlciB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9pbnRlcmZhY2VzL3NjLWktdGVybWluYWwtcHJvdmlkZXInO1xuaW1wb3J0IHsgSVNfUlVOTklOR19PTl9URVJNSU5BTCB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy90ZXJtaW5hbC5wcm92aWRlcnMnO1xuaW1wb3J0IHsgU2NSZWZlcmVuY2VOYW1lIH0gZnJvbSAnLi4vLi4vcmVmZXJlbmNlcy9lbnVtcy9zYy1yZWZlcmVuY2UtbmFtZSc7XG5pbXBvcnQgeyBTY1JlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVmZXJlbmNlcy9zZXJ2aWNlcy9zYy1yZWZlcmVuY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU0NfVVNFUl9JTkZPLCBTY1VzZXIgfSBmcm9tICcuLi8uLi91c2VyJztcbmltcG9ydCB7IFNjSVdhcmVob3VzZSB9IGZyb20gJy4uL2R0byc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YHQviDRgdC60LvQsNC00LDQvNC4LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY1dhcmVob3VzZVNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQtNCw0L3QvdGL0YUg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlciQ6IE9ic2VydmFibGU8U2NVc2VyPiA9IGluamVjdChTQ19VU0VSX0lORk8pO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIFNjSVRlcm1pbmFsUHJvdmlkZXJ9INC00LDQvdC90YvRhSDQviDRgtC10YDQvNC40L3QsNC70LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXJtaW5hbDogU2NJVGVybWluYWxQcm92aWRlciA9IGluamVjdChJU19SVU5OSU5HX09OX1RFUk1JTkFMKTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdC60LvQsNC00L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHdhcmVob3VzZXMkOiBPYnNlcnZhYmxlPFNjSVdhcmVob3VzZVtdPiA9IGluamVjdChTY1JlZmVyZW5jZXNTZXJ2aWNlKS5nZXRSZWZlcmVuY2UkPFNjSVdhcmVob3VzZVtdPihTY1JlZmVyZW5jZU5hbWUud2FyZWhvdXNlKS5waXBlKHNoYXJlUmVwbGF5KDEpKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBCZWhhdmlvclN1YmplY3R9INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0LAg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgd2FyZWhvdXNlSWRTZWxlY3RTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1dhcmVob3VzZVNlcnZpY2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pbml0U3Vic2NyaXB0aW9uT25Vc2VyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDQv9C+0LTQv9C40YHQutC4INC90LAg0LjQt9C80LXQvdC10L3QuNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIGluaXRTdWJzY3JpcHRpb25PblVzZXIoKTogdm9pZCB7XG4gICAgICAgIC8vIE9ic2VydmFibGUg0LTQsNC90L3Ri9GFINC00LvRjyDQvtCx0YDQsNCx0L7RgtC60Lgg0YHQuNCz0L3QsNC70L7QsiDQuNC30LzQtdC90LXQvdC40Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAgICBjb25zdCBkYXRhJCA9IHRoaXMud2FyZWhvdXNlcyQucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgod2FyZWhvdXNlcykgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnVzZXIkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgodXNlcikgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhcmVob3VzZXM6IHdhcmVob3VzZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZElkTWV0YWRhdGE6IHVzZXIubWV0YWRhdGEuc2VsZWN0ZWRXYXJlaG91c2VJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNpdHk6IHVzZXIuY2l0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbjogdXNlci5yZWdpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogdXNlci5pZCxcbiAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vINCf0YDQuCDQstGF0L7QtNC1INC4INCy0YvRhdC+0LTQtSDRg9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBJZCDRgdC60LvQsNC00LAsINC30LDQv9C40YHQsNC90L3Ri9C5INCyIG1ldGFkYXRhLCDQu9C40LHQviBJZCDRgdC60LvQsNC00LAg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnQuNC5INGA0LXQs9C40L7QvdGDINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjywg0LvQuNCx0L4gSWQg0YHQutC70LDQtNCwINGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgICAgZGF0YSRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLW5lZ2F0aW9uLWluLWVxdWFsaXR5LWNoZWNrXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXZpb3VzLCBjdXJyZW50KSA9PiAhcHJldmlvdXMuaWQgPT09ICFjdXJyZW50LmlkKSxcbiAgICAgICAgICAgICAgICBtYXAoKGRhdGEpID0+IC8qKiBkYXRhLnNlbGVjdGVkSWRNZXRhZGF0YSB8fCAqLyBkYXRhLndhcmVob3VzZXMuZmluZCgod2FyZWhvdXNlKSA9PiBkYXRhLnJlZ2lvbiAmJiB3YXJlaG91c2UucmVnaW9ucz8uaW5jbHVkZXMoZGF0YS5yZWdpb24pKT8uaWQgPz8gbnVsbCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKChzZWxlY3RlZElkKSA9PiB0aGlzLndhcmVob3VzZUlkU2VsZWN0U3ViamVjdC52YWx1ZSAhPT0gc2VsZWN0ZWRJZCksXG4gICAgICAgICAgICAgICAgdGFwKChzZWxlY3RlZElkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2FyZWhvdXNlSWRTZWxlY3RTdWJqZWN0Lm5leHQoc2VsZWN0ZWRJZCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgICAgICAvLyDQn9GA0Lgg0YHQvNC10L3QtSDRgNC10LPQuNC+0L3QsCDRg9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQsiBtZXRhZGF0YSBpZCDRgdC60LvQsNC00LAg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YDQtdCz0LjQvtC90LAsINC70LjQsdC+INGB0YLQsNCy0LjRgiBJZCDRgdC60LvQsNC00LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINC10YHQu9C4INGA0LXQs9C40L7QvSDQsdGL0Lsg0YPQtNCw0LvRkdC9LlxuICAgICAgICBkYXRhJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbm8tbmVnYXRpb24taW4tZXF1YWxpdHktY2hlY2tcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXMsIGN1cnJlbnQpID0+ICFwcmV2aW91cy5pZCAhPT0gIWN1cnJlbnQuaWQgfHwgcHJldmlvdXMuY2l0eSA9PT0gY3VycmVudC5jaXR5KSxcbiAgICAgICAgICAgICAgICBza2lwKDEpLCAvLyBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpINCy0YHQtdCz0LTQsCDQstGL0LTQsNGR0YIg0L/QtdGA0LLQvtC1INC30L3QsNGH0LXQvdC40LUsINC/0L7RjdGC0L7QvNGDINC/0YDQvtC/0YPRgdC60LDQtdC8INC10LPQviDQuCDRgNC10LDQs9C40YDRg9C10Lwg0YLQvtC70YzQutC+INC90LAg0LjQt9C80LXQvdC10L3QuNC1LlxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZyxzb25hcmpzL3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICBtYXAoKGRhdGEpID0+IGRhdGEud2FyZWhvdXNlcy5maW5kKCh3YXJlaG91c2UpID0+IGRhdGEucmVnaW9uICYmIHdhcmVob3VzZS5yZWdpb25zPy5pbmNsdWRlcyhkYXRhLnJlZ2lvbikpPy5pZCB8fCBkYXRhLndhcmVob3VzZXMuZmluZCgoaXRlbSkgPT4gaXRlbS5pc01haW4pPy5pZCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKChzZWxlY3RlZElkKSA9PiBzZWxlY3RlZElkICE9PSB1bmRlZmluZWQgJiYgdGhpcy53YXJlaG91c2VJZFNlbGVjdFN1YmplY3QudmFsdWUgIT09IHNlbGVjdGVkSWQpLFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgICAgICAgICAgbWFwKChzZWxlY3RlZElkKSA9PiBzZWxlY3RlZElkISksXG4gICAgICAgICAgICAgICAgdGFwKChzZWxlY3RlZElkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0V2FyZWhvdXNlSWRTZWxlY3RDaGFuZ2Uoc2VsZWN0ZWRJZCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQstGL0LHRgNCw0L3QvdC+0LPQviDRgdC60LvQsNC00LAg0LIge0BsaW5rIEJlaGF2aW9yU3ViamVjdH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd2FyZWhvdXNlSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRXYXJlaG91c2VJZFNlbGVjdENoYW5nZSh3YXJlaG91c2VJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2FyZWhvdXNlSWRTZWxlY3RTdWJqZWN0Lm5leHQod2FyZWhvdXNlSWQpO1xuXG4gICAgICAgIC8vIFRPRE86INCU0L7RgNCw0LHQvtGC0LDRgtGMIHRoaXMudWlTZXJ2aWNlLnNldFNlbGVjdGVkV2FyZWhvdXNlSWQod2FyZWhvdXNlSWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQstGL0LHRgNCw0L3QvdC+0LPQviDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIGdldFdhcmVob3VzZVNlbGVjdENoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY0lXYXJlaG91c2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FyZWhvdXNlcyQucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgod2FyZWhvdXNlcykgPT5cbiAgICAgICAgICAgICAgICB0aGlzLndhcmVob3VzZUlkU2VsZWN0U3ViamVjdC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKGlkKSA9PiB3YXJlaG91c2VzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGlkKSA/PyB3YXJlaG91c2VzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaXNNYWluKSksXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigod2FyZWhvdXNlKSA9PiB3YXJlaG91c2UgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbWFwKCh3YXJlaG91c2UpID0+IHdhcmVob3VzZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQutC70LDQtNCwINC00LvRjyDQtNC+0YHRgtCw0LLQutC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXREZWxpdmVyeVdhcmVob3VzZSQoKTogT2JzZXJ2YWJsZTxTY0lXYXJlaG91c2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FyZWhvdXNlcyQucGlwZShcbiAgICAgICAgICAgIG1hcCgod2FyZWhvdXNlcykgPT4gd2FyZWhvdXNlcy5maW5kKChpdGVtKSA9PiBpdGVtLmlzTWFpbikpLFxuICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQutC70LDQtNCwINCyINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDRgtC+0LPQviwg0LPQtNC1INC30LDQv9GD0YnQtdC90L4g0L/RgNC40LvQvtC20LXQvdC40LUuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyDQldGB0LvQuCDQv9GA0LjQu9C+0LbQtdC90LjQtSDQt9Cw0L/Rg9GJ0LXQvdC+INC90LAg0YLQtdGA0LzQuNC90LDQu9C1INC4INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGB0LrQu9Cw0LTQsCDQv9GA0LjQstGP0LfQsNC90L3QvtCz0L4g0Log0YLQtdGA0LzQuNC90LDQu9GDINC90LUgbnVsbCwg0YLQviDQstC+0LfQstGA0LDRidCw0LXRgiDRgdC60LvQsNC0INGC0LXRgNC80LjQvdCw0LvQsCxcbiAgICAgKiDQstC+INCy0YHQtdGFINC+0YHRgtCw0LvRjNC90YvRhSDRgdC70YPRh9Cw0Y/RhSDQstC+0LfQstGA0LDRidCw0LXRgiDQvtGB0L3QvtCy0L3QvtC5INGB0LrQu9Cw0LQuXG4gICAgICovXG4gICAgcHVibGljIGdldENhdGFsb2dXYXJlaG91c2VDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NJV2FyZWhvdXNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLndhcmVob3VzZXMkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHdhcmVob3VzZXMpID0+IHdhcmVob3VzZXMuZmluZCgodykgPT4gdy5pZCA9PT0gdGhpcy50ZXJtaW5hbC53YXJlaG91c2VJZCkgPz8gd2FyZWhvdXNlcy5maW5kKCh3KSA9PiB3LmlzTWFpbikpLFxuICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQv9C40YHQutCwINGB0LrQu9Cw0LTQvtCyLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRXYXJlaG91c2VzJCgpOiBPYnNlcnZhYmxlPFNjSVdhcmVob3VzZVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLndhcmVob3VzZXMkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINCy0YvQsdGA0LDQvdC90L7Qs9C+INGB0LrQu9Cw0LTQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q3VycmVudFdhcmVob3VzZUlkU2VsZWN0KCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy53YXJlaG91c2VJZFNlbGVjdFN1YmplY3QuZ2V0VmFsdWUoKTtcbiAgICB9XG59XG4iXX0=
|