@snabcentr/client-core 2.70.0 → 2.71.0

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.
@@ -72,8 +72,8 @@ export class ScSeoService {
72
72
  * Устанавливает seo параметры на основе указанного ресурса. Если какого-то тега нет, будет установлено значение по умолчанию.
73
73
  *
74
74
  * @param resource Ресурс на основе которого необходимо установить мета-теги.
75
- * @param img Изображение. Если не пришло, то будет установлено значение по умолчанию.
76
- * @param robots Список robots-тегов для страницы.
75
+ * @param img Изображение. Если не пришло, то будет установлено значение по умолчанию (logo компании).
76
+ * @param robots Список robots-тегов для страницы. Значение по умолчанию (['index', 'follow']).
77
77
  * @param schemaOrgData Данные Schema.org для встраивания на странице.
78
78
  */
79
79
  setFromResource(resource, img, robots, schemaOrgData) {
@@ -94,7 +94,7 @@ export class ScSeoService {
94
94
  * Устанавливает seo параметры со значением по умолчанию.
95
95
  *
96
96
  * @param title Заголовок страницы.
97
- * @param robots Список robots тегов для страницы.
97
+ * @param robots Список robots тегов для страницы. Значение по умолчанию (['index', 'follow']).
98
98
  * @param schemaOrgData Данные Schema.org для встраивания на странице.
99
99
  */
100
100
  setByDefault(title, robots, schemaOrgData) {
@@ -234,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
234
234
  providedIn: 'root',
235
235
  }]
236
236
  }] });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Nlby9zZXJ2aWNlcy9zYy1zZW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTWpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUlqRTs7R0FFRztBQUlILE1BQU0sT0FBTyxZQUFZO0lBSHpCO1FBSUk7O1dBRUc7UUFDYyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV2RDs7V0FFRztRQUNjLGVBQVUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUUzRDs7V0FFRztRQUNjLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRTNFOztX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USxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQTdQUSxZQUFZO21IQUFaLFlBQVksY0FGVCxNQUFNOzs0RkFFVCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGdldCwgaXNOaWwsIGlzU3RyaW5nIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFRoaW5nLCBXaXRoQ29udGV4dCB9IGZyb20gJ3NjaGVtYS1kdHMnO1xuXG5pbXBvcnQgeyBTY0lDYXRhbG9nSXRlbSB9IGZyb20gJy4uLy4uL2NhdGFsb2cvaW50ZXJmYWNlcy9zYy1pLWNhdGFsb2ctaXRlbSc7XG5pbXBvcnQgeyBTY0lDYXRlZ29yeSB9IGZyb20gJy4uLy4uL2NhdGFsb2cvaW50ZXJmYWNlcy9zYy1pLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjSVZpcnR1YWxDYXRlZ29yeSB9IGZyb20gJy4uLy4uL2NhdGFsb2cvaW50ZXJmYWNlcy9zYy1pLXZpcnR1YWwtY2F0ZWdvcnknO1xuaW1wb3J0IHsgU2NJZE9yU2x1Z1BpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9zYy1pZC1vci1zbHVnLnBpcGUnO1xuaW1wb3J0IHsgU2NNZWRpYUltYWdlVHJhbnNmb3JtZXJQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvc2MtbWVkaWEtaW1hZ2UtdHJhbnNmb3JtZXIucGlwZSc7XG5pbXBvcnQgeyBTQ19DT01QQU5ZX0lORk8gfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtY29tcGFueS1pbmZvJztcbmltcG9ydCB7IFNDX0NBVEFMT0dfSVRFTV9QQUdFX01FVEEsIFNDX0RFRkFVTFRfUEFHRV9NRVRBIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLWRlZmF1bHQtcGFnZS1tZXRhJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBTY2hlbWFPcmdGYWN0b3J5IH0gZnJvbSAnLi4vY2xhc3Nlcy9zY2hlbWEtb3JnLWZhY3RvcnknO1xuaW1wb3J0IHsgU2NJU2VvIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zYy1pLXNlbyc7XG5pbXBvcnQgeyBSb2JvdHNUYWdUeXBlIH0gZnJvbSAnLi4vdHlwZXMvcm9ib3RzLXRhZy10eXBlJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0YPQv9GA0LDQstC70LXQvdC40Y8gU0VPLdC/0LDRgNCw0LzQtdGC0YDQsNC80LguXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjU2VvU2VydmljZSB7XG4gICAgLyoqXG4gICAgICog0JTQsNC90L3Ri9C1INC+INC60L7QvNC/0LDQvdC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wYW55SW5mbyA9IGluamVjdChTQ19DT01QQU5ZX0lORk8pO1xuXG4gICAgLyoqXG4gICAgICog0JzQtdGC0LDQtNCw0L3QvdGL0LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2VvID0gaW5qZWN0KFNDX0RFRkFVTFRfUEFHRV9NRVRBKTtcblxuICAgIC8qKlxuICAgICAqINCc0LXRgtCw0LTQsNC90L3Ri9C1INGB0YLRgNCw0L3QuNGG0Ysg0LrQsNGC0LDQu9C+0LPQsCDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhdGFsb2dJdGVtRGVmYXVsdFNlbyA9IGluamVjdChTQ19DQVRBTE9HX0lURU1fUEFHRV9NRVRBKTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L/RgNC40LvQvtC20LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmxzID0gaW5qZWN0KFNDX1VSTFMpO1xuXG4gICAgLyoqXG4gICAgICog0J/QsNC50L8sINCy0L7Qt9Cy0YDQsNGJ0LDRjtGJ0LjQuSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lgg0YHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1Zykg0LjRgdGF0L7QtNGPINC40Lcg0L3QsNGB0YLRgNC+0LXQuiDQvtC60YDRg9C20LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBpZE9yU2x1Z1BpcGU6IFNjSWRPclNsdWdQaXBlID0gaW5qZWN0KFNjSWRPclNsdWdQaXBlKTtcblxuICAgIC8qKlxuICAgICAqINCf0LDQudC/INC00LvRjyDRhNC+0YDQvNC40YDQvtCy0LDQvdC40Y8g0L/QvtC70L3QvtCz0L4gVVJJINC40LfQvtCx0YDQsNC20LXQvdC40Y8g0L3QsCBtZWRpYSDRgdC10YDQstC10YDQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lZGlhSW1hZ2VUcmFuc2Zvcm1lclBpcGUgPSBpbmplY3QoU2NNZWRpYUltYWdlVHJhbnNmb3JtZXJQaXBlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRg9GB0YLQsNC90L7QstC60Lgg0LzQtdGC0LDQtNCw0L3QvdGL0YUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG1ldGFTZXJ2aWNlID0gaW5qZWN0KE1ldGEpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC80LDRgNGI0YDRg9GC0LjQt9Cw0YbQuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0YPQv9GA0LDQstC70LXQvdC40Y8g0LfQsNCz0L7Qu9C+0LLQutC+0Lwg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlU2VydmljZSA9IGluamVjdChUaXRsZSk7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YrQtdC60YIge0BsaW5rIERvY3VtZW50fSwg0L/RgNC10LTQvtGB0YLQsNCy0LvRj9GO0YnQuNC5INC00L7RgdGC0YPQvyDQuiBET00g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIC8qKlxuICAgICAqINCk0LDQsdGA0LjQutCwINC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINC00LDQvdC90YvRhSBTY2hlbWEub3JnLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hT3JnRmFjdG9yeSA9IGluamVjdChTY2hlbWFPcmdGYWN0b3J5KTtcblxuICAgIC8qKlxuICAgICAqINCk0LDQsdGA0LjQutCwINC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINGN0LrQt9C10LzQv9C70Y/RgNC+0LIge0BsaW5rIFJlbmRlcmVyMn0uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlckZhY3RvcnkgPSBpbmplY3QoUmVuZGVyZXJGYWN0b3J5Mik7XG5cbiAgICAvKipcbiAgICAgKiDQrdC60LfQtdC80L/Qu9GP0YAge0BsaW5rIFJlbmRlcmVyMn0g0LTQu9GPINCx0LXQt9C+0L/QsNGB0L3QvtC5INGA0LDQsdC+0YLRiyDRgSBET00uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBzZW8g0L/QsNGA0LDQvNC10YLRgNGLINC90LAg0L7RgdC90L7QstC1INGD0LrQsNC30LDQvdC90L7Qs9C+INGA0LXRgdGD0YDRgdCwLiDQldGB0LvQuCDQutCw0LrQvtCz0L4t0YLQviDRgtC10LPQsCDQvdC10YIsINCx0YPQtNC10YIg0YPRgdGC0LDQvdC+0LLQu9C10L3QviDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlc291cmNlINCg0LXRgdGD0YDRgSDQvdCwINC+0YHQvdC+0LLQtSDQutC+0YLQvtGA0L7Qs9C+INC90LXQvtCx0YXQvtC00LjQvNC+INGD0YHRgtCw0L3QvtCy0LjRgtGMINC80LXRgtCwLdGC0LXQs9C4LlxuICAgICAqIEBwYXJhbSBpbWcg0JjQt9C+0LHRgNCw0LbQtdC90LjQtS4g0JXRgdC70Lgg0L3QtSDQv9GA0LjRiNC70L4sINGC0L4g0LHRg9C00LXRgiDRg9GB0YLQsNC90L7QstC70LXQvdC+INC30L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzLdGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIHNjaGVtYU9yZ0RhdGEg0JTQsNC90L3Ri9C1IFNjaGVtYS5vcmcg0LTQu9GPINCy0YHRgtGA0LDQuNCy0LDQvdC40Y8g0L3QsCDRgdGC0YDQsNC90LjRhtC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRGcm9tUmVzb3VyY2UocmVzb3VyY2U/OiBTY0lTZW8sIGltZz86IHN0cmluZywgcm9ib3RzPzogUm9ib3RzVGFnVHlwZVtdLCBzY2hlbWFPcmdEYXRhPzogV2l0aENvbnRleHQ8VGhpbmc+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRSZXNvdXJjZSA9IHtcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnJlcGxhY2VUZW1wbGF0ZXMocmVzb3VyY2U/LnRpdGxlID8/IHRoaXMuZGVmYXVsdFNlby50aXRsZSwgcmVzb3VyY2U/Lmluc3RhbmNlRGF0YSA/PyB7fSksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5yZXBsYWNlVGVtcGxhdGVzKHJlc291cmNlPy5kZXNjcmlwdGlvbiA/PyB0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb24sIHJlc291cmNlPy5pbnN0YW5jZURhdGEgPz8ge30pLFxuICAgICAgICAgICAga2V5d29yZHM6IHJlc291cmNlPy5rZXl3b3JkcyA/PyB0aGlzLmRlZmF1bHRTZW8ua2V5d29yZHMsXG4gICAgICAgICAgICBtZXRhOiByZXNvdXJjZT8ubWV0YSA/PyBbXSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxzLnNpdGVVcmx9JHt0aGlzLnJvdXRlci51cmx9YDtcblxuICAgICAgICB0aGlzLnNldE1ldGFUYWdzKHVwZGF0ZWRSZXNvdXJjZS50aXRsZSwgdXBkYXRlZFJlc291cmNlLmRlc2NyaXB0aW9uLCB1cGRhdGVkUmVzb3VyY2Uua2V5d29yZHMsIHVwZGF0ZWRSZXNvdXJjZS5tZXRhLCByb2JvdHMgPz8gWydpbmRleCcsICdmb2xsb3cnXSk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YVRhZ3ModXBkYXRlZFJlc291cmNlLnRpdGxlLCB1cGRhdGVkUmVzb3VyY2UuZGVzY3JpcHRpb24sIHVybCwgaW1nID8/IHRoaXMudXJscy5sb2dvVXJsKTtcbiAgICAgICAgdGhpcy5zZXRDYW5vbmljYWxMaW5rKHVybCk7XG5cbiAgICAgICAgLy8g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10LwgU2NoZW1hLm9yZyDQv9Cw0YDQsNC80LXRgtGA0YsuXG4gICAgICAgIHRoaXMuc2V0U2NoZW1hT3JnRGF0YSh0aGlzLnNjaGVtYU9yZ0ZhY3RvcnkubWVyZ2UoW3RoaXMuc2NoZW1hT3JnRmFjdG9yeS5nZW5lcmF0ZUZvck9yZ2FuaXphdGlvbigpLCAuLi4oc2NoZW1hT3JnRGF0YSA/IFtzY2hlbWFPcmdEYXRhXSA6IFtdKV0pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBzZW8g0L/QsNGA0LDQvNC10YLRgNGLINGB0L4g0LfQvdCw0YfQtdC90LjQtdC8INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBzY2hlbWFPcmdEYXRhINCU0LDQvdC90YvQtSBTY2hlbWEub3JnINC00LvRjyDQstGB0YLRgNCw0LjQstCw0L3QuNGPINC90LAg0YHRgtGA0LDQvdC40YbQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0QnlEZWZhdWx0KHRpdGxlPzogc3RyaW5nLCByb2JvdHM/OiBSb2JvdHNUYWdUeXBlW10sIHNjaGVtYU9yZ0RhdGE/OiBXaXRoQ29udGV4dDxUaGluZz4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRGcm9tUmVzb3VyY2UoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGAke3RpdGxlID8/IHRoaXMuZGVmYXVsdFNlby50aXRsZX0gLSAke3RoaXMuY29tcGFueUluZm8ubmFtZX1gLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aXRsZSA/IGAke3RpdGxlfSwgJHt0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb259YCA6IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLnVybHMubG9nb1VybCxcbiAgICAgICAgICAgIHJvYm90cyA/PyBbJ2luZGV4JywgJ2ZvbGxvdyddLFxuICAgICAgICAgICAgc2NoZW1hT3JnRGF0YVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIHNlbyDQv9Cw0YDQsNC80LXRgtGA0Ysg0YHQviDQt9C90LDRh9C10L3QuNC10Lwg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC30L3QsNGH0LXQvdC40LUgXCLQvdC1INC40L3QtNC10LrRgdC40YDQvtCy0LDRgtGMXCIg0LTQu9GPINC/0L7QuNGB0LrQvtCy0YvRhSDRgNC+0LHQvtGC0L7Qsi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSDQl9Cw0LPQvtC70L7QstC+0Log0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0QnlEZWZhdWx0QXNOb0luZGV4ZWQodGl0bGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRCeURlZmF1bHQodGl0bGUsIFsnbm9pbmRleCcsICdub2ZvbGxvdycsICdub2FyY2hpdmUnXSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgc2VvLdC/0LDRgNCw0LzQtdGC0YDRiyDQtNC70Y8g0YPQutCw0LfQsNC90L3QvtCz0L4g0Y3Qu9C10LzQtdC90YLQsCDQutCw0YLQsNC70L7Qs9CwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGl0ZW0g0JTQsNC90L3Ri9C1INC+0LEg0Y3Qu9C10LzQtdC90YLQtSDQutCw0YLQsNC70L7Qs9CwLlxuICAgICAqIEBwYXJhbSB1cmxQYXRoIFVybCDQv9GD0YLRjCDQuiDRjdC70LXQvNC10L3RgtGDINC60LDRgtCw0LvQvtCz0LAuINCSINC/0YPRgtC4INC00L7Qu9C20LXQvSDQv9GA0LjRgdGD0YLRgdGC0LLQvtCy0LDRgtGMINGI0LDQsdC70L7QvSAnOmlkJywg0L7QsdC+0LfQvdCw0YfQsNGO0YnQuNC5INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGN0LvQtdC80LXQvdGC0LAg0LrQsNGC0LDQu9C+0LPQsCDQtNC70Y8g0L/QvtC00YHRgtCw0L3QvtCy0LrQuC5cbiAgICAgKiBAcGFyYW0gc2NoZW1hT3JnRGF0YSDQlNCw0L3QvdGL0LUgU2NoZW1hLm9yZyDRjdC70LXQvNC10L3RgtCwINC60LDRgtCw0LvQvtCz0LBcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0Rm9yQ2F0YWxvZ0l0ZW0oaXRlbTogU2NJQ2F0YWxvZ0l0ZW08U2NJQ2F0ZWdvcnkgfCBTY0lWaXJ0dWFsQ2F0ZWdvcnk+LCB1cmxQYXRoOiBzdHJpbmcsIHNjaGVtYU9yZ0RhdGE/OiBXaXRoQ29udGV4dDxUaGluZz4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxzLnNpdGVVcmx9JHt1cmxQYXRoLnJlcGxhY2UoJzppZCcsIHRoaXMuaWRPclNsdWdQaXBlLnRyYW5zZm9ybShpdGVtKS50b1N0cmluZygpKX1gO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMucmVwbGFjZVRlbXBsYXRlcyhpdGVtLnNlbz8udGl0bGUgPz8gdGhpcy5jYXRhbG9nSXRlbURlZmF1bHRTZW8udGl0bGUgPz8gYCR7aXRlbS5uYW1lfSAtINCa0YPQv9C40YLRjCDQsiAke3RoaXMuY29tcGFueUluZm8ubmFtZX1gLCBpdGVtKTtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSB0aGlzLnJlcGxhY2VUZW1wbGF0ZXMoXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICAgICAgICAgICAgaXRlbS5zZW8/LmRlc2NyaXB0aW9uID8/IHRoaXMuY2F0YWxvZ0l0ZW1EZWZhdWx0U2VvLmRlc2NyaXB0aW9uID8/IGAke2l0ZW0ubmFtZX0gLSDQmtGD0L/QuNGC0Ywg0L/QviDQstGL0LPQvtC00L3Ri9C8INGG0LXQvdCw0Lwg0LIgJHt0aGlzLmNvbXBhbnlJbmZvLm5hbWV9YCxcbiAgICAgICAgICAgIGl0ZW1cbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qga2V5d29yZHMgPSBpdGVtLnNlbz8ua2V5d29yZHMgPz8gYCR7aXRlbS5uYW1lfSwgJHt0aGlzLmNhdGFsb2dJdGVtRGVmYXVsdFNlby5rZXl3b3Jkc31gO1xuICAgICAgICBjb25zdCBtZXRhID0gaXRlbS5zZW8/Lm1ldGEgPz8gW107XG5cbiAgICAgICAgLy8g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10Lwg0YHRgtCw0L3QtNCw0YDRgtC90YvQtSBzZW8t0L/QsNGA0LDQvNC10YLRgNGLLCDQsiDRgtC+0Lwg0YfQuNGB0LvQtSDQuCDQutCw0L3QvtC90LjRh9C10YHQutGD0Y4g0YHRgdGL0LvQutGDLlxuICAgICAgICB0aGlzLnNldE1ldGFUYWdzKHRpdGxlLCBkZXNjcmlwdGlvbiwga2V5d29yZHMsIG1ldGEsIFsnaW5kZXgnLCAnZm9sbG93J10pO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFUYWdzKHRpdGxlLCBkZXNjcmlwdGlvbiwgdXJsLCB0aGlzLm1lZGlhSW1hZ2VUcmFuc2Zvcm1lclBpcGUudHJhbnNmb3JtKGl0ZW0uaW1hZ2UsIHRydWUpKTtcbiAgICAgICAgdGhpcy5zZXRDYW5vbmljYWxMaW5rKHVybCk7XG5cbiAgICAgICAgLy8g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10LwgU2NoZW1hLm9yZyDQv9Cw0YDQsNC80LXRgtGA0YsuXG4gICAgICAgIHRoaXMuc2V0U2NoZW1hT3JnRGF0YSh0aGlzLnNjaGVtYU9yZ0ZhY3RvcnkubWVyZ2UoW3RoaXMuc2NoZW1hT3JnRmFjdG9yeS5nZW5lcmF0ZUZvck9yZ2FuaXphdGlvbigpLCAuLi4oc2NoZW1hT3JnRGF0YSA/IFtzY2hlbWFPcmdEYXRhXSA6IFtdKV0pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQl9Cw0LzQtdC90Y/QtdGCINGI0LDQsdC70L7QvdGLINCyINGC0LXQutGB0YLQtSDQvdCwINC30L3QsNGH0LXQvdC40Y8g0LjQtyDQvtCx0YrQtdC60YLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0ZXh0INCi0LXQutGB0YIg0YEg0YjQsNCx0LvQvtC90LDQvNC4LlxuICAgICAqIEBwYXJhbSBpbnN0YW5jZURhdGEg0J7QsdGK0LXQutGCINGBINC00LDQvdC90YvQvNC4INC00LvRjyDQt9Cw0LzQtdC90YsuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgICBwcml2YXRlIHJlcGxhY2VUZW1wbGF0ZXModGV4dDogc3RyaW5nLCBpbnN0YW5jZURhdGE6IG9iamVjdCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0ZXh0LnJlcGxhY2VBbGwoL1xcJFxceyhbXn1dKylcXH0vZywgKF90ZW1wbGF0ZTogc3RyaW5nLCBmaWVsZFBhdGhWYXJpYW50czogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlOiB1bmtub3duID0gZmllbGRQYXRoVmFyaWFudHNcbiAgICAgICAgICAgICAgICAuc3BsaXQoJ3wnKVxuICAgICAgICAgICAgICAgIC5tYXAoKGZpZWxkUGF0aCkgPT4gZmllbGRQYXRoLnRyaW0oKSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgLm1hcCgoZmllbGRQYXRoKSA9PiBnZXQoaW5zdGFuY2VEYXRhLCBmaWVsZFBhdGgpIGFzIHVua25vd24pXG4gICAgICAgICAgICAgICAgLmZpbmQoKGZpZWxkVmFsdWUpID0+ICFpc05pbChmaWVsZFZhbHVlKSk7XG5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL25vLW5lc3RlZC1jb25kaXRpb25hbFxuICAgICAgICAgICAgcmV0dXJuIGlzTmlsKHZhbHVlKSA/ICcnIDogaXNTdHJpbmcodmFsdWUpID8gdmFsdWUgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQstGB0LUgbWV0YS3RgtC10LPQuCDRgdGC0YDQsNC90LjRhtGLLiDQldGB0LvQuCDQutCw0LrQvtC5LdC70LjQsdC+INC40Lcg0L/QsNGA0LDQvNC10YLRgNC+0LIg0L3QtSDRg9C60LDQt9Cw0L0sINC00LvRjyDQvdC10LPQviDRg9GB0YLQsNC90LDQstC70LjQstCw0LXRgtGB0Y8g0LfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSDQl9Cw0LPQvtC70L7QstC+0Log0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24g0J7Qv9C40YHQsNC90LjQtSDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBrZXl3b3JkcyDQmtC70Y7Rh9C10LLRi9C1INGB0LvQvtCy0LAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gbWV0YSDQnNCw0YHRgdC40LIg0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvRhSDQt9C90LDRh9C10L3QuNC5INC80LXRgtCw0YLQtdCz0L7Qsi5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldE1ldGFUYWdzKFxuICAgICAgICB0aXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLFxuICAgICAgICBrZXl3b3Jkczogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmtleXdvcmRzLFxuICAgICAgICBtZXRhOiBTY0lTZW9bJ21ldGEnXSA9IFtdLFxuICAgICAgICByb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSA9IFsnaW5kZXgnLCAnZm9sbG93J11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUodGl0bGUpO1xuXG4gICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgbmFtZTogJ2Rlc2NyaXB0aW9uJywgY29udGVudDogZGVzY3JpcHRpb24gfSk7XG4gICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgbmFtZTogJ2tleXdvcmRzJywgY29udGVudDoga2V5d29yZHMgfSk7XG4gICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgbmFtZTogJ3JvYm90cycsIGNvbnRlbnQ6IHJvYm90cy5qb2luKCcsICcpIH0pO1xuXG4gICAgICAgIG1ldGEuZm9yRWFjaCgodGFnKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7IG5hbWU6IHRhZy5uYW1lLCBjb250ZW50OiB0YWcuY29udGVudCB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgT3BlbiBHcmFwaCBtZXRhLdGC0LXQs9C4LlxuICAgICAqXG4gICAgICogQHBhcmFtIG9nVGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6LlxuICAgICAqIEBwYXJhbSBvZ0Rlc2NyaXB0aW9uINCe0L/QuNGB0LDQvdC40LUuXG4gICAgICogQHBhcmFtIG9nVXJsIFVybC5cbiAgICAgKiBAcGFyYW0gb2dJbWcg0KHRgdGL0LvQutCwINC90LAg0LjQt9C+0LHRgNCw0LbQtdC90LjQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldE9wZW5HcmFwaE1ldGFUYWdzKG9nVGl0bGU6IHN0cmluZywgb2dEZXNjcmlwdGlvbjogc3RyaW5nLCBvZ1VybDogc3RyaW5nLCBvZ0ltZzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp0eXBlJywgY29udGVudDogJ3dlYnNpdGUnIH0pO1xuICAgICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dGl0bGUnLCBjb250ZW50OiBvZ1RpdGxlIH0pO1xuICAgICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6ZGVzY3JpcHRpb24nLCBjb250ZW50OiBvZ0Rlc2NyaXB0aW9uIH0pO1xuICAgICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dXJsJywgY29udGVudDogb2dVcmwgfSk7XG4gICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzppbWFnZScsIGNvbnRlbnQ6IG9nSW1nIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGC0LXQsyDQutCw0L3QvtC90LjRh9C10YHQutC+0Lkg0YHRgtGA0LDQvdC40YbRiyA8bGluayByZWw9XCJjYW5vbmljYWxcIiBocmVmPVwiLi4uXCIgLz4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsIFVSTCDQutC+0YLQvtGA0YvQuSDQvdC10L7QsdGF0L7QtNC40LzQviDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LIg0LrQsNGH0LXRgdGC0LLQtSDRgdGB0YvQu9C60LguXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRDYW5vbmljYWxMaW5rKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIC8vINCj0LTQsNC70Y/QtdC8INGB0YPRidC10YHRgtCy0YPRjtGJ0LjQuSBsaW5rIGNhbm9uaWNhbC5cbiAgICAgICAgY29uc3QgZXhpc3RpbmdMaW5rID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbD1cImNhbm9uaWNhbFwiXScpO1xuXG4gICAgICAgIGlmIChleGlzdGluZ0xpbms/LnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQoZXhpc3RpbmdMaW5rLnBhcmVudE5vZGUsIGV4aXN0aW5nTGluayk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyDQodC+0LfQtNCw0ZHQvCDQuCDRg9GB0YLQsNC90LDQstC70LjQstCw0LXQvCDQvdC+0LLRi9C5INGC0LXQsy5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICBjb25zdCBsaW5rID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGxpbmssICdyZWwnLCAnY2Fub25pY2FsJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGxpbmssICdocmVmJywgdXJsKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50LmhlYWQsIGxpbmspO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIFNjaGVtYS5vcmcg0L7QsdGK0LXQutGCINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0YSDQlNCw0L3QvdGL0LUgU2NoZW1hLm9yZyDQtNC70Y8g0LLRgdGC0YDQsNC40LLQsNC90LjRjyDQvdCwINGB0YLRgNCw0L3QuNGG0LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRTY2hlbWFPcmdEYXRhPFQgZXh0ZW5kcyBUaGluZz4oZGF0YTogV2l0aENvbnRleHQ8VD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcHJvamVjdEF0dHJpYnV0ZU5hbWUgPSAnZGF0YS1zYy1zY2hlbWEtb3JnJztcbiAgICAgICAgLy8g0KPQtNCw0LvRj9C10Lwg0LLRgdC1INGA0LDQvdC10LUg0YHQvtC30LTQsNC90L3Ri9C1INGB0LrRgNC40L/RgtGLIFNjaGVtYS5vcmcgKNC/0L4g0YPQvdC40LrQsNC70YzQvdC+0LzRgyDQsNGC0YDQuNCx0YPRgtGDINC/0YDQvtC10LrRgtCwKS5cbiAgICAgICAgY29uc3QgZXhpc3RpbmdTY3JpcHRzID0gdGhpcy5kb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3JBbGwoYHNjcmlwdFske3Byb2plY3RBdHRyaWJ1dGVOYW1lfV1gKTtcbiAgICAgICAgZXhpc3RpbmdTY3JpcHRzLmZvckVhY2goKGV4aXN0aW5nU2NyaXB0KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXhpc3RpbmdTY3JpcHQucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQoZXhpc3RpbmdTY3JpcHQucGFyZW50Tm9kZSwgZXhpc3RpbmdTY3JpcHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHNjcmlwdCwgJ3R5cGUnLCAnYXBwbGljYXRpb24vbGQranNvbicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzY3JpcHQsIHByb2plY3RBdHRyaWJ1dGVOYW1lLCAnJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoc2NyaXB0LCB0aGlzLmRvY3VtZW50LmNyZWF0ZVRleHROb2RlKEpTT04uc3RyaW5naWZ5KGRhdGEpKSk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudC5oZWFkLCBzY3JpcHQpO1xuICAgIH1cbn1cbiJdfQ==
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Nlby9zZXJ2aWNlcy9zYy1zZW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTWpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUlqRTs7R0FFRztBQUlILE1BQU0sT0FBTyxZQUFZO0lBSHpCO1FBSUk7O1dBRUc7UUFDYyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV2RDs7V0FFRztRQUNjLGVBQVUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUUzRDs7V0FFRztRQUNjLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRTNFOztX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USxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQTdQUSxZQUFZO21IQUFaLFlBQVksY0FGVCxNQUFNOzs0RkFFVCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGdldCwgaXNOaWwsIGlzU3RyaW5nIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFRoaW5nLCBXaXRoQ29udGV4dCB9IGZyb20gJ3NjaGVtYS1kdHMnO1xuXG5pbXBvcnQgeyBTY0lDYXRhbG9nSXRlbSB9IGZyb20gJy4uLy4uL2NhdGFsb2cvaW50ZXJmYWNlcy9zYy1pLWNhdGFsb2ctaXRlbSc7XG5pbXBvcnQgeyBTY0lDYXRlZ29yeSB9IGZyb20gJy4uLy4uL2NhdGFsb2cvaW50ZXJmYWNlcy9zYy1pLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjSVZpcnR1YWxDYXRlZ29yeSB9IGZyb20gJy4uLy4uL2NhdGFsb2cvaW50ZXJmYWNlcy9zYy1pLXZpcnR1YWwtY2F0ZWdvcnknO1xuaW1wb3J0IHsgU2NJZE9yU2x1Z1BpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9zYy1pZC1vci1zbHVnLnBpcGUnO1xuaW1wb3J0IHsgU2NNZWRpYUltYWdlVHJhbnNmb3JtZXJQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvc2MtbWVkaWEtaW1hZ2UtdHJhbnNmb3JtZXIucGlwZSc7XG5pbXBvcnQgeyBTQ19DT01QQU5ZX0lORk8gfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtY29tcGFueS1pbmZvJztcbmltcG9ydCB7IFNDX0NBVEFMT0dfSVRFTV9QQUdFX01FVEEsIFNDX0RFRkFVTFRfUEFHRV9NRVRBIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLWRlZmF1bHQtcGFnZS1tZXRhJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBTY2hlbWFPcmdGYWN0b3J5IH0gZnJvbSAnLi4vY2xhc3Nlcy9zY2hlbWEtb3JnLWZhY3RvcnknO1xuaW1wb3J0IHsgU2NJU2VvIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zYy1pLXNlbyc7XG5pbXBvcnQgeyBSb2JvdHNUYWdUeXBlIH0gZnJvbSAnLi4vdHlwZXMvcm9ib3RzLXRhZy10eXBlJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0YPQv9GA0LDQstC70LXQvdC40Y8gU0VPLdC/0LDRgNCw0LzQtdGC0YDQsNC80LguXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjU2VvU2VydmljZSB7XG4gICAgLyoqXG4gICAgICog0JTQsNC90L3Ri9C1INC+INC60L7QvNC/0LDQvdC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wYW55SW5mbyA9IGluamVjdChTQ19DT01QQU5ZX0lORk8pO1xuXG4gICAgLyoqXG4gICAgICog0JzQtdGC0LDQtNCw0L3QvdGL0LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2VvID0gaW5qZWN0KFNDX0RFRkFVTFRfUEFHRV9NRVRBKTtcblxuICAgIC8qKlxuICAgICAqINCc0LXRgtCw0LTQsNC90L3Ri9C1INGB0YLRgNCw0L3QuNGG0Ysg0LrQsNGC0LDQu9C+0LPQsCDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhdGFsb2dJdGVtRGVmYXVsdFNlbyA9IGluamVjdChTQ19DQVRBTE9HX0lURU1fUEFHRV9NRVRBKTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L/RgNC40LvQvtC20LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmxzID0gaW5qZWN0KFNDX1VSTFMpO1xuXG4gICAgLyoqXG4gICAgICog0J/QsNC50L8sINCy0L7Qt9Cy0YDQsNGJ0LDRjtGJ0LjQuSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lgg0YHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1Zykg0LjRgdGF0L7QtNGPINC40Lcg0L3QsNGB0YLRgNC+0LXQuiDQvtC60YDRg9C20LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBpZE9yU2x1Z1BpcGU6IFNjSWRPclNsdWdQaXBlID0gaW5qZWN0KFNjSWRPclNsdWdQaXBlKTtcblxuICAgIC8qKlxuICAgICAqINCf0LDQudC/INC00LvRjyDRhNC+0YDQvNC40YDQvtCy0LDQvdC40Y8g0L/QvtC70L3QvtCz0L4gVVJJINC40LfQvtCx0YDQsNC20LXQvdC40Y8g0L3QsCBtZWRpYSDRgdC10YDQstC10YDQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lZGlhSW1hZ2VUcmFuc2Zvcm1lclBpcGUgPSBpbmplY3QoU2NNZWRpYUltYWdlVHJhbnNmb3JtZXJQaXBlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRg9GB0YLQsNC90L7QstC60Lgg0LzQtdGC0LDQtNCw0L3QvdGL0YUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG1ldGFTZXJ2aWNlID0gaW5qZWN0KE1ldGEpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC80LDRgNGI0YDRg9GC0LjQt9Cw0YbQuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0YPQv9GA0LDQstC70LXQvdC40Y8g0LfQsNCz0L7Qu9C+0LLQutC+0Lwg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlU2VydmljZSA9IGluamVjdChUaXRsZSk7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YrQtdC60YIge0BsaW5rIERvY3VtZW50fSwg0L/RgNC10LTQvtGB0YLQsNCy0LvRj9GO0YnQuNC5INC00L7RgdGC0YPQvyDQuiBET00g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIC8qKlxuICAgICAqINCk0LDQsdGA0LjQutCwINC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINC00LDQvdC90YvRhSBTY2hlbWEub3JnLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hT3JnRmFjdG9yeSA9IGluamVjdChTY2hlbWFPcmdGYWN0b3J5KTtcblxuICAgIC8qKlxuICAgICAqINCk0LDQsdGA0LjQutCwINC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINGN0LrQt9C10LzQv9C70Y/RgNC+0LIge0BsaW5rIFJlbmRlcmVyMn0uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlckZhY3RvcnkgPSBpbmplY3QoUmVuZGVyZXJGYWN0b3J5Mik7XG5cbiAgICAvKipcbiAgICAgKiDQrdC60LfQtdC80L/Qu9GP0YAge0BsaW5rIFJlbmRlcmVyMn0g0LTQu9GPINCx0LXQt9C+0L/QsNGB0L3QvtC5INGA0LDQsdC+0YLRiyDRgSBET00uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBzZW8g0L/QsNGA0LDQvNC10YLRgNGLINC90LAg0L7RgdC90L7QstC1INGD0LrQsNC30LDQvdC90L7Qs9C+INGA0LXRgdGD0YDRgdCwLiDQldGB0LvQuCDQutCw0LrQvtCz0L4t0YLQviDRgtC10LPQsCDQvdC10YIsINCx0YPQtNC10YIg0YPRgdGC0LDQvdC+0LLQu9C10L3QviDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlc291cmNlINCg0LXRgdGD0YDRgSDQvdCwINC+0YHQvdC+0LLQtSDQutC+0YLQvtGA0L7Qs9C+INC90LXQvtCx0YXQvtC00LjQvNC+INGD0YHRgtCw0L3QvtCy0LjRgtGMINC80LXRgtCwLdGC0LXQs9C4LlxuICAgICAqIEBwYXJhbSBpbWcg0JjQt9C+0LHRgNCw0LbQtdC90LjQtS4g0JXRgdC70Lgg0L3QtSDQv9GA0LjRiNC70L4sINGC0L4g0LHRg9C00LXRgiDRg9GB0YLQsNC90L7QstC70LXQvdC+INC30L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4gKGxvZ28g0LrQvtC80L/QsNC90LjQuCkuXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzLdGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuINCX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4gKFsnaW5kZXgnLCAnZm9sbG93J10pLlxuICAgICAqIEBwYXJhbSBzY2hlbWFPcmdEYXRhINCU0LDQvdC90YvQtSBTY2hlbWEub3JnINC00LvRjyDQstGB0YLRgNCw0LjQstCw0L3QuNGPINC90LAg0YHRgtGA0LDQvdC40YbQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RnJvbVJlc291cmNlKHJlc291cmNlPzogU2NJU2VvLCBpbWc/OiBzdHJpbmcsIHJvYm90cz86IFJvYm90c1RhZ1R5cGVbXSwgc2NoZW1hT3JnRGF0YT86IFdpdGhDb250ZXh0PFRoaW5nPik6IHZvaWQge1xuICAgICAgICBjb25zdCB1cGRhdGVkUmVzb3VyY2UgPSB7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy5yZXBsYWNlVGVtcGxhdGVzKHJlc291cmNlPy50aXRsZSA/PyB0aGlzLmRlZmF1bHRTZW8udGl0bGUsIHJlc291cmNlPy5pbnN0YW5jZURhdGEgPz8ge30pLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMucmVwbGFjZVRlbXBsYXRlcyhyZXNvdXJjZT8uZGVzY3JpcHRpb24gPz8gdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLCByZXNvdXJjZT8uaW5zdGFuY2VEYXRhID8/IHt9KSxcbiAgICAgICAgICAgIGtleXdvcmRzOiByZXNvdXJjZT8ua2V5d29yZHMgPz8gdGhpcy5kZWZhdWx0U2VvLmtleXdvcmRzLFxuICAgICAgICAgICAgbWV0YTogcmVzb3VyY2U/Lm1ldGEgPz8gW10sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJscy5zaXRlVXJsfSR7dGhpcy5yb3V0ZXIudXJsfWA7XG5cbiAgICAgICAgdGhpcy5zZXRNZXRhVGFncyh1cGRhdGVkUmVzb3VyY2UudGl0bGUsIHVwZGF0ZWRSZXNvdXJjZS5kZXNjcmlwdGlvbiwgdXBkYXRlZFJlc291cmNlLmtleXdvcmRzLCB1cGRhdGVkUmVzb3VyY2UubWV0YSwgcm9ib3RzID8/IFsnaW5kZXgnLCAnZm9sbG93J10pO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFUYWdzKHVwZGF0ZWRSZXNvdXJjZS50aXRsZSwgdXBkYXRlZFJlc291cmNlLmRlc2NyaXB0aW9uLCB1cmwsIGltZyA/PyB0aGlzLnVybHMubG9nb1VybCk7XG4gICAgICAgIHRoaXMuc2V0Q2Fub25pY2FsTGluayh1cmwpO1xuXG4gICAgICAgIC8vINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdC8IFNjaGVtYS5vcmcg0L/QsNGA0LDQvNC10YLRgNGLLlxuICAgICAgICB0aGlzLnNldFNjaGVtYU9yZ0RhdGEodGhpcy5zY2hlbWFPcmdGYWN0b3J5Lm1lcmdlKFt0aGlzLnNjaGVtYU9yZ0ZhY3RvcnkuZ2VuZXJhdGVGb3JPcmdhbml6YXRpb24oKSwgLi4uKHNjaGVtYU9yZ0RhdGEgPyBbc2NoZW1hT3JnRGF0YV0gOiBbXSldKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgc2VvINC/0LDRgNCw0LzQtdGC0YDRiyDRgdC+INC30L3QsNGH0LXQvdC40LXQvCDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSDQl9Cw0LPQvtC70L7QstC+0Log0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy4g0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiAoWydpbmRleCcsICdmb2xsb3cnXSkuXG4gICAgICogQHBhcmFtIHNjaGVtYU9yZ0RhdGEg0JTQsNC90L3Ri9C1IFNjaGVtYS5vcmcg0LTQu9GPINCy0YHRgtGA0LDQuNCy0LDQvdC40Y8g0L3QsCDRgdGC0YDQsNC90LjRhtC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRCeURlZmF1bHQodGl0bGU/OiBzdHJpbmcsIHJvYm90cz86IFJvYm90c1RhZ1R5cGVbXSwgc2NoZW1hT3JnRGF0YT86IFdpdGhDb250ZXh0PFRoaW5nPik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEZyb21SZXNvdXJjZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogYCR7dGl0bGUgPz8gdGhpcy5kZWZhdWx0U2VvLnRpdGxlfSAtICR7dGhpcy5jb21wYW55SW5mby5uYW1lfWAsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRpdGxlID8gYCR7dGl0bGV9LCAke3RoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbn1gIDogdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMudXJscy5sb2dvVXJsLFxuICAgICAgICAgICAgcm9ib3RzID8/IFsnaW5kZXgnLCAnZm9sbG93J10sXG4gICAgICAgICAgICBzY2hlbWFPcmdEYXRhXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgc2VvINC/0LDRgNCw0LzQtdGC0YDRiyDRgdC+INC30L3QsNGH0LXQvdC40LXQvCDQv9C+INGD0LzQvtC70YfQsNC90LjRji4g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LfQvdCw0YfQtdC90LjQtSBcItC90LUg0LjQvdC00LXQutGB0LjRgNC+0LLQsNGC0YxcIiDQtNC70Y8g0L/QvtC40YHQutC+0LLRi9GFINGA0L7QsdC+0YLQvtCyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRCeURlZmF1bHRBc05vSW5kZXhlZCh0aXRsZT86IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEJ5RGVmYXVsdCh0aXRsZSwgWydub2luZGV4JywgJ25vZm9sbG93JywgJ25vYXJjaGl2ZSddKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBzZW8t0L/QsNGA0LDQvNC10YLRgNGLINC00LvRjyDRg9C60LDQt9Cw0L3QvdC+0LPQviDRjdC70LXQvNC10L3RgtCwINC60LDRgtCw0LvQvtCz0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbSDQlNCw0L3QvdGL0LUg0L7QsSDRjdC70LXQvNC10L3RgtC1INC60LDRgtCw0LvQvtCz0LAuXG4gICAgICogQHBhcmFtIHVybFBhdGggVXJsINC/0YPRgtGMINC6INGN0LvQtdC80LXQvdGC0YMg0LrQsNGC0LDQu9C+0LPQsC4g0JIg0L/Rg9GC0Lgg0LTQvtC70LbQtdC9INC/0YDQuNGB0YPRgtGB0YLQstC+0LLQsNGC0Ywg0YjQsNCx0LvQvtC9ICc6aWQnLCDQvtCx0L7Qt9C90LDRh9Cw0Y7RidC40Lkg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0Y3Qu9C10LzQtdC90YLQsCDQutCw0YLQsNC70L7Qs9CwINC00LvRjyDQv9C+0LTRgdGC0LDQvdC+0LLQutC4LlxuICAgICAqIEBwYXJhbSBzY2hlbWFPcmdEYXRhINCU0LDQvdC90YvQtSBTY2hlbWEub3JnINGN0LvQtdC80LXQvdGC0LAg0LrQsNGC0LDQu9C+0LPQsFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRGb3JDYXRhbG9nSXRlbShpdGVtOiBTY0lDYXRhbG9nSXRlbTxTY0lDYXRlZ29yeSB8IFNjSVZpcnR1YWxDYXRlZ29yeT4sIHVybFBhdGg6IHN0cmluZywgc2NoZW1hT3JnRGF0YT86IFdpdGhDb250ZXh0PFRoaW5nPik6IHZvaWQge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybHMuc2l0ZVVybH0ke3VybFBhdGgucmVwbGFjZSgnOmlkJywgdGhpcy5pZE9yU2x1Z1BpcGUudHJhbnNmb3JtKGl0ZW0pLnRvU3RyaW5nKCkpfWA7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5yZXBsYWNlVGVtcGxhdGVzKGl0ZW0uc2VvPy50aXRsZSA/PyB0aGlzLmNhdGFsb2dJdGVtRGVmYXVsdFNlby50aXRsZSA/PyBgJHtpdGVtLm5hbWV9IC0g0JrRg9C/0LjRgtGMINCyICR7dGhpcy5jb21wYW55SW5mby5uYW1lfWAsIGl0ZW0pO1xuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMucmVwbGFjZVRlbXBsYXRlcyhcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gICAgICAgICAgICBpdGVtLnNlbz8uZGVzY3JpcHRpb24gPz8gdGhpcy5jYXRhbG9nSXRlbURlZmF1bHRTZW8uZGVzY3JpcHRpb24gPz8gYCR7aXRlbS5uYW1lfSAtINCa0YPQv9C40YLRjCDQv9C+INCy0YvQs9C+0LTQvdGL0Lwg0YbQtdC90LDQvCDQsiAke3RoaXMuY29tcGFueUluZm8ubmFtZX1gLFxuICAgICAgICAgICAgaXRlbVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBrZXl3b3JkcyA9IGl0ZW0uc2VvPy5rZXl3b3JkcyA/PyBgJHtpdGVtLm5hbWV9LCAke3RoaXMuY2F0YWxvZ0l0ZW1EZWZhdWx0U2VvLmtleXdvcmRzfWA7XG4gICAgICAgIGNvbnN0IG1ldGEgPSBpdGVtLnNlbz8ubWV0YSA/PyBbXTtcblxuICAgICAgICAvLyDQo9GB0YLQsNC90LDQstC70LjQstCw0LXQvCDRgdGC0LDQvdC00LDRgNGC0L3Ri9C1IHNlby3Qv9Cw0YDQsNC80LXRgtGA0YssINCyINGC0L7QvCDRh9C40YHQu9C1INC4INC60LDQvdC+0L3QuNGH0LXRgdC60YPRjiDRgdGB0YvQu9C60YMuXG4gICAgICAgIHRoaXMuc2V0TWV0YVRhZ3ModGl0bGUsIGRlc2NyaXB0aW9uLCBrZXl3b3JkcywgbWV0YSwgWydpbmRleCcsICdmb2xsb3cnXSk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YVRhZ3ModGl0bGUsIGRlc2NyaXB0aW9uLCB1cmwsIHRoaXMubWVkaWFJbWFnZVRyYW5zZm9ybWVyUGlwZS50cmFuc2Zvcm0oaXRlbS5pbWFnZSwgdHJ1ZSkpO1xuICAgICAgICB0aGlzLnNldENhbm9uaWNhbExpbmsodXJsKTtcblxuICAgICAgICAvLyDQo9GB0YLQsNC90LDQstC70LjQstCw0LXQvCBTY2hlbWEub3JnINC/0LDRgNCw0LzQtdGC0YDRiy5cbiAgICAgICAgdGhpcy5zZXRTY2hlbWFPcmdEYXRhKHRoaXMuc2NoZW1hT3JnRmFjdG9yeS5tZXJnZShbdGhpcy5zY2hlbWFPcmdGYWN0b3J5LmdlbmVyYXRlRm9yT3JnYW5pemF0aW9uKCksIC4uLihzY2hlbWFPcmdEYXRhID8gW3NjaGVtYU9yZ0RhdGFdIDogW10pXSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCX0LDQvNC10L3Rj9C10YIg0YjQsNCx0LvQvtC90Ysg0LIg0YLQtdC60YHRgtC1INC90LAg0LfQvdCw0YfQtdC90LjRjyDQuNC3INC+0LHRitC10LrRgtCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRleHQg0KLQtdC60YHRgiDRgSDRiNCw0LHQu9C+0L3QsNC80LguXG4gICAgICogQHBhcmFtIGluc3RhbmNlRGF0YSDQntCx0YrQtdC60YIg0YEg0LTQsNC90L3Ri9C80Lgg0LTQu9GPINC30LDQvNC10L3Riy5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICAgIHByaXZhdGUgcmVwbGFjZVRlbXBsYXRlcyh0ZXh0OiBzdHJpbmcsIGluc3RhbmNlRGF0YTogb2JqZWN0KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRleHQucmVwbGFjZUFsbCgvXFwkXFx7KFtefV0rKVxcfS9nLCAoX3RlbXBsYXRlOiBzdHJpbmcsIGZpZWxkUGF0aFZhcmlhbnRzOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWU6IHVua25vd24gPSBmaWVsZFBhdGhWYXJpYW50c1xuICAgICAgICAgICAgICAgIC5zcGxpdCgnfCcpXG4gICAgICAgICAgICAgICAgLm1hcCgoZmllbGRQYXRoKSA9PiBmaWVsZFBhdGgudHJpbSgpKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAgICAgICAubWFwKChmaWVsZFBhdGgpID0+IGdldChpbnN0YW5jZURhdGEsIGZpZWxkUGF0aCkgYXMgdW5rbm93bilcbiAgICAgICAgICAgICAgICAuZmluZCgoZmllbGRWYWx1ZSkgPT4gIWlzTmlsKGZpZWxkVmFsdWUpKTtcblxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvbm8tbmVzdGVkLWNvbmRpdGlvbmFsXG4gICAgICAgICAgICByZXR1cm4gaXNOaWwodmFsdWUpID8gJycgOiBpc1N0cmluZyh2YWx1ZSkgPyB2YWx1ZSA6IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0YHQtSBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0YsuINCV0YHQu9C4INC60LDQutC+0Lkt0LvQuNCx0L4g0LjQtyDQv9Cw0YDQsNC80LXRgtGA0L7QsiDQvdC1INGD0LrQsNC30LDQvSwg0LTQu9GPINC90LXQs9C+INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGC0YHRjyDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDQntC/0LjRgdCw0L3QuNC1INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGtleXdvcmRzINCa0LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBtZXRhINCc0LDRgdGB0LjQsiDQtNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Ri9GFINC30L3QsNGH0LXQvdC40Lkg0LzQtdGC0LDRgtC10LPQvtCyLlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0TWV0YVRhZ3MoXG4gICAgICAgIHRpdGxlOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8udGl0bGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb24sXG4gICAgICAgIGtleXdvcmRzOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8ua2V5d29yZHMsXG4gICAgICAgIG1ldGE6IFNjSVNlb1snbWV0YSddID0gW10sXG4gICAgICAgIHJvYm90czogUm9ib3RzVGFnVHlwZVtdID0gWydpbmRleCcsICdmb2xsb3cnXVxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZSh0aXRsZSk7XG5cbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50OiBkZXNjcmlwdGlvbiB9KTtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiAna2V5d29yZHMnLCBjb250ZW50OiBrZXl3b3JkcyB9KTtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiAncm9ib3RzJywgY29udGVudDogcm9ib3RzLmpvaW4oJywgJykgfSk7XG5cbiAgICAgICAgbWV0YS5mb3JFYWNoKCh0YWcpID0+IHtcbiAgICAgICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgbmFtZTogdGFnLm5hbWUsIGNvbnRlbnQ6IHRhZy5jb250ZW50IH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBPcGVuIEdyYXBoIG1ldGEt0YLQtdCz0LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2dUaXRsZSDQl9Cw0LPQvtC70L7QstC+0LouXG4gICAgICogQHBhcmFtIG9nRGVzY3JpcHRpb24g0J7Qv9C40YHQsNC90LjQtS5cbiAgICAgKiBAcGFyYW0gb2dVcmwgVXJsLlxuICAgICAqIEBwYXJhbSBvZ0ltZyDQodGB0YvQu9C60LAg0L3QsCDQuNC30L7QsdGA0LDQttC10L3QuNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0T3BlbkdyYXBoTWV0YVRhZ3Mob2dUaXRsZTogc3RyaW5nLCBvZ0Rlc2NyaXB0aW9uOiBzdHJpbmcsIG9nVXJsOiBzdHJpbmcsIG9nSW1nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnR5cGUnLCBjb250ZW50OiAnd2Vic2l0ZScgfSk7XG4gICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp0aXRsZScsIGNvbnRlbnQ6IG9nVGl0bGUgfSk7XG4gICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzpkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IG9nRGVzY3JpcHRpb24gfSk7XG4gICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp1cmwnLCBjb250ZW50OiBvZ1VybCB9KTtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmltYWdlJywgY29udGVudDogb2dJbWcgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YLQtdCzINC60LDQvdC+0L3QuNGH0LXRgdC60L7QuSDRgdGC0YDQsNC90LjRhtGLIDxsaW5rIHJlbD1cImNhbm9uaWNhbFwiIGhyZWY9XCIuLi5cIiAvPi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1cmwgVVJMINC60L7RgtC+0YDRi9C5INC90LXQvtCx0YXQvtC00LjQvNC+INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQsiDQutCw0YfQtdGB0YLQstC1INGB0YHRi9C70LrQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldENhbm9uaWNhbExpbmsodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8g0KPQtNCw0LvRj9C10Lwg0YHRg9GJ0LXRgdGC0LLRg9GO0YnQuNC5IGxpbmsgY2Fub25pY2FsLlxuICAgICAgICBjb25zdCBleGlzdGluZ0xpbmsgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2xpbmtbcmVsPVwiY2Fub25pY2FsXCJdJyk7XG5cbiAgICAgICAgaWYgKGV4aXN0aW5nTGluaz8ucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChleGlzdGluZ0xpbmsucGFyZW50Tm9kZSwgZXhpc3RpbmdMaW5rKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vINCh0L7Qt9C00LDRkdC8INC4INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdC8INC90L7QstGL0Lkg0YLQtdCzLlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgIGNvbnN0IGxpbmsgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUobGluaywgJ3JlbCcsICdjYW5vbmljYWwnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUobGluaywgJ2hyZWYnLCB1cmwpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuaGVhZCwgbGluayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgU2NoZW1hLm9yZyDQvtCx0YrQtdC60YIg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhINCU0LDQvdC90YvQtSBTY2hlbWEub3JnINC00LvRjyDQstGB0YLRgNCw0LjQstCw0L3QuNGPINC90LAg0YHRgtGA0LDQvdC40YbQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFNjaGVtYU9yZ0RhdGE8VCBleHRlbmRzIFRoaW5nPihkYXRhOiBXaXRoQ29udGV4dDxUPik6IHZvaWQge1xuICAgICAgICBjb25zdCBwcm9qZWN0QXR0cmlidXRlTmFtZSA9ICdkYXRhLXNjLXNjaGVtYS1vcmcnO1xuICAgICAgICAvLyDQo9C00LDQu9GP0LXQvCDQstGB0LUg0YDQsNC90LXQtSDRgdC+0LfQtNCw0L3QvdGL0LUg0YHQutGA0LjQv9GC0YsgU2NoZW1hLm9yZyAo0L/QviDRg9C90LjQutCw0LvRjNC90L7QvNGDINCw0YLRgNC40LHRg9GC0YMg0L/RgNC+0LXQutGC0LApLlxuICAgICAgICBjb25zdCBleGlzdGluZ1NjcmlwdHMgPSB0aGlzLmRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvckFsbChgc2NyaXB0WyR7cHJvamVjdEF0dHJpYnV0ZU5hbWV9XWApO1xuICAgICAgICBleGlzdGluZ1NjcmlwdHMuZm9yRWFjaCgoZXhpc3RpbmdTY3JpcHQpID0+IHtcbiAgICAgICAgICAgIGlmIChleGlzdGluZ1NjcmlwdC5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChleGlzdGluZ1NjcmlwdC5wYXJlbnROb2RlLCBleGlzdGluZ1NjcmlwdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc2NyaXB0LCAndHlwZScsICdhcHBsaWNhdGlvbi9sZCtqc29uJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHNjcmlwdCwgcHJvamVjdEF0dHJpYnV0ZU5hbWUsICcnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChzY3JpcHQsIHRoaXMuZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoSlNPTi5zdHJpbmdpZnkoZGF0YSkpKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50LmhlYWQsIHNjcmlwdCk7XG4gICAgfVxufVxuIl19
@@ -50,12 +50,14 @@ const ScLoadingRequestState = { status: ScRequestStateStatusEnum.Loading };
50
50
  const ScSuccessRequestState = (requestData) => ({ status: ScRequestStateStatusEnum.Success, data: requestData });
