nuxeo-development-framework 3.7.8 → 3.7.9
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/bundles/nuxeo-development-framework.umd.js +3857 -3471
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/activities-log/activities-log/activities-log.component.js +4 -4
- package/esm2015/lib/components/activities-log/activities-log/activities-log.service.js +4 -4
- package/esm2015/lib/components/activities-log/activities-log.module.js +5 -5
- package/esm2015/lib/components/activity/activity/activity.component.js +4 -4
- package/esm2015/lib/components/activity/activity.module.js +5 -5
- package/esm2015/lib/components/attachment-item/attachment-item/attachment-item.component.js +4 -4
- package/esm2015/lib/components/attachment-item/attachment-item.module.js +5 -5
- package/esm2015/lib/components/attachment-modal/attachment-modal.module.js +5 -5
- package/esm2015/lib/components/attachment-modal/attachments/attachments.component.js +4 -4
- package/esm2015/lib/components/avatar/avatar/avatar.component.js +4 -4
- package/esm2015/lib/components/avatar/avatar.module.js +5 -5
- package/esm2015/lib/components/card/card.component.js +4 -4
- package/esm2015/lib/components/card/card.module.js +5 -5
- package/esm2015/lib/components/comments/comments.module.js +5 -5
- package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +4 -4
- package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +4 -4
- package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +4 -4
- package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +4 -4
- package/esm2015/lib/components/comments/services/comment-api.service.js +4 -4
- package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +4 -4
- package/esm2015/lib/components/confirm-caller/confirm-caller.module.js +5 -5
- package/esm2015/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.js +4 -4
- package/esm2015/lib/components/confirmation-dialog/confirmation-dialog/confirmation-dialog.component.js +4 -4
- package/esm2015/lib/components/confirmation-dialog/confirmation-dialog.module.js +5 -5
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +5 -5
- package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +4 -4
- package/esm2015/lib/components/correspondence-relation/services/viewer-files.service.js +4 -4
- package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +4 -4
- package/esm2015/lib/components/create-entity/create-entity.module.js +5 -5
- package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +4 -4
- package/esm2015/lib/components/cts-tags/cts-tags.module.js +5 -5
- package/esm2015/lib/components/cts-tags/services/tags-api.service.js +4 -4
- package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +4 -4
- package/esm2015/lib/components/custom-toastr/custom-toastr.module.js +5 -5
- package/esm2015/lib/components/custom-toastr/services/custom-toastr.service.js +4 -4
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/display-suitable-icon.component.js +4 -4
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/icon.service.js +4 -4
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon.module.js +5 -5
- package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +4 -4
- package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +4 -4
- package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +4 -4
- package/esm2015/lib/components/documents/components/document-scan/document-scan.component.js +4 -4
- package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +4 -4
- package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +4 -4
- package/esm2015/lib/components/documents/components/documents/documents.component.js +4 -4
- package/esm2015/lib/components/documents/documents.module.js +5 -5
- package/esm2015/lib/components/documents/services/document-templates.service.js +4 -4
- package/esm2015/lib/components/documents/services/documents.service.js +4 -4
- package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +4 -4
- package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +5 -5
- package/esm2015/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.js +4 -4
- package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +4 -4
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +9 -8
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.js +12 -8
- package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +4 -4
- package/esm2015/lib/components/dynamic-filter/dynamic-filter.module.js +5 -5
- package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/fields.adapter.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/form-builder.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.js +4 -4
- package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +5 -5
- package/esm2015/lib/components/dynamic-form/services/card-item-types.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/services/dynamic-form-update.service.js +4 -4
- package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +4 -4
- package/esm2015/lib/components/dynamic-search/dynamic-search.module.js +5 -5
- package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +4 -4
- package/esm2015/lib/components/dynamic-table/dynamic-table.module.js +5 -5
- package/esm2015/lib/components/dynamic-table/services/dynamic-table.service.js +4 -4
- package/esm2015/lib/components/dynamic-tabs/dynamic-tabs/dynamic-tabs.component.js +4 -4
- package/esm2015/lib/components/dynamic-tabs/dynamic-tabs.module.js +5 -5
- package/esm2015/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/data-viewer/data-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/date-viewer/date-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/department-viewer/department-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/dynamic-view.module.js +5 -5
- package/esm2015/lib/components/dynamic-view/dynamic-viewe.service.js +4 -4
- package/esm2015/lib/components/dynamic-view/list-viewer/list-viewer.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/clipboard/clipboard.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/copy/copy.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/create-directory/create-directory.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +6 -6
- package/esm2015/lib/components/file-manger/components/creation-type/creation-type.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/delete/delete.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/folder-modal/folder-modal.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/loan-request/loan-request.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/move/move.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/publish-dialog/publish-dialog.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/rename/rename.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/sidepanel/sidepanel.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/transfer-doc/transfer-doc.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +4 -4
- package/esm2015/lib/components/file-manger/file-manager.abstract.js +7 -5
- package/esm2015/lib/components/file-manger/file-manger.module.js +5 -5
- package/esm2015/lib/components/filter/filter/filter.component.js +4 -4
- package/esm2015/lib/components/filter/filter.module.js +5 -5
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.js +5 -5
- package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-helper.service.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.js +4 -4
- package/esm2015/lib/components/latest-activity/components/activity-line/activity-line.component.js +4 -4
- package/esm2015/lib/components/latest-activity/components/latest-activity/latest-activity.component.js +4 -4
- package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +4 -4
- package/esm2015/lib/components/latest-activity/latest-activity.module.js +5 -5
- package/esm2015/lib/components/latest-activity/services/activity-log.service.js +4 -4
- package/esm2015/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.js +4 -4
- package/esm2015/lib/components/mutiple-dynamic-form-viewer/mutiple-dynamic-form-viewer.module.js +5 -5
- package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notification-options/notification-options.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notification-toast/notification-toast.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +4 -4
- package/esm2015/lib/components/notifications/notifications.module.js +5 -5
- package/esm2015/lib/components/notifications/notifications.service.js +4 -4
- package/esm2015/lib/components/pagination/pagination/pagination.component.js +4 -4
- package/esm2015/lib/components/pagination/pagination.module.js +5 -5
- package/esm2015/lib/components/pdf-tron/pdf-tron.module.js +5 -5
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +4 -4
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.service.js +6 -4
- package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +4 -4
- package/esm2015/lib/components/permissions/permission.service.js +4 -4
- package/esm2015/lib/components/permissions/permissions/permissions.component.js +4 -4
- package/esm2015/lib/components/permissions/permissions-template/permissions-template.component.js +4 -4
- package/esm2015/lib/components/permissions/permissions.module.js +5 -5
- package/esm2015/lib/components/select/select/select.component.js +4 -4
- package/esm2015/lib/components/select/select.module.js +10 -8
- package/esm2015/lib/components/select-users-by-department/select-users-by-department.module.js +5 -5
- package/esm2015/lib/components/select-users-by-department/select-users-by-departments/department-management.service.js +4 -4
- package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +4 -4
- package/esm2015/lib/components/table/dynamic-column/dynamic-column.component.js +4 -4
- package/esm2015/lib/components/table/table/table.component.js +4 -4
- package/esm2015/lib/components/table/table.module.js +5 -5
- package/esm2015/lib/components/user/user/user.component.js +4 -4
- package/esm2015/lib/components/user/user.module.js +5 -5
- package/esm2015/lib/components/users-card/users-card.component.js +4 -4
- package/esm2015/lib/components/users-card/users-card.module.js +5 -5
- package/esm2015/lib/components/viewer-log/components/viewer-log/viewer-log.component.js +4 -4
- package/esm2015/lib/components/viewer-log/viewer-log.module.js +5 -5
- package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +11 -12
- package/esm2015/lib/components/vocabulary/translated-vocabulary-select/translated-vocabulary-select.component.js +207 -0
- package/esm2015/lib/components/vocabulary/vocabulary/vocabulary.component.js +4 -4
- package/esm2015/lib/components/vocabulary/vocabulary.module.js +17 -10
- package/esm2015/lib/configuration/app-config.service.js +4 -4
- package/esm2015/lib/{Core → core}/adapters/adapter.service.js +4 -4
- package/esm2015/lib/core/core.module.js +115 -0
- package/esm2015/lib/{Core → core}/enums/language.enum.js +1 -1
- package/esm2015/lib/core/env/env-manager.js +7 -0
- package/esm2015/lib/core/env/index.js +2 -0
- package/esm2015/lib/{Core → core}/models/component.model.js +1 -1
- package/esm2015/lib/{Core → core}/services/callApi/call-api.service.js +4 -4
- package/esm2015/lib/{Core → core}/services/extension/component-register.service.js +4 -4
- package/esm2015/lib/{Core → core}/services/extension/extension-loader.service.js +4 -4
- package/esm2015/lib/{Core → core}/services/extension/extension.service.js +4 -4
- package/esm2015/lib/{Core → core}/services/initialization/initialization.service.js +4 -4
- package/esm2015/lib/{Core → core}/services/localStorag/local-storag.service.js +4 -4
- package/esm2015/lib/{Core → core}/services/nuxeo/new-nuxeo-overide.js +1 -1
- package/esm2015/lib/{Core → core}/services/nuxeo/nuxeo-override.js +1 -1
- package/esm2015/lib/{Core → core}/services/nuxeo/nuxeo.service.js +4 -4
- package/esm2015/lib/{Core → core}/services/roles/roles.service.js +4 -4
- package/esm2015/lib/{Core → core}/services/translation/translate-loader.service.js +4 -4
- package/esm2015/lib/{Core → core}/services/translation/translation.service.js +4 -4
- package/esm2015/lib/{Core → core}/services/user/user-preferences.service.js +4 -4
- package/esm2015/lib/{Core → core}/utilities/moment-date-adapter.js +4 -4
- package/esm2015/lib/{Core → core}/utilities/utility.service.js +4 -4
- package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +4 -4
- package/esm2015/lib/directive/clickOutSide/click-outside.directive.js +4 -4
- package/esm2015/lib/directive/directive.module.js +5 -5
- package/esm2015/lib/directive/drag-and-drop/drag-and-drop.directive.js +4 -4
- package/esm2015/lib/directive/permissions/evaluators.service.js +4 -4
- package/esm2015/lib/directive/permissions/permissions.directive.js +4 -4
- package/esm2015/lib/directive/rtl/set-dir-rtl.directive.js +4 -4
- package/esm2015/lib/directive/rtl/set-rtl.directive.js +4 -4
- package/esm2015/lib/nuxeo-development-framework.component.js +4 -4
- package/esm2015/lib/nuxeo-development-framework.module.js +13 -43
- package/esm2015/lib/nuxeo-development-framework.service.js +4 -4
- package/esm2015/lib/pipes/file-size.pipe.js +4 -4
- package/esm2015/lib/pipes/hijri-date.pipe.js +4 -4
- package/esm2015/lib/pipes/localized-date.pipe.js +4 -4
- package/esm2015/lib/pipes/multi-value.pipe.js +4 -4
- package/esm2015/lib/pipes/pipes.module.js +5 -5
- package/esm2015/lib/pipes/secure-html.pipe.js +4 -4
- package/esm2015/lib/pipes/secure.pipe.js +4 -4
- package/esm2015/lib/pipes/time-ago.pipe.js +4 -4
- package/esm2015/lib/shared/components/button/button.component.js +4 -4
- package/esm2015/lib/shared/components/item-list/item-list.component.js +4 -4
- package/esm2015/lib/shared/components/no-data/no-data.component.js +4 -4
- package/esm2015/lib/shared/components/read-more/read-more.component.js +4 -4
- package/esm2015/lib/shared/components/search-autocomplete/search-autocomplete.component.js +4 -4
- package/esm2015/lib/shared/components/spinner/spinner.component.js +4 -4
- package/esm2015/lib/shared/components/user-card/user-card.component.js +4 -4
- package/esm2015/lib/shared/libraryShared.module.js +5 -5
- package/esm2015/lib/shared-services/dialog-mangment.service.js +8 -12
- package/esm2015/lib/shared-services/dynamic-form.service.js +4 -4
- package/esm2015/lib/shared-services/file-manager.adapter.js +4 -4
- package/esm2015/lib/shared-services/file-manager.service.js +4 -4
- package/esm2015/lib/shared-services/global-admin.service.js +4 -4
- package/esm2015/lib/shared-services/global-pdftron.service.js +13 -8
- package/esm2015/lib/shared-services/mainfolder.service.js +4 -4
- package/esm2015/lib/shared-services/publishing-document.service.js +4 -4
- package/esm2015/lib/shared-services/recently-viewed.service.js +4 -4
- package/esm2015/lib/shared-services/shared-docs.service.js +4 -4
- package/esm2015/lib/shared-services/shared-services.module.js +5 -5
- package/esm2015/lib/shared-services/upload-file.service.js +4 -4
- package/esm2015/lib/shared-services/upload-managment.service.js +4 -4
- package/esm2015/lib/shared-services/user.service.js +4 -4
- package/esm2015/public-api.js +3 -1
- package/fesm2015/nuxeo-development-framework.js +3253 -3058
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.d.ts +2 -1
- package/lib/components/file-manger/file-manager.abstract.d.ts +1 -0
- package/lib/components/select/select.module.d.ts +1 -1
- package/lib/components/vocabulary/services/vocabulary-api.service.d.ts +2 -0
- package/lib/components/vocabulary/translated-vocabulary-select/translated-vocabulary-select.component.d.ts +80 -0
- package/lib/components/vocabulary/vocabulary.module.d.ts +6 -4
- package/lib/core/core.module.d.ts +17 -0
- package/lib/core/env/env-manager.d.ts +51 -0
- package/lib/core/env/index.d.ts +1 -0
- package/lib/nuxeo-development-framework.module.d.ts +1 -4
- package/lib/shared-services/dialog-mangment.service.d.ts +2 -2
- package/lib/shared-services/global-pdftron.service.d.ts +2 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
- package/esm2015/lib/Core/core.module.js +0 -107
- package/lib/Core/core.module.d.ts +0 -14
- /package/esm2015/lib/{Core → core}/services/extension/action.extensions.js +0 -0
- /package/esm2015/lib/{Core → core}/services/extension/extenion-utils.js +0 -0
- /package/esm2015/lib/{Core → core}/services/extension/extension-element.js +0 -0
- /package/lib/{Core → core}/adapters/adapter.service.d.ts +0 -0
- /package/lib/{Core → core}/enums/language.enum.d.ts +0 -0
- /package/lib/{Core → core}/models/component.model.d.ts +0 -0
- /package/lib/{Core → core}/services/callApi/call-api.service.d.ts +0 -0
- /package/lib/{Core → core}/services/extension/action.extensions.d.ts +0 -0
- /package/lib/{Core → core}/services/extension/component-register.service.d.ts +0 -0
- /package/lib/{Core → core}/services/extension/extenion-utils.d.ts +0 -0
- /package/lib/{Core → core}/services/extension/extension-element.d.ts +0 -0
- /package/lib/{Core → core}/services/extension/extension-loader.service.d.ts +0 -0
- /package/lib/{Core → core}/services/extension/extension.service.d.ts +0 -0
- /package/lib/{Core → core}/services/initialization/initialization.service.d.ts +0 -0
- /package/lib/{Core → core}/services/localStorag/local-storag.service.d.ts +0 -0
- /package/lib/{Core → core}/services/nuxeo/new-nuxeo-overide.d.ts +0 -0
- /package/lib/{Core → core}/services/nuxeo/nuxeo-override.d.ts +0 -0
- /package/lib/{Core → core}/services/nuxeo/nuxeo.service.d.ts +0 -0
- /package/lib/{Core → core}/services/roles/roles.service.d.ts +0 -0
- /package/lib/{Core → core}/services/translation/translate-loader.service.d.ts +0 -0
- /package/lib/{Core → core}/services/translation/translation.service.d.ts +0 -0
- /package/lib/{Core → core}/services/user/user-preferences.service.d.ts +0 -0
- /package/lib/{Core → core}/utilities/moment-date-adapter.d.ts +0 -0
- /package/lib/{Core → core}/utilities/utility.service.d.ts +0 -0
|
@@ -255,9 +255,9 @@ export class DynamicFormTextItemComponent {
|
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
257
|
DynamicFormTextItemComponent.DEFAULT_SEPARATOR = ', ';
|
|
258
|
-
DynamicFormTextItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
259
|
-
DynamicFormTextItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
260
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
258
|
+
DynamicFormTextItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicFormTextItemComponent, deps: [{ token: i1.DynamicFormUpdateService }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
259
|
+
DynamicFormTextItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFormTextItemComponent, selector: "app-dynamic-form-textitem", inputs: { autoComplete: "autoComplete", nativeAutoComplete: "nativeAutoComplete", autoComplete_pageProvider: "autoComplete_pageProvider", autoComplete_propertyName: "autoComplete_propertyName", autoComplete_propertyKey: "autoComplete_propertyKey", autoCompleteValueKey: "autoCompleteValueKey", autoCompleteType: "autoCompleteType", tenantId: "tenantId", emitFullObject: "emitFullObject", outsideParams: "outsideParams", type: "type", property: "property", label: "label", editable: "editable", placeholder: "placeholder", disabled: "disabled", displayEmpty: "displayEmpty", preventSpace: "preventSpace", id: "id", maxCharsNum: "maxCharsNum" }, viewQueries: [{ propertyName: "editorInput", first: true, predicate: ["editorInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"app-property-value\">\r\n <div class=\"app-input-wrapper\">\r\n <label *ngIf=\"label\" for=\"formGroupInputSmall\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n <div class=\"\">\r\n <ng-container *ngIf=\"isEditable(); else readOnly\">\r\n <div class=\"new-one\" (clickOutside)=\"openOptions(false)\">\r\n <input\r\n \r\n [id]=\"id\"\r\n [attr.disabled]=\"isDisabled() || null\"\r\n [type]=\"type\"\r\n class=\"form-control\"\r\n [ngClass]=\"{'input-filled' : (emitFullObject ? (editedValue?.title) : editedValue) }\"\r\n (keydown.space)=\"allowSpace($event)\"\r\n #editorInput\r\n [required]=\"isRequired()\"\r\n [(ngModel)]=\"emitFullObject ? editedValue?.title : editedValue\"\r\n [autocomplete]=\"nativeAutoComplete\"\r\n (ngModelChange)=\"update($event)\"\r\n (keyup)=\"waitUntilUserFinishTyping()\"\r\n [attr.data-automation-id]=\"'card-textitem-editinput-'\"\r\n placeholder=\"{{ placeholder | translate }}\"\r\n (focus)=\"openOptions(true)\"\r\n maxlength=\"{{maxCharsNum}}\"\r\n />\r\n <div *ngIf=\"documentList.length !== 0\" id=\"suggestedoptions\">\r\n <div\r\n class=\"suggestions-wrapper\"\r\n [ngClass]=\"{ 'd-block': showsuggestedOptions }\"\r\n >\r\n <div\r\n class=\"option\"\r\n id=\"suggestedoptions\"\r\n *ngFor=\"let option of documentList\"\r\n (click)=\"selectItem(option)\"\r\n >\r\n {{ option.title }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n >\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ label | translate }} {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n <li *ngIf=\"control.errors.pattern\">\r\n {{ \"wrong pattern\" | translate }}\r\n </li>\r\n <li *ngIf=\"control.errors.min\">\r\n {{ \"VALIDATORS.MIN\" | translate }} {{ control.errors.min.min }}\r\n </li>\r\n </ul>\r\n </mat-error>\r\n </ng-container>\r\n <ng-template #readOnly>\r\n {{ emitFullObject ? editedValue?.title : editedValue }}\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-property-value .input-filled{border-color:#1a96c6!important}.app-property-value .app-input-wrapper label{color:#8f98aa;font-size:12px;margin-bottom:0}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;background-color:#8f98aa1a;border-radius:0;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .app-textitem-editable-error ul{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error ul li{margin-top:5px}.app-property-value .app-input-wrapper .new-one{position:relative}.app-property-value .app-input-wrapper .suggestions-wrapper{border-radius:3px;height:auto;max-height:240px;border:1px solid #ccc;box-shadow:2px 2px 2px #0000000f;overflow:auto;display:none;position:absolute;width:100%;background-color:#fff;z-index:99}.app-property-value .app-input-wrapper .suggestions-wrapper .option{margin-bottom:5px;padding:5px 10px;cursor:pointer}.app-property-value .app-input-wrapper .suggestions-wrapper .option:hover{background-color:#f5faff}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "translate": i2.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicFormTextItemComponent, decorators: [{
|
|
261
261
|
type: Component,
|
|
262
262
|
args: [{
|
|
263
263
|
selector: 'app-dynamic-form-textitem',
|
|
@@ -313,4 +313,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
313
313
|
type: ViewChild,
|
|
314
314
|
args: ['editorInput']
|
|
315
315
|
}] } });
|
|
316
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXRleHRpdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXRleHRpdGVtL2R5bmFtaWMtZm9ybS10ZXh0aXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS10ZXh0aXRlbS9keW5hbWljLWZvcm0tdGV4dGl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVV2Qjs7Ozs7Ozs7OztHQVVHO0FBUUgsTUFBTSxPQUFPLDRCQUE0QjtJQW9EdkMsWUFDVSx3QkFBa0QsRUFDbkQsU0FBMkIsRUFDUCxPQUFrQjtRQUZyQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ25ELGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQ1AsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQW5EdEMsaUJBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyw4REFBOEQ7UUFDcEYsdUJBQWtCLEdBQUcsS0FBSyxDQUFDLENBQUMsMkNBQTJDO1FBQ3ZFLDhCQUF5QixHQUFHLEVBQUUsQ0FBQztRQUMvQiw4QkFBeUIsR0FBRyxFQUFFLENBQUM7UUFDL0IsNkJBQXdCLEdBQUcsRUFBRSxDQUFDO1FBQzlCLHlCQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMx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RUFBRSwyQkFBMkI7b0JBQ3JDLFdBQVcsRUFBRSx3Q0FBd0M7b0JBQ3JELFNBQVMsRUFBRSxDQUFDLHdDQUF3QyxDQUFDO29CQUNyRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7OzBCQXdESSxJQUFJOzswQkFBSSxRQUFROzRDQW5EVixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLEVBQUU7c0JBREQsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVFLFdBQVc7c0JBRGxCLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPcHRpb25hbCxcclxuICBTZWxmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgTmdDb250cm9sLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBEeW5hbWljRm9ybVRleHRJdGVtTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHluYW1pYy1mb3JtLm1vZGVscyc7XHJcbmltcG9ydCB7IER5bmFtaWNGb3JtVXBkYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS11cGRhdGUuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQSB0ZXh0IGZpZWxkIGlucHV0IHRoYXQgY2FuIGJlIHVzZWQgaW5zaWRlIHJlYWN0aXZlIG9yIHRlbXBsYXRlIGRyaXZlbiBmb3Jtc1xyXG4gKiBAdGl0bGVcclxuICogVGV4dCBGaWVsZFxyXG4gKiBAZXhhbXBsZVxyXG4gKiA8YXBwLWR5bmFtaWMtZm9ybS10ZXh0aXRlbVxyXG4gKiAgICBbaG9yaXpvbnRhbEFsaWduXT1cImZhbHNlXCJcclxuICogICAgZm9ybUNvbnRyb2xOYW1lPVwiY29udHJvbE5hbWVcIlxyXG4gKiAgICBbcGxhY2Vob2xkZXJdPVwiJ1BBVEguVE8uUExBQ0VIT0xERVIuU1RSSU5HJ1wiXHJcbiAqID48L2FwcC1keW5hbWljLWZvcm0tdGV4dGl0ZW0+XHJcbiAqL1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZHluYW1pYy1mb3JtLXRleHRpdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLXRleHRpdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0tdGV4dGl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1UZXh0SXRlbUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgc3RhdGljIERFRkFVTFRfU0VQQVJBVE9SID0gJywgJztcclxuXHJcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlID0gZmFsc2U7IC8vIHRvIGdldCBzdWdnZXN0aW9ucyBmcm9tIGJhY2tlbmQgd2hlbiB1c2VyIHR5cGUgc29tZSBsZXR0ZXJzXHJcbiAgQElucHV0KCkgbmF0aXZlQXV0b0NvbXBsZXRlID0gJ29mZic7IC8vIHRvIGdldCBzdWdnZXN0aW9ucyBmcm9tIGJyb3dzZXIgbmF0aXZlbHlcclxuICBASW5wdXQoKSBhdXRvQ29tcGxldGVfcGFnZVByb3ZpZGVyID0gJyc7XHJcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlX3Byb3BlcnR5TmFtZSA9ICcnO1xyXG4gIEBJbnB1dCgpIGF1dG9Db21wbGV0ZV9wcm9wZXJ0eUtleSA9ICcnO1xyXG4gIEBJbnB1dCgpIGF1dG9Db21wbGV0ZVZhbHVlS2V5ID0gJyc7XHJcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlVHlwZSA9J3BlcmNlbnRhZ2UnO1xyXG4gIEBJbnB1dCgpIHRlbmFudElkOyAvLyByZWFsdGVkIHRvIG11bHRpIHRlbmFudCB3aWxsIGJlIHNlbnQgaW4gY2FlIG9mIG11bHRpIHRlbmFudCBvbmx5XHJcbiAgQElucHV0KCkgZW1pdEZ1bGxPYmplY3QgPSBmYWxzZTsgLy8gdXNlZCB0byBjb250cm9sIG9uIGVtaXRpbmcgZnVsbCBzZWxlY3RlZCBvYmplY3Qgb3Igb25seSBzdHJpbmdcclxuICBASW5wdXQoKSBvdXRzaWRlUGFyYW1zID0ge307IC8vIG9iamVjdCBvZiBwYXJhbXMgdG8gYmUgcGFzc2VkIGZyb20gb3V0c2lkZVxyXG5cclxuICAvKiogaW5wdXQgdHlwZSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgdHlwZSA9ICd0ZXh0JztcclxuICAvKiogQGRlcHJlY2F0ZWQgKi9cclxuICBASW5wdXQoKVxyXG4gIHByb3BlcnR5OiBEeW5hbWljRm9ybVRleHRJdGVtTW9kZWw7XHJcbiAgLyoqIEZpZWxkIExhYmVsICovXHJcbiAgQElucHV0KClcclxuICBsYWJlbDtcclxuICAvKiogaXMgRWRpdGFibGUgKi9cclxuICBASW5wdXQoKVxyXG4gIGVkaXRhYmxlID0gdHJ1ZTtcclxuICAvKiogUGxhY2Vob2xkZXIgc3RyaW5nICovXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcclxuICAvKiogaXMgZGlzYWJsZWQgKi9cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgLyoqIEBkZXByZWNhdGVkICovXHJcbiAgQElucHV0KClcclxuICBkaXNwbGF5RW1wdHkgPSB0cnVlO1xyXG4gIC8qKiBzaG91bGQgcHJldmVudCBzcGFjZSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHJldmVudFNwYWNlID0gZmFsc2U7XHJcbiAgLyoqIERPTSBlbGVtZW50IElkICovXHJcbiAgQElucHV0KClcclxuICBpZDtcclxuXHJcbiAgQElucHV0KCkgbWF4Q2hhcnNOdW0gPSBudWxsO1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcklucHV0JylcclxuICBwcml2YXRlIGVkaXRvcklucHV0OiBhbnk7XHJcblxyXG4gIGluRWRpdCA9IGZhbHNlO1xyXG4gIGVkaXRlZFZhbHVlOiBzdHJpbmc7XHJcbiAgZXJyb3JNZXNzYWdlczogc3RyaW5nW107XHJcbiAgdmFsdWVTZXBhcmF0b3I6IHN0cmluZztcclxuICBzaG93c3VnZ2VzdGVkT3B0aW9ucyA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZHluYW1pY0Zvcm1VcGRhdGVTZXJ2aWNlOiBEeW5hbWljRm9ybVVwZGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgY29udHJvbDogTmdDb250cm9sXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB0aGlzLnZhbHVlU2VwYXJhdG9yID0gRHluYW1pY0Zvcm1UZXh0SXRlbUNvbXBvbmVudC5ERUZBVUxUX1NFUEFSQVRPUjtcclxuICB9XHJcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcclxuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfTtcclxuXHJcbiAgaXNSZXF1aXJlZCgpIHtcclxuICAgIGlmICghdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLmNvbnRyb2wuY29udHJvbC52YWxpZGF0b3Ioe30gYXMgQWJzdHJhY3RDb250cm9sKTtcclxuICAgIHJldHVybiB2YWxpZGF0b3IgJiYgdmFsaWRhdG9yLnJlcXVpcmVkO1xyXG4gIH1cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRlZFZhbHVlID0gb2JqO1xyXG4gICAgLy90aGlzLnByb3BlcnR5LnZhbHVlID0gb2JqO1xyXG5cclxuICAgIC8vICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2wgPyB0aGlzLmNvbnRyb2wuaW52YWxpZCA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaG93RXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgeyBkaXJ0eSwgdG91Y2hlZCB9ID0gdGhpcy5jb250cm9sO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyBkaXJ0eSB8fCB0b3VjaGVkIDogZmFsc2U7XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIC8qdGhpcy5lZGl0ZWRWYWx1ZSA9IHRoaXMucHJvcGVydHkubXVsdGlsaW5lXHJcbiAgICAgID8gdGhpcy5wcm9wZXJ0eS5kaXNwbGF5VmFsdWVcclxuICAgICAgOiB0aGlzLnByb3BlcnR5LnZhbHVlOyovXHJcbiAgfVxyXG5cclxuICBzaG93UHJvcGVydHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5RW1wdHkgfHwgIXRoaXMucHJvcGVydHkuaXNFbXB0eSgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0NsaWNrYWJsZUljb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5oYXNJY29uKCkgJiYgdGhpcy5lZGl0YWJsZTtcclxuICB9XHJcblxyXG4gIGlzRWRpdGFibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5lZGl0YWJsZTtcclxuICB9XHJcbiAgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgaXNDbGlja2FibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnByb3BlcnR5LmNsaWNrYWJsZTtcclxuICB9XHJcblxyXG4gIGhhc0ljb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnByb3BlcnR5Lmljb247XHJcbiAgfVxyXG5cclxuICBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93RXJyb3I7XHJcbiAgfVxyXG4gIGFsbG93U3BhY2UoZSkge1xyXG4gICAgaWYgKHRoaXMucHJldmVudFNwYWNlKSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0RWRpdE1vZGUoZWRpdFN0YXR1czogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pbkVkaXQgPSBlZGl0U3RhdHVzO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmVkaXRvcklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JJbnB1dD8ubmF0aXZlRWxlbWVudD8uY2xpY2soKTtcclxuICAgICAgfVxyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICByZXNldChldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIC8qdGhpcy5lZGl0ZWRWYWx1ZSA9IHRoaXMucHJvcGVydHkubXVsdGlsaW5lXHJcbiAgICAgID8gdGhpcy5wcm9wZXJ0eS5kaXNwbGF5VmFsdWVcclxuICAgICAgOiB0aGlzLnByb3BlcnR5LnZhbHVlOyovXHJcbiAgICB0aGlzLnNldEVkaXRNb2RlKGZhbHNlKTtcclxuICAgIHRoaXMucmVzZXRFcnJvck1lc3NhZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0RXJyb3JNZXNzYWdlcygpIHtcclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKGV2ZW50OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgLy8gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBjb25zdCB1cGRhdGVkVmFsdWUgPSB0aGlzLnByZXBhcmVWYWx1ZUZvclVwbG9hZChcclxuICAgICAgdGhpcy5wcm9wZXJ0eSxcclxuICAgICAgdGhpcy5lZGl0ZWRWYWx1ZVxyXG4gICAgKTtcclxuICAgIC8vIHRoaXMucHJvcGVydHkudmFsdWUgPSB1cGRhdGVkVmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHVwZGF0ZWRWYWx1ZSk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgLy8gdGhpcy5keW5hbWljRm9ybVVwZGF0ZVNlcnZpY2UudXBkYXRlKHRoaXMucHJvcGVydHksIHVwZGF0ZWRWYWx1ZSk7XHJcbiAgICB0aGlzLnNldEVkaXRNb2RlKGZhbHNlKTtcclxuICAgIHRoaXMucmVzZXRFcnJvck1lc3NhZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcmVwYXJlVmFsdWVGb3JVcGxvYWQoXHJcbiAgICBwcm9wZXJ0eTogRHluYW1pY0Zvcm1UZXh0SXRlbU1vZGVsLFxyXG4gICAgdmFsdWU6IHN0cmluZ1xyXG4gICk6IHN0cmluZyB8IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIG9uVGV4dEFyZWFJbnB1dENoYW5nZSgpIHtcclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IHRoaXMucHJvcGVydHkuZ2V0VmFsaWRhdGlvbkVycm9ycyh0aGlzLmVkaXRlZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIGNsaWNrZWQoKTogdm9pZCB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMucHJvcGVydHkuY2xpY2tDYWxsQmFjayA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICB0aGlzLnByb3BlcnR5LmNsaWNrQ2FsbEJhY2soKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZHluYW1pY0Zvcm1VcGRhdGVTZXJ2aWNlLmNsaWNrZWQodGhpcy5wcm9wZXJ0eSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RJdGVtKHNlbGVjdGVkSXRlbSkge1xyXG4gICAgaWYodGhpcy5lbWl0RnVsbE9iamVjdCl7XHJcbiAgICAgIHRoaXMuZWRpdGVkVmFsdWUgPSBzZWxlY3RlZEl0ZW07XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5lZGl0ZWRWYWx1ZSA9IHNlbGVjdGVkSXRlbS50aXRsZTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlKG51bGwpO1xyXG4gICAgdGhpcy5zaG93c3VnZ2VzdGVkT3B0aW9ucyA9IGZhbHNlO1xyXG4gICAgdGhpcy5kb2N1bWVudExpc3QgPSBbXTtcclxuICB9XHJcblxyXG4gIHJlc2V0U2VsZWN0aW5nKCl7XHJcbiAgICBpZih0aGlzLmVtaXRGdWxsT2JqZWN0KXtcclxuICAgICAgdGhpcy5lZGl0ZWRWYWx1ZSA9IG51bGw7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5lZGl0ZWRWYWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGUobnVsbCk7XHJcbiAgfVxyXG5cclxuICBkb2N1bWVudExpc3Q6IGFueVtdID0gW107XHJcbiAgZGVsYXllZEFjdGlvbjtcclxuICB3YWl0VW50aWxVc2VyRmluaXNoVHlwaW5nKCkge1xyXG4gICAgaWYgKHRoaXMuZGVsYXllZEFjdGlvbikge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5kZWxheWVkQWN0aW9uKTtcclxuICAgICAgdGhpcy5kZWxheWVkQWN0aW9uID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaElucHV0Q2hhbmdlKCk7XHJcbiAgICAgIH0sIDE1MDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kZWxheWVkQWN0aW9uID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaElucHV0Q2hhbmdlKCk7XHJcbiAgICAgIH0sIDE1MDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hJbnB1dENoYW5nZSgpIHtcclxuICAgIGlmICh0aGlzLmF1dG9Db21wbGV0ZSkge1xyXG4gICAgICBpZighdGhpcy5lZGl0b3JJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlKXtcclxuICAgICAgICB0aGlzLnJlc2V0U2VsZWN0aW5nKCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHZhbCA9IHRoaXMuZWRpdG9ySW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICBjdXJyZW50UGFnZUluZGV4OiAwLFxyXG4gICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICBwYWdlU2l6ZTogNDAsXHJcbiAgICAgICAgcGFnZVByb3ZpZGVyOiB0aGlzLmF1dG9Db21wbGV0ZV9wYWdlUHJvdmlkZXIsXHJcbiAgICAgICAgLi4udGhpcy5vdXRzaWRlUGFyYW1zXHJcbiAgICAgIH07XHJcbiAgICAgIC8vIGlmIGkgd2FzIHNlbmRpbmcgdGVuYW50IGlkIGZyb20gb3V0c2lkZSB0aGVuIGkgYW0gaW4gY2FzZSBvZiBtdWx0aSB0ZW5hbnQgdGhlbiBhZGQgdGVuYW50IGlkIHRvIHBhcmFtc1xyXG4gICAgICBpZih0aGlzLnRlbmFudElkKXtcclxuICAgICAgICBwYXJhbXNbJ3F1ZXJ5UGFyYW1zJ10gPSBgJHt0aGlzLnRlbmFudElkfWBcclxuICAgICAgfVxyXG4gICAgICAvLyBwYXJhbXNbdGhpcy5hdXRvQ29tcGxldGVfcHJvcGVydHlOYW1lXSA9ICh2YWwpID8gYCUke3ZhbH0lYCA6ICcnO1xyXG4gICAgICBpZih0aGlzLmF1dG9Db21wbGV0ZVR5cGU9PVwiY2FzZVNlbnNpdGl2ZVwiICYmIHZhbCl7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuVG9DYXNlSW5zZW5zaXRpdmUodmFsKTtcclxuICAgICAgICBwYXJhbXNbdGhpcy5hdXRvQ29tcGxldGVfcHJvcGVydHlOYW1lXT1yZXN1bHQ7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmKHRoaXMuYXV0b0NvbXBsZXRlVHlwZT09XCJwZXJjZW50YWdlXCIgJiYgdmFsKXtcclxuXHJcbiAgICAgICAgICBwYXJhbXNbdGhpcy5hdXRvQ29tcGxldGVfcHJvcGVydHlOYW1lXT0nJScrdmFsKyclJztcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHBhcmFtc1t0aGlzLmF1dG9Db21wbGV0ZV9wcm9wZXJ0eU5hbWVdPSAnJ1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvLyBjaGVjayBpZiByZWxhdGlvbiB0aGVuIHdpbGwgdXNlIGVudHJpZXMgdGhlbiBmZXRjaCBvbmx5IHJlcXVpcmVkIHNjaGVtYXNcclxuICAgICAgLy8gYW5kIG90aGVyIHN1Z2dlc3RlciB3aWxsIHVzZSBhZ2dyZWdhdGlvbnMgZnJvbSByZXNwb25zZSBub3QgZW50cmllcyB0aGVuIGFkZCBwYWdlIHNpemUgMFxyXG4gICAgICAvLyBhbGwgdGhpcyB0byBkZWNyZWFzZSByZXNwb25zZSBzaXplXHJcbiAgICAgIGxldCBjdXN0b21Qcm9wZXJ0aWVzID0gJyonXHJcbiAgICAgIGlmKHRoaXMuYXV0b0NvbXBsZXRlX3BhZ2VQcm92aWRlciA9PT0gJ1BQX0NvcnJlc3BvbmRlbmNlX1JlbGF0aW9uU2VhY2gnKXtcclxuICAgICAgICBjdXN0b21Qcm9wZXJ0aWVzID0gJ0NvcnJlc3BvbmRlbmNlJztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgcGFyYW1zLnBhZ2VTaXplID0gMTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmR5bmFtaWNGb3JtVXBkYXRlU2VydmljZVxyXG4gICAgICAgIC5nZXRUZXh0Qm94U3VnZ2VzdGlvblJlc3VsdHMoXHJcbiAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZV9wYWdlUHJvdmlkZXIsXHJcbiAgICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZV9wcm9wZXJ0eUtleSxcclxuICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlVmFsdWVLZXksXHJcbiAgICAgICAgICBjdXN0b21Qcm9wZXJ0aWVzXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRMaXN0ID0gZGF0YS5maWx0ZXIoKG9wdGlvbikgPT5cclxuICAgICAgICAgICAgb3B0aW9uLnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsLnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5zaG93c3VnZ2VzdGVkT3B0aW9ucyA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudExpc3Q7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuT3B0aW9ucyh2YWx1ZSkge1xyXG4gICAgaWYgKHRoaXMuYXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgIHRoaXMuc2hvd3N1Z2dlc3RlZE9wdGlvbnMgPSB2YWx1ZTtcclxuICAgICAgaWYgKCF0aGlzLmRvY3VtZW50TGlzdC5sZW5ndGggJiYgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLm9uU2VhcmNoSW5wdXRDaGFuZ2UoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBUb0Nhc2VJbnNlbnNpdGl2ZSAob3JnaW5hbFRleHQpe1xyXG4gICAgbGV0IHJlc3VsdCA9IFwiXCI7XHJcbiAgICBsZXQgb3JnaW5hbFRleHRMb3dlckNhc2UgPSBvcmdpbmFsVGV4dC50b0xvd2VyQ2FzZSgpO1xyXG4gICAgZm9yKGxldCBpPTA7aTxvcmdpbmFsVGV4dExvd2VyQ2FzZS5sZW5ndGg7aSsrKXtcclxuICAgICAgaWYob3JnaW5hbFRleHRMb3dlckNhc2UuY2hhckF0KGkpID49ICdhJyAmJiBvcmdpbmFsVGV4dExvd2VyQ2FzZS5jaGFyQXQoaSkgPD0gJ3onKVxyXG4gICAgICAgcmVzdWx0ID0gcmVzdWx0K1wiW1wiK29yZ2luYWxUZXh0TG93ZXJDYXNlLmNoYXJBdChpKStvcmdpbmFsVGV4dExvd2VyQ2FzZS5jaGFyQXQoaSkudG9VcHBlckNhc2UoKStcIl1cIjtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCtvcmdpbmFsVGV4dC5jaGFyQXQoaSk7XHJcbiAgICAgIFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiLipcIityZXN1bHQrXCIuKlwiO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXBwLXByb3BlcnR5LXZhbHVlXCI+XHJcbiAgPGRpdiBjbGFzcz1cImFwcC1pbnB1dC13cmFwcGVyXCI+XHJcbiAgICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIGZvcj1cImZvcm1Hcm91cElucHV0U21hbGxcIlxyXG4gICAgICA+e3sgbGFiZWwgfCB0cmFuc2xhdGVcclxuICAgICAgfX08c3BhbiAqbmdJZj1cImlzUmVxdWlyZWQoKVwiIGNsYXNzPVwidGV4dC1kYW5nZXIgbS0xXCI+Kjwvc3Bhbj48L2xhYmVsXHJcbiAgICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0VkaXRhYmxlKCk7IGVsc2UgcmVhZE9ubHlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibmV3LW9uZVwiIChjbGlja091dHNpZGUpPVwib3Blbk9wdGlvbnMoZmFsc2UpXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJpc0Rpc2FibGVkKCkgfHwgbnVsbFwiXHJcbiAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaW5wdXQtZmlsbGVkJyA6IChlbWl0RnVsbE9iamVjdCA/IChlZGl0ZWRWYWx1ZT8udGl0bGUpIDogZWRpdGVkVmFsdWUpIH1cIlxyXG4gICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJhbGxvd1NwYWNlKCRldmVudClcIlxyXG4gICAgICAgICAgICAjZWRpdG9ySW5wdXRcclxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cImlzUmVxdWlyZWQoKVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZW1pdEZ1bGxPYmplY3QgPyBlZGl0ZWRWYWx1ZT8udGl0bGUgOiBlZGl0ZWRWYWx1ZVwiXHJcbiAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwibmF0aXZlQXV0b0NvbXBsZXRlXCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgICAoa2V5dXApPVwid2FpdFVudGlsVXNlckZpbmlzaFR5cGluZygpXCJcclxuICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidjYXJkLXRleHRpdGVtLWVkaXRpbnB1dC0nXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvcGVuT3B0aW9ucyh0cnVlKVwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cInt7bWF4Q2hhcnNOdW19fVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImRvY3VtZW50TGlzdC5sZW5ndGggIT09IDBcIiBpZD1cInN1Z2dlc3RlZG9wdGlvbnNcIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic3VnZ2VzdGlvbnMtd3JhcHBlclwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZC1ibG9jayc6IHNob3dzdWdnZXN0ZWRPcHRpb25zIH1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJvcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJzdWdnZXN0ZWRvcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZG9jdW1lbnRMaXN0XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKG9wdGlvbilcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IG9wdGlvbi50aXRsZSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2NhcmQtdGV4dGl0ZW0tZXJyb3ItJ1wiXHJcbiAgICAgICAgICBjbGFzcz1cImFwcC10ZXh0aXRlbS1lZGl0YWJsZS1lcnJvclwiXHJcbiAgICAgICAgICAqbmdJZj1cImhhc0Vycm9ycygpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgIDxsaSAqbmdJZj1cImNvbnRyb2wuZXJyb3JzLnJlcXVpcmVkXCI+XHJcbiAgICAgICAgICAgICAge3sgbGFiZWwgfCB0cmFuc2xhdGUgfX0ge3sgXCJWQUxJREFUT1JTLlJFUVVJUkVEXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpICpuZ0lmPVwiY29udHJvbC5lcnJvcnMucGF0dGVyblwiPlxyXG4gICAgICAgICAgICAgIHt7IFwid3JvbmcgcGF0dGVyblwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSAqbmdJZj1cImNvbnRyb2wuZXJyb3JzLm1pblwiPlxyXG4gICAgICAgICAgICAgIHt7IFwiVkFMSURBVE9SUy5NSU5cIiB8IHRyYW5zbGF0ZSB9fSB7eyBjb250cm9sLmVycm9ycy5taW4ubWluIH19XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNyZWFkT25seT5cclxuICAgICAgICB7eyBlbWl0RnVsbE9iamVjdCA/IGVkaXRlZFZhbHVlPy50aXRsZSA6IGVkaXRlZFZhbHVlIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXRleHRpdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXRleHRpdGVtL2R5bmFtaWMtZm9ybS10ZXh0aXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS10ZXh0aXRlbS9keW5hbWljLWZvcm0tdGV4dGl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVV2Qjs7Ozs7Ozs7OztHQVVHO0FBUUgsTUFBTSxPQUFPLDRCQUE0QjtJQW9EdkMsWUFDVSx3QkFBa0QsRUFDbkQsU0FBMkIsRUFDUCxPQUFrQjtRQUZyQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ25ELGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQ1AsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQW5EdEMsaUJBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyw4REFBOEQ7UUFDcEYsdUJBQWtCLEdBQUcsS0FBSyxDQUFDLENBQUMsMkNBQTJDO1FBQ3ZFLDhCQUF5QixHQUFHLEVBQUUsQ0FBQztRQUMvQiw4QkFBeUIsR0FBRyxFQUFFLENBQUM7UUFDL0IsNkJBQXdCLEdBQUcsRUFBRSxDQUFDO1FBQzlCLHlCQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMx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RUFBRSwyQkFBMkI7b0JBQ3JDLFdBQVcsRUFBRSx3Q0FBd0M7b0JBQ3JELFNBQVMsRUFBRSxDQUFDLHdDQUF3QyxDQUFDO29CQUNyRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7OzBCQXdESSxJQUFJOzswQkFBSSxRQUFROzRDQW5EVixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLEVBQUU7c0JBREQsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVFLFdBQVc7c0JBRGxCLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPcHRpb25hbCxcclxuICBTZWxmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgTmdDb250cm9sLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBEeW5hbWljRm9ybVRleHRJdGVtTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHluYW1pYy1mb3JtLm1vZGVscyc7XHJcbmltcG9ydCB7IER5bmFtaWNGb3JtVXBkYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS11cGRhdGUuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQSB0ZXh0IGZpZWxkIGlucHV0IHRoYXQgY2FuIGJlIHVzZWQgaW5zaWRlIHJlYWN0aXZlIG9yIHRlbXBsYXRlIGRyaXZlbiBmb3Jtc1xyXG4gKiBAdGl0bGVcclxuICogVGV4dCBGaWVsZFxyXG4gKiBAZXhhbXBsZVxyXG4gKiA8YXBwLWR5bmFtaWMtZm9ybS10ZXh0aXRlbVxyXG4gKiAgICBbaG9yaXpvbnRhbEFsaWduXT1cImZhbHNlXCJcclxuICogICAgZm9ybUNvbnRyb2xOYW1lPVwiY29udHJvbE5hbWVcIlxyXG4gKiAgICBbcGxhY2Vob2xkZXJdPVwiJ1BBVEguVE8uUExBQ0VIT0xERVIuU1RSSU5HJ1wiXHJcbiAqID48L2FwcC1keW5hbWljLWZvcm0tdGV4dGl0ZW0+XHJcbiAqL1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZHluYW1pYy1mb3JtLXRleHRpdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLXRleHRpdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0tdGV4dGl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1UZXh0SXRlbUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgc3RhdGljIERFRkFVTFRfU0VQQVJBVE9SID0gJywgJztcclxuXHJcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlID0gZmFsc2U7IC8vIHRvIGdldCBzdWdnZXN0aW9ucyBmcm9tIGJhY2tlbmQgd2hlbiB1c2VyIHR5cGUgc29tZSBsZXR0ZXJzXHJcbiAgQElucHV0KCkgbmF0aXZlQXV0b0NvbXBsZXRlID0gJ29mZic7IC8vIHRvIGdldCBzdWdnZXN0aW9ucyBmcm9tIGJyb3dzZXIgbmF0aXZlbHlcclxuICBASW5wdXQoKSBhdXRvQ29tcGxldGVfcGFnZVByb3ZpZGVyID0gJyc7XHJcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlX3Byb3BlcnR5TmFtZSA9ICcnO1xyXG4gIEBJbnB1dCgpIGF1dG9Db21wbGV0ZV9wcm9wZXJ0eUtleSA9ICcnO1xyXG4gIEBJbnB1dCgpIGF1dG9Db21wbGV0ZVZhbHVlS2V5ID0gJyc7XHJcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlVHlwZSA9J3BlcmNlbnRhZ2UnO1xyXG4gIEBJbnB1dCgpIHRlbmFudElkOyAvLyByZWFsdGVkIHRvIG11bHRpIHRlbmFudCB3aWxsIGJlIHNlbnQgaW4gY2FlIG9mIG11bHRpIHRlbmFudCBvbmx5XHJcbiAgQElucHV0KCkgZW1pdEZ1bGxPYmplY3QgPSBmYWxzZTsgLy8gdXNlZCB0byBjb250cm9sIG9uIGVtaXRpbmcgZnVsbCBzZWxlY3RlZCBvYmplY3Qgb3Igb25seSBzdHJpbmdcclxuICBASW5wdXQoKSBvdXRzaWRlUGFyYW1zID0ge307IC8vIG9iamVjdCBvZiBwYXJhbXMgdG8gYmUgcGFzc2VkIGZyb20gb3V0c2lkZVxyXG5cclxuICAvKiogaW5wdXQgdHlwZSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgdHlwZSA9ICd0ZXh0JztcclxuICAvKiogQGRlcHJlY2F0ZWQgKi9cclxuICBASW5wdXQoKVxyXG4gIHByb3BlcnR5OiBEeW5hbWljRm9ybVRleHRJdGVtTW9kZWw7XHJcbiAgLyoqIEZpZWxkIExhYmVsICovXHJcbiAgQElucHV0KClcclxuICBsYWJlbDtcclxuICAvKiogaXMgRWRpdGFibGUgKi9cclxuICBASW5wdXQoKVxyXG4gIGVkaXRhYmxlID0gdHJ1ZTtcclxuICAvKiogUGxhY2Vob2xkZXIgc3RyaW5nICovXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcclxuICAvKiogaXMgZGlzYWJsZWQgKi9cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgLyoqIEBkZXByZWNhdGVkICovXHJcbiAgQElucHV0KClcclxuICBkaXNwbGF5RW1wdHkgPSB0cnVlO1xyXG4gIC8qKiBzaG91bGQgcHJldmVudCBzcGFjZSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHJldmVudFNwYWNlID0gZmFsc2U7XHJcbiAgLyoqIERPTSBlbGVtZW50IElkICovXHJcbiAgQElucHV0KClcclxuICBpZDtcclxuXHJcbiAgQElucHV0KCkgbWF4Q2hhcnNOdW0gPSBudWxsO1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcklucHV0JylcclxuICBwcml2YXRlIGVkaXRvcklucHV0OiBhbnk7XHJcblxyXG4gIGluRWRpdCA9IGZhbHNlO1xyXG4gIGVkaXRlZFZhbHVlOiBzdHJpbmc7XHJcbiAgZXJyb3JNZXNzYWdlczogc3RyaW5nW107XHJcbiAgdmFsdWVTZXBhcmF0b3I6IHN0cmluZztcclxuICBzaG93c3VnZ2VzdGVkT3B0aW9ucyA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZHluYW1pY0Zvcm1VcGRhdGVTZXJ2aWNlOiBEeW5hbWljRm9ybVVwZGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgY29udHJvbDogTmdDb250cm9sXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB0aGlzLnZhbHVlU2VwYXJhdG9yID0gRHluYW1pY0Zvcm1UZXh0SXRlbUNvbXBvbmVudC5ERUZBVUxUX1NFUEFSQVRPUjtcclxuICB9XHJcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcclxuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfTtcclxuXHJcbiAgaXNSZXF1aXJlZCgpIHtcclxuICAgIGlmICghdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLmNvbnRyb2wuY29udHJvbC52YWxpZGF0b3Ioe30gYXMgQWJzdHJhY3RDb250cm9sKTtcclxuICAgIHJldHVybiB2YWxpZGF0b3IgJiYgdmFsaWRhdG9yLnJlcXVpcmVkO1xyXG4gIH1cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRlZFZhbHVlID0gb2JqO1xyXG4gICAgLy90aGlzLnByb3BlcnR5LnZhbHVlID0gb2JqO1xyXG5cclxuICAgIC8vICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2wgPyB0aGlzLmNvbnRyb2wuaW52YWxpZCA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaG93RXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgeyBkaXJ0eSwgdG91Y2hlZCB9ID0gdGhpcy5jb250cm9sO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyBkaXJ0eSB8fCB0b3VjaGVkIDogZmFsc2U7XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIC8qdGhpcy5lZGl0ZWRWYWx1ZSA9IHRoaXMucHJvcGVydHkubXVsdGlsaW5lXHJcbiAgICAgID8gdGhpcy5wcm9wZXJ0eS5kaXNwbGF5VmFsdWVcclxuICAgICAgOiB0aGlzLnByb3BlcnR5LnZhbHVlOyovXHJcbiAgfVxyXG5cclxuICBzaG93UHJvcGVydHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5RW1wdHkgfHwgIXRoaXMucHJvcGVydHkuaXNFbXB0eSgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0NsaWNrYWJsZUljb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5oYXNJY29uKCkgJiYgdGhpcy5lZGl0YWJsZTtcclxuICB9XHJcblxyXG4gIGlzRWRpdGFibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5lZGl0YWJsZTtcclxuICB9XHJcbiAgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgaXNDbGlja2FibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnByb3BlcnR5LmNsaWNrYWJsZTtcclxuICB9XHJcblxyXG4gIGhhc0ljb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnByb3BlcnR5Lmljb247XHJcbiAgfVxyXG5cclxuICBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93RXJyb3I7XHJcbiAgfVxyXG4gIGFsbG93U3BhY2UoZSkge1xyXG4gICAgaWYgKHRoaXMucHJldmVudFNwYWNlKSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0RWRpdE1vZGUoZWRpdFN0YXR1czogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pbkVkaXQgPSBlZGl0U3RhdHVzO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmVkaXRvcklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3JJbnB1dD8ubmF0aXZlRWxlbWVudD8uY2xpY2soKTtcclxuICAgICAgfVxyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICByZXNldChldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIC8qdGhpcy5lZGl0ZWRWYWx1ZSA9IHRoaXMucHJvcGVydHkubXVsdGlsaW5lXHJcbiAgICAgID8gdGhpcy5wcm9wZXJ0eS5kaXNwbGF5VmFsdWVcclxuICAgICAgOiB0aGlzLnByb3BlcnR5LnZhbHVlOyovXHJcbiAgICB0aGlzLnNldEVkaXRNb2RlKGZhbHNlKTtcclxuICAgIHRoaXMucmVzZXRFcnJvck1lc3NhZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0RXJyb3JNZXNzYWdlcygpIHtcclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKGV2ZW50OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgLy8gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBjb25zdCB1cGRhdGVkVmFsdWUgPSB0aGlzLnByZXBhcmVWYWx1ZUZvclVwbG9hZChcclxuICAgICAgdGhpcy5wcm9wZXJ0eSxcclxuICAgICAgdGhpcy5lZGl0ZWRWYWx1ZVxyXG4gICAgKTtcclxuICAgIC8vIHRoaXMucHJvcGVydHkudmFsdWUgPSB1cGRhdGVkVmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHVwZGF0ZWRWYWx1ZSk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgLy8gdGhpcy5keW5hbWljRm9ybVVwZGF0ZVNlcnZpY2UudXBkYXRlKHRoaXMucHJvcGVydHksIHVwZGF0ZWRWYWx1ZSk7XHJcbiAgICB0aGlzLnNldEVkaXRNb2RlKGZhbHNlKTtcclxuICAgIHRoaXMucmVzZXRFcnJvck1lc3NhZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcmVwYXJlVmFsdWVGb3JVcGxvYWQoXHJcbiAgICBwcm9wZXJ0eTogRHluYW1pY0Zvcm1UZXh0SXRlbU1vZGVsLFxyXG4gICAgdmFsdWU6IHN0cmluZ1xyXG4gICk6IHN0cmluZyB8IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIG9uVGV4dEFyZWFJbnB1dENoYW5nZSgpIHtcclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IHRoaXMucHJvcGVydHkuZ2V0VmFsaWRhdGlvbkVycm9ycyh0aGlzLmVkaXRlZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIGNsaWNrZWQoKTogdm9pZCB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMucHJvcGVydHkuY2xpY2tDYWxsQmFjayA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICB0aGlzLnByb3BlcnR5LmNsaWNrQ2FsbEJhY2soKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZHluYW1pY0Zvcm1VcGRhdGVTZXJ2aWNlLmNsaWNrZWQodGhpcy5wcm9wZXJ0eSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RJdGVtKHNlbGVjdGVkSXRlbSkge1xyXG4gICAgaWYodGhpcy5lbWl0RnVsbE9iamVjdCl7XHJcbiAgICAgIHRoaXMuZWRpdGVkVmFsdWUgPSBzZWxlY3RlZEl0ZW07XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5lZGl0ZWRWYWx1ZSA9IHNlbGVjdGVkSXRlbS50aXRsZTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlKG51bGwpO1xyXG4gICAgdGhpcy5zaG93c3VnZ2VzdGVkT3B0aW9ucyA9IGZhbHNlO1xyXG4gICAgdGhpcy5kb2N1bWVudExpc3QgPSBbXTtcclxuICB9XHJcblxyXG4gIHJlc2V0U2VsZWN0aW5nKCl7XHJcbiAgICBpZih0aGlzLmVtaXRGdWxsT2JqZWN0KXtcclxuICAgICAgdGhpcy5lZGl0ZWRWYWx1ZSA9IG51bGw7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5lZGl0ZWRWYWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGUobnVsbCk7XHJcbiAgfVxyXG5cclxuICBkb2N1bWVudExpc3Q6IGFueVtdID0gW107XHJcbiAgZGVsYXllZEFjdGlvbjtcclxuICB3YWl0VW50aWxVc2VyRmluaXNoVHlwaW5nKCkge1xyXG4gICAgaWYgKHRoaXMuZGVsYXllZEFjdGlvbikge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5kZWxheWVkQWN0aW9uKTtcclxuICAgICAgdGhpcy5kZWxheWVkQWN0aW9uID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaElucHV0Q2hhbmdlKCk7XHJcbiAgICAgIH0sIDE1MDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kZWxheWVkQWN0aW9uID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaElucHV0Q2hhbmdlKCk7XHJcbiAgICAgIH0sIDE1MDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hJbnB1dENoYW5nZSgpIHtcclxuICAgIGlmICh0aGlzLmF1dG9Db21wbGV0ZSkge1xyXG4gICAgICBpZighdGhpcy5lZGl0b3JJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlKXtcclxuICAgICAgICB0aGlzLnJlc2V0U2VsZWN0aW5nKCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHZhbCA9IHRoaXMuZWRpdG9ySW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICBjdXJyZW50UGFnZUluZGV4OiAwLFxyXG4gICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICBwYWdlU2l6ZTogNDAsXHJcbiAgICAgICAgcGFnZVByb3ZpZGVyOiB0aGlzLmF1dG9Db21wbGV0ZV9wYWdlUHJvdmlkZXIsXHJcbiAgICAgICAgLi4udGhpcy5vdXRzaWRlUGFyYW1zXHJcbiAgICAgIH07XHJcbiAgICAgIC8vIGlmIGkgd2FzIHNlbmRpbmcgdGVuYW50IGlkIGZyb20gb3V0c2lkZSB0aGVuIGkgYW0gaW4gY2FzZSBvZiBtdWx0aSB0ZW5hbnQgdGhlbiBhZGQgdGVuYW50IGlkIHRvIHBhcmFtc1xyXG4gICAgICBpZih0aGlzLnRlbmFudElkKXtcclxuICAgICAgICBwYXJhbXNbJ3F1ZXJ5UGFyYW1zJ10gPSBgJHt0aGlzLnRlbmFudElkfWBcclxuICAgICAgfVxyXG4gICAgICAvLyBwYXJhbXNbdGhpcy5hdXRvQ29tcGxldGVfcHJvcGVydHlOYW1lXSA9ICh2YWwpID8gYCUke3ZhbH0lYCA6ICcnO1xyXG4gICAgICBpZih0aGlzLmF1dG9Db21wbGV0ZVR5cGU9PVwiY2FzZVNlbnNpdGl2ZVwiICYmIHZhbCl7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuVG9DYXNlSW5zZW5zaXRpdmUodmFsKTtcclxuICAgICAgICBwYXJhbXNbdGhpcy5hdXRvQ29tcGxldGVfcHJvcGVydHlOYW1lXT1yZXN1bHQ7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmKHRoaXMuYXV0b0NvbXBsZXRlVHlwZT09XCJwZXJjZW50YWdlXCIgJiYgdmFsKXtcclxuXHJcbiAgICAgICAgICBwYXJhbXNbdGhpcy5hdXRvQ29tcGxldGVfcHJvcGVydHlOYW1lXT0nJScrdmFsKyclJztcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHBhcmFtc1t0aGlzLmF1dG9Db21wbGV0ZV9wcm9wZXJ0eU5hbWVdPSAnJ1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvLyBjaGVjayBpZiByZWxhdGlvbiB0aGVuIHdpbGwgdXNlIGVudHJpZXMgdGhlbiBmZXRjaCBvbmx5IHJlcXVpcmVkIHNjaGVtYXNcclxuICAgICAgLy8gYW5kIG90aGVyIHN1Z2dlc3RlciB3aWxsIHVzZSBhZ2dyZWdhdGlvbnMgZnJvbSByZXNwb25zZSBub3QgZW50cmllcyB0aGVuIGFkZCBwYWdlIHNpemUgMFxyXG4gICAgICAvLyBhbGwgdGhpcyB0byBkZWNyZWFzZSByZXNwb25zZSBzaXplXHJcbiAgICAgIGxldCBjdXN0b21Qcm9wZXJ0aWVzID0gJyonXHJcbiAgICAgIGlmKHRoaXMuYXV0b0NvbXBsZXRlX3BhZ2VQcm92aWRlciA9PT0gJ1BQX0NvcnJlc3BvbmRlbmNlX1JlbGF0aW9uU2VhY2gnKXtcclxuICAgICAgICBjdXN0b21Qcm9wZXJ0aWVzID0gJ0NvcnJlc3BvbmRlbmNlJztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgcGFyYW1zLnBhZ2VTaXplID0gMTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmR5bmFtaWNGb3JtVXBkYXRlU2VydmljZVxyXG4gICAgICAgIC5nZXRUZXh0Qm94U3VnZ2VzdGlvblJlc3VsdHMoXHJcbiAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZV9wYWdlUHJvdmlkZXIsXHJcbiAgICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZV9wcm9wZXJ0eUtleSxcclxuICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlVmFsdWVLZXksXHJcbiAgICAgICAgICBjdXN0b21Qcm9wZXJ0aWVzXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRMaXN0ID0gZGF0YS5maWx0ZXIoKG9wdGlvbikgPT5cclxuICAgICAgICAgICAgb3B0aW9uLnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsLnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5zaG93c3VnZ2VzdGVkT3B0aW9ucyA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudExpc3Q7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuT3B0aW9ucyh2YWx1ZSkge1xyXG4gICAgaWYgKHRoaXMuYXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgIHRoaXMuc2hvd3N1Z2dlc3RlZE9wdGlvbnMgPSB2YWx1ZTtcclxuICAgICAgaWYgKCF0aGlzLmRvY3VtZW50TGlzdC5sZW5ndGggJiYgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLm9uU2VhcmNoSW5wdXRDaGFuZ2UoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBUb0Nhc2VJbnNlbnNpdGl2ZSAob3JnaW5hbFRleHQpe1xyXG4gICAgbGV0IHJlc3VsdCA9IFwiXCI7XHJcbiAgICBsZXQgb3JnaW5hbFRleHRMb3dlckNhc2UgPSBvcmdpbmFsVGV4dC50b0xvd2VyQ2FzZSgpO1xyXG4gICAgZm9yKGxldCBpPTA7aTxvcmdpbmFsVGV4dExvd2VyQ2FzZS5sZW5ndGg7aSsrKXtcclxuICAgICAgaWYob3JnaW5hbFRleHRMb3dlckNhc2UuY2hhckF0KGkpID49ICdhJyAmJiBvcmdpbmFsVGV4dExvd2VyQ2FzZS5jaGFyQXQoaSkgPD0gJ3onKVxyXG4gICAgICAgcmVzdWx0ID0gcmVzdWx0K1wiW1wiK29yZ2luYWxUZXh0TG93ZXJDYXNlLmNoYXJBdChpKStvcmdpbmFsVGV4dExvd2VyQ2FzZS5jaGFyQXQoaSkudG9VcHBlckNhc2UoKStcIl1cIjtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCtvcmdpbmFsVGV4dC5jaGFyQXQoaSk7XHJcbiAgICAgIFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiLipcIityZXN1bHQrXCIuKlwiO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXBwLXByb3BlcnR5LXZhbHVlXCI+XHJcbiAgPGRpdiBjbGFzcz1cImFwcC1pbnB1dC13cmFwcGVyXCI+XHJcbiAgICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIGZvcj1cImZvcm1Hcm91cElucHV0U21hbGxcIlxyXG4gICAgICA+e3sgbGFiZWwgfCB0cmFuc2xhdGVcclxuICAgICAgfX08c3BhbiAqbmdJZj1cImlzUmVxdWlyZWQoKVwiIGNsYXNzPVwidGV4dC1kYW5nZXIgbS0xXCI+Kjwvc3Bhbj48L2xhYmVsXHJcbiAgICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0VkaXRhYmxlKCk7IGVsc2UgcmVhZE9ubHlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibmV3LW9uZVwiIChjbGlja091dHNpZGUpPVwib3Blbk9wdGlvbnMoZmFsc2UpXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJpc0Rpc2FibGVkKCkgfHwgbnVsbFwiXHJcbiAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaW5wdXQtZmlsbGVkJyA6IChlbWl0RnVsbE9iamVjdCA/IChlZGl0ZWRWYWx1ZT8udGl0bGUpIDogZWRpdGVkVmFsdWUpIH1cIlxyXG4gICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJhbGxvd1NwYWNlKCRldmVudClcIlxyXG4gICAgICAgICAgICAjZWRpdG9ySW5wdXRcclxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cImlzUmVxdWlyZWQoKVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZW1pdEZ1bGxPYmplY3QgPyBlZGl0ZWRWYWx1ZT8udGl0bGUgOiBlZGl0ZWRWYWx1ZVwiXHJcbiAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwibmF0aXZlQXV0b0NvbXBsZXRlXCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgICAoa2V5dXApPVwid2FpdFVudGlsVXNlckZpbmlzaFR5cGluZygpXCJcclxuICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidjYXJkLXRleHRpdGVtLWVkaXRpbnB1dC0nXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvcGVuT3B0aW9ucyh0cnVlKVwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cInt7bWF4Q2hhcnNOdW19fVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImRvY3VtZW50TGlzdC5sZW5ndGggIT09IDBcIiBpZD1cInN1Z2dlc3RlZG9wdGlvbnNcIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic3VnZ2VzdGlvbnMtd3JhcHBlclwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZC1ibG9jayc6IHNob3dzdWdnZXN0ZWRPcHRpb25zIH1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJvcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJzdWdnZXN0ZWRvcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZG9jdW1lbnRMaXN0XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKG9wdGlvbilcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IG9wdGlvbi50aXRsZSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2NhcmQtdGV4dGl0ZW0tZXJyb3ItJ1wiXHJcbiAgICAgICAgICBjbGFzcz1cImFwcC10ZXh0aXRlbS1lZGl0YWJsZS1lcnJvclwiXHJcbiAgICAgICAgICAqbmdJZj1cImhhc0Vycm9ycygpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgIDxsaSAqbmdJZj1cImNvbnRyb2wuZXJyb3JzLnJlcXVpcmVkXCI+XHJcbiAgICAgICAgICAgICAge3sgbGFiZWwgfCB0cmFuc2xhdGUgfX0ge3sgXCJWQUxJREFUT1JTLlJFUVVJUkVEXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpICpuZ0lmPVwiY29udHJvbC5lcnJvcnMucGF0dGVyblwiPlxyXG4gICAgICAgICAgICAgIHt7IFwid3JvbmcgcGF0dGVyblwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSAqbmdJZj1cImNvbnRyb2wuZXJyb3JzLm1pblwiPlxyXG4gICAgICAgICAgICAgIHt7IFwiVkFMSURBVE9SUy5NSU5cIiB8IHRyYW5zbGF0ZSB9fSB7eyBjb250cm9sLmVycm9ycy5taW4ubWluIH19XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNyZWFkT25seT5cclxuICAgICAgICB7eyBlbWl0RnVsbE9iamVjdCA/IGVkaXRlZFZhbHVlPy50aXRsZSA6IGVkaXRlZFZhbHVlIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -60,9 +60,9 @@ export class DropdownTreeviewSelectI18n extends DefaultTreeviewI18n {
|
|
|
60
60
|
return noItemText;
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
DropdownTreeviewSelectI18n.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
64
|
-
DropdownTreeviewSelectI18n.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
63
|
+
DropdownTreeviewSelectI18n.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DropdownTreeviewSelectI18n, deps: [{ token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
64
|
+
DropdownTreeviewSelectI18n.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DropdownTreeviewSelectI18n });
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DropdownTreeviewSelectI18n, decorators: [{
|
|
66
66
|
type: Injectable
|
|
67
67
|
}], ctorParameters: function () { return [{ type: i1.TranslationService }]; } });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LWkxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QvZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LWkxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBR0wsbUJBQW1CLEdBQ3BCLE1BQU0sY0FBYyxDQUFDOzs7QUFHdEIsY0FBYztBQUVkLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxtQkFBbUI7SUFDakUsWUFBb0IsV0FBK0I7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEVSxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7SUFFbkQsQ0FBQztJQUlELElBQUksWUFBWSxDQUFDLEtBQW1CO1FBQ2xDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRCxlQUFlO0lBQ2YsSUFBSSxlQUFlLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDdEMsQ0FBQztJQUNELG9CQUFvQixDQUFDLEdBQUcsR0FBRyxJQUFJO1FBQzdCLElBQUksV0FBVyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDN0MsTUFBTTtvQkFDSixDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsd0JBQXdCLENBQUM7b0JBQzFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM3QztRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxPQUFPLENBQUMsU0FBNEI7UUFDbEMsSUFBSSxXQUFXLENBQUM7UUFDaEIsSUFBSSxNQUFNLENBQUM7UUFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM3QyxNQUFNO2dCQUNKLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLDBCQUEwQixDQUFDLENBQUM7WUFFL0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztRQUN6RSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLG9CQUFvQjtZQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUk7WUFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUI7Z0JBQzVCLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxNQUFNLEVBQUU7Z0JBQzdDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDcEIsQ0FBQztJQUNELHlCQUF5QixDQUFDLEdBQUcsR0FBRyxJQUFJO1FBQ2xDLElBQUksVUFBa0IsQ0FBQztRQUV2QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM3QyxNQUFNO2dCQUNKLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyx5QkFBeUIsQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOzt3SEE3RFUsMEJBQTBCOzRIQUExQiwwQkFBMEI7NEZBQTFCLDBCQUEwQjtrQkFEdEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBUcmVldmlld0l0ZW0sXHJcbiAgVHJlZXZpZXdTZWxlY3Rpb24sXHJcbiAgRGVmYXVsdFRyZWV2aWV3STE4bixcclxufSBmcm9tICduZ3gtdHJlZXZpZXcnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5cclxuLyoqIEBpZ25vcmUgKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4gZXh0ZW5kcyBEZWZhdWx0VHJlZXZpZXdJMThuIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgaW50ZXJuYWxTZWxlY3RlZEl0ZW06IFRyZWV2aWV3SXRlbTtcclxuICBwcml2YXRlIGludGVybmFsU2VsZWN0aW9uTGVuZ3RoOiBudW1iZXI7XHJcblxyXG4gIHNldCBzZWxlY3RlZEl0ZW0odmFsdWU6IFRyZWV2aWV3SXRlbSkge1xyXG4gICAgdGhpcy5pbnRlcm5hbFNlbGVjdGVkSXRlbSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNlbGVjdGVkSXRlbSgpOiBUcmVldmlld0l0ZW0ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxTZWxlY3RlZEl0ZW07XHJcbiAgfVxyXG5cclxuICAvLyBmb3IgbXVsdGlwbGVcclxuICBzZXQgc2VsZWN0aW9uTGVuZ3RoKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuaW50ZXJuYWxTZWxlY3Rpb25MZW5ndGggPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IHNlbGVjdGlvbkxlbmd0aCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxTZWxlY3Rpb25MZW5ndGg7XHJcbiAgfVxyXG4gIGdldEZpbHRlclBsYWNlaG9sZGVyKHZhbCA9IG51bGwpOiBzdHJpbmcge1xyXG4gICAgbGV0IHBsYWNlSG9sZGVyO1xyXG4gICAgaWYgKCF2YWwpIHtcclxuICAgICAgdGhpcy50cmFuc2xhdGlvbi5pc0FyYWJpYy5zdWJzY3JpYmUoKGFyYWJpYykgPT4ge1xyXG4gICAgICAgIGFyYWJpY1xyXG4gICAgICAgICAgPyAocGxhY2VIb2xkZXIgPSAn2KPYr9iu2YQg2LHZhdiyINin2YTZgtiz2YUg2YTZhNiq2LXZgdmK2KknKVxyXG4gICAgICAgICAgOiAocGxhY2VIb2xkZXIgPSAnVHlwZSBEZXBhcnRtZW50IENvZGUgVG8gRmlsdGVyICcpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHBsYWNlSG9sZGVyID0gdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KHZhbCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGxhY2VIb2xkZXI7XHJcbiAgfVxyXG4gIGdldFRleHQoc2VsZWN0aW9uOiBUcmVldmlld1NlbGVjdGlvbik6IHN0cmluZyB7XHJcbiAgICBsZXQgcGxhY2VIb2xkZXI7XHJcbiAgICBsZXQgc3VmZml4O1xyXG4gICAgdGhpcy50cmFuc2xhdGlvbi5pc0FyYWJpYy5zdWJzY3JpYmUoKGFyYWJpYykgPT4ge1xyXG4gICAgICBhcmFiaWNcclxuICAgICAgICA/IChwbGFjZUhvbGRlciA9ICfYp9mE2LHYrNin2KEg2KXYrtiq2YrYp9ixINin2YTZgtiz2YUnKVxyXG4gICAgICAgIDogKHBsYWNlSG9sZGVyID0gJ1BsZWFzZSBzZWxlY3QgRGVwYXJ0bWVudCcpO1xyXG5cclxuICAgICAgYXJhYmljID8gKHN1ZmZpeCA9ICfYo9mC2LPYp9mFINmF2K7Yqtin2LHYqScpIDogKHN1ZmZpeCA9ICdEZXBhcnRtZW50cyBTZWxlY3RlZCcpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5pbnRlcm5hbFNlbGVjdGVkSXRlbVxyXG4gICAgICA/IHRoaXMuaW50ZXJuYWxTZWxlY3RlZEl0ZW0udGV4dFxyXG4gICAgICA6IHRoaXMuaW50ZXJuYWxTZWxlY3Rpb25MZW5ndGhcclxuICAgICAgICA/IGAke3RoaXMuaW50ZXJuYWxTZWxlY3Rpb25MZW5ndGh9ICR7c3VmZml4fWBcclxuICAgICAgICA6IHBsYWNlSG9sZGVyO1xyXG4gIH1cclxuICBnZXRGaWx0ZXJOb0l0ZW1zRm91bmRUZXh0KHZhbCA9IG51bGwpOiBzdHJpbmcge1xyXG4gICAgbGV0IG5vSXRlbVRleHQ6IHN0cmluZztcclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uLmlzQXJhYmljLnN1YnNjcmliZSgoYXJhYmljKSA9PiB7XHJcbiAgICAgIGFyYWJpY1xyXG4gICAgICAgID8gKG5vSXRlbVRleHQgPSAn2YTZhSDZitiq2YUg2KfZhNi52KvZiNixINi52YTZiSDZhtiq2KfYptisJylcclxuICAgICAgICA6IChub0l0ZW1UZXh0ID0gJ05vIGl0ZW1zIHdlcmUgZm91bmQnKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBub0l0ZW1UZXh0O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -274,9 +274,9 @@ export class TreeviewSelectComponent {
|
|
|
274
274
|
}, (err) => { });
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
|
-
TreeviewSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
278
|
-
TreeviewSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: TreeviewSelectComponent, selector: "app-dynamic-form-treeview-select", inputs: { treeview: "treeview", treeViewAsFormControl: "treeViewAsFormControl", config: "config", items: "items", value: "value", multiple: "multiple", defaultSelect: "defaultSelect", pp_departmentNestedTree: "pp_departmentNestedTree", useCustomAddEditAction: "useCustomAddEditAction", customPrefix: "customPrefix", customParentProperty: "customParentProperty", placeholder: "placeholder", displayDepTypee: "displayDepTypee", disabled: "disabled", displayIsAllowRecExternal: "displayIsAllowRecExternal" }, outputs: { valueChange: "valueChange", plusClicked: "plusClicked", actionClicked: "actionClicked" }, providers: [{ provide: TreeviewI18n, useClass: DropdownTreeviewSelectI18n }], viewQueries: [{ propertyName: "dropdownTreeviewComponent", first: true, predicate: DropdownTreeviewComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template\r\n #itemTemplate\r\n let-item=\"item\"\r\n let-onCollapseExpand=\"onCollapseExpand\"\r\n let-onCheckedChange=\"onCheckedChange\"\r\n>\r\n <!-- single -->\r\n <div *ngIf=\"!treeview && !multiple\">\r\n <div\r\n class=\"text-nowrap row-item\"\r\n [ngClass]=\"{ active: item.value === this.value }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapseExpand()\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <!-- <label class=\"form-check-label\" (click)=\"select(item)\">{{\r\n item.text\r\n }}</label> -->\r\n <label *ngIf=\"item.disabled\" class=\"form-check-label\">{{\r\n item.text\r\n }}</label>\r\n <label *ngIf=\"!item.disabled\" class=\"form-check-label\" (click)=\"select(item)\">{{\r\n item.text\r\n }}</label>\r\n </div>\r\n </div>\r\n <!-- Multiple -->\r\n <div *ngIf=\"!treeview && multiple\">\r\n <div\r\n class=\"text-nowrap row-item\"\r\n [ngClass]=\"{ active: item.value === this.value }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapseExpand()\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <!-- <input\r\n class=\"multiple-checkBox\"\r\n type=\"checkbox\"\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.target.checked, item)\"\r\n />\r\n\r\n <label class=\"form-check-label\">{{ item.text }}</label> -->\r\n <div class=\"multiple-treeview\">\r\n <mat-checkbox\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.checked, item)\"\r\n >\r\n <span> {{ item.text }} </span>\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- treeView -->\r\n <div *ngIf=\"treeview && !treeViewAsFormControl\" class=\"tree-view-container\">\r\n <div\r\n (mouseenter)=\"hoverField.style.display = 'flex'\"\r\n (mouseleave)=\"hoverField.style.display = 'none'\"\r\n class=\"text-nowrap row-item treeview-row\"\r\n [ngClass]=\"{ selected: item.value == selectedItem }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapsed(item)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label-treeview\" (click)=\"select(item)\"\r\n >{{ item.text }}\r\n <span #hoverField class=\"hoverField\">\r\n <span\r\n type=\"button\"\r\n matTooltip=\"{{ 'department_management.form.edit' | translate }}\"\r\n (click)=\"onAction($event, 'update', item)\"\r\n >\r\n <li class=\"bi bi-pencil\"></li>\r\n </span>\r\n\r\n <span\r\n type=\"button\"\r\n matTooltip=\"{{\r\n 'department_management.form.toolTip_message' | translate\r\n }}\"\r\n (click)=\"onAction($event, 'add', item)\"\r\n >\r\n <li class=\"bi bi-plus\"></li>\r\n </span>\r\n </span>\r\n </label>\r\n </div>\r\n </div>\r\n <!-- treeView as form control -->\r\n <div *ngIf=\"treeview && treeViewAsFormControl\" class=\"tree-view-container\">\r\n <div\r\n class=\"text-nowrap row-item treeview-row-form-control\"\r\n [ngClass]=\"{ 'selected-form-control': item.value == selectedItem }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapsed(item)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n \r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label-treeview\" (click)=\"select(item)\"\r\n >{{ item.text }}\r\n </label>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template\r\n #headerTemplate\r\n let-config=\"config\"\r\n let-item=\"item\"\r\n let-onCollapseExpand=\"onCollapseExpand\"\r\n let-onCheckedChange=\"onCheckedChange\"\r\n let-onFilterTextChange=\"onFilterTextChange\"\r\n>\r\n <div *ngIf=\"config.hasFilter\" class=\"row row-filter\">\r\n <div class=\"col-12\">\r\n <input\r\n class=\"form-control\"\r\n type=\"text\"\r\n [placeholder]=\"i18n.getFilterPlaceholder(placeholder)\"\r\n [(ngModel)]=\"filterText\"\r\n (ngModelChange)=\"onFilterTextChange($event)\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngIf=\"config.hasAllCheckBox || config.hasCollapseExpand\" class=\"row\">\r\n <div class=\"col-12\">\r\n <label *ngIf=\"config.hasAllCheckBox\" (click)=\"select(item)\">\r\n <strong>{{ i18n.getAllCheckboxText() }}</strong>\r\n </label>\r\n <label\r\n *ngIf=\"config.hasCollapseExpand\"\r\n class=\"float-right\"\r\n (click)=\"onCollapseExpand()\"\r\n >\r\n <i\r\n [title]=\"i18n.getTooltipCollapseExpandText(item.collapsed)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span *ngSwitchCase=\"true\" class=\"bi bi-arrows-angle-expand\"></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-arrows-angle-contract\"\r\n ></span>\r\n </i>\r\n </label>\r\n </div>\r\n </div>\r\n <a *ngIf=\"defaultSelect\" class=\"select-default\" (click)=\"selectDefault()\">{{'department_management.selectDefault'| translate}}</a>\r\n <div *ngIf=\"config.hasDivider\" class=\"dropdown-divider\" [ngClass]=\"{'dropdown-divider-noMargin': defaultSelect}\"></div>\r\n</ng-template>\r\n\r\n<ng-container *ngIf=\"!treeview && !multiple\">\r\n <div class=\"dropdown-wrapper\">\r\n <ngx-dropdown-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-dropdown-treeview>\r\n <div class=\"disable-effect\" *ngIf=\"disabled\"></div>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"!treeview && multiple\">\r\n <div class=\"multiple-tree-view dropdown-wrapper\">\r\n <ngx-dropdown-treeview\r\n [config]=\"config\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-dropdown-treeview>\r\n <div class=\"disable-effect\" *ngIf=\"disabled\"></div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"treeview && !treeViewAsFormControl\">\r\n <div class=\"tree-view\">\r\n <ngx-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-treeview>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"treeview && treeViewAsFormControl\">\r\n <div class=\"tree-view-form-control\">\r\n <ngx-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-treeview>\r\n </div>\r\n</ng-container>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.caret-icon{color:#6c757d;font-size:14px}.dropdown-wrapper{position:relative}.dropdown-wrapper .disable-effect{position:absolute;top:0;bottom:0;left:0;right:0;z-index:99}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element,.multiple-treeview .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#33e3b7!important}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element{position:fixed;left:inherit;top:inherit;transform:translate(-3px,-3px)!important}.multiple-treeview mat-checkbox .mat-checkbox-background{background-color:#d9dce2!important}.form-check-label-treeview{display:flex;align-items:center;justify-content:space-between;width:100%}.form-check-label-treeview .hoverField{display:none;align-items:center;text-align:center}.form-check-label-treeview .hoverField span{display:flex;align-items:center;justify-content:center;margin:0 3px;border:none;background-color:snow;background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:30px;width:30px;color:#fff;border-radius:5px;list-style:none;margin-inline-end:4px}.form-check-label-treeview .hoverField span .bi-plus{font-size:28px;display:flex;justify-content:center}.form-check-label-treeview .hoverField .add-btn{width:164px;padding:1px;display:flex;justify-content:center;align-items:center;font-size:13px;background-color:#0dbab5;border-radius:5px;border:0;color:#fff;--tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.form-check-label-treeview .hoverField .plus-btn{display:flex;font-size:28px;align-items:center}.selected{background-color:#f5f6f8}.selected .hoverField{display:flex!important}.selected-form-control{background-color:#d9dce2}.selected-form-control .hoverField{display:flex!important}.treeview-item .row-item{display:flex;align-items:center;padding:5px 10px}.treeview-item .row-item .multiple-checkBox{margin-inline-start:4px;margin-inline-end:4px}.treeview-item .active{background-color:#f5f6f8}.treeview-row{display:flex;align-items:center}.treeview-row:hover{background-color:#f5f6f8}.treeview-row-form-control{display:flex;align-items:center}.treeview-row-form-control:hover{background-color:#d9dce2}label{margin-bottom:0;cursor:pointer}.bi{cursor:pointer;margin-right:.3rem}ngx-treeview .treeview-container{max-height:200px!important;overflow-x:hidden;scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;overflow-y:auto}ngx-treeview .select-default{display:flex;justify-content:start;font-size:13px;cursor:pointer;margin-bottom:3px;margin-top:4px}ngx-treeview .dropdown-divider-noMargin{margin-top:0!important}.tree-view ngx-treeview .treeview-container{max-height:500px!important;overflow-x:hidden}.tree-view-form-control ngx-treeview .treeview-container{max-height:300px!important;overflow-x:hidden}ngx-dropdown-treeview .dropdown .dropdown-menu{margin-top:0!important;width:100%}ngx-dropdown-treeview .dropdown .btn-outline-secondary{background-color:#8f98aa1a;border:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:hover{color:#6c757d!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:focus{box-shadow:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:active{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}ngx-dropdown-treeview .dropdown:after{position:static!important}ngx-dropdown-treeview .show .dropdown-toggle{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}.rtl .treeview-item .treeview-item{margin-right:2rem!important;margin-left:0!important}.rtl .row-all .col-12{text-align:right}.rtl .row-all .col-12 .pull-right{float:left!important}.rtl .form-check.form-check-inline{margin-right:0!important}.rtl .btn.dropdown-toggle{margin-right:0!important}.rtl .dropdown-menu:not(ngb-datepicker){right:0px;left:unset}.rtl .dropdown :after{margin-top:.6rem;left:.6rem;right:unset!important}.rtl ngx-treeview-item{text-align:right;direction:rtl}@media (min-width: 576px){.rtl .form-inline .form-check-input{margin:3px}}.rtl .form-inline .form-check-input{margin:3px;position:inherit}.rtl .dropdown button{text-align:right!important;direction:rtl}.rtl .fa.fa-caret-right{transform:rotate(180deg)}\n"], components: [{ type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i1.DropdownTreeviewComponent, selector: "ngx-dropdown-treeview", inputs: ["buttonClass", "config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }, { type: i1.TreeviewComponent, selector: "ngx-treeview", inputs: ["config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i12.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
279
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
277
|
+
TreeviewSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TreeviewSelectComponent, deps: [{ token: i1.TreeviewI18n }, { token: i2.TranslationService }, { token: i3.DepartmentApiService }, { token: i4.DepartmentManagementService }, { token: i5.RolesService }, { token: i6.NuxeoService }, { token: i7.GlobalAdminService }], target: i0.ɵɵFactoryTarget.Component });
|
|
278
|
+
TreeviewSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TreeviewSelectComponent, selector: "app-dynamic-form-treeview-select", inputs: { treeview: "treeview", treeViewAsFormControl: "treeViewAsFormControl", config: "config", items: "items", value: "value", multiple: "multiple", defaultSelect: "defaultSelect", pp_departmentNestedTree: "pp_departmentNestedTree", useCustomAddEditAction: "useCustomAddEditAction", customPrefix: "customPrefix", customParentProperty: "customParentProperty", placeholder: "placeholder", displayDepTypee: "displayDepTypee", disabled: "disabled", displayIsAllowRecExternal: "displayIsAllowRecExternal" }, outputs: { valueChange: "valueChange", plusClicked: "plusClicked", actionClicked: "actionClicked" }, providers: [{ provide: TreeviewI18n, useClass: DropdownTreeviewSelectI18n }], viewQueries: [{ propertyName: "dropdownTreeviewComponent", first: true, predicate: DropdownTreeviewComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template\r\n #itemTemplate\r\n let-item=\"item\"\r\n let-onCollapseExpand=\"onCollapseExpand\"\r\n let-onCheckedChange=\"onCheckedChange\"\r\n>\r\n <!-- single -->\r\n <div *ngIf=\"!treeview && !multiple\">\r\n <div\r\n class=\"text-nowrap row-item\"\r\n [ngClass]=\"{ active: item.value === this.value }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapseExpand()\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <!-- <label class=\"form-check-label\" (click)=\"select(item)\">{{\r\n item.text\r\n }}</label> -->\r\n <label *ngIf=\"item.disabled\" class=\"form-check-label\">{{\r\n item.text\r\n }}</label>\r\n <label *ngIf=\"!item.disabled\" class=\"form-check-label\" (click)=\"select(item)\">{{\r\n item.text\r\n }}</label>\r\n </div>\r\n </div>\r\n <!-- Multiple -->\r\n <div *ngIf=\"!treeview && multiple\">\r\n <div\r\n class=\"text-nowrap row-item\"\r\n [ngClass]=\"{ active: item.value === this.value }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapseExpand()\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <!-- <input\r\n class=\"multiple-checkBox\"\r\n type=\"checkbox\"\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.target.checked, item)\"\r\n />\r\n\r\n <label class=\"form-check-label\">{{ item.text }}</label> -->\r\n <div class=\"multiple-treeview\">\r\n <mat-checkbox\r\n [checked]=\"multipleSelection.includes(item.value)\"\r\n (change)=\"selectMultiple($event.checked, item)\"\r\n >\r\n <span> {{ item.text }} </span>\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- treeView -->\r\n <div *ngIf=\"treeview && !treeViewAsFormControl\" class=\"tree-view-container\">\r\n <div\r\n (mouseenter)=\"hoverField.style.display = 'flex'\"\r\n (mouseleave)=\"hoverField.style.display = 'none'\"\r\n class=\"text-nowrap row-item treeview-row\"\r\n [ngClass]=\"{ selected: item.value == selectedItem }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapsed(item)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label-treeview\" (click)=\"select(item)\"\r\n >{{ item.text }}\r\n <span #hoverField class=\"hoverField\">\r\n <span\r\n type=\"button\"\r\n matTooltip=\"{{ 'department_management.form.edit' | translate }}\"\r\n (click)=\"onAction($event, 'update', item)\"\r\n >\r\n <li class=\"bi bi-pencil\"></li>\r\n </span>\r\n\r\n <span\r\n type=\"button\"\r\n matTooltip=\"{{\r\n 'department_management.form.toolTip_message' | translate\r\n }}\"\r\n (click)=\"onAction($event, 'add', item)\"\r\n >\r\n <li class=\"bi bi-plus\"></li>\r\n </span>\r\n </span>\r\n </label>\r\n </div>\r\n </div>\r\n <!-- treeView as form control -->\r\n <div *ngIf=\"treeview && treeViewAsFormControl\" class=\"tree-view-container\">\r\n <div\r\n class=\"text-nowrap row-item treeview-row-form-control\"\r\n [ngClass]=\"{ 'selected-form-control': item.value == selectedItem }\"\r\n >\r\n <i\r\n *ngIf=\"item.children\"\r\n (click)=\"onCollapsed(item)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span\r\n *ngSwitchCase=\"true\"\r\n class=\"bi bi-caret-{{ arabic ? 'left' : 'right' }}-fill caret-icon\"\r\n ></span>\r\n \r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-caret-down-fill caret-icon\"\r\n ></span>\r\n </i>\r\n <label class=\"form-check-label-treeview\" (click)=\"select(item)\"\r\n >{{ item.text }}\r\n </label>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template\r\n #headerTemplate\r\n let-config=\"config\"\r\n let-item=\"item\"\r\n let-onCollapseExpand=\"onCollapseExpand\"\r\n let-onCheckedChange=\"onCheckedChange\"\r\n let-onFilterTextChange=\"onFilterTextChange\"\r\n>\r\n <div *ngIf=\"config.hasFilter\" class=\"row row-filter\">\r\n <div class=\"col-12\">\r\n <input\r\n class=\"form-control\"\r\n type=\"text\"\r\n [placeholder]=\"i18n.getFilterPlaceholder(placeholder)\"\r\n [(ngModel)]=\"filterText\"\r\n (ngModelChange)=\"onFilterTextChange($event)\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngIf=\"config.hasAllCheckBox || config.hasCollapseExpand\" class=\"row\">\r\n <div class=\"col-12\">\r\n <label *ngIf=\"config.hasAllCheckBox\" (click)=\"select(item)\">\r\n <strong>{{ i18n.getAllCheckboxText() }}</strong>\r\n </label>\r\n <label\r\n *ngIf=\"config.hasCollapseExpand\"\r\n class=\"float-right\"\r\n (click)=\"onCollapseExpand()\"\r\n >\r\n <i\r\n [title]=\"i18n.getTooltipCollapseExpandText(item.collapsed)\"\r\n aria-hidden=\"true\"\r\n [ngSwitch]=\"item.collapsed\"\r\n >\r\n <span *ngSwitchCase=\"true\" class=\"bi bi-arrows-angle-expand\"></span>\r\n <span\r\n *ngSwitchCase=\"false\"\r\n class=\"bi bi-arrows-angle-contract\"\r\n ></span>\r\n </i>\r\n </label>\r\n </div>\r\n </div>\r\n <a *ngIf=\"defaultSelect\" class=\"select-default\" (click)=\"selectDefault()\">{{'department_management.selectDefault'| translate}}</a>\r\n <div *ngIf=\"config.hasDivider\" class=\"dropdown-divider\" [ngClass]=\"{'dropdown-divider-noMargin': defaultSelect}\"></div>\r\n</ng-template>\r\n\r\n<ng-container *ngIf=\"!treeview && !multiple\">\r\n <div class=\"dropdown-wrapper\">\r\n <ngx-dropdown-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-dropdown-treeview>\r\n <div class=\"disable-effect\" *ngIf=\"disabled\"></div>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"!treeview && multiple\">\r\n <div class=\"multiple-tree-view dropdown-wrapper\">\r\n <ngx-dropdown-treeview\r\n [config]=\"config\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-dropdown-treeview>\r\n <div class=\"disable-effect\" *ngIf=\"disabled\"></div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"treeview && !treeViewAsFormControl\">\r\n <div class=\"tree-view\">\r\n <ngx-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-treeview>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"treeview && treeViewAsFormControl\">\r\n <div class=\"tree-view-form-control\">\r\n <ngx-treeview\r\n [config]=\"config\"\r\n [headerTemplate]=\"headerTemplate\"\r\n [items]=\"items\"\r\n [itemTemplate]=\"itemTemplate\"\r\n >\r\n </ngx-treeview>\r\n </div>\r\n</ng-container>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.caret-icon{color:#6c757d;font-size:14px}.dropdown-wrapper{position:relative}.dropdown-wrapper .disable-effect{position:absolute;top:0;bottom:0;left:0;right:0;z-index:99}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element,.multiple-treeview .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#33e3b7!important}.multiple-treeview .mat-checkbox-ripple .mat-ripple-element{position:fixed;left:inherit;top:inherit;transform:translate(-3px,-3px)!important}.multiple-treeview mat-checkbox .mat-checkbox-background{background-color:#d9dce2!important}.form-check-label-treeview{display:flex;align-items:center;justify-content:space-between;width:100%}.form-check-label-treeview .hoverField{display:none;align-items:center;text-align:center}.form-check-label-treeview .hoverField span{display:flex;align-items:center;justify-content:center;margin:0 3px;border:none;background-color:snow;background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:30px;width:30px;color:#fff;border-radius:5px;list-style:none;margin-inline-end:4px}.form-check-label-treeview .hoverField span .bi-plus{font-size:28px;display:flex;justify-content:center}.form-check-label-treeview .hoverField .add-btn{width:164px;padding:1px;display:flex;justify-content:center;align-items:center;font-size:13px;background-color:#0dbab5;border-radius:5px;border:0;color:#fff;--tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.form-check-label-treeview .hoverField .plus-btn{display:flex;font-size:28px;align-items:center}.selected{background-color:#f5f6f8}.selected .hoverField{display:flex!important}.selected-form-control{background-color:#d9dce2}.selected-form-control .hoverField{display:flex!important}.treeview-item .row-item{display:flex;align-items:center;padding:5px 10px}.treeview-item .row-item .multiple-checkBox{margin-inline-start:4px;margin-inline-end:4px}.treeview-item .active{background-color:#f5f6f8}.treeview-row{display:flex;align-items:center}.treeview-row:hover{background-color:#f5f6f8}.treeview-row-form-control{display:flex;align-items:center}.treeview-row-form-control:hover{background-color:#d9dce2}label{margin-bottom:0;cursor:pointer}.bi{cursor:pointer;margin-right:.3rem}ngx-treeview .treeview-container{max-height:200px!important;overflow-x:hidden;scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;overflow-y:auto}ngx-treeview .select-default{display:flex;justify-content:start;font-size:13px;cursor:pointer;margin-bottom:3px;margin-top:4px}ngx-treeview .dropdown-divider-noMargin{margin-top:0!important}.tree-view ngx-treeview .treeview-container{max-height:500px!important;overflow-x:hidden}.tree-view-form-control ngx-treeview .treeview-container{max-height:300px!important;overflow-x:hidden}ngx-dropdown-treeview .dropdown .dropdown-menu{margin-top:0!important;width:100%}ngx-dropdown-treeview .dropdown .btn-outline-secondary{background-color:#8f98aa1a;border:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:hover{color:#6c757d!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:focus{box-shadow:none!important}ngx-dropdown-treeview .dropdown .btn-outline-secondary:active{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}ngx-dropdown-treeview .dropdown:after{position:static!important}ngx-dropdown-treeview .show .dropdown-toggle{background-color:#8f98aa1a!important;border:none!important;color:#6c757d!important}.rtl .treeview-item .treeview-item{margin-right:2rem!important;margin-left:0!important}.rtl .row-all .col-12{text-align:right}.rtl .row-all .col-12 .pull-right{float:left!important}.rtl .form-check.form-check-inline{margin-right:0!important}.rtl .btn.dropdown-toggle{margin-right:0!important}.rtl .dropdown-menu:not(ngb-datepicker){right:0px;left:unset}.rtl .dropdown :after{margin-top:.6rem;left:.6rem;right:unset!important}.rtl ngx-treeview-item{text-align:right;direction:rtl}@media (min-width: 576px){.rtl .form-inline .form-check-input{margin:3px}}.rtl .form-inline .form-check-input{margin:3px;position:inherit}.rtl .dropdown button{text-align:right!important;direction:rtl}.rtl .fa.fa-caret-right{transform:rotate(180deg)}\n"], components: [{ type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i1.DropdownTreeviewComponent, selector: "ngx-dropdown-treeview", inputs: ["buttonClass", "config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }, { type: i1.TreeviewComponent, selector: "ngx-treeview", inputs: ["config", "headerTemplate", "itemTemplate", "items"], outputs: ["selectedChange", "filterChange"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "translate": i12.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TreeviewSelectComponent, decorators: [{
|
|
280
280
|
type: Component,
|
|
281
281
|
args: [{
|
|
282
282
|
selector: "app-dynamic-form-treeview-select",
|
|
@@ -325,4 +325,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
325
325
|
type: ViewChild,
|
|
326
326
|
args: [DropdownTreeviewComponent, { static: false }]
|
|
327
327
|
}] } });
|
|
328
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC9kcm9wZG93bi10cmVldmlldy1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0L2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBRVQsaUJBQWlCLEdBR2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUNMLFlBQVksRUFFWixjQUFjLEVBQ2QseUJBQXlCLEVBQ3pCLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBSTdFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQVFILE1BQU0sT0FBTyx1QkFBdUI7SUFtRGxDLGlFQUFpRTtJQUVqRSxZQUNTLElBQWtCLEVBQ2pCLFdB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QUErQyxDQUFDO29CQUM1RCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxDQUFDO2lCQUM3RTt3U0FVQyxRQUFRO3NCQURQLEtBQUs7Z0JBSU4scUJBQXFCO3NCQURwQixLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFSyxZQUFZO3NCQUFwQixLQUFLO2dCQUVDLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSx5QkFBeUI7c0JBQWxDLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFFUCx5QkFBeUI7c0JBRHhCLFNBQVM7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBWaWV3Q2hpbGQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgaXNOaWwgfSBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCB7XHJcbiAgVHJlZXZpZXdJMThuLFxyXG4gIFRyZWV2aWV3SXRlbSxcclxuICBUcmVldmlld0NvbmZpZyxcclxuICBEcm9wZG93blRyZWV2aWV3Q29tcG9uZW50LFxyXG4gIFRyZWV2aWV3SGVscGVyLFxyXG59IGZyb20gXCJuZ3gtdHJlZXZpZXdcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVwYXJ0bWVudE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L3NlcnZpY2VzL2RlcGFydG1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlcGFydG1lbnRBcGlTZXJ2aWNlIH0gZnJvbSBcIi4uL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L3NlcnZpY2VzL2RlcGFydG1lbnQtYXBpLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4gfSBmcm9tIFwiLi9kcm9wZG93bi10cmVldmlldy1zZWxlY3QtaTE4blwiO1xyXG5pbXBvcnQgeyBSb2xlc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy9yb2xlcy9yb2xlcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgR2xvYmFsQWRtaW5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy9nbG9iYWwtYWRtaW4uc2VydmljZVwiO1xyXG4vKipcclxuICogQSB0cmVlIHZpZXcgc2VsZWN0b3IgY29tcG9uZW50IHRoYXQgY2FuIGJlIHVzZWQgaW4gcmVhY3RpdmUgYW5kIHRlbXBsYXRlIGRyaXZlbiBmb3JtcyxcclxuICogaXQgY2FuIGJlIGEgZmxhdCB0cmVlIG9yIGEgZHJvcGRvd25cclxuICogQHRpdGxlXHJcbiAqIFRyZWUgdmlldyBzZWxlY3RvclxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiA8YXBwLWR5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3RcclxuICogW3RyZWV2aWV3XT1cImZhbHNlXCJcclxuICogW211bHRpcGxlXT1cImZhbHNlXCJcclxuICogW2l0ZW1zXT1cIml0ZW1zVHJlZVwiXHJcbiAqICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gKiBbKHZhbHVlKV09XCJzZWxlY3RlZFZhbHVlXCJcclxuICogPlxyXG4gKiA8L2FwcC1keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0PlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLWR5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3RcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVHJlZXZpZXdJMThuLCB1c2VDbGFzczogRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4gfV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmVldmlld1NlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIG11bHRpcGxlU2VsZWN0aW9uID0gW107XHJcbiAgc2VsZWN0ZWRJdGVtO1xyXG4gIHNlbGVjdGVkUGFyZW50V2l0aENoaWxkID0gW107XHJcbiAgc2hvd1BsdXMgPSBmYWxzZTtcclxuICBwcmVTZWxlY3RlZCA9IFtdO1xyXG4gIG15RGVwYXJ0bWVudDogYW55O1xyXG4gIC8qKiBpcyB0cmVlIFZpZXcgb3IgZHJvcGRvd24gdmlldyAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgdHJlZXZpZXcgPSBmYWxzZTtcclxuICAvKiogdXNlIHRyZWUgdmlldyBpbnNpZGUgZm9ybSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgdHJlZVZpZXdBc0Zvcm1Db250cm9sID0gZmFsc2U7XHJcbiAgLyoqIENvbmZpZyBvYmplY3QgKi9cclxuICBASW5wdXQoKSBjb25maWc6IFRyZWV2aWV3Q29uZmlnO1xyXG4gIC8qKiBJdGVtcyB0cmVlICovXHJcbiAgQElucHV0KCkgaXRlbXM6IFRyZWV2aWV3SXRlbVtdO1xyXG4gIC8qKiBTZWxlY3RlZCB2YWx1ZSAqL1xyXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XHJcbiAgLyoqIGNhbiBzZWxlY3QgbXVsdGlwbGUgKi9cclxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBldmVudCBlbWl0dGVkIG9uIHZhbHVlIGNoYW5nZSAqL1xyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8qKiBldmVudCBlbWl0dGVkIG9uIHBsdXMgYnV0dG9uIGNsaWNrZWQgKGZvciBkZXBhcnRtZW50IG1hbmFnZW1lbnQpICovXHJcbiAgQE91dHB1dCgpIHBsdXNDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLyoqIGV2ZW50IGVtaXR0ZWQgb24gcGx1cyBidXR0b24gY2xpY2tlZCAoZm9yIGRlcGFydG1lbnQgbWFuYWdlbWVudCkgKi9cclxuICBASW5wdXQoKSBkZWZhdWx0U2VsZWN0ID0gZmFsc2U7XHJcbi8qKiBjdXN0b20gcGFnZSBwcm92aWRlciB0byBnZXQgZGVwYXJ0bWVudCBuZXN0ZWQgdHJlZSBmcm9tIGl0IGNhbiBiZSBwYXNzZWQgZnJvbSBvdXRzaWRlIG9yIG5vdCBwYXNzZWQgYW5kIHVzZSB0aGUgZGVmdWx0ZSB2YWx1ZSAqL1xyXG4gIEBJbnB1dCgpIHBwX2RlcGFydG1lbnROZXN0ZWRUcmVlOyBcclxuICAvKiogdXNlIG91dHNpZGUgY3VzdG9tIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIGluZXIgZnVuY3Rpb24gICovXHJcbiAgQElucHV0KCkgdXNlQ3VzdG9tQWRkRWRpdEFjdGlvbiA9IGZhbHNlO1xyXG4gICAgLyoqIGN1c3RvbSBwcmVmaXggdG8gYmUgdXNlZCBmb3IgYWRhcHRpbmcgZGF0YSBjb21pbmcgZnJvbSBhcGkgKi9cclxuICAgIEBJbnB1dCgpIGN1c3RvbVByZWZpeDtcclxuICAvKiogY3VzdG9tIHBhcmVudCBwcm9wZXJ0eSBuYW1lIHRvIGJlIHBhc3NlZCBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIGN1c3RvbVBhcmVudFByb3BlcnR5O1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyO1xyXG4gIC8qKiBkaXNwbGF5IGlucHV0IERlcFR5cGVlIGluIGFkZCBkaWFsb2cgb2YgZGVwYXJ0ZW1lbnQgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5RGVwVHlwZWU7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0ICgpIGRpc3BsYXlJc0FsbG93UmVjRXh0ZXJuYWw7XHJcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAVmlld0NoaWxkKERyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQ6IERyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQ7XHJcbiAgZmlsdGVyVGV4dDogc3RyaW5nO1xyXG4gIGFyYWJpYyA9IGZhbHNlO1xyXG4gIGxhbmd1YWdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgb25EZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIHByaXZhdGUgZHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG46IERyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuO1xyXG5cclxuICAvLyB0aGlzIGNvbXBvbmVudCBpcyB1c2VkIGluIHR3byBwbGFjZXMgdGhlIGZsYWcgaXMgdGhpcy50cmVldmlld1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpMThuOiBUcmVldmlld0kxOG4sXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRlcGFydG1lbnRBcGlTZXJ2aWNlOiBEZXBhcnRtZW50QXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgZGVwYXJ0bWVudE1hbmFnbWVudDogRGVwYXJ0bWVudE1hbmFnZW1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb2xlc1NlcnZpY2U6IFJvbGVzU2VydmljZSxcclxuICAgIHByaXZhdGUgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdsb2JhbEFkbWluIDogR2xvYmFsQWRtaW5TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IFRyZWV2aWV3Q29uZmlnLmNyZWF0ZSh7XHJcbiAgICAgIGhhc0FsbENoZWNrQm94OiBmYWxzZSxcclxuICAgICAgaGFzQ29sbGFwc2VFeHBhbmQ6IGZhbHNlLFxyXG4gICAgICBoYXNGaWx0ZXI6IHRydWUsXHJcbiAgICAgIG1heEhlaWdodDogMjAwLFxyXG4gICAgICBkZWNvdXBsZUNoaWxkRnJvbVBhcmVudDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4biA9IGkxOG4gYXMgRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG47XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb24uaXNBcmFiaWNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuYXJhYmljID0gcmVzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLml0ZW1zICYmIHRoaXMudHJlZXZpZXcpIHtcclxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZEl0ZW0oKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy50cmVldmlldyAmJiAhdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAvLyB0aGlzLiBmdW5jdGlvbiBpcyB0byBzZXQgdWkgd2l0aCBwcmUgc2VsZWN0ZWQgdmFsdWVcclxuICAgICAgLy8gZGVsYXkgdG8gbWFrZSBzdXJlIHRoYXQgcGFnZSBnZXQgdGhlIHZhbHVlIGFuZCBzZW5kIGl0IHRvIGhlcmVcclxuICAgICAgLy8gd2UgdXNlIHRoZSB2YWx1ZSBzZW50IHRvIGhlcmUgYW5kIHNlYXJjaCBmb3IgaXRzIGl0ZW0gb24gb3VyIGl0ZW1zIGFuZCBzZXQgaXQgYXMgdGhlIHNlbGVjdGVkIGl0ZW1cclxuICAgICAgdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICB0aGlzLnNldFByZVNlbGV0ZWRJdGVtKGl0ZW0sIHRoaXMudmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgIXRoaXMudHJlZXZpZXcgJiZcclxuICAgICAgdGhpcy5tdWx0aXBsZSAmJlxyXG4gICAgICB0aGlzLnZhbHVlICYmXHJcbiAgICAgIHRoaXMudmFsdWUubGVuZ3RoID4gMFxyXG4gICAgKSB7XHJcbiAgICAgIC8vIHRoaXMucHJlU2VsZWN0ZWQgPSB0aGlzLnZhbHVlO1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdGhpcy52YWx1ZTtcclxuICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3Rpb25MZW5ndGggPVxyXG4gICAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoO1xyXG4gICAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQub25TZWxlY3RlZENoYW5nZShbXHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGgsXHJcbiAgICAgIF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UHJlU2VsZXRlZEl0ZW0oaXRlbSwgY29tcGFyZVdpdGhWYWx1ZSkge1xyXG4gICAgaWYgKChpdGVtLnZhbHVlID09PSBjb21wYXJlV2l0aFZhbHVlKSB8fCAoaXRlbS52YWx1ZS50aXRsZSA9PT0gY29tcGFyZVdpdGhWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5zZWxlY3QoaXRlbSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChpdGVtLmludGVybmFsQ2hpbGRyZW4pIHtcclxuICAgICAgICBpdGVtLmludGVybmFsQ2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRQcmVTZWxldGVkSXRlbShjaGlsZCwgY29tcGFyZVdpdGhWYWx1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdERlZmF1bHQoKSB7XHJcbiAgICBsZXQgb3B0aW9uID0ge1xyXG4gICAgICAnaXNHbG9iYWxBZG1pbicgOiB0aGlzLmdsb2JhbEFkbWluLmlzR2xvYmFsQWRtaW4sXHJcbiAgICAgICdhY3RpdmVUZW5hbnQnIDogdGhpcy5nbG9iYWxBZG1pbi5hY3RpdmVUZW5hbnQsXHJcbiAgICAgICd0ZW5hbnRJZCc6IHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy50ZW5hbnRJZFxyXG4gICAgfTtcclxuICAgIHRoaXMubXlEZXBhcnRtZW50ID0gdGhpcy5yb2xlc1NlcnZpY2UuZ2V0VXNlckRlcGFydG1lbnQoXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXIsXHJcbiAgICAgICdjdHNfcm9sZV8nLFxyXG4gICAgICBvcHRpb25cclxuICAgICk7XHJcbiAgICB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICB0aGlzLnNldFByZVNlbGV0ZWRJdGVtKGl0ZW0sIHRoaXMubXlEZXBhcnRtZW50KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZWxlY3QoaXRlbTogVHJlZXZpZXdJdGVtKTogdm9pZCB7XHJcbiAgICAvLyBpZiAoIWl0ZW0uY2hpbGRyZW4pIHtcclxuICAgIHRoaXMuc2VsZWN0SXRlbShpdGVtKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRJdGVtKCk6IHZvaWQge1xyXG4gICAgaWYgKCFpc05pbCh0aGlzLml0ZW1zKSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBUcmVldmlld0hlbHBlci5maW5kSXRlbUluTGlzdChcclxuICAgICAgICB0aGlzLml0ZW1zLFxyXG4gICAgICAgIHRoaXMudmFsdWVcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zZWxlY3RJdGVtKHNlbGVjdGVkSXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdEl0ZW0oaXRlbTogVHJlZXZpZXdJdGVtKTogdm9pZCB7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsaWNrKCk7XHJcbiAgICBpZiAodGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3RlZEl0ZW0gIT09IGl0ZW0pIHtcclxuICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3RlZEl0ZW0gPSBpdGVtO1xyXG4gICAgICBpZiAodGhpcy5kcm9wZG93blRyZWV2aWV3Q29tcG9uZW50KSB7XHJcbiAgICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3Q29tcG9uZW50Lm9uU2VsZWN0ZWRDaGFuZ2UoW2l0ZW1dKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICBpZiAodGhpcy50cmVldmlldykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtLnZhbHVlO1xyXG4gICAgICAgICAgLy8gdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGl0ZW0udmFsdWUudGl0bGUpO1xyXG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaXRlbS52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdE11bHRpcGxlKGUsIGl0ZW06IFRyZWV2aWV3SXRlbSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZCA9IFtdO1xyXG4gICAgdGhpcy5nZXRDaGlsZGVyblZhbHVlcyhpdGVtKTtcclxuICAgIGlmIChlKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmNvbmNhdChcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50V2l0aENoaWxkXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5maWx0ZXIoKGUpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZC5pbmRleE9mKGUpIDwgMDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3Rpb25MZW5ndGggPVxyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmxlbmd0aDtcclxuICAgIHRoaXMuZHJvcGRvd25UcmVldmlld0NvbXBvbmVudC5vblNlbGVjdGVkQ2hhbmdlKFtcclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGgsXHJcbiAgICBdKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLm11bHRpcGxlU2VsZWN0aW9uKTtcclxuICB9XHJcbiAgZ2V0Q2hpbGRlcm5WYWx1ZXMoaXRlbTogVHJlZXZpZXdJdGVtKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUGFyZW50V2l0aENoaWxkLnB1c2goaXRlbS52YWx1ZSk7XHJcbiAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xyXG4gICAgICBpdGVtLmNoaWxkcmVuLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICB0aGlzLmdldENoaWxkZXJuVmFsdWVzKGl0ZW0pO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSByZXR1cm47XHJcbiAgfVxyXG5cclxuICBvblBsdXNDbGlja2VkKGU6IE1vdXNlRXZlbnQsIGl0ZW06IFRyZWV2aWV3SXRlbSk6IHZvaWQge1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIHRoaXMucGx1c0NsaWNrZWQuZW1pdChpdGVtLnZhbHVlLnVpZCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGUgIGNsaWNrIGV2ZW50XHJcbiAgICogQHBhcmFtIGFjdGlvbiBuYW1lIG9mIGFjdGlvbiAoYWRkICwgdXBkYXRlKVxyXG4gICAqIEBwYXJhbSBpdGVtIFRyZWV2aWV3SXRlbVxyXG4gICAqL1xyXG4gIG9uQWN0aW9uKGU6IE1vdXNlRXZlbnQsIGFjdGlvbjogc3RyaW5nLCBpdGVtOiBUcmVldmlld0l0ZW0pIHtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICBpZiAoYWN0aW9uID09PSBcImFkZFwiKSB7XHJcbiAgICAgICAgLy8gZW1pdCBhY3Rpb24gdG8gb3V0c2lkZSB0byBleGVjdXRlIGZ1bmN0aW9uIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50IFxyXG4gICAgICAgIGlmKHRoaXMudXNlQ3VzdG9tQWRkRWRpdEFjdGlvbil7XHJcbiAgICAgICAgICB0aGlzLmFjdGlvbkNsaWNrZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGFjdGlvbiA6IGFjdGlvbixcclxuICAgICAgICAgICAgaXRlbSA6IGl0ZW1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5kZXBhcnRtZW50TWFuYWdtZW50XHJcbiAgICAgICAgICAgIC5vcGVuRm9ybURpYWxvZyhpdGVtLnZhbHVlLnVpZCwgZmFsc2UsdGhpcy5kaXNwbGF5SXNBbGxvd1JlY0V4dGVybmFsLHRoaXMuZGlzcGxheURlcFR5cGVlLCBpdGVtLnZhbHVlLnRpdGxlLCBpdGVtKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZShpdGVtKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoYWN0aW9uID09PSBcInVwZGF0ZVwiKSB7XHJcbiAgICAgICAgaWYodGhpcy51c2VDdXN0b21BZGRFZGl0QWN0aW9uKXtcclxuICAgICAgICAvLyBlbWl0IGFjdGlvbiB0byBvdXRzaWRlIHRvIGV4ZWN1dGUgZnVuY3Rpb24gZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQgXHJcbiAgICAgICAgICB0aGlzLmFjdGlvbkNsaWNrZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGFjdGlvbiA6IGFjdGlvbixcclxuICAgICAgICAgICAgaXRlbSA6IGl0ZW1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5kZXBhcnRtZW50TWFuYWdtZW50XHJcbiAgICAgICAgICAgIC5vcGVuRm9ybURpYWxvZyhpdGVtLnZhbHVlLnVpZCwgdHJ1ZSx0aGlzLmRpc3BsYXlJc0FsbG93UmVjRXh0ZXJuYWwsdGhpcy5kaXNwbGF5RGVwVHlwZWUpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMudXBkYXRlKGl0ZW0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2UuZ2V0RGVwYXJ0bWVudFRyZWUoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2UucmVjdXJzaXZlRmlsbChcclxuICAgICAgICAgICAgICAgICAgcmVzLmVudHJpZXMgLCBcclxuICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkICwgXHJcbiAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCAsIFxyXG4gICAgICAgICAgICAgICAgICB1bmRlZmluZWQgLCBcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21QcmVmaXgpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICpkdWUgdG8gdGhlIGJ1c2luZXNzIHJlcXVpcmVtZW50cyB3aGljaCBzdGF0ZWQgdGhhdCBtb3JlIHRoYW4gMyBsZXZlbHMgd2lsbCBleGlzdGVkIHRoZSBjdXJyZW50IGFwaSBzdXBwb3J0IG9ubHkgMyBsZXZlbHMgc28gKndlIGhhdmUgdG8gaW5qZWN0IDMgbmV3IGxldmVscyBvbiBlYWNoIHRyZWUgZW5kXHJcbiAgICogQHBhcmFtIGl0ZW0gVHJlZXZpZXdJdGVtXHJcbiAgICovXHJcbiAgb25Db2xsYXBzZWQoaXRlbTogVHJlZXZpZXdJdGVtKSB7XHJcbiAgICBpdGVtLmNvbGxhcHNlZCA9ICFpdGVtLmNvbGxhcHNlZDtcclxuICAgIGlmIChpdGVtLnZhbHVlLmxldmVsID09PSAyKSB7XHJcbiAgICAgIHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2VcclxuICAgICAgICAuZ2V0RGVwYXJ0bWVudE5lc3RlZFRyZWUoXHJcbiAgICAgICAgICBpdGVtLnZhbHVlLnRpdGxlICwgXHJcbiAgICAgICAgICB0aGlzLnBwX2RlcGFydG1lbnROZXN0ZWRUcmVlID8gdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSA6ICdQUF9EZXBhcnRtZW50JyxcclxuICAgICAgICAgIHRoaXMuY3VzdG9tUGFyZW50UHJvcGVydHkpXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2UucmVjdXJzaXZlRmlsbChcclxuICAgICAgICAgICAgICByZXMuZW50cmllcyAsIFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCAsIFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCAsIFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCAsIFxyXG4gICAgICAgICAgICAgIHRoaXMuY3VzdG9tUHJlZml4XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge31cclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKmR1ZSB0byB0aGUgYnVzaW5lc3MgcmVxdWlyZW1lbnRzIHdoaWNoIHN0YXRlZCB0aGF0IG1vcmUgdGhhbiAzIGxldmVscyB3aWxsIGV4aXN0ZWQgdGhlIGN1cnJlbnQgYXBpIHN1cHBvcnQgb25seSAzIGxldmVscyBzbyAqd2UgaGF2ZSB0byBpbmplY3QgMyBuZXcgbGV2ZWxzIG9uIGVhY2ggdHJlZSBlbmRcclxuICAgKiBAcGFyYW0gaXRlbSBUcmVldmlld0l0ZW1cclxuICAgKi9cclxuICB1cGRhdGUoaXRlbSkge1xyXG4gICAgdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZVxyXG4gICAgICAuZ2V0RGVwYXJ0bWVudE5lc3RlZFRyZWUoXHJcbiAgICAgICAgaXRlbS52YWx1ZS50aXRsZSAsIFxyXG4gICAgICAgIHRoaXMucHBfZGVwYXJ0bWVudE5lc3RlZFRyZWUgPyB0aGlzLnBwX2RlcGFydG1lbnROZXN0ZWRUcmVlIDogJ1BQX0RlcGFydG1lbnQnLFxyXG4gICAgICAgIHRoaXMuY3VzdG9tUGFyZW50UHJvcGVydHkpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgIGl0ZW0uY2hpbGRyZW4gPSB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlLnJlY3Vyc2l2ZUZpbGwoXHJcbiAgICAgICAgICAgIGRhdGEuZW50cmllcyxcclxuICAgICAgICAgICAgMCxcclxuICAgICAgICAgICAgdHJ1ZSxcclxuICAgICAgICAgICAgdHJ1ZSxcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21QcmVmaXhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyKSA9PiB7fVxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGVcclxuICAjaXRlbVRlbXBsYXRlXHJcbiAgbGV0LWl0ZW09XCJpdGVtXCJcclxuICBsZXQtb25Db2xsYXBzZUV4cGFuZD1cIm9uQ29sbGFwc2VFeHBhbmRcIlxyXG4gIGxldC1vbkNoZWNrZWRDaGFuZ2U9XCJvbkNoZWNrZWRDaGFuZ2VcIlxyXG4+XHJcbiAgPCEtLSBzaW5nbGUgLS0+XHJcbiAgPGRpdiAqbmdJZj1cIiF0cmVldmlldyAmJiAhbXVsdGlwbGVcIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ0ZXh0LW5vd3JhcCByb3ctaXRlbVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpdGVtLnZhbHVlID09PSB0aGlzLnZhbHVlIH1cIlxyXG4gICAgPlxyXG4gICAgICA8aVxyXG4gICAgICAgICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ29sbGFwc2VFeHBhbmQoKVwiXHJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICBbbmdTd2l0Y2hdPVwiaXRlbS5jb2xsYXBzZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQte3sgYXJhYmljID8gJ2xlZnQnIDogJ3JpZ2h0JyB9fS1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LWRvd24tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICA+PC9zcGFuPlxyXG4gICAgICA8L2k+XHJcbiAgICAgIDwhLS0gPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIj57e1xyXG4gICAgICAgIGl0ZW0udGV4dFxyXG4gICAgICB9fTwvbGFiZWw+IC0tPlxyXG4gICAgICA8bGFiZWwgKm5nSWY9XCJpdGVtLmRpc2FibGVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+e3tcclxuICAgICAgICBpdGVtLnRleHRcclxuICAgICAgfX08L2xhYmVsPlxyXG4gICAgICA8bGFiZWwgKm5nSWY9XCIhaXRlbS5kaXNhYmxlZFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIj57e1xyXG4gICAgICAgIGl0ZW0udGV4dFxyXG4gICAgICB9fTwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8IS0tIE11bHRpcGxlIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCIhdHJlZXZpZXcgJiYgbXVsdGlwbGVcIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ0ZXh0LW5vd3JhcCByb3ctaXRlbVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpdGVtLnZhbHVlID09PSB0aGlzLnZhbHVlIH1cIlxyXG4gICAgPlxyXG4gICAgICA8aVxyXG4gICAgICAgICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ29sbGFwc2VFeHBhbmQoKVwiXHJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICBbbmdTd2l0Y2hdPVwiaXRlbS5jb2xsYXBzZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQte3sgYXJhYmljID8gJ2xlZnQnIDogJ3JpZ2h0JyB9fS1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LWRvd24tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICA+PC9zcGFuPlxyXG4gICAgICA8L2k+XHJcbiAgICAgIDwhLS0gPGlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJtdWx0aXBsZS1jaGVja0JveFwiXHJcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICBbY2hlY2tlZF09XCJtdWx0aXBsZVNlbGVjdGlvbi5pbmNsdWRlcyhpdGVtLnZhbHVlKVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RNdWx0aXBsZSgkZXZlbnQudGFyZ2V0LmNoZWNrZWQsIGl0ZW0pXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj57eyBpdGVtLnRleHQgfX08L2xhYmVsPiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm11bHRpcGxlLXRyZWV2aWV3XCI+XHJcbiAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwibXVsdGlwbGVTZWxlY3Rpb24uaW5jbHVkZXMoaXRlbS52YWx1ZSlcIlxyXG4gICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RNdWx0aXBsZSgkZXZlbnQuY2hlY2tlZCwgaXRlbSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuPiB7eyBpdGVtLnRleHQgfX0gPC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gdHJlZVZpZXcgLS0+XHJcbiAgPGRpdiAqbmdJZj1cInRyZWV2aWV3ICYmICF0cmVlVmlld0FzRm9ybUNvbnRyb2xcIiBjbGFzcz1cInRyZWUtdmlldy1jb250YWluZXJcIj5cclxuICAgIDxkaXZcclxuICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJGaWVsZC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnXCJcclxuICAgICAgKG1vdXNlbGVhdmUpPVwiaG92ZXJGaWVsZC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnXCJcclxuICAgICAgY2xhc3M9XCJ0ZXh0LW5vd3JhcCByb3ctaXRlbSB0cmVldmlldy1yb3dcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBpdGVtLnZhbHVlID09IHNlbGVjdGVkSXRlbSB9XCJcclxuICAgID5cclxuICAgICAgPGlcclxuICAgICAgICAqbmdJZj1cIml0ZW0uY2hpbGRyZW5cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNvbGxhcHNlZChpdGVtKVwiXHJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICBbbmdTd2l0Y2hdPVwiaXRlbS5jb2xsYXBzZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQte3sgYXJhYmljID8gJ2xlZnQnIDogJ3JpZ2h0JyB9fS1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgID48L3NwYW4+XHJcblxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgY2xhc3M9XCJiaSBiaS1jYXJldC1kb3duLWZpbGwgY2FyZXQtaWNvblwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgPC9pPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsLXRyZWV2aWV3XCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiXHJcbiAgICAgICAgPnt7IGl0ZW0udGV4dCB9fVxyXG4gICAgICAgIDxzcGFuICNob3ZlckZpZWxkIGNsYXNzPVwiaG92ZXJGaWVsZFwiPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0uZWRpdCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25BY3Rpb24oJGV2ZW50LCAndXBkYXRlJywgaXRlbSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJiaSBiaS1wZW5jaWxcIj48L2xpPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwie3tcclxuICAgICAgICAgICAgICAnZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0udG9vbFRpcF9tZXNzYWdlJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbigkZXZlbnQsICdhZGQnLCBpdGVtKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImJpIGJpLXBsdXNcIj48L2xpPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9sYWJlbD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gICAgPCEtLSB0cmVlVmlldyBhcyBmb3JtIGNvbnRyb2wgLS0+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidHJlZXZpZXcgJiYgdHJlZVZpZXdBc0Zvcm1Db250cm9sXCIgY2xhc3M9XCJ0cmVlLXZpZXctY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInRleHQtbm93cmFwIHJvdy1pdGVtIHRyZWV2aWV3LXJvdy1mb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NlbGVjdGVkLWZvcm0tY29udHJvbCc6IGl0ZW0udmFsdWUgPT0gc2VsZWN0ZWRJdGVtIH1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25Db2xsYXBzZWQoaXRlbSlcIlxyXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgIFtuZ1N3aXRjaF09XCJpdGVtLmNvbGxhcHNlZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cInRydWVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LXt7IGFyYWJpYyA/ICdsZWZ0JyA6ICdyaWdodCcgfX0tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICAgID48L3NwYW4+XHJcbiAgXHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LWRvd24tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPC9pPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwtdHJlZXZpZXdcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCJcclxuICAgICAgICAgID57eyBpdGVtLnRleHQgfX1cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGVcclxuICAjaGVhZGVyVGVtcGxhdGVcclxuICBsZXQtY29uZmlnPVwiY29uZmlnXCJcclxuICBsZXQtaXRlbT1cIml0ZW1cIlxyXG4gIGxldC1vbkNvbGxhcHNlRXhwYW5kPVwib25Db2xsYXBzZUV4cGFuZFwiXHJcbiAgbGV0LW9uQ2hlY2tlZENoYW5nZT1cIm9uQ2hlY2tlZENoYW5nZVwiXHJcbiAgbGV0LW9uRmlsdGVyVGV4dENoYW5nZT1cIm9uRmlsdGVyVGV4dENoYW5nZVwiXHJcbj5cclxuICA8ZGl2ICpuZ0lmPVwiY29uZmlnLmhhc0ZpbHRlclwiIGNsYXNzPVwicm93IHJvdy1maWx0ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaTE4bi5nZXRGaWx0ZXJQbGFjZWhvbGRlcihwbGFjZWhvbGRlcilcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyVGV4dFwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25GaWx0ZXJUZXh0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cImNvbmZpZy5oYXNBbGxDaGVja0JveCB8fCBjb25maWcuaGFzQ29sbGFwc2VFeHBhbmRcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICA8bGFiZWwgKm5nSWY9XCJjb25maWcuaGFzQWxsQ2hlY2tCb3hcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCI+XHJcbiAgICAgICAgPHN0cm9uZz57eyBpMThuLmdldEFsbENoZWNrYm94VGV4dCgpIH19PC9zdHJvbmc+XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICAgIDxsYWJlbFxyXG4gICAgICAgICpuZ0lmPVwiY29uZmlnLmhhc0NvbGxhcHNlRXhwYW5kXCJcclxuICAgICAgICBjbGFzcz1cImZsb2F0LXJpZ2h0XCJcclxuICAgICAgICAoY2xpY2spPVwib25Db2xsYXBzZUV4cGFuZCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpXHJcbiAgICAgICAgICBbdGl0bGVdPVwiaTE4bi5nZXRUb29sdGlwQ29sbGFwc2VFeHBhbmRUZXh0KGl0ZW0uY29sbGFwc2VkKVwiXHJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgW25nU3dpdGNoXT1cIml0ZW0uY29sbGFwc2VkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIGNsYXNzPVwiYmkgYmktYXJyb3dzLWFuZ2xlLWV4cGFuZFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktYXJyb3dzLWFuZ2xlLWNvbnRyYWN0XCJcclxuICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPC9pPlxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGEgKm5nSWY9XCJkZWZhdWx0U2VsZWN0XCIgY2xhc3M9XCJzZWxlY3QtZGVmYXVsdFwiIChjbGljayk9XCJzZWxlY3REZWZhdWx0KClcIj57eydkZXBhcnRtZW50X21hbmFnZW1lbnQuc2VsZWN0RGVmYXVsdCd8IHRyYW5zbGF0ZX19PC9hPlxyXG4gIDxkaXYgKm5nSWY9XCJjb25maWcuaGFzRGl2aWRlclwiIGNsYXNzPVwiZHJvcGRvd24tZGl2aWRlclwiIFtuZ0NsYXNzXT1cInsnZHJvcGRvd24tZGl2aWRlci1ub01hcmdpbic6IGRlZmF1bHRTZWxlY3R9XCI+PC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiIXRyZWV2aWV3ICYmICFtdWx0aXBsZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkcm9wZG93bi13cmFwcGVyXCI+XHJcbiAgICA8bmd4LWRyb3Bkb3duLXRyZWV2aWV3XHJcbiAgICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgICAgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCJcclxuICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcclxuICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxyXG4gICAgPlxyXG4gIDwvbmd4LWRyb3Bkb3duLXRyZWV2aWV3PlxyXG4gIDxkaXYgY2xhc3M9XCJkaXNhYmxlLWVmZmVjdFwiICpuZ0lmPVwiZGlzYWJsZWRcIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhdHJlZXZpZXcgJiYgbXVsdGlwbGVcIj5cclxuICA8ZGl2IGNsYXNzPVwibXVsdGlwbGUtdHJlZS12aWV3IGRyb3Bkb3duLXdyYXBwZXJcIj5cclxuICAgIDxuZ3gtZHJvcGRvd24tdHJlZXZpZXdcclxuICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxyXG4gICAgICBbaXRlbXNdPVwiaXRlbXNcIlxyXG4gICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICA+XHJcbiAgICA8L25neC1kcm9wZG93bi10cmVldmlldz5cclxuICA8ZGl2IGNsYXNzPVwiZGlzYWJsZS1lZmZlY3RcIiAqbmdJZj1cImRpc2FibGVkXCI+PC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyZWV2aWV3ICYmICF0cmVlVmlld0FzRm9ybUNvbnRyb2xcIj5cclxuICA8ZGl2IGNsYXNzPVwidHJlZS12aWV3XCI+XHJcbiAgICA8bmd4LXRyZWV2aWV3XHJcbiAgICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgICAgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCJcclxuICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcclxuICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxyXG4gICAgPlxyXG4gICAgPC9uZ3gtdHJlZXZpZXc+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwidHJlZXZpZXcgJiYgdHJlZVZpZXdBc0Zvcm1Db250cm9sXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRyZWUtdmlldy1mb3JtLWNvbnRyb2xcIj5cclxuICAgIDxuZ3gtdHJlZXZpZXdcclxuICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxyXG4gICAgICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICBbaXRlbXNdPVwiaXRlbXNcIlxyXG4gICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICA+XHJcbiAgICA8L25neC10cmVldmlldz5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
328
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC9kcm9wZG93bi10cmVldmlldy1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0L2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBRVQsaUJBQWlCLEdBR2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUNMLFlBQVksRUFFWixjQUFjLEVBQ2QseUJBQXlCLEVBQ3pCLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBSTdFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQVFILE1BQU0sT0FBTyx1QkFBdUI7SUFtRGxDLGlFQUFpRTtJQUVqRSxZQUNTLElBQWtCLEVBQ2pCLFdB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QUErQyxDQUFDO29CQUM1RCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxDQUFDO2lCQUM3RTt3U0FVQyxRQUFRO3NCQURQLEtBQUs7Z0JBSU4scUJBQXFCO3NCQURwQixLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFSyxZQUFZO3NCQUFwQixLQUFLO2dCQUVDLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSx5QkFBeUI7c0JBQWxDLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFFUCx5QkFBeUI7c0JBRHhCLFNBQVM7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBWaWV3Q2hpbGQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgaXNOaWwgfSBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCB7XHJcbiAgVHJlZXZpZXdJMThuLFxyXG4gIFRyZWV2aWV3SXRlbSxcclxuICBUcmVldmlld0NvbmZpZyxcclxuICBEcm9wZG93blRyZWV2aWV3Q29tcG9uZW50LFxyXG4gIFRyZWV2aWV3SGVscGVyLFxyXG59IGZyb20gXCJuZ3gtdHJlZXZpZXdcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVwYXJ0bWVudE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L3NlcnZpY2VzL2RlcGFydG1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlcGFydG1lbnRBcGlTZXJ2aWNlIH0gZnJvbSBcIi4uL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L3NlcnZpY2VzL2RlcGFydG1lbnQtYXBpLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4gfSBmcm9tIFwiLi9kcm9wZG93bi10cmVldmlldy1zZWxlY3QtaTE4blwiO1xyXG5pbXBvcnQgeyBSb2xlc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy9yb2xlcy9yb2xlcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgR2xvYmFsQWRtaW5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy9nbG9iYWwtYWRtaW4uc2VydmljZVwiO1xyXG4vKipcclxuICogQSB0cmVlIHZpZXcgc2VsZWN0b3IgY29tcG9uZW50IHRoYXQgY2FuIGJlIHVzZWQgaW4gcmVhY3RpdmUgYW5kIHRlbXBsYXRlIGRyaXZlbiBmb3JtcyxcclxuICogaXQgY2FuIGJlIGEgZmxhdCB0cmVlIG9yIGEgZHJvcGRvd25cclxuICogQHRpdGxlXHJcbiAqIFRyZWUgdmlldyBzZWxlY3RvclxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiA8YXBwLWR5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3RcclxuICogW3RyZWV2aWV3XT1cImZhbHNlXCJcclxuICogW211bHRpcGxlXT1cImZhbHNlXCJcclxuICogW2l0ZW1zXT1cIml0ZW1zVHJlZVwiXHJcbiAqICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gKiBbKHZhbHVlKV09XCJzZWxlY3RlZFZhbHVlXCJcclxuICogPlxyXG4gKiA8L2FwcC1keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0PlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLWR5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3RcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVHJlZXZpZXdJMThuLCB1c2VDbGFzczogRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG4gfV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmVldmlld1NlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIG11bHRpcGxlU2VsZWN0aW9uID0gW107XHJcbiAgc2VsZWN0ZWRJdGVtO1xyXG4gIHNlbGVjdGVkUGFyZW50V2l0aENoaWxkID0gW107XHJcbiAgc2hvd1BsdXMgPSBmYWxzZTtcclxuICBwcmVTZWxlY3RlZCA9IFtdO1xyXG4gIG15RGVwYXJ0bWVudDogYW55O1xyXG4gIC8qKiBpcyB0cmVlIFZpZXcgb3IgZHJvcGRvd24gdmlldyAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgdHJlZXZpZXcgPSBmYWxzZTtcclxuICAvKiogdXNlIHRyZWUgdmlldyBpbnNpZGUgZm9ybSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgdHJlZVZpZXdBc0Zvcm1Db250cm9sID0gZmFsc2U7XHJcbiAgLyoqIENvbmZpZyBvYmplY3QgKi9cclxuICBASW5wdXQoKSBjb25maWc6IFRyZWV2aWV3Q29uZmlnO1xyXG4gIC8qKiBJdGVtcyB0cmVlICovXHJcbiAgQElucHV0KCkgaXRlbXM6IFRyZWV2aWV3SXRlbVtdO1xyXG4gIC8qKiBTZWxlY3RlZCB2YWx1ZSAqL1xyXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XHJcbiAgLyoqIGNhbiBzZWxlY3QgbXVsdGlwbGUgKi9cclxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBldmVudCBlbWl0dGVkIG9uIHZhbHVlIGNoYW5nZSAqL1xyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIC8qKiBldmVudCBlbWl0dGVkIG9uIHBsdXMgYnV0dG9uIGNsaWNrZWQgKGZvciBkZXBhcnRtZW50IG1hbmFnZW1lbnQpICovXHJcbiAgQE91dHB1dCgpIHBsdXNDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgLyoqIGV2ZW50IGVtaXR0ZWQgb24gcGx1cyBidXR0b24gY2xpY2tlZCAoZm9yIGRlcGFydG1lbnQgbWFuYWdlbWVudCkgKi9cclxuICBASW5wdXQoKSBkZWZhdWx0U2VsZWN0ID0gZmFsc2U7XHJcbi8qKiBjdXN0b20gcGFnZSBwcm92aWRlciB0byBnZXQgZGVwYXJ0bWVudCBuZXN0ZWQgdHJlZSBmcm9tIGl0IGNhbiBiZSBwYXNzZWQgZnJvbSBvdXRzaWRlIG9yIG5vdCBwYXNzZWQgYW5kIHVzZSB0aGUgZGVmdWx0ZSB2YWx1ZSAqL1xyXG4gIEBJbnB1dCgpIHBwX2RlcGFydG1lbnROZXN0ZWRUcmVlOyBcclxuICAvKiogdXNlIG91dHNpZGUgY3VzdG9tIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIGluZXIgZnVuY3Rpb24gICovXHJcbiAgQElucHV0KCkgdXNlQ3VzdG9tQWRkRWRpdEFjdGlvbiA9IGZhbHNlO1xyXG4gICAgLyoqIGN1c3RvbSBwcmVmaXggdG8gYmUgdXNlZCBmb3IgYWRhcHRpbmcgZGF0YSBjb21pbmcgZnJvbSBhcGkgKi9cclxuICAgIEBJbnB1dCgpIGN1c3RvbVByZWZpeDtcclxuICAvKiogY3VzdG9tIHBhcmVudCBwcm9wZXJ0eSBuYW1lIHRvIGJlIHBhc3NlZCBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIGN1c3RvbVBhcmVudFByb3BlcnR5O1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyO1xyXG4gIC8qKiBkaXNwbGF5IGlucHV0IERlcFR5cGVlIGluIGFkZCBkaWFsb2cgb2YgZGVwYXJ0ZW1lbnQgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5RGVwVHlwZWU7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0ICgpIGRpc3BsYXlJc0FsbG93UmVjRXh0ZXJuYWw7XHJcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAVmlld0NoaWxkKERyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQ6IERyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQ7XHJcbiAgZmlsdGVyVGV4dDogc3RyaW5nO1xyXG4gIGFyYWJpYyA9IGZhbHNlO1xyXG4gIGxhbmd1YWdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgb25EZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIHByaXZhdGUgZHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG46IERyb3Bkb3duVHJlZXZpZXdTZWxlY3RJMThuO1xyXG5cclxuICAvLyB0aGlzIGNvbXBvbmVudCBpcyB1c2VkIGluIHR3byBwbGFjZXMgdGhlIGZsYWcgaXMgdGhpcy50cmVldmlld1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpMThuOiBUcmVldmlld0kxOG4sXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRlcGFydG1lbnRBcGlTZXJ2aWNlOiBEZXBhcnRtZW50QXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgZGVwYXJ0bWVudE1hbmFnbWVudDogRGVwYXJ0bWVudE1hbmFnZW1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb2xlc1NlcnZpY2U6IFJvbGVzU2VydmljZSxcclxuICAgIHByaXZhdGUgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdsb2JhbEFkbWluIDogR2xvYmFsQWRtaW5TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IFRyZWV2aWV3Q29uZmlnLmNyZWF0ZSh7XHJcbiAgICAgIGhhc0FsbENoZWNrQm94OiBmYWxzZSxcclxuICAgICAgaGFzQ29sbGFwc2VFeHBhbmQ6IGZhbHNlLFxyXG4gICAgICBoYXNGaWx0ZXI6IHRydWUsXHJcbiAgICAgIG1heEhlaWdodDogMjAwLFxyXG4gICAgICBkZWNvdXBsZUNoaWxkRnJvbVBhcmVudDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4biA9IGkxOG4gYXMgRHJvcGRvd25UcmVldmlld1NlbGVjdEkxOG47XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb24uaXNBcmFiaWNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuYXJhYmljID0gcmVzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLml0ZW1zICYmIHRoaXMudHJlZXZpZXcpIHtcclxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZEl0ZW0oKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy50cmVldmlldyAmJiAhdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAvLyB0aGlzLiBmdW5jdGlvbiBpcyB0byBzZXQgdWkgd2l0aCBwcmUgc2VsZWN0ZWQgdmFsdWVcclxuICAgICAgLy8gZGVsYXkgdG8gbWFrZSBzdXJlIHRoYXQgcGFnZSBnZXQgdGhlIHZhbHVlIGFuZCBzZW5kIGl0IHRvIGhlcmVcclxuICAgICAgLy8gd2UgdXNlIHRoZSB2YWx1ZSBzZW50IHRvIGhlcmUgYW5kIHNlYXJjaCBmb3IgaXRzIGl0ZW0gb24gb3VyIGl0ZW1zIGFuZCBzZXQgaXQgYXMgdGhlIHNlbGVjdGVkIGl0ZW1cclxuICAgICAgdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICB0aGlzLnNldFByZVNlbGV0ZWRJdGVtKGl0ZW0sIHRoaXMudmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgIXRoaXMudHJlZXZpZXcgJiZcclxuICAgICAgdGhpcy5tdWx0aXBsZSAmJlxyXG4gICAgICB0aGlzLnZhbHVlICYmXHJcbiAgICAgIHRoaXMudmFsdWUubGVuZ3RoID4gMFxyXG4gICAgKSB7XHJcbiAgICAgIC8vIHRoaXMucHJlU2VsZWN0ZWQgPSB0aGlzLnZhbHVlO1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdGhpcy52YWx1ZTtcclxuICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3Rpb25MZW5ndGggPVxyXG4gICAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoO1xyXG4gICAgICB0aGlzLmRyb3Bkb3duVHJlZXZpZXdDb21wb25lbnQub25TZWxlY3RlZENoYW5nZShbXHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGgsXHJcbiAgICAgIF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UHJlU2VsZXRlZEl0ZW0oaXRlbSwgY29tcGFyZVdpdGhWYWx1ZSkge1xyXG4gICAgaWYgKChpdGVtLnZhbHVlID09PSBjb21wYXJlV2l0aFZhbHVlKSB8fCAoaXRlbS52YWx1ZS50aXRsZSA9PT0gY29tcGFyZVdpdGhWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5zZWxlY3QoaXRlbSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChpdGVtLmludGVybmFsQ2hpbGRyZW4pIHtcclxuICAgICAgICBpdGVtLmludGVybmFsQ2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRQcmVTZWxldGVkSXRlbShjaGlsZCwgY29tcGFyZVdpdGhWYWx1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdERlZmF1bHQoKSB7XHJcbiAgICBsZXQgb3B0aW9uID0ge1xyXG4gICAgICAnaXNHbG9iYWxBZG1pbicgOiB0aGlzLmdsb2JhbEFkbWluLmlzR2xvYmFsQWRtaW4sXHJcbiAgICAgICdhY3RpdmVUZW5hbnQnIDogdGhpcy5nbG9iYWxBZG1pbi5hY3RpdmVUZW5hbnQsXHJcbiAgICAgICd0ZW5hbnRJZCc6IHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy50ZW5hbnRJZFxyXG4gICAgfTtcclxuICAgIHRoaXMubXlEZXBhcnRtZW50ID0gdGhpcy5yb2xlc1NlcnZpY2UuZ2V0VXNlckRlcGFydG1lbnQoXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXIsXHJcbiAgICAgICdjdHNfcm9sZV8nLFxyXG4gICAgICBvcHRpb25cclxuICAgICk7XHJcbiAgICB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICB0aGlzLnNldFByZVNlbGV0ZWRJdGVtKGl0ZW0sIHRoaXMubXlEZXBhcnRtZW50KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZWxlY3QoaXRlbTogVHJlZXZpZXdJdGVtKTogdm9pZCB7XHJcbiAgICAvLyBpZiAoIWl0ZW0uY2hpbGRyZW4pIHtcclxuICAgIHRoaXMuc2VsZWN0SXRlbShpdGVtKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRJdGVtKCk6IHZvaWQge1xyXG4gICAgaWYgKCFpc05pbCh0aGlzLml0ZW1zKSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBUcmVldmlld0hlbHBlci5maW5kSXRlbUluTGlzdChcclxuICAgICAgICB0aGlzLml0ZW1zLFxyXG4gICAgICAgIHRoaXMudmFsdWVcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zZWxlY3RJdGVtKHNlbGVjdGVkSXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdEl0ZW0oaXRlbTogVHJlZXZpZXdJdGVtKTogdm9pZCB7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsaWNrKCk7XHJcbiAgICBpZiAodGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3RlZEl0ZW0gIT09IGl0ZW0pIHtcclxuICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3RlZEl0ZW0gPSBpdGVtO1xyXG4gICAgICBpZiAodGhpcy5kcm9wZG93blRyZWV2aWV3Q29tcG9uZW50KSB7XHJcbiAgICAgICAgdGhpcy5kcm9wZG93blRyZWV2aWV3Q29tcG9uZW50Lm9uU2VsZWN0ZWRDaGFuZ2UoW2l0ZW1dKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICBpZiAodGhpcy50cmVldmlldykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtLnZhbHVlO1xyXG4gICAgICAgICAgLy8gdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGl0ZW0udmFsdWUudGl0bGUpO1xyXG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaXRlbS52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdE11bHRpcGxlKGUsIGl0ZW06IFRyZWV2aWV3SXRlbSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZCA9IFtdO1xyXG4gICAgdGhpcy5nZXRDaGlsZGVyblZhbHVlcyhpdGVtKTtcclxuICAgIGlmIChlKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmNvbmNhdChcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50V2l0aENoaWxkXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5maWx0ZXIoKGUpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFBhcmVudFdpdGhDaGlsZC5pbmRleE9mKGUpIDwgMDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kcm9wZG93blRyZWV2aWV3U2VsZWN0STE4bi5zZWxlY3Rpb25MZW5ndGggPVxyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmxlbmd0aDtcclxuICAgIHRoaXMuZHJvcGRvd25UcmVldmlld0NvbXBvbmVudC5vblNlbGVjdGVkQ2hhbmdlKFtcclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGgsXHJcbiAgICBdKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLm11bHRpcGxlU2VsZWN0aW9uKTtcclxuICB9XHJcbiAgZ2V0Q2hpbGRlcm5WYWx1ZXMoaXRlbTogVHJlZXZpZXdJdGVtKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUGFyZW50V2l0aENoaWxkLnB1c2goaXRlbS52YWx1ZSk7XHJcbiAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xyXG4gICAgICBpdGVtLmNoaWxkcmVuLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICB0aGlzLmdldENoaWxkZXJuVmFsdWVzKGl0ZW0pO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSByZXR1cm47XHJcbiAgfVxyXG5cclxuICBvblBsdXNDbGlja2VkKGU6IE1vdXNlRXZlbnQsIGl0ZW06IFRyZWV2aWV3SXRlbSk6IHZvaWQge1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIHRoaXMucGx1c0NsaWNrZWQuZW1pdChpdGVtLnZhbHVlLnVpZCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGUgIGNsaWNrIGV2ZW50XHJcbiAgICogQHBhcmFtIGFjdGlvbiBuYW1lIG9mIGFjdGlvbiAoYWRkICwgdXBkYXRlKVxyXG4gICAqIEBwYXJhbSBpdGVtIFRyZWV2aWV3SXRlbVxyXG4gICAqL1xyXG4gIG9uQWN0aW9uKGU6IE1vdXNlRXZlbnQsIGFjdGlvbjogc3RyaW5nLCBpdGVtOiBUcmVldmlld0l0ZW0pIHtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICBpZiAoYWN0aW9uID09PSBcImFkZFwiKSB7XHJcbiAgICAgICAgLy8gZW1pdCBhY3Rpb24gdG8gb3V0c2lkZSB0byBleGVjdXRlIGZ1bmN0aW9uIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50IFxyXG4gICAgICAgIGlmKHRoaXMudXNlQ3VzdG9tQWRkRWRpdEFjdGlvbil7XHJcbiAgICAgICAgICB0aGlzLmFjdGlvbkNsaWNrZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGFjdGlvbiA6IGFjdGlvbixcclxuICAgICAgICAgICAgaXRlbSA6IGl0ZW1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5kZXBhcnRtZW50TWFuYWdtZW50XHJcbiAgICAgICAgICAgIC5vcGVuRm9ybURpYWxvZyhpdGVtLnZhbHVlLnVpZCwgZmFsc2UsdGhpcy5kaXNwbGF5SXNBbGxvd1JlY0V4dGVybmFsLHRoaXMuZGlzcGxheURlcFR5cGVlLCBpdGVtLnZhbHVlLnRpdGxlLCBpdGVtKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZShpdGVtKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoYWN0aW9uID09PSBcInVwZGF0ZVwiKSB7XHJcbiAgICAgICAgaWYodGhpcy51c2VDdXN0b21BZGRFZGl0QWN0aW9uKXtcclxuICAgICAgICAvLyBlbWl0IGFjdGlvbiB0byBvdXRzaWRlIHRvIGV4ZWN1dGUgZnVuY3Rpb24gZnJvbSBvdXRzaWRlIHRoZSBjb21wb25lbnQgXHJcbiAgICAgICAgICB0aGlzLmFjdGlvbkNsaWNrZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGFjdGlvbiA6IGFjdGlvbixcclxuICAgICAgICAgICAgaXRlbSA6IGl0ZW1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5kZXBhcnRtZW50TWFuYWdtZW50XHJcbiAgICAgICAgICAgIC5vcGVuRm9ybURpYWxvZyhpdGVtLnZhbHVlLnVpZCwgdHJ1ZSx0aGlzLmRpc3BsYXlJc0FsbG93UmVjRXh0ZXJuYWwsdGhpcy5kaXNwbGF5RGVwVHlwZWUpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMudXBkYXRlKGl0ZW0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2UuZ2V0RGVwYXJ0bWVudFRyZWUoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2UucmVjdXJzaXZlRmlsbChcclxuICAgICAgICAgICAgICAgICAgcmVzLmVudHJpZXMgLCBcclxuICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkICwgXHJcbiAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCAsIFxyXG4gICAgICAgICAgICAgICAgICB1bmRlZmluZWQgLCBcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21QcmVmaXgpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICpkdWUgdG8gdGhlIGJ1c2luZXNzIHJlcXVpcmVtZW50cyB3aGljaCBzdGF0ZWQgdGhhdCBtb3JlIHRoYW4gMyBsZXZlbHMgd2lsbCBleGlzdGVkIHRoZSBjdXJyZW50IGFwaSBzdXBwb3J0IG9ubHkgMyBsZXZlbHMgc28gKndlIGhhdmUgdG8gaW5qZWN0IDMgbmV3IGxldmVscyBvbiBlYWNoIHRyZWUgZW5kXHJcbiAgICogQHBhcmFtIGl0ZW0gVHJlZXZpZXdJdGVtXHJcbiAgICovXHJcbiAgb25Db2xsYXBzZWQoaXRlbTogVHJlZXZpZXdJdGVtKSB7XHJcbiAgICBpdGVtLmNvbGxhcHNlZCA9ICFpdGVtLmNvbGxhcHNlZDtcclxuICAgIGlmIChpdGVtLnZhbHVlLmxldmVsID09PSAyKSB7XHJcbiAgICAgIHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2VcclxuICAgICAgICAuZ2V0RGVwYXJ0bWVudE5lc3RlZFRyZWUoXHJcbiAgICAgICAgICBpdGVtLnZhbHVlLnRpdGxlICwgXHJcbiAgICAgICAgICB0aGlzLnBwX2RlcGFydG1lbnROZXN0ZWRUcmVlID8gdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSA6ICdQUF9EZXBhcnRtZW50JyxcclxuICAgICAgICAgIHRoaXMuY3VzdG9tUGFyZW50UHJvcGVydHkpXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IHRoaXMuZGVwYXJ0bWVudEFwaVNlcnZpY2UucmVjdXJzaXZlRmlsbChcclxuICAgICAgICAgICAgICByZXMuZW50cmllcyAsIFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCAsIFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCAsIFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCAsIFxyXG4gICAgICAgICAgICAgIHRoaXMuY3VzdG9tUHJlZml4XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge31cclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKmR1ZSB0byB0aGUgYnVzaW5lc3MgcmVxdWlyZW1lbnRzIHdoaWNoIHN0YXRlZCB0aGF0IG1vcmUgdGhhbiAzIGxldmVscyB3aWxsIGV4aXN0ZWQgdGhlIGN1cnJlbnQgYXBpIHN1cHBvcnQgb25seSAzIGxldmVscyBzbyAqd2UgaGF2ZSB0byBpbmplY3QgMyBuZXcgbGV2ZWxzIG9uIGVhY2ggdHJlZSBlbmRcclxuICAgKiBAcGFyYW0gaXRlbSBUcmVldmlld0l0ZW1cclxuICAgKi9cclxuICB1cGRhdGUoaXRlbSkge1xyXG4gICAgdGhpcy5kZXBhcnRtZW50QXBpU2VydmljZVxyXG4gICAgICAuZ2V0RGVwYXJ0bWVudE5lc3RlZFRyZWUoXHJcbiAgICAgICAgaXRlbS52YWx1ZS50aXRsZSAsIFxyXG4gICAgICAgIHRoaXMucHBfZGVwYXJ0bWVudE5lc3RlZFRyZWUgPyB0aGlzLnBwX2RlcGFydG1lbnROZXN0ZWRUcmVlIDogJ1BQX0RlcGFydG1lbnQnLFxyXG4gICAgICAgIHRoaXMuY3VzdG9tUGFyZW50UHJvcGVydHkpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgIGl0ZW0uY2hpbGRyZW4gPSB0aGlzLmRlcGFydG1lbnRBcGlTZXJ2aWNlLnJlY3Vyc2l2ZUZpbGwoXHJcbiAgICAgICAgICAgIGRhdGEuZW50cmllcyxcclxuICAgICAgICAgICAgMCxcclxuICAgICAgICAgICAgdHJ1ZSxcclxuICAgICAgICAgICAgdHJ1ZSxcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21QcmVmaXhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyKSA9PiB7fVxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGVcclxuICAjaXRlbVRlbXBsYXRlXHJcbiAgbGV0LWl0ZW09XCJpdGVtXCJcclxuICBsZXQtb25Db2xsYXBzZUV4cGFuZD1cIm9uQ29sbGFwc2VFeHBhbmRcIlxyXG4gIGxldC1vbkNoZWNrZWRDaGFuZ2U9XCJvbkNoZWNrZWRDaGFuZ2VcIlxyXG4+XHJcbiAgPCEtLSBzaW5nbGUgLS0+XHJcbiAgPGRpdiAqbmdJZj1cIiF0cmVldmlldyAmJiAhbXVsdGlwbGVcIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ0ZXh0LW5vd3JhcCByb3ctaXRlbVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpdGVtLnZhbHVlID09PSB0aGlzLnZhbHVlIH1cIlxyXG4gICAgPlxyXG4gICAgICA8aVxyXG4gICAgICAgICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ29sbGFwc2VFeHBhbmQoKVwiXHJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICBbbmdTd2l0Y2hdPVwiaXRlbS5jb2xsYXBzZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQte3sgYXJhYmljID8gJ2xlZnQnIDogJ3JpZ2h0JyB9fS1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LWRvd24tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICA+PC9zcGFuPlxyXG4gICAgICA8L2k+XHJcbiAgICAgIDwhLS0gPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIj57e1xyXG4gICAgICAgIGl0ZW0udGV4dFxyXG4gICAgICB9fTwvbGFiZWw+IC0tPlxyXG4gICAgICA8bGFiZWwgKm5nSWY9XCJpdGVtLmRpc2FibGVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+e3tcclxuICAgICAgICBpdGVtLnRleHRcclxuICAgICAgfX08L2xhYmVsPlxyXG4gICAgICA8bGFiZWwgKm5nSWY9XCIhaXRlbS5kaXNhYmxlZFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIj57e1xyXG4gICAgICAgIGl0ZW0udGV4dFxyXG4gICAgICB9fTwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8IS0tIE11bHRpcGxlIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCIhdHJlZXZpZXcgJiYgbXVsdGlwbGVcIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ0ZXh0LW5vd3JhcCByb3ctaXRlbVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpdGVtLnZhbHVlID09PSB0aGlzLnZhbHVlIH1cIlxyXG4gICAgPlxyXG4gICAgICA8aVxyXG4gICAgICAgICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ29sbGFwc2VFeHBhbmQoKVwiXHJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICBbbmdTd2l0Y2hdPVwiaXRlbS5jb2xsYXBzZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQte3sgYXJhYmljID8gJ2xlZnQnIDogJ3JpZ2h0JyB9fS1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LWRvd24tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICA+PC9zcGFuPlxyXG4gICAgICA8L2k+XHJcbiAgICAgIDwhLS0gPGlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJtdWx0aXBsZS1jaGVja0JveFwiXHJcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICBbY2hlY2tlZF09XCJtdWx0aXBsZVNlbGVjdGlvbi5pbmNsdWRlcyhpdGVtLnZhbHVlKVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RNdWx0aXBsZSgkZXZlbnQudGFyZ2V0LmNoZWNrZWQsIGl0ZW0pXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj57eyBpdGVtLnRleHQgfX08L2xhYmVsPiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm11bHRpcGxlLXRyZWV2aWV3XCI+XHJcbiAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwibXVsdGlwbGVTZWxlY3Rpb24uaW5jbHVkZXMoaXRlbS52YWx1ZSlcIlxyXG4gICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RNdWx0aXBsZSgkZXZlbnQuY2hlY2tlZCwgaXRlbSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuPiB7eyBpdGVtLnRleHQgfX0gPC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gdHJlZVZpZXcgLS0+XHJcbiAgPGRpdiAqbmdJZj1cInRyZWV2aWV3ICYmICF0cmVlVmlld0FzRm9ybUNvbnRyb2xcIiBjbGFzcz1cInRyZWUtdmlldy1jb250YWluZXJcIj5cclxuICAgIDxkaXZcclxuICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJGaWVsZC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnXCJcclxuICAgICAgKG1vdXNlbGVhdmUpPVwiaG92ZXJGaWVsZC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnXCJcclxuICAgICAgY2xhc3M9XCJ0ZXh0LW5vd3JhcCByb3ctaXRlbSB0cmVldmlldy1yb3dcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBpdGVtLnZhbHVlID09IHNlbGVjdGVkSXRlbSB9XCJcclxuICAgID5cclxuICAgICAgPGlcclxuICAgICAgICAqbmdJZj1cIml0ZW0uY2hpbGRyZW5cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNvbGxhcHNlZChpdGVtKVwiXHJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICBbbmdTd2l0Y2hdPVwiaXRlbS5jb2xsYXBzZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCJcclxuICAgICAgICAgIGNsYXNzPVwiYmkgYmktY2FyZXQte3sgYXJhYmljID8gJ2xlZnQnIDogJ3JpZ2h0JyB9fS1maWxsIGNhcmV0LWljb25cIlxyXG4gICAgICAgID48L3NwYW4+XHJcblxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgY2xhc3M9XCJiaSBiaS1jYXJldC1kb3duLWZpbGwgY2FyZXQtaWNvblwiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgPC9pPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsLXRyZWV2aWV3XCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiXHJcbiAgICAgICAgPnt7IGl0ZW0udGV4dCB9fVxyXG4gICAgICAgIDxzcGFuICNob3ZlckZpZWxkIGNsYXNzPVwiaG92ZXJGaWVsZFwiPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0uZWRpdCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25BY3Rpb24oJGV2ZW50LCAndXBkYXRlJywgaXRlbSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJiaSBiaS1wZW5jaWxcIj48L2xpPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwie3tcclxuICAgICAgICAgICAgICAnZGVwYXJ0bWVudF9tYW5hZ2VtZW50LmZvcm0udG9vbFRpcF9tZXNzYWdlJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbigkZXZlbnQsICdhZGQnLCBpdGVtKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImJpIGJpLXBsdXNcIj48L2xpPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9sYWJlbD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gICAgPCEtLSB0cmVlVmlldyBhcyBmb3JtIGNvbnRyb2wgLS0+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidHJlZXZpZXcgJiYgdHJlZVZpZXdBc0Zvcm1Db250cm9sXCIgY2xhc3M9XCJ0cmVlLXZpZXctY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInRleHQtbm93cmFwIHJvdy1pdGVtIHRyZWV2aWV3LXJvdy1mb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NlbGVjdGVkLWZvcm0tY29udHJvbCc6IGl0ZW0udmFsdWUgPT0gc2VsZWN0ZWRJdGVtIH1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25Db2xsYXBzZWQoaXRlbSlcIlxyXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgIFtuZ1N3aXRjaF09XCJpdGVtLmNvbGxhcHNlZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cInRydWVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LXt7IGFyYWJpYyA/ICdsZWZ0JyA6ICdyaWdodCcgfX0tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICAgID48L3NwYW4+XHJcbiAgXHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJpIGJpLWNhcmV0LWRvd24tZmlsbCBjYXJldC1pY29uXCJcclxuICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPC9pPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwtdHJlZXZpZXdcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCJcclxuICAgICAgICAgID57eyBpdGVtLnRleHQgfX1cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGVcclxuICAjaGVhZGVyVGVtcGxhdGVcclxuICBsZXQtY29uZmlnPVwiY29uZmlnXCJcclxuICBsZXQtaXRlbT1cIml0ZW1cIlxyXG4gIGxldC1vbkNvbGxhcHNlRXhwYW5kPVwib25Db2xsYXBzZUV4cGFuZFwiXHJcbiAgbGV0LW9uQ2hlY2tlZENoYW5nZT1cIm9uQ2hlY2tlZENoYW5nZVwiXHJcbiAgbGV0LW9uRmlsdGVyVGV4dENoYW5nZT1cIm9uRmlsdGVyVGV4dENoYW5nZVwiXHJcbj5cclxuICA8ZGl2ICpuZ0lmPVwiY29uZmlnLmhhc0ZpbHRlclwiIGNsYXNzPVwicm93IHJvdy1maWx0ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaTE4bi5nZXRGaWx0ZXJQbGFjZWhvbGRlcihwbGFjZWhvbGRlcilcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyVGV4dFwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25GaWx0ZXJUZXh0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cImNvbmZpZy5oYXNBbGxDaGVja0JveCB8fCBjb25maWcuaGFzQ29sbGFwc2VFeHBhbmRcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICA8bGFiZWwgKm5nSWY9XCJjb25maWcuaGFzQWxsQ2hlY2tCb3hcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCI+XHJcbiAgICAgICAgPHN0cm9uZz57eyBpMThuLmdldEFsbENoZWNrYm94VGV4dCgpIH19PC9zdHJvbmc+XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICAgIDxsYWJlbFxyXG4gICAgICAgICpuZ0lmPVwiY29uZmlnLmhhc0NvbGxhcHNlRXhwYW5kXCJcclxuICAgICAgICBjbGFzcz1cImZsb2F0LXJpZ2h0XCJcclxuICAgICAgICAoY2xpY2spPVwib25Db2xsYXBzZUV4cGFuZCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpXHJcbiAgICAgICAgICBbdGl0bGVdPVwiaTE4bi5nZXRUb29sdGlwQ29sbGFwc2VFeHBhbmRUZXh0KGl0ZW0uY29sbGFwc2VkKVwiXHJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgW25nU3dpdGNoXT1cIml0ZW0uY29sbGFwc2VkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIGNsYXNzPVwiYmkgYmktYXJyb3dzLWFuZ2xlLWV4cGFuZFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktYXJyb3dzLWFuZ2xlLWNvbnRyYWN0XCJcclxuICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPC9pPlxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGEgKm5nSWY9XCJkZWZhdWx0U2VsZWN0XCIgY2xhc3M9XCJzZWxlY3QtZGVmYXVsdFwiIChjbGljayk9XCJzZWxlY3REZWZhdWx0KClcIj57eydkZXBhcnRtZW50X21hbmFnZW1lbnQuc2VsZWN0RGVmYXVsdCd8IHRyYW5zbGF0ZX19PC9hPlxyXG4gIDxkaXYgKm5nSWY9XCJjb25maWcuaGFzRGl2aWRlclwiIGNsYXNzPVwiZHJvcGRvd24tZGl2aWRlclwiIFtuZ0NsYXNzXT1cInsnZHJvcGRvd24tZGl2aWRlci1ub01hcmdpbic6IGRlZmF1bHRTZWxlY3R9XCI+PC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiIXRyZWV2aWV3ICYmICFtdWx0aXBsZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkcm9wZG93bi13cmFwcGVyXCI+XHJcbiAgICA8bmd4LWRyb3Bkb3duLXRyZWV2aWV3XHJcbiAgICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgICAgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCJcclxuICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcclxuICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxyXG4gICAgPlxyXG4gIDwvbmd4LWRyb3Bkb3duLXRyZWV2aWV3PlxyXG4gIDxkaXYgY2xhc3M9XCJkaXNhYmxlLWVmZmVjdFwiICpuZ0lmPVwiZGlzYWJsZWRcIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhdHJlZXZpZXcgJiYgbXVsdGlwbGVcIj5cclxuICA8ZGl2IGNsYXNzPVwibXVsdGlwbGUtdHJlZS12aWV3IGRyb3Bkb3duLXdyYXBwZXJcIj5cclxuICAgIDxuZ3gtZHJvcGRvd24tdHJlZXZpZXdcclxuICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxyXG4gICAgICBbaXRlbXNdPVwiaXRlbXNcIlxyXG4gICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICA+XHJcbiAgICA8L25neC1kcm9wZG93bi10cmVldmlldz5cclxuICA8ZGl2IGNsYXNzPVwiZGlzYWJsZS1lZmZlY3RcIiAqbmdJZj1cImRpc2FibGVkXCI+PC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyZWV2aWV3ICYmICF0cmVlVmlld0FzRm9ybUNvbnRyb2xcIj5cclxuICA8ZGl2IGNsYXNzPVwidHJlZS12aWV3XCI+XHJcbiAgICA8bmd4LXRyZWV2aWV3XHJcbiAgICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgICAgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCJcclxuICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcclxuICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxyXG4gICAgPlxyXG4gICAgPC9uZ3gtdHJlZXZpZXc+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwidHJlZXZpZXcgJiYgdHJlZVZpZXdBc0Zvcm1Db250cm9sXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRyZWUtdmlldy1mb3JtLWNvbnRyb2xcIj5cclxuICAgIDxuZ3gtdHJlZXZpZXdcclxuICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxyXG4gICAgICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICBbaXRlbXNdPVwiaXRlbXNcIlxyXG4gICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICA+XHJcbiAgICA8L25neC10cmVldmlldz5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|