@microsoft/windows-admin-center-sdk 4.167.0 → 4.260.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/angular/assets/strings/cs-CZ/strings.json +1 -1
- package/angular/assets/strings/de-DE/strings.json +1 -1
- package/angular/assets/strings/es-ES/strings.json +1 -1
- package/angular/assets/strings/fr-FR/strings.json +1 -1
- package/angular/assets/strings/hu-HU/strings.json +1 -1
- package/angular/assets/strings/id-ID/strings.json +1 -1
- package/angular/assets/strings/it-IT/strings.json +1 -1
- package/angular/assets/strings/ja-JP/strings.json +1 -1
- package/angular/assets/strings/ko-KR/strings.json +1 -1
- package/angular/assets/strings/nl-NL/strings.json +1 -1
- package/angular/assets/strings/pl-PL/strings.json +1 -1
- package/angular/assets/strings/pt-BR/strings.json +1 -1
- package/angular/assets/strings/pt-PT/strings.json +1 -1
- package/angular/assets/strings/ru-RU/strings.json +1 -1
- package/angular/assets/strings/strings.json +1 -1
- package/angular/assets/strings/sv-SE/strings.json +1 -1
- package/angular/assets/strings/tr-TR/strings.json +1 -1
- package/angular/assets/strings/zh-CN/strings.json +1 -1
- package/angular/assets/strings/zh-TW/strings.json +1 -1
- package/angular/esm2020/src/controls/accordion/accordion-panel/accordion-panel.component.mjs +36 -12
- package/angular/esm2020/src/controls/copilot/copilot.component.mjs +55 -0
- package/angular/esm2020/src/controls/copilot/copilot.module.mjs +25 -0
- package/angular/esm2020/src/controls/copilot/index.mjs +3 -0
- package/angular/esm2020/src/controls/data-table/data-table.component.mjs +7 -9
- package/angular/esm2020/src/controls/details/details.component.mjs +62 -25
- package/angular/esm2020/src/controls/details/details.module.mjs +5 -1
- package/angular/esm2020/src/controls/dialog/dialog.component.mjs +35 -23
- package/angular/esm2020/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.mjs +59 -0
- package/angular/esm2020/src/controls/form/form-field/array/array-form-field.component.mjs +24 -35
- package/angular/esm2020/src/controls/form/form-field/form-field-accessibility-manager-base.service.mjs +105 -0
- package/angular/esm2020/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.mjs +38 -0
- package/angular/esm2020/src/controls/form/form-field/list/list-form-field.component.mjs +56 -38
- package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.mjs +54 -0
- package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.mjs +67 -67
- package/angular/esm2020/src/controls/form/forms.module.mjs +19 -2
- package/angular/esm2020/src/controls/guided-panel/guided-pane/guided-pane.component.mjs +12 -3
- package/angular/esm2020/src/controls/index.mjs +4 -1
- package/angular/esm2020/src/controls/page-alert-bar/page-alert-bar.component.mjs +4 -4
- package/angular/esm2020/src/controls/snap-in-extension/snap-in-extension.component.mjs +1 -1
- package/angular/esm2020/src/controls/summary/index.mjs +4 -0
- package/angular/esm2020/src/controls/summary/summary-item.mjs +83 -0
- package/angular/esm2020/src/controls/summary/summary.component.mjs +391 -0
- package/angular/esm2020/src/controls/summary/summary.module.mjs +37 -0
- package/angular/esm2020/src/controls/summary-group/index.mjs +3 -0
- package/angular/esm2020/src/controls/summary-group/summary-group.component.mjs +84 -0
- package/angular/esm2020/src/controls/summary-group/summary-group.module.mjs +33 -0
- package/angular/esm2020/src/controls/wizard/models/wizard-step-snap-in-output.mjs +1 -1
- package/angular/esm2020/src/controls/wizard-lite/wizard-navigation-button/wizard-navigation-button.component.mjs +3 -3
- package/angular/esm2020/src/data/extension-broker/snap-in-listener.mjs +80 -0
- package/angular/esm2020/src/data/index.mjs +2 -1
- package/angular/esm2020/src/generated/strings.mjs +1 -1
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs +1798 -597
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
- package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs +1679 -597
- package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
- package/angular/src/controls/accordion/accordion-panel/accordion-panel.component.d.ts +13 -4
- package/angular/src/controls/copilot/copilot.component.d.ts +31 -0
- package/angular/src/controls/copilot/copilot.module.d.ts +8 -0
- package/angular/src/controls/copilot/index.d.ts +2 -0
- package/angular/src/controls/details/details.component.d.ts +5 -1
- package/angular/src/controls/details/details.module.d.ts +3 -2
- package/angular/src/controls/dialog/dialog.component.d.ts +5 -1
- package/angular/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.d.ts +38 -0
- package/angular/src/controls/form/form-field/array/array-form-field.component.d.ts +3 -1
- package/angular/src/controls/form/form-field/form-field-accessibility-manager-base.service.d.ts +37 -0
- package/angular/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.d.ts +25 -0
- package/angular/src/controls/form/form-field/list/list-form-field.component.d.ts +12 -2
- package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.d.ts +37 -0
- package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.d.ts +12 -8
- package/angular/src/controls/guided-panel/guided-pane/guided-pane.component.d.ts +4 -0
- package/angular/src/controls/index.d.ts +3 -0
- package/angular/src/controls/summary/index.d.ts +3 -0
- package/angular/src/controls/summary/summary-item.d.ts +105 -0
- package/angular/src/controls/summary/summary.component.d.ts +82 -0
- package/angular/src/controls/summary/summary.module.d.ts +11 -0
- package/angular/src/controls/summary-group/index.d.ts +3 -0
- package/angular/src/controls/summary-group/summary-group.component.d.ts +57 -0
- package/angular/src/controls/summary-group/summary-group.module.d.ts +10 -0
- package/angular/src/controls/wizard/models/wizard-step-snap-in-output.d.ts +1 -1
- package/{core → angular/src}/data/extension-broker/snap-in-listener.d.ts +49 -46
- package/angular/src/data/index.d.ts +1 -0
- package/angular/src/generated/strings.d.ts +11 -0
- package/core/async/cancellation.js +316 -0
- package/core/async/index.js +312 -0
- package/core/async/progress.js +312 -0
- package/core/azure/azure-constants.js +316 -0
- package/core/azure/azure-logging.js +316 -0
- package/core/azure/azure-manager.js +316 -0
- package/core/azure/models/aadAppConfig-data.js +312 -0
- package/core/azure/models/azureArcStatusEnum.js +315 -0
- package/core/azure/models/azureTokenResult-data.js +315 -0
- package/core/azure/resources/deployment-operation-request-body.js +316 -0
- package/core/azure/resources/deployment-operation-response.js +312 -0
- package/core/azure/resources/location-data.js +316 -0
- package/core/azure/resources/resource-group-data.js +316 -0
- package/core/azure/resources/subscription-data.js +316 -0
- package/core/base/data-store/browser-storage-data-store.js +312 -0
- package/core/base/data-store/cached-data-store.js +316 -0
- package/core/base/data-store/data-store.js +312 -0
- package/core/base/data-store/local-data-store.js +312 -0
- package/core/base/data-store/memory-data-store.js +312 -0
- package/core/base/data-store/session-data-store.js +316 -0
- package/core/base/date/date-like.js +315 -0
- package/core/base/date/date-range.js +316 -0
- package/core/base/date/date-time.js +312 -0
- package/core/base/date/date-type.js +312 -0
- package/core/base/date/time-unit.js +316 -0
- package/core/base/decorators/base.js +316 -0
- package/core/base/decorators/debounce.decorators.js +316 -0
- package/core/base/decorators/delay.decorator.js +312 -0
- package/core/base/decorators/yield.decorator.js +312 -0
- package/core/base/environment.js +316 -0
- package/core/base/json.js +316 -0
- package/core/base/msft-sme.mock.js +315 -0
- package/core/base/polyfills/array.js +316 -0
- package/core/base/polyfills/string.js +316 -0
- package/core/base/rxjs-lifetime-manager.js +312 -0
- package/core/base/utilities.js +312 -0
- package/core/base/versioned-object.js +316 -0
- package/core/copilot/copilot-extension-service.d.ts +49 -0
- package/core/copilot/copilot-extension-service.d.ts.map +1 -0
- package/core/copilot/copilot-extension-service.js +446 -0
- package/core/copilot/copilot-extension-service.js.map +1 -0
- package/core/copilot/copilot-iframe/iframe-broker-service.d.ts +19 -0
- package/core/copilot/copilot-iframe/iframe-broker-service.d.ts.map +1 -0
- package/core/copilot/copilot-iframe/iframe-broker-service.js +344 -0
- package/core/copilot/copilot-iframe/iframe-broker-service.js.map +1 -0
- package/core/copilot/copilot-iframe/iframe-child-service.d.ts +15 -0
- package/core/copilot/copilot-iframe/iframe-child-service.d.ts.map +1 -0
- package/core/copilot/copilot-iframe/iframe-child-service.js +337 -0
- package/core/copilot/copilot-iframe/iframe-child-service.js.map +1 -0
- package/core/copilot/copilot-iframe/iframe-message-payload.d.ts +4 -0
- package/core/copilot/copilot-iframe/iframe-message-payload.d.ts.map +1 -0
- package/core/copilot/copilot-iframe/iframe-message-payload.js +319 -0
- package/core/copilot/copilot-iframe/iframe-message-payload.js.map +1 -0
- package/core/copilot/copilot-iframe/iframe-message-type.d.ts +4 -0
- package/core/copilot/copilot-iframe/iframe-message-type.d.ts.map +1 -0
- package/core/copilot/copilot-iframe/iframe-message-type.js +319 -0
- package/core/copilot/copilot-iframe/iframe-message-type.js.map +1 -0
- package/core/copilot/copilot-iframe/iframe-message.d.ts +6 -0
- package/core/copilot/copilot-iframe/iframe-message.d.ts.map +1 -0
- package/core/copilot/copilot-iframe/iframe-message.js +315 -0
- package/core/copilot/copilot-iframe/iframe-message.js.map +1 -0
- package/core/data/accessibility-manager.js +316 -0
- package/core/data/active-directory/active-directory.js +312 -0
- package/core/data/active-directory/models/account-info.js +316 -0
- package/core/data/active-directory/models/active-directory-search-options.js +312 -0
- package/core/data/active-directory/models/search-type.js +315 -0
- package/core/data/animation.js +312 -0
- package/core/data/app-context.js +316 -0
- package/core/data/asset-manager.js +316 -0
- package/core/data/base64-array-buffer.js +312 -0
- package/core/data/batch-connection.js +316 -0
- package/core/data/cim-connection.js +312 -0
- package/core/data/cim-stream.js +312 -0
- package/core/data/cim.js +316 -0
- package/core/data/column-picker.js +315 -0
- package/core/data/cookie.js +316 -0
- package/core/data/core-environment.js +312 -0
- package/core/data/crypto.js +312 -0
- package/core/data/deployment-share.js +316 -0
- package/core/data/disposable.js +316 -0
- package/core/data/electron.js +316 -0
- package/core/data/error-extended.js +316 -0
- package/core/data/extension-broker/dialog-listener.js +312 -0
- package/core/data/extension-broker/extension-broker.js +316 -0
- package/core/data/extension-broker/extension-listener.js +316 -0
- package/core/data/extension-broker/model/extension-broker-request-payload.js +316 -0
- package/core/data/extension-broker/model/extension-broker-response-error.js +315 -0
- package/core/data/extension-broker/model/extension-broker-response-payload.js +316 -0
- package/core/data/extension-broker/model/extension-entries.js +315 -0
- package/core/data/extension-broker/model/extension-instance.js +316 -0
- package/core/data/extension-broker/model/extension-rect.js +316 -0
- package/core/data/extension-broker/model/extension-search-options.js +316 -0
- package/core/data/extension-broker/service-listener.js +315 -0
- package/core/data/extension-broker/worker-listener.js +315 -0
- package/core/data/extension-broker/worker-set.js +316 -0
- package/core/data/file-transfer.js +316 -0
- package/core/data/gateway-connection.js +316 -0
- package/core/data/gateway-status.js +316 -0
- package/core/data/gateway-url-builder.js +316 -0
- package/core/data/gateway-url-translator.js +316 -0
- package/core/data/gateway-urls.js +316 -0
- package/core/data/globalization.js +315 -0
- package/core/data/http-constants.js +316 -0
- package/core/data/http.js +316 -0
- package/core/data/jobs/jobs-manager.js +316 -0
- package/core/data/jobs/models/job-credentials.js +312 -0
- package/core/data/jobs/models/job-node.js +316 -0
- package/core/data/jobs/models/job-paginated-response.js +312 -0
- package/core/data/jobs/models/job-pagination-options.js +316 -0
- package/core/data/jobs/models/job.js +316 -0
- package/core/data/jobs/models/node-job.js +316 -0
- package/core/data/jobs/models/powershell-job.js +312 -0
- package/core/data/language.js +312 -0
- package/core/data/lifetime-data.js +316 -0
- package/core/data/localization-manager.js +316 -0
- package/core/data/native-q.js +312 -0
- package/core/data/net.d.ts.map +1 -1
- package/core/data/net.js +317 -1
- package/core/data/net.js.map +1 -1
- package/core/data/node-connection.d.ts.map +1 -1
- package/core/data/node-connection.js +316 -0
- package/core/data/node-connection.js.map +1 -1
- package/core/data/node-extension-install.js +316 -0
- package/core/data/powershell-alternate.js +316 -0
- package/core/data/powershell-batch.js +312 -0
- package/core/data/powershell-connection.js +312 -0
- package/core/data/powershell-crypto.js +316 -0
- package/core/data/powershell-stream.js +315 -0
- package/core/data/powershell.js +316 -0
- package/core/data/query-cache.js +312 -0
- package/core/data/resource-cache.js +312 -0
- package/core/data/schedule-reboot.js +315 -0
- package/core/data/settings-manager.js +316 -0
- package/core/data/settings-manger.mock.js +315 -0
- package/core/data/sme-extension.js +312 -0
- package/core/data/ssh-stream.js +316 -0
- package/core/data/units.js +312 -0
- package/core/data/uri-builder.js +316 -0
- package/core/data/wdac-operations.js +315 -0
- package/core/data/websocket-stream.js +316 -0
- package/core/diagnostics/error-monitor.js +316 -0
- package/core/diagnostics/log-level.js +316 -0
- package/core/diagnostics/log-record.js +312 -0
- package/core/diagnostics/logging-constants.js +316 -0
- package/core/diagnostics/logging.js +316 -0
- package/core/diagnostics/logging.mock.js +316 -0
- package/core/diagnostics/sme-web-telemetry-models.js +316 -0
- package/core/diagnostics/sme-web-telemetry.d.ts +1 -2
- package/core/diagnostics/sme-web-telemetry.d.ts.map +1 -1
- package/core/diagnostics/sme-web-telemetry.js +339 -15
- package/core/diagnostics/sme-web-telemetry.js.map +1 -1
- package/core/diagnostics/telemetry-control-type.js +316 -0
- package/core/diagnostics/telemetry-options.js +316 -0
- package/core/diagnostics/telemetry-record.js +316 -0
- package/core/dom/dom.js +316 -0
- package/core/frame/frame-connection.js +316 -0
- package/core/frame/frame-connection.mock.js +316 -0
- package/core/frame/shell-navigation-connection.js +316 -0
- package/core/generated/powershell-scripts.d.ts.map +1 -1
- package/core/generated/powershell-scripts.js +313 -1
- package/core/generated/powershell-scripts.js.map +1 -1
- package/core/generated/strings.js +312 -0
- package/core/host/host-core-manager.js +316 -0
- package/core/host/host-core-message-type.js +316 -0
- package/core/host/host-core-messages.js +312 -0
- package/core/index.d.ts +48 -25
- package/core/index.d.ts.map +1 -1
- package/core/index.js +351 -18
- package/core/index.js.map +1 -1
- package/core/manifest/environment-modules.d.ts +3 -1
- package/core/manifest/environment-modules.d.ts.map +1 -1
- package/core/manifest/environment-modules.js +314 -0
- package/core/manifest/environment-modules.js.map +1 -1
- package/core/manifest/manifest-loader.js +312 -0
- package/core/manifest/module-schema.json +3 -1
- package/core/notification/client-notification-instance.js +316 -0
- package/core/notification/client-notification.js +316 -0
- package/core/notification/notification-connection.js +316 -0
- package/core/notification/notification-link-type.js +312 -0
- package/core/notification/notification-manager.js +312 -0
- package/core/notification/notification-message.js +312 -0
- package/core/notification/notification-state.js +316 -0
- package/core/notification/notification.js +312 -0
- package/core/notification/powershell-notification.js +316 -0
- package/core/notification/socket-signalr.js +312 -0
- package/core/notification/work-item-connection.js +312 -0
- package/core/notification/work-item-manager.js +316 -0
- package/core/notification/work-item-request.js +315 -0
- package/core/performance/performance-profile-data-type.js +315 -0
- package/core/performance/performance-profile-data.js +315 -0
- package/core/performance/performance-profile-database.js +315 -0
- package/core/performance/performance-profile-record.js +316 -0
- package/core/performance/performance-profile.d.ts.map +1 -1
- package/core/performance/performance-profile.js +325 -9
- package/core/performance/performance-profile.js.map +1 -1
- package/core/performance/performance-tracker.js +312 -0
- package/core/polyfills.js +316 -0
- package/core/resources/scripts/public/crypto/Get-DecryptedDataFromNode.ps1 +219 -0
- package/core/resources/scripts/public/crypto/Get-EncryptionJWKOnNode.ps1 +218 -0
- package/core/resources/scripts/public/inventory/Get-CimWin32LogicalDisk.ps1 +218 -0
- package/core/resources/scripts/public/inventory/Get-CimWin32NetworkAdapter.ps1 +216 -0
- package/core/resources/scripts/public/inventory/Get-CimWin32PhysicalMemory.ps1 +216 -0
- package/core/resources/scripts/public/inventory/Get-CimWin32Processor.ps1 +218 -0
- package/core/resources/scripts/public/inventory/Get-ClusterInventory.ps1 +218 -0
- package/core/resources/scripts/public/inventory/Get-ClusterNodes.ps1 +218 -0
- package/core/resources/scripts/public/inventory/Get-ServerInventory.ps1 +221 -1
- package/core/rpc/alive/rpc-alive-client.js +312 -0
- package/core/rpc/alive/rpc-alive-handler.js +312 -0
- package/core/rpc/alive/rpc-alive-model.js +316 -0
- package/core/rpc/alive/rpc-alive-subject-server.js +312 -0
- package/core/rpc/alive/rpc-observable-alive-client.js +316 -0
- package/core/rpc/alive/rpc-observable-alive-model.js +315 -0
- package/core/rpc/alive/rpc-observable-alive-server.js +315 -0
- package/core/rpc/azure/rpc-azure-model.js +312 -0
- package/core/rpc/azure/rpc-azure-request-client.js +312 -0
- package/core/rpc/azure/rpc-azure-request-handler.js +316 -0
- package/core/rpc/azure/rpc-azure-request-subject-server.js +316 -0
- package/core/rpc/azure/rpc-azure-response-client.js +316 -0
- package/core/rpc/azure/rpc-azure-response-handler.js +312 -0
- package/core/rpc/copilot/rpc-observable-copilot-client.d.ts +24 -0
- package/core/rpc/copilot/rpc-observable-copilot-client.d.ts.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-client.js +343 -0
- package/core/rpc/copilot/rpc-observable-copilot-client.js.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-client.d.ts +24 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-client.d.ts.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-client.js +343 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-client.js.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-server.d.ts +14 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-server.d.ts.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-server.js +332 -0
- package/core/rpc/copilot/rpc-observable-copilot-config-server.js.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-model.d.ts +55 -0
- package/core/rpc/copilot/rpc-observable-copilot-model.d.ts.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-model.js +334 -0
- package/core/rpc/copilot/rpc-observable-copilot-model.js.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-server.d.ts +14 -0
- package/core/rpc/copilot/rpc-observable-copilot-server.d.ts.map +1 -0
- package/core/rpc/copilot/rpc-observable-copilot-server.js +333 -0
- package/core/rpc/copilot/rpc-observable-copilot-server.js.map +1 -0
- package/core/rpc/credssp/rpc-credssp-model.js +315 -0
- package/core/rpc/credssp/rpc-credssp-request-client.js +316 -0
- package/core/rpc/credssp/rpc-credssp-request-handler.js +316 -0
- package/core/rpc/credssp/rpc-credssp-request-subject-server.js +316 -0
- package/core/rpc/credssp/rpc-credssp-response-client.js +316 -0
- package/core/rpc/credssp/rpc-credssp-response-handler.js +316 -0
- package/core/rpc/dialog/rpc-dialog-client.js +312 -0
- package/core/rpc/dialog/rpc-dialog-handler.js +315 -0
- package/core/rpc/dialog/rpc-dialog-model.js +316 -0
- package/core/rpc/dialog/rpc-dialog-subject-server.js +316 -0
- package/core/rpc/electron/rpc-electron-model.js +316 -0
- package/core/rpc/electron/rpc-electron-request-client.js +316 -0
- package/core/rpc/electron/rpc-electron-request-handler.js +315 -0
- package/core/rpc/electron/rpc-electron-request-subject-server.js +316 -0
- package/core/rpc/electron/rpc-electron-response-client.js +312 -0
- package/core/rpc/electron/rpc-electron-response-handler.js +315 -0
- package/core/rpc/elevate/rpc-observable-elevate-client.js +315 -0
- package/core/rpc/elevate/rpc-observable-elevate-model.js +312 -0
- package/core/rpc/elevate/rpc-observable-elevate-server.js +312 -0
- package/core/rpc/error-monitor/rpc-observable-error-monitor-client.js +316 -0
- package/core/rpc/error-monitor/rpc-observable-error-monitor-model.js +316 -0
- package/core/rpc/error-monitor/rpc-observable-error-monitor-server.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-model.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-module-request-subject-server.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-request-client.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-request-handler.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-request-subject-server.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-response-client.js +312 -0
- package/core/rpc/extension-broker/rpc-extension-broker-response-handler.js +312 -0
- package/core/rpc/extension-data/rpc-observable-extension-data-client.js +316 -0
- package/core/rpc/extension-data/rpc-observable-extension-data-model.js +312 -0
- package/core/rpc/extension-data/rpc-observable-extension-data-server.js +315 -0
- package/core/rpc/forward/rpc-forward-auto-client.js +315 -0
- package/core/rpc/forward/rpc-forward-down-client.js +315 -0
- package/core/rpc/forward/rpc-forward-down-handler.js +316 -0
- package/core/rpc/forward/rpc-forward-model.js +316 -0
- package/core/rpc/forward/rpc-forward-up-client.js +312 -0
- package/core/rpc/forward/rpc-forward-up-handler.js +316 -0
- package/core/rpc/forward/rpc-forward-up-subject-server.js +316 -0
- package/core/rpc/log/rpc-log-client.js +316 -0
- package/core/rpc/log/rpc-log-handler.js +312 -0
- package/core/rpc/log/rpc-log-model.js +316 -0
- package/core/rpc/log/rpc-log-subject-server.js +316 -0
- package/core/rpc/notification/rpc-notification-client.js +316 -0
- package/core/rpc/notification/rpc-notification-handler.js +312 -0
- package/core/rpc/notification/rpc-notification-model.js +316 -0
- package/core/rpc/notification/rpc-notification-subject-server.js +312 -0
- package/core/rpc/overlay/rpc-overlay-close-client.js +312 -0
- package/core/rpc/overlay/rpc-overlay-close-handler.js +316 -0
- package/core/rpc/overlay/rpc-overlay-model.js +312 -0
- package/core/rpc/overlay/rpc-overlay-open-client.js +312 -0
- package/core/rpc/overlay/rpc-overlay-open-handler.js +316 -0
- package/core/rpc/overlay/rpc-overlay-open-subject-server.js +316 -0
- package/core/rpc/performance/rpc-observable-performance-client.js +315 -0
- package/core/rpc/performance/rpc-observable-performance-config-client.js +312 -0
- package/core/rpc/performance/rpc-observable-performance-config-server.js +316 -0
- package/core/rpc/performance/rpc-observable-performance-model.js +312 -0
- package/core/rpc/performance/rpc-observable-performance-server.js +312 -0
- package/core/rpc/report/rpc-report-client.js +316 -0
- package/core/rpc/report/rpc-report-handler.js +315 -0
- package/core/rpc/report/rpc-report-model.js +315 -0
- package/core/rpc/report/rpc-report-subject-server.js +312 -0
- package/core/rpc/rpc-base.d.ts +4 -0
- package/core/rpc/rpc-base.d.ts.map +1 -1
- package/core/rpc/rpc-base.js +316 -0
- package/core/rpc/rpc-base.js.map +1 -1
- package/core/rpc/rpc-channel.js +316 -0
- package/core/rpc/rpc-forwarder.js +312 -0
- package/core/rpc/rpc-inbound-client.js +315 -0
- package/core/rpc/rpc-inbound.js +312 -0
- package/core/rpc/rpc-manager.js +316 -0
- package/core/rpc/rpc-module-subject-server.js +316 -0
- package/core/rpc/rpc-observable-client.js +316 -0
- package/core/rpc/rpc-observable-request.js +316 -0
- package/core/rpc/rpc-observable-result.js +316 -0
- package/core/rpc/rpc-observable-server.js +316 -0
- package/core/rpc/rpc-outbound-client.js +316 -0
- package/core/rpc/rpc-outbound.js +315 -0
- package/core/rpc/rpc-subject-server.js +316 -0
- package/core/rpc/rpc.js +316 -0
- package/core/rpc/seek/rpc-seek-client.js +316 -0
- package/core/rpc/seek/rpc-seek-handler.js +315 -0
- package/core/rpc/seek/rpc-seek-model.js +315 -0
- package/core/rpc/settings/rpc-settings-client.js +312 -0
- package/core/rpc/settings/rpc-settings-handler.js +315 -0
- package/core/rpc/settings/rpc-settings-model.js +315 -0
- package/core/rpc/settings/rpc-settings-subject-server.js +312 -0
- package/core/rpc/shell-navigate/rpc-shell-navigate-client.js +316 -0
- package/core/rpc/shell-navigate/rpc-shell-navigate-handler.js +316 -0
- package/core/rpc/shell-navigate/rpc-shell-navigate-model.js +315 -0
- package/core/rpc/shell-navigate/rpc-shell-navigate-subject-server.js +315 -0
- package/core/rpc/sme-extension/rpc-sme-extension-model.js +316 -0
- package/core/rpc/sme-extension/rpc-sme-extension-request-client.js +316 -0
- package/core/rpc/sme-extension/rpc-sme-extension-request-handler.js +312 -0
- package/core/rpc/sme-extension/rpc-sme-extension-request-subject-server.js +312 -0
- package/core/rpc/sme-extension/rpc-sme-extension-response-client.js +316 -0
- package/core/rpc/sme-extension/rpc-sme-extension-response-handler.js +316 -0
- package/core/rpc/telemetry/rpc-telemetry-client.js +312 -0
- package/core/rpc/telemetry/rpc-telemetry-handler.js +312 -0
- package/core/rpc/telemetry/rpc-telemetry-model.js +312 -0
- package/core/rpc/telemetry/rpc-telemetry-subject-server.js +316 -0
- package/core/rpc/update-data/rpc-update-data-client.js +316 -0
- package/core/rpc/update-data/rpc-update-data-handler.js +312 -0
- package/core/rpc/update-data/rpc-update-data-model.js +312 -0
- package/core/rpc/update-data/rpc-update-data-subject-server.js +312 -0
- package/core/rpc/update-theme/rpc-observable-update-theme-client.js +316 -0
- package/core/rpc/update-theme/rpc-observable-update-theme-model.js +315 -0
- package/core/rpc/update-theme/rpc-observable-update-theme-server.js +316 -0
- package/core/rpc/work-item/rpc-work-item-client.js +315 -0
- package/core/rpc/work-item/rpc-work-item-handler.js +312 -0
- package/core/rpc/work-item/rpc-work-item-model.js +316 -0
- package/core/rpc/work-item/rpc-work-item-subject-server.js +316 -0
- package/core/rpc/work-item-find/rpc-work-item-find-client.js +312 -0
- package/core/rpc/work-item-find/rpc-work-item-find-handler.js +315 -0
- package/core/rpc/work-item-find/rpc-work-item-find-model.js +316 -0
- package/core/rpc/work-item-find/rpc-work-item-find-subject-server.js +312 -0
- package/core/security/active-connection.js +315 -0
- package/core/security/authorization-manager.js +315 -0
- package/core/security/connection-manager-settings/common-connection-settings.js +316 -0
- package/core/security/connection-manager-settings/connection-settings.js +315 -0
- package/core/security/connection-manager.js +316 -0
- package/core/security/connection-stream.js +316 -0
- package/core/security/connection.js +312 -0
- package/core/security/credssp-manager.js +315 -0
- package/core/security/sign-on-manager.js +316 -0
- package/core/security/tag-manager.js +315 -0
- package/core/security/tool-condition-validator.js +316 -0
- package/core/security/tool-connection-query.js +312 -0
- package/core/security/user-principal.js +312 -0
- package/core/shared/cluster-inventory/cluster-inventory-cache.js +316 -0
- package/core/shared/cluster-inventory/cluster-inventory.js +315 -0
- package/core/shared/cluster-inventory/cluster-node-inventory.js +316 -0
- package/core/shared/gateway-inventory/gateway-inventory-cache.js +316 -0
- package/core/shared/gateway-inventory/gateway-inventory-detail-cache.js +316 -0
- package/core/shared/gateway-inventory/gateway-inventory-detail.js +316 -0
- package/core/shared/gateway-inventory/gateway-inventory.js +316 -0
- package/core/shared/inventory-query-caches.js +316 -0
- package/core/shared/server-inventory/server-inventory-cache.d.ts.map +1 -1
- package/core/shared/server-inventory/server-inventory-cache.js +313 -0
- package/core/shared/server-inventory/server-inventory-cache.js.map +1 -1
- package/core/shared/server-inventory/server-inventory-detail-cache.js +315 -0
- package/core/shared/server-inventory/server-inventory-detail.js +316 -0
- package/core/shared/server-inventory/server-inventory.d.ts +8 -0
- package/core/shared/server-inventory/server-inventory.d.ts.map +1 -1
- package/core/shared/server-inventory/server-inventory.js +320 -0
- package/core/shared/server-inventory/server-inventory.js.map +1 -1
- package/core/shared/shared-cache.js +312 -0
- package/core/shared/tool-inventory/tool-inventory-cache.js +312 -0
- package/core/shared/tool-inventory/tool-inventory.js +316 -0
- package/core/special.js +316 -0
- package/core/test-utilities/accessibility-tester.js +316 -0
- package/core/test-utilities/console.mock.js +316 -0
- package/core/test-utilities/jasmine-axe-matcher.js +316 -0
- package/core/test-utilities/wait-async.js +315 -0
- package/core/test.js +312 -0
- package/core/testing.js +316 -0
- package/core/workflow/persistent-local-storage.js +316 -0
- package/core/workflow/persistent-work-item-apply-state.js +316 -0
- package/core/workflow/persistent-work-item-state.js +316 -0
- package/core/workflow/persistent-work-item.js +316 -0
- package/core/workflow/persistent-workflow-builder.js +316 -0
- package/core/workflow/persistent-workflow-context.js +315 -0
- package/core/workflow/persistent-workflow-runner.js +316 -0
- package/core/workflow/persistent-workflow-snapshot.js +315 -0
- package/core/workflow/persistent-workflow-store.js +312 -0
- package/core/workflow/persistent-workflow.js +312 -0
- package/package.json +7 -6
- package/styles/css/main-v2.css +1 -1
- package/styles/fonts/SegoeUI/Bold/SegoeUIBold-5.27.woff +0 -0
- package/styles/fonts/SegoeUI/Light/SegoeUILight-5.27.woff +0 -0
- package/styles/fonts/SegoeUI/Normal/SegoeUI-5.27.woff +0 -0
- package/styles/fonts/SegoeUI/SemiBold/SegoeUISemiBold-5.27.woff +0 -0
- package/styles/fonts/SegoeUI/SemiLight/SegoeUISemiLight-5.27.woff +0 -0
- package/styles/fonts/ServMDL2/ServMDL2-4.66.woff +0 -0
- package/tools/build/webpack/index-html.transform.js +312 -0
- package/tools/build/webpack/shell.index-html.transform.js +316 -0
- package/tools/build/webpack/shell.webpack.config.js +312 -0
- package/tools/build/webpack/webpack.config.js +312 -0
- package/tools/code-formatter/.eslintrc.base.json +2 -1
- package/tools/code-formatter/lint.js +316 -0
- package/tools/code-formatter/utilities.d.ts.map +1 -1
- package/tools/code-formatter/utilities.js +313 -1
- package/tools/code-formatter/utilities.js.map +1 -1
- package/tools/gulp-doc-generator/index.js +316 -0
- package/tools/gulp-manifest-resource/index.js +315 -0
- package/tools/gulp-manifest-validator/index.js +316 -0
- package/tools/gulp-merge-json-in-folders/index.js +316 -0
- package/tools/gulp-merge-json-in-folders/json-merge.js +316 -0
- package/tools/gulp-ps-cim/index.js +316 -0
- package/tools/gulp-ps-code/index.d.ts.map +1 -1
- package/tools/gulp-ps-code/index.js +326 -2
- package/tools/gulp-ps-code/index.js.map +1 -1
- package/tools/gulp-ps-code/ps-code-convert.js +316 -0
- package/tools/gulp-ps-manifest/index.js +312 -0
- package/tools/gulp-ps-module/index.d.ts.map +1 -1
- package/tools/gulp-ps-module/index.js +328 -3
- package/tools/gulp-ps-module/index.js.map +1 -1
- package/tools/gulp-ps-resjson/index.js +316 -0
- package/tools/gulp-resjson/index.js +312 -0
- package/tools/gulp-resjson/resjson-convert.js +316 -0
- package/tools/gulp-schema-form/index.js +312 -0
- package/tools/gulp-svg-code/index.js +316 -0
- package/tools/gulp-svg-code/svg-code-convert.js +312 -0
- package/tools/gulp-update-notes-resource/index.js +312 -0
- package/tools/module-template/build/increment-package-version.ps1 +219 -0
- package/tools/module-template/build/pipelines/ci-build.yml +5 -5
- package/tools/module-template/build/pipelines/pull-request.yml +4 -4
- package/tools/module-template/build/push-incremented-version.ps1 +218 -1
- package/tools/module-template/build/update-powershell-code.ps1 +216 -0
- package/tools/module-template/gulpfile.ts/common/clean.ts +2 -0
- package/tools/module-template/gulpfile.ts/common/pack.ts +17 -5
- package/tools/module-template/gulpfile.ts/common/powershell.ts +40 -2
- package/tools/module-template/gulpfile.ts/common/test.ts +2 -3
- package/tools/module-template/gulpfile.ts/common/utilities.ts +40 -12
- package/tools/pack-nuget/index.d.ts.map +1 -1
- package/tools/pack-nuget/index.js +325 -3
- package/tools/pack-nuget/index.js.map +1 -1
- package/tools/scripts/Invoke-PesterTest.ps1 +218 -0
- package/tools/scripts/New-ExtensionPackage.ps1 +373 -6
- package/tools/scripts/Search-NonAsciiText.ps1 +219 -0
- package/tools/scripts/package-information/README.md +3 -0
- package/tools/scripts/package-information/ms-logo.png +0 -0
- package/tools/test-runner/index.js +316 -0
- package/tools/utilities/index.js +312 -0
- package/tools/wac-cli/src/angular15/configs/angular-json-config.js +315 -0
- package/tools/wac-cli/src/angular15/configs/ci-build-yml-config.js +315 -0
- package/tools/wac-cli/src/angular15/configs/config.js +312 -0
- package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js +315 -0
- package/tools/wac-cli/src/angular15/configs/git-ignore-config.js +315 -0
- package/tools/wac-cli/src/angular15/configs/jasmine-test-config.js +316 -0
- package/tools/wac-cli/src/angular15/configs/package-json-config.js +316 -0
- package/tools/wac-cli/src/angular15/configs/replace-config.js +312 -0
- package/tools/wac-cli/src/angular15/configs/tsconfig-config.js +316 -0
- package/tools/wac-cli/src/angular15/configs/ui-test-automation-lagacy-config.js +316 -0
- package/tools/wac-cli/src/angular15/main.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/angular-json-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/ajax-response-updater.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/css-syntax-error-updater.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/declare-override-updater.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/error-updater-angular15.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/form-control-updater.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/iif-updater-util.js +315 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/load-children-callback-updater.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/log-parser.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/observable-throw-updater.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/parameter-count-violation-updater.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/string-replace-updater.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/audit/subjuct-next-updater-util.js +315 -0
- package/tools/wac-cli/src/angular15/upgrader/ci-build-yml-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js +312 -0
- package/tools/wac-cli/src/angular15/upgrader/file-replacement-upgrader.js +315 -0
- package/tools/wac-cli/src/angular15/upgrader/git-ignore-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/jasmine-test-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/package-json-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/remove-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/replace-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/tsconfig-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/ui-test-automation-legacy-upgrader.js +316 -0
- package/tools/wac-cli/src/angular15/upgrader/version-json-upgrader.js +312 -0
- package/tools/wac-cli/src/angular15/utils/add-item.js +312 -0
- package/tools/wac-cli/src/angular15/utils/command-runner.js +316 -0
- package/tools/wac-cli/src/angular15/utils/file-comparison.js +316 -0
- package/tools/wac-cli/src/angular15/utils/file-replacement.js +315 -0
- package/tools/wac-cli/src/angular15/utils/file-writer.js +312 -0
- package/tools/wac-cli/src/angular15/utils/logger.js +312 -0
- package/tools/wac-cli/src/angular15/utils/main-debugger.js +312 -0
- package/tools/wac-cli/src/angular15/utils/relative-path.js +316 -0
- package/tools/wac-cli/src/angular15/utils/remove-item.js +316 -0
- package/tools/wac-cli/src/angular15/utils/space-generator.js +312 -0
- package/tools/wac-cli/src/angular15/utils/update-shell-references.js +312 -0
- package/tools/wac-cli/src/common.js +316 -0
- package/tools/wac-cli/src/create/main.js +316 -0
- package/tools/wac-cli/src/eslint/main.js +312 -0
- package/tools/wac-cli/src/index.js +316 -0
- package/tools/wac-cli/src/upgrade/error-updater.js +312 -0
- package/tools/wac-cli/src/upgrade/error-updaters/component-selector-updater.js +312 -0
- package/tools/wac-cli/src/upgrade/error-updaters/only-arrow-functions-updater.js +316 -0
- package/tools/wac-cli/src/upgrade/error-updaters/updater-lookup.js +312 -0
- package/tools/wac-cli/src/upgrade/file-updater.js +316 -0
- package/tools/wac-cli/src/upgrade/get-files.js +312 -0
- package/tools/wac-cli/src/upgrade/main.js +316 -0
- package/tools/wac-cli/src/upgrade/models/error-result.js +316 -0
- package/tools/wac-cli/src/upgrade/models/updater-interface.js +316 -0
- package/tools/wac-cli/src/upgrade/package-updater.js +316 -0
- package/tools/wac-cli/templates/wac-template/package.json +1 -1
- package/tools/wac-cli/templates/wac-template/src/favicon.ico +0 -0
- package/tools/wac-cli/templates/wac-template/src/karma.conf.js +317 -1
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Error.ps1 +218 -0
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Exception.ps1 +216 -0
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Process.ps1 +216 -1
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Service.ps1 +216 -1
- package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-WinRmState.ps1 +218 -1
- package/core/data/extension-broker/snap-in-listener.d.ts.map +0 -1
- package/core/data/extension-broker/snap-in-listener.js +0 -73
- package/core/data/extension-broker/snap-in-listener.js.map +0 -1
- package/microsoft-windows-admin-center-sdk-4.167.0.tgz +0 -0
|
@@ -7,23 +7,43 @@ import { SME_LAYOUT_PROVIDER } from '../common/layout';
|
|
|
7
7
|
import { DetailsResponsiveWindowManager } from './details-responsive-window-manager';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@angular/common";
|
|
10
|
+
import * as i2 from "../icon/layered-icon/layered-icon.component";
|
|
11
|
+
import * as i3 from "../icon/layered-icon/layer/icon-layer.component";
|
|
10
12
|
const _c0 = ["expander"];
|
|
13
|
+
function DetailsComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
+
i0.ɵɵelementContainerStart(0);
|
|
15
|
+
i0.ɵɵelementStart(1, "sme-layered-icon", 9);
|
|
16
|
+
i0.ɵɵelement(2, "sme-icon-layer", 10);
|
|
17
|
+
i0.ɵɵelementEnd();
|
|
18
|
+
i0.ɵɵelementContainerEnd();
|
|
19
|
+
} }
|
|
20
|
+
function DetailsComponent_ng_container_7_Template(rf, ctx) { if (rf & 1) {
|
|
21
|
+
i0.ɵɵelementContainerStart(0);
|
|
22
|
+
i0.ɵɵelementStart(1, "span", 11);
|
|
23
|
+
i0.ɵɵtext(2);
|
|
24
|
+
i0.ɵɵelementEnd();
|
|
25
|
+
i0.ɵɵelementContainerEnd();
|
|
26
|
+
} if (rf & 2) {
|
|
27
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
28
|
+
i0.ɵɵadvance(2);
|
|
29
|
+
i0.ɵɵtextInterpolate(ctx_r2.subHeader);
|
|
30
|
+
} }
|
|
11
31
|
const _c1 = function (a0, a1) { return { "sme-icon-chevronUpMed": a0, "sme-icon-chevronDownMed": a1 }; };
|
|
12
|
-
function
|
|
13
|
-
i0.ɵɵelement(0, "span",
|
|
32
|
+
function DetailsComponent_span_8_Template(rf, ctx) { if (rf & 1) {
|
|
33
|
+
i0.ɵɵelement(0, "span", 12);
|
|
14
34
|
} if (rf & 2) {
|
|
15
|
-
const
|
|
16
|
-
i0.ɵɵstyleProp("order",
|
|
17
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(
|
|
35
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
36
|
+
i0.ɵɵstyleProp("order", ctx_r3.chevronPosition)("margin-left", ctx_r3.chevronLeftMargin);
|
|
37
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(5, _c1, !ctx_r3.isExpanded, ctx_r3.isExpanded));
|
|
18
38
|
} }
|
|
19
|
-
function
|
|
20
|
-
i0.ɵɵelement(0, "span",
|
|
39
|
+
function DetailsComponent_span_9_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
+
i0.ɵɵelement(0, "span", 12);
|
|
21
41
|
} if (rf & 2) {
|
|
22
|
-
const
|
|
23
|
-
i0.ɵɵstyleProp("order",
|
|
24
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(
|
|
42
|
+
const ctx_r4 = i0.ɵɵnextContext();
|
|
43
|
+
i0.ɵɵstyleProp("order", ctx_r4.chevronPosition)("margin-left", ctx_r4.chevronLeftMargin);
|
|
44
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(5, _c1, ctx_r4.isExpanded, !ctx_r4.isExpanded));
|
|
25
45
|
} }
|
|
26
|
-
function
|
|
46
|
+
function DetailsComponent_hr_15_Template(rf, ctx) { if (rf & 1) {
|
|
27
47
|
i0.ɵɵelement(0, "hr");
|
|
28
48
|
} }
|
|
29
49
|
const _c2 = function (a0, a1) { return { "sme-layout-absolute-phone-up sme-position-inset-none sme-padding-bottom-sm sme-arrange-overflow-auto": a0, "sme-layout-relative sme-position-stretch-v": a1 }; };
|
|
@@ -55,6 +75,7 @@ export class DetailsComponent extends CoreBaseComponent {
|
|
|
55
75
|
this.autoHeight = false;
|
|
56
76
|
this.isExpandedChange = new EventEmitter();
|
|
57
77
|
this.layoutChanged = new EventEmitter();
|
|
78
|
+
this.chevronLeftMargin = '0';
|
|
58
79
|
this.initialHeightPercentage = 30;
|
|
59
80
|
if (layout) {
|
|
60
81
|
this.detailsResponsiveWindowManager = new DetailsResponsiveWindowManager(layout);
|
|
@@ -77,6 +98,9 @@ export class DetailsComponent extends CoreBaseComponent {
|
|
|
77
98
|
get logSourceName() {
|
|
78
99
|
return 'DetailsComponent';
|
|
79
100
|
}
|
|
101
|
+
set pushChevronFarRight(value) {
|
|
102
|
+
this.chevronLeftMargin = value ? 'auto' : this.chevronLeftMargin;
|
|
103
|
+
}
|
|
80
104
|
/**
|
|
81
105
|
* @deprecated since 02/25/2019. Please use 'header' instead
|
|
82
106
|
*/
|
|
@@ -203,29 +227,36 @@ export class DetailsComponent extends CoreBaseComponent {
|
|
|
203
227
|
} if (rf & 2) {
|
|
204
228
|
let _t;
|
|
205
229
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.expander = _t.first);
|
|
206
|
-
} }, inputs: { initialHeightPercentage: "initialHeightPercentage", header: "header", chevronInverted: "chevronInverted", chevronPosition: "chevronPosition", addBottomBorder: "addBottomBorder", autoHeight: "autoHeight", title: "title", isExpanded: "isExpanded" }, outputs: { isExpandedChange: "isExpandedChange" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c3, decls:
|
|
230
|
+
} }, inputs: { initialHeightPercentage: "initialHeightPercentage", header: "header", subHeader: "subHeader", chevronInverted: "chevronInverted", chevronPosition: "chevronPosition", pushChevronFarRight: "pushChevronFarRight", addBottomBorder: "addBottomBorder", showInfoIcon: "showInfoIcon", autoHeight: "autoHeight", title: "title", isExpanded: "isExpanded" }, outputs: { isExpandedChange: "isExpandedChange" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c3, decls: 16, vars: 22, consts: [["role", "button", "tabindex", "0", 1, "sme-button", "sme-button-trigger", "sme-button-auto-width", "sme-position-flex-none", "sme-padding-squish-v-md", "sme-padding-horizontal-lg", "sme-position-stretch-h", "sme-position-left-inline", "sme-arrange-stack-h", "sme-focus-zone", 3, "click"], ["expander", ""], [4, "ngIf"], [1, "sme-arrange-stack-v", "sme-arrange-line-clamp"], [1, "sme-font-h3", "sme-position-flex-auto", "sme-arrange-ws-wrap"], ["class", "sme-icon sme-position-flex-none sme-margin-horizontal-xs", "aria-hidden", "true", 3, "order", "ngClass", "margin-left", 4, "ngIf"], [1, "sme-screen-reader", 3, "id"], [1, "sme-position-flex-auto", "sme-layout-relative"], [3, "ngClass"], ["size", "16px", 1, "sme-margin-inset-xxs"], [1, "sme-icon", "sme-icon-infoSolid"], [1, "sme-font-body", "sme-font-family-light", "sme-position-flex-auto", "sme-arrange-ellipsis"], ["aria-hidden", "true", 1, "sme-icon", "sme-position-flex-none", "sme-margin-horizontal-xs", 3, "ngClass"]], template: function DetailsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
207
231
|
i0.ɵɵprojectionDef();
|
|
208
232
|
i0.ɵɵelementStart(0, "h3")(1, "div", 0, 1);
|
|
209
233
|
i0.ɵɵlistener("click", function DetailsComponent_Template_div_click_1_listener() { return ctx.toggleExpansion(); });
|
|
210
|
-
i0.ɵɵ
|
|
211
|
-
i0.ɵɵ
|
|
234
|
+
i0.ɵɵtemplate(3, DetailsComponent_ng_container_3_Template, 3, 0, "ng-container", 2);
|
|
235
|
+
i0.ɵɵelementStart(4, "div", 3)(5, "span", 4);
|
|
236
|
+
i0.ɵɵtext(6);
|
|
212
237
|
i0.ɵɵelementEnd();
|
|
213
|
-
i0.ɵɵtemplate(
|
|
214
|
-
i0.ɵɵ
|
|
215
|
-
i0.ɵɵ
|
|
216
|
-
i0.ɵɵ
|
|
238
|
+
i0.ɵɵtemplate(7, DetailsComponent_ng_container_7_Template, 3, 1, "ng-container", 2);
|
|
239
|
+
i0.ɵɵelementEnd();
|
|
240
|
+
i0.ɵɵtemplate(8, DetailsComponent_span_8_Template, 1, 8, "span", 5);
|
|
241
|
+
i0.ɵɵtemplate(9, DetailsComponent_span_9_Template, 1, 8, "span", 5);
|
|
242
|
+
i0.ɵɵelementStart(10, "div", 6);
|
|
243
|
+
i0.ɵɵtext(11);
|
|
217
244
|
i0.ɵɵelementEnd()()();
|
|
218
|
-
i0.ɵɵelementStart(
|
|
219
|
-
i0.ɵɵprojection(
|
|
245
|
+
i0.ɵɵelementStart(12, "div", 7)(13, "div", 8);
|
|
246
|
+
i0.ɵɵprojection(14);
|
|
220
247
|
i0.ɵɵelementEnd()();
|
|
221
|
-
i0.ɵɵtemplate(
|
|
248
|
+
i0.ɵɵtemplate(15, DetailsComponent_hr_15_Template, 1, 0, "hr", 2);
|
|
222
249
|
} if (rf & 2) {
|
|
223
250
|
i0.ɵɵadvance(1);
|
|
224
251
|
i0.ɵɵstyleProp("min-height", ctx.minExpanderHeight);
|
|
225
252
|
i0.ɵɵattribute("aria-expanded", !!ctx.isExpanded)("aria-describedBy", ctx.idBag.detailsSpan);
|
|
253
|
+
i0.ɵɵadvance(2);
|
|
254
|
+
i0.ɵɵproperty("ngIf", ctx.showInfoIcon);
|
|
226
255
|
i0.ɵɵadvance(3);
|
|
227
256
|
i0.ɵɵtextInterpolate(ctx.header);
|
|
228
257
|
i0.ɵɵadvance(1);
|
|
258
|
+
i0.ɵɵproperty("ngIf", !!ctx.subHeader);
|
|
259
|
+
i0.ɵɵadvance(1);
|
|
229
260
|
i0.ɵɵproperty("ngIf", !ctx.chevronInverted);
|
|
230
261
|
i0.ɵɵadvance(1);
|
|
231
262
|
i0.ɵɵproperty("ngIf", ctx.chevronInverted);
|
|
@@ -237,10 +268,10 @@ export class DetailsComponent extends CoreBaseComponent {
|
|
|
237
268
|
i0.ɵɵclassProp("sme-margin-horizontal-lg", ctx.shouldContentSlim)("sme-position-stretch-v", ctx.autoHeight);
|
|
238
269
|
i0.ɵɵadvance(1);
|
|
239
270
|
i0.ɵɵclassProp("sme-layout-none", !ctx.isExpanded);
|
|
240
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(
|
|
271
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(19, _c2, !ctx.autoHeight, ctx.autoHeight));
|
|
241
272
|
i0.ɵɵadvance(2);
|
|
242
273
|
i0.ɵɵproperty("ngIf", ctx.addBottomBorder);
|
|
243
|
-
} }, dependencies: [i1.NgClass, i1.NgIf], encapsulation: 2 });
|
|
274
|
+
} }, dependencies: [i1.NgClass, i1.NgIf, i2.LayeredIconComponent, i3.IconLayerComponent], encapsulation: 2 });
|
|
244
275
|
__decorate([
|
|
245
276
|
Yield(),
|
|
246
277
|
__metadata("design:type", Function),
|
|
@@ -261,7 +292,7 @@ __decorate([
|
|
|
261
292
|
], DetailsComponent.prototype, "onLayoutChanged", null);
|
|
262
293
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DetailsComponent, [{
|
|
263
294
|
type: Component,
|
|
264
|
-
args: [{ selector: 'sme-details', template: "<h3>\r\n <div #expander\r\n class=\"sme-button sme-button-trigger sme-button-auto-width sme-position-flex-none sme-padding-squish-v-md sme-padding-horizontal-lg sme-position-stretch-h sme-position-left-inline sme-arrange-stack-h sme-focus-zone\"\r\n role=\"button\" tabindex=\"0\" (click)=\"toggleExpansion()\" [style.min-height]=\"minExpanderHeight\"\r\n [attr.aria-expanded]=\"!!isExpanded\" [attr.aria-describedBy]=\"idBag.detailsSpan\">\r\n <span class=\"sme-font-h3 sme-position-flex-auto sme-arrange-
|
|
295
|
+
args: [{ selector: 'sme-details', template: "<h3>\r\n <div #expander\r\n class=\"sme-button sme-button-trigger sme-button-auto-width sme-position-flex-none sme-padding-squish-v-md sme-padding-horizontal-lg sme-position-stretch-h sme-position-left-inline sme-arrange-stack-h sme-focus-zone\"\r\n role=\"button\" tabindex=\"0\" (click)=\"toggleExpansion()\" [style.min-height]=\"minExpanderHeight\"\r\n [attr.aria-expanded]=\"!!isExpanded\" [attr.aria-describedBy]=\"idBag.detailsSpan\">\r\n <ng-container *ngIf=\"showInfoIcon\">\r\n <sme-layered-icon size=\"16px\" class=\"sme-margin-inset-xxs\">\r\n <sme-icon-layer class=\"sme-icon sme-icon-infoSolid\"></sme-icon-layer>\r\n </sme-layered-icon>\r\n </ng-container>\r\n <div class=\"sme-arrange-stack-v sme-arrange-line-clamp\">\r\n <span class=\"sme-font-h3 sme-position-flex-auto sme-arrange-ws-wrap\">{{ header }}</span>\r\n <ng-container *ngIf=\"!!subHeader\">\r\n <span class=\"sme-font-body sme-font-family-light sme-position-flex-auto sme-arrange-ellipsis\">{{ subHeader }}</span>\r\n </ng-container>\r\n </div>\r\n <span [style.order]=\"chevronPosition\" *ngIf=\"!chevronInverted\" class=\"sme-icon sme-position-flex-none sme-margin-horizontal-xs\"\r\n [ngClass]=\"{'sme-icon-chevronUpMed': !isExpanded, 'sme-icon-chevronDownMed': isExpanded}\" [style.margin-left]=\"chevronLeftMargin\"\r\n aria-hidden=\"true\"></span>\r\n <span [style.order]=\"chevronPosition\" *ngIf=\"chevronInverted\" class=\"sme-icon sme-position-flex-none sme-margin-horizontal-xs\"\r\n [ngClass]=\"{'sme-icon-chevronUpMed': isExpanded, 'sme-icon-chevronDownMed': !isExpanded}\" [style.margin-left]=\"chevronLeftMargin\"\r\n aria-hidden=\"true\"></span>\r\n <div class=\"sme-screen-reader\" [id]=\"idBag.detailsSpan\"> {{ resourceStrings.AriaDescription }}</div>\r\n </div>\r\n</h3>\r\n\r\n<div class=\"sme-position-flex-auto sme-layout-relative\" [class.sme-margin-horizontal-lg]=\"shouldContentSlim\" [class.sme-position-stretch-v]=\"autoHeight\">\r\n <div [ngClass]=\"{'sme-layout-absolute-phone-up sme-position-inset-none sme-padding-bottom-sm sme-arrange-overflow-auto': !autoHeight, 'sme-layout-relative sme-position-stretch-v': autoHeight}\"\r\n [class.sme-layout-none]=\"!isExpanded\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n\r\n<hr *ngIf=\"addBottomBorder\">\r\n" }]
|
|
265
296
|
}], function () { return [{ type: i0.Injector }, { type: undefined, decorators: [{
|
|
266
297
|
type: Optional
|
|
267
298
|
}, {
|
|
@@ -274,12 +305,18 @@ __decorate([
|
|
|
274
305
|
type: Input
|
|
275
306
|
}], header: [{
|
|
276
307
|
type: Input
|
|
308
|
+
}], subHeader: [{
|
|
309
|
+
type: Input
|
|
277
310
|
}], chevronInverted: [{
|
|
278
311
|
type: Input
|
|
279
312
|
}], chevronPosition: [{
|
|
280
313
|
type: Input
|
|
314
|
+
}], pushChevronFarRight: [{
|
|
315
|
+
type: Input
|
|
281
316
|
}], addBottomBorder: [{
|
|
282
317
|
type: Input
|
|
318
|
+
}], showInfoIcon: [{
|
|
319
|
+
type: Input
|
|
283
320
|
}], autoHeight: [{
|
|
284
321
|
type: Input
|
|
285
322
|
}], title: [{
|
|
@@ -289,4 +326,4 @@ __decorate([
|
|
|
289
326
|
}], isExpandedChange: [{
|
|
290
327
|
type: Output
|
|
291
328
|
}], onWindowBreakpointChanged: [], deferredOnLayoutChanged: [], onLayoutChanged: [] }); })();
|
|
292
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9kZXRhaWxzL2RldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvZGV0YWlscy9kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQVUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7O0lDWmpGLDBCQUU0Qjs7O0lBRnRCLCtDQUErQjtJQUNuQywyRkFBeUY7OztJQUUzRiwwQkFFNEI7OztJQUZ0QiwrQ0FBK0I7SUFDbkMsMkZBQXlGOzs7SUFhL0YscUJBQTRCOzs7O0FESDVCOzs7Ozs7Ozs7OztHQVdHO0FBRUgsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN2Qiw4QkFBVyxDQUFBO0lBQ1gsOEJBQVcsQ0FBQTtBQUNmLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQUtELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxpQkFBaUI7SUFnRW5ELFlBQVksUUFBa0IsRUFBMkMsTUFBYztRQUNuRixLQUFL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LEVBQUE7UUFHUixpRUFBNEI7O1FBcEIrQixlQUFzQztRQUF0QyxtREFBc0M7UUFDN0YsaURBQW1DLDJDQUFBO1FBQ21DLGVBQVk7UUFBWixnQ0FBWTtRQUMzQyxlQUFzQjtRQUF0QiwyQ0FBc0I7UUFHdEIsZUFBcUI7UUFBckIsMENBQXFCO1FBRzdCLGVBQXdCO1FBQXhCLDBDQUF3QjtRQUFFLGVBQXFDO1FBQXJDLG1FQUFxQztRQUkxQyxlQUFvRDtRQUFwRCxpRUFBb0QsMENBQUE7UUFFeEcsZUFBcUM7UUFBckMsa0RBQXFDO1FBRGxDLHNGQUEyTDtRQU03TCxlQUFxQjtRQUFyQiwwQ0FBcUI7O0FEcUh0QjtJQUFDLEtBQUssRUFBRTs7OztpRUFHUDtBQUtEO0lBQUMsUUFBUSxFQUFFOzs7OytEQUdWO0FBS0Q7SUFBQyxLQUFLLEVBQUU7Ozs7dURBMkVQO3VGQTlMUSxnQkFBZ0I7Y0FKNUIsU0FBUzsyQkFDSSxhQUFhOztzQkFtRVUsUUFBUTs7c0JBQUksTUFBTTt1QkFBQyxtQkFBbUI7d0JBN0NoRSxRQUFRO2tCQURkLFNBQVM7bUJBQUMsVUFBVTtZQUlkLHVCQUF1QjtrQkFEN0IsS0FBSztZQUlDLE1BQU07a0JBRFosS0FBSztZQUlDLGVBQWU7a0JBRHJCLEtBQUs7WUFJQyxlQUFlO2tCQURyQixLQUFLO1lBSUMsZUFBZTtrQkFEckIsS0FBSztZQU9DLFVBQVU7a0JBRGhCLEtBQUs7WUFPSyxLQUFLO2tCQURmLEtBQUs7WUFVQyxVQUFVO2tCQURoQixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixNQUFNO1lBMkNBLHlCQUF5QixNQVF4Qix1QkFBdUIsTUFRdkIsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5qZWN0LFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9wdGlvbmFsLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEZWJvdW5jZSB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvYmFzZS9kZWNvcmF0b3JzL2RlYm91bmNlLmRlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBZaWVsZCB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvYmFzZS9kZWNvcmF0b3JzL3lpZWxkLmRlY29yYXRvcic7XHJcbmltcG9ydCB7IFN0cmluZ3MgfSBmcm9tICcuLi8uLi9nZW5lcmF0ZWQvc3RyaW5ncyc7XHJcbmltcG9ydCB7IENvcmVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbW9uL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGF5b3V0LCBTTUVfTEFZT1VUX1BST1ZJREVSIH0gZnJvbSAnLi4vY29tbW9uL2xheW91dCc7XHJcbmltcG9ydCB7IERldGFpbHNSZXNwb25zaXZlV2luZG93TWFuYWdlciB9IGZyb20gJy4vZGV0YWlscy1yZXNwb25zaXZlLXdpbmRvdy1tYW5hZ2VyJztcclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAc21lRG9jIHtAbGFiZWwgRGV0YWlscyBAaWQgc21lLWRldGFpbHN9XHJcbiAqXHJcbiAqIEBvdmVydmlld1xyXG4gKiBAZmlsZSB7QGZpbGVwYXRoIC4vZXhhbXBsZXMvZGV0YWlscy1vdmVydmlldy5tZH1cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBCYXNpYyBVc2FnZSBAaWQgYmFzaWMtdXNhZ2V9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50LnRzIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2RldGFpbHMtZXhhbXBsZS5jb21wb25lbnQudHN9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvZGV0YWlscy1leGFtcGxlLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKi9cclxuXHJcbmV4cG9ydCBlbnVtIENoZXZyb25Qb3NpdGlvbiB7XHJcbiAgICBMZWZ0ID0gJy0xJyxcclxuICAgIFJpZ2h0ID0gJzAnXHJcbn1cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1kZXRhaWxzJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZXRhaWxzLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGV0YWlsc0NvbXBvbmVudCBleHRlbmRzIENvcmVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IG1pbkV4cGFuZGVySGVpZ2h0KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRldGFpbHNSZXNwb25zaXZlV2luZG93TWFuYWdlci5taW5FeHBhbmRlckhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHNob3VsZENvbnRlbnRTbGltKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRldGFpbHNSZXNwb25zaXZlV2luZG93TWFuYWdlci5zaG91bGRDb250ZW50U2xpbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzb3VyY2UgbmFtZSB0byB1c2UgZm9yIGxvZ2dpbmdcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldCBsb2dTb3VyY2VOYW1lKCkge1xyXG4gICAgICAgIHJldHVybiAnRGV0YWlsc0NvbXBvbmVudCc7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgcmVzb3VyY2VTdHJpbmdzID0gTXNmdFNtZS5nZXRTdHJpbmdzPFN0cmluZ3M+KCkuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuRGV0YWlscztcclxuXHJcbiAgICBAVmlld0NoaWxkKCdleHBhbmRlcicpXHJcbiAgICBwdWJsaWMgZXhwYW5kZXI6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpbml0aWFsSGVpZ2h0UGVyY2VudGFnZTogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaGVhZGVyOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjaGV2cm9uSW52ZXJ0ZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjaGV2cm9uUG9zaXRpb246IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGFkZEJvdHRvbUJvcmRlcjogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBkZXRhaWwgY29tcG9uZW50J3MgaGVpZ2h0IHdpbGwgYmUgZGV0ZXJtaW5lZCBvbiB0aGUgd2hvbGUgY2hpbGRyZW4ncyBoZWlnaHQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXV0b0hlaWdodCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlcHJlY2F0ZWQgc2luY2UgMDIvMjUvMjAxOS4gUGxlYXNlIHVzZSAnaGVhZGVyJyBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmhlYWRlciA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdGl0bGUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5oZWFkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpc0V4cGFuZGVkOiBib29sZWFuO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGlzRXhwYW5kZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICBwdWJsaWMgbGF5b3V0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIHByaXZhdGUgZGV0YWlsc1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyOiBEZXRhaWxzUmVzcG9uc2l2ZVdpbmRvd01hbmFnZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCBAT3B0aW9uYWwoKSBASW5qZWN0KFNNRV9MQVlPVVRfUFJPVklERVIpIGxheW91dDogTGF5b3V0KSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbEhlaWdodFBlcmNlbnRhZ2UgPSAzMDtcclxuICAgICAgICBpZiAobGF5b3V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGV0YWlsc1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyID0gbmV3IERldGFpbHNSZXNwb25zaXZlV2luZG93TWFuYWdlcihsYXlvdXQpO1xyXG4gICAgICAgICAgICAvLyBvbiBwYXJlbnQgbGF5b3V0IGNoYW5nZXMsIHJlLWVtaXQgdGhlIGxheW91dCBjaGFuZ2UgdG8gb3VyIGV2ZW50XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGxheW91dC5sYXlvdXRDaGFuZ2VkLnN1YnNjcmliZSgoKCkgPT4gdGhpcy5vbkxheW91dENoYW5nZWQoKSkpKTtcclxuICAgICAgICAgICAgLy8gb24gd2luZG93IGJyZWFrIHBvaW50IGNoYW5nZXMsIGVtaXQgdGhlIGV2ZW50IGFib3V0IGNyaXRpY2FsIGNsYXNzZXMgYW5kIHN0eWxpbmcgdXBkYXRlcyBzaWduYWwuXHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGxheW91dC53aW5kb3dCcmVha3BvaW50Q2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbldpbmRvd0JyZWFrcG9pbnRDaGFuZ2VkKCkpKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGVmZXJyZWRPbkxheW91dENoYW5nZWQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICBpZiAoY2hhbmdlcy5pc0V4cGFuZGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25MYXlvdXRDaGFuZ2VkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b2dnbGVFeHBhbnNpb24oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gIXRoaXMuaXNFeHBhbmRlZDtcclxuICAgICAgICB0aGlzLmlzRXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmlzRXhwYW5kZWQpO1xyXG4gICAgICAgIHRoaXMub25MYXlvdXRDaGFuZ2VkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZnJlc2goKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkxheW91dENoYW5nZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBvbiB3aW5kb3cgYnJlYWtwb2ludCBjaGFuZ2VkIGhhbmRsZXIuXHJcbiAgICAgKiBBZGRpbmcgeWllbGQgZm9yIGNvbXBvbmVudCB0byBnZXQgRWxlbWVudFJlZiBhZnRlciBpbml0aWFsaXphdGlvbi5cclxuICAgICAqL1xyXG4gICAgQFlpZWxkKClcclxuICAgIHB1YmxpYyBvbldpbmRvd0JyZWFrcG9pbnRDaGFuZ2VkKCkge1xyXG4gICAgICAgIHRoaXMuZGV0YWlsc1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyLm9uV2luZG93U2l6ZUNoYW5nZWQodGhpcy5ob3N0RWxlbWVudD8ubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZGVmZXJyZWQgbGF5b3V0IGNoYW5nZWQgaGFuZGxlci5cclxuICAgICAqL1xyXG4gICAgQERlYm91bmNlKClcclxuICAgIHByaXZhdGUgZGVmZXJyZWRPbkxheW91dENoYW5nZWQoKSB7XHJcbiAgICAgICAgdGhpcy5vbkxheW91dENoYW5nZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBsYXlvdXQgY2hhbmdlZCBldmVudCBoYW5kbGVyLlxyXG4gICAgICovXHJcbiAgICBAWWllbGQoKVxyXG4gICAgcHJpdmF0ZSBvbkxheW91dENoYW5nZWQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhvc3RFbGVtZW50IHx8ICF0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZXhwYW5kZXJPZmZzZXRIZWlnaHQgPSBNc2Z0U21lLmdldFZhbHVlPG51bWJlcj4odGhpcy5leHBhbmRlciwgJ25hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0JykgfHwgMDtcclxuICAgICAgICBjb25zdCBleHBhbmRlckhlaWdodCA9IGV4cGFuZGVyT2Zmc2V0SGVpZ2h0ID4gMCA/IGB7MH1weGAuZm9ybWF0KGV4cGFuZGVyT2Zmc2V0SGVpZ2h0KSA6IHRoaXMubWluRXhwYW5kZXJIZWlnaHQ7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzRXhwYW5kZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9IGV4cGFuZGVySGVpZ2h0O1xyXG4gICAgICAgICAgICB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUubWluSGVpZ2h0ID0gJyc7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBwb3RlbnRpYWxIZWlnaHQgPSB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0UGFyZW50Lm9mZnNldEhlaWdodCB8fCAwO1xyXG4gICAgICAgIGNvbnN0IHBhcmVudE9mZnNldFRvcCA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wIHx8IDA7XHJcbiAgICAgICAgY29uc3QgdG90YWxIZWlnaHQgPSBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LCB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgMCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGRldGFpbENvbnRlbnRIZWlnaHQgPSB0aGlzLmRldGFpbHNSZXNwb25zaXZlV2luZG93TWFuYWdlci5kZXRhaWxDb250ZW50SGVpZ2h0O1xyXG5cclxuICAgICAgICAvLyBFbmZvcmNlcyBhIG1heCBoZWlnaHQgd2hlbiBzZXR0aW5nIHRoZSBkZWZhdWx0IGhlaWdodC5cclxuICAgICAgICBjb25zdCBtYXhIZWlnaHQgPSBkZXRhaWxDb250ZW50SGVpZ2h0Lm1heDtcclxuICAgICAgICBjb25zdCBtaW5IZWlnaHQgPSBkZXRhaWxDb250ZW50SGVpZ2h0Lm1pbjtcclxuICAgICAgICBjb25zdCBwaG9uZURvd24gPSBkZXRhaWxDb250ZW50SGVpZ2h0LnBob25lRG93bjtcclxuXHJcbiAgICAgICAgLy8gT24gc21hbGwgd2luZG93IGhlaWdodCwgdGhlIGRldGFpbCBwYW5lIGhlaWdodCB3b3VsZCBiZSB0aGUgc21hbGxlciB2YWx1ZSBbd2luZG93IGhlaWdodCAqIDAuNiwgbWF4SGVpZ2h0XVxyXG4gICAgICAgIGlmIChwaG9uZURvd24pIHtcclxuICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0ID0gTWF0aC5taW4odG90YWxIZWlnaHQgLSBwYXJlbnRPZmZzZXRUb3AsIHBvdGVudGlhbEhlaWdodCk7XHJcbiAgICAgICAgICAgIC8vIFByZXZlbnRzIHRoZSBpbml0aWFsIHNpemUgZXhjZWVkIG1heCBoZWlnaHRcclxuICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0ID0gTWF0aC5taW4ocG90ZW50aWFsSGVpZ2h0LCBtYXhIZWlnaHQpO1xyXG4gICAgICAgICAgICBwb3RlbnRpYWxIZWlnaHQgPSBNYXRoLm1heChwb3RlbnRpYWxIZWlnaHQsIG1pbkhlaWdodCk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBwb3J0SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgICAgICAgICBpZiAocG9ydEhlaWdodCA8IG1pbkhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0ID0gbWluSGVpZ2h0O1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBvcnRIZWlnaHQgPiBtaW5IZWlnaHQgJiYgcG9ydEhlaWdodCA8IG1heEhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgLy8gTWF0aC5jZWlsIGNhbiBtYWtlIGNhbGN1bGF0aW9uIHdpdGhvdXQgcm91bmRpbmcgaXNzdWVzLlxyXG4gICAgICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0ID0gTWF0aC5jZWlsKHBvcnRIZWlnaHQgKiAwLjYpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBvcnRIZWlnaHQgPiBtYXhIZWlnaHQgJiYgcG9ydEhlaWdodCAqIDAuNCA+IG1heEhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0ID0gTWF0aC5jZWlsKG1heEhlaWdodCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocG9ydEhlaWdodCA+IG1heEhlaWdodCAmJiBwb3J0SGVpZ2h0ICogMC40ID4gbWluSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICBwb3RlbnRpYWxIZWlnaHQgPSBNYXRoLmNlaWwocG9ydEhlaWdodCAqIDAuNCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBTaHJpbmsgb25seSBpZiBleGNlZWRzIHBhcmVudHMgb2Zmc2V0IGhlaWdodDtcclxuICAgICAgICAgICAgaWYgKHBvdGVudGlhbEhlaWdodCA+IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRQYXJlbnQub2Zmc2V0SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAvLyBTZXQgaW5pdGlhbCBleHBhbmRlZCBoZWlnaHQgdG8gMzB2aC5cclxuICAgICAgICAgICAgICAgIC8vIFBvb3IgZGVzaWduIHRoYXQgbmVlZHMgdG8gcmUtdmlzaXQuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBvbmVWaCA9IHRvdGFsSGVpZ2h0IC8gMTAwO1xyXG4gICAgICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0ID0gb25lVmggKiB0aGlzLmluaXRpYWxIZWlnaHRQZXJjZW50YWdlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gc21lLWJvcmRlci10b3Atc20gb24gdGhlIGRldGFpbHMgcmVzaXplciBib3JkZXIuXHJcbiAgICAgICAgICAgICAgICAvLyBtaW51cyB0aGUgYm9yZGVyIGhlaWdodCB0byBnZXQgcmlkIG9mIHRoZSBleHRyYSBzY3JvbGwgYmFyLlxyXG4gICAgICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0IC09IDE7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHBvdGVudGlhbEhlaWdodCA9IE1hdGgubWluKHBvdGVudGlhbEhlaWdodCwgbWF4SGVpZ2h0KTtcclxuICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0ID0gTWF0aC5tYXgocG90ZW50aWFsSGVpZ2h0LCBtaW5IZWlnaHQpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLm1pbkhlaWdodCA9ICcnO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLmF1dG9IZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgezB9cHhgLmZvcm1hdChwb3RlbnRpYWxIZWlnaHQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy8gdGhlIGhlaWdodCB3b3VsZCBiZSBjaGFuZ2VkIG9uIHdpbmRvdyBoZWlnaHQgb3Igd2lkdGggY2hhbmdlXHJcbiAgICAgICAgICAgIC8vIHJlLWNhbGN1bGF0ZSB0aGUgcG90ZW50aWFsIGhlaWdodCBzaG91bGQgYmUgbm90aWZ5aW5nIHBhcmVudHMuXHJcbiAgICAgICAgICAgIHRoaXMubGF5b3V0Q2hhbmdlZC5lbWl0KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEluaXRpYWxIb3N0Q2xhc3NlcygpIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0SW5pdGlhbEhvc3RDbGFzc2VzKCkuY29uY2F0KFtcclxuICAgICAgICAgICAgJ3NtZS1hcnJhbmdlLXN0YWNrLXYnXHJcbiAgICAgICAgXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUlkQmFnKCk6IE1zZnRTbWUuU3RyaW5nTWFwPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGRldGFpbHNTcGFuOiAnJ1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIiwiPGgzPlxyXG4gIDxkaXYgI2V4cGFuZGVyXHJcbiAgICBjbGFzcz1cInNtZS1idXR0b24gc21lLWJ1dHRvbi10cmlnZ2VyIHNtZS1idXR0b24tYXV0by13aWR0aCBzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1wYWRkaW5nLXNxdWlzaC12LW1kIHNtZS1wYWRkaW5nLWhvcml6b250YWwtbGcgc21lLXBvc2l0aW9uLXN0cmV0Y2gtaCBzbWUtcG9zaXRpb24tbGVmdC1pbmxpbmUgc21lLWFycmFuZ2Utc3RhY2staCBzbWUtZm9jdXMtem9uZVwiXHJcbiAgICByb2xlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCIgKGNsaWNrKT1cInRvZ2dsZUV4cGFuc2lvbigpXCIgW3N0eWxlLm1pbi1oZWlnaHRdPVwibWluRXhwYW5kZXJIZWlnaHRcIlxyXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhIWlzRXhwYW5kZWRcIiBbYXR0ci5hcmlhLWRlc2NyaWJlZEJ5XT1cImlkQmFnLmRldGFpbHNTcGFuXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInNtZS1mb250LWgzIHNtZS1wb3NpdGlvbi1mbGV4LWF1dG8gc21lLWFycmFuZ2UtZWxsaXBzaXNcIj57eyBoZWFkZXIgfX08L3NwYW4+XHJcbiAgICA8c3BhbiBbc3R5bGUub3JkZXJdPVwiY2hldnJvblBvc2l0aW9uXCIgKm5nSWY9XCIhY2hldnJvbkludmVydGVkXCIgY2xhc3M9XCJzbWUtaWNvbiBzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1tYXJnaW4taG9yaXpvbnRhbC14c1wiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsnc21lLWljb24tY2hldnJvblVwTWVkJzogIWlzRXhwYW5kZWQsICdzbWUtaWNvbi1jaGV2cm9uRG93bk1lZCc6IGlzRXhwYW5kZWR9XCJcclxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxyXG4gICAgPHNwYW4gW3N0eWxlLm9yZGVyXT1cImNoZXZyb25Qb3NpdGlvblwiICpuZ0lmPVwiY2hldnJvbkludmVydGVkXCIgY2xhc3M9XCJzbWUtaWNvbiBzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1tYXJnaW4taG9yaXpvbnRhbC14c1wiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsnc21lLWljb24tY2hldnJvblVwTWVkJzogaXNFeHBhbmRlZCwgJ3NtZS1pY29uLWNoZXZyb25Eb3duTWVkJzogIWlzRXhwYW5kZWR9XCJcclxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxyXG4gICAgPGRpdiBjbGFzcz1cInNtZS1zY3JlZW4tcmVhZGVyXCIgW2lkXT1cImlkQmFnLmRldGFpbHNTcGFuXCI+IHt7IHJlc291cmNlU3RyaW5ncy5BcmlhRGVzY3JpcHRpb24gfX08L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9oMz5cclxuXHJcbjxkaXYgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1hdXRvIHNtZS1sYXlvdXQtcmVsYXRpdmVcIiBbY2xhc3Muc21lLW1hcmdpbi1ob3Jpem9udGFsLWxnXT1cInNob3VsZENvbnRlbnRTbGltXCIgW2NsYXNzLnNtZS1wb3NpdGlvbi1zdHJldGNoLXZdPVwiYXV0b0hlaWdodFwiPlxyXG4gIDxkaXYgW25nQ2xhc3NdPVwieydzbWUtbGF5b3V0LWFic29sdXRlLXBob25lLXVwIHNtZS1wb3NpdGlvbi1pbnNldC1ub25lIHNtZS1wYWRkaW5nLWJvdHRvbS1zbSBzbWUtYXJyYW5nZS1vdmVyZmxvdy1hdXRvJzogIWF1dG9IZWlnaHQsICdzbWUtbGF5b3V0LXJlbGF0aXZlIHNtZS1wb3NpdGlvbi1zdHJldGNoLXYnOiBhdXRvSGVpZ2h0fVwiXHJcbiAgICBbY2xhc3Muc21lLWxheW91dC1ub25lXT1cIiFpc0V4cGFuZGVkXCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGhyICpuZ0lmPVwiYWRkQm90dG9tQm9yZGVyXCI+XHJcbiJdfQ==
|
|
329
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9kZXRhaWxzL2RldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvZGV0YWlscy9kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQVUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7OztJQ2JqRiw2QkFBbUM7SUFDakMsMkNBQTJEO0lBQ3pELHFDQUFxRTtJQUN2RSxpQkFBbUI7SUFDckIsMEJBQWU7OztJQUdiLDZCQUFrQztJQUNoQyxnQ0FBOEY7SUFBQSxZQUFlO0lBQUEsaUJBQU87SUFDdEgsMEJBQWU7OztJQURpRixlQUFlO0lBQWYsc0NBQWU7Ozs7SUFHakgsMkJBRTRCOzs7SUFGdEIsK0NBQStCLHlDQUFBO0lBQ25DLDJGQUF5Rjs7O0lBRTNGLDJCQUU0Qjs7O0lBRnRCLCtDQUErQix5Q0FBQTtJQUNuQywyRkFBeUY7OztJQWEvRixxQkFBNEI7Ozs7QURiNUI7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxNQUFNLENBQU4sSUFB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QkFEN0IsS0FBSztZQUlDLE1BQU07a0JBRFosS0FBSztZQUlDLFNBQVM7a0JBRGYsS0FBSztZQUlDLGVBQWU7a0JBRHJCLEtBQUs7WUFJQyxlQUFlO2tCQURyQixLQUFLO1lBSUssbUJBQW1CO2tCQUQ3QixLQUFLO1lBTUMsZUFBZTtrQkFEckIsS0FBSztZQUlDLFlBQVk7a0JBRGxCLEtBQUs7WUFNQyxVQUFVO2tCQURoQixLQUFLO1lBT0ssS0FBSztrQkFEZixLQUFLO1lBVUMsVUFBVTtrQkFEaEIsS0FBSztZQUlDLGdCQUFnQjtrQkFEdEIsTUFBTTtZQTZDQSx5QkFBeUIsTUFReEIsdUJBQXVCLE1BUXZCLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEluamVjdCxcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPcHRpb25hbCxcclxuICAgIE91dHB1dCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGVib3VuY2UgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2Jhc2UvZGVjb3JhdG9ycy9kZWJvdW5jZS5kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgWWllbGQgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2Jhc2UvZGVjb3JhdG9ycy95aWVsZC5kZWNvcmF0b3InO1xyXG5pbXBvcnQgeyBTdHJpbmdzIH0gZnJvbSAnLi4vLi4vZ2VuZXJhdGVkL3N0cmluZ3MnO1xyXG5pbXBvcnQgeyBDb3JlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbW1vbi9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExheW91dCwgU01FX0xBWU9VVF9QUk9WSURFUiB9IGZyb20gJy4uL2NvbW1vbi9sYXlvdXQnO1xyXG5pbXBvcnQgeyBEZXRhaWxzUmVzcG9uc2l2ZVdpbmRvd01hbmFnZXIgfSBmcm9tICcuL2RldGFpbHMtcmVzcG9uc2l2ZS13aW5kb3ctbWFuYWdlcic7XHJcblxyXG4vKipcclxuICpcclxuICogQHNtZURvYyB7QGxhYmVsIERldGFpbHMgQGlkIHNtZS1kZXRhaWxzfVxyXG4gKlxyXG4gKiBAb3ZlcnZpZXdcclxuICogQGZpbGUge0BmaWxlcGF0aCAuL2V4YW1wbGVzL2RldGFpbHMtb3ZlcnZpZXcubWR9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgQmFzaWMgVXNhZ2UgQGlkIGJhc2ljLXVzYWdlfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9kZXRhaWxzLWV4YW1wbGUuY29tcG9uZW50LnRzfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2RldGFpbHMtZXhhbXBsZS5jb21wb25lbnQuaHRtbH1cclxuICpcclxuICovXHJcblxyXG5leHBvcnQgZW51bSBDaGV2cm9uUG9zaXRpb24ge1xyXG4gICAgTGVmdCA9ICctMScsXHJcbiAgICBSaWdodCA9ICcwJ1xyXG59XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtZGV0YWlscycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGV0YWlscy5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERldGFpbHNDb21wb25lbnQgZXh0ZW5kcyBDb3JlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gICAgcHVibGljIGdldCBtaW5FeHBhbmRlckhlaWdodCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZXRhaWxzUmVzcG9uc2l2ZVdpbmRvd01hbmFnZXIubWluRXhwYW5kZXJIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzaG91bGRDb250ZW50U2xpbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZXRhaWxzUmVzcG9uc2l2ZVdpbmRvd01hbmFnZXIuc2hvdWxkQ29udGVudFNsaW07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ0RldGFpbHNDb21wb25lbnQnO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHJlc291cmNlU3RyaW5ncyA9IE1zZnRTbWUuZ2V0U3RyaW5nczxTdHJpbmdzPigpLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkRldGFpbHM7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnZXhwYW5kZXInKVxyXG4gICAgcHVibGljIGV4cGFuZGVyOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaW5pdGlhbEhlaWdodFBlcmNlbnRhZ2U6IG51bWJlcjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGhlYWRlcjogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc3ViSGVhZGVyOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjaGV2cm9uSW52ZXJ0ZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjaGV2cm9uUG9zaXRpb246IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBwdXNoQ2hldnJvbkZhclJpZ2h0KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5jaGV2cm9uTGVmdE1hcmdpbiA9IHZhbHVlID8gJ2F1dG8nIDogdGhpcy5jaGV2cm9uTGVmdE1hcmdpbjtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGFkZEJvdHRvbUJvcmRlcjogYm9vbGVhbjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dJbmZvSWNvbjogYm9vbGVhbjtcclxuICAgIC8qKlxyXG4gICAgICogVGhlIGRldGFpbCBjb21wb25lbnQncyBoZWlnaHQgd2lsbCBiZSBkZXRlcm1pbmVkIG9uIHRoZSB3aG9sZSBjaGlsZHJlbidzIGhlaWdodC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhdXRvSGVpZ2h0ID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSAwMi8yNS8yMDE5LiBQbGVhc2UgdXNlICdoZWFkZXInIGluc3RlYWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuaGVhZGVyID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmhlYWRlcjtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlzRXhwYW5kZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgaXNFeHBhbmRlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAgIHB1YmxpYyBsYXlvdXRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgcHVibGljIGNoZXZyb25MZWZ0TWFyZ2luID0gJzAnO1xyXG5cclxuICAgIHByaXZhdGUgZGV0YWlsc1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyOiBEZXRhaWxzUmVzcG9uc2l2ZVdpbmRvd01hbmFnZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCBAT3B0aW9uYWwoKSBASW5qZWN0KFNNRV9MQVlPVVRfUFJPVklERVIpIGxheW91dDogTGF5b3V0KSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbEhlaWdodFBlcmNlbnRhZ2UgPSAzMDtcclxuICAgICAgICBpZiAobGF5b3V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGV0YWlsc1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyID0gbmV3IERldGFpbHNSZXNwb25zaXZlV2luZG93TWFuYWdlcihsYXlvdXQpO1xyXG4gICAgICAgICAgICAvLyBvbiBwYXJlbnQgbGF5b3V0IGNoYW5nZXMsIHJlLWVtaXQgdGhlIGxheW91dCBjaGFuZ2UgdG8gb3VyIGV2ZW50XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGxheW91dC5sYXlvdXRDaGFuZ2VkLnN1YnNjcmliZSgoKCkgPT4gdGhpcy5vbkxheW91dENoYW5nZWQoKSkpKTtcclxuICAgICAgICAgICAgLy8gb24gd2luZG93IGJyZWFrIHBvaW50IGNoYW5nZXMsIGVtaXQgdGhlIGV2ZW50IGFib3V0IGNyaXRpY2FsIGNsYXNzZXMgYW5kIHN0eWxpbmcgdXBkYXRlcyBzaWduYWwuXHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGxheW91dC53aW5kb3dCcmVha3BvaW50Q2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbldpbmRvd0JyZWFrcG9pbnRDaGFuZ2VkKCkpKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGVmZXJyZWRPbkxheW91dENoYW5nZWQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICBpZiAoY2hhbmdlcy5pc0V4cGFuZGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25MYXlvdXRDaGFuZ2VkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b2dnbGVFeHBhbnNpb24oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gIXRoaXMuaXNFeHBhbmRlZDtcclxuICAgICAgICB0aGlzLmlzRXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmlzRXhwYW5kZWQpO1xyXG4gICAgICAgIHRoaXMub25MYXlvdXRDaGFuZ2VkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZnJlc2goKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkxheW91dENoYW5nZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBvbiB3aW5kb3cgYnJlYWtwb2ludCBjaGFuZ2VkIGhhbmRsZXIuXHJcbiAgICAgKiBBZGRpbmcgeWllbGQgZm9yIGNvbXBvbmVudCB0byBnZXQgRWxlbWVudFJlZiBhZnRlciBpbml0aWFsaXphdGlvbi5cclxuICAgICAqL1xyXG4gICAgQFlpZWxkKClcclxuICAgIHB1YmxpYyBvbldpbmRvd0JyZWFrcG9pbnRDaGFuZ2VkKCkge1xyXG4gICAgICAgIHRoaXMuZGV0YWlsc1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyLm9uV2luZG93U2l6ZUNoYW5nZWQodGhpcy5ob3N0RWxlbWVudD8ubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZGVmZXJyZWQgbGF5b3V0IGNoYW5nZWQgaGFuZGxlci5cclxuICAgICAqL1xyXG4gICAgQERlYm91bmNlKClcclxuICAgIHByaXZhdGUgZGVmZXJyZWRPbkxheW91dENoYW5nZWQoKSB7XHJcbiAgICAgICAgdGhpcy5vbkxheW91dENoYW5nZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBsYXlvdXQgY2hhbmdlZCBldmVudCBoYW5kbGVyLlxyXG4gICAgICovXHJcbiAgICBAWWllbGQoKVxyXG4gICAgcHJpdmF0ZSBvbkxheW91dENoYW5nZWQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhvc3RFbGVtZW50IHx8ICF0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZXhwYW5kZXJPZmZzZXRIZWlnaHQgPSBNc2Z0U21lLmdldFZhbHVlPG51bWJlcj4odGhpcy5leHBhbmRlciwgJ25hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0JykgfHwgMDtcclxuICAgICAgICBjb25zdCBleHBhbmRlckhlaWdodCA9IGV4cGFuZGVyT2Zmc2V0SGVpZ2h0ID4gMCA/IGB7MH1weGAuZm9ybWF0KGV4cGFuZGVyT2Zmc2V0SGVpZ2h0KSA6IHRoaXMubWluRXhwYW5kZXJIZWlnaHQ7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzRXhwYW5kZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9IGV4cGFuZGVySGVpZ2h0O1xyXG4gICAgICAgICAgICB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUubWluSGVpZ2h0ID0gJyc7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBwb3RlbnRpYWxIZWlnaHQgPSB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0UGFyZW50Lm9mZnNldEhlaWdodCB8fCAwO1xyXG4gICAgICAgIGNvbnN0IHBhcmVudE9mZnNldFRvcCA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wIHx8IDA7XHJcbiAgICAgICAgY29uc3QgdG90YWxIZWlnaHQgPSBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LCB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgMCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGRldGFpbENvbnRlbnRIZWlnaHQgPSB0aGlzLmRldGFpbHNSZXNwb25zaXZlV2luZG93TWFuYWdlci5kZXRhaWxDb250ZW50SGVpZ2h0O1xyXG5cclxuICAgICAgICAvLyBFbmZvcmNlcyBhIG1heCBoZWlnaHQgd2hlbiBzZXR0aW5nIHRoZSBkZWZhdWx0IGhlaWdodC5cclxuICAgICAgICBjb25zdCBtYXhIZWlnaHQgPSBkZXRhaWxDb250ZW50SGVpZ2h0Lm1heDtcclxuICAgICAgICBjb25zdCBtaW5IZWlnaHQgPSBkZXRhaWxDb250ZW50SGVpZ2h0Lm1pbjtcclxuICAgICAgICBjb25zdCBwaG9uZURvd24gPSBkZXRhaWxDb250ZW50SGVpZ2h0LnBob25lRG93bjtcclxuXHJcbiAgICAgICAgLy8gT24gc21hbGwgd2luZG93IGhlaWdodCwgdGhlIGRldGFpbCBwYW5lIGhlaWdodCB3b3VsZCBiZSB0aGUgc21hbGxlciB2YWx1ZSBbd2luZG93IGhlaWdodCAqIDAuNiwgbWF4SGVpZ2h0XVxyXG4gICAgICAgIGlmIChwaG9uZURvd24pIHtcclxuICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0ID0gTWF0aC5taW4odG90YWxIZWlnaHQgLSBwYXJlbnRPZmZzZXRUb3AsIHBvdGVudGlhbEhlaWdodCk7XHJcbiAgICAgICAgICAgIC8vIFByZXZlbnRzIHRoZSBpbml0aWFsIHNpemUgZXhjZWVkIG1heCBoZWlnaHRcclxuICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0ID0gTWF0aC5taW4ocG90ZW50aWFsSGVpZ2h0LCBtYXhIZWlnaHQpO1xyXG4gICAgICAgICAgICBwb3RlbnRpYWxIZWlnaHQgPSBNYXRoLm1heChwb3RlbnRpYWxIZWlnaHQsIG1pbkhlaWdodCk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBwb3J0SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgICAgICAgICBpZiAocG9ydEhlaWdodCA8IG1pbkhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0ID0gbWluSGVpZ2h0O1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBvcnRIZWlnaHQgPiBtaW5IZWlnaHQgJiYgcG9ydEhlaWdodCA8IG1heEhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgLy8gTWF0aC5jZWlsIGNhbiBtYWtlIGNhbGN1bGF0aW9uIHdpdGhvdXQgcm91bmRpbmcgaXNzdWVzLlxyXG4gICAgICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0ID0gTWF0aC5jZWlsKHBvcnRIZWlnaHQgKiAwLjYpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBvcnRIZWlnaHQgPiBtYXhIZWlnaHQgJiYgcG9ydEhlaWdodCAqIDAuNCA+IG1heEhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0ID0gTWF0aC5jZWlsKG1heEhlaWdodCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocG9ydEhlaWdodCA+IG1heEhlaWdodCAmJiBwb3J0SGVpZ2h0ICogMC40ID4gbWluSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICBwb3RlbnRpYWxIZWlnaHQgPSBNYXRoLmNlaWwocG9ydEhlaWdodCAqIDAuNCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBTaHJpbmsgb25seSBpZiBleGNlZWRzIHBhcmVudHMgb2Zmc2V0IGhlaWdodDtcclxuICAgICAgICAgICAgaWYgKHBvdGVudGlhbEhlaWdodCA+IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRQYXJlbnQub2Zmc2V0SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAvLyBTZXQgaW5pdGlhbCBleHBhbmRlZCBoZWlnaHQgdG8gMzB2aC5cclxuICAgICAgICAgICAgICAgIC8vIFBvb3IgZGVzaWduIHRoYXQgbmVlZHMgdG8gcmUtdmlzaXQuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBvbmVWaCA9IHRvdGFsSGVpZ2h0IC8gMTAwO1xyXG4gICAgICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0ID0gb25lVmggKiB0aGlzLmluaXRpYWxIZWlnaHRQZXJjZW50YWdlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gc21lLWJvcmRlci10b3Atc20gb24gdGhlIGRldGFpbHMgcmVzaXplciBib3JkZXIuXHJcbiAgICAgICAgICAgICAgICAvLyBtaW51cyB0aGUgYm9yZGVyIGhlaWdodCB0byBnZXQgcmlkIG9mIHRoZSBleHRyYSBzY3JvbGwgYmFyLlxyXG4gICAgICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0IC09IDE7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHBvdGVudGlhbEhlaWdodCA9IE1hdGgubWluKHBvdGVudGlhbEhlaWdodCwgbWF4SGVpZ2h0KTtcclxuICAgICAgICAgICAgcG90ZW50aWFsSGVpZ2h0ID0gTWF0aC5tYXgocG90ZW50aWFsSGVpZ2h0LCBtaW5IZWlnaHQpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLm1pbkhlaWdodCA9ICcnO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLmF1dG9IZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgezB9cHhgLmZvcm1hdChwb3RlbnRpYWxIZWlnaHQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy8gdGhlIGhlaWdodCB3b3VsZCBiZSBjaGFuZ2VkIG9uIHdpbmRvdyBoZWlnaHQgb3Igd2lkdGggY2hhbmdlXHJcbiAgICAgICAgICAgIC8vIHJlLWNhbGN1bGF0ZSB0aGUgcG90ZW50aWFsIGhlaWdodCBzaG91bGQgYmUgbm90aWZ5aW5nIHBhcmVudHMuXHJcbiAgICAgICAgICAgIHRoaXMubGF5b3V0Q2hhbmdlZC5lbWl0KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEluaXRpYWxIb3N0Q2xhc3NlcygpIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0SW5pdGlhbEhvc3RDbGFzc2VzKCkuY29uY2F0KFtcclxuICAgICAgICAgICAgJ3NtZS1hcnJhbmdlLXN0YWNrLXYnXHJcbiAgICAgICAgXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUlkQmFnKCk6IE1zZnRTbWUuU3RyaW5nTWFwPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGRldGFpbHNTcGFuOiAnJ1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIiwiPGgzPlxyXG4gIDxkaXYgI2V4cGFuZGVyXHJcbiAgICBjbGFzcz1cInNtZS1idXR0b24gc21lLWJ1dHRvbi10cmlnZ2VyIHNtZS1idXR0b24tYXV0by13aWR0aCBzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1wYWRkaW5nLXNxdWlzaC12LW1kIHNtZS1wYWRkaW5nLWhvcml6b250YWwtbGcgc21lLXBvc2l0aW9uLXN0cmV0Y2gtaCBzbWUtcG9zaXRpb24tbGVmdC1pbmxpbmUgc21lLWFycmFuZ2Utc3RhY2staCBzbWUtZm9jdXMtem9uZVwiXHJcbiAgICByb2xlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCIgKGNsaWNrKT1cInRvZ2dsZUV4cGFuc2lvbigpXCIgW3N0eWxlLm1pbi1oZWlnaHRdPVwibWluRXhwYW5kZXJIZWlnaHRcIlxyXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhIWlzRXhwYW5kZWRcIiBbYXR0ci5hcmlhLWRlc2NyaWJlZEJ5XT1cImlkQmFnLmRldGFpbHNTcGFuXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0luZm9JY29uXCI+XHJcbiAgICAgIDxzbWUtbGF5ZXJlZC1pY29uIHNpemU9XCIxNnB4XCIgY2xhc3M9XCJzbWUtbWFyZ2luLWluc2V0LXh4c1wiPlxyXG4gICAgICAgIDxzbWUtaWNvbi1sYXllciBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLWluZm9Tb2xpZFwiPjwvc21lLWljb24tbGF5ZXI+XHJcbiAgICAgIDwvc21lLWxheWVyZWQtaWNvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPGRpdiBjbGFzcz1cInNtZS1hcnJhbmdlLXN0YWNrLXYgc21lLWFycmFuZ2UtbGluZS1jbGFtcFwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInNtZS1mb250LWgzIHNtZS1wb3NpdGlvbi1mbGV4LWF1dG8gc21lLWFycmFuZ2Utd3Mtd3JhcFwiPnt7IGhlYWRlciB9fTwvc3Bhbj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEhc3ViSGVhZGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzbWUtZm9udC1ib2R5IHNtZS1mb250LWZhbWlseS1saWdodCBzbWUtcG9zaXRpb24tZmxleC1hdXRvIHNtZS1hcnJhbmdlLWVsbGlwc2lzXCI+e3sgc3ViSGVhZGVyIH19PC9zcGFuPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHNwYW4gW3N0eWxlLm9yZGVyXT1cImNoZXZyb25Qb3NpdGlvblwiICpuZ0lmPVwiIWNoZXZyb25JbnZlcnRlZFwiIGNsYXNzPVwic21lLWljb24gc21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtbWFyZ2luLWhvcml6b250YWwteHNcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7J3NtZS1pY29uLWNoZXZyb25VcE1lZCc6ICFpc0V4cGFuZGVkLCAnc21lLWljb24tY2hldnJvbkRvd25NZWQnOiBpc0V4cGFuZGVkfVwiIFtzdHlsZS5tYXJnaW4tbGVmdF09XCJjaGV2cm9uTGVmdE1hcmdpblwiXHJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cclxuICAgIDxzcGFuIFtzdHlsZS5vcmRlcl09XCJjaGV2cm9uUG9zaXRpb25cIiAqbmdJZj1cImNoZXZyb25JbnZlcnRlZFwiIGNsYXNzPVwic21lLWljb24gc21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtbWFyZ2luLWhvcml6b250YWwteHNcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7J3NtZS1pY29uLWNoZXZyb25VcE1lZCc6IGlzRXhwYW5kZWQsICdzbWUtaWNvbi1jaGV2cm9uRG93bk1lZCc6ICFpc0V4cGFuZGVkfVwiIFtzdHlsZS5tYXJnaW4tbGVmdF09XCJjaGV2cm9uTGVmdE1hcmdpblwiXHJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cclxuICAgIDxkaXYgY2xhc3M9XCJzbWUtc2NyZWVuLXJlYWRlclwiIFtpZF09XCJpZEJhZy5kZXRhaWxzU3BhblwiPiB7eyByZXNvdXJjZVN0cmluZ3MuQXJpYURlc2NyaXB0aW9uIH19PC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvaDM+XHJcblxyXG48ZGl2IGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtYXV0byBzbWUtbGF5b3V0LXJlbGF0aXZlXCIgW2NsYXNzLnNtZS1tYXJnaW4taG9yaXpvbnRhbC1sZ109XCJzaG91bGRDb250ZW50U2xpbVwiIFtjbGFzcy5zbWUtcG9zaXRpb24tc3RyZXRjaC12XT1cImF1dG9IZWlnaHRcIj5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cInsnc21lLWxheW91dC1hYnNvbHV0ZS1waG9uZS11cCBzbWUtcG9zaXRpb24taW5zZXQtbm9uZSBzbWUtcGFkZGluZy1ib3R0b20tc20gc21lLWFycmFuZ2Utb3ZlcmZsb3ctYXV0byc6ICFhdXRvSGVpZ2h0LCAnc21lLWxheW91dC1yZWxhdGl2ZSBzbWUtcG9zaXRpb24tc3RyZXRjaC12JzogYXV0b0hlaWdodH1cIlxyXG4gICAgW2NsYXNzLnNtZS1sYXlvdXQtbm9uZV09XCIhaXNFeHBhbmRlZFwiPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxociAqbmdJZj1cImFkZEJvdHRvbUJvcmRlclwiPlxyXG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
|
+
import { IconModule } from '../icon';
|
|
3
4
|
import { TooltipModule } from '../tooltip/tooltip.module';
|
|
4
5
|
import { DetailsComponent } from './details.component';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
@@ -8,6 +9,7 @@ export class DetailsModule {
|
|
|
8
9
|
/** @nocollapse */ DetailsModule.ɵfac = function DetailsModule_Factory(t) { return new (t || DetailsModule)(); };
|
|
9
10
|
/** @nocollapse */ DetailsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DetailsModule });
|
|
10
11
|
/** @nocollapse */ DetailsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [CommonModule,
|
|
12
|
+
IconModule,
|
|
11
13
|
TooltipModule] });
|
|
12
14
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DetailsModule, [{
|
|
13
15
|
type: NgModule,
|
|
@@ -16,10 +18,12 @@ export class DetailsModule {
|
|
|
16
18
|
exports: [DetailsComponent],
|
|
17
19
|
imports: [
|
|
18
20
|
CommonModule,
|
|
21
|
+
IconModule,
|
|
19
22
|
TooltipModule
|
|
20
23
|
]
|
|
21
24
|
}]
|
|
22
25
|
}], null, null); })();
|
|
23
26
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DetailsModule, { declarations: [DetailsComponent], imports: [CommonModule,
|
|
27
|
+
IconModule,
|
|
24
28
|
TooltipModule], exports: [DetailsComponent] }); })();
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9kZXRhaWxzL2RldGFpbHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQVd2RCxNQUFNLE9BQU8sYUFBYTs7NkZBQWIsYUFBYTs4RkFBYixhQUFhO2tHQUxsQixZQUFZO1FBQ1osVUFBVTtRQUNWLGFBQWE7dUZBR1IsYUFBYTtjQVR6QixRQUFRO2VBQUM7Z0JBQ04sWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ2hDLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUMzQixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixVQUFVO29CQUNWLGFBQWE7aUJBQ2hCO2FBQ0o7O3dGQUNZLGFBQWEsbUJBUlAsZ0JBQWdCLGFBRzNCLFlBQVk7UUFDWixVQUFVO1FBQ1YsYUFBYSxhQUpQLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEljb25Nb2R1bGUgfSBmcm9tICcuLi9pY29uJztcclxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi9kZXRhaWxzLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbRGV0YWlsc0NvbXBvbmVudF0sXHJcbiAgICBleHBvcnRzOiBbRGV0YWlsc0NvbXBvbmVudF0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEljb25Nb2R1bGUsXHJcbiAgICAgICAgVG9vbHRpcE1vZHVsZVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGV0YWlsc01vZHVsZSB7IH1cclxuIl19
|
|
@@ -10,9 +10,9 @@ import * as i2 from "@angular/common";
|
|
|
10
10
|
import * as i3 from "../tooltip/tooltip.directive";
|
|
11
11
|
const _c0 = ["*"];
|
|
12
12
|
function DialogComponent_sme_backdrop_0_button_2_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
-
const
|
|
13
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
14
14
|
i0.ɵɵelementStart(0, "button", 8);
|
|
15
|
-
i0.ɵɵlistener("click", function DialogComponent_sme_backdrop_0_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
15
|
+
i0.ɵɵlistener("click", function DialogComponent_sme_backdrop_0_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r5.onCloseClicked()); });
|
|
16
16
|
i0.ɵɵelement(1, "span", 9);
|
|
17
17
|
i0.ɵɵelementEnd();
|
|
18
18
|
} if (rf & 2) {
|
|
@@ -20,30 +20,35 @@ function DialogComponent_sme_backdrop_0_button_2_Template(rf, ctx) { if (rf & 1)
|
|
|
20
20
|
i0.ɵɵproperty("title", ctx_r1.strings.MsftSmeShell.Angular.Common.close);
|
|
21
21
|
i0.ɵɵattribute("aria-label", ctx_r1.strings.MsftSmeShell.Angular.Common.close);
|
|
22
22
|
} }
|
|
23
|
-
function
|
|
24
|
-
i0.ɵɵelementStart(0, "
|
|
23
|
+
function DialogComponent_sme_backdrop_0_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
+
i0.ɵɵelementStart(0, "div", 10);
|
|
25
|
+
i0.ɵɵprojection(1, 2);
|
|
26
|
+
i0.ɵɵelementEnd();
|
|
27
|
+
} }
|
|
28
|
+
function DialogComponent_sme_backdrop_0_span_8_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
+
i0.ɵɵelementStart(0, "span", 11);
|
|
25
30
|
i0.ɵɵtext(1);
|
|
26
31
|
i0.ɵɵelementEnd();
|
|
27
32
|
} if (rf & 2) {
|
|
28
|
-
const
|
|
29
|
-
i0.ɵɵproperty("id",
|
|
33
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
34
|
+
i0.ɵɵproperty("id", ctx_r3.idBag.ariaLabelSpan);
|
|
30
35
|
i0.ɵɵadvance(1);
|
|
31
|
-
i0.ɵɵtextInterpolate(
|
|
36
|
+
i0.ɵɵtextInterpolate(ctx_r3.ariaLabel);
|
|
32
37
|
} }
|
|
33
|
-
function
|
|
34
|
-
i0.ɵɵelementStart(0, "span",
|
|
38
|
+
function DialogComponent_sme_backdrop_0_span_9_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
+
i0.ɵɵelementStart(0, "span", 11);
|
|
35
40
|
i0.ɵɵtext(1);
|
|
36
41
|
i0.ɵɵelementEnd();
|
|
37
42
|
} if (rf & 2) {
|
|
38
|
-
const
|
|
39
|
-
i0.ɵɵproperty("id",
|
|
43
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
44
|
+
i0.ɵɵproperty("id", ctx_r4.idBag.ariaDescriptionSpan);
|
|
40
45
|
i0.ɵɵadvance(1);
|
|
41
|
-
i0.ɵɵtextInterpolate(
|
|
46
|
+
i0.ɵɵtextInterpolate(ctx_r4.ariaDescription);
|
|
42
47
|
} }
|
|
43
48
|
function DialogComponent_sme_backdrop_0_Template(rf, ctx) { if (rf & 1) {
|
|
44
|
-
const
|
|
49
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
45
50
|
i0.ɵɵelementStart(0, "sme-backdrop", 1);
|
|
46
|
-
i0.ɵɵlistener("clicked", function DialogComponent_sme_backdrop_0_Template_sme_backdrop_clicked_0_listener() { i0.ɵɵrestoreView(
|
|
51
|
+
i0.ɵɵlistener("clicked", function DialogComponent_sme_backdrop_0_Template_sme_backdrop_clicked_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(!!ctx_r7.clickBackdrop ? ctx_r7.onBackgroundClicked() : ""); });
|
|
47
52
|
i0.ɵɵelementStart(1, "div", 2);
|
|
48
53
|
i0.ɵɵtemplate(2, DialogComponent_sme_backdrop_0_button_2_Template, 2, 2, "button", 3);
|
|
49
54
|
i0.ɵɵelementStart(3, "div", 4);
|
|
@@ -52,11 +57,10 @@ function DialogComponent_sme_backdrop_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
52
57
|
i0.ɵɵelementStart(5, "div", 5);
|
|
53
58
|
i0.ɵɵprojection(6, 1);
|
|
54
59
|
i0.ɵɵelementEnd();
|
|
55
|
-
i0.ɵɵ
|
|
56
|
-
i0.ɵɵ
|
|
57
|
-
i0.ɵɵ
|
|
60
|
+
i0.ɵɵtemplate(7, DialogComponent_sme_backdrop_0_div_7_Template, 2, 0, "div", 6);
|
|
61
|
+
i0.ɵɵelementEnd();
|
|
62
|
+
i0.ɵɵtemplate(8, DialogComponent_sme_backdrop_0_span_8_Template, 2, 2, "span", 7);
|
|
58
63
|
i0.ɵɵtemplate(9, DialogComponent_sme_backdrop_0_span_9_Template, 2, 2, "span", 7);
|
|
59
|
-
i0.ɵɵtemplate(10, DialogComponent_sme_backdrop_0_span_10_Template, 2, 2, "span", 7);
|
|
60
64
|
i0.ɵɵelementEnd();
|
|
61
65
|
} if (rf & 2) {
|
|
62
66
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -66,7 +70,9 @@ function DialogComponent_sme_backdrop_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
66
70
|
i0.ɵɵattribute("role", ctx_r0.dialogRole)("aria-hidden", !ctx_r0.visible)("aria-labelledby", ctx_r0.ariaLabel ? ctx_r0.idBag.ariaLabelSpan : "sme-dialog-title")("aria-describedby", ctx_r0.ariaDescription ? ctx_r0.idBag.ariaDescriptionSpan : "sme-dialog-desc");
|
|
67
71
|
i0.ɵɵadvance(1);
|
|
68
72
|
i0.ɵɵproperty("ngIf", ctx_r0.closeButton);
|
|
69
|
-
i0.ɵɵadvance(
|
|
73
|
+
i0.ɵɵadvance(5);
|
|
74
|
+
i0.ɵɵproperty("ngIf", !ctx_r0.hideFooter);
|
|
75
|
+
i0.ɵɵadvance(1);
|
|
70
76
|
i0.ɵɵproperty("ngIf", ctx_r0.ariaLabel);
|
|
71
77
|
i0.ɵɵadvance(1);
|
|
72
78
|
i0.ɵɵproperty("ngIf", ctx_r0.ariaDescription);
|
|
@@ -177,6 +183,10 @@ export class DialogComponent extends CoreBaseComponent {
|
|
|
177
183
|
* The background color then will be based on the dialog body.
|
|
178
184
|
*/
|
|
179
185
|
this.showBackdrop = true;
|
|
186
|
+
/**
|
|
187
|
+
* Whether to hide the dialog footer.
|
|
188
|
+
*/
|
|
189
|
+
this.hideFooter = false;
|
|
180
190
|
/**
|
|
181
191
|
* Whether to enable the feature of clicking outside of the dialog to close the current dialog.
|
|
182
192
|
* True means clicking outside the dialog will close the dialog. We want this to be set to false when there are forms in the dialog.
|
|
@@ -388,9 +398,9 @@ DialogComponent.nextDialogId = 0;
|
|
|
388
398
|
/** @nocollapse */ DialogComponent.ɵfac = function DialogComponent_Factory(t) { return new (t || DialogComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Injector)); };
|
|
389
399
|
/** @nocollapse */ DialogComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DialogComponent, selectors: [["sme-dialog"]], hostBindings: function DialogComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
390
400
|
i0.ɵɵlistener("keyup.escape", function DialogComponent_keyup_escape_HostBindingHandler() { return ctx.onKeyUp(); }, false, i0.ɵɵresolveDocument);
|
|
391
|
-
} }, inputs: { allowBackgroundInteraction: "allowBackgroundInteraction", showBackdrop: "showBackdrop", clickBackdrop: "clickBackdrop", ariaLabel: "ariaLabel", ariaDescription: "ariaDescription", actionPane: "actionPane", dialogMode: "dialogMode", dialogType: "dialogType", closeButton: "closeButton", compactFullHeight: "compactFullHeight" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c2, decls: 1, vars: 1, consts: [["class", "sme-layout-absolute sme-position-inset-none", 3, "level", "showBackdrop", "allowBackgroundInteraction", "clicked", 4, "ngIf"], [1, "sme-layout-absolute", "sme-position-inset-none", 3, "level", "showBackdrop", "allowBackgroundInteraction", "clicked"], ["aria-modal", "true", 3, "ngClass"], ["class", "sme-button-trigger sme-button-auto-width sme-dialog-close-button", 3, "title", "click", 4, "ngIf"], [1, "sme-position-flex-none", "sme-focus-zone"], [1, "sme-layout-relative", "sme-position-flex-auto", "sme-padding-horizontal-lg", "sme-arrange-overflow-auto-y", "sme-arrange-overflow-hide-x", "sme-focus-zone", "sme-layout-responsive-zone-xs", "sme-dialog-content-wrapper"], [
|
|
401
|
+
} }, inputs: { allowBackgroundInteraction: "allowBackgroundInteraction", showBackdrop: "showBackdrop", hideFooter: "hideFooter", clickBackdrop: "clickBackdrop", ariaLabel: "ariaLabel", ariaDescription: "ariaDescription", actionPane: "actionPane", dialogMode: "dialogMode", dialogType: "dialogType", closeButton: "closeButton", compactFullHeight: "compactFullHeight" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c2, decls: 1, vars: 1, consts: [["class", "sme-layout-absolute sme-position-inset-none", 3, "level", "showBackdrop", "allowBackgroundInteraction", "clicked", 4, "ngIf"], [1, "sme-layout-absolute", "sme-position-inset-none", 3, "level", "showBackdrop", "allowBackgroundInteraction", "clicked"], ["aria-modal", "true", 3, "ngClass"], ["class", "sme-button-trigger sme-button-auto-width sme-dialog-close-button", 3, "title", "click", 4, "ngIf"], [1, "sme-position-flex-none", "sme-focus-zone"], [1, "sme-layout-relative", "sme-position-flex-auto", "sme-padding-horizontal-lg", "sme-arrange-overflow-auto-y", "sme-arrange-overflow-hide-x", "sme-focus-zone", "sme-layout-responsive-zone-xs", "sme-dialog-content-wrapper"], ["class", "sme-position-flex-none sme-focus-zone sme-padding-horizontal-lg sme-padding-vertical-sm", 4, "ngIf"], ["class", "sme-screen-reader", 3, "id", 4, "ngIf"], [1, "sme-button-trigger", "sme-button-auto-width", "sme-dialog-close-button", 3, "title", "click"], [1, "sme-icon", "sme-icon-cancel"], [1, "sme-position-flex-none", "sme-focus-zone", "sme-padding-horizontal-lg", "sme-padding-vertical-sm"], [1, "sme-screen-reader", 3, "id"]], template: function DialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
392
402
|
i0.ɵɵprojectionDef(_c1);
|
|
393
|
-
i0.ɵɵtemplate(0, DialogComponent_sme_backdrop_0_Template,
|
|
403
|
+
i0.ɵɵtemplate(0, DialogComponent_sme_backdrop_0_Template, 10, 12, "sme-backdrop", 0);
|
|
394
404
|
} if (rf & 2) {
|
|
395
405
|
i0.ɵɵproperty("ngIf", ctx.visible);
|
|
396
406
|
} }, dependencies: [i1.BackdropComponent, i2.NgClass, i2.NgIf, i3.TooltipDirective], encapsulation: 2 });
|
|
@@ -402,11 +412,13 @@ __decorate([
|
|
|
402
412
|
], DialogComponent.prototype, "autoFocus", null);
|
|
403
413
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DialogComponent, [{
|
|
404
414
|
type: Component,
|
|
405
|
-
args: [{ selector: 'sme-dialog', template: "<sme-backdrop *ngIf=\"visible\" [level]=\"dialogLevel\" (clicked)=\"!!clickBackdrop ? onBackgroundClicked() : ''\"\r\n [showBackdrop]=\"showBackdrop\" [allowBackgroundInteraction]=\"allowBackgroundInteraction\"\r\n class=\"sme-layout-absolute sme-position-inset-none\">\r\n <div [ngClass]=\"dialogClasses\" [attr.role]=\"dialogRole\" [attr.aria-hidden]=\"!visible\"\r\n [attr.aria-labelledby]=\"ariaLabel ? idBag.ariaLabelSpan :'sme-dialog-title'\"\r\n [attr.aria-describedby]=\"ariaDescription ? idBag.ariaDescriptionSpan : 'sme-dialog-desc'\" aria-modal=\"true\">\r\n <button *ngIf=\"closeButton\" class=\"sme-button-trigger sme-button-auto-width sme-dialog-close-button\"\r\n (click)=\"onCloseClicked()\" [attr.aria-label]=\"strings.MsftSmeShell.Angular.Common.close\"\r\n [title]=\"strings.MsftSmeShell.Angular.Common.close\">\r\n <span class=\"sme-icon sme-icon-cancel\"></span>\r\n </button>\r\n <div class=\"sme-position-flex-none sme-focus-zone\">\r\n <ng-content select=\"sme-dialog-header\"></ng-content>\r\n </div>\r\n <div class=\"sme-layout-relative sme-position-flex-auto sme-padding-horizontal-lg sme-arrange-overflow-auto-y sme-arrange-overflow-hide-x sme-focus-zone sme-layout-responsive-zone-xs sme-dialog-content-wrapper\">\r\n <ng-content select=\"sme-dialog-content\"></ng-content>\r\n </div>\r\n <div class=\"sme-position-flex-none sme-focus-zone sme-padding-horizontal-lg sme-padding-vertical-sm\">\r\n <ng-content select=\"sme-dialog-footer\"></ng-content>\r\n </div>\r\n </div>\r\n <span *ngIf=\"ariaLabel\" class=\"sme-screen-reader\" [id]=\"idBag.ariaLabelSpan\">{{ariaLabel}}</span>\r\n <span *ngIf=\"ariaDescription\" class=\"sme-screen-reader\" [id]=\"idBag.ariaDescriptionSpan\">{{ariaDescription}}</span>\r\n</sme-backdrop>\r\n" }]
|
|
415
|
+
args: [{ selector: 'sme-dialog', template: "<sme-backdrop *ngIf=\"visible\" [level]=\"dialogLevel\" (clicked)=\"!!clickBackdrop ? onBackgroundClicked() : ''\"\r\n [showBackdrop]=\"showBackdrop\" [allowBackgroundInteraction]=\"allowBackgroundInteraction\"\r\n class=\"sme-layout-absolute sme-position-inset-none\">\r\n <div [ngClass]=\"dialogClasses\" [attr.role]=\"dialogRole\" [attr.aria-hidden]=\"!visible\"\r\n [attr.aria-labelledby]=\"ariaLabel ? idBag.ariaLabelSpan :'sme-dialog-title'\"\r\n [attr.aria-describedby]=\"ariaDescription ? idBag.ariaDescriptionSpan : 'sme-dialog-desc'\" aria-modal=\"true\">\r\n <button *ngIf=\"closeButton\" class=\"sme-button-trigger sme-button-auto-width sme-dialog-close-button\"\r\n (click)=\"onCloseClicked()\" [attr.aria-label]=\"strings.MsftSmeShell.Angular.Common.close\"\r\n [title]=\"strings.MsftSmeShell.Angular.Common.close\">\r\n <span class=\"sme-icon sme-icon-cancel\"></span>\r\n </button>\r\n <div class=\"sme-position-flex-none sme-focus-zone\">\r\n <ng-content select=\"sme-dialog-header\"></ng-content>\r\n </div>\r\n <div class=\"sme-layout-relative sme-position-flex-auto sme-padding-horizontal-lg sme-arrange-overflow-auto-y sme-arrange-overflow-hide-x sme-focus-zone sme-layout-responsive-zone-xs sme-dialog-content-wrapper\">\r\n <ng-content select=\"sme-dialog-content\"></ng-content>\r\n </div>\r\n <div *ngIf=\"!hideFooter\" class=\"sme-position-flex-none sme-focus-zone sme-padding-horizontal-lg sme-padding-vertical-sm\">\r\n <ng-content select=\"sme-dialog-footer\"></ng-content>\r\n </div>\r\n </div>\r\n <span *ngIf=\"ariaLabel\" class=\"sme-screen-reader\" [id]=\"idBag.ariaLabelSpan\">{{ariaLabel}}</span>\r\n <span *ngIf=\"ariaDescription\" class=\"sme-screen-reader\" [id]=\"idBag.ariaDescriptionSpan\">{{ariaDescription}}</span>\r\n</sme-backdrop>\r\n" }]
|
|
406
416
|
}], function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Injector }]; }, { allowBackgroundInteraction: [{
|
|
407
417
|
type: Input
|
|
408
418
|
}], showBackdrop: [{
|
|
409
419
|
type: Input
|
|
420
|
+
}], hideFooter: [{
|
|
421
|
+
type: Input
|
|
410
422
|
}], clickBackdrop: [{
|
|
411
423
|
type: Input
|
|
412
424
|
}], ariaLabel: [{
|
|
@@ -427,4 +439,4 @@ __decorate([
|
|
|
427
439
|
type: HostListener,
|
|
428
440
|
args: ['document:keyup.escape']
|
|
429
441
|
}], autoFocus: [] }); })();
|
|
430
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUlSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7SUNWekQsaUNBRXNEO0lBRHBELCtLQUFTLGVBQUEsdUJBQWdCLENBQUEsSUFBQztJQUUxQiwwQkFBOEM7SUFDaEQsaUJBQVM7OztJQUZQLHdFQUFtRDtJQUR4Qiw4RUFBNkQ7OztJQWM1RixnQ0FBNkU7SUFBQSxZQUFhO0lBQUEsaUJBQU87OztJQUEvQywrQ0FBMEI7SUFBQyxlQUFhO0lBQWIsc0NBQWE7OztJQUMxRixnQ0FBeUY7SUFBQSxZQUFtQjtJQUFBLGlCQUFPOzs7SUFBM0QscURBQWdDO0lBQUMsZUFBbUI7SUFBbkIsNENBQW1COzs7O0lBdEI5Ryx1Q0FFc0Q7SUFGRiwrS0FBVyx3Q0FBa0IsNEJBQXFCLEdBQUcsRUFBRSxDQUFBLElBQUM7SUFHMUcsOEJBRThHO0lBQzVHLHFGQUlTO0lBQ1QsOEJBQW1EO0lBQ2pELGtCQUFvRDtJQUN0RCxpQkFBTTtJQUNOLDhCQUFrTjtJQUNoTixxQkFBcUQ7SUFDdkQsaUJBQU07SUFDTiw4QkFBcUc7SUFDbkcscUJBQW9EO0lBQ3RELGlCQUFNLEVBQUE7SUFFUixpRkFBaUc7SUFDakcsbUZBQW1IO0lBQ3JILGlCQUFlOzs7SUF2QmUsMENBQXFCLHFDQUFBLGlFQUFBO0lBRzVDLGVBQXlCO0lBQXpCLDhDQUF5QjtJQUFDLHlDQUF3QixnQ0FBQSx1RkFBQSxtR0FBQTtJQUc1QyxlQUFpQjtJQUFqQix5Q0FBaUI7SUFlckIsZUFBZTtJQUFmLHVDQUFlO0lBQ2YsZUFBcUI7SUFBckIsNkNBQXFCOzs7O0FESjlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBS0gsTUFBTSxPQUFPLHFCQUFxQjs7NkdBQXJCLHFCQUFxQjt1R0FBckIscUJBQXFCOztRQUZuQiw4QkFBK0Q7UUFBQSxrQkFBeUI7UUFBQSxpQkFBTTs7dUZBRWhHLHFCQUFxQjtjQUpqQyxTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsUUFBUSxFQUFFLGdHQUFnRzthQUM3Rzs7QUFRRCxNQUFNLE9BQU8sc0JBQXNCOzsrR0FBdEIsc0JBQXNCO3dHQUF0QixzQkFBc0I7O1FBRnBCLGtCQUF5Qjs7dUZBRTNCLHNCQUFzQjtjQUpsQyxTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsUUFBUSxFQUFFLDJCQUEyQjthQUN4Qzs7QUFTRCxNQUFNLE9BQU8scUJBQXFCOzs2R0FBckIscUJBQXFCO3VHQUFyQixxQkFBcUI7O1FBSG5CLDhCQUFzQztRQUNqRCxrQkFBeUI7UUFBQSxpQkFBTTs7dUZBRXRCLHFCQUFxQjtjQUxqQyxTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsUUFBUSxFQUFFO29DQUNzQjthQUNuQzs7QUFJRCxNQUFNLENBQU4sSUFBWSxpQkFLWDtBQUxELFdBQVksaUJBQWlCO0lBQ3pCLHVFQUFlLENBQUE7SUFDZix1RUFBZSxDQUFBO0lBQ2YsbUVBQWEsQ0FBQTtJQUNiLCtFQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBSzVCO0FBRUQsTUFBTSxPQUFPLFVBQVU7O0FBQ0wsZUFBSSxHQUFHLE1BQU0sQ0FBQztBQUNkLG1CQUFRLEdBQUcsV0FBVyxDQUFDO0FBQ3ZCLGtCQUFPLEdBQUcsU0FBUyxDQUFDO0FBQ3BCLHdCQUFhLEdBQUcsZ0JBQWdCLENBQUM7QUFDakMscUJBQVUsR0FBRyxZQUFZLENBQUM7QUFDMUIsbUJBQVEsR0FBRyxVQUFVLENBQUM7QUFDdEIseUJBQWMsR0FBRyxpQkFBaUIsQ0FBQztBQUNuQyx3QkFBYSxHQUFHLGdCQUFnQixDQUFDO0FBQ2pDLHVCQUFZLEdBQUcsY0FBYyxDQUFDO0FBR2hELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUM7QUFDbkMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQztBQU1uQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxpQkFBaUI7SUErR2xELFlBQW9CLFVBQXNCLEVBQzlCLGlCQUFvQyxFQUM1QyxRQUFrQjtRQUNsQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFIQSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFuR3pDLGVBQVUsR0FBRyxhQUFhLENBQUM7UUFFM0IsWUFBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLEVBQVcsQ0FBQztRQUV4QyxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQWN2Qjs7V0FFRztRQUNhLCtCQUEwQixHQUFHLEtBQUssQ0FBQztRQUVuRDs7O1dBR0c7UUFDYSxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUVwQzs7O1dBR0c7UUFDYSxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2Ysb0JBQWUsR0FBRyxFQUFFLENBQUM7UUErQnJDOzs7O1dBSUc7UUFDYSxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRWhDOztXQUVHO1FBQ2EsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEM7Ozs7V0FJRztRQUNhLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUlsQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBZXRCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUU1Qix5SEFBeUg7UUFDekgsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztRQUN2RCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUU5Qiw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7UUFDbEUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBL0hEOztPQUVHO0lBQ0gsSUFBYyxhQUFhO1FBQ3ZCLE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQztJQTRDRDs7Ozs7T0FLRztJQUNILElBQW9CLFVBQVUsQ0FBQyxRQUFpQjtRQUM1QyxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztTQUNyQzthQUFNO1lBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ1csVUFBVSxDQUFDLElBQVk7UUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQXlCRCxJQUFXLE9BQU8sQ0FBQyxPQUFnQjtRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFxQkQsOEZBQThGO0lBRXZGLE9BQU87UUFDVixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0JBQWtCO1FBQ3JCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDcEI7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFFSSxTQUFTO1FBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRTtZQUMvQiwyRkFBMkY7WUFDM0YsK0ZBQStGO1lBQy9GLG9DQUFvQztZQUNwQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7WUFDN0YsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hFLElBQUksY0FBYyxFQUFFO2dCQUNoQixjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDMUI7U0FDSjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUk7UUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxJQUFJO1FBQ1AsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNJLG1CQUFtQjtRQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjO1FBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDckMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0MsSUFBSSxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUU7WUFDbkQsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRVMsc0JBQXNCO1FBQzVCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxtQ0FBbUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQzNILE1BQU0saUJBQWlCLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBRXBGLElBQUksUUFBUSxLQUFLLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixDQUFDLENBQUM7U0FDMUY7YUFBTSxJQUFJLFFBQVEsS0FBSyxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxpQkFBaUIsRUFBRSw2QkFBNkIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1NBQy9GO2FBQU0sSUFBSSxRQUFRLEtBQUssVUFBVSxDQUFDLE9BQU8sRUFBRTtZQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsaUJBQWlCLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztZQUMxRixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO2FBQ3pEO1NBQ0o7YUFBTSxJQUFJLFFBQVEsS0FBSyxVQUFVLENBQUMsYUFBYSxFQUFFO1lBQzlDLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsNEJBQTRCLEVBQUUsa0NBQWtDLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztZQUMzSCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO2FBQ3pEO1NBQ0o7YUFBTSxJQUFJLFFBQVEsS0FBSyxVQUFVLENBQUMsVUFBVSxFQUFFO1lBQzNDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxpQkFBaUIsRUFBRSw4QkFBOEIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1NBQ2hHO2FBQU0sSUFBSSxRQUFRLEtBQUssVUFBVSxDQUFDLFFBQVEsRUFBRTtZQUN6QyxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLDRCQUE0QixFQUFFLG1CQUFtQixDQUFDLENBQUM7U0FDMUY7YUFBTSxJQUFJLFFBQVEsS0FBSyxVQUFVLENBQUMsY0FBYyxFQUFFO1lBQy9DLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsbUNBQW1DLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztTQUNqRzthQUFNLElBQUksUUFBUSxLQUFLLFVBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDOUMsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxrQ0FBa0MsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1NBQ2hHO2FBQU0sSUFBSSxRQUFRLEtBQUssVUFBVSxDQUFDLFlBQVksRUFBRTtZQUM3QyxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLHVCQUF1QixFQUFFLGdDQUFnQyxFQUFFLG1CQUFtQixDQUFDLENBQUM7U0FDdkg7UUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7UUFFN0IsZ0JBQWdCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztTQUNoRjthQUFNO1lBQ0gsdURBQXVEO1lBQ3ZELE1BQU0sVUFBVSxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM3RixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztTQUNsRztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNPLFdBQVc7UUFDakIsT0FBTztZQUNILGFBQWEsRUFBRSxFQUFFO1lBQ2pCLG1CQUFtQixFQUFFLEVBQUU7U0FDMUIsQ0FBQztJQUNOLENBQUM7O0FBbFFEOztHQUVHO0FBQ1ksNEJBQVksR0FBRyxDQUFDLENBQUM7aUdBWHZCLGVBQWU7aUdBQWYsZUFBZTswR0FBZixhQUFTOzs7UUN0RnRCLG9GQXVCZTs7UUF2QkEsa0NBQWE7O0FEb1B4QjtJQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Ozs7Z0RBYVg7dUZBM0tRLGVBQWU7Y0FKM0IsU0FBUzsyQkFDSSxZQUFZO29IQXFDTiwwQkFBMEI7a0JBQXpDLEtBQUs7WUFNVSxZQUFZO2tCQUEzQixLQUFLO1lBTVUsYUFBYTtrQkFBNUIsS0FBSztZQUNVLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxlQUFlO2tCQUE5QixLQUFLO1lBUWMsVUFBVTtrQkFBN0IsS0FBSztZQWVLLFVBQVU7a0JBRHBCLEtBQUs7WUFjVSxVQUFVO2tCQUF6QixLQUFLO1lBS1UsV0FBVztrQkFBMUIsS0FBSztZQU9VLGlCQUFpQjtrQkFBaEMsS0FBSztZQW9DQyxPQUFPO2tCQURiLFlBQVk7bUJBQUMsdUJBQXVCO1lBNEI5QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0NoZWNrZWQsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEZWJvdW5jZSB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvYmFzZS9kZWNvcmF0b3JzL2RlYm91bmNlLmRlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBEb20gfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RvbS9kb20nO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN0cmluZ3MgfSBmcm9tICcuLi8uLi9nZW5lcmF0ZWQvc3RyaW5ncyc7XHJcbmltcG9ydCB7IENvcmVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbW9uL2Jhc2UuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAc21lRG9jIHtAbGFiZWwgRGlhbG9nIEBpZCBzbWUtZGlhbG9nfVxyXG4gKlxyXG4gKiBAb3ZlcnZpZXdcclxuICogQGZpbGUge0BmaWxlcGF0aCAuL2V4YW1wbGVzL2RpYWxvZy1vdmVydmlldy5tZH1cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBCYXNpYyBVc2FnZSBAaWQgYmFzaWMtdXNhZ2V9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50LnRzIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2RpYWxvZy1leGFtcGxlLmNvbXBvbmVudC50c31cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9kaWFsb2ctZXhhbXBsZS5jb21wb25lbnQuaHRtbH1cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBEaWFsb2cgQ2hhaW4gQGlkIGRpYWxvZy1jaGFpbn1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQudHMgQGZpbGVwYXRoIC4vZXhhbXBsZXMvZGlhbG9nLWV4YW1wbGUtZGlhbG9nLWNoYWluLmNvbXBvbmVudC50c31cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9kaWFsb2ctZXhhbXBsZS1kaWFsb2ctY2hhaW4uY29tcG9uZW50Lmh0bWx9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgRnVsbCBTY3JlZW4gRGlhbG9nIEBpZCBmdWxsLXNjcmVlbi1kaWFsb2d9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50LnRzIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2RpYWxvZy1leGFtcGxlLWZ1bGwtc2NyZWVuLWRpYWxvZy5jb21wb25lbnQudHN9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvZGlhbG9nLWV4YW1wbGUtZnVsbC1zY3JlZW4tZGlhbG9nLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1kaWFsb2ctaGVhZGVyJyxcclxuICAgIHRlbXBsYXRlOiAnPGRpdiBjbGFzcz1cInNtZS1wYWRkaW5nLWhvcml6b250YWwtbGcgc21lLXBhZGRpbmctdmVydGljYWwtc21cIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9kaXY+J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nSGVhZGVyQ29tcG9uZW50IHtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1kaWFsb2ctY29udGVudCcsXHJcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dDb250ZW50Q29tcG9uZW50IHtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1kaWFsb2ctZm9vdGVyJyxcclxuICAgIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cInNtZS1sYXlvdXQtZGlhbG9nLWZvb3RlclwiPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PmBcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ0Zvb3RlckNvbXBvbmVudCB7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERpYWxvZ0Nsb3NlUmVhc29uIHtcclxuICAgIFNvZnREaXNtaXNzID0gMCxcclxuICAgIENsb3NlQnV0dG9uID0gMSxcclxuICAgIEVzY2FwZUtleSA9IDIsXHJcbiAgICBDb21wZXRpbmdEaWFsb2cgPSAzXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dNb2RlIHtcclxuICAgIHB1YmxpYyBzdGF0aWMgcGFuZSA9ICdwYW5lJztcclxuICAgIHB1YmxpYyBzdGF0aWMgd2lkZVBhbmUgPSAnd2lkZS1wYW5lJztcclxuICAgIHB1YmxpYyBzdGF0aWMgY29tcGFjdCA9ICdjb21wYWN0JztcclxuICAgIHB1YmxpYyBzdGF0aWMgY29tcGFjdFNxdWFyZSA9ICdjb21wYWN0LXNxdWFyZSc7XHJcbiAgICBwdWJsaWMgc3RhdGljIGZ1bGxzY3JlZW4gPSAnZnVsbHNjcmVlbic7XHJcbiAgICBwdWJsaWMgc3RhdGljIGNlbnRlcmVkID0gJ2NlbnRlcmVkJztcclxuICAgIHB1YmxpYyBzdGF0aWMgY2VudGVyZWRNZWRpdW0gPSAnY2VudGVyZWQtbWVkaXVtJztcclxuICAgIHB1YmxpYyBzdGF0aWMgY2VudGVyZWRMYXJnZSA9ICdjZW50ZXJlZC1sYXJnZSc7XHJcbiAgICBwdWJsaWMgc3RhdGljIG5vdGlmaWNhdGlvbiA9ICdub3RpZmljYXRpb24nO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgbW9kYWxEaWFsb2cgPSAnbW9kYWwnO1xyXG5leHBvcnQgY29uc3QgYWxlcnREaWFsb2cgPSAnYWxlcnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ0NvbXBvbmVudCBleHRlbmRzIENvcmVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ0RpYWxvZ0NvbXBvbmVudCc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdGF0aWMgY29uc3RhbnQgdG8gcHJvdmlkZSB1bmlxdWUgaWRzIGZvciBlYWNoIG1hc3RlciB2aWV3XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc3RhdGljIG5leHREaWFsb2dJZCA9IDA7XHJcbiAgICBwdWJsaWMgZGlhbG9nQ2xhc3Nlczogc3RyaW5nW107XHJcbiAgICBwdWJsaWMgZGlhbG9nUm9sZSA9ICdhbGVydGRpYWxvZyc7XHJcblxyXG4gICAgcHVibGljIHN0cmluZ3MgPSBNc2Z0U21lLmdldFN0cmluZ3M8U3RyaW5ncz4oKTtcclxuXHJcbiAgICBwdWJsaWMgZGlhbG9nTGV2ZWwgPSAxO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBiYWcgb2YgaWRzIGdlbmVyYXRlZCB1c2luZyBAc2VlIHttYXN0ZXJWaWV3SWR9IGFuZCB0aGUgbWFwIHJldHVybmVkIGZyb20gQHNlZSB7Y3JlYXRlSWRCYWd9XHJcbiAgICAgKi9cclxuICAgIGRlY2xhcmUgcHVibGljIGlkQmFnOiBNc2Z0U21lLlN0cmluZ01hcDxzdHJpbmc+O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdW5pcXVlIGlkIG9mIHRoaXMgbWFzdGVyIHZpZXcuXHJcbiAgICAgKiBUaGlzIGlzIHVzZWZ1bCB3aGVuIG1hc3RlclZpZXdzIG5lZWQgdG8gdXNlIGFuIElEIGJ1dCBtYXkgYXBwZWFyIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1lIHBhZ2UuXHJcbiAgICAgKiBVc2luZyB0aGlzIElEIGFzIHRoZSBiYXNpcyBmb3IgdGhlIGNvbnRyb2xzIGludGVybmFsIElEcyBnZW5lcmF0ZWQgaW4gQHNlZSB7Y3JlYXRlSWRCYWd9IGtlZXBzIHRoZSBJRHMgdW5pcXVlLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZGlhbG9nSWQ6IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBtb2RlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXaGV0aGVyIHRvIGFsbG93IGludGVyYWN0aW9uIHdpdGggZWxlbWVudHMgZnJvbSBvdXRzaWRlIHRoZSBkaWFsb2cgZXNwZWNpYWxseSB0byBzdXBwb3J0IHRoZSBob3ZlcmluZyBldmVudHMuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBhbGxvd0JhY2tncm91bmRJbnRlcmFjdGlvbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0byByZW5kZXIgdGhlIGRpYWxvZyBiYWNrZ3JvdW5kLiBGYWxzZSB0byBoaWRlIHRoZSBkaWFsb2cgY29udGFpbmVyIGFuZCBtYWtlIHRoZSBiYWNrZ3JvdW5kIHRyYW5zcGFyZW50LlxyXG4gICAgICogVGhlIGJhY2tncm91bmQgY29sb3IgdGhlbiB3aWxsIGJlIGJhc2VkIG9uIHRoZSBkaWFsb2cgYm9keS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHNob3dCYWNrZHJvcCA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXaGV0aGVyIHRvIGVuYWJsZSB0aGUgZmVhdHVyZSBvZiBjbGlja2luZyBvdXRzaWRlIG9mIHRoZSBkaWFsb2cgdG8gY2xvc2UgdGhlIGN1cnJlbnQgZGlhbG9nLlxyXG4gICAgICogVHJ1ZSBtZWFucyBjbGlja2luZyBvdXRzaWRlIHRoZSBkaWFsb2cgd2lsbCBjbG9zZSB0aGUgZGlhbG9nLiBXZSB3YW50IHRoaXMgdG8gYmUgc2V0IHRvIGZhbHNlIHdoZW4gdGhlcmUgYXJlIGZvcm1zIGluIHRoZSBkaWFsb2cuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBjbGlja0JhY2tkcm9wID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBhcmlhTGFiZWwgPSAnJztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBhcmlhRGVzY3JpcHRpb24gPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgd2hldGhlciB0aGlzIHNob3VsZCBiZSBhbiBhY3Rpb24gcGFuZSBvciBhIGNlbnRlcmVkIGRpYWxvZ1xyXG4gICAgICpcclxuICAgICAqIEBkZXByZWNhdGVkIFVzZSBkaWFsb2dNb2RlIGluc3RlYWRcclxuICAgICAqIEBwYXJhbSBuZXdWYWx1ZSBpZiB0cnVlLCB1c2VzIGEgbGVmdCBwYW5lIGRpYWxvZywgb3RoZXJ3aXNlIGEgY2VudGVyZWQgZGlhbG9nXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgYWN0aW9uUGFuZShuZXdWYWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChuZXdWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ01vZGUgPSBEaWFsb2dNb2RlLnBhbmU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dNb2RlID0gRGlhbG9nTW9kZS5jZW50ZXJlZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2V0RGlhbG9nTW9kZUZyb21JbnB1dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHRoZSBkaWFsb2cgbW9kZSB0byB1c2VcclxuICAgICAqIEBzZWUgRGlhbG9nTW9kZVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBkaWFsb2dNb2RlKG1vZGU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMubW9kZSA9IG1vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBkaWFsb2dNb2RlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaWFsb2cgdHlwZXMuIE1vc3RseSB1c2VkIGZvciBhY2Nlc3NpYmlsaXR5LiBWYWxpZCB2YWx1ZXM6XHJcbiAgICAgKiBAc2VlIG1vZGFsRGlhbG9nID0gJ21vZGFsJztcclxuICAgICAqIEBzZWUgYWxlcnREaWFsb2cgPSBcImFsZXJ0XCI7XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBkaWFsb2dUeXBlID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFnIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBkaWFsb2cgc2hvdWxkIGhhdmUgYSBjbG9zZSBidXR0b24gaW4gdG9wIHJpZ2h0IG9yIG5vdFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgY2xvc2VCdXR0b24gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbXBhY3QgZGlhbG9nIGNhbiBiZSBmdWxsIGhlaWdodCB3aGVuIGRpc3BsYXlpbmcgb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHNjcmVlbi5cclxuICAgICAqIEl0IGNhbiBhbHNvIGJlIGRpc3BsYXllZCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzY3JlZW4gdGhhdCBuZWVkcyB0byBiZSBoYXZpbmcgcGFkZGluZ3MgdG8gZWFjaCBkaXJlY3Rpb24uXHJcbiAgICAgKiBUaGlzIGNvbXBhY3RGdWxsSGVpZ2h0IHRvIHRydWUgd2lsbCBhbHdheXMgYmUgMTAwJSBoZWlnaHQuIE90aGVyd2lzZSBjc3Mgd291bGQgY29udHJvbCB0aGUgbWF4IGhlaWdodC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGNvbXBhY3RGdWxsSGVpZ2h0ID0gZmFsc2U7XHJcblxyXG4gICAgcHVibGljIGNsb3NlUmVxdWVzdGVkOiBTdWJqZWN0PERpYWxvZ0Nsb3NlUmVhc29uPjtcclxuXHJcbiAgICBwcml2YXRlIGRvQXV0b0ZvY3VzID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIGlzVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNldCB2aXNpYmxlKHZpc2libGU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHZpc2libGU7XHJcbiAgICAgICAgdGhpcy5kb0F1dG9Gb2N1cyA9IHZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB2aXNpYmxlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG5cclxuICAgICAgICB0aGlzLm1vZGUgPSBEaWFsb2dNb2RlLnBhbmU7XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSBjbG9zZVJlcXVlc3RlZCBzdWJqZWN0IHRvIG5vdGlmeSBkaWFsb2dzIHdoZW4gYSBjbG9zZSBpcyByZXF1ZXN0ZWQgYW5kIGhvdyBpdCB3YXMgcmVxdWVzdGVkIChEaWFsb2dDbG9zZVJlYXNvbilcclxuICAgICAgICB0aGlzLmNsb3NlUmVxdWVzdGVkID0gbmV3IFN1YmplY3Q8RGlhbG9nQ2xvc2VSZWFzb24+KCk7XHJcbiAgICAgICAgdGhpcy5zZXREaWFsb2dNb2RlRnJvbUlucHV0KCk7XHJcblxyXG4gICAgICAgIC8vIHNldHVwIGRpYWxvZyBpZCBhbmQgaWRCYWdcclxuICAgICAgICB0aGlzLmRpYWxvZ0lkID0gRGlhbG9nQ29tcG9uZW50Lm5leHREaWFsb2dJZCsrO1xyXG4gICAgICAgIHRoaXMuaWRCYWcgPSB0aGlzLmNyZWF0ZUlkQmFnKCk7XHJcbiAgICAgICAgTXNmdFNtZS5mb3JFYWNoS2V5KHRoaXMuaWRCYWcsIChrZXkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pZEJhZ1trZXldID0gYGRpYWxvZy0ke3RoaXMuZGlhbG9nSWQudG9TdHJpbmcoKX0tJHtrZXl9YDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBkb2N1bWVudDprZXl1cC5lc2NhcGUgaXMgdXNlZCBzbyB0aGF0IGEgZGlhbG9nIGlzIG5vdCBjbG9zZWQgd2hlbiB0cnlpbmcgdG8gY2xvc2UgYSB0b29sdGlwXHJcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cC5lc2NhcGUnKVxyXG4gICAgcHVibGljIG9uS2V5VXAoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xyXG4gICAgICAgICAgICB0aGlzLm9uRXNjYXBlUHJlc3NlZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuZ3VsYXIgTGlmZSBDeWNsZSBob29rIGZvciBBZnRlciBWaWV3IENoZWNrZWQuXHJcbiAgICAgKiBXaGVuIHRoZSB2aXNpYmlsaXR5IGNoYW5nZXMsIHdlIGFyZSBnb2luZyB0byBmb2N1cyBvbiB0aGUgZmlyc3QgZWxlbWVudCB0aGF0IGhhcyB0aGUgYXV0b2ZvY3VzIGF0dHJpYnV0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmRvQXV0b0ZvY3VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0b0ZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGxldGVkIHRoZSBjbG9zZVJlcXVlc3RlZCBzdWJqZWN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmNsb3NlUmVxdWVzdGVkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBdXRvIGZvY3VzIG9uIGZpcnN0IGVsZW1lbnQgdGhhdCBpcyBmb2N1c2FibGVcclxuICAgICAqL1xyXG4gICAgQERlYm91bmNlKDApXHJcbiAgICBwdWJsaWMgYXV0b0ZvY3VzKCkge1xyXG4gICAgICAgIHRoaXMuZG9BdXRvRm9jdXMgPSBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgLy8gSWYgdGhlIGRpYWxvZyBoYXMgYSBsb2FkaW5nIHdoZWVsLCBmb2N1cyBmaXJzdCBnb2VzIHRvIHRoZSBsb2FkaW5nIHdoZWVsIHRoZW4gZ2V0cyBsb3N0LlxyXG4gICAgICAgICAgICAvLyBUTyBhdm9pZCB0aGlzLCB3ZSBnZXQgdGhlIHBhcmVudCBlbGVtZW50IG9yIG5hdGl2ZSBlbGVtZW50IG9mIHRoZSBkaWFsb2csIHRoZW4gZ2V0IHRoZSBmaXJzdFxyXG4gICAgICAgICAgICAvLyBmb2N1c2FibGUgZWxlbWVudCBpbiB0aGF0IGVsZW1lbnRcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQgfHwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID0gRG9tLmdldEZpcnN0Rm9jdXNhYmxlRGVzY2VuZGVudChlbGVtZW50KTtcclxuICAgICAgICAgICAgaWYgKGZpcnN0Rm9jdXNhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICBmaXJzdEZvY3VzYWJsZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvd3MgdGhlIGRpYWxvZy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNob3coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhpZGVzIHRoZSBkaWFsb2cuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTm90aWZpZXMgY2xvc2VSZXF1ZXN0ZWQgc3Vic2NyaWJlcnMgdGhhdCB0aGUgYmFja2Ryb3AgaGFzIGJlZW4gY2xpY2tlZCwgcmVxdWVzdGluZyBhIHNvZnQgZGlzbWlzc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25CYWNrZ3JvdW5kQ2xpY2tlZCgpIHtcclxuICAgICAgICB0aGlzLmNsb3NlUmVxdWVzdGVkLm5leHQoRGlhbG9nQ2xvc2VSZWFzb24uU29mdERpc21pc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTm90aWZpZXMgY2xvc2VSZXF1ZXN0ZWQgc3Vic2NyaWJlcnMgdGhhdCB0aGUgY2xvc2UgYnV0dG9uIGhhcyBiZWVuIHByZXNzZWQsIHJlcXVlc3RpbmcgYSBjbG9zZSBidXR0b24gZGlzbWlzc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25DbG9zZUNsaWNrZWQoKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVJlcXVlc3RlZC5uZXh0KERpYWxvZ0Nsb3NlUmVhc29uLkNsb3NlQnV0dG9uKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Fc2NhcGVQcmVzc2VkKCkge1xyXG4gICAgICAgIHRoaXMuY2xvc2VSZXF1ZXN0ZWQubmV4dChEaWFsb2dDbG9zZVJlYXNvbi5Fc2NhcGVLZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgY29uc3QgZGlhbG9nTW9kZUNoYW5nZSA9IGNoYW5nZXNbJ2RpYWxvZ01vZGUnXTtcclxuICAgICAgICBpZiAoZGlhbG9nTW9kZUNoYW5nZSAmJiBkaWFsb2dNb2RlQ2hhbmdlLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldERpYWxvZ01vZGVGcm9tSW5wdXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldERpYWxvZ01vZGVGcm9tSW5wdXQoKSB7XHJcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLmRpYWxvZ01vZGUudG9Mb3dlckNhc2UoKS50cmltKCk7XHJcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IFsnc21lLWxheW91dC1hYnNvbHV0ZScsICdzbWUtc2NoZW1lLWRpYWxvZycsICdzbWUtYW5pbWF0aW9uLXRyYW5zaXRpb24td2lkdGgteHMnLCAnc21lLXJlc3BvbnNpdmUtZGlhbG9nJ107XHJcbiAgICAgICAgY29uc3QgY29tbW9uUGFuZUNsYXNzZXMgPSBbJ3NtZS1wb3NpdGlvbi12ZXJ0aWNhbC1ub25lJywgJ3NtZS1wb3NpdGlvbi1yaWdodC1ub25lJ107XHJcblxyXG4gICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gRGlhbG9nTW9kZS5wYW5lKSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCguLi5jb21tb25QYW5lQ2xhc3NlcywgJ3NtZS1sYXlvdXQtZGlhbG9nLXBhbmUnLCAnc21lLXNoYWRvdy1hY3Rpb24tcGFuZScpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUud2lkZVBhbmUpIHtcclxuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKC4uLmNvbW1vblBhbmVDbGFzc2VzLCAnc21lLWxheW91dC1kaWFsb2ctd2lkZS1wYW5lJywgJ3NtZS1zaGFkb3ctYWN0aW9uLXBhbmUnKTtcclxuICAgICAgICB9IGVsc2UgaWYgKG5ld1ZhbHVlID09PSBEaWFsb2dNb2RlLmNvbXBhY3QpIHtcclxuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKC4uLmNvbW1vblBhbmVDbGFzc2VzLCAnc21lLWxheW91dC1kaWFsb2ctY29tcGFjdCcsICdzbWUtc2hhZG93LWFjdGlvbi1wYW5lJyk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhY3RGdWxsSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NtZS1sYXlvdXQtZGlhbG9nLWNvbXBhY3QtZnVsbC1oZWlnaHQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUuY29tcGFjdFNxdWFyZSkge1xyXG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NtZS1wb3NpdGlvbi1jZW50ZXInLCAnc21lLWxheW91dC1kaWFsb2ctY2VudGVyZWQnLCAnc21lLWxheW91dC1kaWFsb2ctY29tcGFjdC1zcXVhcmUnLCAnc21lLXNoYWRvdy1kaWFsb2cnKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY29tcGFjdEZ1bGxIZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnc21lLWxheW91dC1kaWFsb2ctY29tcGFjdC1mdWxsLWhlaWdodCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZSA9PT0gRGlhbG9nTW9kZS5mdWxsc2NyZWVuKSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCguLi5jb21tb25QYW5lQ2xhc3NlcywgJ3NtZS1sYXlvdXQtZGlhbG9nLWZ1bGxzY3JlZW4nLCAnc21lLXNoYWRvdy1hY3Rpb24tcGFuZScpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUuY2VudGVyZWQpIHtcclxuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdzbWUtcG9zaXRpb24tY2VudGVyJywgJ3NtZS1sYXlvdXQtZGlhbG9nLWNlbnRlcmVkJywgJ3NtZS1zaGFkb3ctZGlhbG9nJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZSA9PT0gRGlhbG9nTW9kZS5jZW50ZXJlZE1lZGl1bSkge1xyXG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NtZS1wb3NpdGlvbi1jZW50ZXInLCAnc21lLWxheW91dC1kaWFsb2ctY2VudGVyZWQtbWVkaXVtJywgJ3NtZS1zaGFkb3ctZGlhbG9nJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZSA9PT0gRGlhbG9nTW9kZS5jZW50ZXJlZExhcmdlKSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnc21lLXBvc2l0aW9uLWNlbnRlcicsICdzbWUtbGF5b3V0LWRpYWxvZy1jZW50ZXJlZC1sYXJnZScsICdzbWUtc2hhZG93LWRpYWxvZycpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUubm90aWZpY2F0aW9uKSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnc21lLXBvc2l0aW9uLXRvcC1zbScsICdzbWUtcG9zaXRpb24tcmlnaHQtc20nLCAnc21lLWxheW91dC1kaWFsb2ctbm90aWZpY2F0aW9uJywgJ3NtZS1zaGFkb3ctZGlhbG9nJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjbGFzc2VzLnB1c2goJ3NtZS1hcnJhbmdlLXN0YWNrLXYnLCAnc21lLWFycmFuZ2Utb3ZlcmZsb3ctYXV0bycpO1xyXG5cclxuICAgICAgICB0aGlzLmRpYWxvZ0NsYXNzZXMgPSBjbGFzc2VzO1xyXG5cclxuICAgICAgICAvLyBhY2Nlc3NpYmlsaXR5XHJcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nVHlwZSkge1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JvbGUgPSB0aGlzLmRpYWxvZ1R5cGUgPT09IG1vZGFsRGlhbG9nID8gJ2RpYWxvZycgOiAnYWxlcnRkaWFsb2cnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIGJ5IGRlZmF1bHQgY2VudGVyZWQgZGlhbG9ncyBhcmUgY29uc2lkZXJlZCBhcyBhbGVydHNcclxuICAgICAgICAgICAgY29uc3QgYWxlcnRNb2RlcyA9IFtEaWFsb2dNb2RlLmNlbnRlcmVkLCBEaWFsb2dNb2RlLmNlbnRlcmVkTGFyZ2UsIERpYWxvZ01vZGUuY29tcGFjdFNxdWFyZV07XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUm9sZSA9IGFsZXJ0TW9kZXMuc29tZShtb2RlID0+IHRoaXMuZGlhbG9nTW9kZSA9PT0gbW9kZSkgPyAnYWxlcnRkaWFsb2cnIDogJ2RpYWxvZyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyB0aGUgaWRCYWcgdXNlZCBieSB0aGlzIGNvbXBvbmVudCB0byBzdG9yZSB1bmlxdWUgZWxlbWVudCBpZHMuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBjcmVhdGVJZEJhZygpOiBNc2Z0U21lLlN0cmluZ01hcDxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBhcmlhTGFiZWxTcGFuOiAnJyxcclxuICAgICAgICAgICAgYXJpYURlc2NyaXB0aW9uU3BhbjogJydcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbiIsIjxzbWUtYmFja2Ryb3AgKm5nSWY9XCJ2aXNpYmxlXCIgW2xldmVsXT1cImRpYWxvZ0xldmVsXCIgKGNsaWNrZWQpPVwiISFjbGlja0JhY2tkcm9wID8gb25CYWNrZ3JvdW5kQ2xpY2tlZCgpIDogJydcIlxyXG4gIFtzaG93QmFja2Ryb3BdPVwic2hvd0JhY2tkcm9wXCIgW2FsbG93QmFja2dyb3VuZEludGVyYWN0aW9uXT1cImFsbG93QmFja2dyb3VuZEludGVyYWN0aW9uXCJcclxuICBjbGFzcz1cInNtZS1sYXlvdXQtYWJzb2x1dGUgc21lLXBvc2l0aW9uLWluc2V0LW5vbmVcIj5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cImRpYWxvZ0NsYXNzZXNcIiBbYXR0ci5yb2xlXT1cImRpYWxvZ1JvbGVcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCIhdmlzaWJsZVwiXHJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsID8gaWRCYWcuYXJpYUxhYmVsU3BhbiA6J3NtZS1kaWFsb2ctdGl0bGUnXCJcclxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaXB0aW9uID8gaWRCYWcuYXJpYURlc2NyaXB0aW9uU3BhbiA6ICdzbWUtZGlhbG9nLWRlc2MnXCIgYXJpYS1tb2RhbD1cInRydWVcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJjbG9zZUJ1dHRvblwiIGNsYXNzPVwic21lLWJ1dHRvbi10cmlnZ2VyIHNtZS1idXR0b24tYXV0by13aWR0aCBzbWUtZGlhbG9nLWNsb3NlLWJ1dHRvblwiXHJcbiAgICAgIChjbGljayk9XCJvbkNsb3NlQ2xpY2tlZCgpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJzdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkNvbW1vbi5jbG9zZVwiXHJcbiAgICAgIFt0aXRsZV09XCJzdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkNvbW1vbi5jbG9zZVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLWNhbmNlbFwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGRpdiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLWZvY3VzLXpvbmVcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic21lLWRpYWxvZy1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzbWUtbGF5b3V0LXJlbGF0aXZlIHNtZS1wb3NpdGlvbi1mbGV4LWF1dG8gc21lLXBhZGRpbmctaG9yaXpvbnRhbC1sZyBzbWUtYXJyYW5nZS1vdmVyZmxvdy1hdXRvLXkgc21lLWFycmFuZ2Utb3ZlcmZsb3ctaGlkZS14IHNtZS1mb2N1cy16b25lIHNtZS1sYXlvdXQtcmVzcG9uc2l2ZS16b25lLXhzIHNtZS1kaWFsb2ctY29udGVudC13cmFwcGVyXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNtZS1kaWFsb2ctY29udGVudFwiPjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLWZvY3VzLXpvbmUgc21lLXBhZGRpbmctaG9yaXpvbnRhbC1sZyBzbWUtcGFkZGluZy12ZXJ0aWNhbC1zbVwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzbWUtZGlhbG9nLWZvb3RlclwiPjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxzcGFuICpuZ0lmPVwiYXJpYUxhYmVsXCIgY2xhc3M9XCJzbWUtc2NyZWVuLXJlYWRlclwiIFtpZF09XCJpZEJhZy5hcmlhTGFiZWxTcGFuXCI+e3thcmlhTGFiZWx9fTwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cImFyaWFEZXNjcmlwdGlvblwiIGNsYXNzPVwic21lLXNjcmVlbi1yZWFkZXJcIiBbaWRdPVwiaWRCYWcuYXJpYURlc2NyaXB0aW9uU3BhblwiPnt7YXJpYURlc2NyaXB0aW9ufX08L3NwYW4+XHJcbjwvc21lLWJhY2tkcm9wPlxyXG4iXX0=
|
|
442
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUlSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7SUNWekQsaUNBRXNEO0lBRHBELCtLQUFTLGVBQUEsdUJBQWdCLENBQUEsSUFBQztJQUUxQiwwQkFBOEM7SUFDaEQsaUJBQVM7OztJQUZQLHdFQUFtRDtJQUR4Qiw4RUFBNkQ7OztJQVUxRiwrQkFBeUg7SUFDdkgscUJBQW9EO0lBQ3RELGlCQUFNOzs7SUFFUixnQ0FBNkU7SUFBQSxZQUFhO0lBQUEsaUJBQU87OztJQUEvQywrQ0FBMEI7SUFBQyxlQUFhO0lBQWIsc0NBQWE7OztJQUMxRixnQ0FBeUY7SUFBQSxZQUFtQjtJQUFBLGlCQUFPOzs7SUFBM0QscURBQWdDO0lBQUMsZUFBbUI7SUFBbkIsNENBQW1COzs7O0lBdEI5Ryx1Q0FFc0Q7SUFGRiwrS0FBVyx3Q0FBa0IsNEJBQXFCLEdBQUcsRUFBRSxDQUFBLElBQUM7SUFHMUcsOEJBRThHO0lBQzVHLHFGQUlTO0lBQ1QsOEJBQW1E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O0FBQ1ksNEJBQVksR0FBRyxDQUFDLENBQUM7aUdBWHZCLGVBQWU7aUdBQWYsZUFBZTswR0FBZixhQUFTOzs7UUN0RnRCLG9GQXVCZTs7UUF2QkEsa0NBQWE7O0FEeVB4QjtJQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Ozs7Z0RBYVg7dUZBaExRLGVBQWU7Y0FKM0IsU0FBUzsyQkFDSSxZQUFZO29IQXFDTiwwQkFBMEI7a0JBQXpDLEtBQUs7WUFNVSxZQUFZO2tCQUEzQixLQUFLO1lBS1UsVUFBVTtrQkFBekIsS0FBSztZQU1VLGFBQWE7a0JBQTVCLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1UsZUFBZTtrQkFBOUIsS0FBSztZQVFjLFVBQVU7a0JBQTdCLEtBQUs7WUFlSyxVQUFVO2tCQURwQixLQUFLO1lBY1UsVUFBVTtrQkFBekIsS0FBSztZQUtVLFdBQVc7a0JBQTFCLEtBQUs7WUFPVSxpQkFBaUI7a0JBQWhDLEtBQUs7WUFvQ0MsT0FBTztrQkFEYixZQUFZO21CQUFDLHVCQUF1QjtZQTRCOUIsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdDaGVja2VkLFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIFNpbXBsZUNoYW5nZXNcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGVib3VuY2UgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2Jhc2UvZGVjb3JhdG9ycy9kZWJvdW5jZS5kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgRG9tIH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9kb20vZG9tJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdHJpbmdzIH0gZnJvbSAnLi4vLi4vZ2VuZXJhdGVkL3N0cmluZ3MnO1xyXG5pbXBvcnQgeyBDb3JlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbW1vbi9iYXNlLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICpcclxuICogQHNtZURvYyB7QGxhYmVsIERpYWxvZyBAaWQgc21lLWRpYWxvZ31cclxuICpcclxuICogQG92ZXJ2aWV3XHJcbiAqIEBmaWxlIHtAZmlsZXBhdGggLi9leGFtcGxlcy9kaWFsb2ctb3ZlcnZpZXcubWR9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgQmFzaWMgVXNhZ2UgQGlkIGJhc2ljLXVzYWdlfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9kaWFsb2ctZXhhbXBsZS5jb21wb25lbnQudHN9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvZGlhbG9nLWV4YW1wbGUuY29tcG9uZW50Lmh0bWx9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgRGlhbG9nIENoYWluIEBpZCBkaWFsb2ctY2hhaW59XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50LnRzIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2RpYWxvZy1leGFtcGxlLWRpYWxvZy1jaGFpbi5jb21wb25lbnQudHN9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvZGlhbG9nLWV4YW1wbGUtZGlhbG9nLWNoYWluLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEZ1bGwgU2NyZWVuIERpYWxvZyBAaWQgZnVsbC1zY3JlZW4tZGlhbG9nfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9kaWFsb2ctZXhhbXBsZS1mdWxsLXNjcmVlbi1kaWFsb2cuY29tcG9uZW50LnRzfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2RpYWxvZy1leGFtcGxlLWZ1bGwtc2NyZWVuLWRpYWxvZy5jb21wb25lbnQuaHRtbH1cclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtZGlhbG9nLWhlYWRlcicsXHJcbiAgICB0ZW1wbGF0ZTogJzxkaXYgY2xhc3M9XCJzbWUtcGFkZGluZy1ob3Jpem9udGFsLWxnIHNtZS1wYWRkaW5nLXZlcnRpY2FsLXNtXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PidcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ0hlYWRlckNvbXBvbmVudCB7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtZGlhbG9nLWNvbnRlbnQnLFxyXG4gICAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nQ29udGVudENvbXBvbmVudCB7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtZGlhbG9nLWZvb3RlcicsXHJcbiAgICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJzbWUtbGF5b3V0LWRpYWxvZy1mb290ZXJcIj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj5gXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dGb290ZXJDb21wb25lbnQge1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEaWFsb2dDbG9zZVJlYXNvbiB7XHJcbiAgICBTb2Z0RGlzbWlzcyA9IDAsXHJcbiAgICBDbG9zZUJ1dHRvbiA9IDEsXHJcbiAgICBFc2NhcGVLZXkgPSAyLFxyXG4gICAgQ29tcGV0aW5nRGlhbG9nID0gM1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGlhbG9nTW9kZSB7XHJcbiAgICBwdWJsaWMgc3RhdGljIHBhbmUgPSAncGFuZSc7XHJcbiAgICBwdWJsaWMgc3RhdGljIHdpZGVQYW5lID0gJ3dpZGUtcGFuZSc7XHJcbiAgICBwdWJsaWMgc3RhdGljIGNvbXBhY3QgPSAnY29tcGFjdCc7XHJcbiAgICBwdWJsaWMgc3RhdGljIGNvbXBhY3RTcXVhcmUgPSAnY29tcGFjdC1zcXVhcmUnO1xyXG4gICAgcHVibGljIHN0YXRpYyBmdWxsc2NyZWVuID0gJ2Z1bGxzY3JlZW4nO1xyXG4gICAgcHVibGljIHN0YXRpYyBjZW50ZXJlZCA9ICdjZW50ZXJlZCc7XHJcbiAgICBwdWJsaWMgc3RhdGljIGNlbnRlcmVkTWVkaXVtID0gJ2NlbnRlcmVkLW1lZGl1bSc7XHJcbiAgICBwdWJsaWMgc3RhdGljIGNlbnRlcmVkTGFyZ2UgPSAnY2VudGVyZWQtbGFyZ2UnO1xyXG4gICAgcHVibGljIHN0YXRpYyBub3RpZmljYXRpb24gPSAnbm90aWZpY2F0aW9uJztcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IG1vZGFsRGlhbG9nID0gJ21vZGFsJztcclxuZXhwb3J0IGNvbnN0IGFsZXJ0RGlhbG9nID0gJ2FsZXJ0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2cuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBDb3JlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNvdXJjZSBuYW1lIHRvIHVzZSBmb3IgbG9nZ2luZ1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGxvZ1NvdXJjZU5hbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuICdEaWFsb2dDb21wb25lbnQnO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3RhdGljIGNvbnN0YW50IHRvIHByb3ZpZGUgdW5pcXVlIGlkcyBmb3IgZWFjaCBtYXN0ZXIgdmlld1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBuZXh0RGlhbG9nSWQgPSAwO1xyXG4gICAgcHVibGljIGRpYWxvZ0NsYXNzZXM6IHN0cmluZ1tdO1xyXG4gICAgcHVibGljIGRpYWxvZ1JvbGUgPSAnYWxlcnRkaWFsb2cnO1xyXG5cclxuICAgIHB1YmxpYyBzdHJpbmdzID0gTXNmdFNtZS5nZXRTdHJpbmdzPFN0cmluZ3M+KCk7XHJcblxyXG4gICAgcHVibGljIGRpYWxvZ0xldmVsID0gMTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEEgYmFnIG9mIGlkcyBnZW5lcmF0ZWQgdXNpbmcgQHNlZSB7bWFzdGVyVmlld0lkfSBhbmQgdGhlIG1hcCByZXR1cm5lZCBmcm9tIEBzZWUge2NyZWF0ZUlkQmFnfVxyXG4gICAgICovXHJcbiAgICBkZWNsYXJlIHB1YmxpYyBpZEJhZzogTXNmdFNtZS5TdHJpbmdNYXA8c3RyaW5nPjtcclxuICAgIC8qKlxyXG4gICAgICogVGhlIHVuaXF1ZSBpZCBvZiB0aGlzIG1hc3RlciB2aWV3LlxyXG4gICAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiBtYXN0ZXJWaWV3cyBuZWVkIHRvIHVzZSBhbiBJRCBidXQgbWF5IGFwcGVhciBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBwYWdlLlxyXG4gICAgICogVXNpbmcgdGhpcyBJRCBhcyB0aGUgYmFzaXMgZm9yIHRoZSBjb250cm9scyBpbnRlcm5hbCBJRHMgZ2VuZXJhdGVkIGluIEBzZWUge2NyZWF0ZUlkQmFnfSBrZWVwcyB0aGUgSURzIHVuaXF1ZS5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGRpYWxvZ0lkOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgbW9kZTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0byBhbGxvdyBpbnRlcmFjdGlvbiB3aXRoIGVsZW1lbnRzIGZyb20gb3V0c2lkZSB0aGUgZGlhbG9nIGVzcGVjaWFsbHkgdG8gc3VwcG9ydCB0aGUgaG92ZXJpbmcgZXZlbnRzLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgYWxsb3dCYWNrZ3JvdW5kSW50ZXJhY3Rpb24gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdG8gcmVuZGVyIHRoZSBkaWFsb2cgYmFja2dyb3VuZC4gRmFsc2UgdG8gaGlkZSB0aGUgZGlhbG9nIGNvbnRhaW5lciBhbmQgbWFrZSB0aGUgYmFja2dyb3VuZCB0cmFuc3BhcmVudC5cclxuICAgICAqIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIHRoZW4gd2lsbCBiZSBiYXNlZCBvbiB0aGUgZGlhbG9nIGJvZHkuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93QmFja2Ryb3AgPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0byBoaWRlIHRoZSBkaWFsb2cgZm9vdGVyLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaGlkZUZvb3RlciA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0byBlbmFibGUgdGhlIGZlYXR1cmUgb2YgY2xpY2tpbmcgb3V0c2lkZSBvZiB0aGUgZGlhbG9nIHRvIGNsb3NlIHRoZSBjdXJyZW50IGRpYWxvZy5cclxuICAgICAqIFRydWUgbWVhbnMgY2xpY2tpbmcgb3V0c2lkZSB0aGUgZGlhbG9nIHdpbGwgY2xvc2UgdGhlIGRpYWxvZy4gV2Ugd2FudCB0aGlzIHRvIGJlIHNldCB0byBmYWxzZSB3aGVuIHRoZXJlIGFyZSBmb3JtcyBpbiB0aGUgZGlhbG9nLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgY2xpY2tCYWNrZHJvcCA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgYXJpYUxhYmVsID0gJyc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgYXJpYURlc2NyaXB0aW9uID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHdoZXRoZXIgdGhpcyBzaG91bGQgYmUgYW4gYWN0aW9uIHBhbmUgb3IgYSBjZW50ZXJlZCBkaWFsb2dcclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgZGlhbG9nTW9kZSBpbnN0ZWFkXHJcbiAgICAgKiBAcGFyYW0gbmV3VmFsdWUgaWYgdHJ1ZSwgdXNlcyBhIGxlZnQgcGFuZSBkaWFsb2csIG90aGVyd2lzZSBhIGNlbnRlcmVkIGRpYWxvZ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2V0IGFjdGlvblBhbmUobmV3VmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAobmV3VmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dNb2RlID0gRGlhbG9nTW9kZS5wYW5lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nTW9kZSA9IERpYWxvZ01vZGUuY2VudGVyZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldERpYWxvZ01vZGVGcm9tSW5wdXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGUgZGlhbG9nIG1vZGUgdG8gdXNlXHJcbiAgICAgKiBAc2VlIERpYWxvZ01vZGVcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgZGlhbG9nTW9kZShtb2RlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLm1vZGUgPSBtb2RlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZGlhbG9nTW9kZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tb2RlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGlhbG9nIHR5cGVzLiBNb3N0bHkgdXNlZCBmb3IgYWNjZXNzaWJpbGl0eS4gVmFsaWQgdmFsdWVzOlxyXG4gICAgICogQHNlZSBtb2RhbERpYWxvZyA9ICdtb2RhbCc7XHJcbiAgICAgKiBAc2VlIGFsZXJ0RGlhbG9nID0gXCJhbGVydFwiO1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgZGlhbG9nVHlwZSA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmxhZyB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgZGlhbG9nIHNob3VsZCBoYXZlIGEgY2xvc2UgYnV0dG9uIGluIHRvcCByaWdodCBvciBub3RcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGNsb3NlQnV0dG9uID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYWN0IGRpYWxvZyBjYW4gYmUgZnVsbCBoZWlnaHQgd2hlbiBkaXNwbGF5aW5nIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBzY3JlZW4uXHJcbiAgICAgKiBJdCBjYW4gYWxzbyBiZSBkaXNwbGF5ZWQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgc2NyZWVuIHRoYXQgbmVlZHMgdG8gYmUgaGF2aW5nIHBhZGRpbmdzIHRvIGVhY2ggZGlyZWN0aW9uLlxyXG4gICAgICogVGhpcyBjb21wYWN0RnVsbEhlaWdodCB0byB0cnVlIHdpbGwgYWx3YXlzIGJlIDEwMCUgaGVpZ2h0LiBPdGhlcndpc2UgY3NzIHdvdWxkIGNvbnRyb2wgdGhlIG1heCBoZWlnaHQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBjb21wYWN0RnVsbEhlaWdodCA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBjbG9zZVJlcXVlc3RlZDogU3ViamVjdDxEaWFsb2dDbG9zZVJlYXNvbj47XHJcblxyXG4gICAgcHJpdmF0ZSBkb0F1dG9Gb2N1cyA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBpc1Zpc2libGUgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzZXQgdmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgICAgIHRoaXMuZG9BdXRvRm9jdXMgPSB2aXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdmlzaWJsZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1Zpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuXHJcbiAgICAgICAgdGhpcy5tb2RlID0gRGlhbG9nTW9kZS5wYW5lO1xyXG5cclxuICAgICAgICAvLyBDcmVhdGUgY2xvc2VSZXF1ZXN0ZWQgc3ViamVjdCB0byBub3RpZnkgZGlhbG9ncyB3aGVuIGEgY2xvc2UgaXMgcmVxdWVzdGVkIGFuZCBob3cgaXQgd2FzIHJlcXVlc3RlZCAoRGlhbG9nQ2xvc2VSZWFzb24pXHJcbiAgICAgICAgdGhpcy5jbG9zZVJlcXVlc3RlZCA9IG5ldyBTdWJqZWN0PERpYWxvZ0Nsb3NlUmVhc29uPigpO1xyXG4gICAgICAgIHRoaXMuc2V0RGlhbG9nTW9kZUZyb21JbnB1dCgpO1xyXG5cclxuICAgICAgICAvLyBzZXR1cCBkaWFsb2cgaWQgYW5kIGlkQmFnXHJcbiAgICAgICAgdGhpcy5kaWFsb2dJZCA9IERpYWxvZ0NvbXBvbmVudC5uZXh0RGlhbG9nSWQrKztcclxuICAgICAgICB0aGlzLmlkQmFnID0gdGhpcy5jcmVhdGVJZEJhZygpO1xyXG4gICAgICAgIE1zZnRTbWUuZm9yRWFjaEtleSh0aGlzLmlkQmFnLCAoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaWRCYWdba2V5XSA9IGBkaWFsb2ctJHt0aGlzLmRpYWxvZ0lkLnRvU3RyaW5nKCl9LSR7a2V5fWA7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZG9jdW1lbnQ6a2V5dXAuZXNjYXBlIGlzIHVzZWQgc28gdGhhdCBhIGRpYWxvZyBpcyBub3QgY2xvc2VkIHdoZW4gdHJ5aW5nIHRvIGNsb3NlIGEgdG9vbHRpcFxyXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5dXAuZXNjYXBlJylcclxuICAgIHB1YmxpYyBvbktleVVwKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnZpc2libGUpIHtcclxuICAgICAgICAgICAgdGhpcy5vbkVzY2FwZVByZXNzZWQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbmd1bGFyIExpZmUgQ3ljbGUgaG9vayBmb3IgQWZ0ZXIgVmlldyBDaGVja2VkLlxyXG4gICAgICogV2hlbiB0aGUgdmlzaWJpbGl0eSBjaGFuZ2VzLCB3ZSBhcmUgZ29pbmcgdG8gZm9jdXMgb24gdGhlIGZpcnN0IGVsZW1lbnQgdGhhdCBoYXMgdGhlIGF1dG9mb2N1cyBhdHRyaWJ1dGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5kb0F1dG9Gb2N1cykge1xyXG4gICAgICAgICAgICB0aGlzLmF1dG9Gb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbXBsZXRlZCB0aGUgY2xvc2VSZXF1ZXN0ZWQgc3ViamVjdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVJlcXVlc3RlZC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXV0byBmb2N1cyBvbiBmaXJzdCBlbGVtZW50IHRoYXQgaXMgZm9jdXNhYmxlXHJcbiAgICAgKi9cclxuICAgIEBEZWJvdW5jZSgwKVxyXG4gICAgcHVibGljIGF1dG9Gb2N1cygpIHtcclxuICAgICAgICB0aGlzLmRvQXV0b0ZvY3VzID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBkaWFsb2cgaGFzIGEgbG9hZGluZyB3aGVlbCwgZm9jdXMgZmlyc3QgZ29lcyB0byB0aGUgbG9hZGluZyB3aGVlbCB0aGVuIGdldHMgbG9zdC5cclxuICAgICAgICAgICAgLy8gVE8gYXZvaWQgdGhpcywgd2UgZ2V0IHRoZSBwYXJlbnQgZWxlbWVudCBvciBuYXRpdmUgZWxlbWVudCBvZiB0aGUgZGlhbG9nLCB0aGVuIGdldCB0aGUgZmlyc3RcclxuICAgICAgICAgICAgLy8gZm9jdXNhYmxlIGVsZW1lbnQgaW4gdGhhdCBlbGVtZW50XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50IHx8IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9IERvbS5nZXRGaXJzdEZvY3VzYWJsZURlc2NlbmRlbnQoZWxlbWVudCk7XHJcbiAgICAgICAgICAgIGlmIChmaXJzdEZvY3VzYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgZmlyc3RGb2N1c2FibGUuZm9jdXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3dzIHRoZSBkaWFsb2cuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzaG93KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIaWRlcyB0aGUgZGlhbG9nLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGlkZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE5vdGlmaWVzIGNsb3NlUmVxdWVzdGVkIHN1YnNjcmliZXJzIHRoYXQgdGhlIGJhY2tkcm9wIGhhcyBiZWVuIGNsaWNrZWQsIHJlcXVlc3RpbmcgYSBzb2Z0IGRpc21pc3NcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uQmFja2dyb3VuZENsaWNrZWQoKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVJlcXVlc3RlZC5uZXh0KERpYWxvZ0Nsb3NlUmVhc29uLlNvZnREaXNtaXNzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE5vdGlmaWVzIGNsb3NlUmVxdWVzdGVkIHN1YnNjcmliZXJzIHRoYXQgdGhlIGNsb3NlIGJ1dHRvbiBoYXMgYmVlbiBwcmVzc2VkLCByZXF1ZXN0aW5nIGEgY2xvc2UgYnV0dG9uIGRpc21pc3NcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uQ2xvc2VDbGlja2VkKCkge1xyXG4gICAgICAgIHRoaXMuY2xvc2VSZXF1ZXN0ZWQubmV4dChEaWFsb2dDbG9zZVJlYXNvbi5DbG9zZUJ1dHRvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uRXNjYXBlUHJlc3NlZCgpIHtcclxuICAgICAgICB0aGlzLmNsb3NlUmVxdWVzdGVkLm5leHQoRGlhbG9nQ2xvc2VSZWFzb24uRXNjYXBlS2V5KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ01vZGVDaGFuZ2UgPSBjaGFuZ2VzWydkaWFsb2dNb2RlJ107XHJcbiAgICAgICAgaWYgKGRpYWxvZ01vZGVDaGFuZ2UgJiYgZGlhbG9nTW9kZUNoYW5nZS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXREaWFsb2dNb2RlRnJvbUlucHV0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBzZXREaWFsb2dNb2RlRnJvbUlucHV0KCkge1xyXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5kaWFsb2dNb2RlLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xyXG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSBbJ3NtZS1sYXlvdXQtYWJzb2x1dGUnLCAnc21lLXNjaGVtZS1kaWFsb2cnLCAnc21lLWFuaW1hdGlvbi10cmFuc2l0aW9uLXdpZHRoLXhzJywgJ3NtZS1yZXNwb25zaXZlLWRpYWxvZyddO1xyXG4gICAgICAgIGNvbnN0IGNvbW1vblBhbmVDbGFzc2VzID0gWydzbWUtcG9zaXRpb24tdmVydGljYWwtbm9uZScsICdzbWUtcG9zaXRpb24tcmlnaHQtbm9uZSddO1xyXG5cclxuICAgICAgICBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUucGFuZSkge1xyXG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goLi4uY29tbW9uUGFuZUNsYXNzZXMsICdzbWUtbGF5b3V0LWRpYWxvZy1wYW5lJywgJ3NtZS1zaGFkb3ctYWN0aW9uLXBhbmUnKTtcclxuICAgICAgICB9IGVsc2UgaWYgKG5ld1ZhbHVlID09PSBEaWFsb2dNb2RlLndpZGVQYW5lKSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCguLi5jb21tb25QYW5lQ2xhc3NlcywgJ3NtZS1sYXlvdXQtZGlhbG9nLXdpZGUtcGFuZScsICdzbWUtc2hhZG93LWFjdGlvbi1wYW5lJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZSA9PT0gRGlhbG9nTW9kZS5jb21wYWN0KSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCguLi5jb21tb25QYW5lQ2xhc3NlcywgJ3NtZS1sYXlvdXQtZGlhbG9nLWNvbXBhY3QnLCAnc21lLXNoYWRvdy1hY3Rpb24tcGFuZScpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb21wYWN0RnVsbEhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdzbWUtbGF5b3V0LWRpYWxvZy1jb21wYWN0LWZ1bGwtaGVpZ2h0Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG5ld1ZhbHVlID09PSBEaWFsb2dNb2RlLmNvbXBhY3RTcXVhcmUpIHtcclxuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdzbWUtcG9zaXRpb24tY2VudGVyJywgJ3NtZS1sYXlvdXQtZGlhbG9nLWNlbnRlcmVkJywgJ3NtZS1sYXlvdXQtZGlhbG9nLWNvbXBhY3Qtc3F1YXJlJywgJ3NtZS1zaGFkb3ctZGlhbG9nJyk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhY3RGdWxsSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NtZS1sYXlvdXQtZGlhbG9nLWNvbXBhY3QtZnVsbC1oZWlnaHQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUuZnVsbHNjcmVlbikge1xyXG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goLi4uY29tbW9uUGFuZUNsYXNzZXMsICdzbWUtbGF5b3V0LWRpYWxvZy1mdWxsc2NyZWVuJywgJ3NtZS1zaGFkb3ctYWN0aW9uLXBhbmUnKTtcclxuICAgICAgICB9IGVsc2UgaWYgKG5ld1ZhbHVlID09PSBEaWFsb2dNb2RlLmNlbnRlcmVkKSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnc21lLXBvc2l0aW9uLWNlbnRlcicsICdzbWUtbGF5b3V0LWRpYWxvZy1jZW50ZXJlZCcsICdzbWUtc2hhZG93LWRpYWxvZycpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUuY2VudGVyZWRNZWRpdW0pIHtcclxuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdzbWUtcG9zaXRpb24tY2VudGVyJywgJ3NtZS1sYXlvdXQtZGlhbG9nLWNlbnRlcmVkLW1lZGl1bScsICdzbWUtc2hhZG93LWRpYWxvZycpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUuY2VudGVyZWRMYXJnZSkge1xyXG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NtZS1wb3NpdGlvbi1jZW50ZXInLCAnc21lLWxheW91dC1kaWFsb2ctY2VudGVyZWQtbGFyZ2UnLCAnc21lLXNoYWRvdy1kaWFsb2cnKTtcclxuICAgICAgICB9IGVsc2UgaWYgKG5ld1ZhbHVlID09PSBEaWFsb2dNb2RlLm5vdGlmaWNhdGlvbikge1xyXG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NtZS1wb3NpdGlvbi10b3Atc20nLCAnc21lLXBvc2l0aW9uLXJpZ2h0LXNtJywgJ3NtZS1sYXlvdXQtZGlhbG9nLW5vdGlmaWNhdGlvbicsICdzbWUtc2hhZG93LWRpYWxvZycpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2xhc3Nlcy5wdXNoKCdzbWUtYXJyYW5nZS1zdGFjay12JywgJ3NtZS1hcnJhbmdlLW92ZXJmbG93LWF1dG8nKTtcclxuXHJcbiAgICAgICAgdGhpcy5kaWFsb2dDbGFzc2VzID0gY2xhc3NlcztcclxuXHJcbiAgICAgICAgLy8gYWNjZXNzaWJpbGl0eVxyXG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1R5cGUpIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSb2xlID0gdGhpcy5kaWFsb2dUeXBlID09PSBtb2RhbERpYWxvZyA/ICdkaWFsb2cnIDogJ2FsZXJ0ZGlhbG9nJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBieSBkZWZhdWx0IGNlbnRlcmVkIGRpYWxvZ3MgYXJlIGNvbnNpZGVyZWQgYXMgYWxlcnRzXHJcbiAgICAgICAgICAgIGNvbnN0IGFsZXJ0TW9kZXMgPSBbRGlhbG9nTW9kZS5jZW50ZXJlZCwgRGlhbG9nTW9kZS5jZW50ZXJlZExhcmdlLCBEaWFsb2dNb2RlLmNvbXBhY3RTcXVhcmVdO1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JvbGUgPSBhbGVydE1vZGVzLnNvbWUobW9kZSA9PiB0aGlzLmRpYWxvZ01vZGUgPT09IG1vZGUpID8gJ2FsZXJ0ZGlhbG9nJyA6ICdkaWFsb2cnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgdGhlIGlkQmFnIHVzZWQgYnkgdGhpcyBjb21wb25lbnQgdG8gc3RvcmUgdW5pcXVlIGVsZW1lbnQgaWRzLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY3JlYXRlSWRCYWcoKTogTXNmdFNtZS5TdHJpbmdNYXA8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgYXJpYUxhYmVsU3BhbjogJycsXHJcbiAgICAgICAgICAgIGFyaWFEZXNjcmlwdGlvblNwYW46ICcnXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iLCI8c21lLWJhY2tkcm9wICpuZ0lmPVwidmlzaWJsZVwiIFtsZXZlbF09XCJkaWFsb2dMZXZlbFwiIChjbGlja2VkKT1cIiEhY2xpY2tCYWNrZHJvcCA/IG9uQmFja2dyb3VuZENsaWNrZWQoKSA6ICcnXCJcclxuICBbc2hvd0JhY2tkcm9wXT1cInNob3dCYWNrZHJvcFwiIFthbGxvd0JhY2tncm91bmRJbnRlcmFjdGlvbl09XCJhbGxvd0JhY2tncm91bmRJbnRlcmFjdGlvblwiXHJcbiAgY2xhc3M9XCJzbWUtbGF5b3V0LWFic29sdXRlIHNtZS1wb3NpdGlvbi1pbnNldC1ub25lXCI+XHJcbiAgPGRpdiBbbmdDbGFzc109XCJkaWFsb2dDbGFzc2VzXCIgW2F0dHIucm9sZV09XCJkaWFsb2dSb2xlXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIXZpc2libGVcIlxyXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbCA/IGlkQmFnLmFyaWFMYWJlbFNwYW4gOidzbWUtZGlhbG9nLXRpdGxlJ1wiXHJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmlwdGlvbiA/IGlkQmFnLmFyaWFEZXNjcmlwdGlvblNwYW4gOiAnc21lLWRpYWxvZy1kZXNjJ1wiIGFyaWEtbW9kYWw9XCJ0cnVlXCI+XHJcbiAgICA8YnV0dG9uICpuZ0lmPVwiY2xvc2VCdXR0b25cIiBjbGFzcz1cInNtZS1idXR0b24tdHJpZ2dlciBzbWUtYnV0dG9uLWF1dG8td2lkdGggc21lLWRpYWxvZy1jbG9zZS1idXR0b25cIlxyXG4gICAgICAoY2xpY2spPVwib25DbG9zZUNsaWNrZWQoKVwiIFthdHRyLmFyaWEtbGFiZWxdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Db21tb24uY2xvc2VcIlxyXG4gICAgICBbdGl0bGVdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Db21tb24uY2xvc2VcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzbWUtaWNvbiBzbWUtaWNvbi1jYW5jZWxcIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1mb2N1cy16b25lXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNtZS1kaWFsb2ctaGVhZGVyXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic21lLWxheW91dC1yZWxhdGl2ZSBzbWUtcG9zaXRpb24tZmxleC1hdXRvIHNtZS1wYWRkaW5nLWhvcml6b250YWwtbGcgc21lLWFycmFuZ2Utb3ZlcmZsb3ctYXV0by15IHNtZS1hcnJhbmdlLW92ZXJmbG93LWhpZGUteCBzbWUtZm9jdXMtem9uZSBzbWUtbGF5b3V0LXJlc3BvbnNpdmUtem9uZS14cyBzbWUtZGlhbG9nLWNvbnRlbnQtd3JhcHBlclwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzbWUtZGlhbG9nLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCIhaGlkZUZvb3RlclwiIGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtZm9jdXMtem9uZSBzbWUtcGFkZGluZy1ob3Jpem9udGFsLWxnIHNtZS1wYWRkaW5nLXZlcnRpY2FsLXNtXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNtZS1kaWFsb2ctZm9vdGVyXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPHNwYW4gKm5nSWY9XCJhcmlhTGFiZWxcIiBjbGFzcz1cInNtZS1zY3JlZW4tcmVhZGVyXCIgW2lkXT1cImlkQmFnLmFyaWFMYWJlbFNwYW5cIj57e2FyaWFMYWJlbH19PC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwiYXJpYURlc2NyaXB0aW9uXCIgY2xhc3M9XCJzbWUtc2NyZWVuLXJlYWRlclwiIFtpZF09XCJpZEJhZy5hcmlhRGVzY3JpcHRpb25TcGFuXCI+e3thcmlhRGVzY3JpcHRpb259fTwvc3Bhbj5cclxuPC9zbWUtYmFja2Ryb3A+XHJcbiJdfQ==
|