51
51
  /**
52
52
  * Состояние ошибки.
53
+ *
54
+ * @param error Причина ошибки (например, HttpErrorResponse).
53
55
  */
54
- const ScErrorRequestState = { status: ScRequestStateStatusEnum.Error };
56
+ const ScErrorRequestState = (error) => ({ status: ScRequestStateStatusEnum.Error, error });
55
57
  /**
56
58
  * Преобразует поток данных в поток с состояниями запроса.
57
59
  */
58
- const mapToRequestState = () => (source$) => source$.pipe(map((requestData) => ScSuccessRequestState(requestData)), startWith(ScLoadingRequestState), catchError(() => of(ScErrorRequestState)));
60
+ const mapToRequestState = () => (source$) => source$.pipe(map((requestData) => ScSuccessRequestState(requestData)), startWith(ScLoadingRequestState), catchError((error) => of(ScErrorRequestState(error))));
59
61
  /**
60
62
  * Извлекает данные из потока состояний запроса или возвращает null.
61
63
  */
@@ -3649,6 +3651,52 @@ class ScCatalogRedirectService {
3649
3651
  redirectToProductParent$(productIdOrSlug) {
3650
3652
  return this.redirectToParentCategory$(this.catalogService.getProductParentCategory$(productIdOrSlug));
3651
3653
  }
3654
+ /**
3655
+ * Оператор устойчивой обработки недоступной (HTTP-ошибка) категории в потоке данных: при 404 выполняет редирект
3656
+ * на родительскую категорию, при недоступном родителе или иной ошибке сообщает код через {@link onErrorCode}.
3657
+ * Ошибку не пробрасывает (завершает поток {@link EMPTY}), поэтому поток данных не завершается ошибкой.
3658
+ *
3659
+ * @param categoryIdOrSlug Идентификатор или slug недоступной категории.
3660
+ * @param onErrorCode Колбэк установки кода ошибки (например, для отображения страницы ошибки).
3661
+ */
3662
+ handleUnavailableCategory$(categoryIdOrSlug, onErrorCode) {
3663
+ return this.handleUnavailable$(() => this.redirectToCategoryParent$(categoryIdOrSlug), onErrorCode);
3664
+ }
3665
+ /**
3666
+ * Оператор устойчивой обработки недоступного (HTTP-ошибка) товара в потоке данных: при 404 выполняет редирект
3667
+ * на родительскую категорию товара, при недоступном родителе или иной ошибке сообщает код через {@link onErrorCode}.
3668
+ * Ошибку не пробрасывает (завершает поток {@link EMPTY}), поэтому поток данных не завершается ошибкой.
3669
+ *
3670
+ * @param productIdOrSlug Идентификатор или slug недоступного товара.
3671
+ * @param onErrorCode Колбэк установки кода ошибки (например, для отображения страницы ошибки).
3672
+ */
3673
+ handleUnavailableProduct$(productIdOrSlug, onErrorCode) {
3674
+ return this.handleUnavailable$(() => this.redirectToProductParent$(productIdOrSlug), onErrorCode);
3675
+ }
3676
+ /**
3677
+ * Базовый оператор устойчивой обработки недоступной сущности: при 404 — редирект на родителя (через {@link redirectToParent$}),
3678
+ * при недоступном родителе или ином {@link HttpErrorResponse} — {@link onErrorCode} с кодом ответа; всегда {@link EMPTY}.
3679
+ *
3680
+ * @param redirectToParent$ Фабрика потока редиректа на родительскую категорию.
3681
+ * @param onErrorCode Колбэк установки кода ошибки.
3682
+ */
3683
+ // eslint-disable-next-line class-methods-use-this
3684
+ handleUnavailable$(redirectToParent$, onErrorCode) {
3685
+ return (source$) => source$.pipe(catchError$1((error) => {
3686
+ if (error instanceof HttpErrorResponse && error.status === 404) {
3687
+ return redirectToParent$().pipe(catchError$1((redirectError) => {
3688
+ if (redirectError instanceof HttpErrorResponse) {
3689
+ onErrorCode(redirectError.status);
3690
+ }
3691
+ return EMPTY;
3692
+ }));
3693
+ }
3694
+ if (error instanceof HttpErrorResponse) {
3695
+ onErrorCode(error.status);
3696
+ }
3697
+ return EMPTY;
3698
+ }));
3699
+ }
3652
3700
  /**
3653
3701
  * Выполняет редирект на полученную родительскую категорию.
3654
3702
  *
@@ -4550,34 +4598,54 @@ const scGetCurrentRoute = (route) => {
4550
4598
  return currentRoute;
4551
4599
  };
4552
4600
 
4601
+ /**
4602
+ * Токен состояния запроса данных о категории (загрузка / успех / ошибка).
4603
+ */
4604
+ const SC_CATEGORY_STATE = new InjectionToken('A stream with current category request state');
4553
4605
  /**
4554
4606
  * Токен потока данных о категории.
4555
4607
  */
4556
4608
  const SC_CATEGORY_INFO = new InjectionToken('A stream with current category information');
4557
4609
  /**
4558
- * Фабрика создания потока данных о категории.
4610
+ * Фабрика создания потока состояния запроса данных о категории.
4611
+ *
4612
+ * При недоступной (HTTP 404) категории выполняет редирект на родительскую категорию; если родитель не найден
4613
+ * или ошибка иная — эмитит состояние ошибки (по нему компонент показывает страницу ошибки).
4559
4614
  *
4560
4615
  * @param router Сервис для работы с маршрутом.
4561
4616
  * @param route Маршрут.
4562
4617
  * @param catalogService Сервис для работы с каталогом.
4618
+ * @param catalogRedirectService Сервис редиректа на родительскую категорию.
4563
4619
  */
4564
- function categoryFactory(router, route, catalogService) {
4620
+ function categoryStateFactory(router, route, catalogService, catalogRedirectService) {
4565
4621
  return router.events.pipe(filter((event) => event instanceof NavigationEnd)).pipe(startWith$1(null), switchMap(() => {
4566
4622
  const categoryIdOrSlug = scGetCurrentRoute(route).snapshot.paramMap.get('categoryIdOrSlug');
4567
- if (categoryIdOrSlug) {
4568
- return catalogService.getCategoryCached$(categoryIdOrSlug);
4623
+ if (!categoryIdOrSlug) {
4624
+ return of(ScSuccessRequestState(null));
4569
4625
  }
4570
- return of(null);
4626
+ return catalogService.getCategoryCached$(categoryIdOrSlug).pipe(map$1((category) => ScSuccessRequestState(category)), startWith$1(ScLoadingRequestState), catchError$1((error) => {
4627
+ if (error instanceof HttpErrorResponse && error.status === 404) {
4628
+ return catalogRedirectService
4629
+ .redirectToCategoryParent$(categoryIdOrSlug)
4630
+ .pipe(catchError$1((redirectError) => of(ScErrorRequestState(redirectError))));
4631
+ }
4632
+ return of(ScErrorRequestState(error));
4633
+ }));
4571
4634
  }), shareReplay({ bufferSize: 1, refCount: true }), takeUntilDestroyed());
4572
4635
  }
4573
4636
  /**
4574
- * Провайдеры потока данных о категории.
4637
+ * Провайдеры состояния и потока данных о категории.
4575
4638
  */
4576
4639
  const CATEGORY_PROVIDERS = [
4640
+ {
4641
+ provide: SC_CATEGORY_STATE,
4642
+ deps: [Router, ActivatedRoute, ScCatalogService, ScCatalogRedirectService],
4643
+ useFactory: categoryStateFactory,
4644
+ },
4577
4645
  {
4578
4646
  provide: SC_CATEGORY_INFO,
4579
- deps: [Router, ActivatedRoute, ScCatalogService],
4580
- useFactory: categoryFactory,
4647
+ deps: [SC_CATEGORY_STATE],
4648
+ useFactory: (state$) => state$.pipe(mapRequestStateToDataOrNull()),
4581
4649
  },
4582
4650
  ];
4583
4651
 
@@ -4991,7 +5059,7 @@ class ScRequisitesService {
4991
5059
  /**
4992
5060
  * Создаёт запрос получения списка всех контактов.
4993
5061
  */
4994
- this.contacts$ = inject(SC_USER_INFO).pipe(switchMap(() => this.http.get(`${this.urls.apiUrl}/contacts`)), shareReplay(1));
5062
+ this.contacts$ = inject(SC_USER_INFO).pipe(switchMap(() => this.http.get(`${this.urls.apiUrl}/contacts`).pipe(catchError$1(() => of({ personal: [], socialMedia: [], directions: {} })))), shareReplay({ refCount: true, bufferSize: 1 }));
4995
5063
  /**
4996
5064
  * Создаёт запрос получения списка контактов для решения возникающих вопросов.
4997
5065
  */
@@ -4999,11 +5067,11 @@ class ScRequisitesService {
4999
5067
  /**
5000
5068
  * Создаёт запрос получения списка контактов розничных магазинов.
5001
5069
  */
5002
- this.retail$ = this.contacts$.pipe(map$1((contacts) => contacts.retail), first(), shareReplay(1));
5070
+ this.retail$ = this.contacts$.pipe(map$1((contacts) => contacts.retail), first(), shareReplay({ refCount: true, bufferSize: 1 }));
5003
5071
  /**
5004
5072
  * Создаёт запрос получения списка ссылок на социальные сети и другие каналы коммуникации.
5005
5073
  */
5006
- this.socialMedia$ = this.contacts$.pipe(map$1((contacts) => contacts.socialMedia), first(), shareReplay(1));
5074
+ this.socialMedia$ = this.contacts$.pipe(map$1((contacts) => contacts.socialMedia), first(), shareReplay({ refCount: true, bufferSize: 1 }));
5007
5075
  /**
5008
5076
  * Создаёт запрос получения списка контактов менеджеров по направлениям продаж.
5009
5077
  */
@@ -5014,11 +5082,11 @@ class ScRequisitesService {
5014
5082
  this.mapManagers(Number.parseFloat(key), manager);
5015
5083
  });
5016
5084
  }
5017
- }), first(), shareReplay(1));
5085
+ }), first(), shareReplay({ refCount: true, bufferSize: 1 }));
5018
5086
  /**
5019
5087
  * Создаёт запрос получения списка реквизитов компании.
5020
5088
  */
