@sapui5/sap.fe.core 1.121.2 → 1.123.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/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime.js +2 -2
- package/src/sap/fe/core/ActionRuntime.ts +1 -2
- package/src/sap/fe/core/CommonUtils.js +14 -171
- package/src/sap/fe/core/CommonUtils.ts +15 -221
- package/src/sap/fe/core/PageController.js +13 -1
- package/src/sap/fe/core/PageController.ts +16 -0
- package/src/sap/fe/core/TemplateComponent.js +6 -1
- package/src/sap/fe/core/TemplateComponent.ts +8 -0
- package/src/sap/fe/core/UIProvider.js +23 -0
- package/src/sap/fe/core/UIProvider.ts +38 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +97 -43
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +120 -50
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +6 -3
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +12 -18
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +2 -2
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +4 -3
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +1 -0
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +42 -1
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +40 -0
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +5 -2
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +5 -3
- package/src/sap/fe/core/controllerextensions/EditFlow.js +151 -60
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +165 -68
- package/src/sap/fe/core/controllerextensions/HookSupport.js +32 -14
- package/src/sap/fe/core/controllerextensions/HookSupport.ts +35 -14
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +5 -17
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +0 -12
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +6 -6
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +15 -10
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +108 -287
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +117 -309
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +2 -2
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +6 -2
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +2 -2
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +1 -1
- package/src/sap/fe/core/controllerextensions/PageReady.js +6 -6
- package/src/sap/fe/core/controllerextensions/PageReady.ts +5 -4
- package/src/sap/fe/core/controllerextensions/Paginator.js +17 -110
- package/src/sap/fe/core/controllerextensions/Paginator.ts +13 -130
- package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -3
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +1 -2
- package/src/sap/fe/core/controllerextensions/Recommendations.js +36 -31
- package/src/sap/fe/core/controllerextensions/Recommendations.ts +32 -37
- package/src/sap/fe/core/controllerextensions/Share.js +7 -7
- package/src/sap/fe/core/controllerextensions/Share.ts +6 -6
- package/src/sap/fe/core/controllerextensions/SideEffects.js +52 -6
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -4
- package/src/sap/fe/core/controllerextensions/ViewState.js +32 -46
- package/src/sap/fe/core/controllerextensions/ViewState.ts +24 -31
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +42 -31
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +6 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +168 -276
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +182 -310
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +3 -3
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +4 -3
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +3 -2
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +74 -52
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +95 -55
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +3 -17
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +10 -23
- package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +3 -3
- package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.ts +2 -2
- package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +225 -0
- package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.ts +241 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +69 -48
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +56 -33
- package/src/sap/fe/core/controls/FormElementWrapper.js +8 -11
- package/src/sap/fe/core/controls/FormElementWrapper.ts +9 -0
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +6 -14
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +12 -23
- package/src/sap/fe/core/converters/ConverterContext.js +17 -9
- package/src/sap/fe/core/converters/ConverterContext.ts +55 -41
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +19 -5
- package/src/sap/fe/core/converters/ManifestWrapper.js +14 -4
- package/src/sap/fe/core/converters/ManifestWrapper.ts +21 -10
- package/src/sap/fe/core/converters/MetaModelConverter.js +402 -383
- package/src/sap/fe/core/converters/MetaModelConverter.ts +538 -338
- package/src/sap/fe/core/converters/TemplateConverter.js +4 -2
- package/src/sap/fe/core/converters/TemplateConverter.ts +18 -13
- package/src/sap/fe/core/converters/annotations/DataField.js +30 -28
- package/src/sap/fe/core/converters/annotations/DataField.ts +58 -35
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +24 -23
- package/src/sap/fe/core/converters/controls/Common/Action.js +5 -4
- package/src/sap/fe/core/converters/controls/Common/Action.ts +34 -28
- package/src/sap/fe/core/converters/controls/Common/Chart.js +37 -33
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +64 -46
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +15 -4
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +31 -15
- package/src/sap/fe/core/converters/controls/Common/Form.js +6 -4
- package/src/sap/fe/core/converters/controls/Common/Form.ts +23 -11
- package/src/sap/fe/core/converters/controls/Common/KPI.js +5 -3
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +17 -11
- package/src/sap/fe/core/converters/controls/Common/Table.js +197 -101
- package/src/sap/fe/core/converters/controls/Common/Table.ts +393 -182
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +4 -5
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +38 -27
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +41 -11
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +112 -45
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +7 -7
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +18 -12
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +5 -4
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +19 -9
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +64 -63
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +109 -100
- package/src/sap/fe/core/converters/helpers/Aggregation.js +12 -11
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +35 -30
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +12 -9
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +1 -1
- package/src/sap/fe/core/converters/helpers/ID.js +1 -1
- package/src/sap/fe/core/converters/helpers/ID.ts +6 -6
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +3 -3
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +11 -6
- package/src/sap/fe/core/converters/helpers/Key.js +2 -2
- package/src/sap/fe/core/converters/helpers/Key.ts +4 -4
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +2 -2
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +21 -19
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +43 -31
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +16 -12
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +8 -3
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +41 -21
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +5 -3
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +24 -19
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -2
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +2 -1
- package/src/sap/fe/core/filter/DraftEditState.fragment.xml +1 -1
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +4 -6
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +5 -4
- package/src/sap/fe/core/formatters/FPMFormatter.js +5 -13
- package/src/sap/fe/core/formatters/FPMFormatter.ts +11 -10
- package/src/sap/fe/core/formatters/FiscalFormat.js +1 -1
- package/src/sap/fe/core/formatters/FiscalFormat.ts +1 -1
- package/src/sap/fe/core/formatters/KPIFormatter.js +4 -7
- package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -3
- package/src/sap/fe/core/formatters/StandardFormatter.js +4 -7
- package/src/sap/fe/core/formatters/StandardFormatter.ts +3 -3
- package/src/sap/fe/core/formatters/ValueFormatter.js +35 -6
- package/src/sap/fe/core/formatters/ValueFormatter.ts +31 -3
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.js +54 -33
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +62 -41
- package/src/sap/fe/core/helpers/BindingToolkit.js +17 -3
- package/src/sap/fe/core/helpers/BindingToolkit.ts +28 -6
- package/src/sap/fe/core/helpers/ClassSupport.js +32 -13
- package/src/sap/fe/core/helpers/ClassSupport.ts +35 -15
- package/src/sap/fe/core/helpers/DeleteHelper.js +71 -61
- package/src/sap/fe/core/helpers/DeleteHelper.ts +125 -103
- package/src/sap/fe/core/helpers/DraftEditState.js +5 -3
- package/src/sap/fe/core/helpers/DraftEditState.ts +3 -1
- package/src/sap/fe/core/helpers/FPMHelper.js +43 -46
- package/src/sap/fe/core/helpers/FPMHelper.ts +50 -56
- package/src/sap/fe/core/helpers/MetaModelFunction.js +77 -53
- package/src/sap/fe/core/helpers/MetaModelFunction.ts +78 -57
- package/src/sap/fe/core/helpers/ModelHelper.js +10 -4
- package/src/sap/fe/core/helpers/ModelHelper.ts +12 -6
- package/src/sap/fe/core/helpers/PasteHelper.js +194 -7
- package/src/sap/fe/core/helpers/PasteHelper.ts +265 -13
- package/src/sap/fe/core/helpers/PromiseKeeper.js +66 -0
- package/src/sap/fe/core/helpers/PromiseKeeper.ts +56 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +30 -19
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +34 -22
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.ts +7 -2
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +26 -52
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +37 -63
- package/src/sap/fe/core/helpers/TitleHelper.js +1 -1
- package/src/sap/fe/core/helpers/TitleHelper.ts +17 -14
- package/src/sap/fe/core/helpers/TypeGuards.js +27 -3
- package/src/sap/fe/core/helpers/TypeGuards.ts +37 -7
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +48 -8
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +40 -9
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +5 -2
- package/src/sap/fe/core/messagebundle_da.properties +1 -1
- package/src/sap/fe/core/messagebundle_en.properties +267 -2
- package/src/sap/fe/core/messagebundle_sl.properties +1 -1
- package/src/sap/fe/core/operationsHelper.js +2 -1
- package/src/sap/fe/core/operationsHelper.ts +1 -0
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +3 -3
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +2 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.js +2 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +3 -2
- package/src/sap/fe/core/services/RoutingServiceFactory.js +27 -14
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +27 -14
- package/src/sap/fe/core/services/ShellServicesFactory.js +49 -12
- package/src/sap/fe/core/services/ShellServicesFactory.ts +62 -13
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +156 -82
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +218 -100
- package/src/sap/fe/core/services/TelemetryServiceFactory.js +3 -3
- package/src/sap/fe/core/services/TelemetryServiceFactory.ts +6 -6
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +3 -2
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +1 -1
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +2 -2
- package/src/sap/fe/core/services/view/TemplatingErrorPage.view.xml +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.js +6 -3
- package/src/sap/fe/core/templating/CommonFormatters.ts +13 -12
- package/src/sap/fe/core/templating/CriticalityFormatters.js +2 -2
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +37 -14
- package/src/sap/fe/core/templating/DataFieldFormatters.js +12 -11
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +35 -24
- package/src/sap/fe/core/templating/DataModelPathHelper.js +22 -18
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +61 -51
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +8 -3
- package/src/sap/fe/core/templating/EntityTypeHelper.js +1 -1
- package/src/sap/fe/core/templating/EntityTypeHelper.ts +1 -1
- package/src/sap/fe/core/templating/FieldControlHelper.js +3 -3
- package/src/sap/fe/core/templating/FieldControlHelper.ts +27 -8
- package/src/sap/fe/core/templating/FilterHelper.js +13 -10
- package/src/sap/fe/core/templating/FilterHelper.ts +80 -46
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/FilterTemplating.ts +2 -2
- package/src/sap/fe/core/templating/PropertyFormatters.js +6 -8
- package/src/sap/fe/core/templating/PropertyFormatters.ts +11 -11
- package/src/sap/fe/core/templating/PropertyHelper.js +3 -3
- package/src/sap/fe/core/templating/PropertyHelper.ts +4 -4
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +157 -13
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +182 -16
- package/src/sap/fe/core/templating/UIFormatters.js +23 -22
- package/src/sap/fe/core/templating/UIFormatters.ts +94 -66
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -2
- package/src/sap/fe/core/type/EDM.js +1 -1
- package/src/sap/fe/core/type/EDM.ts +2 -2
- package/src/sap/fe/core/type/Email.js +1 -1
- package/src/sap/fe/core/type/Email.ts +1 -1
- package/src/sap/fe/core/type/FiscalDate.js +2 -2
- package/src/sap/fe/core/type/FiscalDate.ts +2 -2
|
@@ -252,4 +252,4 @@ sap.ui.define(["sap/fe/core/formatters/ValueFormatter", "sap/fe/core/helpers/Bin
|
|
|
252
252
|
_exports.getTitleBindingExpression = getTitleBindingExpression;
|
|
253
253
|
return _exports;
|
|
254
254
|
}, false);
|
|
255
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3JtYXRWYWx1ZVJlY3Vyc2l2ZWx5IiwiYmluZGluZ0V4cHJlc3Npb25Ub0VuaGFuY2UiLCJmdWxsQ29udGV4dFBhdGgiLCJ0cmFuc2Zvcm1SZWN1cnNpdmVseSIsImV4cHJlc3Npb24iLCJvdXRFeHByZXNzaW9uIiwibW9kZWxOYW1lIiwidW5kZWZpbmVkIiwib1Byb3BlcnR5RGF0YU1vZGVsUGF0aCIsImVuaGFuY2VEYXRhTW9kZWxQYXRoIiwicGF0aCIsImZvcm1hdFdpdGhUeXBlSW5mb3JtYXRpb24iLCJ0YXJnZXRPYmplY3QiLCJnZXRQcm9wZXJ0eURlZmluaXRpb24iLCJwcm9wZXJ0eURhdGFNb2RlbE9iamVjdCIsInByb3BlcnR5UGF0aE9yUHJvcGVydHkiLCJpc1Byb3BlcnR5UGF0aEV4cHJlc3Npb24iLCIkdGFyZ2V0IiwiaXNPckhhc0FjdGl2ZUVudGl0eSIsImRyYWZ0Um9vdCIsInRhcmdldEVudGl0eVNldCIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiRHJhZnRSb290IiwiZHJhZnROb2RlIiwiRHJhZnROb2RlIiwibm90IiwiRHJhZnQiLCJJc05ld09iamVjdCIsImlzVGl0bGVFbXB0eUJvb2xlYW5FeHByZXNzaW9uIiwidGl0bGVWYWx1ZUV4cHJlc3Npb24iLCJfdHlwZSIsImNvbnN0YW50IiwidmFsdWUiLCJpc0VtcHR5IiwiZ2V0VGl0bGVCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudCIsInByb3BlcnR5RGF0YU1vZGVsUGF0aCIsInByb3BlcnR5QmluZGluZ0V4cHJlc3Npb24iLCJmb3JtYXRPcHRpb25zIiwidGFyZ2V0RGlzcGxheU1vZGVPdmVycmlkZSIsImRpc3BsYXlNb2RlIiwicHJvcGVydHlEZWZpbml0aW9uIiwidGFyZ2V0RGlzcGxheU1vZGUiLCJVSUZvcm1hdHRlcnMiLCJnZXREaXNwbGF5TW9kZSIsImNvbW1vblRleHQiLCJUZXh0IiwicmVsYXRpdmVMb2NhdGlvbiIsImdldFJlbGF0aXZlUGF0aHMiLCJwYXJhbXMiLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJ0YXJnZXRFeHByZXNzaW9uIiwic3BsaXRUaXRsZU9uVHdvTGluZXMiLCJpZkVsc2UiLCJVSSIsIlRleHRBcnJhbmdlbWVudCIsImFkZFRleHRBcnJhbmdlbWVudFRvVGl0bGVCaW5kaW5nRXhwcmVzc2lvbiIsImdldENyZWF0ZU1vZGVUaXRsZSIsInZpZXdEYXRhIiwiVHlwZU5hbWUiLCJ0eXBlTmFtZSIsInRpdGxlTm9IZWFkZXJJbmZvIiwicGF0aEluTW9kZWwiLCJjcmVhdGVNb2RlVGl0bGUiLCJyZXNvdXJjZU1vZGVsIiwiZ2V0VGV4dCIsImVudGl0eVNldCIsInRpdGxlV2l0aEhlYWRlckluZm8iLCJjb25jYXQiLCJyZXNvbHZlQmluZGluZ1N0cmluZyIsInRvU3RyaW5nIiwiZm9ybWF0UmVzdWx0IiwidmFsdWVGb3JtYXR0ZXJzIiwiZm9ybWF0VGl0bGUiLCJzaG91bGRGb3JjZUVtcHR5U3RyaW5nIiwiQ29yZSIsIkNvbXB1dGVkIiwiSXNJbmFjdGl2ZSIsImdldFRpdGxlVmFsdWVFeHByZXNzaW9uRnJvbUhlYWRlckluZm8iLCJoZWFkZXJJbmZvVGl0bGUiLCJnZXRUZXh0QmluZGluZ0V4cHJlc3Npb24iLCIkVHlwZSIsIlZhbHVlIiwiVGFyZ2V0IiwiY29ubmVjdGVkRmllbGRzUGF0aCIsImdldExhYmVsRm9yQ29ubmVjdGVkRmllbGRzIiwiZ2V0VGl0bGVCaW5kaW5nRXhwcmVzc2lvbiIsImhlYWRlckluZm8iLCJjdXN0b21Gb3JtYXR0ZXIiLCJmb3JtYXR0ZXIiLCJpc0hlYWRlckluZm9UaXRsZUVtcHR5IiwiVGl0bGUiLCJpc0NvbnN0YW50IiwiY29tcGlsZUV4cHJlc3Npb24iLCJpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbiIsImdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgiLCJBcnJheSIsImlzQXJyYXkiLCJpc1RpdGxlRW1wdHkiLCJmb3JjZUVtcHR5U3RyaW5nIiwiZm9ybWF0dGVkRXhwcmVzc2lvbiIsIm9yIiwiaXNVbmRlZmluZWRFeHByZXNzaW9uIiwiSXNDcmVhdGVNb2RlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJUaXRsZUhlbHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVNldCwgUHJvcGVydHksIFByb3BlcnR5QW5ub3RhdGlvblZhbHVlLCBQcm9wZXJ0eVBhdGggfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcywgRGF0YUZpZWxkVHlwZXMsIEhlYWRlckluZm9UeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgdmFsdWVGb3JtYXR0ZXJzIGZyb20gXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL1ZhbHVlRm9ybWF0dGVyXCI7XG5pbXBvcnQgeyBEcmFmdCwgVUkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nSGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiwgUGF0aEluTW9kZWxFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7XG5cdGNvbXBpbGVFeHByZXNzaW9uLFxuXHRjb25jYXQsXG5cdGNvbnN0YW50LFxuXHRmb3JtYXRSZXN1bHQsXG5cdGZvcm1hdFdpdGhUeXBlSW5mb3JtYXRpb24sXG5cdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbixcblx0aWZFbHNlLFxuXHRpc0NvbnN0YW50LFxuXHRpc0VtcHR5LFxuXHRpc1VuZGVmaW5lZEV4cHJlc3Npb24sXG5cdG5vdCxcblx0b3IsXG5cdHBhdGhJbk1vZGVsLFxuXHRyZXNvbHZlQmluZGluZ1N0cmluZyxcblx0dHJhbnNmb3JtUmVjdXJzaXZlbHlcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uLCBpc1Byb3BlcnR5UGF0aEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9UeXBlR3VhcmRzXCI7XG5pbXBvcnQgdHlwZSB7IFZpZXdEYXRhIH0gZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1RlbXBsYXRlZFZpZXdTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHsgZ2V0TGFiZWxGb3JDb25uZWN0ZWRGaWVsZHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhRmllbGRGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgdHlwZSB7IERhdGFNb2RlbE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgeyBlbmhhbmNlRGF0YU1vZGVsUGF0aCwgZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCwgZ2V0UmVsYXRpdmVQYXRocyB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgRGlzcGxheU1vZGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9VSUZvcm1hdHRlcnNcIjtcbmltcG9ydCAqIGFzIFVJRm9ybWF0dGVycyBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9VSUZvcm1hdHRlcnNcIjtcblxudHlwZSBCaW5kaW5nRXhwcmVzc2lvblR1cGxlID0gW0JpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmc+LCBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nPl0gfCBbQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz5dO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0VmFsdWVSZWN1cnNpdmVseSA9IGZ1bmN0aW9uIChcblx0YmluZGluZ0V4cHJlc3Npb25Ub0VuaGFuY2U6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmc+LFxuXHRmdWxsQ29udGV4dFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGhcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmc+IHtcblx0cmV0dXJuIHRyYW5zZm9ybVJlY3Vyc2l2ZWx5KGJpbmRpbmdFeHByZXNzaW9uVG9FbmhhbmNlLCBcIlBhdGhJbk1vZGVsXCIsIChleHByZXNzaW9uKSA9PiB7XG5cdFx0bGV0IG91dEV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuXHRcdGlmIChleHByZXNzaW9uLm1vZGVsTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHQvLyBJbiBjYXNlIG9mIGRlZmF1bHQgbW9kZWwgd2UgdGhlbiBuZWVkIHRvIHJlc29sdmUgdGhlIHRleHQgYXJyYW5nZW1lbnQgcHJvcGVydHlcblx0XHRcdGNvbnN0IG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGggPSBlbmhhbmNlRGF0YU1vZGVsUGF0aChmdWxsQ29udGV4dFBhdGgsIGV4cHJlc3Npb24ucGF0aCk7XG5cdFx0XHRvdXRFeHByZXNzaW9uID0gZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbihvUHJvcGVydHlEYXRhTW9kZWxQYXRoLnRhcmdldE9iamVjdCwgZXhwcmVzc2lvbik7XG5cdFx0fVxuXHRcdHJldHVybiBvdXRFeHByZXNzaW9uO1xuXHR9KTtcbn07XG5cbi8qKlxuICogR2V0IHByb3BlcnR5IGRlZmluaXRpb24gZnJvbSBkYXRhIG1vZGVsIG9iamVjdCBwYXRoLlxuICpcbiAqIEBwYXJhbSBwcm9wZXJ0eURhdGFNb2RlbE9iamVjdCBUaGUgcHJvcGVydHkgZGF0YSBtb2RlbCBvYmplY3RcbiAqIEByZXR1cm5zIFRoZSBwcm9wZXJ0eVxuICovXG5jb25zdCBnZXRQcm9wZXJ0eURlZmluaXRpb24gPSAocHJvcGVydHlEYXRhTW9kZWxPYmplY3Q6IERhdGFNb2RlbE9iamVjdFBhdGgpID0+IHtcblx0Y29uc3QgcHJvcGVydHlQYXRoT3JQcm9wZXJ0eSA9IHByb3BlcnR5RGF0YU1vZGVsT2JqZWN0LnRhcmdldE9iamVjdCBhcyBQcm9wZXJ0eVBhdGggfCBQcm9wZXJ0eTtcblx0cmV0dXJuIGlzUHJvcGVydHlQYXRoRXhwcmVzc2lvbihwcm9wZXJ0eVBhdGhPclByb3BlcnR5KSA/IHByb3BlcnR5UGF0aE9yUHJvcGVydHkuJHRhcmdldCA6IHByb3BlcnR5UGF0aE9yUHJvcGVydHk7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIGFzc29jaWF0ZWQgYWN0aXZlIGVudGl0eSBleGlzdHMuXG4gKlxuICogQHBhcmFtIGZ1bGxDb250ZXh0UGF0aCBUaGUgZnVsbCBwYXRoIHRvIHRoZSBjb250ZXh0XG4gKiBAcmV0dXJucyBUaGUgZXhwcmVzc2lvbi1iaW5kaW5nIHN0cmluZ1xuICovXG5jb25zdCBpc09ySGFzQWN0aXZlRW50aXR5ID0gKGZ1bGxDb250ZXh0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCkgPT4ge1xuXHRjb25zdCBkcmFmdFJvb3QgPSAoZnVsbENvbnRleHRQYXRoLnRhcmdldEVudGl0eVNldCBhcyBFbnRpdHlTZXQgfCB1bmRlZmluZWQpPy5hbm5vdGF0aW9ucz8uQ29tbW9uPy5EcmFmdFJvb3Q7XG5cdGNvbnN0IGRyYWZ0Tm9kZSA9IChmdWxsQ29udGV4dFBhdGgudGFyZ2V0RW50aXR5U2V0IGFzIEVudGl0eVNldCB8IHVuZGVmaW5lZCk/LmFubm90YXRpb25zPy5Db21tb24/LkRyYWZ0Tm9kZTtcblx0aWYgKCEhZHJhZnRSb290IHx8ICEhZHJhZnROb2RlKSB7XG5cdFx0cmV0dXJuIG5vdChEcmFmdC5Jc05ld09iamVjdCk7XG5cdH1cblx0cmV0dXJuIGZhbHNlO1xufTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGl0bGUgdmFsdWUgZXhwcmVzc2lvbiBpcyBlbXB0eS5cbiAqXG4gKiBAcGFyYW0gdGl0bGVWYWx1ZUV4cHJlc3Npb24gVGhlIHRpdGxlIHZhbHVlIGV4cHJlc3Npb25cbiAqIEByZXR1cm5zIFRoZSBleHByZXNzaW9uLWJpbmRpbmcgc3RyaW5nXG4gKi9cbmNvbnN0IGlzVGl0bGVFbXB0eUJvb2xlYW5FeHByZXNzaW9uID0gKHRpdGxlVmFsdWVFeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nPikgPT5cblx0dGl0bGVWYWx1ZUV4cHJlc3Npb24uX3R5cGUgPT09IFwiQ29uc3RhbnRcIiA/IGNvbnN0YW50KCF0aXRsZVZhbHVlRXhwcmVzc2lvbi52YWx1ZSkgOiBpc0VtcHR5KHRpdGxlVmFsdWVFeHByZXNzaW9uKTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIHRpdGxlIGV4cHJlc3Npb24gYmluZGluZy5cbiAqXG4gKiBAcGFyYW0gcHJvcGVydHlEYXRhTW9kZWxQYXRoIFRoZSBmdWxsIHBhdGggdG8gdGhlIHByb3BlcnR5IGNvbnRleHRcbiAqIEBwYXJhbSBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gb2YgdGhlIHByb3BlcnR5IGFib3ZlXG4gKiBAcGFyYW0gW2ZpZWxkRm9ybWF0T3B0aW9uc10gVGhlIGZvcm1hdCBvcHRpb25zIG9mIHRoZSBmaWVsZFxuICogQHBhcmFtIGZpZWxkRm9ybWF0T3B0aW9ucy5kaXNwbGF5TW9kZVxuICogQHBhcmFtIGZvcm1hdE9wdGlvbnNcbiAqIEByZXR1cm5zIFRoZSBleHByZXNzaW9uLWJpbmRpbmcgcGFyYW1ldGVyc1xuICovXG5jb25zdCBnZXRUaXRsZUJpbmRpbmdXaXRoVGV4dEFycmFuZ2VtZW50ID0gZnVuY3Rpb24gKFxuXHRwcm9wZXJ0eURhdGFNb2RlbFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmc+LFxuXHRmb3JtYXRPcHRpb25zPzogUGFydGlhbDx7IGRpc3BsYXlNb2RlPzogRGlzcGxheU1vZGU7IHNwbGl0VGl0bGVPblR3b0xpbmVzPzogYm9vbGVhbiB9PlxuKTogQmluZGluZ0V4cHJlc3Npb25UdXBsZSB7XG5cdGNvbnN0IHRhcmdldERpc3BsYXlNb2RlT3ZlcnJpZGUgPSBmb3JtYXRPcHRpb25zPy5kaXNwbGF5TW9kZTtcblx0Y29uc3QgcHJvcGVydHlEZWZpbml0aW9uID0gZ2V0UHJvcGVydHlEZWZpbml0aW9uKHByb3BlcnR5RGF0YU1vZGVsUGF0aCk7XG5cdGNvbnN0IHRhcmdldERpc3BsYXlNb2RlID0gdGFyZ2V0RGlzcGxheU1vZGVPdmVycmlkZSB8fCBVSUZvcm1hdHRlcnMuZ2V0RGlzcGxheU1vZGUocHJvcGVydHlEYXRhTW9kZWxQYXRoKTtcblx0Y29uc3QgY29tbW9uVGV4dCA9IHByb3BlcnR5RGVmaW5pdGlvbj8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGV4dDtcblx0Y29uc3QgcmVsYXRpdmVMb2NhdGlvbiA9IGdldFJlbGF0aXZlUGF0aHMocHJvcGVydHlEYXRhTW9kZWxQYXRoKTtcblxuXHRpZiAocHJvcGVydHlEZWZpbml0aW9uKSB7XG5cdFx0cHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbiA9IGZvcm1hdFdpdGhUeXBlSW5mb3JtYXRpb24ocHJvcGVydHlEZWZpbml0aW9uLCBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uKTtcblx0fVxuXG5cdGxldCBwYXJhbXM6IEJpbmRpbmdFeHByZXNzaW9uVHVwbGUgPSBbcHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbl07XG5cdGlmICh0YXJnZXREaXNwbGF5TW9kZSAhPT0gXCJWYWx1ZVwiICYmIGNvbW1vblRleHQpIHtcblx0XHRzd2l0Y2ggKHRhcmdldERpc3BsYXlNb2RlKSB7XG5cdFx0XHRjYXNlIFwiRGVzY3JpcHRpb25cIjpcblx0XHRcdFx0cGFyYW1zID0gW2dldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihjb21tb25UZXh0LCByZWxhdGl2ZUxvY2F0aW9uKV07XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIkRlc2NyaXB0aW9uVmFsdWVcIjpcblx0XHRcdFx0Y29uc3QgdGFyZ2V0RXhwcmVzc2lvbiA9XG5cdFx0XHRcdFx0Zm9ybWF0T3B0aW9ucz8uc3BsaXRUaXRsZU9uVHdvTGluZXMgPT09IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0PyBpZkVsc2UoISFjb21tb25UZXh0LmFubm90YXRpb25zPy5VST8uVGV4dEFycmFuZ2VtZW50LCBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uLCBjb25zdGFudChcIlwiKSlcblx0XHRcdFx0XHRcdDogaWZFbHNlKCEhZm9ybWF0T3B0aW9ucz8uc3BsaXRUaXRsZU9uVHdvTGluZXMsIGNvbnN0YW50KFwiXCIpLCBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uKTtcblx0XHRcdFx0cGFyYW1zID0gW2dldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihjb21tb25UZXh0LCByZWxhdGl2ZUxvY2F0aW9uKSwgdGFyZ2V0RXhwcmVzc2lvbl07XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIlZhbHVlRGVzY3JpcHRpb25cIjpcblx0XHRcdFx0cGFyYW1zID0gW1xuXHRcdFx0XHRcdHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb24sXG5cdFx0XHRcdFx0aWZFbHNlKCEhZm9ybWF0T3B0aW9ucz8uc3BsaXRUaXRsZU9uVHdvTGluZXMsIGNvbnN0YW50KFwiXCIpLCBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oY29tbW9uVGV4dCwgcmVsYXRpdmVMb2NhdGlvbikpXG5cdFx0XHRcdF07XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gcGFyYW1zO1xufTtcblxuLyoqXG4gKiBSZWN1cnNpdmVseSBhZGQgdGhlIHRleHQgYXJyYW5nZW1lbnQgdG8gYSB0aXRsZSBiaW5kaW5nIGV4cHJlc3Npb24uXG4gKlxuICogQHBhcmFtIGJpbmRpbmdFeHByZXNzaW9uVG9FbmhhbmNlIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gdG8gYmUgZW5oYW5jZWRcbiAqIEBwYXJhbSBwYXRoIFRoZSBkYXRhIGZpZWxkIGRhdGEgbW9kZWwgb2JqZWN0IHBhdGhcbiAqIEByZXR1cm5zIEFuIHVwZGF0ZWQgZXhwcmVzc2lvbiBjb250YWluaW5nIHRoZSB0ZXh0IGFycmFuZ2VtZW50IGJpbmRpbmcgcGFyYW1ldGVyc1xuICovXG5jb25zdCBhZGRUZXh0QXJyYW5nZW1lbnRUb1RpdGxlQmluZGluZ0V4cHJlc3Npb24gPSBmdW5jdGlvbiAoXG5cdGJpbmRpbmdFeHByZXNzaW9uVG9FbmhhbmNlOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nPixcblx0cGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRyZXR1cm4gdHJhbnNmb3JtUmVjdXJzaXZlbHkoYmluZGluZ0V4cHJlc3Npb25Ub0VuaGFuY2UsIFwiUGF0aEluTW9kZWxcIiwgKGV4cHJlc3Npb246IFBhdGhJbk1vZGVsRXhwcmVzc2lvbjx1bmtub3duPikgPT4ge1xuXHRcdGlmIChleHByZXNzaW9uLm1vZGVsTmFtZSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gZXhwcmVzc2lvbjtcblx0XHQvLyBJbiBjYXNlIG9mIGRlZmF1bHQgbW9kZWwgd2UgdGhlbiBuZWVkIHRvIHJlc29sdmUgdGhlIHRleHQgYXJyYW5nZW1lbnQgcHJvcGVydHlcblx0XHRjb25zdCBwcm9wZXJ0eURhdGFNb2RlbFBhdGggPSBlbmhhbmNlRGF0YU1vZGVsUGF0aChwYXRoLCBleHByZXNzaW9uLnBhdGgpO1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5cdFx0cmV0dXJuIGdldFRpdGxlQmluZGluZ1dpdGhUZXh0QXJyYW5nZW1lbnQocHJvcGVydHlEYXRhTW9kZWxQYXRoLCBleHByZXNzaW9uKSBhcyB1bmtub3duIGFzIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxhbnk+O1xuXHR9KTtcbn07XG5cbi8qKlxuICogR2V0cyBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIGNyZWF0ZSBtb2RlIHRpdGxlLlxuICpcbiAqIEBwYXJhbSB2aWV3RGF0YSBUaGUgYXNzb2NpYXRlZCB2aWV3IGRhdGFcbiAqIEBwYXJhbSBbdHlwZU5hbWVdIFRoZSB0eXBlIG5hbWUgZnJvbSB0aGUgb2JqZWN0IHBhZ2UgaGVhZGVyIGluZm9cbiAqIEBwYXJhbSB0eXBlTmFtZS5UeXBlTmFtZVxuICogQHJldHVybnMgVGhlIGV4cHJlc3Npb24tYmluZGluZyBzdHJpbmdcbiAqL1xuY29uc3QgZ2V0Q3JlYXRlTW9kZVRpdGxlID0gZnVuY3Rpb24gKHZpZXdEYXRhOiBWaWV3RGF0YSwgeyBUeXBlTmFtZTogdHlwZU5hbWUgfTogSGVhZGVySW5mb1R5cGUpOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nPiB7XG5cdGNvbnN0IHRpdGxlTm9IZWFkZXJJbmZvID0gcGF0aEluTW9kZWwoXCJUX05FV19PQkpFQ1RcIiwgXCJzYXAuZmUuaTE4blwiKTtcblx0bGV0IGNyZWF0ZU1vZGVUaXRsZTogc3RyaW5nIHwgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz4gPSB0aXRsZU5vSGVhZGVySW5mbztcblx0aWYgKFxuXHRcdHZpZXdEYXRhLnJlc291cmNlTW9kZWwuZ2V0VGV4dChcIlRfTkVXX09CSkVDVFwiLCB1bmRlZmluZWQsIHZpZXdEYXRhLmVudGl0eVNldCkgPT09XG5cdFx0dmlld0RhdGEucmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9ORVdfT0JKRUNUX0RFRkFVTFRcIiwgdW5kZWZpbmVkLCB2aWV3RGF0YS5lbnRpdHlTZXQpXG5cdCkge1xuXHRcdC8vVF9ORVdfT0JKRUNUIGhhcyBub3QgYmVlbiBjdXN0b21pemVkXG5cdFx0Y29uc3QgdGl0bGVXaXRoSGVhZGVySW5mbyA9IHZpZXdEYXRhLnJlc291cmNlTW9kZWwuZ2V0VGV4dChcblx0XHRcdFwiVF9BTk5PVEFUSU9OX0hFTFBFUl9ERUZBVUxUX09CSkVDVF9QQUdFX0hFQURFUl9USVRMRVwiLFxuXHRcdFx0dW5kZWZpbmVkLFxuXHRcdFx0dmlld0RhdGEuZW50aXR5U2V0XG5cdFx0KTtcblx0XHRjcmVhdGVNb2RlVGl0bGUgPSAodHlwZU5hbWUgYXMgc3RyaW5nIHwgUHJvcGVydHlBbm5vdGF0aW9uVmFsdWU8c3RyaW5nPilcblx0XHRcdD8gY29uY2F0KHRpdGxlV2l0aEhlYWRlckluZm8sIFwiOiBcIiwgcmVzb2x2ZUJpbmRpbmdTdHJpbmcodHlwZU5hbWUudG9TdHJpbmcoKSkpXG5cdFx0XHQ6IHRpdGxlTm9IZWFkZXJJbmZvO1xuXHR9XG5cdHJldHVybiBmb3JtYXRSZXN1bHQoW2NyZWF0ZU1vZGVUaXRsZV0sIHZhbHVlRm9ybWF0dGVycy5mb3JtYXRUaXRsZSk7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIGVtcHR5IHN0cmluZyBzaG91bGQgYmUgdXNlZC5cbiAqXG4gKiBAcGFyYW0gcGF0aCBUaGUgbWV0YSBwYXRoIHBvaW50aW5nIHRvIHRoZSBwcm9wZXJ0eSB1c2VkIGZvciB0aGUgdGl0bGVcbiAqIEByZXR1cm5zIFRoZSBleHByZXNzaW9uLWJpbmRpbmcgc3RyaW5nXG4gKi9cbmNvbnN0IHNob3VsZEZvcmNlRW1wdHlTdHJpbmcgPSAocGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCkgPT4ge1xuXHRjb25zdCBwcm9wZXJ0eURlZmluaXRpb24gPSBnZXRQcm9wZXJ0eURlZmluaXRpb24ocGF0aCk7XG5cdGlmIChwcm9wZXJ0eURlZmluaXRpb24gJiYgcHJvcGVydHlEZWZpbml0aW9uLmFubm90YXRpb25zPy5Db3JlPy5Db21wdXRlZCkge1xuXHRcdHJldHVybiBVSS5Jc0luYWN0aXZlO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBjb25zdGFudChmYWxzZSk7XG5cdH1cbn07XG5cbi8qKlxuICogR2V0cyB0aXRsZSB2YWx1ZSBleHByZXNzaW9uIGZyb20gb2JqZWN0IHBhZ2UgaGVhZGVyIGluZm8uXG4gKlxuICogQHBhcmFtIGZ1bGxDb250ZXh0UGF0aCBUaGUgZnVsbCBwYXRoIHRvIHRoZSBjb250ZXh0XG4gKiBAcGFyYW0gaGVhZGVySW5mb1RpdGxlIFRoZSB0aXRsZSB2YWx1ZSBmcm9tIHRoZSBvYmplY3QgcGFnZSBoZWFkZXIgaW5mb1xuICogQHBhcmFtIGdldFRleHRCaW5kaW5nRXhwcmVzc2lvbiBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSB0ZXh0IGJpbmRpbmcgZXhwcmVzc2lvblxuICogQHJldHVybnMgVGhlIGV4cHJlc3Npb24tYmluZGluZyBzdHJpbmdcbiAqL1xuY29uc3QgZ2V0VGl0bGVWYWx1ZUV4cHJlc3Npb25Gcm9tSGVhZGVySW5mbyA9IGZ1bmN0aW9uIChcblx0ZnVsbENvbnRleHRQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRoZWFkZXJJbmZvVGl0bGU6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMsXG5cdGdldFRleHRCaW5kaW5nRXhwcmVzc2lvbjogRnVuY3Rpb25cbikge1xuXHRsZXQgdGl0bGVWYWx1ZUV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmc+IHwgdW5kZWZpbmVkO1xuXHRpZiAoaGVhZGVySW5mb1RpdGxlLiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGQpIHtcblx0XHR0aXRsZVZhbHVlRXhwcmVzc2lvbiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihoZWFkZXJJbmZvVGl0bGUuVmFsdWUpO1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3Ncblx0XHRpZiAoKGhlYWRlckluZm9UaXRsZSBhcyBEYXRhRmllbGRUeXBlcykuVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zLkNvbW1vbj8uVGV4dD8uYW5ub3RhdGlvbnM/LlVJPy5UZXh0QXJyYW5nZW1lbnQpIHtcblx0XHRcdC8vIEluIGNhc2UgYW4gZXhwbGljaXQgdGV4dCBhcnJhbmdlbWVudCB3YXMgc2V0IHdlIG1ha2UgdXNlIG9mIGl0IGluIHRoZSBkZXNjcmlwdGlvbiBhcyB3ZWxsXG5cdFx0XHR0aXRsZVZhbHVlRXhwcmVzc2lvbiA9IGFkZFRleHRBcnJhbmdlbWVudFRvVGl0bGVCaW5kaW5nRXhwcmVzc2lvbih0aXRsZVZhbHVlRXhwcmVzc2lvbiwgZnVsbENvbnRleHRQYXRoKTtcblx0XHR9XG5cdFx0dGl0bGVWYWx1ZUV4cHJlc3Npb24gPSBmb3JtYXRWYWx1ZVJlY3Vyc2l2ZWx5KHRpdGxlVmFsdWVFeHByZXNzaW9uLCBmdWxsQ29udGV4dFBhdGgpO1xuXHR9XG5cdGlmIChcblx0XHRoZWFkZXJJbmZvVGl0bGUuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckFubm90YXRpb24gJiZcblx0XHRoZWFkZXJJbmZvVGl0bGUuVGFyZ2V0LiR0YXJnZXQ/LiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5Db25uZWN0ZWRGaWVsZHNUeXBlXG5cdCkge1xuXHRcdGNvbnN0IGNvbm5lY3RlZEZpZWxkc1BhdGggPSBlbmhhbmNlRGF0YU1vZGVsUGF0aChmdWxsQ29udGV4dFBhdGgsIFwiJFR5cGUvQFVJLkhlYWRlckluZm8vVGl0bGUvVGFyZ2V0LyRBbm5vdGF0aW9uUGF0aFwiKTtcblx0XHR0aXRsZVZhbHVlRXhwcmVzc2lvbiA9IGdldExhYmVsRm9yQ29ubmVjdGVkRmllbGRzKFxuXHRcdFx0Y29ubmVjdGVkRmllbGRzUGF0aCxcblx0XHRcdGdldFRleHRCaW5kaW5nRXhwcmVzc2lvbixcblx0XHRcdGZhbHNlXG5cdFx0KSBhcyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nPjtcblx0fVxuXHRyZXR1cm4gdGl0bGVWYWx1ZUV4cHJlc3Npb247XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYmluZGluZyBleHByZXNzaW9uIGZvciBPYmplY3QgUGFnZSwgTGlzdCBSZXBvcnQsIFF1aWNrIFZpZXcgYW5kIG90aGVyIHRpdGxlcy5cbiAqXG4gKiBAcGFyYW0gcGF0aCBUaGUgZGF0YSBtb2RlbCBvYmplY3QgcGF0aFxuICogQHBhcmFtIGdldFRleHRCaW5kaW5nRXhwcmVzc2lvbiBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSB0ZXh0IGJpbmRpbmcgZXhwcmVzc2lvblxuICogQHBhcmFtIFtmaWVsZEZvcm1hdE9wdGlvbnNdIFRoZSBmb3JtYXQgb3B0aW9ucyBvZiB0aGUgZmllbGRcbiAqIEBwYXJhbSBmaWVsZEZvcm1hdE9wdGlvbnMuZGlzcGxheU1vZGVcbiAqIEBwYXJhbSBmb3JtYXRPcHRpb25zXG4gKiBAcGFyYW0gW2hlYWRlckluZm9dIFRoZSBvYmplY3QgcGFnZSBoZWFkZXIgaW5mb1xuICogQHBhcmFtIFt2aWV3RGF0YV0gVGhlIGFzc29jaWF0ZWQgdmlldyBkYXRhXG4gKiBAcGFyYW0gY3VzdG9tRm9ybWF0dGVyXG4gKiBAcmV0dXJucyBUaGUgY29tcGlsZWQgZXhwcmVzc2lvbi1iaW5kaW5nIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgZ2V0VGl0bGVCaW5kaW5nRXhwcmVzc2lvbiA9IGZ1bmN0aW9uIChcblx0cGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0Z2V0VGV4dEJpbmRpbmdFeHByZXNzaW9uOiBGdW5jdGlvbixcblx0Zm9ybWF0T3B0aW9ucz86IFBhcnRpYWw8eyBkaXNwbGF5TW9kZT86IERpc3BsYXlNb2RlOyBzcGxpdFRpdGxlT25Ud29MaW5lcz86IGJvb2xlYW4gfT4sXG5cdGhlYWRlckluZm8/OiBIZWFkZXJJbmZvVHlwZSxcblx0dmlld0RhdGE/OiBWaWV3RGF0YSxcblx0Y3VzdG9tRm9ybWF0dGVyPzogc3RyaW5nXG4pIHtcblx0Y29uc3QgZm9ybWF0dGVyID0gY3VzdG9tRm9ybWF0dGVyIHx8IHZhbHVlRm9ybWF0dGVycy5mb3JtYXRUaXRsZTtcblx0bGV0IGNyZWF0ZU1vZGVUaXRsZTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz4gfCBzdHJpbmcgPSBwYXRoSW5Nb2RlbChcIlRfTkVXX09CSkVDVFwiLCBcInNhcC5mZS5pMThuXCIpO1xuXHRsZXQgdGl0bGVWYWx1ZUV4cHJlc3Npb247XG5cdGxldCBpc0hlYWRlckluZm9UaXRsZUVtcHR5ID0gZmFsc2U7XG5cdC8vIElmIHdlIGhhdmUgYSBoZWFkZXJJbmZvIGJ1dCBubyB0aXRsZSwgb3IgZW1wdHkgdGl0bGUgd2UgbmVlZCB0byBkaXNwbGF5IGFuIGVtcHR5IHN0cmluZyB3aGVuIHdlIGFyZSBvbiBhbiBhY3RpdmUgb2JqZWN0XG5cdC8vIHJlY2VpdmVkIGhlYWRlciBpbmZvIGZvciBvYmplY3QgcGFnZVxuXHRpZiAoaGVhZGVySW5mbz8uVGl0bGU/LiRUeXBlICYmIHZpZXdEYXRhKSB7XG5cdFx0dGl0bGVWYWx1ZUV4cHJlc3Npb24gPSBnZXRUaXRsZVZhbHVlRXhwcmVzc2lvbkZyb21IZWFkZXJJbmZvKHBhdGgsIGhlYWRlckluZm8uVGl0bGUsIGdldFRleHRCaW5kaW5nRXhwcmVzc2lvbik7XG5cdFx0Y3JlYXRlTW9kZVRpdGxlID0gZ2V0Q3JlYXRlTW9kZVRpdGxlKHZpZXdEYXRhLCBoZWFkZXJJbmZvKTtcblx0XHRpZiAoaXNDb25zdGFudCh0aXRsZVZhbHVlRXhwcmVzc2lvbikgJiYgdGl0bGVWYWx1ZUV4cHJlc3Npb24udmFsdWUgPT09IFwiXCIpIHtcblx0XHRcdGlzSGVhZGVySW5mb1RpdGxlRW1wdHkgPSB0cnVlO1xuXHRcdH1cblx0fSBlbHNlIGlmIChoZWFkZXJJbmZvICYmIChoZWFkZXJJbmZvLlRpdGxlID09PSB1bmRlZmluZWQgfHwgaGVhZGVySW5mby5UaXRsZS50b1N0cmluZygpID09PSBcIlwiKSkge1xuXHRcdGlzSGVhZGVySW5mb1RpdGxlRW1wdHkgPSB0cnVlO1xuXHR9XG5cdGlmICh0aXRsZVZhbHVlRXhwcmVzc2lvbiAmJiBpc0NvbnN0YW50KHRpdGxlVmFsdWVFeHByZXNzaW9uKSkge1xuXHRcdHJldHVybiBjb21waWxlRXhwcmVzc2lvbih0aXRsZVZhbHVlRXhwcmVzc2lvbik7XG5cdH1cblxuXHQvLyBuZWVkZWQgZm9yIHF1aWNrdmlld1xuXHRpZiAoaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24ocGF0aC50YXJnZXRPYmplY3QpKSB7XG5cdFx0cGF0aCA9IGVuaGFuY2VEYXRhTW9kZWxQYXRoKHBhdGgsIHBhdGgudGFyZ2V0T2JqZWN0LnBhdGgpO1xuXHR9XG5cblx0Y29uc3QgcHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHVua25vd24+ID0gcGF0aEluTW9kZWwoZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aChwYXRoKSk7XG5cdGxldCBwYXJhbXM6IEJpbmRpbmdFeHByZXNzaW9uVHVwbGU7XG5cdGlmICh0aXRsZVZhbHVlRXhwcmVzc2lvbikge1xuXHRcdHBhcmFtcyA9IEFycmF5LmlzQXJyYXkodGl0bGVWYWx1ZUV4cHJlc3Npb24pID8gKHRpdGxlVmFsdWVFeHByZXNzaW9uIGFzIHVua25vd24gYXMgQmluZGluZ0V4cHJlc3Npb25UdXBsZSkgOiBbdGl0bGVWYWx1ZUV4cHJlc3Npb25dO1xuXHR9IGVsc2Uge1xuXHRcdHBhcmFtcyA9IGdldFRpdGxlQmluZGluZ1dpdGhUZXh0QXJyYW5nZW1lbnQocGF0aCwgcHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbiwgZm9ybWF0T3B0aW9ucyk7XG5cdH1cblx0Y29uc3QgaXNUaXRsZUVtcHR5ID0gaXNUaXRsZUVtcHR5Qm9vbGVhbkV4cHJlc3Npb24ocGFyYW1zWzBdKTtcblx0Y29uc3QgZm9yY2VFbXB0eVN0cmluZyA9IHNob3VsZEZvcmNlRW1wdHlTdHJpbmcocGF0aCk7XG5cdGNvbnN0IGZvcm1hdHRlZEV4cHJlc3Npb24gPSBmb3JtYXRSZXN1bHQocGFyYW1zLCBmb3JtYXR0ZXIpO1xuXHR0aXRsZVZhbHVlRXhwcmVzc2lvbiA9IGlmRWxzZShcblx0XHRpc1RpdGxlRW1wdHksXG5cdFx0aWZFbHNlKFxuXHRcdFx0b3IoaXNIZWFkZXJJbmZvVGl0bGVFbXB0eSAmJiBpc09ySGFzQWN0aXZlRW50aXR5KHBhdGgpLCBmb3JjZUVtcHR5U3RyaW5nKSxcblx0XHRcdFwiXCIsXG5cdFx0XHRpZkVsc2UoXG5cdFx0XHRcdGlzVW5kZWZpbmVkRXhwcmVzc2lvbihjb25zdGFudChjdXN0b21Gb3JtYXR0ZXIpKSxcblx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdG9yKFVJLklzQ3JlYXRlTW9kZSwgbm90KGlzT3JIYXNBY3RpdmVFbnRpdHkocGF0aCkpKSxcblx0XHRcdFx0XHRjcmVhdGVNb2RlVGl0bGUsXG5cdFx0XHRcdFx0cGF0aEluTW9kZWwoXCJUX0FOTk9UQVRJT05fSEVMUEVSX0RFRkFVTFRfSEVBREVSX1RJVExFX05PX0hFQURFUl9JTkZPXCIsIFwic2FwLmZlLmkxOG5cIilcblx0XHRcdFx0KSxcblx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdG5vdChpc09ySGFzQWN0aXZlRW50aXR5KHBhdGgpKSxcblx0XHRcdFx0XHR2aWV3RGF0YT8ucmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9ORVdfT0JKRUNUXCIpLFxuXHRcdFx0XHRcdHZpZXdEYXRhPy5yZXNvdXJjZU1vZGVsLmdldFRleHQoXCJUX0FOTk9UQVRJT05fSEVMUEVSX0RFRkFVTFRfSEVBREVSX1RJVExFX05PX0hFQURFUl9JTkZPXCIpXG5cdFx0XHRcdClcblx0XHRcdClcblx0XHQpLFxuXHRcdGZvcm1hdHRlZEV4cHJlc3Npb25cblx0KTtcblxuXHRyZXR1cm4gY29tcGlsZUV4cHJlc3Npb24odGl0bGVWYWx1ZUV4cHJlc3Npb24pO1xufTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWlDTyxNQUFNQSxzQkFBc0IsR0FBRyxVQUNyQ0MsMEJBQTRELEVBQzVEQyxlQUFvQyxFQUNEO0lBQ25DLE9BQU9DLG9CQUFvQixDQUFDRiwwQkFBMEIsRUFBRSxhQUFhLEVBQUdHLFVBQVUsSUFBSztNQUN0RixJQUFJQyxhQUFhLEdBQUdELFVBQVU7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
|
|
255
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3JtYXRWYWx1ZVJlY3Vyc2l2ZWx5IiwiYmluZGluZ0V4cHJlc3Npb25Ub0VuaGFuY2UiLCJmdWxsQ29udGV4dFBhdGgiLCJ0cmFuc2Zvcm1SZWN1cnNpdmVseSIsImV4cHJlc3Npb24iLCJvdXRFeHByZXNzaW9uIiwibW9kZWxOYW1lIiwidW5kZWZpbmVkIiwib1Byb3BlcnR5RGF0YU1vZGVsUGF0aCIsImVuaGFuY2VEYXRhTW9kZWxQYXRoIiwicGF0aCIsImZvcm1hdFdpdGhUeXBlSW5mb3JtYXRpb24iLCJ0YXJnZXRPYmplY3QiLCJnZXRQcm9wZXJ0eURlZmluaXRpb24iLCJwcm9wZXJ0eURhdGFNb2RlbE9iamVjdCIsInByb3BlcnR5UGF0aE9yUHJvcGVydHkiLCJpc1Byb3BlcnR5UGF0aEV4cHJlc3Npb24iLCIkdGFyZ2V0IiwiaXNPckhhc0FjdGl2ZUVudGl0eSIsImRyYWZ0Um9vdCIsInRhcmdldEVudGl0eVNldCIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiRHJhZnRSb290IiwiZHJhZnROb2RlIiwiRHJhZnROb2RlIiwibm90IiwiRHJhZnQiLCJJc05ld09iamVjdCIsImlzVGl0bGVFbXB0eUJvb2xlYW5FeHByZXNzaW9uIiwidGl0bGVWYWx1ZUV4cHJlc3Npb24iLCJfdHlwZSIsImNvbnN0YW50IiwidmFsdWUiLCJpc0VtcHR5IiwiZ2V0VGl0bGVCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudCIsInByb3BlcnR5RGF0YU1vZGVsUGF0aCIsInByb3BlcnR5QmluZGluZ0V4cHJlc3Npb24iLCJmb3JtYXRPcHRpb25zIiwidGFyZ2V0RGlzcGxheU1vZGVPdmVycmlkZSIsImRpc3BsYXlNb2RlIiwicHJvcGVydHlEZWZpbml0aW9uIiwidGFyZ2V0RGlzcGxheU1vZGUiLCJVSUZvcm1hdHRlcnMiLCJnZXREaXNwbGF5TW9kZSIsImNvbW1vblRleHQiLCJUZXh0IiwicmVsYXRpdmVMb2NhdGlvbiIsImdldFJlbGF0aXZlUGF0aHMiLCJwYXJhbXMiLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJ0YXJnZXRFeHByZXNzaW9uIiwic3BsaXRUaXRsZU9uVHdvTGluZXMiLCJpZkVsc2UiLCJVSSIsIlRleHRBcnJhbmdlbWVudCIsImFkZFRleHRBcnJhbmdlbWVudFRvVGl0bGVCaW5kaW5nRXhwcmVzc2lvbiIsImdldENyZWF0ZU1vZGVUaXRsZSIsInZpZXdEYXRhIiwiVHlwZU5hbWUiLCJ0eXBlTmFtZSIsInRpdGxlTm9IZWFkZXJJbmZvIiwicGF0aEluTW9kZWwiLCJjcmVhdGVNb2RlVGl0bGUiLCJyZXNvdXJjZU1vZGVsIiwiZ2V0VGV4dCIsImVudGl0eVNldCIsInRpdGxlV2l0aEhlYWRlckluZm8iLCJjb25jYXQiLCJyZXNvbHZlQmluZGluZ1N0cmluZyIsInRvU3RyaW5nIiwiZm9ybWF0UmVzdWx0IiwidmFsdWVGb3JtYXR0ZXJzIiwiZm9ybWF0VGl0bGUiLCJzaG91bGRGb3JjZUVtcHR5U3RyaW5nIiwiQ29yZSIsIkNvbXB1dGVkIiwiSXNJbmFjdGl2ZSIsImdldFRpdGxlVmFsdWVFeHByZXNzaW9uRnJvbUhlYWRlckluZm8iLCJoZWFkZXJJbmZvVGl0bGUiLCJnZXRUZXh0QmluZGluZ0V4cHJlc3Npb24iLCIkVHlwZSIsIlZhbHVlIiwiVGFyZ2V0IiwiY29ubmVjdGVkRmllbGRzUGF0aCIsImdldExhYmVsRm9yQ29ubmVjdGVkRmllbGRzIiwiZ2V0VGl0bGVCaW5kaW5nRXhwcmVzc2lvbiIsImhlYWRlckluZm8iLCJjdXN0b21Gb3JtYXR0ZXIiLCJmb3JtYXR0ZXIiLCJpc0hlYWRlckluZm9UaXRsZUVtcHR5IiwiVGl0bGUiLCJpc0NvbnN0YW50IiwiY29tcGlsZUV4cHJlc3Npb24iLCJpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbiIsImdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGgiLCJBcnJheSIsImlzQXJyYXkiLCJpc1RpdGxlRW1wdHkiLCJmb3JjZUVtcHR5U3RyaW5nIiwiZm9ybWF0dGVkRXhwcmVzc2lvbiIsIm9yIiwiaXNVbmRlZmluZWRFeHByZXNzaW9uIiwiSXNDcmVhdGVNb2RlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJUaXRsZUhlbHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVNldCwgUHJvcGVydHksIFByb3BlcnR5QW5ub3RhdGlvblZhbHVlLCBQcm9wZXJ0eVBhdGggfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgQ29ubmVjdGVkRmllbGRzLCBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLCBEYXRhRmllbGRUeXBlcywgSGVhZGVySW5mb1R5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB2YWx1ZUZvcm1hdHRlcnMgZnJvbSBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvVmFsdWVGb3JtYXR0ZXJcIjtcbmltcG9ydCB7IERyYWZ0LCBVSSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uLCBQYXRoSW5Nb2RlbEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHtcblx0Y29tcGlsZUV4cHJlc3Npb24sXG5cdGNvbmNhdCxcblx0Y29uc3RhbnQsXG5cdGZvcm1hdFJlc3VsdCxcblx0Zm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbixcblx0Z2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uLFxuXHRpZkVsc2UsXG5cdGlzQ29uc3RhbnQsXG5cdGlzRW1wdHksXG5cdGlzVW5kZWZpbmVkRXhwcmVzc2lvbixcblx0bm90LFxuXHRvcixcblx0cGF0aEluTW9kZWwsXG5cdHJlc29sdmVCaW5kaW5nU3RyaW5nLFxuXHR0cmFuc2Zvcm1SZWN1cnNpdmVseVxufSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24sIGlzUHJvcGVydHlQYXRoRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB0eXBlIHsgVmlld0RhdGEgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvVGVtcGxhdGVkVmlld1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgeyBnZXRMYWJlbEZvckNvbm5lY3RlZEZpZWxkcyB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFGaWVsZEZvcm1hdHRlcnNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGVuaGFuY2VEYXRhTW9kZWxQYXRoLCBnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoLCBnZXRSZWxhdGl2ZVBhdGhzIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBEaXNwbGF5TW9kZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1VJRm9ybWF0dGVyc1wiO1xuaW1wb3J0ICogYXMgVUlGb3JtYXR0ZXJzIGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1VJRm9ybWF0dGVyc1wiO1xuXG50eXBlIEJpbmRpbmdFeHByZXNzaW9uVHVwbGUgPSBbQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz4sIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmc+XSB8IFtCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nPl07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRWYWx1ZVJlY3Vyc2l2ZWx5ID0gZnVuY3Rpb24gKFxuXHRiaW5kaW5nRXhwcmVzc2lvblRvRW5oYW5jZTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz4sXG5cdGZ1bGxDb250ZXh0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aDxQcm9wZXJ0eSB8IFByb3BlcnR5UGF0aD5cbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmc+IHtcblx0cmV0dXJuIHRyYW5zZm9ybVJlY3Vyc2l2ZWx5KGJpbmRpbmdFeHByZXNzaW9uVG9FbmhhbmNlLCBcIlBhdGhJbk1vZGVsXCIsIChleHByZXNzaW9uKSA9PiB7XG5cdFx0bGV0IG91dEV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuXHRcdGlmIChleHByZXNzaW9uLm1vZGVsTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHQvLyBJbiBjYXNlIG9mIGRlZmF1bHQgbW9kZWwgd2UgdGhlbiBuZWVkIHRvIHJlc29sdmUgdGhlIHRleHQgYXJyYW5nZW1lbnQgcHJvcGVydHlcblx0XHRcdGNvbnN0IG9Qcm9wZXJ0eURhdGFNb2RlbFBhdGggPSBlbmhhbmNlRGF0YU1vZGVsUGF0aDxQcm9wZXJ0eT4oZnVsbENvbnRleHRQYXRoLCBleHByZXNzaW9uLnBhdGgpO1xuXHRcdFx0b3V0RXhwcmVzc2lvbiA9IGZvcm1hdFdpdGhUeXBlSW5mb3JtYXRpb24ob1Byb3BlcnR5RGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3QhLCBleHByZXNzaW9uKTtcblx0XHR9XG5cdFx0cmV0dXJuIG91dEV4cHJlc3Npb247XG5cdH0pO1xufTtcblxuLyoqXG4gKiBHZXQgcHJvcGVydHkgZGVmaW5pdGlvbiBmcm9tIGRhdGEgbW9kZWwgb2JqZWN0IHBhdGguXG4gKlxuICogQHBhcmFtIHByb3BlcnR5RGF0YU1vZGVsT2JqZWN0IFRoZSBwcm9wZXJ0eSBkYXRhIG1vZGVsIG9iamVjdFxuICogQHJldHVybnMgVGhlIHByb3BlcnR5XG4gKi9cbmNvbnN0IGdldFByb3BlcnR5RGVmaW5pdGlvbiA9IChwcm9wZXJ0eURhdGFNb2RlbE9iamVjdDogRGF0YU1vZGVsT2JqZWN0UGF0aDxQcm9wZXJ0eSB8IFByb3BlcnR5UGF0aD4pOiBQcm9wZXJ0eSB8IHVuZGVmaW5lZCA9PiB7XG5cdGNvbnN0IHByb3BlcnR5UGF0aE9yUHJvcGVydHkgPSBwcm9wZXJ0eURhdGFNb2RlbE9iamVjdC50YXJnZXRPYmplY3Q7XG5cdHJldHVybiBpc1Byb3BlcnR5UGF0aEV4cHJlc3Npb24ocHJvcGVydHlQYXRoT3JQcm9wZXJ0eSkgPyBwcm9wZXJ0eVBhdGhPclByb3BlcnR5LiR0YXJnZXQgOiBwcm9wZXJ0eVBhdGhPclByb3BlcnR5O1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhbiBhc3NvY2lhdGVkIGFjdGl2ZSBlbnRpdHkgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSBmdWxsQ29udGV4dFBhdGggVGhlIGZ1bGwgcGF0aCB0byB0aGUgY29udGV4dFxuICogQHJldHVybnMgVGhlIGV4cHJlc3Npb24tYmluZGluZyBzdHJpbmdcbiAqL1xuY29uc3QgaXNPckhhc0FjdGl2ZUVudGl0eSA9IChmdWxsQ29udGV4dFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGg8dW5rbm93bj4pOiBib29sZWFuIHwgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0+IHtcblx0Y29uc3QgZHJhZnRSb290ID0gKGZ1bGxDb250ZXh0UGF0aC50YXJnZXRFbnRpdHlTZXQgYXMgRW50aXR5U2V0IHwgdW5kZWZpbmVkKT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uRHJhZnRSb290O1xuXHRjb25zdCBkcmFmdE5vZGUgPSAoZnVsbENvbnRleHRQYXRoLnRhcmdldEVudGl0eVNldCBhcyBFbnRpdHlTZXQgfCB1bmRlZmluZWQpPy5hbm5vdGF0aW9ucz8uQ29tbW9uPy5EcmFmdE5vZGU7XG5cdGlmICghIWRyYWZ0Um9vdCB8fCAhIWRyYWZ0Tm9kZSkge1xuXHRcdHJldHVybiBub3QoRHJhZnQuSXNOZXdPYmplY3QpO1xuXHR9XG5cdHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRpdGxlIHZhbHVlIGV4cHJlc3Npb24gaXMgZW1wdHkuXG4gKlxuICogQHBhcmFtIHRpdGxlVmFsdWVFeHByZXNzaW9uIFRoZSB0aXRsZSB2YWx1ZSBleHByZXNzaW9uXG4gKiBAcmV0dXJucyBUaGUgZXhwcmVzc2lvbi1iaW5kaW5nIHN0cmluZ1xuICovXG5jb25zdCBpc1RpdGxlRW1wdHlCb29sZWFuRXhwcmVzc2lvbiA9ICh0aXRsZVZhbHVlRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz4pID0+XG5cdHRpdGxlVmFsdWVFeHByZXNzaW9uLl90eXBlID09PSBcIkNvbnN0YW50XCIgPyBjb25zdGFudCghdGl0bGVWYWx1ZUV4cHJlc3Npb24udmFsdWUpIDogaXNFbXB0eSh0aXRsZVZhbHVlRXhwcmVzc2lvbik7XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSB0aXRsZSBleHByZXNzaW9uIGJpbmRpbmcuXG4gKlxuICogQHBhcmFtIHByb3BlcnR5RGF0YU1vZGVsUGF0aCBUaGUgZnVsbCBwYXRoIHRvIHRoZSBwcm9wZXJ0eSBjb250ZXh0XG4gKiBAcGFyYW0gcHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbiBUaGUgYmluZGluZyBleHByZXNzaW9uIG9mIHRoZSBwcm9wZXJ0eSBhYm92ZVxuICogQHBhcmFtIFtmaWVsZEZvcm1hdE9wdGlvbnNdIFRoZSBmb3JtYXQgb3B0aW9ucyBvZiB0aGUgZmllbGRcbiAqIEBwYXJhbSBmaWVsZEZvcm1hdE9wdGlvbnMuZGlzcGxheU1vZGVcbiAqIEBwYXJhbSBmb3JtYXRPcHRpb25zXG4gKiBAcmV0dXJucyBUaGUgZXhwcmVzc2lvbi1iaW5kaW5nIHBhcmFtZXRlcnNcbiAqL1xuY29uc3QgZ2V0VGl0bGVCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudCA9IGZ1bmN0aW9uIChcblx0cHJvcGVydHlEYXRhTW9kZWxQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPFByb3BlcnR5Pixcblx0cHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz4sXG5cdGZvcm1hdE9wdGlvbnM/OiBQYXJ0aWFsPHsgZGlzcGxheU1vZGU/OiBEaXNwbGF5TW9kZTsgc3BsaXRUaXRsZU9uVHdvTGluZXM/OiBib29sZWFuIH0+XG4pOiBCaW5kaW5nRXhwcmVzc2lvblR1cGxlIHtcblx0Y29uc3QgdGFyZ2V0RGlzcGxheU1vZGVPdmVycmlkZSA9IGZvcm1hdE9wdGlvbnM/LmRpc3BsYXlNb2RlO1xuXHRjb25zdCBwcm9wZXJ0eURlZmluaXRpb24gPSBnZXRQcm9wZXJ0eURlZmluaXRpb24ocHJvcGVydHlEYXRhTW9kZWxQYXRoKTtcblx0Y29uc3QgdGFyZ2V0RGlzcGxheU1vZGUgPSB0YXJnZXREaXNwbGF5TW9kZU92ZXJyaWRlIHx8IFVJRm9ybWF0dGVycy5nZXREaXNwbGF5TW9kZShwcm9wZXJ0eURhdGFNb2RlbFBhdGgpO1xuXHRjb25zdCBjb21tb25UZXh0ID0gcHJvcGVydHlEZWZpbml0aW9uPy5hbm5vdGF0aW9ucz8uQ29tbW9uPy5UZXh0O1xuXHRjb25zdCByZWxhdGl2ZUxvY2F0aW9uID0gZ2V0UmVsYXRpdmVQYXRocyhwcm9wZXJ0eURhdGFNb2RlbFBhdGgpO1xuXG5cdGlmIChwcm9wZXJ0eURlZmluaXRpb24pIHtcblx0XHRwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uID0gZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbihwcm9wZXJ0eURlZmluaXRpb24sIHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb24pO1xuXHR9XG5cblx0bGV0IHBhcmFtczogQmluZGluZ0V4cHJlc3Npb25UdXBsZSA9IFtwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uXTtcblx0aWYgKHRhcmdldERpc3BsYXlNb2RlICE9PSBcIlZhbHVlXCIgJiYgY29tbW9uVGV4dCkge1xuXHRcdHN3aXRjaCAodGFyZ2V0RGlzcGxheU1vZGUpIHtcblx0XHRcdGNhc2UgXCJEZXNjcmlwdGlvblwiOlxuXHRcdFx0XHRwYXJhbXMgPSBbZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGNvbW1vblRleHQsIHJlbGF0aXZlTG9jYXRpb24pXTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiRGVzY3JpcHRpb25WYWx1ZVwiOlxuXHRcdFx0XHRjb25zdCB0YXJnZXRFeHByZXNzaW9uID1cblx0XHRcdFx0XHRmb3JtYXRPcHRpb25zPy5zcGxpdFRpdGxlT25Ud29MaW5lcyA9PT0gdW5kZWZpbmVkXG5cdFx0XHRcdFx0XHQ/IGlmRWxzZSghIWNvbW1vblRleHQuYW5ub3RhdGlvbnM/LlVJPy5UZXh0QXJyYW5nZW1lbnQsIHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb24sIGNvbnN0YW50KFwiXCIpKVxuXHRcdFx0XHRcdFx0OiBpZkVsc2UoISFmb3JtYXRPcHRpb25zPy5zcGxpdFRpdGxlT25Ud29MaW5lcywgY29uc3RhbnQoXCJcIiksIHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb24pO1xuXHRcdFx0XHRwYXJhbXMgPSBbZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGNvbW1vblRleHQsIHJlbGF0aXZlTG9jYXRpb24pLCB0YXJnZXRFeHByZXNzaW9uXTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFwiVmFsdWVEZXNjcmlwdGlvblwiOlxuXHRcdFx0XHRwYXJhbXMgPSBbXG5cdFx0XHRcdFx0cHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbixcblx0XHRcdFx0XHRpZkVsc2UoISFmb3JtYXRPcHRpb25zPy5zcGxpdFRpdGxlT25Ud29MaW5lcywgY29uc3RhbnQoXCJcIiksIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihjb21tb25UZXh0LCByZWxhdGl2ZUxvY2F0aW9uKSlcblx0XHRcdFx0XTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBwYXJhbXM7XG59O1xuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGFkZCB0aGUgdGV4dCBhcnJhbmdlbWVudCB0byBhIHRpdGxlIGJpbmRpbmcgZXhwcmVzc2lvbi5cbiAqXG4gKiBAcGFyYW0gYmluZGluZ0V4cHJlc3Npb25Ub0VuaGFuY2UgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiB0byBiZSBlbmhhbmNlZFxuICogQHBhcmFtIHBhdGggVGhlIGRhdGEgZmllbGQgZGF0YSBtb2RlbCBvYmplY3QgcGF0aFxuICogQHJldHVybnMgQW4gdXBkYXRlZCBleHByZXNzaW9uIGNvbnRhaW5pbmcgdGhlIHRleHQgYXJyYW5nZW1lbnQgYmluZGluZyBwYXJhbWV0ZXJzXG4gKi9cbmNvbnN0IGFkZFRleHRBcnJhbmdlbWVudFRvVGl0bGVCaW5kaW5nRXhwcmVzc2lvbiA9IGZ1bmN0aW9uIChcblx0YmluZGluZ0V4cHJlc3Npb25Ub0VuaGFuY2U6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmc+LFxuXHRwYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPFByb3BlcnR5PlxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRyZXR1cm4gdHJhbnNmb3JtUmVjdXJzaXZlbHkoYmluZGluZ0V4cHJlc3Npb25Ub0VuaGFuY2UsIFwiUGF0aEluTW9kZWxcIiwgKGV4cHJlc3Npb246IFBhdGhJbk1vZGVsRXhwcmVzc2lvbjx1bmtub3duPikgPT4ge1xuXHRcdGlmIChleHByZXNzaW9uLm1vZGVsTmFtZSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gZXhwcmVzc2lvbjtcblx0XHQvLyBJbiBjYXNlIG9mIGRlZmF1bHQgbW9kZWwgd2UgdGhlbiBuZWVkIHRvIHJlc29sdmUgdGhlIHRleHQgYXJyYW5nZW1lbnQgcHJvcGVydHlcblx0XHRjb25zdCBwcm9wZXJ0eURhdGFNb2RlbFBhdGggPSBlbmhhbmNlRGF0YU1vZGVsUGF0aDxQcm9wZXJ0eT4ocGF0aCwgZXhwcmVzc2lvbi5wYXRoKTtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuXHRcdHJldHVybiBnZXRUaXRsZUJpbmRpbmdXaXRoVGV4dEFycmFuZ2VtZW50KHByb3BlcnR5RGF0YU1vZGVsUGF0aCwgZXhwcmVzc2lvbikgYXMgdW5rbm93biBhcyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248YW55Pjtcblx0fSk7XG59O1xuXG4vKipcbiAqIEdldHMgYmluZGluZyBleHByZXNzaW9uIGZvciBjcmVhdGUgbW9kZSB0aXRsZS5cbiAqXG4gKiBAcGFyYW0gdmlld0RhdGEgVGhlIGFzc29jaWF0ZWQgdmlldyBkYXRhXG4gKiBAcGFyYW0gW3R5cGVOYW1lXSBUaGUgdHlwZSBuYW1lIGZyb20gdGhlIG9iamVjdCBwYWdlIGhlYWRlciBpbmZvXG4gKiBAcGFyYW0gdHlwZU5hbWUuVHlwZU5hbWVcbiAqIEByZXR1cm5zIFRoZSBleHByZXNzaW9uLWJpbmRpbmcgc3RyaW5nXG4gKi9cbmNvbnN0IGdldENyZWF0ZU1vZGVUaXRsZSA9IGZ1bmN0aW9uICh2aWV3RGF0YTogVmlld0RhdGEsIHsgVHlwZU5hbWU6IHR5cGVOYW1lIH06IEhlYWRlckluZm9UeXBlKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCB0aXRsZU5vSGVhZGVySW5mbyA9IHBhdGhJbk1vZGVsKFwiVF9ORVdfT0JKRUNUXCIsIFwic2FwLmZlLmkxOG5cIik7XG5cdGxldCBjcmVhdGVNb2RlVGl0bGU6IHN0cmluZyB8IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmc+ID0gdGl0bGVOb0hlYWRlckluZm87XG5cdGlmIChcblx0XHR2aWV3RGF0YS5yZXNvdXJjZU1vZGVsLmdldFRleHQoXCJUX05FV19PQkpFQ1RcIiwgdW5kZWZpbmVkLCB2aWV3RGF0YS5lbnRpdHlTZXQpID09PVxuXHRcdHZpZXdEYXRhLnJlc291cmNlTW9kZWwuZ2V0VGV4dChcIlRfTkVXX09CSkVDVF9ERUZBVUxUXCIsIHVuZGVmaW5lZCwgdmlld0RhdGEuZW50aXR5U2V0KVxuXHQpIHtcblx0XHQvL1RfTkVXX09CSkVDVCBoYXMgbm90IGJlZW4gY3VzdG9taXplZFxuXHRcdGNvbnN0IHRpdGxlV2l0aEhlYWRlckluZm8gPSB2aWV3RGF0YS5yZXNvdXJjZU1vZGVsLmdldFRleHQoXG5cdFx0XHRcIlRfQU5OT1RBVElPTl9IRUxQRVJfREVGQVVMVF9PQkpFQ1RfUEFHRV9IRUFERVJfVElUTEVcIixcblx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdHZpZXdEYXRhLmVudGl0eVNldFxuXHRcdCk7XG5cdFx0Y3JlYXRlTW9kZVRpdGxlID0gKHR5cGVOYW1lIGFzIHN0cmluZyB8IFByb3BlcnR5QW5ub3RhdGlvblZhbHVlPHN0cmluZz4pXG5cdFx0XHQ/IGNvbmNhdCh0aXRsZVdpdGhIZWFkZXJJbmZvLCBcIjogXCIsIHJlc29sdmVCaW5kaW5nU3RyaW5nKHR5cGVOYW1lLnRvU3RyaW5nKCkpKVxuXHRcdFx0OiB0aXRsZU5vSGVhZGVySW5mbztcblx0fVxuXHRyZXR1cm4gZm9ybWF0UmVzdWx0KFtjcmVhdGVNb2RlVGl0bGVdLCB2YWx1ZUZvcm1hdHRlcnMuZm9ybWF0VGl0bGUpO1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhbiBlbXB0eSBzdHJpbmcgc2hvdWxkIGJlIHVzZWQuXG4gKlxuICogQHBhcmFtIHBhdGggVGhlIG1ldGEgcGF0aCBwb2ludGluZyB0byB0aGUgcHJvcGVydHkgdXNlZCBmb3IgdGhlIHRpdGxlXG4gKiBAcmV0dXJucyBUaGUgZXhwcmVzc2lvbi1iaW5kaW5nIHN0cmluZ1xuICovXG5jb25zdCBzaG91bGRGb3JjZUVtcHR5U3RyaW5nID0gKHBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGg8UHJvcGVydHkgfCBQcm9wZXJ0eVBhdGg+KTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0+IHtcblx0Y29uc3QgcHJvcGVydHlEZWZpbml0aW9uID0gZ2V0UHJvcGVydHlEZWZpbml0aW9uKHBhdGgpO1xuXHRpZiAocHJvcGVydHlEZWZpbml0aW9uICYmIHByb3BlcnR5RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uQ29yZT8uQ29tcHV0ZWQpIHtcblx0XHRyZXR1cm4gVUkuSXNJbmFjdGl2ZTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gY29uc3RhbnQoZmFsc2UpO1xuXHR9XG59O1xuXG4vKipcbiAqIEdldHMgdGl0bGUgdmFsdWUgZXhwcmVzc2lvbiBmcm9tIG9iamVjdCBwYWdlIGhlYWRlciBpbmZvLlxuICpcbiAqIEBwYXJhbSBmdWxsQ29udGV4dFBhdGggVGhlIGZ1bGwgcGF0aCB0byB0aGUgY29udGV4dFxuICogQHBhcmFtIGhlYWRlckluZm9UaXRsZSBUaGUgdGl0bGUgdmFsdWUgZnJvbSB0aGUgb2JqZWN0IHBhZ2UgaGVhZGVyIGluZm9cbiAqIEBwYXJhbSBnZXRUZXh0QmluZGluZ0V4cHJlc3Npb24gVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUgdGV4dCBiaW5kaW5nIGV4cHJlc3Npb25cbiAqIEByZXR1cm5zIFRoZSBleHByZXNzaW9uLWJpbmRpbmcgc3RyaW5nXG4gKi9cbmNvbnN0IGdldFRpdGxlVmFsdWVFeHByZXNzaW9uRnJvbUhlYWRlckluZm8gPSBmdW5jdGlvbiAoXG5cdGZ1bGxDb250ZXh0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aDxQcm9wZXJ0eT4sXG5cdGhlYWRlckluZm9UaXRsZTogRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyxcblx0Z2V0VGV4dEJpbmRpbmdFeHByZXNzaW9uOiBGdW5jdGlvblxuKSB7XG5cdGxldCB0aXRsZVZhbHVlRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz4gfCB1bmRlZmluZWQ7XG5cdGlmIChoZWFkZXJJbmZvVGl0bGUuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZCkge1xuXHRcdHRpdGxlVmFsdWVFeHByZXNzaW9uID0gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGhlYWRlckluZm9UaXRsZS5WYWx1ZSk7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2Vzc1xuXHRcdGlmICgoaGVhZGVySW5mb1RpdGxlIGFzIERhdGFGaWVsZFR5cGVzKS5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnMuQ29tbW9uPy5UZXh0Py5hbm5vdGF0aW9ucz8uVUk/LlRleHRBcnJhbmdlbWVudCkge1xuXHRcdFx0Ly8gSW4gY2FzZSBhbiBleHBsaWNpdCB0ZXh0IGFycmFuZ2VtZW50IHdhcyBzZXQgd2UgbWFrZSB1c2Ugb2YgaXQgaW4gdGhlIGRlc2NyaXB0aW9uIGFzIHdlbGxcblx0XHRcdHRpdGxlVmFsdWVFeHByZXNzaW9uID0gYWRkVGV4dEFycmFuZ2VtZW50VG9UaXRsZUJpbmRpbmdFeHByZXNzaW9uKHRpdGxlVmFsdWVFeHByZXNzaW9uLCBmdWxsQ29udGV4dFBhdGgpO1xuXHRcdH1cblx0XHR0aXRsZVZhbHVlRXhwcmVzc2lvbiA9IGZvcm1hdFZhbHVlUmVjdXJzaXZlbHkodGl0bGVWYWx1ZUV4cHJlc3Npb24sIGZ1bGxDb250ZXh0UGF0aCk7XG5cdH1cblx0aWYgKFxuXHRcdGhlYWRlckluZm9UaXRsZS4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQW5ub3RhdGlvbiAmJlxuXHRcdGhlYWRlckluZm9UaXRsZS5UYXJnZXQuJHRhcmdldD8uJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkNvbm5lY3RlZEZpZWxkc1R5cGVcblx0KSB7XG5cdFx0Y29uc3QgY29ubmVjdGVkRmllbGRzUGF0aCA9IGVuaGFuY2VEYXRhTW9kZWxQYXRoPENvbm5lY3RlZEZpZWxkcz4oXG5cdFx0XHRmdWxsQ29udGV4dFBhdGgsXG5cdFx0XHRcIiRUeXBlL0BVSS5IZWFkZXJJbmZvL1RpdGxlL1RhcmdldC8kQW5ub3RhdGlvblBhdGhcIlxuXHRcdCk7XG5cdFx0dGl0bGVWYWx1ZUV4cHJlc3Npb24gPSBnZXRMYWJlbEZvckNvbm5lY3RlZEZpZWxkcyhcblx0XHRcdGNvbm5lY3RlZEZpZWxkc1BhdGgsXG5cdFx0XHRnZXRUZXh0QmluZGluZ0V4cHJlc3Npb24sXG5cdFx0XHRmYWxzZVxuXHRcdCkgYXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz47XG5cdH1cblx0cmV0dXJuIHRpdGxlVmFsdWVFeHByZXNzaW9uO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgT2JqZWN0IFBhZ2UsIExpc3QgUmVwb3J0LCBRdWljayBWaWV3IGFuZCBvdGhlciB0aXRsZXMuXG4gKlxuICogQHBhcmFtIHBhdGggVGhlIGRhdGEgbW9kZWwgb2JqZWN0IHBhdGhcbiAqIEBwYXJhbSBnZXRUZXh0QmluZGluZ0V4cHJlc3Npb24gVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUgdGV4dCBiaW5kaW5nIGV4cHJlc3Npb25cbiAqIEBwYXJhbSBbZmllbGRGb3JtYXRPcHRpb25zXSBUaGUgZm9ybWF0IG9wdGlvbnMgb2YgdGhlIGZpZWxkXG4gKiBAcGFyYW0gZmllbGRGb3JtYXRPcHRpb25zLmRpc3BsYXlNb2RlXG4gKiBAcGFyYW0gZm9ybWF0T3B0aW9uc1xuICogQHBhcmFtIFtoZWFkZXJJbmZvXSBUaGUgb2JqZWN0IHBhZ2UgaGVhZGVyIGluZm9cbiAqIEBwYXJhbSBbdmlld0RhdGFdIFRoZSBhc3NvY2lhdGVkIHZpZXcgZGF0YVxuICogQHBhcmFtIGN1c3RvbUZvcm1hdHRlclxuICogQHJldHVybnMgVGhlIGNvbXBpbGVkIGV4cHJlc3Npb24tYmluZGluZyBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFRpdGxlQmluZGluZ0V4cHJlc3Npb24gPSBmdW5jdGlvbiAoXG5cdHBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGg8UHJvcGVydHk+LFxuXHRnZXRUZXh0QmluZGluZ0V4cHJlc3Npb246IEZ1bmN0aW9uLFxuXHRmb3JtYXRPcHRpb25zPzogUGFydGlhbDx7IGRpc3BsYXlNb2RlPzogRGlzcGxheU1vZGU7IHNwbGl0VGl0bGVPblR3b0xpbmVzPzogYm9vbGVhbiB9Pixcblx0aGVhZGVySW5mbz86IEhlYWRlckluZm9UeXBlLFxuXHR2aWV3RGF0YT86IFZpZXdEYXRhLFxuXHRjdXN0b21Gb3JtYXR0ZXI/OiBzdHJpbmdcbikge1xuXHRjb25zdCBmb3JtYXR0ZXIgPSBjdXN0b21Gb3JtYXR0ZXIgfHwgdmFsdWVGb3JtYXR0ZXJzLmZvcm1hdFRpdGxlO1xuXHRsZXQgY3JlYXRlTW9kZVRpdGxlOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nPiB8IHN0cmluZyA9IHBhdGhJbk1vZGVsKFwiVF9ORVdfT0JKRUNUXCIsIFwic2FwLmZlLmkxOG5cIik7XG5cdGxldCB0aXRsZVZhbHVlRXhwcmVzc2lvbjtcblx0bGV0IGlzSGVhZGVySW5mb1RpdGxlRW1wdHkgPSBmYWxzZTtcblx0Ly8gSWYgd2UgaGF2ZSBhIGhlYWRlckluZm8gYnV0IG5vIHRpdGxlLCBvciBlbXB0eSB0aXRsZSB3ZSBuZWVkIHRvIGRpc3BsYXkgYW4gZW1wdHkgc3RyaW5nIHdoZW4gd2UgYXJlIG9uIGFuIGFjdGl2ZSBvYmplY3Rcblx0Ly8gcmVjZWl2ZWQgaGVhZGVyIGluZm8gZm9yIG9iamVjdCBwYWdlXG5cdGlmIChoZWFkZXJJbmZvPy5UaXRsZT8uJFR5cGUgJiYgdmlld0RhdGEpIHtcblx0XHR0aXRsZVZhbHVlRXhwcmVzc2lvbiA9IGdldFRpdGxlVmFsdWVFeHByZXNzaW9uRnJvbUhlYWRlckluZm8ocGF0aCwgaGVhZGVySW5mby5UaXRsZSwgZ2V0VGV4dEJpbmRpbmdFeHByZXNzaW9uKTtcblx0XHRjcmVhdGVNb2RlVGl0bGUgPSBnZXRDcmVhdGVNb2RlVGl0bGUodmlld0RhdGEsIGhlYWRlckluZm8pO1xuXHRcdGlmIChpc0NvbnN0YW50KHRpdGxlVmFsdWVFeHByZXNzaW9uKSAmJiB0aXRsZVZhbHVlRXhwcmVzc2lvbi52YWx1ZSA9PT0gXCJcIikge1xuXHRcdFx0aXNIZWFkZXJJbmZvVGl0bGVFbXB0eSA9IHRydWU7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKGhlYWRlckluZm8gJiYgKGhlYWRlckluZm8uVGl0bGUgPT09IHVuZGVmaW5lZCB8fCBoZWFkZXJJbmZvLlRpdGxlLnRvU3RyaW5nKCkgPT09IFwiXCIpKSB7XG5cdFx0aXNIZWFkZXJJbmZvVGl0bGVFbXB0eSA9IHRydWU7XG5cdH1cblx0aWYgKHRpdGxlVmFsdWVFeHByZXNzaW9uICYmIGlzQ29uc3RhbnQodGl0bGVWYWx1ZUV4cHJlc3Npb24pKSB7XG5cdFx0cmV0dXJuIGNvbXBpbGVFeHByZXNzaW9uKHRpdGxlVmFsdWVFeHByZXNzaW9uKTtcblx0fVxuXG5cdC8vIG5lZWRlZCBmb3IgcXVpY2t2aWV3XG5cdGlmIChpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbihwYXRoLnRhcmdldE9iamVjdCkpIHtcblx0XHRwYXRoID0gZW5oYW5jZURhdGFNb2RlbFBhdGgocGF0aCwgcGF0aC50YXJnZXRPYmplY3QucGF0aCk7XG5cdH1cblxuXHRjb25zdCBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248dW5rbm93bj4gPSBwYXRoSW5Nb2RlbChnZXRDb250ZXh0UmVsYXRpdmVUYXJnZXRPYmplY3RQYXRoKHBhdGgpKTtcblx0bGV0IHBhcmFtczogQmluZGluZ0V4cHJlc3Npb25UdXBsZTtcblx0aWYgKHRpdGxlVmFsdWVFeHByZXNzaW9uKSB7XG5cdFx0cGFyYW1zID0gQXJyYXkuaXNBcnJheSh0aXRsZVZhbHVlRXhwcmVzc2lvbikgPyAodGl0bGVWYWx1ZUV4cHJlc3Npb24gYXMgdW5rbm93biBhcyBCaW5kaW5nRXhwcmVzc2lvblR1cGxlKSA6IFt0aXRsZVZhbHVlRXhwcmVzc2lvbl07XG5cdH0gZWxzZSB7XG5cdFx0cGFyYW1zID0gZ2V0VGl0bGVCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudChwYXRoLCBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uLCBmb3JtYXRPcHRpb25zKTtcblx0fVxuXHRjb25zdCBpc1RpdGxlRW1wdHkgPSBpc1RpdGxlRW1wdHlCb29sZWFuRXhwcmVzc2lvbihwYXJhbXNbMF0pO1xuXHRjb25zdCBmb3JjZUVtcHR5U3RyaW5nID0gc2hvdWxkRm9yY2VFbXB0eVN0cmluZyhwYXRoKTtcblx0Y29uc3QgZm9ybWF0dGVkRXhwcmVzc2lvbiA9IGZvcm1hdFJlc3VsdChwYXJhbXMsIGZvcm1hdHRlcik7XG5cdHRpdGxlVmFsdWVFeHByZXNzaW9uID0gaWZFbHNlKFxuXHRcdGlzVGl0bGVFbXB0eSxcblx0XHRpZkVsc2UoXG5cdFx0XHRvcihpc0hlYWRlckluZm9UaXRsZUVtcHR5ICYmIGlzT3JIYXNBY3RpdmVFbnRpdHkocGF0aCksIGZvcmNlRW1wdHlTdHJpbmcpLFxuXHRcdFx0XCJcIixcblx0XHRcdGlmRWxzZShcblx0XHRcdFx0aXNVbmRlZmluZWRFeHByZXNzaW9uKGNvbnN0YW50KGN1c3RvbUZvcm1hdHRlcikpLFxuXHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0b3IoVUkuSXNDcmVhdGVNb2RlLCBub3QoaXNPckhhc0FjdGl2ZUVudGl0eShwYXRoKSkpLFxuXHRcdFx0XHRcdGNyZWF0ZU1vZGVUaXRsZSxcblx0XHRcdFx0XHRwYXRoSW5Nb2RlbChcIlRfQU5OT1RBVElPTl9IRUxQRVJfREVGQVVMVF9IRUFERVJfVElUTEVfTk9fSEVBREVSX0lORk9cIiwgXCJzYXAuZmUuaTE4blwiKVxuXHRcdFx0XHQpLFxuXHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0bm90KGlzT3JIYXNBY3RpdmVFbnRpdHkocGF0aCkpLFxuXHRcdFx0XHRcdHZpZXdEYXRhPy5yZXNvdXJjZU1vZGVsLmdldFRleHQoXCJUX05FV19PQkpFQ1RcIiksXG5cdFx0XHRcdFx0dmlld0RhdGE/LnJlc291cmNlTW9kZWwuZ2V0VGV4dChcIlRfQU5OT1RBVElPTl9IRUxQRVJfREVGQVVMVF9IRUFERVJfVElUTEVfTk9fSEVBREVSX0lORk9cIilcblx0XHRcdFx0KVxuXHRcdFx0KVxuXHRcdCksXG5cdFx0Zm9ybWF0dGVkRXhwcmVzc2lvblxuXHQpO1xuXG5cdHJldHVybiBjb21waWxlRXhwcmVzc2lvbih0aXRsZVZhbHVlRXhwcmVzc2lvbik7XG59O1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUNPLE1BQU1BLHNCQUFzQixHQUFHLFVBQ3JDQywwQkFBNEQsRUFDNURDLGVBQTZELEVBQzFCO0lBQ25DLE9BQU9DLG9CQUFvQixDQUFDRiwwQkFBMEIsRUFBRSxhQUFhLEVBQUdHLFVBQVUsSUFBSztNQUN0RixJQUFJQyxhQUFhLEdBQUdELFVBQVU7TUFDOUIsSUFBSUEsVUFBVSxDQUFDRSxTQUFTLEtBQUtDLFNBQVMsRUFBRTtRQUN2QztRQUNBLE1BQU1DLHNCQUFzQixHQUFHQyxvQkFBb0IsQ0FBV1AsZUFBZSxFQUFFRSxVQUFVLENBQUNNLElBQUksQ0FBQztRQUMvRkwsYUFBYSxHQUFHTSx5QkFBeUIsQ0FBQ0gsc0JBQXNCLENBQUNJLFlBQVksRUFBR1IsVUFBVSxDQUFDO01BQzVGO01BQ0EsT0FBT0MsYUFBYTtJQUNyQixDQUFDLENBQUM7RUFDSCxDQUFDOztFQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBO0VBTUEsTUFBTVEscUJBQXFCLEdBQUlDLHVCQUFxRSxJQUEyQjtJQUM5SCxNQUFNQyxzQkFBc0IsR0FBR0QsdUJBQXVCLENBQUNGLFlBQVk7SUFDbkUsT0FBT0ksd0JBQXdCLENBQUNELHNCQUFzQixDQUFDLEdBQUdBLHNCQUFzQixDQUFDRSxPQUFPLEdBQUdGLHNCQUFzQjtFQUNsSCxDQUFDOztFQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLE1BQU1HLG1CQUFtQixHQUFJaEIsZUFBNkMsSUFBa0Q7SUFBQTtJQUMzSCxNQUFNaUIsU0FBUyw0QkFBSWpCLGVBQWUsQ0FBQ2tCLGVBQWUsb0ZBQWhDLHNCQUE0REMsV0FBVyxxRkFBdkUsdUJBQXlFQyxNQUFNLDJEQUEvRSx1QkFBaUZDLFNBQVM7SUFDNUcsTUFBTUMsU0FB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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { EntitySet, Property, PropertyAnnotationValue, PropertyPath } from "@sap-ux/vocabularies-types";
|
|
2
|
-
import type { DataFieldAbstractTypes, DataFieldTypes, HeaderInfoType } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
2
|
+
import type { ConnectedFields, DataFieldAbstractTypes, DataFieldTypes, HeaderInfoType } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
3
3
|
import { UIAnnotationTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
4
4
|
import valueFormatters from "sap/fe/core/formatters/ValueFormatter";
|
|
5
5
|
import { Draft, UI } from "sap/fe/core/helpers/BindingHelper";
|
|
@@ -33,14 +33,14 @@ type BindingExpressionTuple = [BindingToolkitExpression<string>, BindingToolkitE
|
|
|
33
33
|
|
|
34
34
|
export const formatValueRecursively = function (
|
|
35
35
|
bindingExpressionToEnhance: BindingToolkitExpression<string>,
|
|
36
|
-
fullContextPath: DataModelObjectPath
|
|
36
|
+
fullContextPath: DataModelObjectPath<Property | PropertyPath>
|
|
37
37
|
): BindingToolkitExpression<string> {
|
|
38
38
|
return transformRecursively(bindingExpressionToEnhance, "PathInModel", (expression) => {
|
|
39
39
|
let outExpression = expression;
|
|
40
40
|
if (expression.modelName === undefined) {
|
|
41
41
|
// In case of default model we then need to resolve the text arrangement property
|
|
42
|
-
const oPropertyDataModelPath = enhanceDataModelPath(fullContextPath, expression.path);
|
|
43
|
-
outExpression = formatWithTypeInformation(oPropertyDataModelPath.targetObject
|
|
42
|
+
const oPropertyDataModelPath = enhanceDataModelPath<Property>(fullContextPath, expression.path);
|
|
43
|
+
outExpression = formatWithTypeInformation(oPropertyDataModelPath.targetObject!, expression);
|
|
44
44
|
}
|
|
45
45
|
return outExpression;
|
|
46
46
|
});
|
|
@@ -52,8 +52,8 @@ export const formatValueRecursively = function (
|
|
|
52
52
|
* @param propertyDataModelObject The property data model object
|
|
53
53
|
* @returns The property
|
|
54
54
|
*/
|
|
55
|
-
const getPropertyDefinition = (propertyDataModelObject: DataModelObjectPath) => {
|
|
56
|
-
const propertyPathOrProperty = propertyDataModelObject.targetObject
|
|
55
|
+
const getPropertyDefinition = (propertyDataModelObject: DataModelObjectPath<Property | PropertyPath>): Property | undefined => {
|
|
56
|
+
const propertyPathOrProperty = propertyDataModelObject.targetObject;
|
|
57
57
|
return isPropertyPathExpression(propertyPathOrProperty) ? propertyPathOrProperty.$target : propertyPathOrProperty;
|
|
58
58
|
};
|
|
59
59
|
|
|
@@ -63,7 +63,7 @@ const getPropertyDefinition = (propertyDataModelObject: DataModelObjectPath) =>
|
|
|
63
63
|
* @param fullContextPath The full path to the context
|
|
64
64
|
* @returns The expression-binding string
|
|
65
65
|
*/
|
|
66
|
-
const isOrHasActiveEntity = (fullContextPath: DataModelObjectPath) => {
|
|
66
|
+
const isOrHasActiveEntity = (fullContextPath: DataModelObjectPath<unknown>): boolean | BindingToolkitExpression<boolean> => {
|
|
67
67
|
const draftRoot = (fullContextPath.targetEntitySet as EntitySet | undefined)?.annotations?.Common?.DraftRoot;
|
|
68
68
|
const draftNode = (fullContextPath.targetEntitySet as EntitySet | undefined)?.annotations?.Common?.DraftNode;
|
|
69
69
|
if (!!draftRoot || !!draftNode) {
|
|
@@ -92,7 +92,7 @@ const isTitleEmptyBooleanExpression = (titleValueExpression: BindingToolkitExpre
|
|
|
92
92
|
* @returns The expression-binding parameters
|
|
93
93
|
*/
|
|
94
94
|
const getTitleBindingWithTextArrangement = function (
|
|
95
|
-
propertyDataModelPath: DataModelObjectPath
|
|
95
|
+
propertyDataModelPath: DataModelObjectPath<Property>,
|
|
96
96
|
propertyBindingExpression: BindingToolkitExpression<string>,
|
|
97
97
|
formatOptions?: Partial<{ displayMode?: DisplayMode; splitTitleOnTwoLines?: boolean }>
|
|
98
98
|
): BindingExpressionTuple {
|
|
@@ -139,12 +139,12 @@ const getTitleBindingWithTextArrangement = function (
|
|
|
139
139
|
*/
|
|
140
140
|
const addTextArrangementToTitleBindingExpression = function (
|
|
141
141
|
bindingExpressionToEnhance: BindingToolkitExpression<string>,
|
|
142
|
-
path: DataModelObjectPath
|
|
142
|
+
path: DataModelObjectPath<Property>
|
|
143
143
|
): BindingToolkitExpression<string> {
|
|
144
144
|
return transformRecursively(bindingExpressionToEnhance, "PathInModel", (expression: PathInModelExpression<unknown>) => {
|
|
145
145
|
if (expression.modelName !== undefined) return expression;
|
|
146
146
|
// In case of default model we then need to resolve the text arrangement property
|
|
147
|
-
const propertyDataModelPath = enhanceDataModelPath(path, expression.path);
|
|
147
|
+
const propertyDataModelPath = enhanceDataModelPath<Property>(path, expression.path);
|
|
148
148
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
149
149
|
return getTitleBindingWithTextArrangement(propertyDataModelPath, expression) as unknown as BindingToolkitExpression<any>;
|
|
150
150
|
});
|
|
@@ -184,7 +184,7 @@ const getCreateModeTitle = function (viewData: ViewData, { TypeName: typeName }:
|
|
|
184
184
|
* @param path The meta path pointing to the property used for the title
|
|
185
185
|
* @returns The expression-binding string
|
|
186
186
|
*/
|
|
187
|
-
const shouldForceEmptyString = (path: DataModelObjectPath) => {
|
|
187
|
+
const shouldForceEmptyString = (path: DataModelObjectPath<Property | PropertyPath>): BindingToolkitExpression<boolean> => {
|
|
188
188
|
const propertyDefinition = getPropertyDefinition(path);
|
|
189
189
|
if (propertyDefinition && propertyDefinition.annotations?.Core?.Computed) {
|
|
190
190
|
return UI.IsInactive;
|
|
@@ -202,7 +202,7 @@ const shouldForceEmptyString = (path: DataModelObjectPath) => {
|
|
|
202
202
|
* @returns The expression-binding string
|
|
203
203
|
*/
|
|
204
204
|
const getTitleValueExpressionFromHeaderInfo = function (
|
|
205
|
-
fullContextPath: DataModelObjectPath
|
|
205
|
+
fullContextPath: DataModelObjectPath<Property>,
|
|
206
206
|
headerInfoTitle: DataFieldAbstractTypes,
|
|
207
207
|
getTextBindingExpression: Function
|
|
208
208
|
) {
|
|
@@ -220,7 +220,10 @@ const getTitleValueExpressionFromHeaderInfo = function (
|
|
|
220
220
|
headerInfoTitle.$Type === UIAnnotationTypes.DataFieldForAnnotation &&
|
|
221
221
|
headerInfoTitle.Target.$target?.$Type === UIAnnotationTypes.ConnectedFieldsType
|
|
222
222
|
) {
|
|
223
|
-
const connectedFieldsPath = enhanceDataModelPath(
|
|
223
|
+
const connectedFieldsPath = enhanceDataModelPath<ConnectedFields>(
|
|
224
|
+
fullContextPath,
|
|
225
|
+
"$Type/@UI.HeaderInfo/Title/Target/$AnnotationPath"
|
|
226
|
+
);
|
|
224
227
|
titleValueExpression = getLabelForConnectedFields(
|
|
225
228
|
connectedFieldsPath,
|
|
226
229
|
getTextBindingExpression,
|
|
@@ -244,7 +247,7 @@ const getTitleValueExpressionFromHeaderInfo = function (
|
|
|
244
247
|
* @returns The compiled expression-binding string
|
|
245
248
|
*/
|
|
246
249
|
export const getTitleBindingExpression = function (
|
|
247
|
-
path: DataModelObjectPath
|
|
250
|
+
path: DataModelObjectPath<Property>,
|
|
248
251
|
getTextBindingExpression: Function,
|
|
249
252
|
formatOptions?: Partial<{ displayMode?: DisplayMode; splitTitleOnTwoLines?: boolean }>,
|
|
250
253
|
headerInfo?: HeaderInfoType,
|
|
@@ -15,8 +15,32 @@ sap.ui.define([], function () {
|
|
|
15
15
|
return Array.isArray(potentialFunctionArray) && potentialFunctionArray.length > 0 && potentialFunctionArray.every(item => typeof item === "function");
|
|
16
16
|
}
|
|
17
17
|
_exports.isFunctionArray = isFunctionArray;
|
|
18
|
+
/**
|
|
19
|
+
* Checks whether the argument is an annotation of the given type.
|
|
20
|
+
* @param potentialAnnotationType The annotation to check
|
|
21
|
+
* @param typeName The type to check for
|
|
22
|
+
* @returns Whether the argument is an annotation of the given type
|
|
23
|
+
*/
|
|
18
24
|
function isAnnotationOfType(potentialAnnotationType, typeName) {
|
|
19
|
-
|
|
25
|
+
if (Array.isArray(typeName)) {
|
|
26
|
+
return typeName.includes(potentialAnnotationType === null || potentialAnnotationType === void 0 ? void 0 : potentialAnnotationType.$Type);
|
|
27
|
+
}
|
|
28
|
+
return (potentialAnnotationType === null || potentialAnnotationType === void 0 ? void 0 : potentialAnnotationType.$Type) === typeName;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Checks whether the argument is an annotation of the given term.
|
|
33
|
+
* @param potentialAnnotation The annotation to check
|
|
34
|
+
* @param termName The term to check for
|
|
35
|
+
* @returns Whether the argument is an annotation of the given term
|
|
36
|
+
*/
|
|
37
|
+
_exports.isAnnotationOfType = isAnnotationOfType;
|
|
38
|
+
function isAnnotationOfTerm(potentialAnnotation, termName) {
|
|
39
|
+
return (potentialAnnotation === null || potentialAnnotation === void 0 ? void 0 : potentialAnnotation.term) === termName;
|
|
40
|
+
}
|
|
41
|
+
_exports.isAnnotationOfTerm = isAnnotationOfTerm;
|
|
42
|
+
function isAnnotationTerm(potentialAnnotation) {
|
|
43
|
+
return potentialAnnotation.hasOwnProperty("term");
|
|
20
44
|
}
|
|
21
45
|
|
|
22
46
|
/**
|
|
@@ -25,7 +49,7 @@ sap.ui.define([], function () {
|
|
|
25
49
|
* @param serviceObject The object to be checked.
|
|
26
50
|
* @returns Whether the argument is a {@link ServiceObject}.
|
|
27
51
|
*/
|
|
28
|
-
_exports.
|
|
52
|
+
_exports.isAnnotationTerm = isAnnotationTerm;
|
|
29
53
|
function isServiceObject(serviceObject) {
|
|
30
54
|
return (serviceObject === null || serviceObject === void 0 ? void 0 : serviceObject.hasOwnProperty("_type")) ?? false;
|
|
31
55
|
}
|
|
@@ -178,4 +202,4 @@ sap.ui.define([], function () {
|
|
|
178
202
|
_exports.isPropertyPathExpression = isPropertyPathExpression;
|
|
179
203
|
return _exports;
|
|
180
204
|
}, false);
|
|
181
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0NvbnRleHQiLCJwb3RlbnRpYWxDb250ZXh0IiwiaXNBIiwiaXNGdW5jdGlvbkFycmF5IiwicG90ZW50aWFsRnVuY3Rpb25BcnJheSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImV2ZXJ5IiwiaXRlbSIsImlzQW5ub3RhdGlvbk9mVHlwZSIsInBvdGVudGlhbEFubm90YXRpb25UeXBlIiwidHlwZU5hbWUiLCIkVHlwZSIsImlzU2VydmljZU9iamVjdCIsInNlcnZpY2VPYmplY3QiLCJoYXNPd25Qcm9wZXJ0eSIsImlzQ29tcGxleFR5cGUiLCJfdHlwZSIsImlzVHlwZURlZmluaXRpb24iLCJpc0VudGl0eUNvbnRhaW5lciIsImlzRW50aXR5U2V0IiwiaXNTaW5nbGV0b24iLCJpc0VudGl0eVR5cGUiLCJpc1Byb3BlcnR5IiwiaXNOYXZpZ2F0aW9uUHJvcGVydHkiLCJpc1NpbmdsZU5hdmlnYXRpb25Qcm9wZXJ0eSIsImlzQ29sbGVjdGlvbiIsImlzTXVsdGlwbGVOYXZpZ2F0aW9uUHJvcGVydHkiLCJpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbiIsImV4cHJlc3Npb24iLCJ0eXBlIiwiaXNBbm5vdGF0aW9uUGF0aCIsImlzUHJvcGVydHlQYXRoRXhwcmVzc2lvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiVHlwZUd1YXJkcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG5cdEFubm90YXRpb25UZXJtLFxuXHRDb21wbGV4VHlwZSxcblx0RW50aXR5Q29udGFpbmVyLFxuXHRFbnRpdHlTZXQsXG5cdEVudGl0eVR5cGUsXG5cdE11bHRpcGxlTmF2aWdhdGlvblByb3BlcnR5LFxuXHROYXZpZ2F0aW9uUHJvcGVydHksXG5cdFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbixcblx0UHJvcGVydHksXG5cdFByb3BlcnR5UGF0aCxcblx0U2VydmljZU9iamVjdCxcblx0U2VydmljZU9iamVjdEFuZEFubm90YXRpb24sXG5cdFNpbmdsZU5hdmlnYXRpb25Qcm9wZXJ0eSxcblx0U2luZ2xldG9uLFxuXHRUeXBlRGVmaW5pdGlvblxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgQW5ub3RhdGlvblBhdGggfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvRWRtXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNDb250ZXh0KHBvdGVudGlhbENvbnRleHQ6IENvbnRleHQgfCB1bmtub3duIHwgdW5kZWZpbmVkKTogcG90ZW50aWFsQ29udGV4dCBpcyBDb250ZXh0IHtcblx0cmV0dXJuIChwb3RlbnRpYWxDb250ZXh0IGFzIENvbnRleHQpPy5pc0E/LjxDb250ZXh0PihcInNhcC51aS5tb2RlbC5Db250ZXh0XCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbkFycmF5KHBvdGVudGlhbEZ1bmN0aW9uQXJyYXk6IEZ1bmN0aW9uW10gfCB1bmtub3duKTogcG90ZW50aWFsRnVuY3Rpb25BcnJheSBpcyBGdW5jdGlvbltdIHtcblx0cmV0dXJuIChcblx0XHRBcnJheS5pc0FycmF5KHBvdGVudGlhbEZ1bmN0aW9uQXJyYXkpICYmXG5cdFx0cG90ZW50aWFsRnVuY3Rpb25BcnJheS5sZW5ndGggPiAwICYmXG5cdFx0cG90ZW50aWFsRnVuY3Rpb25BcnJheS5ldmVyeSgoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gPT09IFwiZnVuY3Rpb25cIilcblx0KTtcbn1cblxudHlwZSBBbm5vdGF0aW9uVHlwZSA9IHtcblx0JFR5cGU6IHN0cmluZztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Fubm90YXRpb25PZlR5cGU8VCBleHRlbmRzIG9iamVjdCAmIEFubm90YXRpb25UeXBlPihcblx0cG90ZW50aWFsQW5ub3RhdGlvblR5cGU6IEFubm90YXRpb25UZXJtPGFueT4sXG5cdHR5cGVOYW1lOiBUW1wiJFR5cGVcIl1cbik6IHBvdGVudGlhbEFubm90YXRpb25UeXBlIGlzIEFubm90YXRpb25UZXJtPFQ+IHtcblx0cmV0dXJuIHBvdGVudGlhbEFubm90YXRpb25UeXBlLiRUeXBlID09PSB0eXBlTmFtZTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgU2VydmljZU9iamVjdH0uXG4gKlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgU2VydmljZU9iamVjdH0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NlcnZpY2VPYmplY3Qoc2VydmljZU9iamVjdDogU2VydmljZU9iamVjdEFuZEFubm90YXRpb24gfCB1bmRlZmluZWQpOiBzZXJ2aWNlT2JqZWN0IGlzIFNlcnZpY2VPYmplY3Qge1xuXHRyZXR1cm4gc2VydmljZU9iamVjdD8uaGFzT3duUHJvcGVydHkoXCJfdHlwZVwiKSA/PyBmYWxzZTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgQ29tcGxleFR5cGV9LlxuICpcbiAqIEBwYXJhbSBzZXJ2aWNlT2JqZWN0IFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIENvbXBsZXhUeXBlfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tcGxleFR5cGUoc2VydmljZU9iamVjdDogdW5rbm93bik6IHNlcnZpY2VPYmplY3QgaXMgQ29tcGxleFR5cGUge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgQ29tcGxleFR5cGUpPy5fdHlwZSA9PT0gXCJDb21wbGV4VHlwZVwiO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBUeXBlRGVmaW5pdGlvbn0uXG4gKlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgVHlwZURlZmluaXRpb259LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUeXBlRGVmaW5pdGlvbihzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBUeXBlRGVmaW5pdGlvbiB7XG5cdHJldHVybiAoc2VydmljZU9iamVjdCBhcyBUeXBlRGVmaW5pdGlvbik/Ll90eXBlID09PSBcIlR5cGVEZWZpbml0aW9uXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIHtAbGluayBFbnRpdHlDb250YWluZXJ9LlxuICpcbiAqIEBwYXJhbSBzZXJ2aWNlT2JqZWN0IFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIHtAbGluayBFbnRpdHlDb250YWluZXJ9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbnRpdHlDb250YWluZXIoc2VydmljZU9iamVjdDogdW5rbm93bik6IHNlcnZpY2VPYmplY3QgaXMgRW50aXR5Q29udGFpbmVyIHtcblx0cmV0dXJuIChzZXJ2aWNlT2JqZWN0IGFzIEVudGl0eUNvbnRhaW5lcik/Ll90eXBlID09PSBcIkVudGl0eUNvbnRhaW5lclwiO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhbiB7QGxpbmsgRW50aXR5U2V0fS5cbiAqXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhbiB7QGxpbmsgRW50aXR5U2V0fS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRW50aXR5U2V0KHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIEVudGl0eVNldCB7XG5cdHJldHVybiAoc2VydmljZU9iamVjdCBhcyBFbnRpdHlTZXQpPy5fdHlwZSA9PT0gXCJFbnRpdHlTZXRcIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgU2luZ2xldG9ufS5cbiAqXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBTaW5nbGV0b259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NpbmdsZXRvbihzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBTaW5nbGV0b24ge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgU2luZ2xldG9uKT8uX3R5cGUgPT09IFwiU2luZ2xldG9uXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIHtAbGluayBFbnRpdHlUeXBlfS5cbiAqXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhbiB7QGxpbmsgRW50aXR5VHlwZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRW50aXR5VHlwZShzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBFbnRpdHlUeXBlIHtcblx0cmV0dXJuIChzZXJ2aWNlT2JqZWN0IGFzIEVudGl0eVR5cGUpPy5fdHlwZSA9PT0gXCJFbnRpdHlUeXBlXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFByb3BlcnR5fS5cbiAqXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBQcm9wZXJ0eX0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb3BlcnR5KHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIFByb3BlcnR5IHtcblx0cmV0dXJuIChzZXJ2aWNlT2JqZWN0IGFzIFByb3BlcnR5KT8uX3R5cGUgPT09IFwiUHJvcGVydHlcIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgTmF2aWdhdGlvblByb3BlcnR5fS5cbiAqXG4gKiBIaW50OiBUaGVyZSBhcmUgYWxzbyB0aGUgbW9yZSBzcGVjaWZpYyBmdW5jdGlvbnMge0BsaW5rIGlzU2luZ2xlTmF2aWdhdGlvblByb3BlcnR5fSBhbmQge0BsaW5rIGlzTXVsdGlwbGVOYXZpZ2F0aW9uUHJvcGVydHl9LiBUaGVzZSBjYW4gYmVcbiAqIHVzZWQgdG8gY2hlY2sgZm9yIHRvLW9uZSBhbmQgdG8tbWFueSBuYXZpZ2F0aW9uIHByb3BlcnRpZXMsIHJlc3BlY3RpdmVseS5cbiAqXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBOYXZpZ2F0aW9uUHJvcGVydHl9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNOYXZpZ2F0aW9uUHJvcGVydHkoc2VydmljZU9iamVjdDogdW5rbm93bik6IHNlcnZpY2VPYmplY3QgaXMgTmF2aWdhdGlvblByb3BlcnR5IHtcblx0cmV0dXJuIChzZXJ2aWNlT2JqZWN0IGFzIE5hdmlnYXRpb25Qcm9wZXJ0eSk/Ll90eXBlID09PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBTaW5nbGVOYXZpZ2F0aW9uUHJvcGVydHl9LlxuICpcbiAqIEBwYXJhbSBzZXJ2aWNlT2JqZWN0IFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFNpbmdsZU5hdmlnYXRpb25Qcm9wZXJ0eX0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NpbmdsZU5hdmlnYXRpb25Qcm9wZXJ0eShzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBTaW5nbGVOYXZpZ2F0aW9uUHJvcGVydHkge1xuXHRyZXR1cm4gaXNOYXZpZ2F0aW9uUHJvcGVydHkoc2VydmljZU9iamVjdCkgJiYgIXNlcnZpY2VPYmplY3QuaXNDb2xsZWN0aW9uO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBNdWx0aXBsZU5hdmlnYXRpb25Qcm9wZXJ0eX0uXG4gKlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgTXVsdGlwbGVOYXZpZ2F0aW9uUHJvcGVydHl9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNNdWx0aXBsZU5hdmlnYXRpb25Qcm9wZXJ0eShzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBNdWx0aXBsZU5hdmlnYXRpb25Qcm9wZXJ0eSB7XG5cdHJldHVybiBpc05hdmlnYXRpb25Qcm9wZXJ0eShzZXJ2aWNlT2JqZWN0KSAmJiBzZXJ2aWNlT2JqZWN0LmlzQ29sbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgUGF0aEFubm90YXRpb25FeHByZXNzaW9ufS5cbiAqXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb259LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248VD4oZXhwcmVzc2lvbjogdW5rbm93bik6IGV4cHJlc3Npb24gaXMgUGF0aEFubm90YXRpb25FeHByZXNzaW9uPFQ+IHtcblx0cmV0dXJuIChleHByZXNzaW9uIGFzIFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbjxUPik/LnR5cGUgPT09IFwiUGF0aFwiO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBBbm5vdGF0aW9uUGF0aEV4cHJlc3Npb259LlxuICpcbiAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIEFubm90YXRpb25QYXRoRXhwcmVzc2lvbn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Fubm90YXRpb25QYXRoPFQ+KGV4cHJlc3Npb246IHVua25vd24pOiBleHByZXNzaW9uIGlzIEFubm90YXRpb25QYXRoPFQ+IHtcblx0cmV0dXJuIChleHByZXNzaW9uIGFzIEFubm90YXRpb25QYXRoPFQ+KT8udHlwZSA9PT0gXCJBbm5vdGF0aW9uUGF0aFwiO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBQcm9wZXJ0eVBhdGh9LlxuICpcbiAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFByb3BlcnR5UGF0aH0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb3BlcnR5UGF0aEV4cHJlc3Npb24oZXhwcmVzc2lvbjogdW5rbm93bik6IGV4cHJlc3Npb24gaXMgUHJvcGVydHlQYXRoIHtcblx0cmV0dXJuIChleHByZXNzaW9uIGFzIFByb3BlcnR5UGF0aCk/LnR5cGUgPT09IFwiUHJvcGVydHlQYXRoXCI7XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7O0VBb0JPLFNBQVNBLFNBQVMsQ0FBQ0MsZ0JBQStDLEVBQStCO0lBQUE7SUFDdkcsT0FBUUEsZ0JBQWdCLGFBQWhCQSxnQkFBZ0IsK0JBQWpCLFFBQUNBLGdCQUFnQixFQUFjQyxHQUFHLHlDQUFsQyxnQkFBOEMsc0JBQXNCLENBQUM7RUFDN0U7RUFBQztFQUVNLFNBQVNDLGVBQWUsQ0FBQ0Msc0JBQTRDLEVBQXdDO0lBQ25ILE9BQ0NDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixzQkFBc0IsQ0FBQyxJQUNyQ0Esc0JBQXNCLENBQUNHLE1BQU0sR0FBRyxDQUFDLElBQ2pDSCxzQkFBc0IsQ0FBQ0ksS0FBSyxDQUFFQyxJQUFJLElBQUssT0FBT0EsSUFBSSxLQUFLLFVBQVUsQ0FBQztFQUVwRTtFQUFDO0VBTU0sU0FBU0Msa0JBQWtCLENBQ2pDQyx1QkFBNEMsRUFDNUNDLFFBQW9CLEVBQzJCO0lBQy9DLE9BQU9ELHVCQUF1QixDQUFDRSxLQUFLLEtBQUtELFFBQVE7RUFDbEQ7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTEE7RUFNTyxTQUFTRSxlQUFlLENBQUNDLGFBQXFELEVBQWtDO0lBQ3RILE9BQU8sQ0FBQUEsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUVDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSSxLQUFLO0VBQ3ZEOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBO0VBTU8sU0FBU0MsYUFBYSxDQUFDRixhQUFzQixFQUFnQztJQUNuRixPQUFPLENBQUNBLGFBQWEsYUFBYkEsYUFBYSx1QkFBYkEsYUFBYSxDQUFrQkcsS0FBSyxNQUFLLGFBQWE7RUFDL0Q7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTEE7RUFNTyxTQUFTQyxnQkFBZ0IsQ0FBQ0osYUFBc0IsRUFBbUM7SUFDekYsT0FBTyxDQUFDQSxhQUFhLGFBQWJBLGFBQWEsdUJBQWJBLGFBQWEsQ0FBcUJHLEtBQUssTUFBSyxnQkFBZ0I7RUFDckU7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTEE7RUFNTyxTQUFTRSxpQkFBaUIsQ0FBQ0wsYUFBc0IsRUFBb0M7SUFDM0YsT0FBTyxDQUFDQSxhQUFhLGFBQWJBLGFBQWEsdUJBQWJBLGFBQWEsQ0FBc0JHLEtBQUssTUFBSyxpQkFBaUI7RUFDdkU7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTEE7RUFNTyxTQUFTRyxXQUFXLENBQUNOLGFBQXNCLEVBQThCO0lBQy9FLE9BQU8sQ0FBQ0EsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQWdCRyxLQUFLLE1BQUssV0FBVztFQUMzRDs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFMQTtFQU1PLFNBQVNJLFdBQVcsQ0FBQ1AsYUFBc0IsRUFBOEI7SUFDL0UsT0FBTyxDQUFDQSxhQUFhLGFBQWJBLGFBQWEsdUJBQWJBLGFBQWEsQ0FBZ0JHLEtBQUssTUFBSyxXQUFXO0VBQzNEOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBO0VBTU8sU0FBU0ssWUFBWSxDQUFDUixhQUFzQixFQUErQjtJQUNqRixPQUFPLENBQUNBLGFBQWEsYUFBYkEsYUFBYSx1QkFBYkEsYUFBYSxDQUFpQkcsS0FBSyxNQUFLLFlBQVk7RUFDN0Q7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTEE7RUFNTyxTQUFTTSxVQUFVLENBQUNULGFBQXNCLEVBQTZCO0lBQzdFLE9BQU8sQ0FBQ0EsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQWVHLEtBQUssTUFBSyxVQUFVO0VBQ3pEOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVJBO0VBU08sU0FBU08sb0JBQW9CLENBQUNWLGFBQXNCLEVBQXVDO0lBQ2pHLE9BQU8sQ0FBQ0EsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQXlCRyxLQUFLLE1BQUssb0JBQW9CO0VBQzdFOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBO0VBTU8sU0FBU1EsMEJBQTBCLENBQUNYLGFBQXNCLEVBQTZDO0lBQzdHLE9BQU9VLG9CQUFvQixDQUFDVixhQUFhLENBQUMsSUFBSSxDQUFDQSxhQUFhLENBQUNZLFlBQVk7RUFDMUU7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTEE7RUFNTyxTQUFTQyw0QkFBNEIsQ0FBQ2IsYUFBc0IsRUFBK0M7SUFDakgsT0FBT1Usb0JBQW9CLENBQUNWLGFBQWEsQ0FBQyxJQUFJQSxhQUFhLENBQUNZLFlBQVk7RUFDekU7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTEE7RUFNTyxTQUFTRSwwQkFBMEIsQ0FBSUMsVUFBbUIsRUFBNkM7SUFDN0csT0FBTyxDQUFDQSxVQUFVLGFBQVZBLFVBQVUsdUJBQVZBLFVBQVUsQ0FBa0NDLElBQUksTUFBSyxNQUFNO0VBQ3BFOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBO0VBTU8sU0FBU0MsZ0JBQWdCLENBQUlGLFVBQW1CLEVBQW1DO0lBQ3pGLE9BQU8sQ0FBQ0EsVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQXdCQyxJQUFJLE1BQUssZ0JBQWdCO0VBQ3BFOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBO0VBTU8sU0FBU0Usd0JBQXdCLENBQUNILFVBQW1CLEVBQThCO0lBQ3pGLE9BQU8sQ0FBQ0EsVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQW1CQyxJQUFJLE1BQUssY0FBYztFQUM3RDtFQUFDO0VBQUE7QUFBQSJ9
|
|
205
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0NvbnRleHQiLCJwb3RlbnRpYWxDb250ZXh0IiwiaXNBIiwiaXNGdW5jdGlvbkFycmF5IiwicG90ZW50aWFsRnVuY3Rpb25BcnJheSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImV2ZXJ5IiwiaXRlbSIsImlzQW5ub3RhdGlvbk9mVHlwZSIsInBvdGVudGlhbEFubm90YXRpb25UeXBlIiwidHlwZU5hbWUiLCJpbmNsdWRlcyIsIiRUeXBlIiwiaXNBbm5vdGF0aW9uT2ZUZXJtIiwicG90ZW50aWFsQW5ub3RhdGlvbiIsInRlcm1OYW1lIiwidGVybSIsImlzQW5ub3RhdGlvblRlcm0iLCJoYXNPd25Qcm9wZXJ0eSIsImlzU2VydmljZU9iamVjdCIsInNlcnZpY2VPYmplY3QiLCJpc0NvbXBsZXhUeXBlIiwiX3R5cGUiLCJpc1R5cGVEZWZpbml0aW9uIiwiaXNFbnRpdHlDb250YWluZXIiLCJpc0VudGl0eVNldCIsImlzU2luZ2xldG9uIiwiaXNFbnRpdHlUeXBlIiwiaXNQcm9wZXJ0eSIsImlzTmF2aWdhdGlvblByb3BlcnR5IiwiaXNTaW5nbGVOYXZpZ2F0aW9uUHJvcGVydHkiLCJpc0NvbGxlY3Rpb24iLCJpc011bHRpcGxlTmF2aWdhdGlvblByb3BlcnR5IiwiaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24iLCJleHByZXNzaW9uIiwidHlwZSIsImlzQW5ub3RhdGlvblBhdGgiLCJpc1Byb3BlcnR5UGF0aEV4cHJlc3Npb24iXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlR5cGVHdWFyZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuXHRBbm5vdGF0aW9uVGVybSxcblx0Q29tcGxleFR5cGUsXG5cdEVudGl0eUNvbnRhaW5lcixcblx0RW50aXR5U2V0LFxuXHRFbnRpdHlUeXBlLFxuXHRNdWx0aXBsZU5hdmlnYXRpb25Qcm9wZXJ0eSxcblx0TmF2aWdhdGlvblByb3BlcnR5LFxuXHRQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24sXG5cdFByb3BlcnR5LFxuXHRQcm9wZXJ0eVBhdGgsXG5cdFNlcnZpY2VPYmplY3QsXG5cdFNpbmdsZU5hdmlnYXRpb25Qcm9wZXJ0eSxcblx0U2luZ2xldG9uLFxuXHRUeXBlRGVmaW5pdGlvblxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgQW5ub3RhdGlvblBhdGggfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvRWRtXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNDb250ZXh0KHBvdGVudGlhbENvbnRleHQ6IENvbnRleHQgfCB1bmtub3duIHwgdW5kZWZpbmVkKTogcG90ZW50aWFsQ29udGV4dCBpcyBDb250ZXh0IHtcblx0cmV0dXJuIChwb3RlbnRpYWxDb250ZXh0IGFzIENvbnRleHQpPy5pc0E/LjxDb250ZXh0PihcInNhcC51aS5tb2RlbC5Db250ZXh0XCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbkFycmF5KHBvdGVudGlhbEZ1bmN0aW9uQXJyYXk6IEZ1bmN0aW9uW10gfCB1bmtub3duKTogcG90ZW50aWFsRnVuY3Rpb25BcnJheSBpcyBGdW5jdGlvbltdIHtcblx0cmV0dXJuIChcblx0XHRBcnJheS5pc0FycmF5KHBvdGVudGlhbEZ1bmN0aW9uQXJyYXkpICYmXG5cdFx0cG90ZW50aWFsRnVuY3Rpb25BcnJheS5sZW5ndGggPiAwICYmXG5cdFx0cG90ZW50aWFsRnVuY3Rpb25BcnJheS5ldmVyeSgoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gPT09IFwiZnVuY3Rpb25cIilcblx0KTtcbn1cblxudHlwZSBBbm5vdGF0aW9uVHlwZSA9IHtcblx0JFR5cGU/OiBzdHJpbmc7XG5cdGZ1bGx5UXVhbGlmaWVkTmFtZT86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBfQW5ub3RhdGlvblRlcm0gPSB7XG5cdHRlcm06IHN0cmluZztcblx0cXVhbGlmaWVyPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4gYW5ub3RhdGlvbiBvZiB0aGUgZ2l2ZW4gdHlwZS5cbiAqIEBwYXJhbSBwb3RlbnRpYWxBbm5vdGF0aW9uVHlwZSBUaGUgYW5ub3RhdGlvbiB0byBjaGVja1xuICogQHBhcmFtIHR5cGVOYW1lIFRoZSB0eXBlIHRvIGNoZWNrIGZvclxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4gYW5ub3RhdGlvbiBvZiB0aGUgZ2l2ZW4gdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBbm5vdGF0aW9uT2ZUeXBlPFQgZXh0ZW5kcyBvYmplY3QgJiBBbm5vdGF0aW9uVHlwZT4oXG5cdHBvdGVudGlhbEFubm90YXRpb25UeXBlOiB1bmtub3duLFxuXHR0eXBlTmFtZTogVFtcIiRUeXBlXCJdIHwgVFtcIiRUeXBlXCJdW11cbik6IHBvdGVudGlhbEFubm90YXRpb25UeXBlIGlzIFQge1xuXHRpZiAoQXJyYXkuaXNBcnJheSh0eXBlTmFtZSkpIHtcblx0XHRyZXR1cm4gdHlwZU5hbWUuaW5jbHVkZXMoKHBvdGVudGlhbEFubm90YXRpb25UeXBlIGFzIEFubm90YXRpb25UeXBlKT8uJFR5cGUpO1xuXHR9XG5cdHJldHVybiAocG90ZW50aWFsQW5ub3RhdGlvblR5cGUgYXMgQW5ub3RhdGlvblR5cGUpPy4kVHlwZSA9PT0gdHlwZU5hbWU7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIGFubm90YXRpb24gb2YgdGhlIGdpdmVuIHRlcm0uXG4gKiBAcGFyYW0gcG90ZW50aWFsQW5ub3RhdGlvbiBUaGUgYW5ub3RhdGlvbiB0byBjaGVja1xuICogQHBhcmFtIHRlcm1OYW1lIFRoZSB0ZXJtIHRvIGNoZWNrIGZvclxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4gYW5ub3RhdGlvbiBvZiB0aGUgZ2l2ZW4gdGVybVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBbm5vdGF0aW9uT2ZUZXJtPFQgZXh0ZW5kcyBvYmplY3QgJiBfQW5ub3RhdGlvblRlcm0+KFxuXHRwb3RlbnRpYWxBbm5vdGF0aW9uOiB1bmtub3duLFxuXHR0ZXJtTmFtZTogVFtcInRlcm1cIl1cbik6IHBvdGVudGlhbEFubm90YXRpb24gaXMgQW5ub3RhdGlvblRlcm08VD4ge1xuXHRyZXR1cm4gKHBvdGVudGlhbEFubm90YXRpb24gYXMgX0Fubm90YXRpb25UZXJtKT8udGVybSA9PT0gdGVybU5hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Fubm90YXRpb25UZXJtKHBvdGVudGlhbEFubm90YXRpb246IHVua25vd24pOiBwb3RlbnRpYWxBbm5vdGF0aW9uIGlzIF9Bbm5vdGF0aW9uVGVybSB7XG5cdHJldHVybiAocG90ZW50aWFsQW5ub3RhdGlvbiBhcyBfQW5ub3RhdGlvblRlcm0pLmhhc093blByb3BlcnR5KFwidGVybVwiKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgU2VydmljZU9iamVjdH0uXG4gKlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgU2VydmljZU9iamVjdH0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NlcnZpY2VPYmplY3Qoc2VydmljZU9iamVjdDogdW5rbm93biB8IHVuZGVmaW5lZCk6IHNlcnZpY2VPYmplY3QgaXMgU2VydmljZU9iamVjdCB7XG5cdHJldHVybiBzZXJ2aWNlT2JqZWN0Py5oYXNPd25Qcm9wZXJ0eShcIl90eXBlXCIpID8/IGZhbHNlO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBDb21wbGV4VHlwZX0uXG4gKlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgQ29tcGxleFR5cGV9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wbGV4VHlwZShzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBDb21wbGV4VHlwZSB7XG5cdHJldHVybiAoc2VydmljZU9iamVjdCBhcyBDb21wbGV4VHlwZSk/Ll90eXBlID09PSBcIkNvbXBsZXhUeXBlXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFR5cGVEZWZpbml0aW9ufS5cbiAqXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBUeXBlRGVmaW5pdGlvbn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1R5cGVEZWZpbml0aW9uKHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIFR5cGVEZWZpbml0aW9uIHtcblx0cmV0dXJuIChzZXJ2aWNlT2JqZWN0IGFzIFR5cGVEZWZpbml0aW9uKT8uX3R5cGUgPT09IFwiVHlwZURlZmluaXRpb25cIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4ge0BsaW5rIEVudGl0eUNvbnRhaW5lcn0uXG4gKlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4ge0BsaW5rIEVudGl0eUNvbnRhaW5lcn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0VudGl0eUNvbnRhaW5lcihzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBFbnRpdHlDb250YWluZXIge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgRW50aXR5Q29udGFpbmVyKT8uX3R5cGUgPT09IFwiRW50aXR5Q29udGFpbmVyXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIHtAbGluayBFbnRpdHlTZXR9LlxuICpcbiAqIEBwYXJhbSBzZXJ2aWNlT2JqZWN0IFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIHtAbGluayBFbnRpdHlTZXR9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbnRpdHlTZXQoc2VydmljZU9iamVjdDogdW5rbm93bik6IHNlcnZpY2VPYmplY3QgaXMgRW50aXR5U2V0IHtcblx0cmV0dXJuIChzZXJ2aWNlT2JqZWN0IGFzIEVudGl0eVNldCk/Ll90eXBlID09PSBcIkVudGl0eVNldFwiO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBTaW5nbGV0b259LlxuICpcbiAqIEBwYXJhbSBzZXJ2aWNlT2JqZWN0IFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFNpbmdsZXRvbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2luZ2xldG9uKHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIFNpbmdsZXRvbiB7XG5cdHJldHVybiAoc2VydmljZU9iamVjdCBhcyBTaW5nbGV0b24pPy5fdHlwZSA9PT0gXCJTaW5nbGV0b25cIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4ge0BsaW5rIEVudGl0eVR5cGV9LlxuICpcbiAqIEBwYXJhbSBzZXJ2aWNlT2JqZWN0IFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIHtAbGluayBFbnRpdHlUeXBlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbnRpdHlUeXBlKHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIEVudGl0eVR5cGUge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgRW50aXR5VHlwZSk/Ll90eXBlID09PSBcIkVudGl0eVR5cGVcIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgUHJvcGVydHl9LlxuICpcbiAqIEBwYXJhbSBzZXJ2aWNlT2JqZWN0IFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFByb3BlcnR5fS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvcGVydHkoc2VydmljZU9iamVjdDogdW5rbm93bik6IHNlcnZpY2VPYmplY3QgaXMgUHJvcGVydHkge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgUHJvcGVydHkpPy5fdHlwZSA9PT0gXCJQcm9wZXJ0eVwiO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBOYXZpZ2F0aW9uUHJvcGVydHl9LlxuICpcbiAqIEhpbnQ6IFRoZXJlIGFyZSBhbHNvIHRoZSBtb3JlIHNwZWNpZmljIGZ1bmN0aW9ucyB7QGxpbmsgaXNTaW5nbGVOYXZpZ2F0aW9uUHJvcGVydHl9IGFuZCB7QGxpbmsgaXNNdWx0aXBsZU5hdmlnYXRpb25Qcm9wZXJ0eX0uIFRoZXNlIGNhbiBiZVxuICogdXNlZCB0byBjaGVjayBmb3IgdG8tb25lIGFuZCB0by1tYW55IG5hdmlnYXRpb24gcHJvcGVydGllcywgcmVzcGVjdGl2ZWx5LlxuICpcbiAqIEBwYXJhbSBzZXJ2aWNlT2JqZWN0IFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIE5hdmlnYXRpb25Qcm9wZXJ0eX0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc05hdmlnYXRpb25Qcm9wZXJ0eShzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBOYXZpZ2F0aW9uUHJvcGVydHkge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgTmF2aWdhdGlvblByb3BlcnR5KT8uX3R5cGUgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFNpbmdsZU5hdmlnYXRpb25Qcm9wZXJ0eX0uXG4gKlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgU2luZ2xlTmF2aWdhdGlvblByb3BlcnR5fS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2luZ2xlTmF2aWdhdGlvblByb3BlcnR5KHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIFNpbmdsZU5hdmlnYXRpb25Qcm9wZXJ0eSB7XG5cdHJldHVybiBpc05hdmlnYXRpb25Qcm9wZXJ0eShzZXJ2aWNlT2JqZWN0KSAmJiAhc2VydmljZU9iamVjdC5pc0NvbGxlY3Rpb247XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIE11bHRpcGxlTmF2aWdhdGlvblByb3BlcnR5fS5cbiAqXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBNdWx0aXBsZU5hdmlnYXRpb25Qcm9wZXJ0eX0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc011bHRpcGxlTmF2aWdhdGlvblByb3BlcnR5KHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIE11bHRpcGxlTmF2aWdhdGlvblByb3BlcnR5IHtcblx0cmV0dXJuIGlzTmF2aWdhdGlvblByb3BlcnR5KHNlcnZpY2VPYmplY3QpICYmIHNlcnZpY2VPYmplY3QuaXNDb2xsZWN0aW9uO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb259LlxuICpcbiAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbjxUPihleHByZXNzaW9uOiB1bmtub3duKTogZXhwcmVzc2lvbiBpcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248VD4ge1xuXHRyZXR1cm4gKGV4cHJlc3Npb24gYXMgUGF0aEFubm90YXRpb25FeHByZXNzaW9uPFQ+KT8udHlwZSA9PT0gXCJQYXRoXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIEFubm90YXRpb25QYXRoRXhwcmVzc2lvbn0uXG4gKlxuICogQHBhcmFtIGV4cHJlc3Npb24gVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgQW5ub3RhdGlvblBhdGhFeHByZXNzaW9ufS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQW5ub3RhdGlvblBhdGg8VD4oZXhwcmVzc2lvbjogdW5rbm93bik6IGV4cHJlc3Npb24gaXMgQW5ub3RhdGlvblBhdGg8VD4ge1xuXHRyZXR1cm4gKGV4cHJlc3Npb24gYXMgQW5ub3RhdGlvblBhdGg8VD4pPy50eXBlID09PSBcIkFubm90YXRpb25QYXRoXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFByb3BlcnR5UGF0aH0uXG4gKlxuICogQHBhcmFtIGV4cHJlc3Npb24gVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgUHJvcGVydHlQYXRofS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvcGVydHlQYXRoRXhwcmVzc2lvbihleHByZXNzaW9uOiB1bmtub3duKTogZXhwcmVzc2lvbiBpcyBQcm9wZXJ0eVBhdGgge1xuXHRyZXR1cm4gKGV4cHJlc3Npb24gYXMgUHJvcGVydHlQYXRoKT8udHlwZSA9PT0gXCJQcm9wZXJ0eVBhdGhcIjtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7RUFtQk8sU0FBU0EsU0FBUyxDQUFDQyxnQkFBK0MsRUFBK0I7SUFBQTtJQUN2RyxPQUFRQSxnQkFBZ0IsYUFBaEJBLGdCQUFnQiwrQkFBakIsUUFBQ0EsZ0JBQWdCLEVBQWNDLEdBQUcseUNBQWxDLGdCQUE4QyxzQkFBc0IsQ0FBQztFQUM3RTtFQUFDO0VBRU0sU0FBU0MsZUFBZSxDQUFDQyxzQkFBNEMsRUFBd0M7SUFDbkgsT0FDQ0MsS0FBSyxDQUFDQyxPQUFPLENBQUNGLHNCQUFzQixDQUFDLElBQ3JDQSxzQkFBc0IsQ0FBQ0csTUFBTSxHQUFHLENBQUMsSUFDakNILHNCQUFzQixDQUFDSSxLQUFLLENBQUVDLElBQUksSUFBSyxPQUFPQSxJQUFJLEtBQUssVUFBVSxDQUFDO0VBRXBFO0VBQUM7RUFXRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDTyxTQUFTQyxrQkFBa0IsQ0FDakNDLHVCQUFnQyxFQUNoQ0MsUUFBbUMsRUFDSjtJQUMvQixJQUFJUCxLQUFLLENBQUNDLE9BQU8sQ0FBQ00sUUFBUSxDQUFDLEVBQUU7TUFDNUIsT0FBT0Es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
|
|
@@ -10,7 +10,6 @@ import type {
|
|
|
10
10
|
Property,
|
|
11
11
|
PropertyPath,
|
|
12
12
|
ServiceObject,
|
|
13
|
-
ServiceObjectAndAnnotation,
|
|
14
13
|
SingleNavigationProperty,
|
|
15
14
|
Singleton,
|
|
16
15
|
TypeDefinition
|
|
@@ -31,14 +30,45 @@ export function isFunctionArray(potentialFunctionArray: Function[] | unknown): p
|
|
|
31
30
|
}
|
|
32
31
|
|
|
33
32
|
type AnnotationType = {
|
|
34
|
-
$Type
|
|
33
|
+
$Type?: string;
|
|
34
|
+
fullyQualifiedName?: string;
|
|
35
|
+
};
|
|
36
|
+
export type _AnnotationTerm = {
|
|
37
|
+
term: string;
|
|
38
|
+
qualifier?: string;
|
|
35
39
|
};
|
|
36
40
|
|
|
41
|
+
/**
|
|
42
|
+
* Checks whether the argument is an annotation of the given type.
|
|
43
|
+
* @param potentialAnnotationType The annotation to check
|
|
44
|
+
* @param typeName The type to check for
|
|
45
|
+
* @returns Whether the argument is an annotation of the given type
|
|
46
|
+
*/
|
|
37
47
|
export function isAnnotationOfType<T extends object & AnnotationType>(
|
|
38
|
-
potentialAnnotationType:
|
|
39
|
-
typeName: T["$Type"]
|
|
40
|
-
): potentialAnnotationType is
|
|
41
|
-
|
|
48
|
+
potentialAnnotationType: unknown,
|
|
49
|
+
typeName: T["$Type"] | T["$Type"][]
|
|
50
|
+
): potentialAnnotationType is T {
|
|
51
|
+
if (Array.isArray(typeName)) {
|
|
52
|
+
return typeName.includes((potentialAnnotationType as AnnotationType)?.$Type);
|
|
53
|
+
}
|
|
54
|
+
return (potentialAnnotationType as AnnotationType)?.$Type === typeName;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Checks whether the argument is an annotation of the given term.
|
|
59
|
+
* @param potentialAnnotation The annotation to check
|
|
60
|
+
* @param termName The term to check for
|
|
61
|
+
* @returns Whether the argument is an annotation of the given term
|
|
62
|
+
*/
|
|
63
|
+
export function isAnnotationOfTerm<T extends object & _AnnotationTerm>(
|
|
64
|
+
potentialAnnotation: unknown,
|
|
65
|
+
termName: T["term"]
|
|
66
|
+
): potentialAnnotation is AnnotationTerm<T> {
|
|
67
|
+
return (potentialAnnotation as _AnnotationTerm)?.term === termName;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export function isAnnotationTerm(potentialAnnotation: unknown): potentialAnnotation is _AnnotationTerm {
|
|
71
|
+
return (potentialAnnotation as _AnnotationTerm).hasOwnProperty("term");
|
|
42
72
|
}
|
|
43
73
|
|
|
44
74
|
/**
|
|
@@ -47,7 +77,7 @@ export function isAnnotationOfType<T extends object & AnnotationType>(
|
|
|
47
77
|
* @param serviceObject The object to be checked.
|
|
48
78
|
* @returns Whether the argument is a {@link ServiceObject}.
|
|
49
79
|
*/
|
|
50
|
-
export function isServiceObject(serviceObject:
|
|
80
|
+
export function isServiceObject(serviceObject: unknown | undefined): serviceObject is ServiceObject {
|
|
51
81
|
return serviceObject?.hasOwnProperty("_type") ?? false;
|
|
52
82
|
}
|
|
53
83
|
|