@rededor/site-front-end-lib 1.3.74 → 1.3.75
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/README.md +114 -114
- package/esm2022/lib/components/algolia-dropdown/algolia-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/banner/content-banner/content-banner.component.mjs +3 -3
- package/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +3 -3
- package/esm2022/lib/components/cards/card-unidade-planos-convenios/card-unidade-planos-convenios.component.mjs +3 -3
- package/esm2022/lib/components/cards/expandable-card/expandable-card.component.mjs +3 -3
- package/esm2022/lib/components/cards/testimonial-card/testimonial-card.component.mjs +3 -3
- package/esm2022/lib/components/carousels/testimonials-carousel/testimonials-carousel.component.mjs +3 -3
- package/esm2022/lib/components/cta-wrapper/cta-wrapper.component.mjs +3 -3
- package/esm2022/lib/components/error/error-service/error.service.mjs +1 -1
- package/esm2022/lib/components/error/error.component.mjs +3 -3
- package/esm2022/lib/components/filter-letter-and-terms/filter-letter-and-terms.component.mjs +3 -3
- package/esm2022/lib/components/filters/filter-generic/filter-generic.component.mjs +3 -3
- package/esm2022/lib/components/filters/filter-planos-convenios/filter-planos-convenios.component.mjs +3 -3
- package/esm2022/lib/components/footer/footer.component.mjs +3 -3
- package/esm2022/lib/components/footer/helpers/footerTheme.func.mjs +1 -1
- package/esm2022/lib/components/footer/models/FooterTheme.model.mjs +1 -1
- package/esm2022/lib/components/header/components/header-action-menu/header-action-menu.component.mjs +3 -3
- package/esm2022/lib/components/header/components/header-aux-menu/header-aux-menu.component.mjs +3 -3
- package/esm2022/lib/components/header/components/header-aux-menu-container/header-aux-menu-container.component.mjs +3 -3
- package/esm2022/lib/components/header/components/header-aux-menu-item/header-aux-menu-item.component.mjs +3 -3
- package/esm2022/lib/components/header/components/header-aux-menu-item-dropdown/header-aux-menu-item-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/header/components/header-logo/header-logo.component.mjs +3 -3
- package/esm2022/lib/components/header/components/header-main-menu/header-main-menu.component.mjs +3 -3
- package/esm2022/lib/components/header/components/header-main-menu-item/header-main-menu-item.component.mjs +3 -3
- package/esm2022/lib/components/header/components/header-main-menu-item-dropdown/header-main-menu-item-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/header/components/header-side-menu/header-side-menu.component.mjs +3 -3
- package/esm2022/lib/components/header/components/header-side-menu-item/header-side-menu-item.component.mjs +3 -3
- package/esm2022/lib/components/header/header.component.mjs +3 -3
- package/esm2022/lib/components/header/helpers/headerTheme.func.mjs +1 -1
- package/esm2022/lib/components/header/models/HeaderTheme.model.mjs +1 -1
- package/esm2022/lib/components/header/services/header.service.mjs +1 -1
- package/esm2022/lib/components/image/image.component.mjs +3 -3
- package/esm2022/lib/components/index.mjs +1 -1
- package/esm2022/lib/components/input-file/input-file.component.mjs +3 -3
- package/esm2022/lib/components/load-screen/load-screen.component.mjs +3 -3
- package/esm2022/lib/components/overlay/overlay.component.mjs +3 -3
- package/esm2022/lib/components/page-header/page-header.component.mjs +3 -3
- package/esm2022/lib/components/page-template-fullcontent/page-template-fullcontent.component.mjs +3 -3
- package/esm2022/lib/components/page-template-sidebar/page-template-sidebar.component.mjs +3 -3
- package/esm2022/lib/components/pagination/pagination.component.mjs +3 -3
- package/esm2022/lib/components/post-header/post-header.component.mjs +3 -3
- package/esm2022/lib/components/search/search.component.mjs +3 -3
- package/esm2022/lib/components/section-navigation/section-navigation.component.mjs +3 -3
- package/esm2022/lib/components/side-ctas/components/side-ctas-bottom/side-ctas-bottom.component.mjs +3 -3
- package/esm2022/lib/components/side-ctas/components/side-ctas-right-bottom/side-ctas-right-bottom.component.mjs +3 -3
- package/esm2022/lib/components/side-ctas/components/side-ctas-right-middle/side-ctas-right-middle.component.mjs +3 -3
- package/esm2022/lib/components/side-ctas/components/side-ctas-right-top/side-ctas-right-top.component.mjs +3 -3
- package/esm2022/lib/components/side-ctas/models/SideCta.model.mjs +1 -1
- package/esm2022/lib/components/side-ctas/side-ctas.component.mjs +3 -3
- package/esm2022/lib/components/sidebar-navigation/sidebar-navigation.component.mjs +3 -3
- package/esm2022/lib/components/sticky-navigation/sticky-navigation.component.mjs +3 -3
- package/esm2022/lib/components/whatsapp/whatsapp.component.mjs +3 -3
- package/esm2022/lib/directives/index.mjs +1 -1
- package/esm2022/lib/directives/rdsite-click-outside/rdsite-click-outside.directive.mjs +1 -1
- package/esm2022/lib/directives/rdsite-link/rdsite-link.directive.mjs +1 -1
- package/esm2022/lib/directives/rdsite-phone-modal/rdsite-phone-modal.directive.mjs +1 -1
- package/esm2022/lib/enums/EnumDoencaTaxonomy.enum.mjs +1 -1
- package/esm2022/lib/enums/EnumError.enum.mjs +1 -1
- package/esm2022/lib/enums/EnumThemes.enum.mjs +1 -1
- package/esm2022/lib/enums/Estados.enum.mjs +1 -1
- package/esm2022/lib/enums/Filter.enum.mjs +1 -1
- package/esm2022/lib/enums/IconCuraDefaultType.enum.mjs +1 -1
- package/esm2022/lib/enums/ImageMimeType.enum.mjs +1 -1
- package/esm2022/lib/enums/RdsiteModalComponentStyle.enum.mjs +1 -1
- package/esm2022/lib/enums/RdsiteModalDrawerComponentStyle.enum.mjs +1 -1
- package/esm2022/lib/enums/UnidadeCoverageType.enum.mjs +1 -1
- package/esm2022/lib/enums/index.mjs +1 -1
- package/esm2022/lib/helpers/check-safari-agent.func.mjs +1 -1
- package/esm2022/lib/helpers/formatPhone.func.mjs +1 -1
- package/esm2022/lib/helpers/getCircularReplacer.func.mjs +1 -1
- package/esm2022/lib/helpers/getSiteUrl.func.mjs +1 -1
- package/esm2022/lib/helpers/index.mjs +1 -1
- package/esm2022/lib/helpers/mediaQueries.mjs +1 -1
- package/esm2022/lib/helpers/removeDuplicateObjectsFromArray.func.mjs +1 -1
- package/esm2022/lib/helpers/removeDuplicateValuesFromArray.func.mjs +1 -1
- package/esm2022/lib/helpers/removeHtmlTags.func.mjs +1 -1
- package/esm2022/lib/helpers/toQueryParams.func.mjs +1 -1
- package/esm2022/lib/interceptors/error.interceptor.mjs +1 -1
- package/esm2022/lib/interceptors/index.mjs +1 -1
- package/esm2022/lib/interceptors/log.interceptor.mjs +1 -1
- package/esm2022/lib/middlewares/index.mjs +4 -0
- package/esm2022/lib/middlewares/ssr-initialization.middleware.mjs +8 -0
- package/esm2022/lib/middlewares/url-validation-error-page.mjs +194 -0
- package/esm2022/lib/middlewares/url-validation.middleware.mjs +35 -0
- package/esm2022/lib/models/algolia-search-api.model.mjs +1 -1
- package/esm2022/lib/models/breadcrumbs/breadcrumbs-items.model.mjs +1 -1
- package/esm2022/lib/models/breadcrumbs/breadcrumbs-json-item.model.mjs +1 -1
- package/esm2022/lib/models/centro-estudos-backend.model.mjs +1 -1
- package/esm2022/lib/models/centro-medico.model.mjs +1 -1
- package/esm2022/lib/models/content-banner.model.mjs +1 -1
- package/esm2022/lib/models/cta-wrapper.model.mjs +1 -1
- package/esm2022/lib/models/doenca-backend.model.mjs +1 -1
- package/esm2022/lib/models/doenca-taxonomy.model.mjs +1 -1
- package/esm2022/lib/models/especialidade-backend.model.mjs +1 -1
- package/esm2022/lib/models/exame-backend.model.mjs +1 -1
- package/esm2022/lib/models/filters/filter-planos-convenios.model.mjs +1 -1
- package/esm2022/lib/models/filters/filter-section.type.mjs +1 -1
- package/esm2022/lib/models/filters/filter-sections.model.mjs +1 -1
- package/esm2022/lib/models/images/rdsite-image.model.mjs +1 -1
- package/esm2022/lib/models/medico-cv.model.mjs +1 -1
- package/esm2022/lib/models/medico.model.mjs +1 -1
- package/esm2022/lib/models/menu-de-unidade.model.mjs +1 -1
- package/esm2022/lib/models/menu-item.model.mjs +1 -1
- package/esm2022/lib/models/privacy-tools/privacy-tools.model.mjs +1 -1
- package/esm2022/lib/models/rdsl-cobertura.model.mjs +1 -1
- package/esm2022/lib/models/rdsl-convenio.model.mjs +1 -1
- package/esm2022/lib/models/rdsl-especialidade.model.mjs +1 -1
- package/esm2022/lib/models/rdsl-planos.model.mjs +1 -1
- package/esm2022/lib/models/rdsl-post-category.model.mjs +1 -1
- package/esm2022/lib/models/rdsl-unidade.model.mjs +1 -1
- package/esm2022/lib/models/section-navigation.model.mjs +1 -1
- package/esm2022/lib/models/seo/seo-data.model.mjs +1 -1
- package/esm2022/lib/models/seo/seo-unidade.model.mjs +1 -1
- package/esm2022/lib/models/social-meta-properties.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/WpResponse.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/category/wpCategory.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/general/content.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/general/excerpt.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/general/featuredMedia.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/general/guid.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/general/index.mjs +1 -1
- package/esm2022/lib/models/wordpress/general/links.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/general/meta.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/general/title.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/general/yoastData.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/general/yoastHeadJson.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/general/yoastMeta.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/page/page.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/post/post.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/unidade/wp-unidade-onco.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/unidade/wp-unidade-site-detalhe.model.mjs +1 -1
- package/esm2022/lib/models/wordpress/unidade/wp-unidade-site.model.mjs +1 -1
- package/esm2022/lib/pipes/index.mjs +1 -1
- package/esm2022/lib/pipes/phone/phone.pipe.mjs +1 -1
- package/esm2022/lib/services/algolia/algolia.service.mjs +1 -1
- package/esm2022/lib/services/algolia-search-api/algolia-search-api.service.mjs +1 -1
- package/esm2022/lib/services/cura/cura.service.mjs +1 -1
- package/esm2022/lib/services/geoloc/geoloc.service.mjs +1 -1
- package/esm2022/lib/services/http-client/http-client.service.mjs +1 -1
- package/esm2022/lib/services/index.mjs +1 -1
- package/esm2022/lib/services/log/log.service.mjs +1 -1
- package/esm2022/lib/services/mapbox/mapbox.service.mjs +1 -1
- package/esm2022/lib/services/modal/modal.service.mjs +1 -1
- package/esm2022/lib/services/modal-drawer/modal-drawer.service.mjs +1 -1
- package/esm2022/lib/services/ngu-carousel/ngu-carousel.service.mjs +1 -1
- package/esm2022/lib/services/phone/phone.service.mjs +1 -1
- package/esm2022/lib/services/privacy-tools/privacy-tools.service.mjs +1 -1
- package/esm2022/lib/services/seo/seo.service.mjs +1 -1
- package/esm2022/lib/services/server-response/server-response.service.mjs +1 -1
- package/esm2022/lib/services/site-back-end/site-back-end.service.mjs +1 -1
- package/esm2022/lib/services/ssr-loading/ssr-loading.service.mjs +1 -1
- package/esm2022/lib/services/transfer-state/transfer-state.service.mjs +1 -1
- package/esm2022/lib/services/youtube/youtube.service.mjs +1 -1
- package/esm2022/lib/tokens/CuraApi.mjs +1 -1
- package/esm2022/lib/tokens/LibConfig.mjs +1 -1
- package/esm2022/lib/tokens/express.tokens.mjs +1 -1
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/rededor-site-front-end-lib.mjs +323 -89
- package/fesm2022/rededor-site-front-end-lib.mjs.map +1 -1
- package/lib/middlewares/index.d.ts +3 -0
- package/lib/middlewares/ssr-initialization.middleware.d.ts +2 -0
- package/lib/middlewares/url-validation-error-page.d.ts +6 -0
- package/lib/middlewares/url-validation.middleware.d.ts +7 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/styles/_breakpoints.scss +5 -5
|
@@ -199,4 +199,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
199
199
|
type: Inject,
|
|
200
200
|
args: [PLATFORM_ID]
|
|
201
201
|
}] }, { type: i1.MapBoxService }, { type: i2.LogService }] });
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbG9jLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9nZW9sb2MvZ2VvbG9jLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEYsT0FBTyxnQkFBZ0IsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFFcEQsTUFBTSxDQUFOLElBQVksc0JBSVg7QUFKRCxXQUFZLHNCQUFzQjtJQUNoQyw2Q0FBbUIsQ0FBQTtJQUNuQiwyQ0FBaUIsQ0FBQTtJQUNqQiwyQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSlcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUlqQztBQWtCRCxNQUFNLE9BQU8sYUFBYTtJQVV4QixJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFHRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFPRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUNxQyxRQUFrQixFQUNmLFVBQWtCLEVBQ2hELGFBQTRCLEVBQ25CLFVBQXNCO1FBSEosYUFB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QUNyRSxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLHVCQUF1QixNQUFNLHFCQUFxQixRQUFRLHlCQUF5QixDQUFDO1FBQzdHLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQVk7UUFDakMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07aUJBQy9CLEtBQUssQ0FBQyxHQUFHLENBQUM7aUJBQ1YsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQzFCLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUUvQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbkQsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzsrR0FqTVUsYUFBYSxrQkFpQ2QsUUFBUSxhQUNSLFdBQVc7bUhBbENWLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBa0NJLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWFwQm94UmV2ZXJzZUdlb2NvZGluZ1BhcmFtcywgTWFwQm94U2VydmljZSB9IGZyb20gJy4uL21hcGJveC9tYXBib3guc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyLCBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tICcuLi9sb2cvbG9nLnNlcnZpY2UnO1xuaW1wb3J0IGNoZWNrU2FmYXJpQWdlbnQgZnJvbSAnLi4vLi4vaGVscGVycy9jaGVjay1zYWZhcmktYWdlbnQuZnVuYyc7XG5pbXBvcnQgeyBnZXRDaXJjdWxhclJlcGxhY2VyIH0gZnJvbSAnLi4vLi4vaGVscGVycyc7XG5cbmV4cG9ydCBlbnVtIEdlb2xvY2F0aW9uUGVybWlzc2lvbnMge1xuICBHUkFOVEVEID0gJ2dyYW50ZWQnLFxuICBQUk9NUFQgPSAncHJvbXB0JyxcbiAgREVOSUVEID0gJ2RlbmllZCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvbG9jYXRpb24ge1xuICBsYXQ6IG51bWJlcjtcbiAgbG5nOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzcyB7XG4gIGNpdHk6IHN0cmluZztcbiAgc3RhdGU6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2hvcnRDb2RlOiBzdHJpbmc7XG4gIH07XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHZW9sb2NTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfbWFwYm94R2VvY29kaW5nUGFyYW1zOiBNYXBCb3hSZXZlcnNlR2VvY29kaW5nUGFyYW1zID0ge1xuICAgIHR5cGVzOiAncGxhY2UnLFxuICAgIGxpbWl0OiAxLFxuICAgIGxhbmd1YWdlOiAncHQtQlInLFxuICAgIGNvdW50cnk6ICdCUicsXG4gIH07XG5cbiAgcHJpdmF0ZSBfaGFzQ29uc2VudCA9IGZhbHNlO1xuICBwcml2YXRlIF9zd2l0Y2hTdGF0dXMgPSBmYWxzZTtcbiAgcHVibGljIGdldCBzd2l0Y2hTdGF0dXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N3aXRjaFN0YXR1cztcbiAgfVxuICBwcml2YXRlIF9hZGRyZXNzOiBBZGRyZXNzIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBnZXQgYWRkcmVzcygpOiBBZGRyZXNzIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2FkZHJlc3M7XG4gIH1cblxuICBwcml2YXRlIF9wZXJtaXNzaW9uOiBQZXJtaXNzaW9uU3RhdGUgPSBHZW9sb2NhdGlvblBlcm1pc3Npb25zLlBST01QVDtcbiAgcHVibGljIGdldCBwZXJtaXNzaW9uKCk6IFBlcm1pc3Npb25TdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb247XG4gIH1cblxuICBwdWJsaWMgZ2VvbG9jYXRpb246IEJlaGF2aW9yU3ViamVjdDxHZW9sb2NhdGlvbiB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxHZW9sb2NhdGlvbiB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgaXNDaGVja2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTsgLy8gRW1pdGUgdHJ1ZSBxdWFuZG8gbyBnZW9sb2MgZXN0w6EgZXN0w6F2ZWxcblxuICBwcml2YXRlIF9pc1NhZmFyaUFnZW50OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2Rpc2FibGVTd2l0Y2ggPSBmYWxzZTtcbiAgcHVibGljIGdldCBkaXNhYmxlU3dpdGNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlU3dpdGNoO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkOiBvYmplY3QsXG4gICAgcHJpdmF0ZSBtYXBib3hTZXJ2aWNlOiBNYXBCb3hTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nU2VydmljZTogTG9nU2VydmljZSxcbiAgKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5pc0NoZWNrZWQubmV4dCh0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9pc1NhZmFyaUFnZW50ID0gY2hlY2tTYWZhcmlBZ2VudCgpO1xuICAgIGlmICh0aGlzLl9pc1NhZmFyaUFnZW50KSB7XG4gICAgICB0aGlzLl9oYXNDb25zZW50ID0gdGhpcy5jaGVja0FDb29raWVFeGlzdHMoJ2dlb2xvY2F0aW9uX2NvbnNlbnQnKTtcbiAgICAgIHRoaXMuaW5pdEdlb2xvY2F0aW9uKHRoaXMuX2hhc0NvbnNlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG5hdmlnYXRvcj8ucGVybWlzc2lvbnNcbiAgICAgID8ucXVlcnkoeyBuYW1lOiAnZ2VvbG9jYXRpb24nIH0pXG4gICAgICAudGhlbigocGVybWlzc2lvbikgPT4ge1xuICAgICAgICB0aGlzLl9wZXJtaXNzaW9uID0gcGVybWlzc2lvbi5zdGF0ZTtcbiAgICAgICAgdGhpcy5pbml0R2VvbG9jYXRpb24odGhpcy5fcGVybWlzc2lvbiA9PT0gR2VvbG9jYXRpb25QZXJtaXNzaW9ucy5HUkFOVEVEKTtcblxuICAgICAgICBwZXJtaXNzaW9uLm9uY2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3Blcm1pc3Npb24gPSBwZXJtaXNzaW9uLnN0YXRlO1xuICAgICAgICAgIHRoaXMuaW5pdEdlb2xvY2F0aW9uKHRoaXMuX3Blcm1pc3Npb24gPT09IEdlb2xvY2F0aW9uUGVybWlzc2lvbnMuR1JBTlRFRCk7XG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmxvZ1NlcnZpY2UubG9nTXNnKEpTT04uc3RyaW5naWZ5KGVycm9yLCBnZXRDaXJjdWxhclJlcGxhY2VyKCkpLCAnRVJST1InKTtcbiAgICAgICAgdGhpcy5fcGVybWlzc2lvbiA9IEdlb2xvY2F0aW9uUGVybWlzc2lvbnMuREVOSUVEO1xuICAgICAgICB0aGlzLl9kaXNhYmxlU3dpdGNoID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pbml0R2VvbG9jYXRpb24oZmFsc2UpO1xuICAgICAgfSk7XG4gIH1cblxuICBpbml0R2VvbG9jYXRpb24oZ2VvbG9jQWxsb3dlZCA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5fc3dpdGNoU3RhdHVzID0gdHJ1ZTtcbiAgICBpZiAoZ2VvbG9jQWxsb3dlZCkge1xuICAgICAgdGhpcy5nZXRDdXJyZW50UG9zaXRpb24oKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocG9zaXRpb24pID0+IHtcbiAgICAgICAgICB0aGlzLl9kaXNhYmxlU3dpdGNoID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zZXRHZW9sb2NhdGlvbihwb3NpdGlvbik7XG4gICAgICAgICAgdGhpcy5zZXRDb25zZW50Q29va2llKHRydWUsIDM2NTApO1xuICAgICAgICAgIHRoaXMuX2hhc0NvbnNlbnQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuX3Blcm1pc3Npb24gPSBHZW9sb2NhdGlvblBlcm1pc3Npb25zLkdSQU5URUQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3Blcm1pc3Npb24gPT09IEdlb2xvY2F0aW9uUGVybWlzc2lvbnMuREVOSUVEKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNhYmxlU3dpdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2V0Q29uc2VudENvb2tpZShmYWxzZSwgMTUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmdlb2xvY2F0aW9uLm5leHQobnVsbCk7XG4gICAgICAgICAgdGhpcy5fYWRkcmVzcyA9IG51bGw7XG4gICAgICAgICAgdGhpcy5faGFzQ29uc2VudCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX3N3aXRjaFN0YXR1cyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNDaGVja2VkLm5leHQodHJ1ZSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMucGVybWlzc2lvbiA9PT0gR2VvbG9jYXRpb25QZXJtaXNzaW9ucy5ERU5JRUQpIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZVN3aXRjaCA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0Q29uc2VudENvb2tpZShmYWxzZSwgMTUpO1xuICAgICAgfVxuICAgICAgdGhpcy5nZW9sb2NhdGlvbi5uZXh0KG51bGwpO1xuICAgICAgdGhpcy5fYWRkcmVzcyA9IG51bGw7XG4gICAgICB0aGlzLl9oYXNDb25zZW50ID0gZmFsc2U7XG4gICAgICB0aGlzLl9zd2l0Y2hTdGF0dXMgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNDaGVja2VkLm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDdXJyZW50UG9zaXRpb24oKTogT2JzZXJ2YWJsZTxHZW9sb2NhdGlvblBvc2l0aW9uPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihcbiAgICAgICAgKHBvc2l0aW9uKSA9PiB7XG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dChwb3NpdGlvbik7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiBvYnNlcnZlci5lcnJvcihlcnJvciksXG4gICAgICAgIHsgZW5hYmxlSGlnaEFjY3VyYWN5OiB0cnVlIH0sXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRHZW9sb2NhdGlvbihwb3NpdGlvbjogR2VvbG9jYXRpb25Qb3NpdGlvbik6IHZvaWQge1xuICAgIGlmIChwb3NpdGlvbikge1xuICAgICAgaWYgKHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSA9PT0gdGhpcy5nZW9sb2NhdGlvbi52YWx1ZT8ubGF0ICYmIHBvc2l0aW9uLmNvb3Jkcy5sb25naXR1ZGUgPT09IHRoaXMuZ2VvbG9jYXRpb24udmFsdWU/LmxuZykgcmV0dXJuO1xuXG4gICAgICB0aGlzLmdlb2xvY2F0aW9uLm5leHQoe1xuICAgICAgICBsYXQ6IHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSxcbiAgICAgICAgbG5nOiBwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRlLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZ2V0TWFwYm94QWRyZXNzKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2l0eSA9IHJlc3BvbnNlPy5mZWF0dXJlc1swXT8ucHJvcGVydGllcz8ubmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlID0ge1xuICAgICAgICAgICAgICBuYW1lOiByZXNwb25zZT8uZmVhdHVyZXNbMF0/LnByb3BlcnRpZXM/LmNvbnRleHQ/LnJlZ2lvbj8ubmFtZSxcbiAgICAgICAgICAgICAgc2hvcnRDb2RlOiByZXNwb25zZT8uZmVhdHVyZXNbMF0/LnByb3BlcnRpZXM/LmNvbnRleHQ/LnJlZ2lvbj8ucmVnaW9uX2NvZGUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHsgY2l0eSwgc3RhdGUgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2FkZHJlc3MgPSByZXNwb25zZTtcbiAgICAgICAgICAgIHRoaXMuX3N3aXRjaFN0YXR1cyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmlzQ2hlY2tlZC5uZXh0KHRydWUpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dTZXJ2aWNlLmxvZ01zZyhKU09OLnN0cmluZ2lmeShlcnJvciwgZ2V0Q2lyY3VsYXJSZXBsYWNlcigpKSwgJ0VSUk9SJyk7XG4gICAgICAgICAgICB0aGlzLl9zd2l0Y2hTdGF0dXMgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZ2VvbG9jYXRpb24ubmV4dChudWxsKTtcbiAgICAgICAgICAgIHRoaXMuX2FkZHJlc3MgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5pc0NoZWNrZWQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5nZW9sb2NhdGlvbi5uZXh0KG51bGwpO1xuICAgICAgdGhpcy5fYWRkcmVzcyA9IG51bGw7XG4gICAgICB0aGlzLl9zd2l0Y2hTdGF0dXMgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNDaGVja2VkLm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRNYXBib3hBZHJlc3MoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBsbmcgPSBgJHt0aGlzLmdlb2xvY2F0aW9uLnZhbHVlPy5sbmd9YDtcbiAgICBjb25zdCBsYXQgPSBgJHt0aGlzLmdlb2xvY2F0aW9uLnZhbHVlPy5sYXR9YDtcbiAgICByZXR1cm4gdGhpcy5tYXBib3hTZXJ2aWNlLnJldmVyc2VHZW9jb2RpbmcobG5nLCBsYXQsIHRoaXMuX21hcGJveEdlb2NvZGluZ1BhcmFtcywgJ2dlb2xvY2FsaXphY2FvLnNlcnZpY2UgZ2V0TWFwYm94QWRyZXNzJyk7XG4gIH1cblxuICBjaGVja0FDb29raWVFeGlzdHMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybUlkKSB8fCB0eXBlb2YgdGhpcy5kb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgIXRoaXMuZG9jdW1lbnQ/LmNvb2tpZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jb29raWVcbiAgICAgIC5zcGxpdCgnOycpXG4gICAgICAubWFwKChpdGVtKSA9PiBpdGVtLnRyaW0oKSlcbiAgICAgIC5zb21lKChpdGVtKSA9PiBpdGVtLnRyaW0oKS5zdGFydHNXaXRoKG5hbWUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29uc2VudENvb2tpZShzdGF0dXM6IGJvb2xlYW4sIGRheXM6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmdldENvb2tpZVZhbHVlKCdnZW9sb2NhdGlvbl9jb25zZW50JykgIT09IHN0YXR1cy50b1N0cmluZygpKSB7XG4gICAgICBjb25zdCBsaWZldGltZSA9IG5ldyBEYXRlKERhdGUubm93KCkgKyBkYXlzICogODY0MDAwMDApLnRvVVRDU3RyaW5nKCk7XG4gICAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGBnZW9sb2NhdGlvbl9jb25zZW50PSR7c3RhdHVzfTsgcGF0aD0vOyBleHBpcmVzPSR7bGlmZXRpbWV9OyBTYW1lU2l0ZT1Ob25lOyBTZWN1cmVgO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29va2llVmFsdWUocHJvcDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmRvY3VtZW50LmNvb2tpZVxuICAgICAgICAuc3BsaXQoJzsnKVxuICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLnRyaW0oKSlcbiAgICAgICAgLmZpbmQoKGl0ZW0pID0+IGl0ZW0uc3RhcnRzV2l0aChgJHtwcm9wfT1gKSk7XG5cbiAgICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLnNsaWNlKHByb3AubGVuZ3RoICsgMSkgOiAnJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iXX0=
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbG9jLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9nZW9sb2MvZ2VvbG9jLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEYsT0FBTyxnQkFBZ0IsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFFcEQsTUFBTSxDQUFOLElBQVksc0JBSVg7QUFKRCxXQUFZLHNCQUFzQjtJQUNoQyw2Q0FBbUIsQ0FBQTtJQUNuQiwyQ0FBaUIsQ0FBQTtJQUNqQiwyQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSlcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUlqQztBQWtCRCxNQUFNLE9BQU8sYUFBYTtJQVV4QixJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFHRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFPRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUNxQyxRQUFrQixFQUNmLFVBQWtCLEVBQ2hELGFBQTRCLEVBQ25CLFVBQXNCO1FBSEosYUFB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QUNyRSxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLHVCQUF1QixNQUFNLHFCQUFxQixRQUFRLHlCQUF5QixDQUFDO1FBQzdHLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQVk7UUFDakMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07aUJBQy9CLEtBQUssQ0FBQyxHQUFHLENBQUM7aUJBQ1YsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQzFCLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUUvQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbkQsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzsrR0FqTVUsYUFBYSxrQkFpQ2QsUUFBUSxhQUNSLFdBQVc7bUhBbENWLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBa0NJLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXBCb3hSZXZlcnNlR2VvY29kaW5nUGFyYW1zLCBNYXBCb3hTZXJ2aWNlIH0gZnJvbSAnLi4vbWFwYm94L21hcGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyLCBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTG9nU2VydmljZSB9IGZyb20gJy4uL2xvZy9sb2cuc2VydmljZSc7XHJcbmltcG9ydCBjaGVja1NhZmFyaUFnZW50IGZyb20gJy4uLy4uL2hlbHBlcnMvY2hlY2stc2FmYXJpLWFnZW50LmZ1bmMnO1xyXG5pbXBvcnQgeyBnZXRDaXJjdWxhclJlcGxhY2VyIH0gZnJvbSAnLi4vLi4vaGVscGVycyc7XHJcblxyXG5leHBvcnQgZW51bSBHZW9sb2NhdGlvblBlcm1pc3Npb25zIHtcclxuICBHUkFOVEVEID0gJ2dyYW50ZWQnLFxyXG4gIFBST01QVCA9ICdwcm9tcHQnLFxyXG4gIERFTklFRCA9ICdkZW5pZWQnLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdlb2xvY2F0aW9uIHtcclxuICBsYXQ6IG51bWJlcjtcclxuICBsbmc6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBZGRyZXNzIHtcclxuICBjaXR5OiBzdHJpbmc7XHJcbiAgc3RhdGU6IHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIHNob3J0Q29kZTogc3RyaW5nO1xyXG4gIH07XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW9sb2NTZXJ2aWNlIHtcclxuICBwcml2YXRlIF9tYXBib3hHZW9jb2RpbmdQYXJhbXM6IE1hcEJveFJldmVyc2VHZW9jb2RpbmdQYXJhbXMgPSB7XHJcbiAgICB0eXBlczogJ3BsYWNlJyxcclxuICAgIGxpbWl0OiAxLFxyXG4gICAgbGFuZ3VhZ2U6ICdwdC1CUicsXHJcbiAgICBjb3VudHJ5OiAnQlInLFxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgX2hhc0NvbnNlbnQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9zd2l0Y2hTdGF0dXMgPSBmYWxzZTtcclxuICBwdWJsaWMgZ2V0IHN3aXRjaFN0YXR1cygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zd2l0Y2hTdGF0dXM7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FkZHJlc3M6IEFkZHJlc3MgfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgZ2V0IGFkZHJlc3MoKTogQWRkcmVzcyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FkZHJlc3M7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wZXJtaXNzaW9uOiBQZXJtaXNzaW9uU3RhdGUgPSBHZW9sb2NhdGlvblBlcm1pc3Npb25zLlBST01QVDtcclxuICBwdWJsaWMgZ2V0IHBlcm1pc3Npb24oKTogUGVybWlzc2lvblN0YXRlIHtcclxuICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdlb2xvY2F0aW9uOiBCZWhhdmlvclN1YmplY3Q8R2VvbG9jYXRpb24gfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8R2VvbG9jYXRpb24gfCBudWxsPihudWxsKTtcclxuICBwdWJsaWMgaXNDaGVja2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTsgLy8gRW1pdGUgdHJ1ZSBxdWFuZG8gbyBnZW9sb2MgZXN0w6EgZXN0w6F2ZWxcclxuXHJcbiAgcHJpdmF0ZSBfaXNTYWZhcmlBZ2VudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2Rpc2FibGVTd2l0Y2ggPSBmYWxzZTtcclxuICBwdWJsaWMgZ2V0IGRpc2FibGVTd2l0Y2goKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZVN3aXRjaDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQsXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQ6IG9iamVjdCxcclxuICAgIHByaXZhdGUgbWFwYm94U2VydmljZTogTWFwQm94U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nU2VydmljZTogTG9nU2VydmljZSxcclxuICApIHtcclxuICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgdGhpcy5pc0NoZWNrZWQubmV4dCh0cnVlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2lzU2FmYXJpQWdlbnQgPSBjaGVja1NhZmFyaUFnZW50KCk7XHJcbiAgICBpZiAodGhpcy5faXNTYWZhcmlBZ2VudCkge1xyXG4gICAgICB0aGlzLl9oYXNDb25zZW50ID0gdGhpcy5jaGVja0FDb29raWVFeGlzdHMoJ2dlb2xvY2F0aW9uX2NvbnNlbnQnKTtcclxuICAgICAgdGhpcy5pbml0R2VvbG9jYXRpb24odGhpcy5faGFzQ29uc2VudCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBuYXZpZ2F0b3I/LnBlcm1pc3Npb25zXHJcbiAgICAgID8ucXVlcnkoeyBuYW1lOiAnZ2VvbG9jYXRpb24nIH0pXHJcbiAgICAgIC50aGVuKChwZXJtaXNzaW9uKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcGVybWlzc2lvbiA9IHBlcm1pc3Npb24uc3RhdGU7XHJcbiAgICAgICAgdGhpcy5pbml0R2VvbG9jYXRpb24odGhpcy5fcGVybWlzc2lvbiA9PT0gR2VvbG9jYXRpb25QZXJtaXNzaW9ucy5HUkFOVEVEKTtcclxuXHJcbiAgICAgICAgcGVybWlzc2lvbi5vbmNoYW5nZSA9ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3Blcm1pc3Npb24gPSBwZXJtaXNzaW9uLnN0YXRlO1xyXG4gICAgICAgICAgdGhpcy5pbml0R2VvbG9jYXRpb24odGhpcy5fcGVybWlzc2lvbiA9PT0gR2VvbG9jYXRpb25QZXJtaXNzaW9ucy5HUkFOVEVEKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2dTZXJ2aWNlLmxvZ01zZyhKU09OLnN0cmluZ2lmeShlcnJvciwgZ2V0Q2lyY3VsYXJSZXBsYWNlcigpKSwgJ0VSUk9SJyk7XHJcbiAgICAgICAgdGhpcy5fcGVybWlzc2lvbiA9IEdlb2xvY2F0aW9uUGVybWlzc2lvbnMuREVOSUVEO1xyXG4gICAgICAgIHRoaXMuX2Rpc2FibGVTd2l0Y2ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaW5pdEdlb2xvY2F0aW9uKGZhbHNlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbml0R2VvbG9jYXRpb24oZ2VvbG9jQWxsb3dlZCA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zd2l0Y2hTdGF0dXMgPSB0cnVlO1xyXG4gICAgaWYgKGdlb2xvY0FsbG93ZWQpIHtcclxuICAgICAgdGhpcy5nZXRDdXJyZW50UG9zaXRpb24oKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChwb3NpdGlvbikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fZGlzYWJsZVN3aXRjaCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zZXRHZW9sb2NhdGlvbihwb3NpdGlvbik7XHJcbiAgICAgICAgICB0aGlzLnNldENvbnNlbnRDb29raWUodHJ1ZSwgMzY1MCk7XHJcbiAgICAgICAgICB0aGlzLl9oYXNDb25zZW50ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuX3Blcm1pc3Npb24gPSBHZW9sb2NhdGlvblBlcm1pc3Npb25zLkdSQU5URUQ7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuX3Blcm1pc3Npb24gPT09IEdlb2xvY2F0aW9uUGVybWlzc2lvbnMuREVOSUVEKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVTd2l0Y2ggPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbnNlbnRDb29raWUoZmFsc2UsIDE1KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZ2VvbG9jYXRpb24ubmV4dChudWxsKTtcclxuICAgICAgICAgIHRoaXMuX2FkZHJlc3MgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5faGFzQ29uc2VudCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5fc3dpdGNoU3RhdHVzID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzQ2hlY2tlZC5uZXh0KHRydWUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMucGVybWlzc2lvbiA9PT0gR2VvbG9jYXRpb25QZXJtaXNzaW9ucy5ERU5JRUQpIHtcclxuICAgICAgICB0aGlzLl9kaXNhYmxlU3dpdGNoID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldENvbnNlbnRDb29raWUoZmFsc2UsIDE1KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmdlb2xvY2F0aW9uLm5leHQobnVsbCk7XHJcbiAgICAgIHRoaXMuX2FkZHJlc3MgPSBudWxsO1xyXG4gICAgICB0aGlzLl9oYXNDb25zZW50ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX3N3aXRjaFN0YXR1cyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlzQ2hlY2tlZC5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDdXJyZW50UG9zaXRpb24oKTogT2JzZXJ2YWJsZTxHZW9sb2NhdGlvblBvc2l0aW9uPiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XHJcbiAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oXHJcbiAgICAgICAgKHBvc2l0aW9uKSA9PiB7XHJcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KHBvc2l0aW9uKTtcclxuICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3IpID0+IG9ic2VydmVyLmVycm9yKGVycm9yKSxcclxuICAgICAgICB7IGVuYWJsZUhpZ2hBY2N1cmFjeTogdHJ1ZSB9LFxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEdlb2xvY2F0aW9uKHBvc2l0aW9uOiBHZW9sb2NhdGlvblBvc2l0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAocG9zaXRpb24pIHtcclxuICAgICAgaWYgKHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSA9PT0gdGhpcy5nZW9sb2NhdGlvbi52YWx1ZT8ubGF0ICYmIHBvc2l0aW9uLmNvb3Jkcy5sb25naXR1ZGUgPT09IHRoaXMuZ2VvbG9jYXRpb24udmFsdWU/LmxuZykgcmV0dXJuO1xyXG5cclxuICAgICAgdGhpcy5nZW9sb2NhdGlvbi5uZXh0KHtcclxuICAgICAgICBsYXQ6IHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSxcclxuICAgICAgICBsbmc6IHBvc2l0aW9uLmNvb3Jkcy5sb25naXR1ZGUsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5nZXRNYXBib3hBZHJlc3MoKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjaXR5ID0gcmVzcG9uc2U/LmZlYXR1cmVzWzBdPy5wcm9wZXJ0aWVzPy5uYW1lO1xyXG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHtcclxuICAgICAgICAgICAgICBuYW1lOiByZXNwb25zZT8uZmVhdHVyZXNbMF0/LnByb3BlcnRpZXM/LmNvbnRleHQ/LnJlZ2lvbj8ubmFtZSxcclxuICAgICAgICAgICAgICBzaG9ydENvZGU6IHJlc3BvbnNlPy5mZWF0dXJlc1swXT8ucHJvcGVydGllcz8uY29udGV4dD8ucmVnaW9uPy5yZWdpb25fY29kZSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgcmV0dXJuIHsgY2l0eSwgc3RhdGUgfTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9hZGRyZXNzID0gcmVzcG9uc2U7XHJcbiAgICAgICAgICAgIHRoaXMuX3N3aXRjaFN0YXR1cyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuaXNDaGVja2VkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ1NlcnZpY2UubG9nTXNnKEpTT04uc3RyaW5naWZ5KGVycm9yLCBnZXRDaXJjdWxhclJlcGxhY2VyKCkpLCAnRVJST1InKTtcclxuICAgICAgICAgICAgdGhpcy5fc3dpdGNoU3RhdHVzID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuZ2VvbG9jYXRpb24ubmV4dChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5fYWRkcmVzcyA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMuaXNDaGVja2VkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5nZW9sb2NhdGlvbi5uZXh0KG51bGwpO1xyXG4gICAgICB0aGlzLl9hZGRyZXNzID0gbnVsbDtcclxuICAgICAgdGhpcy5fc3dpdGNoU3RhdHVzID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNDaGVja2VkLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1hcGJveEFkcmVzcygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgbG5nID0gYCR7dGhpcy5nZW9sb2NhdGlvbi52YWx1ZT8ubG5nfWA7XHJcbiAgICBjb25zdCBsYXQgPSBgJHt0aGlzLmdlb2xvY2F0aW9uLnZhbHVlPy5sYXR9YDtcclxuICAgIHJldHVybiB0aGlzLm1hcGJveFNlcnZpY2UucmV2ZXJzZUdlb2NvZGluZyhsbmcsIGxhdCwgdGhpcy5fbWFwYm94R2VvY29kaW5nUGFyYW1zLCAnZ2VvbG9jYWxpemFjYW8uc2VydmljZSBnZXRNYXBib3hBZHJlc3MnKTtcclxuICB9XHJcblxyXG4gIGNoZWNrQUNvb2tpZUV4aXN0cyhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkgfHwgdHlwZW9mIHRoaXMuZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnIHx8ICF0aGlzLmRvY3VtZW50Py5jb29raWUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuY29va2llXHJcbiAgICAgIC5zcGxpdCgnOycpXHJcbiAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0udHJpbSgpKVxyXG4gICAgICAuc29tZSgoaXRlbSkgPT4gaXRlbS50cmltKCkuc3RhcnRzV2l0aChuYW1lKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvbnNlbnRDb29raWUoc3RhdHVzOiBib29sZWFuLCBkYXlzOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmdldENvb2tpZVZhbHVlKCdnZW9sb2NhdGlvbl9jb25zZW50JykgIT09IHN0YXR1cy50b1N0cmluZygpKSB7XHJcbiAgICAgIGNvbnN0IGxpZmV0aW1lID0gbmV3IERhdGUoRGF0ZS5ub3coKSArIGRheXMgKiA4NjQwMDAwMCkudG9VVENTdHJpbmcoKTtcclxuICAgICAgdGhpcy5kb2N1bWVudC5jb29raWUgPSBgZ2VvbG9jYXRpb25fY29uc2VudD0ke3N0YXR1c307IHBhdGg9LzsgZXhwaXJlcz0ke2xpZmV0aW1lfTsgU2FtZVNpdGU9Tm9uZTsgU2VjdXJlYDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29va2llVmFsdWUocHJvcDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5kb2N1bWVudC5jb29raWVcclxuICAgICAgICAuc3BsaXQoJzsnKVxyXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0udHJpbSgpKVxyXG4gICAgICAgIC5maW5kKChpdGVtKSA9PiBpdGVtLnN0YXJ0c1dpdGgoYCR7cHJvcH09YCkpO1xyXG5cclxuICAgICAgcmV0dXJuIHZhbHVlID8gdmFsdWUuc2xpY2UocHJvcC5sZW5ndGggKyAxKSA6ICcnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -52,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
52
52
|
type: Inject,
|
|
53
53
|
args: [LIB_CONFIG]
|
|
54
54
|
}] }, { type: i1.HttpClient }, { type: i2.DeviceDetectorService }] });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL3NlcnZpY2VzL2h0dHAtY2xpZW50L2h0dHAtY2xpZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoRSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFFbkQseUVBQXlFO0FBRXpFLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDK0IsVUFBa0IsRUFDbkIsU0FBb0IsRUFDeEMsSUFBZ0IsRUFDaEIsYUFBb0M7UUFIZixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ25CLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDeEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7SUFDM0MsQ0FBQztJQUVKLEdBQUcsQ0FBVSxHQUFXO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksQ0FBVSxHQUFXLEVBQUUsSUFBVTtRQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sVUFBVTtRQUNoQixNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRTthQUNsQyxHQUFHLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQzthQUM5RCxHQUFHLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7YUFDaEQsR0FBRyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRWxELElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0QsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDdkssQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkUsQ0FBQztJQUNILENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUMvRCxDQUFDO0lBRU8sZUFBZTtRQUNyQixPQUFPLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN4RCxDQUFDOytHQXJDVSxpQkFBaUIsa0JBRWxCLFdBQVcsYUFDWCxVQUFVO21IQUhULGlCQUFpQixjQURKLE1BQU07OzRGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFHN0IsTUFBTTsyQkFBQyxXQUFXOzswQkFDbEIsTUFBTTsyQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTElCX0NPTkZJRywgTGliQ29uZmlnIH0gZnJvbSAnLi4vLi4vdG9rZW5zL0xpYkNvbmZpZyc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuLyogQWRpY2lvbmEgb3MgSGVhZGVycyBuZWNlc3PDoXJpb3MgcGFyYSBmdW5jaW9uYW1lbnRvIGRvIHNpdGUgYmFjay1lbmQgKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEh0dHBDbGllbnRTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogb2JqZWN0LFxyXG4gICAgQEluamVjdChMSUJfQ09ORklHKSBwcml2YXRlIGxpYkNvbmZpZzogTGliQ29uZmlnLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBkZXZpY2VTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBnZXQ8VCA9IGFueT4odXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmdldEhlYWRlcnMoKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHVybCwgeyBoZWFkZXJzIH0pO1xyXG4gIH1cclxuXHJcbiAgcG9zdDxUID0gYW55Pih1cmw6IHN0cmluZywgZGF0YT86IGFueSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KHVybCwgZGF0YSwgeyBoZWFkZXJzIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRIZWFkZXJzKCk6IEh0dHBIZWFkZXJzIHtcclxuICAgIGNvbnN0IGJhc2VIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKClcclxuICAgICAgLnNldChcIngtb3JpZ2luLWFwcGxpY2F0aW9uXCIsIHRoaXMubGliQ29uZmlnLnhPcmlnaW5BcHBsaWNhdGlvbilcclxuICAgICAgLnNldChcIngtb3JpZ2luLWNoYW5uZWxcIiwgdGhpcy5nZXRPcmlnaW5DaGFubmVsKCkpXHJcbiAgICAgIC5zZXQoXCJ4LW9yaWdpbi1kZXZpY2VcIiwgdGhpcy5nZXRPcmlnaW5EZXZpY2UoKSk7XHJcblxyXG4gICAgaWYgKGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiB0aGlzLmxpYkNvbmZpZy5zZXJ2ZXIpIHtcclxuICAgICAgcmV0dXJuIGJhc2VIZWFkZXJzLmFwcGVuZChcImF1dGhvcml6YXRpb25cIiwgXCJCYXNpYyBcIiArIEJ1ZmZlci5mcm9tKGAke3RoaXMubGliQ29uZmlnLnNpdGVBcGkuYXV0aC51c2VyfToke3RoaXMubGliQ29uZmlnLnNpdGVBcGkuYXV0aC5wYXNzd29yZH1gKS50b1N0cmluZygnYmFzZTY0JykpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGJhc2VIZWFkZXJzLmFwcGVuZChcImNsaWVudF9pZFwiLCB0aGlzLmxpYkNvbmZpZy5jbGllbnRfaWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRPcmlnaW5DaGFubmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXZpY2VTZXJ2aWNlLmlzRGVza3RvcCgpID8gJ2Rlc2t0b3AnIDogJ21vYmlsZSc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE9yaWdpbkRldmljZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGBhcHAtJHt0aGlzLmRldmljZVNlcnZpY2UuZ2V0RGV2aWNlSW5mbygpLm9zfWA7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -17,4 +17,4 @@ export * from './algolia-search-api/algolia-search-api.service';
|
|
|
17
17
|
export * from './youtube/youtube.service';
|
|
18
18
|
export * from './mapbox/mapbox.service';
|
|
19
19
|
export * from './geoloc/geoloc.service';
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hbGdvbGlhL2FsZ29saWEuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY3VyYS9jdXJhLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2h0dHAtY2xpZW50L2h0dHAtY2xpZW50LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvZy9sb2cuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwvbW9kYWwuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwtZHJhd2VyL21vZGFsLWRyYXdlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9uZ3UtY2Fyb3VzZWwvbmd1LWNhcm91c2VsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Bob25lL3Bob25lLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3ByaXZhY3ktdG9vbHMvcHJpdmFjeS10b29scy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zaXRlLWJhY2stZW5kL3NpdGUtYmFjay1lbmQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VvL3Nlby5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2ZXItcmVzcG9uc2Uvc2VydmVyLXJlc3BvbnNlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Nzci1sb2FkaW5nL3Nzci1sb2FkaW5nLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZmVyLXN0YXRlL3RyYW5zZmVyLXN0YXRlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuLi9jb21wb25lbnRzL2hlYWRlci9zZXJ2aWNlcy9oZWFkZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWxnb2xpYS1zZWFyY2gtYXBpL2FsZ29saWEtc2VhcmNoLWFwaS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi95b3V0dWJlL3lvdXR1YmUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94L21hcGJveC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW9sb2MvZ2VvbG9jLnNlcnZpY2UnO1xyXG4iXX0=
|
|
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
43
43
|
type: Inject,
|
|
44
44
|
args: [PLATFORM_ID]
|
|
45
45
|
}] }, { type: i1.Location }] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9sb2cvbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLFVBQVU7SUFDckIsWUFDOEIsU0FBb0IsRUFDbkIsVUFBZSxFQUNwQyxRQUFrQjtRQUZFLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBSztRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQ3pCLENBQUM7SUFFSixNQUFNLENBQUMsR0FBUSxFQUFFLEtBQWM7UUFDN0IsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDL0csT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLFNBQWtCO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQWtCO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQWtCO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7SUFDcEcsQ0FBQzsrR0E1QlUsVUFBVSxrQkFFWCxVQUFVLGFBQ1YsV0FBVzttSEFIVixVQUFVLGNBRlQsTUFBTTs7NEZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIsIExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTElCX0NPTkZJRywgTGliQ29uZmlnIH0gZnJvbSAnLi4vLi4vdG9rZW5zL0xpYkNvbmZpZyc7XHJcbmltcG9ydCB7IGdldFNpdGVVcmwgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTElCX0NPTkZJRykgcHJpdmF0ZSBsaWJDb25maWc6IExpYkNvbmZpZyxcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55LFxyXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgKSB7fVxyXG5cclxuICBsb2dNc2cobXNnOiBhbnksIGxhYmVsPzogc3RyaW5nKSB7XHJcbiAgICBsYWJlbCA9IGxhYmVsID8gYCR7bGFiZWx9IGAgOiAnJztcclxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSB8fCAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiAhdGhpcy5saWJDb25maWc/LnByb2R1Y3Rpb24pKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGAke2xhYmVsfSR7bXNnfWApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9nTG9hZChjb21wb25lbnQ/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMubG9nTXNnKGAke3RoaXMuZ2V0UGFnZVVSTCgpfSR7Y29tcG9uZW50ID8gJyAtICcgKyBjb21wb25lbnQgOiAnJ31gLCAnTE9BRCcpO1xyXG4gIH1cclxuXHJcbiAgbG9nNDA0KGNvbXBvbmVudD86IHN0cmluZykge1xyXG4gICAgdGhpcy5sb2dNc2coYCR7dGhpcy5nZXRQYWdlVVJMKCl9JHtjb21wb25lbnQgPyAnIC0gJyArIGNvbXBvbmVudCA6ICcnfWAsICc0MDQnKTtcclxuICB9XHJcblxyXG4gIGxvZzUwMChjb21wb25lbnQ/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMubG9nTXNnKGAke3RoaXMuZ2V0UGFnZVVSTCgpfSR7Y29tcG9uZW50ID8gJyAtICcgKyBjb21wb25lbnQgOiAnJ31gLCAnNTAwJyk7XHJcbiAgfVxyXG5cclxuICBnZXRQYWdlVVJMKCkge1xyXG4gICAgcmV0dXJuIGAke2dldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpfSR7dGhpcy5sb2NhdGlvbi5wYXRoKCl9YDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
66
66
|
type: Inject,
|
|
67
67
|
args: [PLATFORM_ID]
|
|
68
68
|
}] }] });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9tYXBib3gvbWFwYm94LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQThCL0QsTUFBTSxPQUFPLGFBQWE7SUFNeEIsWUFDbUIsSUFBZ0IsRUFDaEIsVUFBc0IsRUFDWCxTQUFvQixFQUNWLFVBQWtCO1FBSHZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNYLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDVixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBVGxELHNCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUM7UUFDckQseUJBQW9CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQztRQUMzRCxpQkFBWSxHQUFHLHdCQUF3QixDQUFDO1FBQ3hDLGdCQUFXLEdBQUcsbUJBQW1CLENBQUM7SUFPdkMsQ0FBQztJQUVKOzs7OztPQUtHO0lBQ0gsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLFNBQWdDLEVBQUUsRUFBRSxVQUFtQjtRQUNyRixJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUN4QixPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFdBQVcsY0FBYyxLQUFLLEVBQUUsQ0FBQztRQUMxRSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUNqSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsR0FBVyxFQUFFLFNBQXVDLEVBQUUsRUFBRSxVQUFtQjtRQUN2RyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsV0FBVyxzQkFBc0IsR0FBRyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ2hHLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQ2pILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sU0FBUyxDQUFDLGNBQXNCLEVBQUUsT0FBTyxHQUFHLFlBQVk7UUFDOUQsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMxRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsTUFBTSxjQUFjLE1BQU0sT0FBTyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVPLFVBQVU7UUFDaEIsT0FBTyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1RCxDQUFDOytHQWpEVSxhQUFhLHNFQVNkLFVBQVUsYUFDVixXQUFXO21IQVZWLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBVUksTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciwgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tICcuLi9sb2cvbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMSUJfQ09ORklHLCBMaWJDb25maWcgfSBmcm9tICcuLi8uLi90b2tlbnMvTGliQ29uZmlnJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWFwQm94R2VvY29kaW5nUGFyYW1zIHtcclxuICBhdXRvY29tcGxldGU/OiBib29sZWFuO1xyXG4gIGJib3g/OiBzdHJpbmc7IC8vIG1pbkxvbiwgbWluTGF0LCBtYXhMb24sIG1heExhdFxyXG4gIGNvdW50cnk/OiBzdHJpbmc7IC8vIGNvdW50cnkgY29kZXMgc2VwYXJhdGVkIGJ5IGNvbW1hc1xyXG4gIGZ1enp5TWF0Y2g/OiBib29sZWFuO1xyXG4gIGxhbmd1YWdlPzogc3RyaW5nO1xyXG4gIGxpbWl0PzogbnVtYmVyOyAvLyBkZWZhdWx0OiA1LCBtYXg6IDEwXHJcbiAgcHJveGltaXR5Pzogc3RyaW5nOyAvLyBsb25naXR1ZGUsIGxhdGl0dWRlXHJcbiAgcm91dGluZz86IGJvb2xlYW47XHJcbiAgLy8gVHlwZXMgY2FuIGJlIGNvbW1hIHNlcGFyYXRlZFxyXG4gIHR5cGVzPzogc3RyaW5nOyAvLyBcImNvdW50cnlcIiB8IFwicmVnaW9uXCIgfCBcInBvc3Rjb2RlXCIgfCBcImRpc3RyaWN0XCIgfCBcInBsYWNlXCIgfCBcImxvY2FsaXR5XCIgfCBcIm5laWdoYm9yaG9vZFwiIHwgXCJhZGRyZXNzXCIgfCBcInBvaVwiXHJcbiAgW3Byb3BOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWFwQm94UmV2ZXJzZUdlb2NvZGluZ1BhcmFtcyB7XHJcbiAgY291bnRyeT86IHN0cmluZzsgLy8gY291bnRyeSBjb2RlcyBzZXBhcmF0ZWQgYnkgY29tbWFzXHJcbiAgbGFuZ3VhZ2U/OiBzdHJpbmc7XHJcbiAgbGltaXQ/OiBudW1iZXI7IC8vIGRlZmF1bHQ6IDUsIG1heDogMTBcclxuICByZXZlcnNlTW9kZT86ICdkaXN0YW5jZScgfCAnc2NvcmUnO1xyXG4gIHJvdXRpbmc/OiBib29sZWFuO1xyXG4gIC8vIFR5cGVzIGNhbiBiZSBjb21tYSBzZXBhcmF0ZWRcclxuICB0eXBlcz86IHN0cmluZzsgLy8gXCJjb3VudHJ5XCIgfCBcInJlZ2lvblwiIHwgXCJwb3N0Y29kZVwiIHwgXCJkaXN0cmljdFwiIHwgXCJwbGFjZVwiIHwgXCJsb2NhbGl0eVwiIHwgXCJuZWlnaGJvcmhvb2RcIiB8IFwiYWRkcmVzc1wiIHwgXCJwb2lcIlxyXG4gIFtwcm9wTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFwQm94U2VydmljZSB7XHJcbiAgcHJpdmF0ZSBtYXBib3hBY2Nlc3NUb2tlbiA9IHRoaXMubGliQ29uZmlnLm1hcGJveEFjY2Vzc1Rva2VuO1xyXG4gIHByaXZhdGUgbWFwYm94U1NSQWNjZXNzVG9rZW4gPSB0aGlzLmxpYkNvbmZpZy5tYXBib3hTU1JBY2Nlc3NUb2tlbjtcclxuICBwcml2YXRlIG1hcGJveEFwaVVybCA9ICdodHRwczovL2FwaS5tYXBib3guY29tJztcclxuICBwcml2YXRlIGdlb2NvZGluZ0VwID0gJ3NlYXJjaC9nZW9jb2RlL3Y2JztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ1NlcnZpY2U6IExvZ1NlcnZpY2UsXHJcbiAgICBASW5qZWN0KExJQl9DT05GSUcpIHByaXZhdGUgbGliQ29uZmlnOiBMaWJDb25maWcsXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQ6IG9iamVjdCxcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1c2NhIGdlb2NhbGl6YWRhIHBvciBub21lIGRvIGxvY2FsLlxyXG4gICAqIEV4LjogYmFycmEgZGEgdGlqdWNhLCByaW8gZGUgamFuZWlybyAtIHJpbyBkZSBqYW5laXJvLCBicmFzaWxcclxuICAgKiBAcGFyYW0gcXVlcnkgbm9tZSBkZSBsb2NhbCBwYXJhIGEgYnVzY2FcclxuICAgKiBAcGFyYW0gcGFyYW1zIHBhcsOibWV0cm9zIG9wY2lvbmFpcyBkZSBidXNjYSBlIGZpbHRyb1xyXG4gICAqL1xyXG4gIGZvcndhcmRHZW9jb2RpbmcocXVlcnk6IHN0cmluZywgcGFyYW1zOiBNYXBCb3hHZW9jb2RpbmdQYXJhbXMgPSB7fSwgbG9nQ29udGV4dD86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmxvZ01hcGJveCgnZm9yd2FyZEdlb2NvZGluZycsIGxvZ0NvbnRleHQpO1xyXG4gICAgaWYgKHF1ZXJ5Lmxlbmd0aCA+PSAyNTYpIHtcclxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ1F1ZXJ5IGxlbmd0aCBleGNlZWRzIDI1NSBjaGFyYWN0ZXJzLicpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5tYXBib3hBcGlVcmx9LyR7dGhpcy5nZW9jb2RpbmdFcH0vZm9yd2FyZD9xPSR7cXVlcnl9YDtcclxuICAgIHBhcmFtc1snYWNjZXNzX3Rva2VuJ10gPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpID8gdGhpcy5tYXBib3hBY2Nlc3NUb2tlbiA6IHRoaXMubWFwYm94U1NSQWNjZXNzVG9rZW47XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHsgcGFyYW1zLCBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1c2NhIGxvY2FsIHBvciBsb25naXR1ZGUgZSBsYXRpdHVkZVxyXG4gICAqIEBwYXJhbSBsbmcgZm9ybWF0byBsb25naXR1ZGVcclxuICAgKiBAcGFyYW0gbGF0IGZvcm1hdG8gbGF0aXR1ZGVcclxuICAgKiBAcGFyYW0gcGFyYW1zIHBhcsOibWV0cm9zIG9wY2lvbmFpcyBkZSBidXNjYSBlIGZpbHRyb1xyXG4gICAqL1xyXG4gIHJldmVyc2VHZW9jb2RpbmcobG5nOiBzdHJpbmcsIGxhdDogc3RyaW5nLCBwYXJhbXM6IE1hcEJveFJldmVyc2VHZW9jb2RpbmdQYXJhbXMgPSB7fSwgbG9nQ29udGV4dD86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmxvZ01hcGJveCgncmV2ZXJzZUdlb2NvZGluZycsIGxvZ0NvbnRleHQpO1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5tYXBib3hBcGlVcmx9LyR7dGhpcy5nZW9jb2RpbmdFcH0vcmV2ZXJzZT9sb25naXR1ZGU9JHtsbmd9JmxhdGl0dWRlPSR7bGF0fWA7XHJcbiAgICBwYXJhbXNbJ2FjY2Vzc190b2tlbiddID0gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSA/IHRoaXMubWFwYm94QWNjZXNzVG9rZW4gOiB0aGlzLm1hcGJveFNTUkFjY2Vzc1Rva2VuO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9nTWFwYm94KGNhbGxlckZ1bmN0aW9uOiBzdHJpbmcsIGNvbnRleHQgPSAnbm8tY29udGV4dCcpIHtcclxuICAgIGNvbnN0IHBsYXRmb3JtID0gaXNQbGF0Zm9ybVNlcnZlcih0aGlzLnBsYXRmb3JtSWQpID8gJ3NlcnZlcicgOiAnYnJvd3Nlcic7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UubG9nTXNnKGAke3BsYXRmb3JtfSAtICR7Y2FsbGVyRnVuY3Rpb259IC0gJHtjb250ZXh0fWAsICdNQVBCT1gnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SGVhZGVycygpOiBIdHRwSGVhZGVycyB7XHJcbiAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdSZWZlcnJlci1Qb2xpY3knLCAnb3JpZ2luJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
53
53
|
providedIn: 'root',
|
|
54
54
|
}]
|
|
55
55
|
}] });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL3NlcnZpY2VzL21vZGFsL21vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFHeEQsTUFBTSxPQUFnQixzQkFBc0I7Q0FZM0M7QUFLRCxNQUFNLE9BQU8sWUFBWTtJQUh6QjtRQUlFLGNBQVMsR0FBa0MsSUFBSSxDQUFDO0tBNENqRDtJQXpDQyxJQUFJO1FBQ0YsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQStCO1FBQzFDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBd0I7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7SUFDdEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBeUIsRUFBRSxVQUErQixFQUFFO1FBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLEdBQUcsT0FBTyxDQUFDO0lBQy9DLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBeUI7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFnQztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN4QyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBdUI7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQzsrR0E1Q1UsWUFBWTttSEFBWixZQUFZLGNBRlgsTUFBTTs7NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZHNpdGVNb2RhbENvbXBvbmVudFN0eWxlIH0gZnJvbSAnLi4vLi4vZW51bXMvUmRzaXRlTW9kYWxDb21wb25lbnRTdHlsZS5lbnVtJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdE1vZGFsQ29tcG9uZW50IHtcclxuICBhYnN0cmFjdCBpZDogc3RyaW5nO1xyXG4gIGFic3RyYWN0IG1vZGFsVGl0bGU6IHN0cmluZyB8IG51bGw7XHJcbiAgYWJzdHJhY3QgbW9kYWxIZWFkZXI6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xyXG4gIGFic3RyYWN0IG1vZGFsQ29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XHJcbiAgYWJzdHJhY3QgbW9kYWxDb250ZW50Q29udGV4dDogUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGw7XHJcbiAgYWJzdHJhY3QgbW9kYWxBY3Rpb25zOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcclxuICBhYnN0cmFjdCBjb21wb25lbnRTdHlsZTogYW55O1xyXG4gIGFic3RyYWN0IG1vZGFsOiBIVE1MRGlhbG9nRWxlbWVudDtcclxuICBhYnN0cmFjdCBvcGVuKCk6IHZvaWQ7XHJcbiAgYWJzdHJhY3QgY2xvc2UoKTogdm9pZDtcclxuICBhYnN0cmFjdCByZXNldCgpOiB2b2lkO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxTZXJ2aWNlIHtcclxuICByZWZlcmVuY2U6IEFic3RyYWN0TW9kYWxDb21wb25lbnQgfCBudWxsID0gbnVsbDtcclxuICBkZWZhdWx0UGhvbmVNb2RhbCE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIG9wZW4oKSB7XHJcbiAgICB0aGlzLnJlZmVyZW5jZT8ub3BlbigpO1xyXG4gIH1cclxuXHJcbiAgc2V0UmVmZXJlbmNlKGVsZW1lbnQ6IEFic3RyYWN0TW9kYWxDb21wb25lbnQpIHtcclxuICAgIHRoaXMucmVmZXJlbmNlID0gZWxlbWVudDtcclxuICB9XHJcblxyXG4gIHNldEhlYWRlcihoZWFkZXI6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIGlmICghdGhpcy5yZWZlcmVuY2UpIHJldHVybjtcclxuICAgIHRoaXMucmVmZXJlbmNlLm1vZGFsSGVhZGVyID0gaGVhZGVyO1xyXG4gIH1cclxuXHJcbiAgc2V0VGl0bGUodGl0bGU6IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLnJlZmVyZW5jZSkgcmV0dXJuO1xyXG4gICAgdGhpcy5yZWZlcmVuY2UubW9kYWxUaXRsZSA9IHRpdGxlO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29udGVudChjb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+LCBjb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30pIHtcclxuICAgIGlmICghdGhpcy5yZWZlcmVuY2UpIHJldHVybjtcclxuICAgIHRoaXMucmVmZXJlbmNlLm1vZGFsQ29udGVudCA9IGNvbnRlbnQ7XHJcbiAgICB0aGlzLnJlZmVyZW5jZS5tb2RhbENvbnRlbnRDb250ZXh0ID0gY29udGV4dDtcclxuICB9XHJcblxyXG4gIHNldEFjdGlvbnMoYWN0aW9uczogVGVtcGxhdGVSZWY8YW55Pikge1xyXG4gICAgaWYgKCF0aGlzLnJlZmVyZW5jZSkgcmV0dXJuO1xyXG4gICAgdGhpcy5yZWZlcmVuY2UubW9kYWxBY3Rpb25zID0gYWN0aW9ucztcclxuICB9XHJcblxyXG4gIHNldFN0eWxlKHN0eWxlOiBSZHNpdGVNb2RhbENvbXBvbmVudFN0eWxlKSB7XHJcbiAgICBpZiAoIXRoaXMucmVmZXJlbmNlKSByZXR1cm47XHJcbiAgICB0aGlzLnJlZmVyZW5jZS5jb21wb25lbnRTdHlsZSA9IHN0eWxlO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdFBob25lTW9kYWwobW9kYWw6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIHRoaXMuZGVmYXVsdFBob25lTW9kYWwgPSBtb2RhbDtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5yZWZlcmVuY2U/LmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
39
39
|
providedIn: 'root',
|
|
40
40
|
}]
|
|
41
41
|
}] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZHJhd2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1kcmF3ZXIvbW9kYWwtZHJhd2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFHcEUsTUFBTSxPQUFnQiw0QkFBNEI7Q0FzQmpEO0FBS0QsTUFBTSxPQUFPLGtCQUFrQjtJQUgvQjtRQUlFLGNBQVMsR0FBd0MsSUFBSSxDQUFDO0tBNEJ2RDtJQTFCQyxJQUFJO1FBQ0YsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQXFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBc0M7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFzQztRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN4QyxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQy9CLENBQUM7K0dBNUJVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZHNpdGVNb2RhbERyYXdlckNvbXBvbmVudFN0eWxlIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TW9kYWxEcmF3ZXJDb21wb25lbnQge1xyXG4gIGFic3RyYWN0IHNoZWV0OiBIVE1MRWxlbWVudCB8IG51bGw7XHJcbiAgYWJzdHJhY3Qgc2hlZXRDb250ZW50czogSFRNTEVsZW1lbnQgfCBudWxsO1xyXG4gIGFic3RyYWN0IGRyYWdnYWJsZUFyZWE6IEhUTUxFbGVtZW50IHwgbnVsbDtcclxuICBhYnN0cmFjdCBzaGVldEhlaWdodDogbnVtYmVyIHwgbnVsbDtcclxuICBhYnN0cmFjdCBkcmFnUG9zaXRpb246IG51bWJlciB8IG51bGw7XHJcbiAgYWJzdHJhY3QgbWF4SGVpZ2h0OiBudW1iZXIgfCBudWxsO1xyXG4gIGFic3RyYWN0IGNsb3NlSGVpZ2h0OiBudW1iZXIgfCBudWxsO1xyXG4gIGFic3RyYWN0IHJkc2l0ZU1vZGFsQ29tcG9uZW50U3R5bGU6IGFueTtcclxuICBhYnN0cmFjdCBpZDogc3RyaW5nO1xyXG4gIGFic3RyYWN0IG1vZGFsQ29udGVudDogRWxlbWVudFJlZiB8IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xyXG4gIGFic3RyYWN0IGNvbXBvbmVudFN0eWxlOiBhbnk7XHJcbiAgYWJzdHJhY3QgbW9kYWw6IEhUTUxEaWFsb2dFbGVtZW50O1xyXG4gIGFic3RyYWN0IHNldFNoZWV0SGVpZ2h0KHZhbHVlOiBudW1iZXIpOiB2b2lkO1xyXG4gIGFic3RyYWN0IHNldElzU2hlZXRTaG93bihpc1Nob3duOiBib29sZWFuKTogdm9pZDtcclxuICBhYnN0cmFjdCBvcGVuU2hlZXQoKTogdm9pZDtcclxuICBhYnN0cmFjdCBjbG9zZVNoZWV0KCk6IHZvaWQ7XHJcbiAgYWJzdHJhY3QgdG91Y2hQb3NpdGlvbihldmVudDogYW55KTogdm9pZDtcclxuICBhYnN0cmFjdCBvbkRyYWdTdGFydChldmVudDogYW55KTogdm9pZDtcclxuICBhYnN0cmFjdCBvbkRyYWdNb3ZlKGV2ZW50OiBhbnkpOiB2b2lkO1xyXG4gIGFic3RyYWN0IG9uRHJhZ0VuZCgpOiB2b2lkO1xyXG4gIGFic3RyYWN0IHJlc2V0KCk6IHZvaWQ7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RhbERyYXdlclNlcnZpY2Uge1xyXG4gIHJlZmVyZW5jZTogQWJzdHJhY3RNb2RhbERyYXdlckNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBvcGVuKCkge1xyXG4gICAgdGhpcy5yZWZlcmVuY2U/Lm9wZW5TaGVldCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UmVmZXJlbmNlKGVsZW1lbnQ6IEFic3RyYWN0TW9kYWxEcmF3ZXJDb21wb25lbnQpIHtcclxuICAgIHRoaXMucmVmZXJlbmNlID0gZWxlbWVudDtcclxuICB9XHJcblxyXG4gIHNldENvbnRlbnQoY29udGVudDogRWxlbWVudFJlZiB8IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIGlmICghdGhpcy5yZWZlcmVuY2UpIHJldHVybjtcclxuICAgIHRoaXMucmVmZXJlbmNlLm1vZGFsQ29udGVudCA9IGNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBzZXRTdHlsZShzdHlsZTogUmRzaXRlTW9kYWxEcmF3ZXJDb21wb25lbnRTdHlsZSkge1xyXG4gICAgaWYgKCF0aGlzLnJlZmVyZW5jZSkgcmV0dXJuO1xyXG4gICAgdGhpcy5yZWZlcmVuY2UuY29tcG9uZW50U3R5bGUgPSBzdHlsZTtcclxuICB9XHJcblxyXG4gIHNldEhlaWdodCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICBpZiAoIXRoaXMucmVmZXJlbmNlKSByZXR1cm47XHJcbiAgICB0aGlzLnJlZmVyZW5jZS5tYXhIZWlnaHQgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5yZWZlcmVuY2U/LmNsb3NlU2hlZXQoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
78
78
|
providedIn: 'root',
|
|
79
79
|
}]
|
|
80
80
|
}] });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd1LWNhcm91c2VsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9uZ3UtY2Fyb3VzZWwvbmd1LWNhcm91c2VsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUgvQjtRQUlVLDJCQUFzQixHQUFzQjtZQUNsRCxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtZQUM3RCxlQUFlLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFO1lBQ3pELEtBQUssRUFBRSxDQUFDO1lBQ1IsS0FBSyxFQUFFLEdBQUc7WUFDVixRQUFRLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLElBQUk7Z0JBQ1osWUFBWSxFQUFFLElBQUk7YUFDbkI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLEtBQUs7YUFDZjtZQUNELFFBQVEsRUFBRSxHQUFHO1lBQ2IsSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxJQUFJO1lBQ1gsTUFBTSxFQUFFLGFBQWE7U0FDdEIsQ0FBQztLQXVESDtJQXREQyxJQUFJLHFCQUFxQjtRQUN2QixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxNQUFrQztRQUNyRCxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMscUJBQXFCO1lBQzdCLEdBQUcsTUFBTTtTQUNWLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQStCLEVBQUUsS0FBYTtRQUNuRCxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBK0IsRUFBRSxJQUFJLEdBQUcsSUFBSTtRQUNyRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNFLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUErQixFQUFFLElBQUksR0FBRyxJQUFJO1FBQ3RELElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9FLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUF5QixFQUFFLEtBQWEsRUFBRSxjQUFzQixDQUFDO1FBQ2hGLE1BQU0sRUFDSixJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQzVCLGVBQWUsR0FDaEIsR0FBRyxNQUFNLENBQUM7UUFDWCxJQUFJLEtBQUssR0FBRyxDQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxPQUFPLFdBQVcsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLEtBQUssR0FBRyxDQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxPQUFPLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksS0FBSyxHQUFHLENBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBeEVVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5ndUNhcm91c2VsLCBOZ3VDYXJvdXNlbENvbmZpZyB9IGZyb20gJ0BuZ3UvY2Fyb3VzZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5ndUNhcm91c2VsU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfZGVmYXVsdENhcm91c2VsQ29uZmlnOiBOZ3VDYXJvdXNlbENvbmZpZyA9IHtcclxuICAgIGdyaWQ6IHsgeHM6IDEuMiwgc206IDEuMiwgbWQ6IDMuMiwgbGc6IDQuMiwgeGw6IDUuMiwgYWxsOiAwIH0sXHJcbiAgICBncmlkQnJlYWtwb2ludHM6IHsgc206IDM2MCwgbWQ6IDc2OCwgbGc6IDEzNjYsIHhsOiAxOTIwIH0sXHJcbiAgICBzbGlkZTogMSxcclxuICAgIHNwZWVkOiA1MDAsXHJcbiAgICBpbnRlcnZhbDoge1xyXG4gICAgICB0aW1pbmc6IDcwMDAsXHJcbiAgICAgIGluaXRpYWxEZWxheTogMTAwMCxcclxuICAgIH0sXHJcbiAgICBwb2ludDoge1xyXG4gICAgICB2aXNpYmxlOiBmYWxzZSxcclxuICAgIH0sXHJcbiAgICB2ZWxvY2l0eTogMC41LFxyXG4gICAgbG9hZDogMSxcclxuICAgIGxvb3A6IHRydWUsXHJcbiAgICB0b3VjaDogdHJ1ZSxcclxuICAgIGVhc2luZzogJ2Vhc2UtaW4tb3V0JyxcclxuICB9O1xyXG4gIGdldCBkZWZhdWx0Q2Fyb3VzZWxDb25maWcoKSB7XHJcbiAgICByZXR1cm4geyAuLi5KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuX2RlZmF1bHRDYXJvdXNlbENvbmZpZykpIH07XHJcbiAgfVxyXG5cclxuICBjdXN0b21DYXJvdXNlbENvbmZpZyhjb25maWc6IFBhcnRpYWw8Tmd1Q2Fyb3VzZWxDb25maWc+KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi50aGlzLmRlZmF1bHRDYXJvdXNlbENvbmZpZyxcclxuICAgICAgLi4uY29uZmlnLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG1vdmVUbyhjYXJvdXNlbDogTmd1Q2Fyb3VzZWw8YW55LCBhbnk+LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjYXJvdXNlbC5tb3ZlVG8oaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsTGVmdChjYXJvdXNlbDogTmd1Q2Fyb3VzZWw8YW55LCBhbnk+LCBsb29wID0gdHJ1ZSkge1xyXG4gICAgaWYgKGNhcm91c2VsLmlzRmlyc3QgfHwgY2Fyb3VzZWwuYWN0aXZlUG9pbnQgPCAxKSB7XHJcbiAgICAgIGlmIChsb29wKSB7XHJcbiAgICAgICAgY2Fyb3VzZWwubW92ZVRvKGNhcm91c2VsLnBvaW50TnVtYmVyc1tjYXJvdXNlbC5wb2ludE51bWJlcnMubGVuZ3RoIC0gMV0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjYXJvdXNlbC5tb3ZlVG8oY2Fyb3VzZWwuYWN0aXZlUG9pbnQgLSAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNjcm9sbFJpZ2h0KGNhcm91c2VsOiBOZ3VDYXJvdXNlbDxhbnksIGFueT4sIGxvb3AgPSB0cnVlKSB7XHJcbiAgICBpZiAoY2Fyb3VzZWwuaXNMYXN0IHx8IGNhcm91c2VsLmFjdGl2ZVBvaW50ID4gY2Fyb3VzZWwucG9pbnROdW1iZXJzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgaWYgKGxvb3ApIHtcclxuICAgICAgICBjYXJvdXNlbC5tb3ZlVG8oMCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNhcm91c2VsLm1vdmVUbyhjYXJvdXNlbC5hY3RpdmVQb2ludCArIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmVlZFNob3dDb250cm9scyhjb25maWc6IE5ndUNhcm91c2VsQ29uZmlnLCB3aWR0aDogbnVtYmVyLCBpdGVtc0xlbmd0aDogbnVtYmVyID0gMCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBncmlkOiB7IHhzLCBzbSwgbWQsIGxnLCB4bCB9LFxyXG4gICAgICBncmlkQnJlYWtwb2ludHMsXHJcbiAgICB9ID0gY29uZmlnO1xyXG4gICAgaWYgKHdpZHRoID4gKGdyaWRCcmVha3BvaW50cz8ueGwgPz8gMCkpIHtcclxuICAgICAgcmV0dXJuIGl0ZW1zTGVuZ3RoID4gKHhsID8/IDApO1xyXG4gICAgfVxyXG4gICAgaWYgKHdpZHRoID4gKGdyaWRCcmVha3BvaW50cz8ubGcgPz8gMCkpIHtcclxuICAgICAgcmV0dXJuIGl0ZW1zTGVuZ3RoID4gbGc7XHJcbiAgICB9XHJcbiAgICBpZiAod2lkdGggPiAoZ3JpZEJyZWFrcG9pbnRzPy5tZCA/PyAwKSkge1xyXG4gICAgICByZXR1cm4gaXRlbXNMZW5ndGggPiBtZDtcclxuICAgIH1cclxuICAgIGlmICh3aWR0aCA+IChncmlkQnJlYWtwb2ludHM/LnNtID8/IDApKSB7XHJcbiAgICAgIHJldHVybiBpdGVtc0xlbmd0aCA+IHNtO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW1zTGVuZ3RoID4geHM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -25,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
25
25
|
type: Inject,
|
|
26
26
|
args: [DOCUMENT]
|
|
27
27
|
}] }] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL3NlcnZpY2VzL3Bob25lL3Bob25lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtuRCxNQUFNLE9BQU8sWUFBWTtJQUt2QixZQUFzQyxRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSmhELGFBQVEsR0FBRyxNQUFNLENBQUM7UUFFbkIsd0JBQW1CLEdBQVksSUFBSSxDQUFDLENBQUMsZ0VBQWdFO0lBRWpELENBQUM7SUFFNUQsK0VBQStFO0lBQ3hFLFlBQVksQ0FBQyxJQUFZO1FBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFVBQVUsSUFBSSxDQUFDLENBQUM7UUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7SUFDOUQsQ0FBQzsrR0FaVSxZQUFZLGtCQUtILFFBQVE7bUhBTGpCLFlBQVksY0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTWMsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQaG9uZVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgdGVsUmVnZXggPSAvdGVsOi87XHJcblxyXG4gIHB1YmxpYyBwaG9uZU1vZGFsSXNBbGxvd2VkOiBib29sZWFuID0gdHJ1ZTsgLy8gdmFyaWF2ZWwgdXRpbGl6YWRhIHBhcmEgcGVybWl0aXIvYmxvcXVlYXIgbyBtb2RhbCBkZSB0ZWxlZm9uZVxyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCkge31cclxuXHJcbiAgLyoqIFZlcmlmaWNhIHNlIG8gJ2hyZWYnIMOpIGRlIHRlbGVmb25lIGUgc2UgYSBqYW5lbGEgZXN0w6EgZW0gdGFtYW5obyBkZXNrdG9wICovXHJcbiAgcHVibGljIGlzUGhvbmVNb2RhbChocmVmOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5kb2N1bWVudC5kZWZhdWx0Vmlldz8uaW5uZXJXaWR0aCA/PyAwO1xyXG4gICAgY29uc3QgU01BTExfQlJFQUtQT0lOVCA9IDcxODtcclxuICAgIHJldHVybiB0aGlzLnRlbFJlZ2V4LnRlc3QoaHJlZikgJiYgd2lkdGggPiBTTUFMTF9CUkVBS1BPSU5UO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -89,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
89
89
|
type: Inject,
|
|
90
90
|
args: [PLATFORM_ID]
|
|
91
91
|
}] }] });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmFjeS10b29scy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2l0ZS1mcm9udC1lbmQtbGliL3NyYy9saWIvc2VydmljZXMvcHJpdmFjeS10b29scy9wcml2YWN5LXRvb2xzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNaEUsTUFBTSxPQUFPLG1CQUFtQjtJQU85QixZQUMyQixRQUFrQixFQUNmLFVBQWtCO1FBRHJCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBUmhELHlCQUFvQixHQUFHLG9CQUFvQixDQUFDO1FBQzVDLHdCQUFtQixHQUFHLG1CQUFtQixDQUFDO1FBQzFDLDhCQUF5QixHQUE2QixJQUFJLENBQUM7UUFDM0Qsa0JBQWEsR0FBOEIsRUFBRSxDQUFDO1FBQzlDLGtCQUFhLEdBQVEsSUFBSSxDQUFDO0lBS3ZCLENBQUM7SUFFSixZQUFZO0lBQ0wsTUFBTSxDQUFDLE9BQWtDO1FBQzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO0lBQy9CLENBQUM7SUFFRCx5QkFBeUI7SUFDbEIsaUJBQWlCLENBQUMsZUFBdUI7UUFDOUMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFFOUcsSUFB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RUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7K0dBekZVLG1CQUFtQixrQkFRcEIsUUFBUSxhQUNSLFdBQVc7bUhBVFYsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVNJLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyLCBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcml2YWN5VG9vbHNDb25maWdPcHRpb25zLCBQcml2YWN5VG9vbHNDb29raWVCYW5uZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvcHJpdmFjeS10b29scy9wcml2YWN5LXRvb2xzLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcml2YWN5VG9vbHNTZXJ2aWNlIHtcclxuICBjb29raWVCYW5uZXJTY3JpcHRJZCA9ICdQcml2YWN5VG9vbHNTY3JpcHQnO1xyXG4gIGNvb2tpZUJhbm5lclN0eWxlSWQgPSAnUHJpdmFjeVRvb2xzU3R5bGUnO1xyXG4gIGNvb2tpZUJhbm5lclNjcmlwdEVsZW1lbnQ6IEhUTUxTY3JpcHRFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcbiAgY29uZmlnT3B0aW9uczogUHJpdmFjeVRvb2xzQ29uZmlnT3B0aW9ucyA9IHt9O1xyXG4gIGNvb2tpZUNvbnNlbnQ6IGFueSA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHVibGljIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHB1YmxpYyBwbGF0Zm9ybUlkOiBvYmplY3QsXHJcbiAgKSB7fVxyXG5cclxuICAvKiBDb25maWcgKi9cclxuICBwdWJsaWMgY29uZmlnKG9wdGlvbnM6IFByaXZhY3lUb29sc0NvbmZpZ09wdGlvbnMpIHtcclxuICAgIHRoaXMuY29uZmlnT3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvKiBTZXR1cCBjb29raWUgQmFubmVyICovXHJcbiAgcHVibGljIHNldHVwQ29va2llQmFubmVyKHVuaWRhZGVCYXNlUGF0aDogc3RyaW5nKSB7XHJcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICBjb25zdCBiYW5uZXIgPSB0aGlzLmNvbmZpZ09wdGlvbnM/LmNvb2tpZUJhbm5lcnM/LmZpbmQoKGJhbm5lcikgPT4gYmFubmVyLmJhc2VQYXRoLmluY2x1ZGVzKHVuaWRhZGVCYXNlUGF0aCkpO1xyXG5cclxuICAgICAgaWYgKGJhbm5lcikge1xyXG4gICAgICAgIHRoaXMuYWRkQ29va2llQmFubmVyKGJhbm5lcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuQ29va2llQmFubmVyKCkge1xyXG4gICAgaWYgKHRoaXMuY29va2llQ29uc2VudCAmJiB0aGlzLmNvb2tpZUJhbm5lclNjcmlwdEVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5jb29raWVDb25zZW50LnByaXZhY3lUb29sc1Nob3dDb29raWVOb3RpY2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIEFkZCBjb29raWUgYmFubmVyIHN0eWxlIGFuZCBzY3JpcHQgKi9cclxuICBwcml2YXRlIGFkZENvb2tpZUJhbm5lcihiYW5uZXI6IFByaXZhY3lUb29sc0Nvb2tpZUJhbm5lcikge1xyXG4gICAgdGhpcy5jb29raWVCYW5uZXJTY3JpcHRFbGVtZW50ID0gbnVsbDtcclxuICAgIHRoaXMuYWRkQ29va2llQmFubmVyU3R5bGUoYmFubmVyLnN0eWxlU3JjKTtcclxuICAgIHRoaXMuYWRkQ29va2llQmFubmVyU2NyaXB0KGJhbm5lci5zY3JpcHRTcmMpO1xyXG4gIH1cclxuXHJcbiAgLyogQWRkIGNvb2tpZSBiYW5uZXIgc3R5bGUuICovXHJcbiAgcHVibGljIGFkZENvb2tpZUJhbm5lclN0eWxlKHNyYzogc3RyaW5nKSB7XHJcbiAgICBpZiAoaXNQbGF0Zm9ybVNlcnZlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnlSZW1vdmVQb3J0YWwnKT8ucmVtb3ZlKCk7XHJcblxyXG4gICAgY29uc3Qgb2xkU3R5bGUgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuY29va2llQmFubmVyU3R5bGVJZCk7XHJcblxyXG4gICAgaWYgKG9sZFN0eWxlKSB7XHJcbiAgICAgIG9sZFN0eWxlLnJlbW92ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHN0eWxlID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XHJcbiAgICBzdHlsZS5pZCA9IHRoaXMuY29va2llQmFubmVyU3R5bGVJZDtcclxuICAgIHN0eWxlLnJlbCA9ICdzdHlsZXNoZWV0JztcclxuICAgIHN0eWxlLnR5cGUgPSAndGV4dC9jc3MnO1xyXG4gICAgc3R5bGUuaHJlZiA9IHNyYztcclxuICAgIHN0eWxlLm1lZGlhID0gJ25vbmUnO1xyXG5cclxuICAgIHN0eWxlLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7XHJcbiAgICAgIHN0eWxlLm1lZGlhID0gJ2FsbCc7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc3R5bGUpO1xyXG4gIH1cclxuXHJcbiAgLyogQWRkIGNvb2tpZSBiYW5uZXIgc2NyaXB0LiAqL1xyXG4gIHB1YmxpYyBhZGRDb29raWVCYW5uZXJTY3JpcHQoc3JjOiBzdHJpbmcpIHtcclxuICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkgfHwgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcclxuXHJcbiAgICAod2luZG93IGFzIGFueSlbJ2Nvb2tpZWNvbnNlbnQnXSA9IG51bGw7XHJcblxyXG4gICAgY29uc3Qgb2xkU2NyaXB0ID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmNvb2tpZUJhbm5lclNjcmlwdElkKTtcclxuXHJcbiAgICBpZiAob2xkU2NyaXB0KSB7XHJcbiAgICAgIG9sZFNjcmlwdC5yZW1vdmUoKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICBzY3JpcHQuaWQgPSB0aGlzLmNvb2tpZUJhbm5lclNjcmlwdElkO1xyXG4gICAgc2NyaXB0LnNyYyA9IHNyYztcclxuXHJcbiAgICBzY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcclxuICAgICAgdGhpcy5jb29raWVCYW5uZXJTY3JpcHRFbGVtZW50ID0gc2NyaXB0O1xyXG4gICAgICB0aGlzLmNvb2tpZUNvbnNlbnQgPSAod2luZG93IGFzIGFueSlbJ2Nvb2tpZWNvbnNlbnQnXTtcclxuICAgICAgKHdpbmRvdyBhcyBhbnkpWydwb3J0YWxCYW5uZXInXT8uY2FsbCgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -486,4 +486,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
486
486
|
type: Inject,
|
|
487
487
|
args: [DOCUMENT]
|
|
488
488
|
}] }] });
|
|
489
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zZW8vc2VvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBUXpCLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUsvRCxNQUFNLE9BQU8sVUFBVTtJQXlCckIsWUFDVSxLQUFZLEVBQ1osSUFBVSxFQUNWLFFBQWtCLEVBQ0UsU0FBb0IsRUFDdEIsUUFBa0I7UUFKcEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLFNBQUksR0FBSixJQUFJLENBQU07UUFDVixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0UsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBN0J2QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsV0FBVyxDQUFDO1FBRTNCLFdBQU0sR0FBRztZQUNkLG1DQUFtQztZQUNuQyw0Q0FBNEM7WUFDNUMsa0RBQWtEO1lBQ2xELDZCQUE2QjtTQUM5QixDQUFDO1FBQ0ssZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFJeEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0Qix5QkFBb0IsR0FBRyxpQkFBaUIsQ0FBQztRQUUxQyxZQUFPLEdBQVEsSUFBSSxDQUFDO1FBQ3BCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQVcsRUFBRSxDQUFD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LFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxVQUFrQjtRQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RCxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxFQUFFLE9BQU8sR0FBRyxJQUFJLEVBQUUsV0FBVyxHQUFHLEVBQUUsRUFBRSxXQUFXLEdBQUcsRUFBRSxFQUFFLFdBQVcsR0FBRyxFQUFFLEVBQWM7UUFDcEcsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQzsrR0F0Z0JVLFVBQVUsbUZBNkJYLFVBQVUsYUFDVixRQUFRO21IQTlCUCxVQUFVLGNBRlQsTUFBTTs7NEZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQThCSSxNQUFNOzJCQUFDLFVBQVU7OzBCQUNqQixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBET0NVTUVOVCwgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgKiBhcyBoZSBmcm9tICdoZSc7XG5cbmltcG9ydCB7IFNvY2lhbE1ldGFQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NvY2lhbC1tZXRhLXByb3BlcnRpZXMubW9kZWwnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYnNJdGVtcyB9IGZyb20gJy4uLy4uL21vZGVscy9icmVhZGNydW1icy9icmVhZGNydW1icy1pdGVtcy5tb2RlbCc7XG5pbXBvcnQgeyBCcmVhZGNydW1ic0pzb25JdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLWpzb24taXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBTZW9EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Nlby9zZW8tZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBTZW9VbmlkYWRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Nlby9zZW8tdW5pZGFkZS5tb2RlbCc7XG5pbXBvcnQgeyBXcFBvc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvd29yZHByZXNzL3Bvc3QvcG9zdC5tb2RlbCc7XG5pbXBvcnQgeyBnZXRTaXRlVXJsLCByZW1vdmVIdG1sVGFncyB9IGZyb20gJy4uLy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgTElCX0NPTkZJRywgTGliQ29uZmlnIH0gZnJvbSAnLi4vLi4vdG9rZW5zL0xpYkNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTZW9TZXJ2aWNlIHtcbiAgcHVibGljIHNlcGFyYXRvciA9ICcgLSAnO1xuICBwdWJsaWMgZGVmYXVsdFRpdGxlID0gJ1JlZGUgROKAmU9yJztcbiAgcHVibGljIGFjdGl2ZURlc2NyaXB0aW9uITogc3RyaW5nO1xuICBwdWJsaWMgc2FtZUFzID0gW1xuICAgICdodHRwczovL3d3dy5mYWNlYm9vay5jb20vcmVkZWRvci8nLFxuICAgICdodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL3JlZGVkb3Jfb2ZpY2lhbC8nLFxuICAgICdodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9yZWRlZG9yLXNhb2x1aXonLFxuICAgICdodHRwczovL3R3aXR0ZXIuY29tL3JlZGVkb3InLFxuICBdO1xuICBwdWJsaWMgdHdpdHRlclVzZXIgPSAnQHJlZGVkb3InO1xuXG4gIHByaXZhdGUgY2Fub25pY2FsVGFnITogSFRNTExpbmtFbGVtZW50O1xuICBwcml2YXRlIGpzb25UYWchOiBIVE1MU2NyaXB0RWxlbWVudDtcbiAgcHJpdmF0ZSBqc29uVGFnSWQgPSAnc2VvSlNPTic7XG4gIHByaXZhdGUgYnJlYWRjcnVtYnNKc29uVGFnITogSFRNTFNjcmlwdEVsZW1lbnQ7XG4gIHByaXZhdGUgYnJlYWRjcnVtYnNKc29uVGFnSWQgPSAnYnJlYWRjcnVtYnNKU09OJztcblxuICBwdWJsaWMgdW5pZGFkZTogYW55ID0gbnVsbDtcbiAgcHVibGljIHVuaWRhZGVOYW1lOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHVuaWRhZGVQYXRoOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHVuaWRhZGVTbHVnOiBzdHJpbmcgPSAnJztcblxuICBwdWJsaWMgY3VzdG9tSnNvblR5cGU6IGFueVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0aXRsZTogVGl0bGUsXG4gICAgcHJpdmF0ZSBtZXRhOiBNZXRhLFxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxuICAgIEBJbmplY3QoTElCX0NPTkZJRykgcHJpdmF0ZSBsaWJDb25maWc6IExpYkNvbmZpZyxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgKSB7fVxuXG4gIHB1YmxpYyBzZXRGdWxsU2VvKGRhdGE6IFNlb0RhdGEpIHtcbiAgICB0aGlzLnNldFRpdGxlKGRhdGEudGl0bGUudGV4dCwgISFkYXRhLnRpdGxlLnN1Yik7XG4gICAgdGhpcy5zZXREZXNjcmlwdGlvbihkYXRhLmRlc2NyaXB0aW9uKTtcbiAgICB0aGlzLnNldENhbm9uaWNhbEhyZWYoZGF0YS5jYW5vbmljYWwpO1xuICAgIHRoaXMuc2V0UGFnZUpzb24oKTtcbiAgICB0aGlzLnNldFNvY2lhbFRhZ3MoZGF0YS5zb2NpYWxUYWdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGFnIGRlc2NyaXB0aW9uIGRhIHDDoWdpbmFcbiAgICogQHBhcmFtIGNvbnRlbnQgY29udGXDumRvIGRhIGRlc2NyacOnw6NvIDxzdHJpbmc+XG4gICAqL1xuICBwdWJsaWMgc2V0RGVzY3JpcHRpb24oY29udGVudDogc3RyaW5nKTogU2VvU2VydmljZSB7XG4gICAgY29uc3QgZGVzY1RhZyA9IHRoaXMubWV0YS5nZXRUYWcoXCJuYW1lPSdkZXNjcmlwdGlvbidcIik7XG4gICAgaWYgKGNvbnRlbnQpIHtcbiAgICAgIGNvbnRlbnQgPSBoZS5kZWNvZGUoY29udGVudCk7XG4gICAgICBjb250ZW50ID0gcmVtb3ZlSHRtbFRhZ3MoY29udGVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRlbnQgPSAnJztcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVEZXNjcmlwdGlvbiA9IGNvbnRlbnQ7XG4gICAgY29uc3QgdGFnQ29udGVudCA9IHsgbmFtZTogJ2Rlc2NyaXB0aW9uJywgY29udGVudCB9O1xuICAgIGlmIChkZXNjVGFnKSB7XG4gICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHRhZ0NvbnRlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1ldGEuYWRkVGFnKHRhZ0NvbnRlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgbWV0YSB0YWdzIHBhcmEgYSBww6FnaW5hXG4gICAqIEBwYXJhbSB0YWcgbm9tZSBkYSB0YWcgbWV0YVxuICAgKiBAcGFyYW0gY29udGVudCBjb250ZcO6ZG8gZGEgdGFnIG1ldGFcbiAgICogQHBhcmFtIHR5cGUgdGlwbyBkZSB0YWcgbWV0YVxuICAgKi9cbiAgcHVibGljIHNldE1ldGFUYWcodGFnOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZywgdHlwZSA9ICduYW1lJykge1xuICAgIGNvbnN0IG1ldGF0YWcgPSB0aGlzLm1ldGEuZ2V0VGFnKGAke3R5cGV9PScke3RhZ30nYCk7XG4gICAgY29udGVudCA9IGhlLmRlY29kZShjb250ZW50KTtcbiAgICBjb250ZW50ID0gcmVtb3ZlSHRtbFRhZ3MoY29udGVudCk7XG4gICAgY29uc3QgdGFnQ29udGVudCA9IHtcbiAgICAgIFt0eXBlXTogdGFnLFxuICAgICAgY29udGVudCxcbiAgICB9O1xuICAgIGlmICghbWV0YXRhZykge1xuICAgICAgdGhpcy5tZXRhLmFkZFRhZyh0YWdDb250ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh0YWdDb250ZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIG1ldGEgdGFncyBkYSBww6FnaW5hXG4gICAqIEBwYXJhbSB0YWcgbm9tZSBkYSB0YWcgbWV0YVxuICAgKiBAcGFyYW0gY29udGVudCBjb250ZcO6ZG8gZGEgdGFnIG1ldGFcbiAgICogQHBhcmFtIGF0dHIgYXRyaWJ1dG8gZGEgdGFnIG1ldGFcbiAgICogQHBhcmFtIHR5cGUgdGlwbyBkZSB0YWcgbWV0YVxuICAgKi9cbiAgcHVibGljIHJlbW92ZVRhZyh0YWc6IHN0cmluZywgY29udGVudDogc3RyaW5nLCBhdHRyOiBzdHJpbmcsIHR5cGUgPSAnbmFtZScpIHtcbiAgICBjb25zdCBtZXRhdGFnID0gdGhpcy5tZXRhLmdldFRhZyhgJHt0eXBlfT0nJHt0YWd9J2ApO1xuICAgIGlmIChtZXRhdGFnKSB7XG4gICAgICB0aGlzLm1ldGEucmVtb3ZlVGFnKGAke2F0dHJ9PSR7Y29udGVudH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIG1ldGEgdGFncyBwYXJhIEZhY2Vib29rXG4gICAqIEBwYXJhbSB0aXRsZSB0w610dWxvIHBhcmEgbyBmYWNlYm9va1xuICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gZGVzY3Jpw6fDo28gcGFyYSBvIGZhY2Vib29rXG4gICAqIEBwYXJhbSB1cmwgdXJsIHBhcmEgZGVmaW5pw6fDo28gZG8gZmFjZWJvb2tcbiAgICogQHBhcmFtIGltZyBpbWFnZW0gcGFyYSBkZWZpbmnDp8OjbyBubyBmYWNlYm9va1xuICAgKi9cbiAgcHVibGljIHNldE1ldGFGYWNlYm9vayh0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCB1cmw6IHN0cmluZywgaW1nOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6dXJsJywgdXJsLCAncHJvcGVydHknKTtcbiAgICB0aGlzLnNldE1ldGFUYWcoJ29nOnRpdGxlJywgdGl0bGUsICdwcm9wZXJ0eScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6ZGVzY3JpcHRpb24nLCBkZXNjcmlwdGlvbiwgJ3Byb3BlcnR5Jyk7XG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzp0eXBlJywgJ3dlYnNpdGUnLCAncHJvcGVydHknKTtcbiAgICB0aGlzLnNldE1ldGFUYWcoJ29nOmltYWdlJywgaW1nID8/ICcnLCAncHJvcGVydHknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgbWV0YSB0YWdzIHBhcmEgVHdpdHRlclxuICAgKiBAcGFyYW0gdGl0bGUgdMOtdHVsbyBwYXJhIG8gdHdpdHRlclxuICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gZGVzY3Jpw6fDo28gcGFyYSBvIHR3aXR0ZXJcbiAgICogQHBhcmFtIHVybCB1cmwgcGFyYSBvIHR3aXR0ZXJcbiAgICogQHBhcmFtIGltZyBpbWFnZW0gcGFyYSBkZWZpbmnDp8OjbyBubyB0d2l0dGVyXG4gICAqL1xuICBwdWJsaWMgc2V0TWV0YVR3aXR0ZXIodGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdXJsOiBzdHJpbmcsIGltZzogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICB0aGlzLnNldE1ldGFUYWcoJ3R3aXR0ZXI6c2l0ZScsIHVybCwgJ25hbWUnKTtcbiAgICB0aGlzLnNldE1ldGFUYWcoJ3R3aXR0ZXI6dGl0bGUnLCB0aXRsZSwgJ25hbWUnKTtcbiAgICB0aGlzLnNldE1ldGFUYWcoJ3R3aXR0ZXI6ZGVzY3JpcHRpb24nLCBkZXNjcmlwdGlvbiwgJ25hbWUnKTtcbiAgICB0aGlzLnNldE1ldGFUYWcoJ3R3aXR0ZXI6aW1hZ2UnLCBpbWcgPz8gJycsICduYW1lJyk7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIHRhZ3MgZGUgcmVkZXMgc29jaWFpcyAoVHdpdHRlciBlIE9wZW4gR3JhcGgpXG4gICAqIEBwYXJhbSBwcm9wZXJ0aWVzXG4gICAqL1xuICBzZXRTb2NpYWxUYWdzKHByb3BlcnRpZXM/OiBTb2NpYWxNZXRhUHJvcGVydGllcykge1xuICAgIGNvbnN0IHBhZ2VQYXRoID0gdGhpcy5sb2NhdGlvbi5wYXRoKCk7XG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xuICAgIGxldCBkZWZhdWx0UHJvcGVydGllczogU29jaWFsTWV0YVByb3BlcnRpZXMgPSB7XG4gICAgICB0d2l0dGVyQ2FyZDogJ3N1bW1hcnknLFxuICAgICAgdHdpdHRlclNpdGU6IHRoaXMudHdpdHRlclVzZXIsXG4gICAgICB0eXBlOiAnd2Vic2l0ZScsXG4gICAgICB0aXRsZTogdGhpcy5nZXRUaXRsZSgpLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuYWN0aXZlRGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB1cmw6IGAke3NpdGV1cmx9JHtwYWdlUGF0aH1gLFxuICAgICAgaW1hZ2U6IHRoaXMubGliQ29uZmlnPy5sb2dvUGF0aCA/IGAke3NpdGV1cmx9JHt0aGlzLmxpYkNvbmZpZy5sb2dvUGF0aH1gIDogJ2h0dHBzOi8vd3d3LnJlZGVkb3JzYW9sdWl6LmNvbS5ici9hc3NldHMvaW1ncy9sb2dvLXJlZGVkb3ItYmx1ZS5wbmcnLFxuICAgIH07XG4gICAgaWYgKHByb3BlcnRpZXMpIHtcbiAgICAgIGRlZmF1bHRQcm9wZXJ0aWVzID0geyAuLi5kZWZhdWx0UHJvcGVydGllcywgLi4ucHJvcGVydGllcyB9O1xuICAgIH1cbiAgICB0aGlzLnNldE1ldGFUYWcoJ3R3aXR0ZXI6Y2FyZCcsIGRlZmF1bHRQcm9wZXJ0aWVzLnR3aXR0ZXJDYXJkIHx8ICcnLCAnbmFtZScpXG4gICAgICAuc2V0TWV0YVRhZygndHdpdHRlcjpzaXRlJywgZGVmYXVsdFByb3BlcnRpZXMudHdpdHRlclNpdGUgfHwgJycsICduYW1lJylcbiAgICAgIC5zZXRNZXRhVGFnKCdvZzp0eXBlJywgZGVmYXVsdFByb3BlcnRpZXMudHlwZSB8fCAnJywgJ3Byb3BlcnR5JylcbiAgICAgIC5zZXRNZXRhVGFnKCdvZzp0aXRsZScsIGRlZmF1bHRQcm9wZXJ0aWVzLnRpdGxlIHx8ICcnLCAncHJvcGVydHknKVxuICAgICAgLnNldE1ldGFUYWcoJ29nOmRlc2NyaXB0aW9uJywgZGVmYXVsdFByb3BlcnRpZXMuZGVzY3JpcHRpb24gfHwgJycsICdwcm9wZXJ0eScpXG4gICAgICAuc2V0TWV0YVRhZygnb2c6dXJsJywgZGVmYXVsdFByb3BlcnRpZXMudXJsIHx8ICcnLCAncHJvcGVydHknKVxuICAgICAgLnNldE1ldGFUYWcoJ29nOmltYWdlJywgZGVmYXVsdFByb3BlcnRpZXMuaW1hZ2UgfHwgJycsICdwcm9wZXJ0eScpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIHTDrXR1bG8gZGEgcMOhZ2luYVxuICAgKiBAcGFyYW0gdGl0bGUgdMOtdHVsbyBkYSBww6FnaW5hIDxzdHJpbmc+XG4gICAqIEBwYXJhbSBzdWIgU2Ugw6kgc3Vic2l0ZSBhY3Jlc2NlbnRhIHVuaWRhZGUgPGJvb2xlYW4+XG4gICAqL1xuICBwdWJsaWMgc2V0VGl0bGUodGl0bGU6IHN0cmluZywgc3ViID0gZmFsc2UpIHtcbiAgICBpZiAodGl0bGUgJiYgdGl0bGUgIT09ICcnKSB7XG4gICAgICB0aXRsZSA9IGhlLmRlY29kZSh0aXRsZSk7XG4gICAgICB0aXRsZSA9IHJlbW92ZUh0bWxUYWdzKHRpdGxlKTtcbiAgICAgIGlmIChzdWIpIHtcbiAgICAgICAgdGl0bGUgPSBoZS5kZWNvZGUoYCR7dGl0bGV9JHt0aGlzLnNlcGFyYXRvcn0ke3RoaXMudW5pZGFkZU5hbWV9YCk7XG4gICAgICB9XG4gICAgICB0aGlzLnRpdGxlLnNldFRpdGxlKHRpdGxlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogT2J0ZW0gdMOtdHVsbyBhdHVhbCBkYSBww6FnaW5hICovXG4gIHB1YmxpYyBnZXRUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRpdGxlLmdldFRpdGxlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0NDA0VGl0bGUoY29tcG9uZW50OiBzdHJpbmcgPSAnRGVmYXVsdCBDb21wb25lbnQnKSB7XG4gICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQgIT09ICcnKSB7XG4gICAgICBjb21wb25lbnQgPSBoZS5kZWNvZGUoY29tcG9uZW50KTtcbiAgICAgIGNvbXBvbmVudCA9IHJlbW92ZUh0bWxUYWdzKGNvbXBvbmVudCk7XG4gICAgICBpZiAodGhpcy51bmlkYWRlTmFtZSkge1xuICAgICAgICBjb21wb25lbnQgPSBoZS5kZWNvZGUoYCR7Y29tcG9uZW50fSR7dGhpcy5zZXBhcmF0b3J9JHt0aGlzLnVuaWRhZGVOYW1lfWApO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB0aXRsZSA9IGBFcnJvIDQwNCAtICR7Y29tcG9uZW50fSAtICR7dGhpcy5saWJDb25maWc/LnNpdGVOYW1lfSAtICR7dGhpcy5sb2NhdGlvbi5wYXRoKCl9YDtcbiAgICB0aGlzLnRpdGxlLnNldFRpdGxlKHRpdGxlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBzZXQ1MDBUaXRsZShjb21wb25lbnQ6IHN0cmluZyA9ICdEZWZhdWx0IENvbXBvbmVudCcpIHtcbiAgICBpZiAoY29tcG9uZW50ICYmIGNvbXBvbmVudCAhPT0gJycpIHtcbiAgICAgIGNvbXBvbmVudCA9IGhlLmRlY29kZShjb21wb25lbnQpO1xuICAgICAgY29tcG9uZW50ID0gcmVtb3ZlSHRtbFRhZ3MoY29tcG9uZW50KTtcbiAgICAgIGlmICh0aGlzLnVuaWRhZGVOYW1lKSB7XG4gICAgICAgIGNvbXBvbmVudCA9IGhlLmRlY29kZShgJHtjb21wb25lbnR9JHt0aGlzLnNlcGFyYXRvcn0ke3RoaXMudW5pZGFkZU5hbWV9YCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHRpdGxlID0gYEVycm8gNTAwIC0gJHtjb21wb25lbnR9IC0gJHt0aGlzLmxpYkNvbmZpZz8uc2l0ZU5hbWV9IC0gJHt0aGlzLmxvY2F0aW9uLnBhdGgoKX1gO1xuICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIENyaWEgdGFnIHNjcmlwdCBwYXJhIEpTT04gZGUgYnJlYWRjcnVtYnMgKi9cbiAgcHJpdmF0ZSBjcmVhdGVCcmVhZGNydW1ic0pTT05UYWcoKTogSFRNTFNjcmlwdEVsZW1lbnQge1xuICAgIGNvbnN0IHRhZzogSFRNTFNjcmlwdEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHRhZy5pZCA9IHRoaXMuYnJlYWRjcnVtYnNKc29uVGFnSWQ7XG4gICAgdGFnLnR5cGUgPSAnYXBwbGljYXRpb24vbGQranNvbic7XG4gICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRhZyk7XG4gICAgdGhpcy5icmVhZGNydW1ic0pzb25UYWcgPSB0YWc7XG4gICAgcmV0dXJuIHRhZztcbiAgfVxuXG4gIC8qKiBSZXRvcm5hIHRhZyBwYXJhIHNjcmlwdCBqc29uIGRlIGJyZWFkY3J1bWJzIG91IGNyaWEgc2UgbsOjbyBob3V2ZXIuICovXG4gIHByaXZhdGUgZ2V0QnJlYWRjcnVtYnNKU09OVGFnKCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZG9jdW1lbnQuaGVhZC5jaGlsZHJlbjtcbiAgICBsZXQgaTogbnVtYmVyO1xuICAgIGZvciAoaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZWxlbSA9IGVsZW1lbnRzW2ldIGFzIEhUTUxTY3JpcHRFbGVtZW50O1xuICAgICAgaWYgKGVsZW0gJiYgZWxlbS5pZCA9PT0gdGhpcy5icmVhZGNydW1ic0pzb25UYWdJZCkge1xuICAgICAgICByZXR1cm4gZWxlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQnJlYWRjcnVtYnNKU09OVGFnKCk7XG4gIH1cblxuICAvKiogRGVmaW5lIG8gSlNPTiBkZSBicmVhZGNydW1icyBkYSBww6FnaW5hICovXG4gIHB1YmxpYyBzZXRCcmVhZGNydW1ic0pzb24oaXRlbXM6IEJyZWFkY3J1bWJzSXRlbXNbXSkge1xuICAgIHRoaXMuYnJlYWRjcnVtYnNKc29uVGFnID0gdGhpcy5nZXRCcmVhZGNydW1ic0pTT05UYWcoKTtcbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgJ0Bjb250ZXh0JzogJ2h0dHA6Ly9zY2hlbWEub3JnJyxcbiAgICAgICdAdHlwZSc6ICdCcmVhZGNydW1iTGlzdCcsXG4gICAgICBpdGVtTGlzdEVsZW1lbnQ6IHRoaXMuZ2V0SnNvbkJyZWFkY3J1bWJJdGVtcyhpdGVtcyksXG4gICAgfTtcbiAgICB0aGlzLmJyZWFkY3J1bWJzSnNvblRhZy5pbm5lckhUTUwgPSBKU09OLnN0cmluZ2lmeShqc29uKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBDb252ZXJ0ZSBpdGVucyBkbyBicmVhZGNydW1iIGVtIGl0ZW5zIGRvIEpTT04gKi9cbiAgcHJpdmF0ZSBnZXRKc29uQnJlYWRjcnVtYkl0ZW1zKGl0ZW1zOiBCcmVhZGNydW1ic0l0ZW1zW10pOiBCcmVhZGNydW1ic0pzb25JdGVtW10ge1xuICAgIGNvbnN0IGpzb25JdGVtcyA9IFtcbiAgICAgIHtcbiAgICAgICAgJ0B0eXBlJzogJ0xpc3RJdGVtJyxcbiAgICAgICAgcG9zaXRpb246IDEsXG4gICAgICAgIGl0ZW06IHsgJ0BpZCc6IHRoaXMuZ2V0QnJlYWRjcnVtYkl0ZW1VcmwoWycvJ10pLCBuYW1lOiBoZS5lbmNvZGUoJ1DDoWdpbmEgSW5pY2lhbCcpIH0sXG4gICAgICB9IGFzIEJyZWFkY3J1bWJzSnNvbkl0ZW0sXG4gICAgXTtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpKSA9PiB7XG4gICAgICBjb25zdCBqc29uSXRlbTogQnJlYWRjcnVtYnNKc29uSXRlbSA9IHtcbiAgICAgICAgJ0B0eXBlJzogJ0xpc3RJdGVtJyxcbiAgICAgICAgcG9zaXRpb246IGkgKyAyLFxuICAgICAgICBpdGVtOiB7ICdAaWQnOiB0aGlzLmdldEJyZWFkY3J1bWJJdGVtVXJsKGl0ZW0/LnVybCB8fCBbXSksIG5hbWU6IGhlLmVuY29kZShpdGVtLmxhYmVsKSB9LFxuICAgICAgfTtcbiAgICAgIGpzb25JdGVtcy5wdXNoKGpzb25JdGVtKTtcbiAgICB9KTtcbiAgICByZXR1cm4ganNvbkl0ZW1zO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vbnRhIGEgdXJsIGRvIGl0ZW0gZGUgYnJlYWRjcnVtYiBwcm92ZW5pZW50ZSBkbyBhcnJheSBkZSB1cmxzXG4gICAqIG91IGRvIGNhbWluaG8gZGEgcHLDs3ByaWEgcMOhZ2luYSwgY29uZm9ybWUgY2FzbyBkbyDDumx0aW1vIGl0ZW0uXG4gICAqL1xuICBwcml2YXRlIGdldEJyZWFkY3J1bWJJdGVtVXJsKHVybDogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IHNpdGV1cmwgPSBnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KTtcbiAgICBpZiAoIXVybCB8fCB1cmwubGVuZ3RoIDw9IDApIHtcbiAgICAgIGNvbnN0IHBhZ2VQYXRoID0gdGhpcy5sb2NhdGlvbi5wYXRoKCk7XG4gICAgICByZXR1cm4gYCR7c2l0ZXVybH0ke3BhZ2VQYXRofWA7XG4gICAgfVxuICAgIHVybCA9IHVybC5maWx0ZXIoKHUpID0+IHUgIT09IHRoaXMudW5pZGFkZVBhdGgpO1xuICAgIGNvbnN0IHVuaWRhZGVQYXRoID0gdGhpcy5nZXRVbmlkYWRlUGF0aCgpO1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gYCR7dW5pZGFkZVBhdGh9LyR7dXJsLmpvaW4oJy8nKS5yZXBsYWNlKC9eXFwvPy8sICcnKX1gO1xuICAgIHJldHVybiBgJHtzaXRldXJsfSR7ZnVsbFBhdGh9YC5yZXBsYWNlKC9cXC8kLywgJycpO1xuICB9XG5cbiAgLyoqIENyaWEgdGFnIHNjcmlwdCBwYXJhIG8gSlNPTiBkZSBTRU8gKi9cbiAgcHJpdmF0ZSBjcmVhdGVKU09OVGFnKCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcbiAgICBjb25zdCB0YWc6IEhUTUxTY3JpcHRFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICB0YWcuaWQgPSB0aGlzLmpzb25UYWdJZDtcbiAgICB0YWcudHlwZSA9ICdhcHBsaWNhdGlvbi9sZCtqc29uJztcbiAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGFnKTtcbiAgICB0aGlzLmpzb25UYWcgPSB0YWc7XG4gICAgcmV0dXJuIHRhZztcbiAgfVxuXG4gIC8qKiBSZXRvcm5hIHRhZyBwYXJhIHNjcmlwdCBqc29uIGRlIGJyZWFkY3J1bWJzIG91IGNyaWEgc2UgbsOjbyBob3V2ZXIuICovXG4gIHByaXZhdGUgZ2V0SlNPTlRhZygpOiBIVE1MU2NyaXB0RWxlbWVudCB7XG4gICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLmRvY3VtZW50LmhlYWQuY2hpbGRyZW47XG4gICAgbGV0IGk6IG51bWJlcjtcbiAgICBmb3IgKGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGVsZW0gPSBlbGVtZW50c1tpXSBhcyBIVE1MU2NyaXB0RWxlbWVudDtcbiAgICAgIGlmIChlbGVtICYmIGVsZW0uaWQgPT09IHRoaXMuanNvblRhZ0lkKSB7XG4gICAgICAgIHJldHVybiBlbGVtO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVKU09OVGFnKCk7XG4gIH1cblxuICAvKiogRGVmaW5lIEpTT04gcGFyYSBTRU8gc29tZW50ZSBxdWFuZG8gbm8gc2Vydmlkb3IgKi9cbiAgcHVibGljIHNldFBhZ2VKc29uKCkge1xuICAgIHRoaXMuanNvblRhZyA9IHRoaXMuZ2V0SlNPTlRhZygpO1xuXG4gICAgY29uc3QgYmFzZUdyYXBoID0gW3RoaXMuZ2V0T3JnSnNvbigpLCB0aGlzLmdldFdlYnNpdGVKc29uKCksIHRoaXMuZ2V0V2VicGFnZUpzb24oKV07XG5cbiAgICBjb25zdCBleHRlbmRlZEdyYXBoID0gdGhpcy5jdXN0b21Kc29uVHlwZS5sZW5ndGggPyBbLi4uYmFzZUdyYXBoLCAuLi50aGlzLmN1c3RvbUpzb25UeXBlXSA6IGJhc2VHcmFwaDtcblxuICAgIHRoaXMuY3VzdG9tSnNvblR5cGUgPSBbXTtcblxuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICAnQGNvbnRleHQnOiAnaHR0cDovL3NjaGVtYS5vcmcnLFxuICAgICAgJ0BncmFwaCc6IGV4dGVuZGVkR3JhcGgsXG4gICAgfTtcblxuICAgIHRoaXMuanNvblRhZy5pbm5lckhUTUwgPSBKU09OLnN0cmluZ2lmeShqc29uKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIE9idGVtIEpTT04gZGEgT3JnYW5pemHDp8OjbyAqL1xuICBwcml2YXRlIGdldE9yZ0pzb24oKSB7XG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xuICAgIHJldHVybiB7XG4gICAgICAnQHR5cGUnOiAnTWVkaWNhbE9yZ2FuaXphdGlvbicsXG4gICAgICAnQGlkJzogYCR7c2l0ZXVybH0jbWVkaWNhbG9yZ2FuaXphdGlvbmAsXG4gICAgICBuYW1lOiB0aGlzLmRlZmF1bHRUaXRsZSxcbiAgICAgIGtleXdvcmRzOiB0aGlzLmxpYkNvbmZpZz8ua2V5d29yZHMsXG4gICAgICB1cmw6IGAke3NpdGV1cmx9YCxcbiAgICAgIHNhbWVBczogdGhpcy5zYW1lQXMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBPYnRlbSBKU09OIGRvIFdlYnNpdGUgKHBvcnRhbCwgdW5pZGFkZXMsIGV0YykgKi9cbiAgcHJpdmF0ZSBnZXRXZWJzaXRlSnNvbigpIHtcbiAgICBjb25zdCB1bmlkYWRlUGF0aCA9IHRoaXMuZ2V0VW5pZGFkZVBhdGgoKTtcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICdAdHlwZSc6ICdXZWJTaXRlJyxcbiAgICAgICdAaWQnOiBgJHtzaXRldXJsfSR7dW5pZGFkZVBhdGh9I3dlYnNpdGVgLFxuICAgICAgdXJsOiBgJHtzaXRldXJsfSR7dW5pZGFkZVBhdGh9YCxcbiAgICAgIG5hbWU6IHRoaXMudW5pZGFkZU5hbWUsXG4gICAgICBrZXl3b3JkczogdGhpcy5saWJDb25maWc/LmtleXdvcmRzLFxuICAgIH07XG4gIH1cblxuICAvKiogT2J0ZW0gSnNvbiBkYSBww6FnaW5hICovXG4gIHByaXZhdGUgZ2V0V2VicGFnZUpzb24oKSB7XG4gICAgY29uc3QgdW5pZGFkZVBhdGggPSB0aGlzLmdldFVuaWRhZGVQYXRoKCk7XG4gICAgY29uc3Qgc2l0ZVVSTCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xuICAgIGNvbnN0IHBhZ2VQYXRoID0gYCR7c2l0ZVVSTH0ke3RoaXMubG9jYXRpb24ucGF0aCgpfWA7XG4gICAgY29uc3QgZGVzYyA9IHRoaXMuYWN0aXZlRGVzY3JpcHRpb24gPyB0aGlzLmFjdGl2ZURlc2NyaXB0aW9uIDogJyc7XG4gICAgcmV0dXJuIHtcbiAgICAgICdAdHlwZSc6ICdXZWJQYWdlJyxcbiAgICAgICdAaWQnOiBgJHtwYWdlUGF0aH0jd2VicGFnZWAsXG4gICAgICB1cmw6IHBhZ2VQYXRoLFxuICAgICAgaW5MYW5ndWFnZTogJ3B0LUJSJyxcbiAgICAgIG5hbWU6IHRoaXMuZ2V0VGl0bGUoKSxcbiAgICAgIGlzUGFydE9mOiB7ICdAaWQnOiBgJHtzaXRlVVJMfSR7dW5pZGFkZVBhdGh9I3dlYnNpdGVgIH0sXG4gICAgICBhYm91dDogeyAnQGlkJzogYCR7c2l0ZVVSTH0jbWVkaWNhbG9yZ2FuaXphdGlvbmAgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiBkZXNjLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFVuaWRhZGVQYXRoKCkge1xuICAgIGxldCB1bmlkYWRlUGF0aCA9ICcnO1xuICAgIGlmICh0aGlzLnVuaWRhZGUgJiYgdGhpcy51bmlkYWRlUGF0aCkge1xuICAgICAgdW5pZGFkZVBhdGggPSB0aGlzLnVuaWRhZGU/LnBhdGggPT09ICcvJyA/ICcnIDogdGhpcy51bmlkYWRlUGF0aD8uc3Vic3RyaW5nKDAsIHRoaXMudW5pZGFkZVBhdGg/Lmxlbmd0aCAtIDEpO1xuICAgIH1cbiAgICByZXR1cm4gdW5pZGFkZVBhdGg7XG4gIH1cblxuICAvKipcbiAgICogT2J0w6ltIGEgVVJMIGNhbsO0bmljYSBkYSBww6FnaW5hLlxuICAgKiBAcmV0dXJucyBBIFVSTCBjYW7DtG5pY2EgZGEgcMOhZ2luYS5cbiAgICovXG4gIHB1YmxpYyBnZXRDYW5vbmljYWxIcmVmKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmNhbm9uaWNhbFRhZykge1xuICAgICAgdGhpcy5jYW5vbmljYWxUYWcgPSB0aGlzLmdldENhbm9uaWNhbFRhZygpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jYW5vbmljYWxUYWcuaHJlZjtcbiAgfVxuXG4gIC8qKiBDcmlhIHRhZyBwYXJhIGxpbmtzIGNhbm9uaWNhbHMgbm8gaGVhZCAqL1xuICBwcml2YXRlIGNyZWF0ZUNhbm9uaWNhbFRhZygpOiBIVE1MTGlua0VsZW1lbnQge1xuICAgIGNvbnN0IHRhZyA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgIHRhZy5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdjYW5vbmljYWwnKTtcbiAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGFnKTtcbiAgICB0YWcuc2V0QXR0cmlidXRlKCdocmVmJywgdGhpcy5kb2N1bWVudC5VUkwpO1xuICAgIHRoaXMuY2Fub25pY2FsVGFnID0gdGFnO1xuICAgIHJldHVybiB0YWc7XG4gIH1cblxuICAvKiogUmV0b3JuYSB0YWcgcGFyYSBsaW5rIGNhbm9uaWNhbCBleGlzdGUgb3UgY3JpYSBzZSBuw6NvIGhvdXZlci4gKi9cbiAgcHJpdmF0ZSBnZXRDYW5vbmljYWxUYWcoKTogSFRNTExpbmtFbGVtZW50IHtcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZG9jdW1lbnQuaGVhZC5jaGlsZHJlbjtcbiAgICBsZXQgaTogbnVtYmVyO1xuICAgIGZvciAoaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZWxlbSA9IGVsZW1lbnRzW2ldIGFzIEhUTUxMaW5rRWxlbWVudDtcbiAgICAgIGlmIChlbGVtICYmIGVsZW0udGFnTmFtZSA9PT0gJ0xJTksnICYmIGVsZW0ucmVsID09PSAnY2Fub25pY2FsJykge1xuICAgICAgICByZXR1cm4gZWxlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQ2Fub25pY2FsVGFnKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGxpbmsgY2Fub25pY2FsIGRhIHDDoWdpbmFcbiAgICogQHBhcmFtIHVybCB1cmwgY2Fub25pY2FsXG4gICAqL1xuICBwdWJsaWMgc2V0Q2Fub25pY2FsSHJlZih1cmw/OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuY2Fub25pY2FsVGFnKSB7XG4gICAgICB0aGlzLmNhbm9uaWNhbFRhZyA9IHRoaXMuZ2V0Q2Fub25pY2FsVGFnKCk7XG4gICAgfVxuXG4gICAgbGV0IHBhdGggPSB0aGlzLmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lO1xuXG4gICAgaWYgKHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXggJiYgcGF0aC5pbmNsdWRlcyh0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KSkge1xuICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZSh0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4LCAnJyk7XG4gICAgfVxuXG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgcGF0aCA9IGAvJHtwYXRofWA7XG4gICAgfVxuXG4gICAgY29uc3QgY2Fub25pY2FsVXJsID0gdXJsICYmIHRoaXMuaXNDdXN0b21DYW5vbmljYWwodXJsKSA/IHVybCA6IGAke2dldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpfSR7cGF0aH1gO1xuXG4gICAgdGhpcy5jYW5vbmljYWxUYWcuc2V0QXR0cmlidXRlKCdocmVmJywgY2Fub25pY2FsVXJsKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzZSBhIFVSTCBmb3JuZWNpZGEgw6kgdW0gbGluayBjYW5vbmljYWwgcGVyc29uYWxpemFkb1xuICAgKiBAcGFyYW0gdXJsIFVSTCBmb3JuZWNpZGFcbiAgICovXG4gIHB1YmxpYyBpc0N1c3RvbUNhbm9uaWNhbCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNpdGV1cmwgPSBnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KTtcbiAgICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgoc2l0ZXVybCk7XG4gIH1cblxuICAvKipcbiAgICogT2J0w6ltIHVtYSB1cmwgdsOhbGlkYSBuYSBhcGxpY2HDp8OjbyBwcm92ZW5pZW50ZSBkZSB1bWEgVVJMIGdlcmFkYVxuICAgKiBwZWxvIHBsdWdpbiBZb2FzdCBwYXJhIGNhbm9uaWNhbCBhdXRvbcOhdGljby5cbiAgICogRXguOiBodHRwczovL3dwLnJlZGVkb3JzYW9sdWl6LmNvbS5ici9icmFzaWwvZXNwZWNpYWxpZGFkZXMvY2FyZGlvbG9naWEvXG4gICAqIEBwYXJhbSB1cmxGcm9tV3BBcGkgVVJMIGNhbm9uaWNhIGdlcmFkYSBwZWxvIFlvYXN0IFBsdWdpbi5cbiAgICovXG4gIHRvTG9jYWxDYW5vbmljYWwodXJsRnJvbVdwQXBpOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFwaVVybCA9IHRoaXMubGliQ29uZmlnPy53cFVybCA/PyAnJztcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XG4gICAgY29uc3QgdW5pZGFkZVNsdWcgPSB0aGlzLnVuaWRhZGVTbHVnO1xuICAgIGxldCBjb252ZXJ0ZWQgPSB1cmxGcm9tV3BBcGkucmVwbGFjZShhcGlVcmwsIHNpdGV1cmwpO1xuICAgIGlmICh1bmlkYWRlU2x1ZyAhPT0gJy8nICYmIGNvbnZlcnRlZC5pbmNsdWRlcyhgLyR7dW5pZGFkZVNsdWd9L2ApKSB7XG4gICAgICBjb252ZXJ0ZWQgPSBjb252ZXJ0ZWQucmVwbGFjZShgLyR7dW5pZGFkZVNsdWd9L2AsIGAke3RoaXMudW5pZGFkZVBhdGh9YCk7XG4gICAgfVxuICAgIHJldHVybiBjb252ZXJ0ZWQ7XG4gIH1cblxuICBnZXRQb3N0Q29udGVudChwb3N0OiBXcFBvc3QpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBwb3N0Py5hY2Y/LlsncmRzbF9wb3N0X2NvbnRlbnQnXSA/IHBvc3Q/LmFjZj8ucmRzbF9wb3N0X2NvbnRlbnQ/LmZpbmQoKGNvbnRlbnQ6IGFueSkgPT4gY29udGVudC5hY2ZfZmNfbGF5b3V0ID09PSAndGV4dF9odG1sJykgOiBudWxsO1xuICAgIHJldHVybiBjb250ZW50Py5jb250ZW50IHx8IHBvc3QuY29udGVudC5yZW5kZXJlZCB8fCAnJztcbiAgfVxuXG4gIGFkZEFydGljbGVTY3JpcHQocG9zdDogV3BQb3N0LCBzY3JpcHROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwb3N0Q29udGVudCA9IHRoaXMuZ2V0UG9zdENvbnRlbnQocG9zdCk7XG4gICAgY29uc3QgcG9zdEhlYWRlckltYWdlID0gcG9zdD8uYWNmPy5bJ3Jkc2xfcG9zdF9oZWFkZXJfaW1nJ11cbiAgICAgID8ge1xuICAgICAgICAgIHVybDogcG9zdD8uYWNmPy5bJ3Jkc2xfcG9zdF9oZWFkZXJfaW1nJ10udXJsLFxuICAgICAgICAgIHdpZHRoOiBwb3N0Py5hY2Y/LlsncmRzbF9wb3N0X2hlYWRlcl9pbWcnXS53aWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IHBvc3Q/LmFjZj8uWydyZHNsX3Bvc3RfaGVhZGVyX2ltZyddLmhlaWdodCxcbiAgICAgICAgfVxuICAgICAgOiBudWxsO1xuXG4gICAgY29uc3Qgc3RydWN0dXJlZERhdGEgPSB7XG4gICAgICAnQGNvbnRleHQnOiAnaHR0cHM6Ly9zY2hlbWEub3JnJyxcbiAgICAgICdAdHlwZSc6ICdBcnRpY2xlJyxcbiAgICAgIG1haW5FbnRpdHlPZlBhZ2U6IGAke2dldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpfSR7dGhpcy5sb2NhdGlvbi5wYXRoKCl9YCxcbiAgICAgIGhlYWRsaW5lOiBwb3N0LnRpdGxlPy5yZW5kZXJlZCxcbiAgICAgIGRhdGVQdWJsaXNoZWQ6IHBvc3QuZGF0ZV9nbXQsXG4gICAgICBwdWJsaXNoZXI6IHtcbiAgICAgICAgJ0B0eXBlJzogJ01lZGljYWxPcmdhbml6YXRpb24nLFxuICAgICAgICBuYW1lOiAnUmVkZSBE4oCZT3InLFxuICAgICAgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwb3N0LnRpdGxlPy5yZW5kZXJlZCxcbiAgICAgIGFydGljbGVCb2R5OiByZW1vdmVIdG1sVGFncyhoZS5kZWNvZGUocG9zdENvbnRlbnQpKSxcbiAgICAgIGRhdGVNb2RpZmllZDogcG9zdC5tb2RpZmllZF9nbXQsXG4gICAgICBpbWFnZToge1xuICAgICAgICAnQHR5cGUnOiAnSW1hZ2VPYmplY3QnLFxuICAgICAgICB1cmw6IHBvc3RIZWFkZXJJbWFnZT8udXJsIHx8IHBvc3QuZmVhdHVyZWRfbWVkaWFfcGF0aCB8fCAnJyxcbiAgICAgICAgaGVpZ2h0OiBwb3N0SGVhZGVySW1hZ2U/LmhlaWdodCB8fCAnJyxcbiAgICAgICAgd2lkdGg6IHBvc3RIZWFkZXJJbWFnZT8ud2lkdGggfHwgJycsXG4gICAgICB9LFxuICAgICAgYXV0aG9yOiB7XG4gICAgICAgICdAdHlwZSc6ICdNZWRpY2FsT3JnYW5pemF0aW9uJyxcbiAgICAgICAgbmFtZTogJ1JlZGUgROKAmU9yJyxcbiAgICAgIH0sXG4gICAgICB3b3JkY291bnQ6IHBvc3RDb250ZW50LnNwbGl0KCcgJykubGVuZ3RoLFxuICAgIH07XG5cbiAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuXG4gICAgc2NyaXB0LnR5cGUgPSAnYXBwbGljYXRpb24vbGQranNvbic7XG4gICAgc2NyaXB0LmlkID0gc2NyaXB0TmFtZTtcbiAgICBzY3JpcHQuaW5uZXJIVE1MID0gSlNPTi5zdHJpbmdpZnkoc3RydWN0dXJlZERhdGEpO1xuXG4gICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gIH1cblxuICByZW1vdmVBcnRpY2xlU2NyaXB0KHNjcmlwdE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2NyaXB0TmFtZSk7XG4gICAgc2NyaXB0Py5yZW1vdmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRVbmlkYWRlKHsgdW5pZGFkZSA9IG51bGwsIHVuaWRhZGVOYW1lID0gJycsIHVuaWRhZGVQYXRoID0gJycsIHVuaWRhZGVTbHVnID0gJycgfTogU2VvVW5pZGFkZSkge1xuICAgIHRoaXMudW5pZGFkZSA9IHVuaWRhZGU7XG4gICAgdGhpcy51bmlkYWRlTmFtZSA9IHVuaWRhZGVOYW1lO1xuICAgIHRoaXMudW5pZGFkZVBhdGggPSB1bmlkYWRlUGF0aDtcbiAgICB0aGlzLnVuaWRhZGVTbHVnID0gdW5pZGFkZVNsdWc7XG4gIH1cbn1cbiJdfQ==
|
|
489
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zZW8vc2VvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBUXpCLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUsvRCxNQUFNLE9BQU8sVUFBVTtJQXlCckIsWUFDVSxLQUFZLEVBQ1osSUFBVSxFQUNWLFFBQWtCLEVBQ0UsU0FBb0IsRUFDdEIsUUFBa0I7UUFKcEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLFNBQUksR0FBSixJQUFJLENBQU07UUFDVixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0UsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBN0J2QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsV0FBVyxDQUFDO1FBRTNCLFdBQU0sR0FBRztZQUNkLG1DQUFtQztZQUNuQyw0Q0FBNEM7WUFDNUMsa0RBQWtEO1lBQ2xELDZCQUE2QjtTQUM5QixDQUFDO1FBQ0ssZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFJeEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0Qix5QkFBb0IsR0FBRyxpQkFBaUIsQ0FBQztRQUUxQyxZQUFPLEdBQVEsSUFBSSxDQUFDO1FBQ3BCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQVcsRUFBRSxDQUFD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LFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxVQUFrQjtRQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RCxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxFQUFFLE9BQU8sR0FBRyxJQUFJLEVBQUUsV0FBVyxHQUFHLEVBQUUsRUFBRSxXQUFXLEdBQUcsRUFBRSxFQUFFLFdBQVcsR0FBRyxFQUFFLEVBQWM7UUFDcEcsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQzsrR0F0Z0JVLFVBQVUsbUZBNkJYLFVBQVUsYUFDVixRQUFRO21IQTlCUCxVQUFVLGNBRlQsTUFBTTs7NEZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQThCSSxNQUFNOzJCQUFDLFVBQVU7OzBCQUNqQixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWV0YSwgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgRE9DVU1FTlQsIExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCAqIGFzIGhlIGZyb20gJ2hlJztcclxuXHJcbmltcG9ydCB7IFNvY2lhbE1ldGFQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NvY2lhbC1tZXRhLXByb3BlcnRpZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1ic0l0ZW1zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLWl0ZW1zLm1vZGVsJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYnNKc29uSXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9icmVhZGNydW1icy9icmVhZGNydW1icy1qc29uLWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBTZW9EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Nlby9zZW8tZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IFNlb1VuaWRhZGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VvL3Nlby11bmlkYWRlLm1vZGVsJztcclxuaW1wb3J0IHsgV3BQb3N0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3dvcmRwcmVzcy9wb3N0L3Bvc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBnZXRTaXRlVXJsLCByZW1vdmVIdG1sVGFncyB9IGZyb20gJy4uLy4uL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBMSUJfQ09ORklHLCBMaWJDb25maWcgfSBmcm9tICcuLi8uLi90b2tlbnMvTGliQ29uZmlnJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZW9TZXJ2aWNlIHtcclxuICBwdWJsaWMgc2VwYXJhdG9yID0gJyAtICc7XHJcbiAgcHVibGljIGRlZmF1bHRUaXRsZSA9ICdSZWRlIETigJlPcic7XHJcbiAgcHVibGljIGFjdGl2ZURlc2NyaXB0aW9uITogc3RyaW5nO1xyXG4gIHB1YmxpYyBzYW1lQXMgPSBbXHJcbiAgICAnaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3JlZGVkb3IvJyxcclxuICAgICdodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL3JlZGVkb3Jfb2ZpY2lhbC8nLFxyXG4gICAgJ2h0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9jb21wYW55L3JlZGVkb3Itc2FvbHVpeicsXHJcbiAgICAnaHR0cHM6Ly90d2l0dGVyLmNvbS9yZWRlZG9yJyxcclxuICBdO1xyXG4gIHB1YmxpYyB0d2l0dGVyVXNlciA9ICdAcmVkZWRvcic7XHJcblxyXG4gIHByaXZhdGUgY2Fub25pY2FsVGFnITogSFRNTExpbmtFbGVtZW50O1xyXG4gIHByaXZhdGUganNvblRhZyE6IEhUTUxTY3JpcHRFbGVtZW50O1xyXG4gIHByaXZhdGUganNvblRhZ0lkID0gJ3Nlb0pTT04nO1xyXG4gIHByaXZhdGUgYnJlYWRjcnVtYnNKc29uVGFnITogSFRNTFNjcmlwdEVsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBicmVhZGNydW1ic0pzb25UYWdJZCA9ICdicmVhZGNydW1ic0pTT04nO1xyXG5cclxuICBwdWJsaWMgdW5pZGFkZTogYW55ID0gbnVsbDtcclxuICBwdWJsaWMgdW5pZGFkZU5hbWU6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyB1bmlkYWRlUGF0aDogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIHVuaWRhZGVTbHVnOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHVibGljIGN1c3RvbUpzb25UeXBlOiBhbnlbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdGl0bGU6IFRpdGxlLFxyXG4gICAgcHJpdmF0ZSBtZXRhOiBNZXRhLFxyXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICBASW5qZWN0KExJQl9DT05GSUcpIHByaXZhdGUgbGliQ29uZmlnOiBMaWJDb25maWcsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBzZXRGdWxsU2VvKGRhdGE6IFNlb0RhdGEpIHtcclxuICAgIHRoaXMuc2V0VGl0bGUoZGF0YS50aXRsZS50ZXh0LCAhIWRhdGEudGl0bGUuc3ViKTtcclxuICAgIHRoaXMuc2V0RGVzY3JpcHRpb24oZGF0YS5kZXNjcmlwdGlvbik7XHJcbiAgICB0aGlzLnNldENhbm9uaWNhbEhyZWYoZGF0YS5jYW5vbmljYWwpO1xyXG4gICAgdGhpcy5zZXRQYWdlSnNvbigpO1xyXG4gICAgdGhpcy5zZXRTb2NpYWxUYWdzKGRhdGEuc29jaWFsVGFncyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgdGFnIGRlc2NyaXB0aW9uIGRhIHDDoWdpbmFcclxuICAgKiBAcGFyYW0gY29udGVudCBjb250ZcO6ZG8gZGEgZGVzY3Jpw6fDo28gPHN0cmluZz5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0RGVzY3JpcHRpb24oY29udGVudDogc3RyaW5nKTogU2VvU2VydmljZSB7XHJcbiAgICBjb25zdCBkZXNjVGFnID0gdGhpcy5tZXRhLmdldFRhZyhcIm5hbWU9J2Rlc2NyaXB0aW9uJ1wiKTtcclxuICAgIGlmIChjb250ZW50KSB7XHJcbiAgICAgIGNvbnRlbnQgPSBoZS5kZWNvZGUoY29udGVudCk7XHJcbiAgICAgIGNvbnRlbnQgPSByZW1vdmVIdG1sVGFncyhjb250ZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnRlbnQgPSAnJztcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZlRGVzY3JpcHRpb24gPSBjb250ZW50O1xyXG4gICAgY29uc3QgdGFnQ29udGVudCA9IHsgbmFtZTogJ2Rlc2NyaXB0aW9uJywgY29udGVudCB9O1xyXG4gICAgaWYgKGRlc2NUYWcpIHtcclxuICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh0YWdDb250ZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWV0YS5hZGRUYWcodGFnQ29udGVudCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSBtZXRhIHRhZ3MgcGFyYSBhIHDDoWdpbmFcclxuICAgKiBAcGFyYW0gdGFnIG5vbWUgZGEgdGFnIG1ldGFcclxuICAgKiBAcGFyYW0gY29udGVudCBjb250ZcO6ZG8gZGEgdGFnIG1ldGFcclxuICAgKiBAcGFyYW0gdHlwZSB0aXBvIGRlIHRhZyBtZXRhXHJcbiAgICovXHJcbiAgcHVibGljIHNldE1ldGFUYWcodGFnOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZywgdHlwZSA9ICduYW1lJykge1xyXG4gICAgY29uc3QgbWV0YXRhZyA9IHRoaXMubWV0YS5nZXRUYWcoYCR7dHlwZX09JyR7dGFnfSdgKTtcclxuICAgIGNvbnRlbnQgPSBoZS5kZWNvZGUoY29udGVudCk7XHJcbiAgICBjb250ZW50ID0gcmVtb3ZlSHRtbFRhZ3MoY29udGVudCk7XHJcbiAgICBjb25zdCB0YWdDb250ZW50ID0ge1xyXG4gICAgICBbdHlwZV06IHRhZyxcclxuICAgICAgY29udGVudCxcclxuICAgIH07XHJcbiAgICBpZiAoIW1ldGF0YWcpIHtcclxuICAgICAgdGhpcy5tZXRhLmFkZFRhZyh0YWdDb250ZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcodGFnQ29udGVudCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBtZXRhIHRhZ3MgZGEgcMOhZ2luYVxyXG4gICAqIEBwYXJhbSB0YWcgbm9tZSBkYSB0YWcgbWV0YVxyXG4gICAqIEBwYXJhbSBjb250ZW50IGNvbnRlw7pkbyBkYSB0YWcgbWV0YVxyXG4gICAqIEBwYXJhbSBhdHRyIGF0cmlidXRvIGRhIHRhZyBtZXRhXHJcbiAgICogQHBhcmFtIHR5cGUgdGlwbyBkZSB0YWcgbWV0YVxyXG4gICAqL1xyXG4gIHB1YmxpYyByZW1vdmVUYWcodGFnOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZywgYXR0cjogc3RyaW5nLCB0eXBlID0gJ25hbWUnKSB7XHJcbiAgICBjb25zdCBtZXRhdGFnID0gdGhpcy5tZXRhLmdldFRhZyhgJHt0eXBlfT0nJHt0YWd9J2ApO1xyXG4gICAgaWYgKG1ldGF0YWcpIHtcclxuICAgICAgdGhpcy5tZXRhLnJlbW92ZVRhZyhgJHthdHRyfT0ke2NvbnRlbnR9YCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSBtZXRhIHRhZ3MgcGFyYSBGYWNlYm9va1xyXG4gICAqIEBwYXJhbSB0aXRsZSB0w610dWxvIHBhcmEgbyBmYWNlYm9va1xyXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBkZXNjcmnDp8OjbyBwYXJhIG8gZmFjZWJvb2tcclxuICAgKiBAcGFyYW0gdXJsIHVybCBwYXJhIGRlZmluacOnw6NvIGRvIGZhY2Vib29rXHJcbiAgICogQHBhcmFtIGltZyBpbWFnZW0gcGFyYSBkZWZpbmnDp8OjbyBubyBmYWNlYm9va1xyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRNZXRhRmFjZWJvb2sodGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdXJsOiBzdHJpbmcsIGltZzogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcclxuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6dXJsJywgdXJsLCAncHJvcGVydHknKTtcclxuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6dGl0bGUnLCB0aXRsZSwgJ3Byb3BlcnR5Jyk7XHJcbiAgICB0aGlzLnNldE1ldGFUYWcoJ29nOmRlc2NyaXB0aW9uJywgZGVzY3JpcHRpb24sICdwcm9wZXJ0eScpO1xyXG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzp0eXBlJywgJ3dlYnNpdGUnLCAncHJvcGVydHknKTtcclxuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6aW1hZ2UnLCBpbWcgPz8gJycsICdwcm9wZXJ0eScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIG1ldGEgdGFncyBwYXJhIFR3aXR0ZXJcclxuICAgKiBAcGFyYW0gdGl0bGUgdMOtdHVsbyBwYXJhIG8gdHdpdHRlclxyXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBkZXNjcmnDp8OjbyBwYXJhIG8gdHdpdHRlclxyXG4gICAqIEBwYXJhbSB1cmwgdXJsIHBhcmEgbyB0d2l0dGVyXHJcbiAgICogQHBhcmFtIGltZyBpbWFnZW0gcGFyYSBkZWZpbmnDp8OjbyBubyB0d2l0dGVyXHJcbiAgICovXHJcbiAgcHVibGljIHNldE1ldGFUd2l0dGVyKHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcsIHVybDogc3RyaW5nLCBpbWc6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XHJcbiAgICB0aGlzLnNldE1ldGFUYWcoJ3R3aXR0ZXI6c2l0ZScsIHVybCwgJ25hbWUnKTtcclxuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjp0aXRsZScsIHRpdGxlLCAnbmFtZScpO1xyXG4gICAgdGhpcy5zZXRNZXRhVGFnKCd0d2l0dGVyOmRlc2NyaXB0aW9uJywgZGVzY3JpcHRpb24sICduYW1lJyk7XHJcbiAgICB0aGlzLnNldE1ldGFUYWcoJ3R3aXR0ZXI6aW1hZ2UnLCBpbWcgPz8gJycsICduYW1lJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgdGFncyBkZSByZWRlcyBzb2NpYWlzIChUd2l0dGVyIGUgT3BlbiBHcmFwaClcclxuICAgKiBAcGFyYW0gcHJvcGVydGllc1xyXG4gICAqL1xyXG4gIHNldFNvY2lhbFRhZ3MocHJvcGVydGllcz86IFNvY2lhbE1ldGFQcm9wZXJ0aWVzKSB7XHJcbiAgICBjb25zdCBwYWdlUGF0aCA9IHRoaXMubG9jYXRpb24ucGF0aCgpO1xyXG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xyXG4gICAgbGV0IGRlZmF1bHRQcm9wZXJ0aWVzOiBTb2NpYWxNZXRhUHJvcGVydGllcyA9IHtcclxuICAgICAgdHdpdHRlckNhcmQ6ICdzdW1tYXJ5JyxcclxuICAgICAgdHdpdHRlclNpdGU6IHRoaXMudHdpdHRlclVzZXIsXHJcbiAgICAgIHR5cGU6ICd3ZWJzaXRlJyxcclxuICAgICAgdGl0bGU6IHRoaXMuZ2V0VGl0bGUoKSxcclxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuYWN0aXZlRGVzY3JpcHRpb24gfHwgJycsXHJcbiAgICAgIHVybDogYCR7c2l0ZXVybH0ke3BhZ2VQYXRofWAsXHJcbiAgICAgIGltYWdlOiB0aGlzLmxpYkNvbmZpZz8ubG9nb1BhdGggPyBgJHtzaXRldXJsfSR7dGhpcy5saWJDb25maWcubG9nb1BhdGh9YCA6ICdodHRwczovL3d3dy5yZWRlZG9yc2FvbHVpei5jb20uYnIvYXNzZXRzL2ltZ3MvbG9nby1yZWRlZG9yLWJsdWUucG5nJyxcclxuICAgIH07XHJcbiAgICBpZiAocHJvcGVydGllcykge1xyXG4gICAgICBkZWZhdWx0UHJvcGVydGllcyA9IHsgLi4uZGVmYXVsdFByb3BlcnRpZXMsIC4uLnByb3BlcnRpZXMgfTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjpjYXJkJywgZGVmYXVsdFByb3BlcnRpZXMudHdpdHRlckNhcmQgfHwgJycsICduYW1lJylcclxuICAgICAgLnNldE1ldGFUYWcoJ3R3aXR0ZXI6c2l0ZScsIGRlZmF1bHRQcm9wZXJ0aWVzLnR3aXR0ZXJTaXRlIHx8ICcnLCAnbmFtZScpXHJcbiAgICAgIC5zZXRNZXRhVGFnKCdvZzp0eXBlJywgZGVmYXVsdFByb3BlcnRpZXMudHlwZSB8fCAnJywgJ3Byb3BlcnR5JylcclxuICAgICAgLnNldE1ldGFUYWcoJ29nOnRpdGxlJywgZGVmYXVsdFByb3BlcnRpZXMudGl0bGUgfHwgJycsICdwcm9wZXJ0eScpXHJcbiAgICAgIC5zZXRNZXRhVGFnKCdvZzpkZXNjcmlwdGlvbicsIGRlZmF1bHRQcm9wZXJ0aWVzLmRlc2NyaXB0aW9uIHx8ICcnLCAncHJvcGVydHknKVxyXG4gICAgICAuc2V0TWV0YVRhZygnb2c6dXJsJywgZGVmYXVsdFByb3BlcnRpZXMudXJsIHx8ICcnLCAncHJvcGVydHknKVxyXG4gICAgICAuc2V0TWV0YVRhZygnb2c6aW1hZ2UnLCBkZWZhdWx0UHJvcGVydGllcy5pbWFnZSB8fCAnJywgJ3Byb3BlcnR5Jyk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgdMOtdHVsbyBkYSBww6FnaW5hXHJcbiAgICogQHBhcmFtIHRpdGxlIHTDrXR1bG8gZGEgcMOhZ2luYSA8c3RyaW5nPlxyXG4gICAqIEBwYXJhbSBzdWIgU2Ugw6kgc3Vic2l0ZSBhY3Jlc2NlbnRhIHVuaWRhZGUgPGJvb2xlYW4+XHJcbiAgICovXHJcbiAgcHVibGljIHNldFRpdGxlKHRpdGxlOiBzdHJpbmcsIHN1YiA9IGZhbHNlKSB7XHJcbiAgICBpZiAodGl0bGUgJiYgdGl0bGUgIT09ICcnKSB7XHJcbiAgICAgIHRpdGxlID0gaGUuZGVjb2RlKHRpdGxlKTtcclxuICAgICAgdGl0bGUgPSByZW1vdmVIdG1sVGFncyh0aXRsZSk7XHJcbiAgICAgIGlmIChzdWIpIHtcclxuICAgICAgICB0aXRsZSA9IGhlLmRlY29kZShgJHt0aXRsZX0ke3RoaXMuc2VwYXJhdG9yfSR7dGhpcy51bmlkYWRlTmFtZX1gKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRpdGxlLnNldFRpdGxlKHRpdGxlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqIE9idGVtIHTDrXR1bG8gYXR1YWwgZGEgcMOhZ2luYSAqL1xyXG4gIHB1YmxpYyBnZXRUaXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGl0bGUuZ2V0VGl0bGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQ0MDRUaXRsZShjb21wb25lbnQ6IHN0cmluZyA9ICdEZWZhdWx0IENvbXBvbmVudCcpIHtcclxuICAgIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50ICE9PSAnJykge1xyXG4gICAgICBjb21wb25lbnQgPSBoZS5kZWNvZGUoY29tcG9uZW50KTtcclxuICAgICAgY29tcG9uZW50ID0gcmVtb3ZlSHRtbFRhZ3MoY29tcG9uZW50KTtcclxuICAgICAgaWYgKHRoaXMudW5pZGFkZU5hbWUpIHtcclxuICAgICAgICBjb21wb25lbnQgPSBoZS5kZWNvZGUoYCR7Y29tcG9uZW50fSR7dGhpcy5zZXBhcmF0b3J9JHt0aGlzLnVuaWRhZGVOYW1lfWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB0aXRsZSA9IGBFcnJvIDQwNCAtICR7Y29tcG9uZW50fSAtICR7dGhpcy5saWJDb25maWc/LnNpdGVOYW1lfSAtICR7dGhpcy5sb2NhdGlvbi5wYXRoKCl9YDtcclxuICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0NTAwVGl0bGUoY29tcG9uZW50OiBzdHJpbmcgPSAnRGVmYXVsdCBDb21wb25lbnQnKSB7XHJcbiAgICBpZiAoY29tcG9uZW50ICYmIGNvbXBvbmVudCAhPT0gJycpIHtcclxuICAgICAgY29tcG9uZW50ID0gaGUuZGVjb2RlKGNvbXBvbmVudCk7XHJcbiAgICAgIGNvbXBvbmVudCA9IHJlbW92ZUh0bWxUYWdzKGNvbXBvbmVudCk7XHJcbiAgICAgIGlmICh0aGlzLnVuaWRhZGVOYW1lKSB7XHJcbiAgICAgICAgY29tcG9uZW50ID0gaGUuZGVjb2RlKGAke2NvbXBvbmVudH0ke3RoaXMuc2VwYXJhdG9yfSR7dGhpcy51bmlkYWRlTmFtZX1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgdGl0bGUgPSBgRXJybyA1MDAgLSAke2NvbXBvbmVudH0gLSAke3RoaXMubGliQ29uZmlnPy5zaXRlTmFtZX0gLSAke3RoaXMubG9jYXRpb24ucGF0aCgpfWA7XHJcbiAgICB0aGlzLnRpdGxlLnNldFRpdGxlKHRpdGxlKTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqIENyaWEgdGFnIHNjcmlwdCBwYXJhIEpTT04gZGUgYnJlYWRjcnVtYnMgKi9cclxuICBwcml2YXRlIGNyZWF0ZUJyZWFkY3J1bWJzSlNPTlRhZygpOiBIVE1MU2NyaXB0RWxlbWVudCB7XHJcbiAgICBjb25zdCB0YWc6IEhUTUxTY3JpcHRFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgIHRhZy5pZCA9IHRoaXMuYnJlYWRjcnVtYnNKc29uVGFnSWQ7XHJcbiAgICB0YWcudHlwZSA9ICdhcHBsaWNhdGlvbi9sZCtqc29uJztcclxuICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0YWcpO1xyXG4gICAgdGhpcy5icmVhZGNydW1ic0pzb25UYWcgPSB0YWc7XHJcbiAgICByZXR1cm4gdGFnO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldG9ybmEgdGFnIHBhcmEgc2NyaXB0IGpzb24gZGUgYnJlYWRjcnVtYnMgb3UgY3JpYSBzZSBuw6NvIGhvdXZlci4gKi9cclxuICBwcml2YXRlIGdldEJyZWFkY3J1bWJzSlNPTlRhZygpOiBIVE1MU2NyaXB0RWxlbWVudCB7XHJcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZG9jdW1lbnQuaGVhZC5jaGlsZHJlbjtcclxuICAgIGxldCBpOiBudW1iZXI7XHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgZWxlbSA9IGVsZW1lbnRzW2ldIGFzIEhUTUxTY3JpcHRFbGVtZW50O1xyXG4gICAgICBpZiAoZWxlbSAmJiBlbGVtLmlkID09PSB0aGlzLmJyZWFkY3J1bWJzSnNvblRhZ0lkKSB7XHJcbiAgICAgICAgcmV0dXJuIGVsZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUJyZWFkY3J1bWJzSlNPTlRhZygpO1xyXG4gIH1cclxuXHJcbiAgLyoqIERlZmluZSBvIEpTT04gZGUgYnJlYWRjcnVtYnMgZGEgcMOhZ2luYSAqL1xyXG4gIHB1YmxpYyBzZXRCcmVhZGNydW1ic0pzb24oaXRlbXM6IEJyZWFkY3J1bWJzSXRlbXNbXSkge1xyXG4gICAgdGhpcy5icmVhZGNydW1ic0pzb25UYWcgPSB0aGlzLmdldEJyZWFkY3J1bWJzSlNPTlRhZygpO1xyXG4gICAgY29uc3QganNvbiA9IHtcclxuICAgICAgJ0Bjb250ZXh0JzogJ2h0dHA6Ly9zY2hlbWEub3JnJyxcclxuICAgICAgJ0B0eXBlJzogJ0JyZWFkY3J1bWJMaXN0JyxcclxuICAgICAgaXRlbUxpc3RFbGVtZW50OiB0aGlzLmdldEpzb25CcmVhZGNydW1iSXRlbXMoaXRlbXMpLFxyXG4gICAgfTtcclxuICAgIHRoaXMuYnJlYWRjcnVtYnNKc29uVGFnLmlubmVySFRNTCA9IEpTT04uc3RyaW5naWZ5KGpzb24pO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKiogQ29udmVydGUgaXRlbnMgZG8gYnJlYWRjcnVtYiBlbSBpdGVucyBkbyBKU09OICovXHJcbiAgcHJpdmF0ZSBnZXRKc29uQnJlYWRjcnVtYkl0ZW1zKGl0ZW1zOiBCcmVhZGNydW1ic0l0ZW1zW10pOiBCcmVhZGNydW1ic0pzb25JdGVtW10ge1xyXG4gICAgY29uc3QganNvbkl0ZW1zID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgJ0B0eXBlJzogJ0xpc3RJdGVtJyxcclxuICAgICAgICBwb3NpdGlvbjogMSxcclxuICAgICAgICBpdGVtOiB7ICdAaWQnOiB0aGlzLmdldEJyZWFkY3J1bWJJdGVtVXJsKFsnLyddKSwgbmFtZTogaGUuZW5jb2RlKCdQw6FnaW5hIEluaWNpYWwnKSB9LFxyXG4gICAgICB9IGFzIEJyZWFkY3J1bWJzSnNvbkl0ZW0sXHJcbiAgICBdO1xyXG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbSwgaSkgPT4ge1xyXG4gICAgICBjb25zdCBqc29uSXRlbTogQnJlYWRjcnVtYnNKc29uSXRlbSA9IHtcclxuICAgICAgICAnQHR5cGUnOiAnTGlzdEl0ZW0nLFxyXG4gICAgICAgIHBvc2l0aW9uOiBpICsgMixcclxuICAgICAgICBpdGVtOiB7ICdAaWQnOiB0aGlzLmdldEJyZWFkY3J1bWJJdGVtVXJsKGl0ZW0/LnVybCB8fCBbXSksIG5hbWU6IGhlLmVuY29kZShpdGVtLmxhYmVsKSB9LFxyXG4gICAgICB9O1xyXG4gICAgICBqc29uSXRlbXMucHVzaChqc29uSXRlbSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBqc29uSXRlbXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNb250YSBhIHVybCBkbyBpdGVtIGRlIGJyZWFkY3J1bWIgcHJvdmVuaWVudGUgZG8gYXJyYXkgZGUgdXJsc1xyXG4gICAqIG91IGRvIGNhbWluaG8gZGEgcHLDs3ByaWEgcMOhZ2luYSwgY29uZm9ybWUgY2FzbyBkbyDDumx0aW1vIGl0ZW0uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRCcmVhZGNydW1iSXRlbVVybCh1cmw6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHNpdGV1cmwgPSBnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KTtcclxuICAgIGlmICghdXJsIHx8IHVybC5sZW5ndGggPD0gMCkge1xyXG4gICAgICBjb25zdCBwYWdlUGF0aCA9IHRoaXMubG9jYXRpb24ucGF0aCgpO1xyXG4gICAgICByZXR1cm4gYCR7c2l0ZXVybH0ke3BhZ2VQYXRofWA7XHJcbiAgICB9XHJcbiAgICB1cmwgPSB1cmwuZmlsdGVyKCh1KSA9PiB1ICE9PSB0aGlzLnVuaWRhZGVQYXRoKTtcclxuICAgIGNvbnN0IHVuaWRhZGVQYXRoID0gdGhpcy5nZXRVbmlkYWRlUGF0aCgpO1xyXG4gICAgY29uc3QgZnVsbFBhdGggPSBgJHt1bmlkYWRlUGF0aH0vJHt1cmwuam9pbignLycpLnJlcGxhY2UoL15cXC8/LywgJycpfWA7XHJcbiAgICByZXR1cm4gYCR7c2l0ZXVybH0ke2Z1bGxQYXRofWAucmVwbGFjZSgvXFwvJC8sICcnKTtcclxuICB9XHJcblxyXG4gIC8qKiBDcmlhIHRhZyBzY3JpcHQgcGFyYSBvIEpTT04gZGUgU0VPICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVKU09OVGFnKCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcclxuICAgIGNvbnN0IHRhZzogSFRNTFNjcmlwdEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAgdGFnLmlkID0gdGhpcy5qc29uVGFnSWQ7XHJcbiAgICB0YWcudHlwZSA9ICdhcHBsaWNhdGlvbi9sZCtqc29uJztcclxuICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0YWcpO1xyXG4gICAgdGhpcy5qc29uVGFnID0gdGFnO1xyXG4gICAgcmV0dXJuIHRhZztcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcm5hIHRhZyBwYXJhIHNjcmlwdCBqc29uIGRlIGJyZWFkY3J1bWJzIG91IGNyaWEgc2UgbsOjbyBob3V2ZXIuICovXHJcbiAgcHJpdmF0ZSBnZXRKU09OVGFnKCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcclxuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5kb2N1bWVudC5oZWFkLmNoaWxkcmVuO1xyXG4gICAgbGV0IGk6IG51bWJlcjtcclxuICAgIGZvciAoaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBlbGVtID0gZWxlbWVudHNbaV0gYXMgSFRNTFNjcmlwdEVsZW1lbnQ7XHJcbiAgICAgIGlmIChlbGVtICYmIGVsZW0uaWQgPT09IHRoaXMuanNvblRhZ0lkKSB7XHJcbiAgICAgICAgcmV0dXJuIGVsZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUpTT05UYWcoKTtcclxuICB9XHJcblxyXG4gIC8qKiBEZWZpbmUgSlNPTiBwYXJhIFNFTyBzb21lbnRlIHF1YW5kbyBubyBzZXJ2aWRvciAqL1xyXG4gIHB1YmxpYyBzZXRQYWdlSnNvbigpIHtcclxuICAgIHRoaXMuanNvblRhZyA9IHRoaXMuZ2V0SlNPTlRhZygpO1xyXG5cclxuICAgIGNvbnN0IGJhc2VHcmFwaCA9IFt0aGlzLmdldE9yZ0pzb24oKSwgdGhpcy5nZXRXZWJzaXRlSnNvbigpLCB0aGlzLmdldFdlYnBhZ2VKc29uKCldO1xyXG5cclxuICAgIGNvbnN0IGV4dGVuZGVkR3JhcGggPSB0aGlzLmN1c3RvbUpzb25UeXBlLmxlbmd0aCA/IFsuLi5iYXNlR3JhcGgsIC4uLnRoaXMuY3VzdG9tSnNvblR5cGVdIDogYmFzZUdyYXBoO1xyXG5cclxuICAgIHRoaXMuY3VzdG9tSnNvblR5cGUgPSBbXTtcclxuXHJcbiAgICBjb25zdCBqc29uID0ge1xyXG4gICAgICAnQGNvbnRleHQnOiAnaHR0cDovL3NjaGVtYS5vcmcnLFxyXG4gICAgICAnQGdyYXBoJzogZXh0ZW5kZWRHcmFwaCxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5qc29uVGFnLmlubmVySFRNTCA9IEpTT04uc3RyaW5naWZ5KGpzb24pO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqIE9idGVtIEpTT04gZGEgT3JnYW5pemHDp8OjbyAqL1xyXG4gIHByaXZhdGUgZ2V0T3JnSnNvbigpIHtcclxuICAgIGNvbnN0IHNpdGV1cmwgPSBnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdAdHlwZSc6ICdNZWRpY2FsT3JnYW5pemF0aW9uJyxcclxuICAgICAgJ0BpZCc6IGAke3NpdGV1cmx9I21lZGljYWxvcmdhbml6YXRpb25gLFxyXG4gICAgICBuYW1lOiB0aGlzLmRlZmF1bHRUaXRsZSxcclxuICAgICAga2V5d29yZHM6IHRoaXMubGliQ29uZmlnPy5rZXl3b3JkcyxcclxuICAgICAgdXJsOiBgJHtzaXRldXJsfWAsXHJcbiAgICAgIHNhbWVBczogdGhpcy5zYW1lQXMsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqIE9idGVtIEpTT04gZG8gV2Vic2l0ZSAocG9ydGFsLCB1bmlkYWRlcywgZXRjKSAqL1xyXG4gIHByaXZhdGUgZ2V0V2Vic2l0ZUpzb24oKSB7XHJcbiAgICBjb25zdCB1bmlkYWRlUGF0aCA9IHRoaXMuZ2V0VW5pZGFkZVBhdGgoKTtcclxuICAgIGNvbnN0IHNpdGV1cmwgPSBnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdAdHlwZSc6ICdXZWJTaXRlJyxcclxuICAgICAgJ0BpZCc6IGAke3NpdGV1cmx9JHt1bmlkYWRlUGF0aH0jd2Vic2l0ZWAsXHJcbiAgICAgIHVybDogYCR7c2l0ZXVybH0ke3VuaWRhZGVQYXRofWAsXHJcbiAgICAgIG5hbWU6IHRoaXMudW5pZGFkZU5hbWUsXHJcbiAgICAgIGtleXdvcmRzOiB0aGlzLmxpYkNvbmZpZz8ua2V5d29yZHMsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqIE9idGVtIEpzb24gZGEgcMOhZ2luYSAqL1xyXG4gIHByaXZhdGUgZ2V0V2VicGFnZUpzb24oKSB7XHJcbiAgICBjb25zdCB1bmlkYWRlUGF0aCA9IHRoaXMuZ2V0VW5pZGFkZVBhdGgoKTtcclxuICAgIGNvbnN0IHNpdGVVUkwgPSBnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KTtcclxuICAgIGNvbnN0IHBhZ2VQYXRoID0gYCR7c2l0ZVVSTH0ke3RoaXMubG9jYXRpb24ucGF0aCgpfWA7XHJcbiAgICBjb25zdCBkZXNjID0gdGhpcy5hY3RpdmVEZXNjcmlwdGlvbiA/IHRoaXMuYWN0aXZlRGVzY3JpcHRpb24gOiAnJztcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdAdHlwZSc6ICdXZWJQYWdlJyxcclxuICAgICAgJ0BpZCc6IGAke3BhZ2VQYXRofSN3ZWJwYWdlYCxcclxuICAgICAgdXJsOiBwYWdlUGF0aCxcclxuICAgICAgaW5MYW5ndWFnZTogJ3B0LUJSJyxcclxuICAgICAgbmFtZTogdGhpcy5nZXRUaXRsZSgpLFxyXG4gICAgICBpc1BhcnRPZjogeyAnQGlkJzogYCR7c2l0ZVVSTH0ke3VuaWRhZGVQYXRofSN3ZWJzaXRlYCB9LFxyXG4gICAgICBhYm91dDogeyAnQGlkJzogYCR7c2l0ZVVSTH0jbWVkaWNhbG9yZ2FuaXphdGlvbmAgfSxcclxuICAgICAgZGVzY3JpcHRpb246IGRlc2MsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRVbmlkYWRlUGF0aCgpIHtcclxuICAgIGxldCB1bmlkYWRlUGF0aCA9ICcnO1xyXG4gICAgaWYgKHRoaXMudW5pZGFkZSAmJiB0aGlzLnVuaWRhZGVQYXRoKSB7XHJcbiAgICAgIHVuaWRhZGVQYXRoID0gdGhpcy51bmlkYWRlPy5wYXRoID09PSAnLycgPyAnJyA6IHRoaXMudW5pZGFkZVBhdGg/LnN1YnN0cmluZygwLCB0aGlzLnVuaWRhZGVQYXRoPy5sZW5ndGggLSAxKTtcclxuICAgIH1cclxuICAgIHJldHVybiB1bmlkYWRlUGF0aDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9idMOpbSBhIFVSTCBjYW7DtG5pY2EgZGEgcMOhZ2luYS5cclxuICAgKiBAcmV0dXJucyBBIFVSTCBjYW7DtG5pY2EgZGEgcMOhZ2luYS5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Q2Fub25pY2FsSHJlZigpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLmNhbm9uaWNhbFRhZykge1xyXG4gICAgICB0aGlzLmNhbm9uaWNhbFRhZyA9IHRoaXMuZ2V0Q2Fub25pY2FsVGFnKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5jYW5vbmljYWxUYWcuaHJlZjtcclxuICB9XHJcblxyXG4gIC8qKiBDcmlhIHRhZyBwYXJhIGxpbmtzIGNhbm9uaWNhbHMgbm8gaGVhZCAqL1xyXG4gIHByaXZhdGUgY3JlYXRlQ2Fub25pY2FsVGFnKCk6IEhUTUxMaW5rRWxlbWVudCB7XHJcbiAgICBjb25zdCB0YWcgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcclxuICAgIHRhZy5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdjYW5vbmljYWwnKTtcclxuICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0YWcpO1xyXG4gICAgdGFnLnNldEF0dHJpYnV0ZSgnaHJlZicsIHRoaXMuZG9jdW1lbnQuVVJMKTtcclxuICAgIHRoaXMuY2Fub25pY2FsVGFnID0gdGFnO1xyXG4gICAgcmV0dXJuIHRhZztcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcm5hIHRhZyBwYXJhIGxpbmsgY2Fub25pY2FsIGV4aXN0ZSBvdSBjcmlhIHNlIG7Do28gaG91dmVyLiAqL1xyXG4gIHByaXZhdGUgZ2V0Q2Fub25pY2FsVGFnKCk6IEhUTUxMaW5rRWxlbWVudCB7XHJcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZG9jdW1lbnQuaGVhZC5jaGlsZHJlbjtcclxuICAgIGxldCBpOiBudW1iZXI7XHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgZWxlbSA9IGVsZW1lbnRzW2ldIGFzIEhUTUxMaW5rRWxlbWVudDtcclxuICAgICAgaWYgKGVsZW0gJiYgZWxlbS50YWdOYW1lID09PSAnTElOSycgJiYgZWxlbS5yZWwgPT09ICdjYW5vbmljYWwnKSB7XHJcbiAgICAgICAgcmV0dXJuIGVsZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUNhbm9uaWNhbFRhZygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIGxpbmsgY2Fub25pY2FsIGRhIHDDoWdpbmFcclxuICAgKiBAcGFyYW0gdXJsIHVybCBjYW5vbmljYWxcclxuICAgKi9cclxuICBwdWJsaWMgc2V0Q2Fub25pY2FsSHJlZih1cmw/OiBzdHJpbmcpIHtcclxuICAgIGlmICghdGhpcy5jYW5vbmljYWxUYWcpIHtcclxuICAgICAgdGhpcy5jYW5vbmljYWxUYWcgPSB0aGlzLmdldENhbm9uaWNhbFRhZygpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBwYXRoID0gdGhpcy5kb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZTtcclxuXHJcbiAgICBpZiAodGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCAmJiBwYXRoLmluY2x1ZGVzKHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpKSB7XHJcbiAgICAgIHBhdGggPSBwYXRoLnJlcGxhY2UodGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCwgJycpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykpIHtcclxuICAgICAgcGF0aCA9IGAvJHtwYXRofWA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY2Fub25pY2FsVXJsID0gdXJsICYmIHRoaXMuaXNDdXN0b21DYW5vbmljYWwodXJsKSA/IHVybCA6IGAke2dldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpfSR7cGF0aH1gO1xyXG5cclxuICAgIHRoaXMuY2Fub25pY2FsVGFnLnNldEF0dHJpYnV0ZSgnaHJlZicsIGNhbm9uaWNhbFVybCk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZlcmlmaWNhIHNlIGEgVVJMIGZvcm5lY2lkYSDDqSB1bSBsaW5rIGNhbm9uaWNhbCBwZXJzb25hbGl6YWRvXHJcbiAgICogQHBhcmFtIHVybCBVUkwgZm9ybmVjaWRhXHJcbiAgICovXHJcbiAgcHVibGljIGlzQ3VzdG9tQ2Fub25pY2FsKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XHJcbiAgICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgoc2l0ZXVybCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnTDqW0gdW1hIHVybCB2w6FsaWRhIG5hIGFwbGljYcOnw6NvIHByb3ZlbmllbnRlIGRlIHVtYSBVUkwgZ2VyYWRhXHJcbiAgICogcGVsbyBwbHVnaW4gWW9hc3QgcGFyYSBjYW5vbmljYWwgYXV0b23DoXRpY28uXHJcbiAgICogRXguOiBodHRwczovL3dwLnJlZGVkb3JzYW9sdWl6LmNvbS5ici9icmFzaWwvZXNwZWNpYWxpZGFkZXMvY2FyZGlvbG9naWEvXHJcbiAgICogQHBhcmFtIHVybEZyb21XcEFwaSBVUkwgY2Fub25pY2EgZ2VyYWRhIHBlbG8gWW9hc3QgUGx1Z2luLlxyXG4gICAqL1xyXG4gIHRvTG9jYWxDYW5vbmljYWwodXJsRnJvbVdwQXBpOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5saWJDb25maWc/LndwVXJsID8/ICcnO1xyXG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xyXG4gICAgY29uc3QgdW5pZGFkZVNsdWcgPSB0aGlzLnVuaWRhZGVTbHVnO1xyXG4gICAgbGV0IGNvbnZlcnRlZCA9IHVybEZyb21XcEFwaS5yZXBsYWNlKGFwaVVybCwgc2l0ZXVybCk7XHJcbiAgICBpZiAodW5pZGFkZVNsdWcgIT09ICcvJyAmJiBjb252ZXJ0ZWQuaW5jbHVkZXMoYC8ke3VuaWRhZGVTbHVnfS9gKSkge1xyXG4gICAgICBjb252ZXJ0ZWQgPSBjb252ZXJ0ZWQucmVwbGFjZShgLyR7dW5pZGFkZVNsdWd9L2AsIGAke3RoaXMudW5pZGFkZVBhdGh9YCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29udmVydGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0UG9zdENvbnRlbnQocG9zdDogV3BQb3N0KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSBwb3N0Py5hY2Y/LlsncmRzbF9wb3N0X2NvbnRlbnQnXSA/IHBvc3Q/LmFjZj8ucmRzbF9wb3N0X2NvbnRlbnQ/LmZpbmQoKGNvbnRlbnQ6IGFueSkgPT4gY29udGVudC5hY2ZfZmNfbGF5b3V0ID09PSAndGV4dF9odG1sJykgOiBudWxsO1xyXG4gICAgcmV0dXJuIGNvbnRlbnQ/LmNvbnRlbnQgfHwgcG9zdC5jb250ZW50LnJlbmRlcmVkIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgYWRkQXJ0aWNsZVNjcmlwdChwb3N0OiBXcFBvc3QsIHNjcmlwdE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgcG9zdENvbnRlbnQgPSB0aGlzLmdldFBvc3RDb250ZW50KHBvc3QpO1xyXG4gICAgY29uc3QgcG9zdEhlYWRlckltYWdlID0gcG9zdD8uYWNmPy5bJ3Jkc2xfcG9zdF9oZWFkZXJfaW1nJ11cclxuICAgICAgPyB7XHJcbiAgICAgICAgICB1cmw6IHBvc3Q/LmFjZj8uWydyZHNsX3Bvc3RfaGVhZGVyX2ltZyddLnVybCxcclxuICAgICAgICAgIHdpZHRoOiBwb3N0Py5hY2Y/LlsncmRzbF9wb3N0X2hlYWRlcl9pbWcnXS53aWR0aCxcclxuICAgICAgICAgIGhlaWdodDogcG9zdD8uYWNmPy5bJ3Jkc2xfcG9zdF9oZWFkZXJfaW1nJ10uaGVpZ2h0LFxyXG4gICAgICAgIH1cclxuICAgICAgOiBudWxsO1xyXG5cclxuICAgIGNvbnN0IHN0cnVjdHVyZWREYXRhID0ge1xyXG4gICAgICAnQGNvbnRleHQnOiAnaHR0cHM6Ly9zY2hlbWEub3JnJyxcclxuICAgICAgJ0B0eXBlJzogJ0FydGljbGUnLFxyXG4gICAgICBtYWluRW50aXR5T2ZQYWdlOiBgJHtnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KX0ke3RoaXMubG9jYXRpb24ucGF0aCgpfWAsXHJcbiAgICAgIGhlYWRsaW5lOiBwb3N0LnRpdGxlPy5yZW5kZXJlZCxcclxuICAgICAgZGF0ZVB1Ymxpc2hlZDogcG9zdC5kYXRlX2dtdCxcclxuICAgICAgcHVibGlzaGVyOiB7XHJcbiAgICAgICAgJ0B0eXBlJzogJ01lZGljYWxPcmdhbml6YXRpb24nLFxyXG4gICAgICAgIG5hbWU6ICdSZWRlIETigJlPcicsXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBwb3N0LnRpdGxlPy5yZW5kZXJlZCxcclxuICAgICAgYXJ0aWNsZUJvZHk6IHJlbW92ZUh0bWxUYWdzKGhlLmRlY29kZShwb3N0Q29udGVudCkpLFxyXG4gICAgICBkYXRlTW9kaWZpZWQ6IHBvc3QubW9kaWZpZWRfZ210LFxyXG4gICAgICBpbWFnZToge1xyXG4gICAgICAgICdAdHlwZSc6ICdJbWFnZU9iamVjdCcsXHJcbiAgICAgICAgdXJsOiBwb3N0SGVhZGVySW1hZ2U/LnVybCB8fCBwb3N0LmZlYXR1cmVkX21lZGlhX3BhdGggfHwgJycsXHJcbiAgICAgICAgaGVpZ2h0OiBwb3N0SGVhZGVySW1hZ2U/LmhlaWdodCB8fCAnJyxcclxuICAgICAgICB3aWR0aDogcG9zdEhlYWRlckltYWdlPy53aWR0aCB8fCAnJyxcclxuICAgICAgfSxcclxuICAgICAgYXV0aG9yOiB7XHJcbiAgICAgICAgJ0B0eXBlJzogJ01lZGljYWxPcmdhbml6YXRpb24nLFxyXG4gICAgICAgIG5hbWU6ICdSZWRlIETigJlPcicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHdvcmRjb3VudDogcG9zdENvbnRlbnQuc3BsaXQoJyAnKS5sZW5ndGgsXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcblxyXG4gICAgc2NyaXB0LnR5cGUgPSAnYXBwbGljYXRpb24vbGQranNvbic7XHJcbiAgICBzY3JpcHQuaWQgPSBzY3JpcHROYW1lO1xyXG4gICAgc2NyaXB0LmlubmVySFRNTCA9IEpTT04uc3RyaW5naWZ5KHN0cnVjdHVyZWREYXRhKTtcclxuXHJcbiAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUFydGljbGVTY3JpcHQoc2NyaXB0TmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNjcmlwdE5hbWUpO1xyXG4gICAgc2NyaXB0Py5yZW1vdmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRVbmlkYWRlKHsgdW5pZGFkZSA9IG51bGwsIHVuaWRhZGVOYW1lID0gJycsIHVuaWRhZGVQYXRoID0gJycsIHVuaWRhZGVTbHVnID0gJycgfTogU2VvVW5pZGFkZSkge1xyXG4gICAgdGhpcy51bmlkYWRlID0gdW5pZGFkZTtcclxuICAgIHRoaXMudW5pZGFkZU5hbWUgPSB1bmlkYWRlTmFtZTtcclxuICAgIHRoaXMudW5pZGFkZVBhdGggPSB1bmlkYWRlUGF0aDtcclxuICAgIHRoaXMudW5pZGFkZVNsdWcgPSB1bmlkYWRlU2x1ZztcclxuICB9XHJcbn1cclxuIl19
|