5021
- this.requisites$ = this.http.get(`${this.urls.apiUrl}/requisites`).pipe(shareReplay(1));
5089
+ this.requisites$ = this.http.get(`${this.urls.apiUrl}/requisites`).pipe(catchError$1(() => EMPTY), shareReplay({ refCount: true, bufferSize: 1 }));
5022
5090
  }
5023
5091
  /**
5024
5092
  * Устанавливает поисковый запрос в {@link BehaviorSubject}.
@@ -8207,8 +8275,8 @@ class ScSeoService {
8207
8275
  * Устанавливает seo параметры на основе указанного ресурса. Если какого-то тега нет, будет установлено значение по умолчанию.
8208
8276
  *
8209
8277
  * @param resource Ресурс на основе которого необходимо установить мета-теги.
8210
- * @param img Изображение. Если не пришло, то будет установлено значение по умолчанию.
8211
- * @param robots Список robots-тегов для страницы.
8278
+ * @param img Изображение. Если не пришло, то будет установлено значение по умолчанию (logo компании).
8279
+ * @param robots Список robots-тегов для страницы. Значение по умолчанию (['index', 'follow']).
8212
8280
  * @param schemaOrgData Данные Schema.org для встраивания на странице.
8213
8281
  */
8214
8282
  setFromResource(resource, img, robots, schemaOrgData) {
@@ -8229,7 +8297,7 @@ class ScSeoService {
8229
8297
  * Устанавливает seo параметры со значением по умолчанию.
8230
8298
  *
8231
8299
  * @param title Заголовок страницы.
8232
- * @param robots Список robots тегов для страницы.
8300
+ * @param robots Список robots тегов для страницы. Значение по умолчанию (['index', 'follow']).
8233
8301
  * @param schemaOrgData Данные Schema.org для встраивания на странице.
8234
8302
  */
8235
8303
  setByDefault(title, robots, schemaOrgData) {
@@ -8749,5 +8817,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
8749
8817
  * Generated bundle index. Do not edit.
8750
8818
  */
8751
8819
 
8752
- export { CATEGORY_PROVIDERS, EMPTY_CART, IS_BROWSER, IS_RUNNING_ON_TERMINAL, IS_SERVER, RESPONSE, SC_ACCESS_AUTH_TOKEN_STORAGE_KEY, SC_API_KEYS, SC_AUTH_ADD_HEADER_REQUIRED, SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS, SC_AUTH_AS_CLIENT_OPTIONS, SC_CACHE_LIFETIME, SC_CACHE_SETTINGS, SC_CATALOG_ITEM_PAGE_META, SC_CATALOG_ROOT_PAGE_META, SC_CATEGORY_INFO, SC_COMPANY_INFO, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DATE_FORMAT, SC_DEFAULT_PAGE_META, SC_FEEDBACK_API, SC_GUEST_ENDPOINTS_TOKEN, SC_GUEST_PARAMETER_NAME_TOKEN, SC_GUEST_TOKEN_STORAGE_KEY, SC_ID_OR_SLUG_IN_ROUTE, SC_IS_HEADER_REQUIRED, SC_IS_HIDDEN_ERROR_ALERT, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_IS_LOGOUT_REQUEST, SC_IS_REFRESH_REQUIRED, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_MAX_LENGTH_SEARCH_TERM, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CLICK, SC_ORDER_LOADER, SC_ORDER_LOADING, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_UPDATE_INTERVAL, SC_URLS, SC_USER_INFO, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBanner, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartService, ScCatalogFilterService, ScCatalogFormat, ScCatalogItem, ScCatalogRedirectService, ScCatalogService, ScCatalogableItem, ScCategory, ScClientType, ScCodedIdentity, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDateFormatInterceptor, ScDeletableNamedIdentity, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorRequestState, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForms, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScHiddenCatalogableItem, ScIBreadcrumbItem, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScIdentity, ScImage, ScImageHelper, ScLoadingRequestState, ScLocationsService, ScMediaImageTransformerPipe, ScMimeTypes, ScNamedIdentity, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderBase, ScOrderDraft, ScOrderDraftShort, ScOrderDraftType, ScOrderDraftsService, ScOrderItem, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScPrimaryCatalogableItem, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScReference, ScReferenceName, ScReferencesService, ScRequestStateStatusEnum, ScRequisitesService, ScRouteKeys, ScSearchService, ScSeoService, ScSocialType, ScSuccessRequestState, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUpdatableNamedIdentity, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, SchemaOrgFactory, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, loadingPlaceholder, mapRequestStateToDataOrNull, mapToRequestState, runningOnTerminalFactory, scGetCurrentRoute, scOrderIsLoaded, searchTermFactory };
8820
+ export { CATEGORY_PROVIDERS, EMPTY_CART, IS_BROWSER, IS_RUNNING_ON_TERMINAL, IS_SERVER, RESPONSE, SC_ACCESS_AUTH_TOKEN_STORAGE_KEY, SC_API_KEYS, SC_AUTH_ADD_HEADER_REQUIRED, SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS, SC_AUTH_AS_CLIENT_OPTIONS, SC_CACHE_LIFETIME, SC_CACHE_SETTINGS, SC_CATALOG_ITEM_PAGE_META, SC_CATALOG_ROOT_PAGE_META, SC_CATEGORY_INFO, SC_CATEGORY_STATE, SC_COMPANY_INFO, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DATE_FORMAT, SC_DEFAULT_PAGE_META, SC_FEEDBACK_API, SC_GUEST_ENDPOINTS_TOKEN, SC_GUEST_PARAMETER_NAME_TOKEN, SC_GUEST_TOKEN_STORAGE_KEY, SC_ID_OR_SLUG_IN_ROUTE, SC_IS_HEADER_REQUIRED, SC_IS_HIDDEN_ERROR_ALERT, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_IS_LOGOUT_REQUEST, SC_IS_REFRESH_REQUIRED, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_MAX_LENGTH_SEARCH_TERM, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CLICK, SC_ORDER_LOADER, SC_ORDER_LOADING, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_UPDATE_INTERVAL, SC_URLS, SC_USER_INFO, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBanner, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartService, ScCatalogFilterService, ScCatalogFormat, ScCatalogItem, ScCatalogRedirectService, ScCatalogService, ScCatalogableItem, ScCategory, ScClientType, ScCodedIdentity, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDateFormatInterceptor, ScDeletableNamedIdentity, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorRequestState, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForms, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScHiddenCatalogableItem, ScIBreadcrumbItem, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScIdentity, ScImage, ScImageHelper, ScLoadingRequestState, ScLocationsService, ScMediaImageTransformerPipe, ScMimeTypes, ScNamedIdentity, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderBase, ScOrderDraft, ScOrderDraftShort, ScOrderDraftType, ScOrderDraftsService, ScOrderItem, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScPrimaryCatalogableItem, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScReference, ScReferenceName, ScReferencesService, ScRequestStateStatusEnum, ScRequisitesService, ScRouteKeys, ScSearchService, ScSeoService, ScSocialType, ScSuccessRequestState, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUpdatableNamedIdentity, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, SchemaOrgFactory, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, loadingPlaceholder, mapRequestStateToDataOrNull, mapToRequestState, runningOnTerminalFactory, scGetCurrentRoute, scOrderIsLoaded, searchTermFactory };
8753
8821
  //# sourceMappingURL=snabcentr-client-core.mjs.map