@ampath-kenya/ngx-openmrs-formentry 2.12.19 → 2.12.21
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/ampath-kenya-ngx-openmrs-formentry.metadata.json +1 -0
- package/bundles/{ngx-openmrs-formentry.umd.js → ampath-kenya-ngx-openmrs-formentry.umd.js} +115 -5
- package/bundles/ampath-kenya-ngx-openmrs-formentry.umd.js.map +1 -0
- package/bundles/ampath-kenya-ngx-openmrs-formentry.umd.min.js +2 -0
- package/bundles/ampath-kenya-ngx-openmrs-formentry.umd.min.js.map +1 -0
- package/esm2015/abstract-controls-extension/afe-control-type.js +1 -1
- package/esm2015/abstract-controls-extension/afe-form-array.js +1 -1
- package/esm2015/abstract-controls-extension/afe-form-control.js +1 -1
- package/esm2015/abstract-controls-extension/afe-form-group.js +1 -1
- package/esm2015/abstract-controls-extension/control-extensions.js +1 -1
- package/esm2015/abstract-controls-extension/index.js +1 -1
- package/esm2015/abstract-controls-extension/value-change.listener.js +1 -1
- package/esm2015/ampath-kenya-ngx-openmrs-formentry.js +44 -0
- package/esm2015/change-tracking/control-relation.js +1 -1
- package/esm2015/change-tracking/control-relations.js +1 -1
- package/esm2015/components/afe-ng-select.component.js +1 -1
- package/esm2015/components/appointments-overview/appointments-overview.component.js +1 -1
- package/esm2015/components/check-box/checkbox.component.js +1 -1
- package/esm2015/components/check-box/checkbox.module.js +1 -1
- package/esm2015/components/date-time-picker/date-picker/date-picker.component.js +1 -1
- package/esm2015/components/date-time-picker/date-time-picker.component.js +1 -1
- package/esm2015/components/date-time-picker/date-time-picker.module.js +1 -1
- package/esm2015/components/date-time-picker/picker-modal/modal.component.js +1 -1
- package/esm2015/components/date-time-picker/pipes/moment.pipe.js +1 -1
- package/esm2015/components/date-time-picker/time-picker/time-picker.component.js +1 -1
- package/esm2015/components/file-upload/file-upload.component.js +1 -1
- package/esm2015/components/file-upload/file-upload.module.js +1 -1
- package/esm2015/components/file-upload/secure.pipe.js +1 -1
- package/esm2015/components/ngx-date-time-picker/ngx-date-time-picker.component.js +1 -1
- package/esm2015/components/ngx-date-time-picker/ngx-date-time-picker.module.js +1 -1
- package/esm2015/components/ngx-time-picker/ngx-time-picker.component.js +1 -1
- package/esm2015/components/ngx-time-picker/ngx-time-picker.module.js +1 -1
- package/esm2015/components/remote-select/remote-select.component.js +1 -1
- package/esm2015/components/remote-select/remote-select.module.js +1 -1
- package/esm2015/components/select/diacritics.js +1 -1
- package/esm2015/components/select/option-list.js +1 -1
- package/esm2015/components/select/option.js +1 -1
- package/esm2015/components/select/select-dropdown.component.js +1 -1
- package/esm2015/components/select/select-dropdown.component.style.js +1 -1
- package/esm2015/components/select/select.component.js +1 -1
- package/esm2015/components/select/select.component.style.js +1 -1
- package/esm2015/components/select/select.module.js +1 -1
- package/esm2015/encounter-viewer/display-controls/file-preview.component.js +1 -1
- package/esm2015/encounter-viewer/display-controls/question-control.component.js +1 -1
- package/esm2015/encounter-viewer/display-controls/remote-answer.component.js +1 -1
- package/esm2015/encounter-viewer/encounter-container/encounter-container.component.js +1 -1
- package/esm2015/encounter-viewer/encounter-pdf-viewer.service.js +1 -1
- package/esm2015/encounter-viewer/encounter-view/encounter-viewer.component.js +1 -1
- package/esm2015/encounter-viewer/encounter-viewer.module.js +1 -1
- package/esm2015/encounter-viewer/encounter-viewer.service.js +1 -1
- package/esm2015/form-entry/control-alerts/alert-helpers.js +1 -1
- package/esm2015/form-entry/control-alerts/can-generate-alert.js +1 -1
- package/esm2015/form-entry/control-calculators/can-calculate.js +1 -1
- package/esm2015/form-entry/control-hiders-disablers/can-disable.js +1 -1
- package/esm2015/form-entry/control-hiders-disablers/can-hide.js +1 -1
- package/esm2015/form-entry/control-hiders-disablers/disabler-helper.js +1 -1
- package/esm2015/form-entry/control-hiders-disablers/hider-helpers.js +1 -1
- package/esm2015/form-entry/data-sources/data-sources.js +1 -1
- package/esm2015/form-entry/data-sources/dummy-data-source.js +1 -1
- package/esm2015/form-entry/directives/historical-value-directive.js +1 -1
- package/esm2015/form-entry/error-renderer/error-renderer.component.js +1 -1
- package/esm2015/form-entry/expression-runner/expression-runner.js +1 -1
- package/esm2015/form-entry/form-entry.module.js +4 -2
- package/esm2015/form-entry/form-factory/control-relations.factory.js +1 -1
- package/esm2015/form-entry/form-factory/form-control.service.js +1 -1
- package/esm2015/form-entry/form-factory/form-node.js +1 -1
- package/esm2015/form-entry/form-factory/form.factory.js +1 -1
- package/esm2015/form-entry/form-factory/form.js +1 -1
- package/esm2015/form-entry/form-factory/hiders-disablers.factory.js +1 -1
- package/esm2015/form-entry/form-factory/question.factory.js +28 -1
- package/esm2015/form-entry/form-factory/show-messages.factory.js +1 -1
- package/esm2015/form-entry/form-factory/validation.factory.js +1 -1
- package/esm2015/form-entry/form-renderer/form-renderer.component.css.js +1 -1
- package/esm2015/form-entry/form-renderer/form-renderer.component.js +1 -1
- package/esm2015/form-entry/helpers/historical-expression-helper-service.js +1 -1
- package/esm2015/form-entry/helpers/historical-field-helper-service.js +1 -1
- package/esm2015/form-entry/helpers/js-expression-helper.js +1 -1
- package/esm2015/form-entry/question-models/checkbox.model.js +1 -1
- package/esm2015/form-entry/question-models/conditional-validation.model.js +1 -1
- package/esm2015/form-entry/question-models/date-question.js +1 -1
- package/esm2015/form-entry/question-models/date-validation.model.js +1 -1
- package/esm2015/form-entry/question-models/decimal-point-validation.model.js +1 -1
- package/esm2015/form-entry/question-models/file-upload-question.js +1 -1
- package/esm2015/form-entry/question-models/group-question.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/base-options.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/checkbox-options.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/data-source.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/date-question-options.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/file-upload-question-options.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/group-question-options.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/multi-select-options.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/nested-questions.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/repeating-question-options.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/select-option.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/select-question-options.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/test-order-question-options.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/text-area-question-options.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/text-question-options.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/time-question-options.js +1 -1
- package/esm2015/form-entry/question-models/interfaces/ui-select-question-options.js +1 -1
- package/esm2015/form-entry/question-models/js-expression-validation.model.js +1 -1
- package/esm2015/form-entry/question-models/max-validation.model.js +1 -1
- package/esm2015/form-entry/question-models/min-validation.model.js +1 -1
- package/esm2015/form-entry/question-models/models.js +1 -1
- package/esm2015/form-entry/question-models/multi-select-question.js +1 -1
- package/esm2015/form-entry/question-models/pair.model.js +1 -1
- package/esm2015/form-entry/question-models/question-base.js +1 -1
- package/esm2015/form-entry/question-models/rendering-type.js +1 -1
- package/esm2015/form-entry/question-models/repeating-question.js +1 -1
- package/esm2015/form-entry/question-models/select-option.js +1 -1
- package/esm2015/form-entry/question-models/select-question.js +1 -1
- package/esm2015/form-entry/question-models/test-order-question.js +1 -1
- package/esm2015/form-entry/question-models/text-area-input-question.js +1 -1
- package/esm2015/form-entry/question-models/text-input-question.js +1 -1
- package/esm2015/form-entry/question-models/time-question.js +1 -1
- package/esm2015/form-entry/question-models/ui-select-question.js +1 -1
- package/esm2015/form-entry/question-models/validation.model.js +1 -1
- package/esm2015/form-entry/services/debug-mode.service.js +1 -1
- package/esm2015/form-entry/services/form-errors.service.js +1 -1
- package/esm2015/form-entry/services/form-schema-compiler.service.js +1 -1
- package/esm2015/form-entry/services/historical-encounter-data.service.js +1 -1
- package/esm2015/form-entry/utils/messages.js +1 -1
- package/esm2015/form-entry/validators/conditional-answered.validator.js +1 -1
- package/esm2015/form-entry/validators/conditional-required.validator.js +1 -1
- package/esm2015/form-entry/validators/date.validator.js +1 -1
- package/esm2015/form-entry/validators/future-date-restriction.validator.js +1 -1
- package/esm2015/form-entry/validators/js-expression.validator.js +1 -1
- package/esm2015/form-entry/validators/max-date.validator.js +1 -1
- package/esm2015/form-entry/validators/max.validator.js +1 -1
- package/esm2015/form-entry/validators/min-date.validator.js +1 -1
- package/esm2015/form-entry/validators/min.validator.js +1 -1
- package/esm2015/form-entry/validators/required.validator.js +1 -1
- package/esm2015/form-entry/validators/validations.js +1 -1
- package/esm2015/form-entry/value-adapters/encounter.adapter.js +1 -1
- package/esm2015/form-entry/value-adapters/obs-adapter-helper.js +1 -1
- package/esm2015/form-entry/value-adapters/obs.adapter.js +1 -1
- package/esm2015/form-entry/value-adapters/order.adapter.js +1 -1
- package/esm2015/form-entry/value-adapters/person-address.adapter.js +78 -0
- package/esm2015/form-entry/value-adapters/person-attribute.adapter.js +4 -2
- package/esm2015/form-entry/value-adapters/value.adapter.js +1 -1
- package/esm2015/public_api.js +2 -1
- package/esm2015/shared.module.js +1 -1
- package/esm5/abstract-controls-extension/afe-control-type.js +1 -1
- package/esm5/abstract-controls-extension/afe-form-array.js +1 -1
- package/esm5/abstract-controls-extension/afe-form-control.js +1 -1
- package/esm5/abstract-controls-extension/afe-form-group.js +1 -1
- package/esm5/abstract-controls-extension/control-extensions.js +1 -1
- package/esm5/abstract-controls-extension/index.js +1 -1
- package/esm5/abstract-controls-extension/value-change.listener.js +1 -1
- package/esm5/ampath-kenya-ngx-openmrs-formentry.js +44 -0
- package/esm5/change-tracking/control-relation.js +1 -1
- package/esm5/change-tracking/control-relations.js +1 -1
- package/esm5/components/afe-ng-select.component.js +1 -1
- package/esm5/components/appointments-overview/appointments-overview.component.js +1 -1
- package/esm5/components/check-box/checkbox.component.js +1 -1
- package/esm5/components/check-box/checkbox.module.js +1 -1
- package/esm5/components/date-time-picker/date-picker/date-picker.component.js +1 -1
- package/esm5/components/date-time-picker/date-time-picker.component.js +1 -1
- package/esm5/components/date-time-picker/date-time-picker.module.js +1 -1
- package/esm5/components/date-time-picker/picker-modal/modal.component.js +1 -1
- package/esm5/components/date-time-picker/pipes/moment.pipe.js +1 -1
- package/esm5/components/date-time-picker/time-picker/time-picker.component.js +1 -1
- package/esm5/components/file-upload/file-upload.component.js +1 -1
- package/esm5/components/file-upload/file-upload.module.js +1 -1
- package/esm5/components/file-upload/secure.pipe.js +1 -1
- package/esm5/components/ngx-date-time-picker/ngx-date-time-picker.component.js +1 -1
- package/esm5/components/ngx-date-time-picker/ngx-date-time-picker.module.js +1 -1
- package/esm5/components/ngx-time-picker/ngx-time-picker.component.js +1 -1
- package/esm5/components/ngx-time-picker/ngx-time-picker.module.js +1 -1
- package/esm5/components/remote-select/remote-select.component.js +1 -1
- package/esm5/components/remote-select/remote-select.module.js +1 -1
- package/esm5/components/select/diacritics.js +1 -1
- package/esm5/components/select/option-list.js +1 -1
- package/esm5/components/select/option.js +1 -1
- package/esm5/components/select/select-dropdown.component.js +1 -1
- package/esm5/components/select/select-dropdown.component.style.js +1 -1
- package/esm5/components/select/select.component.js +1 -1
- package/esm5/components/select/select.component.style.js +1 -1
- package/esm5/components/select/select.module.js +1 -1
- package/esm5/encounter-viewer/display-controls/file-preview.component.js +1 -1
- package/esm5/encounter-viewer/display-controls/question-control.component.js +1 -1
- package/esm5/encounter-viewer/display-controls/remote-answer.component.js +1 -1
- package/esm5/encounter-viewer/encounter-container/encounter-container.component.js +1 -1
- package/esm5/encounter-viewer/encounter-pdf-viewer.service.js +1 -1
- package/esm5/encounter-viewer/encounter-view/encounter-viewer.component.js +1 -1
- package/esm5/encounter-viewer/encounter-viewer.module.js +1 -1
- package/esm5/encounter-viewer/encounter-viewer.service.js +1 -1
- package/esm5/form-entry/control-alerts/alert-helpers.js +1 -1
- package/esm5/form-entry/control-alerts/can-generate-alert.js +1 -1
- package/esm5/form-entry/control-calculators/can-calculate.js +1 -1
- package/esm5/form-entry/control-hiders-disablers/can-disable.js +1 -1
- package/esm5/form-entry/control-hiders-disablers/can-hide.js +1 -1
- package/esm5/form-entry/control-hiders-disablers/disabler-helper.js +1 -1
- package/esm5/form-entry/control-hiders-disablers/hider-helpers.js +1 -1
- package/esm5/form-entry/data-sources/data-sources.js +1 -1
- package/esm5/form-entry/data-sources/dummy-data-source.js +1 -1
- package/esm5/form-entry/directives/historical-value-directive.js +1 -1
- package/esm5/form-entry/error-renderer/error-renderer.component.js +1 -1
- package/esm5/form-entry/expression-runner/expression-runner.js +1 -1
- package/esm5/form-entry/form-entry.module.js +4 -2
- package/esm5/form-entry/form-factory/control-relations.factory.js +1 -1
- package/esm5/form-entry/form-factory/form-control.service.js +1 -1
- package/esm5/form-entry/form-factory/form-node.js +1 -1
- package/esm5/form-entry/form-factory/form.factory.js +1 -1
- package/esm5/form-entry/form-factory/form.js +1 -1
- package/esm5/form-entry/form-factory/hiders-disablers.factory.js +1 -1
- package/esm5/form-entry/form-factory/question.factory.js +28 -1
- package/esm5/form-entry/form-factory/show-messages.factory.js +1 -1
- package/esm5/form-entry/form-factory/validation.factory.js +1 -1
- package/esm5/form-entry/form-renderer/form-renderer.component.css.js +1 -1
- package/esm5/form-entry/form-renderer/form-renderer.component.js +1 -1
- package/esm5/form-entry/helpers/historical-expression-helper-service.js +1 -1
- package/esm5/form-entry/helpers/historical-field-helper-service.js +1 -1
- package/esm5/form-entry/helpers/js-expression-helper.js +1 -1
- package/esm5/form-entry/question-models/checkbox.model.js +1 -1
- package/esm5/form-entry/question-models/conditional-validation.model.js +1 -1
- package/esm5/form-entry/question-models/date-question.js +1 -1
- package/esm5/form-entry/question-models/date-validation.model.js +1 -1
- package/esm5/form-entry/question-models/decimal-point-validation.model.js +1 -1
- package/esm5/form-entry/question-models/file-upload-question.js +1 -1
- package/esm5/form-entry/question-models/group-question.js +1 -1
- package/esm5/form-entry/question-models/interfaces/base-options.js +1 -1
- package/esm5/form-entry/question-models/interfaces/checkbox-options.js +1 -1
- package/esm5/form-entry/question-models/interfaces/data-source.js +1 -1
- package/esm5/form-entry/question-models/interfaces/date-question-options.js +1 -1
- package/esm5/form-entry/question-models/interfaces/file-upload-question-options.js +1 -1
- package/esm5/form-entry/question-models/interfaces/group-question-options.js +1 -1
- package/esm5/form-entry/question-models/interfaces/multi-select-options.js +1 -1
- package/esm5/form-entry/question-models/interfaces/nested-questions.js +1 -1
- package/esm5/form-entry/question-models/interfaces/repeating-question-options.js +1 -1
- package/esm5/form-entry/question-models/interfaces/select-option.js +1 -1
- package/esm5/form-entry/question-models/interfaces/select-question-options.js +1 -1
- package/esm5/form-entry/question-models/interfaces/test-order-question-options.js +1 -1
- package/esm5/form-entry/question-models/interfaces/text-area-question-options.js +1 -1
- package/esm5/form-entry/question-models/interfaces/text-question-options.js +1 -1
- package/esm5/form-entry/question-models/interfaces/time-question-options.js +1 -1
- package/esm5/form-entry/question-models/interfaces/ui-select-question-options.js +1 -1
- package/esm5/form-entry/question-models/js-expression-validation.model.js +1 -1
- package/esm5/form-entry/question-models/max-validation.model.js +1 -1
- package/esm5/form-entry/question-models/min-validation.model.js +1 -1
- package/esm5/form-entry/question-models/models.js +1 -1
- package/esm5/form-entry/question-models/multi-select-question.js +1 -1
- package/esm5/form-entry/question-models/pair.model.js +1 -1
- package/esm5/form-entry/question-models/question-base.js +1 -1
- package/esm5/form-entry/question-models/rendering-type.js +1 -1
- package/esm5/form-entry/question-models/repeating-question.js +1 -1
- package/esm5/form-entry/question-models/select-option.js +1 -1
- package/esm5/form-entry/question-models/select-question.js +1 -1
- package/esm5/form-entry/question-models/test-order-question.js +1 -1
- package/esm5/form-entry/question-models/text-area-input-question.js +1 -1
- package/esm5/form-entry/question-models/text-input-question.js +1 -1
- package/esm5/form-entry/question-models/time-question.js +1 -1
- package/esm5/form-entry/question-models/ui-select-question.js +1 -1
- package/esm5/form-entry/question-models/validation.model.js +1 -1
- package/esm5/form-entry/services/debug-mode.service.js +1 -1
- package/esm5/form-entry/services/form-errors.service.js +1 -1
- package/esm5/form-entry/services/form-schema-compiler.service.js +1 -1
- package/esm5/form-entry/services/historical-encounter-data.service.js +1 -1
- package/esm5/form-entry/utils/messages.js +1 -1
- package/esm5/form-entry/validators/conditional-answered.validator.js +1 -1
- package/esm5/form-entry/validators/conditional-required.validator.js +1 -1
- package/esm5/form-entry/validators/date.validator.js +1 -1
- package/esm5/form-entry/validators/future-date-restriction.validator.js +1 -1
- package/esm5/form-entry/validators/js-expression.validator.js +1 -1
- package/esm5/form-entry/validators/max-date.validator.js +1 -1
- package/esm5/form-entry/validators/max.validator.js +1 -1
- package/esm5/form-entry/validators/min-date.validator.js +1 -1
- package/esm5/form-entry/validators/min.validator.js +1 -1
- package/esm5/form-entry/validators/required.validator.js +1 -1
- package/esm5/form-entry/validators/validations.js +1 -1
- package/esm5/form-entry/value-adapters/encounter.adapter.js +1 -1
- package/esm5/form-entry/value-adapters/obs-adapter-helper.js +1 -1
- package/esm5/form-entry/value-adapters/obs.adapter.js +1 -1
- package/esm5/form-entry/value-adapters/order.adapter.js +1 -1
- package/esm5/form-entry/value-adapters/person-address.adapter.js +82 -0
- package/esm5/form-entry/value-adapters/person-attribute.adapter.js +4 -2
- package/esm5/form-entry/value-adapters/value.adapter.js +1 -1
- package/esm5/public_api.js +2 -1
- package/esm5/shared.module.js +1 -1
- package/fesm2015/ampath-kenya-ngx-openmrs-formentry.js +11297 -0
- package/fesm2015/ampath-kenya-ngx-openmrs-formentry.js.map +1 -0
- package/fesm5/ampath-kenya-ngx-openmrs-formentry.js +10721 -0
- package/fesm5/ampath-kenya-ngx-openmrs-formentry.js.map +1 -0
- package/form-entry/form-factory/question.factory.d.ts +1 -0
- package/form-entry/value-adapters/person-address.adapter.d.ts +12 -0
- package/package.json +14 -25
- package/public_api.d.ts +1 -0
- package/bundles/ngx-openmrs-formentry.umd.js.map +0 -1
- package/bundles/ngx-openmrs-formentry.umd.min.js +0 -2
- package/bundles/ngx-openmrs-formentry.umd.min.js.map +0 -1
- package/esm2015/ngx-openmrs-formentry.js +0 -44
- package/esm5/ngx-openmrs-formentry.js +0 -44
- package/fesm2015/ngx-openmrs-formentry.js +0 -11191
- package/fesm2015/ngx-openmrs-formentry.js.map +0 -1
- package/fesm5/ngx-openmrs-formentry.js +0 -10612
- package/fesm5/ngx-openmrs-formentry.js.map +0 -1
- package/ngx-openmrs-formentry.metadata.json +0 -1
- /package/{ngx-openmrs-formentry.d.ts → ampath-kenya-ngx-openmrs-formentry.d.ts} +0 -0
|
@@ -129,4 +129,4 @@ FormFactory.ctorParameters = () => [
|
|
|
129
129
|
{ type: QuestionFactory },
|
|
130
130
|
{ type: ControlRelationsFactory }
|
|
131
131
|
];
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW9wZW5tcnMtZm9ybWVudHJ5LyIsInNvdXJjZXMiOlsiZm9ybS1lbnRyeS9mb3JtLWZhY3RvcnkvZm9ybS5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0Msb0RBQW9EO0FBRXBELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBWSxNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBRUwsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixhQUFhLEVBQ2QsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUVMLGNBQWMsRUFDZCxZQUFZLEVBQ2IsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFeEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUc5QixNQUFNO0lBT0osWUFDUyxjQUFrQyxFQUNsQyxlQUFnQyxFQUNoQyx1QkFBZ0Q7UUFGaEQsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBVGxELE9BQUUsR0FBUTtZQUNmLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNaLENBQUM7U0FDRixDQUFDO0lBTUMsQ0FBQztJQUVKLFVBQVUsQ0FBQyxNQUFXLEVBQUUsVUFBZ0I7UUFDdEMsTUFBTSxJQUFJLEdBQVMsSUFB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SCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7OztZQTFNRixVQUFVOzs7WUFaRixrQkFBa0I7WUFDbEIsZUFBZTtZQU1mLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vIGltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTGVhZk5vZGUsIEdyb3VwTm9kZSwgQXJyYXlOb2RlLCBOb2RlQmFzZSB9IGZyb20gJy4vZm9ybS1ub2RlJztcbmltcG9ydCB7XG4gIFF1ZXN0aW9uQmFzZSxcbiAgTmVzdGVkUXVlc3Rpb24sXG4gIFJlcGVhdGluZ1F1ZXN0aW9uLFxuICBRdWVzdGlvbkdyb3VwXG59IGZyb20gJy4uL3F1ZXN0aW9uLW1vZGVscy9tb2RlbHMnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi9mb3JtLWNvbnRyb2wuc2VydmljZSc7XG5pbXBvcnQgeyBRdWVzdGlvbkZhY3RvcnkgfSBmcm9tICcuL3F1ZXN0aW9uLmZhY3RvcnknO1xuaW1wb3J0IHtcbiAgQWZlRm9ybUdyb3VwLFxuICBBZmVDb250cm9sVHlwZSxcbiAgQWZlRm9ybUFycmF5XG59IGZyb20gJy4uLy4uL2Fic3RyYWN0LWNvbnRyb2xzLWV4dGVuc2lvbic7XG5pbXBvcnQgeyBDb250cm9sUmVsYXRpb25zRmFjdG9yeSB9IGZyb20gJy4vY29udHJvbC1yZWxhdGlvbnMuZmFjdG9yeSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9ucyB9IGZyb20gJy4uL3ZhbGlkYXRvcnMvdmFsaWRhdGlvbnMnO1xuXG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAnLi9mb3JtJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZvcm1GYWN0b3J5IHtcbiAgcHVibGljIGhkOiBhbnkgPSB7XG4gICAgZ2V0VmFsdWU6ICgpID0+IHtcbiAgICAgIHJldHVybiAyMDtcbiAgICB9XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbnRyb2xTZXJ2aWNlOiBGb3JtQ29udHJvbFNlcnZpY2UsXG4gICAgcHVibGljIHF1ZXN0aW9uRmFjdHJveTogUXVlc3Rpb25GYWN0b3J5LFxuICAgIHB1YmxpYyBjb250cm9sUmVsYXRpb25zRmFjdG9yeTogQ29udHJvbFJlbGF0aW9uc0ZhY3RvcnlcbiAgKSB7fVxuXG4gIGNyZWF0ZUZvcm0oc2NoZW1hOiBhbnksIGRhdGFTb3VyY2U/OiBhbnkpOiBGb3JtIHtcbiAgICBjb25zdCBmb3JtOiBGb3JtID0gbmV3IEZvcm0oc2NoZW1hLCB0aGlzLCB0aGlzLnF1ZXN0aW9uRmFjdHJveSk7XG4gICAgaWYgKGRhdGFTb3VyY2UpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGFTb3VyY2UpIHtcbiAgICAgICAgaWYgKGRhdGFTb3VyY2UuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgIGZvcm0uZGF0YVNvdXJjZXNDb250YWluZXIucmVnaXN0ZXJEYXRhU291cmNlKFxuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgZGF0YVNvdXJjZVtrZXldLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHF1ZXN0aW9uID0gdGhpcy5xdWVzdGlvbkZhY3Ryb3kuY3JlYXRlUXVlc3Rpb25Nb2RlbChzY2hlbWEsIGZvcm0pO1xuICAgIGZvcm0ucm9vdE5vZGUgPSB0aGlzLmNyZWF0ZU5vZGUocXVlc3Rpb24sIG51bGwsIG51bGwsIGZvcm0pIGFzIEdyb3VwTm9kZTtcblxuICAgIHRoaXMuYnVpbGRSZWxhdGlvbnMoZm9ybS5yb290Tm9kZSk7XG4gICAgZm9ybS51cGRhdGVIaWRkZW5EaXNhYmxlZFN0YXRlRm9yQWxsQ29udHJvbHMoKTtcbiAgICBmb3JtLnVwZGF0ZUFsZXJ0c0ZvckFsbENvbnRyb2xzKCk7XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBidWlsZFJlbGF0aW9ucyhyb290Tm9kZTogR3JvdXBOb2RlKSB7XG4gICAgVmFsaWRhdGlvbnMuSlNFeHByZXNzaW9uVmFsaWRhdG9yc0VuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmNvbnRyb2xSZWxhdGlvbnNGYWN0b3J5LmJ1aWxkUmVsYXRpb25zKHJvb3ROb2RlKTtcblxuICAgIC8vIGVuYWJsZSBqcyBleHByZXNzaW9uIHZhbGlkYXRpb25zXG4gICAgVmFsaWRhdGlvbnMuSlNFeHByZXNzaW9uVmFsaWRhdG9yc0VuYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgY3JlYXRlTm9kZShcbiAgICBxdWVzdGlvbjogUXVlc3Rpb25CYXNlIHwgTmVzdGVkUXVlc3Rpb24sXG4gICAgcGFyZW50Tm9kZT86IEdyb3VwTm9kZSxcbiAgICBwYXJlbnRDb250cm9sPzogQWZlRm9ybUdyb3VwLFxuICAgIGZvcm0/OiBGb3JtXG4gICk6IE5vZGVCYXNlIHtcbiAgICBsZXQgbm9kZTogTm9kZUJhc2UgPSBudWxsO1xuICAgIGlmIChxdWVzdGlvbiBpbnN0YW5jZW9mIE5lc3RlZFF1ZXN0aW9uKSB7XG4gICAgICBpZiAocXVlc3Rpb24gaW5zdGFuY2VvZiBSZXBlYXRpbmdRdWVzdGlvbikge1xuICAgICAgICBub2RlID0gdGhpcy5jcmVhdGVBcnJheU5vZGUocXVlc3Rpb24sIHBhcmVudE5vZGUsIHBhcmVudENvbnRyb2wsIGZvcm0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZSA9IHRoaXMuY3JlYXRlR3JvdXBOb2RlKHF1ZXN0aW9uLCBwYXJlbnROb2RlLCBwYXJlbnRDb250cm9sLCBmb3JtKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZSA9IHRoaXMuY3JlYXRlTGVhZk5vZGUocXVlc3Rpb24sIHBhcmVudE5vZGUsIHBhcmVudENvbnRyb2wsIGZvcm0pO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIGNyZWF0ZUxlYWZOb2RlKFxuICAgIHF1ZXN0aW9uOiBRdWVzdGlvbkJhc2UsXG4gICAgcGFyZW50Tm9kZTogR3JvdXBOb2RlLFxuICAgIHBhcmVudENvbnRyb2w/OiBBZmVGb3JtR3JvdXAsXG4gICAgZm9ybT86IEZvcm1cbiAgKTogTGVhZk5vZGUge1xuICAgIGNvbnN0IGNvbnRyb2xNb2RlbCA9IHRoaXMuY29udHJvbFNlcnZpY2UuZ2VuZXJhdGVDb250cm9sTW9kZWwoXG4gICAgICBxdWVzdGlvbixcbiAgICAgIHBhcmVudENvbnRyb2wsXG4gICAgICBmYWxzZSxcbiAgICAgIGZvcm1cbiAgICApO1xuICAgIHJldHVybiBuZXcgTGVhZk5vZGUoXG4gICAgICBxdWVzdGlvbixcbiAgICAgIGNvbnRyb2xNb2RlbCxcbiAgICAgIG51bGwsXG4gICAgICBmb3JtLFxuICAgICAgcGFyZW50Tm9kZSA/IHBhcmVudE5vZGUucGF0aCA6IHVuZGVmaW5lZFxuICAgICk7XG4gIH1cblxuICBjcmVhdGVHcm91cE5vZGUoXG4gICAgcXVlc3Rpb246IE5lc3RlZFF1ZXN0aW9uLFxuICAgIHBhcmVudE5vZGU/OiBHcm91cE5vZGUsXG4gICAgcGFyZW50Q29udHJvbD86IEFmZUZvcm1Hcm91cCxcbiAgICBmb3JtPzogRm9ybVxuICApOiBHcm91cE5vZGUge1xuICAgIGNvbnN0IGNvbnRyb2xNb2RlbCA9IHRoaXMuY29udHJvbFNlcnZpY2UuZ2VuZXJhdGVDb250cm9sTW9kZWwoXG4gICAgICBxdWVzdGlvbixcbiAgICAgIHBhcmVudENvbnRyb2wsXG4gICAgICBmYWxzZSxcbiAgICAgIGZvcm1cbiAgICApIGFzIEFmZUZvcm1Hcm91cDtcbiAgICBjb25zdCBncm91cE5vZGUgPSBuZXcgR3JvdXBOb2RlKFxuICAgICAgcXVlc3Rpb24sXG4gICAgICBjb250cm9sTW9kZWwsXG4gICAgICBudWxsLFxuICAgICAgZm9ybSxcbiAgICAgIHBhcmVudE5vZGUgPyBwYXJlbnROb2RlLnBhdGggOiB1bmRlZmluZWRcbiAgICApO1xuICAgIHRoaXMuY3JlYXRlTm9kZUNoaWxkcmVuKFxuICAgICAgcXVlc3Rpb24sXG4gICAgICBncm91cE5vZGUsXG4gICAgICBjb250cm9sTW9kZWwgfHwgcGFyZW50Q29udHJvbCxcbiAgICAgIGZvcm1cbiAgICApO1xuICAgIHJldHVybiBncm91cE5vZGU7XG4gIH1cblxuICBjcmVhdGVBcnJheU5vZGUoXG4gICAgcXVlc3Rpb246IE5lc3RlZFF1ZXN0aW9uLFxuICAgIHBhcmVudE5vZGU/OiBHcm91cE5vZGUsXG4gICAgcGFyZW50Q29udHJvbD86IEFmZUZvcm1Hcm91cCxcbiAgICBmb3JtPzogRm9ybVxuICApOiBBcnJheU5vZGUge1xuICAgIGNvbnN0IGNvbnRyb2xNb2RlbCA9IHRoaXMuY29udHJvbFNlcnZpY2UuZ2VuZXJhdGVDb250cm9sTW9kZWwoXG4gICAgICBxdWVzdGlvbixcbiAgICAgIHBhcmVudENvbnRyb2wsXG4gICAgICBmYWxzZSxcbiAgICAgIGZvcm1cbiAgICApIGFzIEFmZUZvcm1Hcm91cDtcbiAgICBjb25zdCBhcnJheU5vZGUgPSBuZXcgQXJyYXlOb2RlKFxuICAgICAgcXVlc3Rpb24sXG4gICAgICBjb250cm9sTW9kZWwsXG4gICAgICBwYXJlbnRDb250cm9sLFxuICAgICAgdGhpcyxcbiAgICAgIGZvcm0sXG4gICAgICBwYXJlbnROb2RlID8gcGFyZW50Tm9kZS5wYXRoIDogdW5kZWZpbmVkXG4gICAgKTtcbiAgICBhcnJheU5vZGUuY3JlYXRlQ2hpbGRGdW5jID0gdGhpcy5jcmVhdGVBcnJheU5vZGVDaGlsZDtcbiAgICBhcnJheU5vZGUucmVtb3ZlQ2hpbGRGdW5jID0gdGhpcy5yZW1vdmVBcnJheU5vZGVDaGlsZDtcblxuICAgIGFycmF5Tm9kZS5hZGRDaGlsZE5vZGVDcmVhdGVkTGlzdGVuZXIoKG5vZGU6IEdyb3VwTm9kZSkgPT4ge1xuICAgICAgVmFsaWRhdGlvbnMuSlNFeHByZXNzaW9uVmFsaWRhdG9yc0VuYWJsZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29udHJvbFJlbGF0aW9uc0ZhY3RvcnkuYnVpbGRBcnJheU5vZGVSZWxhdGlvbnMobm9kZSk7XG4gICAgICBWYWxpZGF0aW9ucy5KU0V4cHJlc3Npb25WYWxpZGF0b3JzRW5hYmxlZCA9IHRydWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFycmF5Tm9kZTtcbiAgfVxuXG4gIGNyZWF0ZU5vZGVDaGlsZHJlbihcbiAgICBxdWVzdGlvbjogTmVzdGVkUXVlc3Rpb24sXG4gICAgbm9kZTogR3JvdXBOb2RlLFxuICAgIHBhcmVudENvbnRyb2w/OiBBZmVGb3JtR3JvdXAsXG4gICAgZm9ybT86IEZvcm1cbiAgKTogYW55IHtcbiAgICBxdWVzdGlvbi5xdWVzdGlvbnMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgY29uc3QgY2hpbGQgPSB0aGlzLmNyZWF0ZU5vZGUoZWxlbWVudCwgbm9kZSwgcGFyZW50Q29udHJvbCwgZm9ybSk7XG4gICAgICBub2RlLnNldENoaWxkKGVsZW1lbnQua2V5LCBjaGlsZCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG5vZGUuY2hpbGRyZW47XG4gIH1cblxuICBjcmVhdGVBcnJheU5vZGVDaGlsZChcbiAgICBxdWVzdGlvbjogUmVwZWF0aW5nUXVlc3Rpb24sXG4gICAgbm9kZTogQXJyYXlOb2RlLFxuICAgIGZhY3Rvcnk/OiBGb3JtRmFjdG9yeVxuICApOiBHcm91cE5vZGUge1xuICAgIGlmIChmYWN0b3J5ID09PSBudWxsIHx8IGZhY3RvcnkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZmFjdG9yeSA9IHRoaXM7XG4gICAgfVxuICAgIGNvbnN0IGdyb3VwUXVlc3Rpb246IFF1ZXN0aW9uR3JvdXAgPSBuZXcgUXVlc3Rpb25Hcm91cCh7XG4gICAgICBrZXk6IG5vZGUucGF0aCArICcuJyArIG5vZGUuY2hpbGRyZW4ubGVuZ3RoICsgJycsXG4gICAgICB0eXBlOiAnZ3JvdXAnLFxuICAgICAgZXh0cmFzOiBxdWVzdGlvbi5leHRyYXMsXG4gICAgICBsYWJlbDogJycsXG4gICAgICBxdWVzdGlvbnM6IHF1ZXN0aW9uLnF1ZXN0aW9uc1xuICAgIH0pO1xuXG4gICAgaWYgKHF1ZXN0aW9uLmNvbnRyb2xUeXBlID09PSBBZmVDb250cm9sVHlwZS5Ob25lKSB7XG4gICAgICBncm91cFF1ZXN0aW9uLmNvbnRyb2xUeXBlID0gcXVlc3Rpb24uY29udHJvbFR5cGU7XG4gICAgfVxuXG4gICAgY29uc3QgZ3JvdXAgPSBmYWN0b3J5LmNyZWF0ZUdyb3VwTm9kZShncm91cFF1ZXN0aW9uLCBudWxsLCBudWxsLCBub2RlLmZvcm0pO1xuICAgIG5vZGUuY2hpbGRyZW4ucHVzaChncm91cCk7XG5cbiAgICBpZiAobm9kZS5jb250cm9sIGluc3RhbmNlb2YgQWZlRm9ybUFycmF5KSB7XG4gICAgICBjb25zdCBub2RlQ29udHJvbCA9IG5vZGUuY29udHJvbCBhcyBBZmVGb3JtQXJyYXk7XG4gICAgICBub2RlQ29udHJvbC5zZXRDb250cm9sKG5vZGVDb250cm9sLmNvbnRyb2xzLmxlbmd0aCwgZ3JvdXAuY29udHJvbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwO1xuICB9XG5cbiAgcmVtb3ZlQXJyYXlOb2RlQ2hpbGQoaW5kZXg6IG51bWJlciwgbm9kZTogQXJyYXlOb2RlKSB7XG4gICAgY29uc3Qgbm9kZVRvUmVtb3ZlID0gbm9kZS5jaGlsZHJlbltpbmRleF07XG5cbiAgICBub2RlLmNoaWxkcmVuLnNwbGljZShpbmRleCwgMSk7XG4gICAgaWYgKG5vZGUuY29udHJvbCAhPT0gbnVsbCB8fCBub2RlLmNvbnRyb2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKG5vZGUuY29udHJvbCBpbnN0YW5jZW9mIEFmZUZvcm1BcnJheSkge1xuICAgICAgICBjb25zdCBjb250cm9sID0gbm9kZS5jb250cm9sIGFzIEFmZUZvcm1BcnJheTtcbiAgICAgICAgY29uc3QgY29udHJvbEluZGV4VG9SZW1vdmUgPSBjb250cm9sLmNvbnRyb2xzLmluZGV4T2YoXG4gICAgICAgICAgbm9kZVRvUmVtb3ZlLmNvbnRyb2xcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGNvbnRyb2xJbmRleFRvUmVtb3ZlID49IDApIHtcbiAgICAgICAgICBjb250cm9sLnJlbW92ZUF0KGNvbnRyb2xJbmRleFRvUmVtb3ZlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtcGF0aC1rZW55YS9uZ3gtb3Blbm1ycy1mb3JtZW50cnkvIiwic291cmNlcyI6WyJmb3JtLWVudHJ5L2Zvcm0tZmFjdG9yeS9mb3JtLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxvREFBb0Q7QUFFcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFZLE1BQU0sYUFBYSxDQUFDO0FBQ3ZFLE9BQU8sRUFFTCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDZCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBRUwsY0FBYyxFQUNkLFlBQVksRUFDYixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRzlCLE1BQU07SUFPSixZQUNTLGNBQWtDLEVBQ2xDLGVBQWdDLEVBQ2hDLHVCQUFnRDtRQUZoRCxtQkFBYyxHQUFkLGNBQWMsQ0FBb0I7UUFDbEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFUbEQsT0FBRSxHQUFRO1lBQ2YsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ1osQ0FBQztTQUNGLENBQUM7SUFNQyxDQUFDO0lBRUosVUFBVSxDQUFDLE1BQVcsRUFBRSxVQUFnQjtRQUN0QyxNQUFN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QkFDekMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs7O1lBMU1GLFVBQVU7OztZQVpGLGtCQUFrQjtZQUNsQixlQUFlO1lBTWYsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBMZWFmTm9kZSwgR3JvdXBOb2RlLCBBcnJheU5vZGUsIE5vZGVCYXNlIH0gZnJvbSAnLi9mb3JtLW5vZGUnO1xuaW1wb3J0IHtcbiAgUXVlc3Rpb25CYXNlLFxuICBOZXN0ZWRRdWVzdGlvbixcbiAgUmVwZWF0aW5nUXVlc3Rpb24sXG4gIFF1ZXN0aW9uR3JvdXBcbn0gZnJvbSAnLi4vcXVlc3Rpb24tbW9kZWxzL21vZGVscyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuL2Zvcm0tY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7IFF1ZXN0aW9uRmFjdG9yeSB9IGZyb20gJy4vcXVlc3Rpb24uZmFjdG9yeSc7XG5pbXBvcnQge1xuICBBZmVGb3JtR3JvdXAsXG4gIEFmZUNvbnRyb2xUeXBlLFxuICBBZmVGb3JtQXJyYXlcbn0gZnJvbSAnLi4vLi4vYWJzdHJhY3QtY29udHJvbHMtZXh0ZW5zaW9uJztcbmltcG9ydCB7IENvbnRyb2xSZWxhdGlvbnNGYWN0b3J5IH0gZnJvbSAnLi9jb250cm9sLXJlbGF0aW9ucy5mYWN0b3J5JztcbmltcG9ydCB7IFZhbGlkYXRpb25zIH0gZnJvbSAnLi4vdmFsaWRhdG9ycy92YWxpZGF0aW9ucyc7XG5cbmltcG9ydCB7IEZvcm0gfSBmcm9tICcuL2Zvcm0nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9ybUZhY3Rvcnkge1xuICBwdWJsaWMgaGQ6IGFueSA9IHtcbiAgICBnZXRWYWx1ZTogKCkgPT4ge1xuICAgICAgcmV0dXJuIDIwO1xuICAgIH1cbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29udHJvbFNlcnZpY2U6IEZvcm1Db250cm9sU2VydmljZSxcbiAgICBwdWJsaWMgcXVlc3Rpb25GYWN0cm95OiBRdWVzdGlvbkZhY3RvcnksXG4gICAgcHVibGljIGNvbnRyb2xSZWxhdGlvbnNGYWN0b3J5OiBDb250cm9sUmVsYXRpb25zRmFjdG9yeVxuICApIHt9XG5cbiAgY3JlYXRlRm9ybShzY2hlbWE6IGFueSwgZGF0YVNvdXJjZT86IGFueSk6IEZvcm0ge1xuICAgIGNvbnN0IGZvcm06IEZvcm0gPSBuZXcgRm9ybShzY2hlbWEsIHRoaXMsIHRoaXMucXVlc3Rpb25GYWN0cm95KTtcbiAgICBpZiAoZGF0YVNvdXJjZSkge1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YVNvdXJjZSkge1xuICAgICAgICBpZiAoZGF0YVNvdXJjZS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgZm9ybS5kYXRhU291cmNlc0NvbnRhaW5lci5yZWdpc3RlckRhdGFTb3VyY2UoXG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBkYXRhU291cmNlW2tleV0sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcXVlc3Rpb24gPSB0aGlzLnF1ZXN0aW9uRmFjdHJveS5jcmVhdGVRdWVzdGlvbk1vZGVsKHNjaGVtYSwgZm9ybSk7XG4gICAgZm9ybS5yb290Tm9kZSA9IHRoaXMuY3JlYXRlTm9kZShxdWVzdGlvbiwgbnVsbCwgbnVsbCwgZm9ybSkgYXMgR3JvdXBOb2RlO1xuXG4gICAgdGhpcy5idWlsZFJlbGF0aW9ucyhmb3JtLnJvb3ROb2RlKTtcbiAgICBmb3JtLnVwZGF0ZUhpZGRlbkRpc2FibGVkU3RhdGVGb3JBbGxDb250cm9scygpO1xuICAgIGZvcm0udXBkYXRlQWxlcnRzRm9yQWxsQ29udHJvbHMoKTtcbiAgICByZXR1cm4gZm9ybTtcbiAgfVxuXG4gIGJ1aWxkUmVsYXRpb25zKHJvb3ROb2RlOiBHcm91cE5vZGUpIHtcbiAgICBWYWxpZGF0aW9ucy5KU0V4cHJlc3Npb25WYWxpZGF0b3JzRW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuY29udHJvbFJlbGF0aW9uc0ZhY3RvcnkuYnVpbGRSZWxhdGlvbnMocm9vdE5vZGUpO1xuXG4gICAgLy8gZW5hYmxlIGpzIGV4cHJlc3Npb24gdmFsaWRhdGlvbnNcbiAgICBWYWxpZGF0aW9ucy5KU0V4cHJlc3Npb25WYWxpZGF0b3JzRW5hYmxlZCA9IHRydWU7XG4gIH1cblxuICBjcmVhdGVOb2RlKFxuICAgIHF1ZXN0aW9uOiBRdWVzdGlvbkJhc2UgfCBOZXN0ZWRRdWVzdGlvbixcbiAgICBwYXJlbnROb2RlPzogR3JvdXBOb2RlLFxuICAgIHBhcmVudENvbnRyb2w/OiBBZmVGb3JtR3JvdXAsXG4gICAgZm9ybT86IEZvcm1cbiAgKTogTm9kZUJhc2Uge1xuICAgIGxldCBub2RlOiBOb2RlQmFzZSA9IG51bGw7XG4gICAgaWYgKHF1ZXN0aW9uIGluc3RhbmNlb2YgTmVzdGVkUXVlc3Rpb24pIHtcbiAgICAgIGlmIChxdWVzdGlvbiBpbnN0YW5jZW9mIFJlcGVhdGluZ1F1ZXN0aW9uKSB7XG4gICAgICAgIG5vZGUgPSB0aGlzLmNyZWF0ZUFycmF5Tm9kZShxdWVzdGlvbiwgcGFyZW50Tm9kZSwgcGFyZW50Q29udHJvbCwgZm9ybSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlID0gdGhpcy5jcmVhdGVHcm91cE5vZGUocXVlc3Rpb24sIHBhcmVudE5vZGUsIHBhcmVudENvbnRyb2wsIGZvcm0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBub2RlID0gdGhpcy5jcmVhdGVMZWFmTm9kZShxdWVzdGlvbiwgcGFyZW50Tm9kZSwgcGFyZW50Q29udHJvbCwgZm9ybSk7XG4gICAgfVxuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgY3JlYXRlTGVhZk5vZGUoXG4gICAgcXVlc3Rpb246IFF1ZXN0aW9uQmFzZSxcbiAgICBwYXJlbnROb2RlOiBHcm91cE5vZGUsXG4gICAgcGFyZW50Q29udHJvbD86IEFmZUZvcm1Hcm91cCxcbiAgICBmb3JtPzogRm9ybVxuICApOiBMZWFmTm9kZSB7XG4gICAgY29uc3QgY29udHJvbE1vZGVsID0gdGhpcy5jb250cm9sU2VydmljZS5nZW5lcmF0ZUNvbnRyb2xNb2RlbChcbiAgICAgIHF1ZXN0aW9uLFxuICAgICAgcGFyZW50Q29udHJvbCxcbiAgICAgIGZhbHNlLFxuICAgICAgZm9ybVxuICAgICk7XG4gICAgcmV0dXJuIG5ldyBMZWFmTm9kZShcbiAgICAgIHF1ZXN0aW9uLFxuICAgICAgY29udHJvbE1vZGVsLFxuICAgICAgbnVsbCxcbiAgICAgIGZvcm0sXG4gICAgICBwYXJlbnROb2RlID8gcGFyZW50Tm9kZS5wYXRoIDogdW5kZWZpbmVkXG4gICAgKTtcbiAgfVxuXG4gIGNyZWF0ZUdyb3VwTm9kZShcbiAgICBxdWVzdGlvbjogTmVzdGVkUXVlc3Rpb24sXG4gICAgcGFyZW50Tm9kZT86IEdyb3VwTm9kZSxcbiAgICBwYXJlbnRDb250cm9sPzogQWZlRm9ybUdyb3VwLFxuICAgIGZvcm0/OiBGb3JtXG4gICk6IEdyb3VwTm9kZSB7XG4gICAgY29uc3QgY29udHJvbE1vZGVsID0gdGhpcy5jb250cm9sU2VydmljZS5nZW5lcmF0ZUNvbnRyb2xNb2RlbChcbiAgICAgIHF1ZXN0aW9uLFxuICAgICAgcGFyZW50Q29udHJvbCxcbiAgICAgIGZhbHNlLFxuICAgICAgZm9ybVxuICAgICkgYXMgQWZlRm9ybUdyb3VwO1xuICAgIGNvbnN0IGdyb3VwTm9kZSA9IG5ldyBHcm91cE5vZGUoXG4gICAgICBxdWVzdGlvbixcbiAgICAgIGNvbnRyb2xNb2RlbCxcbiAgICAgIG51bGwsXG4gICAgICBmb3JtLFxuICAgICAgcGFyZW50Tm9kZSA/IHBhcmVudE5vZGUucGF0aCA6IHVuZGVmaW5lZFxuICAgICk7XG4gICAgdGhpcy5jcmVhdGVOb2RlQ2hpbGRyZW4oXG4gICAgICBxdWVzdGlvbixcbiAgICAgIGdyb3VwTm9kZSxcbiAgICAgIGNvbnRyb2xNb2RlbCB8fCBwYXJlbnRDb250cm9sLFxuICAgICAgZm9ybVxuICAgICk7XG4gICAgcmV0dXJuIGdyb3VwTm9kZTtcbiAgfVxuXG4gIGNyZWF0ZUFycmF5Tm9kZShcbiAgICBxdWVzdGlvbjogTmVzdGVkUXVlc3Rpb24sXG4gICAgcGFyZW50Tm9kZT86IEdyb3VwTm9kZSxcbiAgICBwYXJlbnRDb250cm9sPzogQWZlRm9ybUdyb3VwLFxuICAgIGZvcm0/OiBGb3JtXG4gICk6IEFycmF5Tm9kZSB7XG4gICAgY29uc3QgY29udHJvbE1vZGVsID0gdGhpcy5jb250cm9sU2VydmljZS5nZW5lcmF0ZUNvbnRyb2xNb2RlbChcbiAgICAgIHF1ZXN0aW9uLFxuICAgICAgcGFyZW50Q29udHJvbCxcbiAgICAgIGZhbHNlLFxuICAgICAgZm9ybVxuICAgICkgYXMgQWZlRm9ybUdyb3VwO1xuICAgIGNvbnN0IGFycmF5Tm9kZSA9IG5ldyBBcnJheU5vZGUoXG4gICAgICBxdWVzdGlvbixcbiAgICAgIGNvbnRyb2xNb2RlbCxcbiAgICAgIHBhcmVudENvbnRyb2wsXG4gICAgICB0aGlzLFxuICAgICAgZm9ybSxcbiAgICAgIHBhcmVudE5vZGUgPyBwYXJlbnROb2RlLnBhdGggOiB1bmRlZmluZWRcbiAgICApO1xuICAgIGFycmF5Tm9kZS5jcmVhdGVDaGlsZEZ1bmMgPSB0aGlzLmNyZWF0ZUFycmF5Tm9kZUNoaWxkO1xuICAgIGFycmF5Tm9kZS5yZW1vdmVDaGlsZEZ1bmMgPSB0aGlzLnJlbW92ZUFycmF5Tm9kZUNoaWxkO1xuXG4gICAgYXJyYXlOb2RlLmFkZENoaWxkTm9kZUNyZWF0ZWRMaXN0ZW5lcigobm9kZTogR3JvdXBOb2RlKSA9PiB7XG4gICAgICBWYWxpZGF0aW9ucy5KU0V4cHJlc3Npb25WYWxpZGF0b3JzRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5jb250cm9sUmVsYXRpb25zRmFjdG9yeS5idWlsZEFycmF5Tm9kZVJlbGF0aW9ucyhub2RlKTtcbiAgICAgIFZhbGlkYXRpb25zLkpTRXhwcmVzc2lvblZhbGlkYXRvcnNFbmFibGVkID0gdHJ1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gYXJyYXlOb2RlO1xuICB9XG5cbiAgY3JlYXRlTm9kZUNoaWxkcmVuKFxuICAgIHF1ZXN0aW9uOiBOZXN0ZWRRdWVzdGlvbixcbiAgICBub2RlOiBHcm91cE5vZGUsXG4gICAgcGFyZW50Q29udHJvbD86IEFmZUZvcm1Hcm91cCxcbiAgICBmb3JtPzogRm9ybVxuICApOiBhbnkge1xuICAgIHF1ZXN0aW9uLnF1ZXN0aW9ucy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICBjb25zdCBjaGlsZCA9IHRoaXMuY3JlYXRlTm9kZShlbGVtZW50LCBub2RlLCBwYXJlbnRDb250cm9sLCBmb3JtKTtcbiAgICAgIG5vZGUuc2V0Q2hpbGQoZWxlbWVudC5rZXksIGNoaWxkKTtcbiAgICB9KTtcbiAgICByZXR1cm4gbm9kZS5jaGlsZHJlbjtcbiAgfVxuXG4gIGNyZWF0ZUFycmF5Tm9kZUNoaWxkKFxuICAgIHF1ZXN0aW9uOiBSZXBlYXRpbmdRdWVzdGlvbixcbiAgICBub2RlOiBBcnJheU5vZGUsXG4gICAgZmFjdG9yeT86IEZvcm1GYWN0b3J5XG4gICk6IEdyb3VwTm9kZSB7XG4gICAgaWYgKGZhY3RvcnkgPT09IG51bGwgfHwgZmFjdG9yeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBmYWN0b3J5ID0gdGhpcztcbiAgICB9XG4gICAgY29uc3QgZ3JvdXBRdWVzdGlvbjogUXVlc3Rpb25Hcm91cCA9IG5ldyBRdWVzdGlvbkdyb3VwKHtcbiAgICAgIGtleTogbm9kZS5wYXRoICsgJy4nICsgbm9kZS5jaGlsZHJlbi5sZW5ndGggKyAnJyxcbiAgICAgIHR5cGU6ICdncm91cCcsXG4gICAgICBleHRyYXM6IHF1ZXN0aW9uLmV4dHJhcyxcbiAgICAgIGxhYmVsOiAnJyxcbiAgICAgIHF1ZXN0aW9uczogcXVlc3Rpb24ucXVlc3Rpb25zXG4gICAgfSk7XG5cbiAgICBpZiAocXVlc3Rpb24uY29udHJvbFR5cGUgPT09IEFmZUNvbnRyb2xUeXBlLk5vbmUpIHtcbiAgICAgIGdyb3VwUXVlc3Rpb24uY29udHJvbFR5cGUgPSBxdWVzdGlvbi5jb250cm9sVHlwZTtcbiAgICB9XG5cbiAgICBjb25zdCBncm91cCA9IGZhY3RvcnkuY3JlYXRlR3JvdXBOb2RlKGdyb3VwUXVlc3Rpb24sIG51bGwsIG51bGwsIG5vZGUuZm9ybSk7XG4gICAgbm9kZS5jaGlsZHJlbi5wdXNoKGdyb3VwKTtcblxuICAgIGlmIChub2RlLmNvbnRyb2wgaW5zdGFuY2VvZiBBZmVGb3JtQXJyYXkpIHtcbiAgICAgIGNvbnN0IG5vZGVDb250cm9sID0gbm9kZS5jb250cm9sIGFzIEFmZUZvcm1BcnJheTtcbiAgICAgIG5vZGVDb250cm9sLnNldENvbnRyb2wobm9kZUNvbnRyb2wuY29udHJvbHMubGVuZ3RoLCBncm91cC5jb250cm9sKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JvdXA7XG4gIH1cblxuICByZW1vdmVBcnJheU5vZGVDaGlsZChpbmRleDogbnVtYmVyLCBub2RlOiBBcnJheU5vZGUpIHtcbiAgICBjb25zdCBub2RlVG9SZW1vdmUgPSBub2RlLmNoaWxkcmVuW2luZGV4XTtcblxuICAgIG5vZGUuY2hpbGRyZW4uc3BsaWNlKGluZGV4LCAxKTtcbiAgICBpZiAobm9kZS5jb250cm9sICE9PSBudWxsIHx8IG5vZGUuY29udHJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAobm9kZS5jb250cm9sIGluc3RhbmNlb2YgQWZlRm9ybUFycmF5KSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBub2RlLmNvbnRyb2wgYXMgQWZlRm9ybUFycmF5O1xuICAgICAgICBjb25zdCBjb250cm9sSW5kZXhUb1JlbW92ZSA9IGNvbnRyb2wuY29udHJvbHMuaW5kZXhPZihcbiAgICAgICAgICBub2RlVG9SZW1vdmUuY29udHJvbFxuICAgICAgICApO1xuICAgICAgICBpZiAoY29udHJvbEluZGV4VG9SZW1vdmUgPj0gMCkge1xuICAgICAgICAgIGNvbnRyb2wucmVtb3ZlQXQoY29udHJvbEluZGV4VG9SZW1vdmUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -190,4 +190,4 @@ export class Form {
|
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vcGVubXJzLWZvcm1lbnRyeS8iLCJzb3VyY2VzIjpbImZvcm0tZW50cnkvZm9ybS1mYWN0b3J5L2Zvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFJNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBWSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUt2RSxNQUFNO0lBTUosWUFDUyxNQUFXLEVBQ1gsV0FBd0IsRUFDeEIsZUFBZ0M7UUFGaEMsV0FBTSxHQUFOLE1BQU0sQ0FBSztRQUNYLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQVBsQyx3QkFBbUIsR0FBUSxFQUFFLENBQUM7UUFDOUIsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFFeEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFNMUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQWUsRUFBRSxJQUFJLEVBQUUsS0FBc0I7UUFDNUQsTUFBTSxRQUFRLEdBQWEsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUV6QyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzNCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqQyxNQUFNLEtBQUssR0FBYSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRXRDLEVBQUUsQ0FBQyxDQUFDLEtBQUssWUFB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QUMsQ0FBQyxRQUFRLFlBQVksU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNsQyxNQUFNLFdBQVcsR0FBRyxRQUFxQixDQUFDO1lBQzFDLGlDQUFpQztZQUNqQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RSxDQUFDO1FBQ0gsQ0FBQztRQUVELEVBQUUsQ0FBQyxDQUFDLFFBQVEsWUFBWSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sV0FBVyxHQUFHLFFBQXFCLENBQUM7WUFFMUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgRm9ybUZhY3RvcnkgfSBmcm9tICcuL2Zvcm0uZmFjdG9yeSc7XG5pbXBvcnQgeyBRdWVzdGlvbkZhY3RvcnkgfSBmcm9tICcuL3F1ZXN0aW9uLmZhY3RvcnknO1xuaW1wb3J0IHsgRGF0YVNvdXJjZXMgfSBmcm9tICcuLi9kYXRhLXNvdXJjZXMvZGF0YS1zb3VyY2VzJztcbmltcG9ydCB7IE5vZGVCYXNlLCBHcm91cE5vZGUsIExlYWZOb2RlLCBBcnJheU5vZGUgfSBmcm9tICcuL2Zvcm0tbm9kZSc7XG5pbXBvcnQgeyBRdWVzdGlvbkJhc2UgfSBmcm9tICcuLi9xdWVzdGlvbi1tb2RlbHMvcXVlc3Rpb24tYmFzZSc7XG5pbXBvcnQgeyBBZmVGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL2Fic3RyYWN0LWNvbnRyb2xzLWV4dGVuc2lvbi9hZmUtZm9ybS1jb250cm9sJztcbmltcG9ydCB7IEFmZUZvcm1BcnJheSB9IGZyb20gJy4uLy4uL2Fic3RyYWN0LWNvbnRyb2xzLWV4dGVuc2lvbi9hZmUtZm9ybS1hcnJheSc7XG5cbmV4cG9ydCBjbGFzcyBGb3JtIHtcbiAgcHVibGljIHJvb3ROb2RlOiBHcm91cE5vZGU7XG4gIHB1YmxpYyB2YWx1ZVByb2Nlc3NpbmdJbmZvOiBhbnkgPSB7fTtcbiAgcHVibGljIGV4aXN0aW5nT3JkZXJzOiBhbnkgPSB7fTtcbiAgcHJpdmF0ZSBfZGF0YVNvdXJjZXNDb250YWluZXI6IERhdGFTb3VyY2VzO1xuICBwcml2YXRlIF9zaG93RXJyb3JzID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzY2hlbWE6IGFueSxcbiAgICBwdWJsaWMgZm9ybUZhY3Rvcnk6IEZvcm1GYWN0b3J5LFxuICAgIHB1YmxpYyBxdWVzdGlvbkZhY3Rvcnk6IFF1ZXN0aW9uRmFjdG9yeVxuICApIHtcbiAgICB0aGlzLl9kYXRhU291cmNlc0NvbnRhaW5lciA9IG5ldyBEYXRhU291cmNlcygpO1xuICB9XG5cbiAgZ2V0IGRhdGFTb3VyY2VzQ29udGFpbmVyKCk6IERhdGFTb3VyY2VzIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZXNDb250YWluZXI7XG4gIH1cblxuICBzZWFyY2hOb2RlQnlQYXRoKG5vZGU6IEdyb3VwTm9kZSwgcGF0aCwgZm91bmQ6IEFycmF5PE5vZGVCYXNlPikge1xuICAgIGNvbnN0IGNoaWxkcmVuOiBOb2RlQmFzZSA9IG5vZGUuY2hpbGRyZW47XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBjaGlsZHJlbikge1xuICAgICAgaWYgKGNoaWxkcmVuLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgY29uc3QgY2hpbGQ6IE5vZGVCYXNlID0gY2hpbGRyZW5ba2V5XTtcblxuICAgICAgICBpZiAoY2hpbGQgaW5zdGFuY2VvZiBHcm91cE5vZGUpIHtcbiAgICAgICAgICBpZiAocGF0aCA9PT0gY2hpbGQucGF0aCkge1xuICAgICAgICAgICAgZm91bmQucHVzaChjaGlsZCk7XG4gICAgICAgICAgICByZXR1cm4gZm91bmQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5zZWFyY2hOb2RlQnlQYXRoKGNoaWxkLCBwYXRoLCBmb3VuZCk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hpbGQgaW5zdGFuY2VvZiBMZWFmTm9kZSkge1xuICAgICAgICAgIGlmIChwYXRoID09PSBjaGlsZC5wYXRoKSB7XG4gICAgICAgICAgICBmb3VuZC5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIHJldHVybiBmb3VuZDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoY2hpbGQgaW5zdGFuY2VvZiBBcnJheU5vZGUpIHtcbiAgICAgICAgICBpZiAocGF0aCA9PT0gY2hpbGQucGF0aCkge1xuICAgICAgICAgICAgZm91bmQucHVzaChjaGlsZCk7XG4gICAgICAgICAgICByZXR1cm4gZm91bmQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgYUNoaWxkOiBBcnJheU5vZGUgPSBjaGlsZCBhcyBBcnJheU5vZGU7XG5cbiAgICAgICAgICBhQ2hpbGQuY2hpbGRyZW4uZm9yRWFjaCgoYUNoaWxkTm9kZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hOb2RlQnlQYXRoKGFDaGlsZE5vZGUsIHBhdGgsIGZvdW5kKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmb3VuZDtcbiAgfVxuXG4gIHNlYXJjaE5vZGVCeVF1ZXN0aW9uSWQoXG4gICAgcXVlc3Rpb25JZDogc3RyaW5nLFxuICAgIHF1ZXN0aW9uVHlwZT86IHN0cmluZ1xuICApOiBBcnJheTxOb2RlQmFzZT4ge1xuICAgIGNvbnN0IGZvdW5kID0gW107XG4gICAgaWYgKHF1ZXN0aW9uVHlwZSkge1xuICAgICAgdGhpcy5zZWFyY2hOb2RlQnlRdWVzdGlvblR5cGUodGhpcy5yb290Tm9kZSwgcXVlc3Rpb25UeXBlLCBmb3VuZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmluZE5vZGVzQnlRdWVzdGlvbklkKHRoaXMucm9vdE5vZGUsIHF1ZXN0aW9uSWQsIGZvdW5kKTtcbiAgICB9XG4gICAgcmV0dXJuIGZvdW5kO1xuICB9XG5cbiAgc2VhcmNoTm9kZUJ5UXVlc3Rpb25UeXBlKFxuICAgIHJvb3ROb2RlOiBhbnksXG4gICAgcXVlc3Rpb25UeXBlOiBzdHJpbmcsXG4gICAgZm91bmQ6IEFycmF5PE5vZGVCYXNlPlxuICApIHtcbiAgICBpZiAocm9vdE5vZGUgaW5zdGFuY2VvZiBHcm91cE5vZGUpIHtcbiAgICAgIGNvbnN0IG5vZGVBc0dyb3VwID0gcm9vdE5vZGUgYXMgR3JvdXBOb2RlO1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmZvcmluXG4gICAgICBmb3IgKGNvbnN0IG8gaW4gbm9kZUFzR3JvdXAuY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5zZWFyY2hOb2RlQnlRdWVzdGlvblR5cGUoXG4gICAgICAgICAgbm9kZUFzR3JvdXAuY2hpbGRyZW5bb10sXG4gICAgICAgICAgcXVlc3Rpb25UeXBlLFxuICAgICAgICAgIGZvdW5kXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJvb3ROb2RlIGluc3RhbmNlb2YgQXJyYXlOb2RlKSB7XG4gICAgICBjb25zdCBub2RlQXNBcnJheSA9IHJvb3ROb2RlIGFzIEFycmF5Tm9kZTtcblxuICAgICAgbm9kZUFzQXJyYXkuY2hpbGRyZW4uZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaE5vZGVCeVF1ZXN0aW9uVHlwZShub2RlLCBxdWVzdGlvblR5cGUsIGZvdW5kKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChyb290Tm9kZSBpbnN0YW5jZW9mIExlYWZOb2RlKSB7XG4gICAgICBjb25zdCBxdWVzdGlvbkJhc2U6IFF1ZXN0aW9uQmFzZSA9IHJvb3ROb2RlLnF1ZXN0aW9uO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHF1ZXN0aW9uQmFzZS5leHRyYXMgJiZcbiAgICAgICAgcXVlc3Rpb25CYXNlLmV4dHJhcy50eXBlICYmXG4gICAgICAgIHF1ZXN0aW9uQmFzZS5leHRyYXMudHlwZSA9PT0gcXVlc3Rpb25UeXBlXG4gICAgICApIHtcbiAgICAgICAgZm91bmQucHVzaChyb290Tm9kZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTm9kZXNCeVF1ZXN0aW9uSWQoXG4gICAgcm9vdE5vZGU6IE5vZGVCYXNlLFxuICAgIHF1ZXN0aW9uSWQ6IHN0cmluZyxcbiAgICByZXN1bHRzOiBBcnJheTxOb2RlQmFzZT5cbiAgKSB7XG4gICAgaWYgKHJvb3ROb2RlLnF1ZXN0aW9uLmtleSA9PT0gcXVlc3Rpb25JZCkge1xuICAgICAgcmVzdWx0cy5wdXNoKHJvb3ROb2RlKTtcbiAgICB9XG5cbiAgICBpZiAocm9vdE5vZGUgaW5zdGFuY2VvZiBHcm91cE5vZGUpIHtcbiAgICAgIGNvbnN0IG5vZGVBc0dyb3VwID0gcm9vdE5vZGUgYXMgR3JvdXBOb2RlO1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmZvcmluXG4gICAgICBmb3IgKGNvbnN0IG8gaW4gbm9kZUFzR3JvdXAuY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5maW5kTm9kZXNCeVF1ZXN0aW9uSWQoXG4gICAgICAgICAgbm9kZUFzR3JvdXAuY2hpbGRyZW5bb10sXG4gICAgICAgICAgcXVlc3Rpb25JZCxcbiAgICAgICAgICByZXN1bHRzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJvb3ROb2RlIGluc3RhbmNlb2YgQXJyYXlOb2RlKSB7XG4gICAgICBjb25zdCBub2RlQXNBcnJheSA9IHJvb3ROb2RlIGFzIEFycmF5Tm9kZTtcblxuICAgICAgbm9kZUFzQXJyYXkuY2hpbGRyZW4uZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICB0aGlzLmZpbmROb2Rlc0J5UXVlc3Rpb25JZChub2RlLCBxdWVzdGlvbklkLCByZXN1bHRzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCB2YWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5yb290Tm9kZS5jb250cm9sLnZhbGlkO1xuICB9XG5cbiAgc2V0IHNob3dFcnJvcnMoc2hvdzogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dFcnJvcnMgPSBzaG93O1xuICB9XG5cbiAgZ2V0IHNob3dFcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dFcnJvcnM7XG4gIH1cblxuICBtYXJrSW52YWxpZENvbnRyb2xzKG5vZGU6IEdyb3VwTm9kZSwgaW52YWxpZENvbnRyb2xOb2Rlcz86IGFueSkge1xuICAgIGNvbnN0IGNoaWxkcmVuOiBOb2RlQmFzZSA9IG5vZGUuY2hpbGRyZW47XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBjaGlsZHJlbikge1xuICAgICAgaWYgKGNoaWxkcmVuLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgY29uc3QgY2hpbGQ6IE5vZGVCYXNlID0gY2hpbGRyZW5ba2V5XTtcblxuICAgICAgICBpZiAoY2hpbGQgaW5zdGFuY2VvZiBHcm91cE5vZGUpIHtcbiAgICAgICAgICB0aGlzLm1hcmtJbnZhbGlkQ29udHJvbHMoY2hpbGQsIGludmFsaWRDb250cm9sTm9kZXMpO1xuICAgICAgICB9IGVsc2UgaWYgKGNoaWxkIGluc3RhbmNlb2YgTGVhZk5vZGUpIHtcbiAgICAgICAgICBjb25zdCBxdWVzdGlvbkJhc2U6IFF1ZXN0aW9uQmFzZSA9IChjaGlsZCBhcyBMZWFmTm9kZSkucXVlc3Rpb247XG5cbiAgICAgICAgICBpZiAocXVlc3Rpb25CYXNlLmtleSAmJiBxdWVzdGlvbkJhc2Uua2V5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGM6IEFmZUZvcm1Db250cm9sIHwgQWZlRm9ybUFycmF5ID0gY2hpbGQuY29udHJvbCBhc1xuICAgICAgICAgICAgICB8IEFmZUZvcm1Db250cm9sXG4gICAgICAgICAgICAgIHwgQWZlRm9ybUFycmF5O1xuXG4gICAgICAgICAgICBpZiAoIWMudmFsaWQgJiYgIWMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgaWYgKGludmFsaWRDb250cm9sTm9kZXMpIHtcbiAgICAgICAgICAgICAgICBpbnZhbGlkQ29udHJvbE5vZGVzLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgYy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGNoaWxkIGluc3RhbmNlb2YgQXJyYXlOb2RlKSB7XG4gICAgICAgICAgY29uc3QgYXJyYXlOb2RlOiBBcnJheU5vZGUgPSBjaGlsZCBhcyBBcnJheU5vZGU7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBhcnJheU5vZGUgJiZcbiAgICAgICAgICAgIGFycmF5Tm9kZS5jaGlsZHJlbiAmJlxuICAgICAgICAgICAgYXJyYXlOb2RlLmNoaWxkcmVuLmxlbmd0aCA+IDBcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIF8uZm9yRWFjaChhcnJheU5vZGUuY2hpbGRyZW4sIChncm91cE5vZGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm1hcmtJbnZhbGlkQ29udHJvbHMoZ3JvdXBOb2RlLCBpbnZhbGlkQ29udHJvbE5vZGVzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpbnZhbGlkQ29udHJvbE5vZGVzO1xuICB9XG5cbiAgdXBkYXRlSGlkZGVuRGlzYWJsZWRTdGF0ZUZvckFsbENvbnRyb2xzKCkge1xuICAgIHRoaXMuX3VwZGF0ZUhpZGRlbkRpc2FibGVkU3RhdGVGb3JBbGxDb250cm9scyh0aGlzLnJvb3ROb2RlKTtcbiAgfVxuXG4gIHVwZGF0ZUFsZXJ0c0ZvckFsbENvbnRyb2xzKCkge1xuICAgIHRoaXMuX3VwZGF0ZUFsZXJ0c0ZvckFsbENvbnRyb2xzKHRoaXMucm9vdE5vZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQWxlcnRzRm9yQWxsQ29udHJvbHMocm9vdE5vZGU6IE5vZGVCYXNlKSB7XG4gICAgaWYgKHJvb3ROb2RlLmNvbnRyb2wpIHtcbiAgICAgIGlmICgocm9vdE5vZGUuY29udHJvbCBhcyBhbnkpLnVwZGF0ZUFsZXJ0KSB7XG4gICAgICAgIChyb290Tm9kZS5jb250cm9sIGFzIGFueSkudXBkYXRlQWxlcnQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocm9vdE5vZGUgaW5zdGFuY2VvZiBHcm91cE5vZGUpIHtcbiAgICAgIGNvbnN0IG5vZGVBc0dyb3VwID0gcm9vdE5vZGUgYXMgR3JvdXBOb2RlO1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmZvcmluXG4gICAgICBmb3IgKGNvbnN0IG8gaW4gbm9kZUFzR3JvdXAuY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlQWxlcnRzRm9yQWxsQ29udHJvbHMobm9kZUFzR3JvdXAuY2hpbGRyZW5bb10pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyb290Tm9kZSBpbnN0YW5jZW9mIEFycmF5Tm9kZSkge1xuICAgICAgY29uc3Qgbm9kZUFzQXJyYXkgPSByb290Tm9kZSBhcyBBcnJheU5vZGU7XG5cbiAgICAgIG5vZGVBc0FycmF5LmNoaWxkcmVuLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgdGhpcy5fdXBkYXRlQWxlcnRzRm9yQWxsQ29udHJvbHMobm9kZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfdXBkYXRlSGlkZGVuRGlzYWJsZWRTdGF0ZUZvckFsbENvbnRyb2xzKHJvb3ROb2RlOiBOb2RlQmFzZSkge1xuICAgIGlmIChyb290Tm9kZS5jb250cm9sKSB7XG4gICAgICBpZiAoKHJvb3ROb2RlLmNvbnRyb2wgYXMgYW55KS51cGRhdGVEaXNhYmxlZFN0YXRlKSB7XG4gICAgICAgIChyb290Tm9kZS5jb250cm9sIGFzIGFueSkudXBkYXRlRGlzYWJsZWRTdGF0ZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAoKHJvb3ROb2RlLmNvbnRyb2wgYXMgYW55KS51cGRhdGVIaWRkZW5TdGF0ZSkge1xuICAgICAgICAocm9vdE5vZGUuY29udHJvbCBhcyBhbnkpLnVwZGF0ZUhpZGRlblN0YXRlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJvb3ROb2RlIGluc3RhbmNlb2YgR3JvdXBOb2RlKSB7XG4gICAgICBjb25zdCBub2RlQXNHcm91cCA9IHJvb3ROb2RlIGFzIEdyb3VwTm9kZTtcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpmb3JpblxuICAgICAgZm9yIChjb25zdCBvIGluIG5vZGVBc0dyb3VwLmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUhpZGRlbkRpc2FibGVkU3RhdGVGb3JBbGxDb250cm9scyhub2RlQXNHcm91cC5jaGlsZHJlbltvXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJvb3ROb2RlIGluc3RhbmNlb2YgQXJyYXlOb2RlKSB7XG4gICAgICBjb25zdCBub2RlQXNBcnJheSA9IHJvb3ROb2RlIGFzIEFycmF5Tm9kZTtcblxuICAgICAgbm9kZUFzQXJyYXkuY2hpbGRyZW4uZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICB0aGlzLl91cGRhdGVIaWRkZW5EaXNhYmxlZFN0YXRlRm9yQWxsQ29udHJvbHMobm9kZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhbXBhdGgta2VueWEvbmd4LW9wZW5tcnMtZm9ybWVudHJ5LyIsInNvdXJjZXMiOlsiZm9ybS1lbnRyeS9mb3JtLWZhY3RvcnkvZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUk1QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFZLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBS3ZFLE1BQU07SUFNSixZQUNTLE1BQVcsRUFDWCxXQUF3QixFQUN4QixlQUFnQztRQUZoQyxXQUFNLEdBQU4sTUFBTSxDQUFLO1FBQ1gsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBUGxDLHdCQUFtQixHQUFRLEVBQUUsQ0FBQztRQUM5QixtQkFBYyxHQUFRLEVBQUUsQ0FBQztRQUV4QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQU0xQixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBZSxFQUFFLElBQUksRUFBRSxLQUFzQjtRQUM1RCxNQUFNLFFBQVEsR0FBYSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRXpDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDM0IsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLE1BQU0sS0FBSyxHQUFhLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFdEMsRUFBRSxDQUFD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QztRQUVELEVBQUUsQ0FBQyxDQUFDLFFBQVEsWUFBWSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sV0FBVyxHQUFHLFFBQXFCLENBQUM7WUFDMUMsaUNBQWlDO1lBQ2pDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsd0NBQXdDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLENBQUM7UUFDSCxDQUFDO1FBRUQsRUFBRSxDQUFDLENBQUMsUUFBUSxZQUFZLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsTUFBTSxXQUFXLEdBQUcsUUFBcUIsQ0FBQztZQUUxQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsd0NBQXdDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBGb3JtRmFjdG9yeSB9IGZyb20gJy4vZm9ybS5mYWN0b3J5JztcbmltcG9ydCB7IFF1ZXN0aW9uRmFjdG9yeSB9IGZyb20gJy4vcXVlc3Rpb24uZmFjdG9yeSc7XG5pbXBvcnQgeyBEYXRhU291cmNlcyB9IGZyb20gJy4uL2RhdGEtc291cmNlcy9kYXRhLXNvdXJjZXMnO1xuaW1wb3J0IHsgTm9kZUJhc2UsIEdyb3VwTm9kZSwgTGVhZk5vZGUsIEFycmF5Tm9kZSB9IGZyb20gJy4vZm9ybS1ub2RlJztcbmltcG9ydCB7IFF1ZXN0aW9uQmFzZSB9IGZyb20gJy4uL3F1ZXN0aW9uLW1vZGVscy9xdWVzdGlvbi1iYXNlJztcbmltcG9ydCB7IEFmZUZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3QtY29udHJvbHMtZXh0ZW5zaW9uL2FmZS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgQWZlRm9ybUFycmF5IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3QtY29udHJvbHMtZXh0ZW5zaW9uL2FmZS1mb3JtLWFycmF5JztcblxuZXhwb3J0IGNsYXNzIEZvcm0ge1xuICBwdWJsaWMgcm9vdE5vZGU6IEdyb3VwTm9kZTtcbiAgcHVibGljIHZhbHVlUHJvY2Vzc2luZ0luZm86IGFueSA9IHt9O1xuICBwdWJsaWMgZXhpc3RpbmdPcmRlcnM6IGFueSA9IHt9O1xuICBwcml2YXRlIF9kYXRhU291cmNlc0NvbnRhaW5lcjogRGF0YVNvdXJjZXM7XG4gIHByaXZhdGUgX3Nob3dFcnJvcnMgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNjaGVtYTogYW55LFxuICAgIHB1YmxpYyBmb3JtRmFjdG9yeTogRm9ybUZhY3RvcnksXG4gICAgcHVibGljIHF1ZXN0aW9uRmFjdG9yeTogUXVlc3Rpb25GYWN0b3J5XG4gICkge1xuICAgIHRoaXMuX2RhdGFTb3VyY2VzQ29udGFpbmVyID0gbmV3IERhdGFTb3VyY2VzKCk7XG4gIH1cblxuICBnZXQgZGF0YVNvdXJjZXNDb250YWluZXIoKTogRGF0YVNvdXJjZXMge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlc0NvbnRhaW5lcjtcbiAgfVxuXG4gIHNlYXJjaE5vZGVCeVBhdGgobm9kZTogR3JvdXBOb2RlLCBwYXRoLCBmb3VuZDogQXJyYXk8Tm9kZUJhc2U+KSB7XG4gICAgY29uc3QgY2hpbGRyZW46IE5vZGVCYXNlID0gbm9kZS5jaGlsZHJlbjtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIGNoaWxkcmVuKSB7XG4gICAgICBpZiAoY2hpbGRyZW4uaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBjb25zdCBjaGlsZDogTm9kZUJhc2UgPSBjaGlsZHJlbltrZXldO1xuXG4gICAgICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIEdyb3VwTm9kZSkge1xuICAgICAgICAgIGlmIChwYXRoID09PSBjaGlsZC5wYXRoKSB7XG4gICAgICAgICAgICBmb3VuZC5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIHJldHVybiBmb3VuZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnNlYXJjaE5vZGVCeVBhdGgoY2hpbGQsIHBhdGgsIGZvdW5kKTtcbiAgICAgICAgfSBlbHNlIGlmIChjaGlsZCBpbnN0YW5jZW9mIExlYWZOb2RlKSB7XG4gICAgICAgICAgaWYgKHBhdGggPT09IGNoaWxkLnBhdGgpIHtcbiAgICAgICAgICAgIGZvdW5kLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChjaGlsZCBpbnN0YW5jZW9mIEFycmF5Tm9kZSkge1xuICAgICAgICAgIGlmIChwYXRoID09PSBjaGlsZC5wYXRoKSB7XG4gICAgICAgICAgICBmb3VuZC5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIHJldHVybiBmb3VuZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBhQ2hpbGQ6IEFycmF5Tm9kZSA9IGNoaWxkIGFzIEFycmF5Tm9kZTtcblxuICAgICAgICAgIGFDaGlsZC5jaGlsZHJlbi5mb3JFYWNoKChhQ2hpbGROb2RlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaE5vZGVCeVBhdGgoYUNoaWxkTm9kZSwgcGF0aCwgZm91bmQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kO1xuICB9XG5cbiAgc2VhcmNoTm9kZUJ5UXVlc3Rpb25JZChcbiAgICBxdWVzdGlvbklkOiBzdHJpbmcsXG4gICAgcXVlc3Rpb25UeXBlPzogc3RyaW5nXG4gICk6IEFycmF5PE5vZGVCYXNlPiB7XG4gICAgY29uc3QgZm91bmQgPSBbXTtcbiAgICBpZiAocXVlc3Rpb25UeXBlKSB7XG4gICAgICB0aGlzLnNlYXJjaE5vZGVCeVF1ZXN0aW9uVHlwZSh0aGlzLnJvb3ROb2RlLCBxdWVzdGlvblR5cGUsIGZvdW5kKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maW5kTm9kZXNCeVF1ZXN0aW9uSWQodGhpcy5yb290Tm9kZSwgcXVlc3Rpb25JZCwgZm91bmQpO1xuICAgIH1cbiAgICByZXR1cm4gZm91bmQ7XG4gIH1cblxuICBzZWFyY2hOb2RlQnlRdWVzdGlvblR5cGUoXG4gICAgcm9vdE5vZGU6IGFueSxcbiAgICBxdWVzdGlvblR5cGU6IHN0cmluZyxcbiAgICBmb3VuZDogQXJyYXk8Tm9kZUJhc2U+XG4gICkge1xuICAgIGlmIChyb290Tm9kZSBpbnN0YW5jZW9mIEdyb3VwTm9kZSkge1xuICAgICAgY29uc3Qgbm9kZUFzR3JvdXAgPSByb290Tm9kZSBhcyBHcm91cE5vZGU7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Zm9yaW5cbiAgICAgIGZvciAoY29uc3QgbyBpbiBub2RlQXNHcm91cC5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLnNlYXJjaE5vZGVCeVF1ZXN0aW9uVHlwZShcbiAgICAgICAgICBub2RlQXNHcm91cC5jaGlsZHJlbltvXSxcbiAgICAgICAgICBxdWVzdGlvblR5cGUsXG4gICAgICAgICAgZm91bmRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocm9vdE5vZGUgaW5zdGFuY2VvZiBBcnJheU5vZGUpIHtcbiAgICAgIGNvbnN0IG5vZGVBc0FycmF5ID0gcm9vdE5vZGUgYXMgQXJyYXlOb2RlO1xuXG4gICAgICBub2RlQXNBcnJheS5jaGlsZHJlbi5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoTm9kZUJ5UXVlc3Rpb25UeXBlKG5vZGUsIHF1ZXN0aW9uVHlwZSwgZm91bmQpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHJvb3ROb2RlIGluc3RhbmNlb2YgTGVhZk5vZGUpIHtcbiAgICAgIGNvbnN0IHF1ZXN0aW9uQmFzZTogUXVlc3Rpb25CYXNlID0gcm9vdE5vZGUucXVlc3Rpb247XG5cbiAgICAgIGlmIChcbiAgICAgICAgcXVlc3Rpb25CYXNlLmV4dHJhcyAmJlxuICAgICAgICBxdWVzdGlvbkJhc2UuZXh0cmFzLnR5cGUgJiZcbiAgICAgICAgcXVlc3Rpb25CYXNlLmV4dHJhcy50eXBlID09PSBxdWVzdGlvblR5cGVcbiAgICAgICkge1xuICAgICAgICBmb3VuZC5wdXNoKHJvb3ROb2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbmROb2Rlc0J5UXVlc3Rpb25JZChcbiAgICByb290Tm9kZTogTm9kZUJhc2UsXG4gICAgcXVlc3Rpb25JZDogc3RyaW5nLFxuICAgIHJlc3VsdHM6IEFycmF5PE5vZGVCYXNlPlxuICApIHtcbiAgICBpZiAocm9vdE5vZGUucXVlc3Rpb24ua2V5ID09PSBxdWVzdGlvbklkKSB7XG4gICAgICByZXN1bHRzLnB1c2gocm9vdE5vZGUpO1xuICAgIH1cblxuICAgIGlmIChyb290Tm9kZSBpbnN0YW5jZW9mIEdyb3VwTm9kZSkge1xuICAgICAgY29uc3Qgbm9kZUFzR3JvdXAgPSByb290Tm9kZSBhcyBHcm91cE5vZGU7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Zm9yaW5cbiAgICAgIGZvciAoY29uc3QgbyBpbiBub2RlQXNHcm91cC5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLmZpbmROb2Rlc0J5UXVlc3Rpb25JZChcbiAgICAgICAgICBub2RlQXNHcm91cC5jaGlsZHJlbltvXSxcbiAgICAgICAgICBxdWVzdGlvbklkLFxuICAgICAgICAgIHJlc3VsdHNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocm9vdE5vZGUgaW5zdGFuY2VvZiBBcnJheU5vZGUpIHtcbiAgICAgIGNvbnN0IG5vZGVBc0FycmF5ID0gcm9vdE5vZGUgYXMgQXJyYXlOb2RlO1xuXG4gICAgICBub2RlQXNBcnJheS5jaGlsZHJlbi5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgIHRoaXMuZmluZE5vZGVzQnlRdWVzdGlvbklkKG5vZGUsIHF1ZXN0aW9uSWQsIHJlc3VsdHMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLnJvb3ROb2RlLmNvbnRyb2wudmFsaWQ7XG4gIH1cblxuICBzZXQgc2hvd0Vycm9ycyhzaG93OiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0Vycm9ycyA9IHNob3c7XG4gIH1cblxuICBnZXQgc2hvd0Vycm9ycygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0Vycm9ycztcbiAgfVxuXG4gIG1hcmtJbnZhbGlkQ29udHJvbHMobm9kZTogR3JvdXBOb2RlLCBpbnZhbGlkQ29udHJvbE5vZGVzPzogYW55KSB7XG4gICAgY29uc3QgY2hpbGRyZW46IE5vZGVCYXNlID0gbm9kZS5jaGlsZHJlbjtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIGNoaWxkcmVuKSB7XG4gICAgICBpZiAoY2hpbGRyZW4uaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBjb25zdCBjaGlsZDogTm9kZUJhc2UgPSBjaGlsZHJlbltrZXldO1xuXG4gICAgICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIEdyb3VwTm9kZSkge1xuICAgICAgICAgIHRoaXMubWFya0ludmFsaWRDb250cm9scyhjaGlsZCwgaW52YWxpZENvbnRyb2xOb2Rlcyk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hpbGQgaW5zdGFuY2VvZiBMZWFmTm9kZSkge1xuICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uQmFzZTogUXVlc3Rpb25CYXNlID0gKGNoaWxkIGFzIExlYWZOb2RlKS5xdWVzdGlvbjtcblxuICAgICAgICAgIGlmIChxdWVzdGlvbkJhc2Uua2V5ICYmIHF1ZXN0aW9uQmFzZS5rZXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgYzogQWZlRm9ybUNvbnRyb2wgfCBBZmVGb3JtQXJyYXkgPSBjaGlsZC5jb250cm9sIGFzXG4gICAgICAgICAgICAgIHwgQWZlRm9ybUNvbnRyb2xcbiAgICAgICAgICAgICAgfCBBZmVGb3JtQXJyYXk7XG5cbiAgICAgICAgICAgIGlmICghYy52YWxpZCAmJiAhYy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICBpZiAoaW52YWxpZENvbnRyb2xOb2Rlcykge1xuICAgICAgICAgICAgICAgIGludmFsaWRDb250cm9sTm9kZXMucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoY2hpbGQgaW5zdGFuY2VvZiBBcnJheU5vZGUpIHtcbiAgICAgICAgICBjb25zdCBhcnJheU5vZGU6IEFycmF5Tm9kZSA9IGNoaWxkIGFzIEFycmF5Tm9kZTtcblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGFycmF5Tm9kZSAmJlxuICAgICAgICAgICAgYXJyYXlOb2RlLmNoaWxkcmVuICYmXG4gICAgICAgICAgICBhcnJheU5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgXy5mb3JFYWNoKGFycmF5Tm9kZS5jaGlsZHJlbiwgKGdyb3VwTm9kZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubWFya0ludmFsaWRDb250cm9scyhncm91cE5vZGUsIGludmFsaWRDb250cm9sTm9kZXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGludmFsaWRDb250cm9sTm9kZXM7XG4gIH1cblxuICB1cGRhdGVIaWRkZW5EaXNhYmxlZFN0YXRlRm9yQWxsQ29udHJvbHMoKSB7XG4gICAgdGhpcy5fdXBkYXRlSGlkZGVuRGlzYWJsZWRTdGF0ZUZvckFsbENvbnRyb2xzKHRoaXMucm9vdE5vZGUpO1xuICB9XG5cbiAgdXBkYXRlQWxlcnRzRm9yQWxsQ29udHJvbHMoKSB7XG4gICAgdGhpcy5fdXBkYXRlQWxlcnRzRm9yQWxsQ29udHJvbHModGhpcy5yb290Tm9kZSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVBbGVydHNGb3JBbGxDb250cm9scyhyb290Tm9kZTogTm9kZUJhc2UpIHtcbiAgICBpZiAocm9vdE5vZGUuY29udHJvbCkge1xuICAgICAgaWYgKChyb290Tm9kZS5jb250cm9sIGFzIGFueSkudXBkYXRlQWxlcnQpIHtcbiAgICAgICAgKHJvb3ROb2RlLmNvbnRyb2wgYXMgYW55KS51cGRhdGVBbGVydCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyb290Tm9kZSBpbnN0YW5jZW9mIEdyb3VwTm9kZSkge1xuICAgICAgY29uc3Qgbm9kZUFzR3JvdXAgPSByb290Tm9kZSBhcyBHcm91cE5vZGU7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Zm9yaW5cbiAgICAgIGZvciAoY29uc3QgbyBpbiBub2RlQXNHcm91cC5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLl91cGRhdGVBbGVydHNGb3JBbGxDb250cm9scyhub2RlQXNHcm91cC5jaGlsZHJlbltvXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJvb3ROb2RlIGluc3RhbmNlb2YgQXJyYXlOb2RlKSB7XG4gICAgICBjb25zdCBub2RlQXNBcnJheSA9IHJvb3ROb2RlIGFzIEFycmF5Tm9kZTtcblxuICAgICAgbm9kZUFzQXJyYXkuY2hpbGRyZW4uZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICB0aGlzLl91cGRhdGVBbGVydHNGb3JBbGxDb250cm9scyhub2RlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF91cGRhdGVIaWRkZW5EaXNhYmxlZFN0YXRlRm9yQWxsQ29udHJvbHMocm9vdE5vZGU6IE5vZGVCYXNlKSB7XG4gICAgaWYgKHJvb3ROb2RlLmNvbnRyb2wpIHtcbiAgICAgIGlmICgocm9vdE5vZGUuY29udHJvbCBhcyBhbnkpLnVwZGF0ZURpc2FibGVkU3RhdGUpIHtcbiAgICAgICAgKHJvb3ROb2RlLmNvbnRyb2wgYXMgYW55KS51cGRhdGVEaXNhYmxlZFN0YXRlKCk7XG4gICAgICB9XG5cbiAgICAgIGlmICgocm9vdE5vZGUuY29udHJvbCBhcyBhbnkpLnVwZGF0ZUhpZGRlblN0YXRlKSB7XG4gICAgICAgIChyb290Tm9kZS5jb250cm9sIGFzIGFueSkudXBkYXRlSGlkZGVuU3RhdGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocm9vdE5vZGUgaW5zdGFuY2VvZiBHcm91cE5vZGUpIHtcbiAgICAgIGNvbnN0IG5vZGVBc0dyb3VwID0gcm9vdE5vZGUgYXMgR3JvdXBOb2RlO1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmZvcmluXG4gICAgICBmb3IgKGNvbnN0IG8gaW4gbm9kZUFzR3JvdXAuY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlSGlkZGVuRGlzYWJsZWRTdGF0ZUZvckFsbENvbnRyb2xzKG5vZGVBc0dyb3VwLmNoaWxkcmVuW29dKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocm9vdE5vZGUgaW5zdGFuY2VvZiBBcnJheU5vZGUpIHtcbiAgICAgIGNvbnN0IG5vZGVBc0FycmF5ID0gcm9vdE5vZGUgYXMgQXJyYXlOb2RlO1xuXG4gICAgICBub2RlQXNBcnJheS5jaGlsZHJlbi5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUhpZGRlbkRpc2FibGVkU3RhdGVGb3JBbGxDb250cm9scyhub2RlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -63,4 +63,4 @@ HidersDisablersFactory.ctorParameters = () => [
|
|
|
63
63
|
{ type: JsExpressionHelper },
|
|
64
64
|
{ type: DebugModeService }
|
|
65
65
|
];
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlkZXJzLWRpc2FibGVycy5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtcGF0aC1rZW55YS9uZ3gtb3Blbm1ycy1mb3JtZW50cnkvIiwic291cmNlcyI6WyJmb3JtLWVudHJ5L2Zvcm0tZmFjdG9yeS9oaWRlcnMtZGlzYWJsZXJzLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWpCLE1BQU0sd0NBQXdDLENBQUM7QUFPaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFckUsa0RBQWtEO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR3BFLE1BQU07SUFDSixZQUNVLGdCQUFrQyxFQUNsQyxnQkFBb0MsRUFDcEMsaUJBQW1DO1FBRm5DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQUNwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO0lBQzFDLENBQUM7SUFFSix1QkFBdUIsQ0FDckIsUUFBc0IsRUFDdEIsT0FBcUQsRUFDckQsSUFBVztRQUVYLE1BQU0sUUFBUSxHQUFhLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQzFELFFBQVEsQ0FBQyxPQUFpQixFQUMxQixPQUFPLEVBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFDckMsRUFBRSxFQUNGLElBQUksQ0FDTCxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQWE7WUFDekIsU0FBUyxFQUFFLEtBQUs7WUFDaEIscUJBQXFCLEVBQUUsUUFBUSxDQUFDLE9BQWlCO1lBQ2pELDZCQUE2QixFQUFFLEdBQUcsRUFBRTtnQkFDbEMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUM5QixRQUFRLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUM5QixDQUFDO1NBQ0YsQ0FBQztRQUNGLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELG9CQUFvQixDQUNsQixRQUFzQixFQUN0QixPQUFxRCxFQUNyRCxJQUFXO1FBRVgsTUFBTSxJQUFJLEdBQVEsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNoQyxNQUFNLEtBQUssR0FDVCxPQUFPLElBQUksS0FBSyxRQUFRO1lBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDO1lBQ3RDLENBQUMsQ0FBRSxRQUFRLENBQUMsSUFBZSxDQUFDO1FBRWhDLHNDQUFzQztRQUV0QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFM0QsTUFBTSxRQUFRLEdBQWEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FDMUQsS0FBSyxFQUNMLE9BQU8sRUFDUCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUNyQyxFQUFFLEVBQ0YsSUFBSSxDQUNMLENBQUM7UUFFRixNQUFNLEtBQUssR0FBVTtZQUNuQixNQUFNLEVBQUUsS0FBSztZQUNiLGtCQUFrQixFQUFFLEtBQUs7WUFDekIsMEJBQTBCLEVBQUUsR0FBRyxFQUFFO2dCQUMvQjs7MkJBRVc7Z0JBQ1gsRUFBRSxDQUFDLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQzFCLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixDQUFDO2dCQUFDLElBQUksQ0FBQyxDQUFDO29CQUNOLEtBQUssQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoQyxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUM7UUFDRixNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELHlCQUF5QixDQUFDLElBQVM7UUFDakMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sUUFBUSxHQUFXLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDNUQsTUFBTSxHQUFHLEdBQUcsa0JBQWtCLEdBQUcsUUFBUSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNwRSxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUVELE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDWixDQUFDOzs7WUEvRUYsVUFBVTs7O1lBZFQsZ0JBQWdCO1lBU1Qsa0JBQWtCO1lBR2xCLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGlzYWJsZXIgfSBmcm9tICcuLi9jb250cm9sLWhpZGVycy1kaXNhYmxlcnMvY2FuLWRpc2FibGUnO1xuaW1wb3J0IHsgSGlkZXIgfSBmcm9tICcuLi9jb250cm9sLWhpZGVycy1kaXNhYmxlcnMvY2FuLWhpZGUnO1xuXG5pbXBvcnQge1xuICBFeHByZXNzaW9uUnVubmVyLFxuICBSdW5uYWJsZVxufSBmcm9tICcuLi9leHByZXNzaW9uLXJ1bm5lci9leHByZXNzaW9uLXJ1bm5lcic7XG5pbXBvcnQge1xuICBBZmVGb3JtQ29udHJvbCxcbiAgQWZlRm9ybUFycmF5LFxuICBBZmVGb3JtR3JvdXBcbn0gZnJvbSAnLi4vLi4vYWJzdHJhY3QtY29udHJvbHMtZXh0ZW5zaW9uJztcbmltcG9ydCB7IFF1ZXN0aW9uQmFzZSB9IGZyb20gJy4uL3F1ZXN0aW9uLW1vZGVscy9xdWVzdGlvbi1iYXNlJztcbmltcG9ydCB7IEpzRXhwcmVzc2lvbkhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvanMtZXhwcmVzc2lvbi1oZWxwZXInO1xuaW1wb3J0IHsgRm9ybSB9IGZyb20gJy4vZm9ybSc7XG4vLyBBZGQgYWJpbGl0eSB0byBkaXNwbGF5IGFsbCBmaWVsZHMgZm9yIGRlYnVnZ2luZ1xuaW1wb3J0IHsgRGVidWdNb2RlU2VydmljZSB9IGZyb20gJy4vLi4vc2VydmljZXMvZGVidWctbW9kZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEhpZGVyc0Rpc2FibGVyc0ZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGV4cHJlc3Npb25SdW5uZXI6IEV4cHJlc3Npb25SdW5uZXIsXG4gICAgcHJpdmF0ZSBleHByZXNzaW9uSGVscGVyOiBKc0V4cHJlc3Npb25IZWxwZXIsXG4gICAgcHJpdmF0ZSBfZGVidWdNb2RlU2VydmljZTogRGVidWdNb2RlU2VydmljZVxuICApIHt9XG5cbiAgZ2V0SnNFeHByZXNzaW9uRGlzYWJsZXIoXG4gICAgcXVlc3Rpb246IFF1ZXN0aW9uQmFzZSxcbiAgICBjb250cm9sOiBBZmVGb3JtQ29udHJvbCB8IEFmZUZvcm1BcnJheSB8IEFmZUZvcm1Hcm91cCxcbiAgICBmb3JtPzogRm9ybVxuICApOiBEaXNhYmxlciB7XG4gICAgY29uc3QgcnVubmFibGU6IFJ1bm5hYmxlID0gdGhpcy5leHByZXNzaW9uUnVubmVyLmdldFJ1bm5hYmxlKFxuICAgICAgcXVlc3Rpb24uZGlzYWJsZSBhcyBzdHJpbmcsXG4gICAgICBjb250cm9sLFxuICAgICAgdGhpcy5leHByZXNzaW9uSGVscGVyLmhlbHBlckZ1bmN0aW9ucyxcbiAgICAgIHt9LFxuICAgICAgZm9ybVxuICAgICk7XG4gICAgY29uc3QgZGlzYWJsZXI6IERpc2FibGVyID0ge1xuICAgICAgdG9EaXNhYmxlOiBmYWxzZSxcbiAgICAgIGRpc2FibGVXaGVuRXhwcmVzc2lvbjogcXVlc3Rpb24uZGlzYWJsZSBhcyBzdHJpbmcsXG4gICAgICByZUV2YWx1YXRlRGlzYWJsaW5nRXhwcmVzc2lvbjogKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBydW5uYWJsZS5ydW4oKTtcbiAgICAgICAgZGlzYWJsZXIudG9EaXNhYmxlID0gcmVzdWx0O1xuICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIGRpc2FibGVyO1xuICB9XG5cbiAgZ2V0SnNFeHByZXNzaW9uSGlkZXIoXG4gICAgcXVlc3Rpb246IFF1ZXN0aW9uQmFzZSxcbiAgICBjb250cm9sOiBBZmVGb3JtQ29udHJvbCB8IEFmZUZvcm1BcnJheSB8IEFmZUZvcm1Hcm91cCxcbiAgICBmb3JtPzogRm9ybVxuICApOiBIaWRlciB7XG4gICAgY29uc3QgaGlkZTogYW55ID0gcXVlc3Rpb24uaGlkZTtcbiAgICBjb25zdCB2YWx1ZTogc3RyaW5nID1cbiAgICAgIHR5cGVvZiBoaWRlID09PSAnb2JqZWN0J1xuICAgICAgICA/IHRoaXMuY29udmVydEhpZGVPYmplY3RUb1N0cmluZyhoaWRlKVxuICAgICAgICA6IChxdWVzdGlvbi5oaWRlIGFzIHN0cmluZyk7XG5cbiAgICAvLyBjaGVjayBpZiBkZWJ1Z2dpbmcgaGFzIGJlZW4gZW5hYmxlZFxuXG4gICAgY29uc3QgZGVidWdFbmFibGVkID0gdGhpcy5fZGVidWdNb2RlU2VydmljZS5kZWJ1Z0VuYWJsZWQoKTtcblxuICAgIGNvbnN0IHJ1bm5hYmxlOiBSdW5uYWJsZSA9IHRoaXMuZXhwcmVzc2lvblJ1bm5lci5nZXRSdW5uYWJsZShcbiAgICAgIHZhbHVlLFxuICAgICAgY29udHJvbCxcbiAgICAgIHRoaXMuZXhwcmVzc2lvbkhlbHBlci5oZWxwZXJGdW5jdGlvbnMsXG4gICAgICB7fSxcbiAgICAgIGZvcm1cbiAgICApO1xuXG4gICAgY29uc3QgaGlkZXI6IEhpZGVyID0ge1xuICAgICAgdG9IaWRlOiBmYWxzZSxcbiAgICAgIGhpZGVXaGVuRXhwcmVzc2lvbjogdmFsdWUsXG4gICAgICByZUV2YWx1YXRlSGlkaW5nRXhwcmVzc2lvbjogKCkgPT4ge1xuICAgICAgICAvKiBpZiBkZWJ1ZyBpcyBlbmFibGVkIHRoZW4gaGlkZXJzIHRvIGJlIGZhbHNlXG4gICAgICAgICAgICAgICAgIGVsc2UgcnVuIHRoZSBub3JtYWwgZXZlbHVhdG9yIGkuZSBydW5uYWJsZS5ydW4oKVxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICBpZiAoZGVidWdFbmFibGVkID09PSB0cnVlKSB7XG4gICAgICAgICAgaGlkZXIudG9IaWRlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaGlkZXIudG9IaWRlID0gcnVubmFibGUucnVuKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBoaWRlcjtcbiAgfVxuXG4gIGNvbnZlcnRIaWRlT2JqZWN0VG9TdHJpbmcoaGlkZTogYW55KSB7XG4gICAgaWYgKGhpZGUudmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgY29uc3QgYXJyYXlTdHI6IHN0cmluZyA9IFwiJ1wiICsgaGlkZS52YWx1ZS5qb2luKFwiJywnXCIpICsgXCInXCI7XG4gICAgICBjb25zdCBleHAgPSAnIWFycmF5Q29udGFpbnMoWycgKyBhcnJheVN0ciArICddLCcgKyBoaWRlLmZpZWxkICsgJyknO1xuICAgICAgcmV0dXJuIGV4cDtcbiAgICB9XG5cbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cbiJdfQ==
|