@sapui5/sap.fe.templates 1.112.0 → 1.114.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/templates/.library +1 -1
- package/src/sap/fe/templates/AnalyticalListPage/manifest.json +1 -1
- package/src/sap/fe/templates/ListReport/ExtensionAPI-dbg.js +3 -1
- package/src/sap/fe/templates/ListReport/ExtensionAPI.js.map +1 -1
- package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +2 -0
- package/src/sap/fe/templates/ListReport/ListReport.view.xml +1 -1
- package/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +23 -14
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js.map +1 -1
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +24 -11
- package/src/sap/fe/templates/ListReport/ListReportTemplating-dbg.js +7 -7
- package/src/sap/fe/templates/ListReport/ListReportTemplating.js.map +1 -1
- package/src/sap/fe/templates/ListReport/ListReportTemplating.ts +8 -6
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl-dbg.js +3 -3
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +1 -1
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js.map +1 -1
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +1 -2
- package/src/sap/fe/templates/ListReport/manifest.json +1 -1
- package/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +14 -39
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js.map +1 -1
- package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +14 -42
- package/src/sap/fe/templates/ListReport/view/fragments/MacroChart.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/Component-dbg.js +2 -2
- package/src/sap/fe/templates/ObjectPage/Component.js +1 -1
- package/src/sap/fe/templates/ObjectPage/Component.js.map +1 -1
- package/src/sap/fe/templates/ObjectPage/Component.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI-dbg.js +21 -6
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +1 -1
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js.map +1 -1
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +21 -9
- package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +5 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +149 -87
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js.map +1 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +166 -95
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating-dbg.js +12 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +1 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js.map +1 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +11 -0
- package/src/sap/fe/templates/ObjectPage/manifest.json +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Share-dbg.js +7 -2
- package/src/sap/fe/templates/ObjectPage/overrides/Share.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Share.js.map +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +5 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +3 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block-dbg.js +7 -6
- package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.js +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.js.map +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.tsx +8 -7
- package/src/sap/fe/templates/ObjectPage/view/fragments/MacroChart.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +93 -45
- package/src/sap/fe/templates/library-dbg.js +1 -1
- package/src/sap/fe/templates/library-preload.js +20 -20
- package/src/sap/fe/templates/library-preload.js.map +1 -1
- package/src/sap/fe/templates/library.js +1 -1
- package/src/sap/fe/templates/manifest.json +1 -1
- package/src/sap/fe/templates/messagebundle.properties +6 -0
- package/src/sap/fe/templates/messagebundle_ar.properties +2 -0
- package/src/sap/fe/templates/messagebundle_bg.properties +3 -1
- package/src/sap/fe/templates/messagebundle_ca.properties +2 -0
- package/src/sap/fe/templates/messagebundle_cs.properties +2 -0
- package/src/sap/fe/templates/messagebundle_cy.properties +2 -0
- package/src/sap/fe/templates/messagebundle_da.properties +2 -0
- package/src/sap/fe/templates/messagebundle_de.properties +4 -2
- package/src/sap/fe/templates/messagebundle_el.properties +2 -0
- package/src/sap/fe/templates/messagebundle_en.properties +2 -2
- package/src/sap/fe/templates/messagebundle_en_GB.properties +3 -1
- package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +2 -0
- package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +2 -0
- package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +2 -0
- package/src/sap/fe/templates/messagebundle_es.properties +2 -0
- package/src/sap/fe/templates/messagebundle_es_MX.properties +2 -0
- package/src/sap/fe/templates/messagebundle_et.properties +2 -0
- package/src/sap/fe/templates/messagebundle_fi.properties +2 -0
- package/src/sap/fe/templates/messagebundle_fr.properties +2 -0
- package/src/sap/fe/templates/messagebundle_fr_CA.properties +3 -1
- package/src/sap/fe/templates/messagebundle_hi.properties +3 -1
- package/src/sap/fe/templates/messagebundle_hr.properties +2 -0
- package/src/sap/fe/templates/messagebundle_hu.properties +2 -0
- package/src/sap/fe/templates/messagebundle_id.properties +3 -1
- package/src/sap/fe/templates/messagebundle_it.properties +2 -0
- package/src/sap/fe/templates/messagebundle_iw.properties +2 -0
- package/src/sap/fe/templates/messagebundle_ja.properties +2 -0
- package/src/sap/fe/templates/messagebundle_kk.properties +2 -0
- package/src/sap/fe/templates/messagebundle_ko.properties +3 -1
- package/src/sap/fe/templates/messagebundle_lt.properties +2 -0
- package/src/sap/fe/templates/messagebundle_lv.properties +3 -1
- package/src/sap/fe/templates/messagebundle_ms.properties +2 -0
- package/src/sap/fe/templates/messagebundle_nl.properties +2 -0
- package/src/sap/fe/templates/messagebundle_no.properties +2 -0
- package/src/sap/fe/templates/messagebundle_pl.properties +3 -1
- package/src/sap/fe/templates/messagebundle_pt.properties +2 -0
- package/src/sap/fe/templates/messagebundle_pt_PT.properties +2 -0
- package/src/sap/fe/templates/messagebundle_ro.properties +3 -1
- package/src/sap/fe/templates/messagebundle_ru.properties +3 -1
- package/src/sap/fe/templates/messagebundle_sh.properties +2 -0
- package/src/sap/fe/templates/messagebundle_sk.properties +2 -0
- package/src/sap/fe/templates/messagebundle_sl.properties +2 -0
- package/src/sap/fe/templates/messagebundle_sv.properties +3 -1
- package/src/sap/fe/templates/messagebundle_th.properties +2 -0
- package/src/sap/fe/templates/messagebundle_tr.properties +2 -0
- package/src/sap/fe/templates/messagebundle_uk.properties +2 -0
- package/src/sap/fe/templates/messagebundle_vi.properties +2 -0
- package/src/sap/fe/templates/messagebundle_zh_CN.properties +3 -1
- package/src/sap/fe/templates/messagebundle_zh_TW.properties +3 -1
|
@@ -743,7 +743,18 @@ sap.ui.define(["sap/fe/core/converters/helpers/BindingHelper", "sap/fe/core/help
|
|
|
743
743
|
}
|
|
744
744
|
return undefined;
|
|
745
745
|
}
|
|
746
|
+
|
|
747
|
+
/**
|
|
748
|
+
* Check if the sub section visualization is part of preview.
|
|
749
|
+
*
|
|
750
|
+
* @param subSection The sub section visualization
|
|
751
|
+
* @returns A Boolean value
|
|
752
|
+
*/
|
|
746
753
|
_exports.getDefaultActionHandler = getDefaultActionHandler;
|
|
754
|
+
function isVisualizationIsPartOfPreview(subSection) {
|
|
755
|
+
return subSection.isPartOfPreview === true || subSection.presentation.visualizations[0].type !== "Table";
|
|
756
|
+
}
|
|
757
|
+
_exports.isVisualizationIsPartOfPreview = isVisualizationIsPartOfPreview;
|
|
747
758
|
return _exports;
|
|
748
759
|
}, false);
|
|
749
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdXR0b25UeXBlIiwibUxpYnJhcnkiLCJnZXRFeHByZXNzaW9uRm9yVGl0bGUiLCJvSGVhZGVySW5mbyIsIm9WaWV3RGF0YSIsImZ1bGxDb250ZXh0UGF0aCIsIm9EcmFmdFJvb3QiLCJ0aXRsZU5vSGVhZGVySW5mbyIsInJlc291cmNlTW9kZWwiLCJnZXRUZXh0IiwidW5kZWZpbmVkIiwiZW50aXR5U2V0IiwidGl0bGVXaXRoSGVhZGVySW5mbyIsIm9FbXB0eUhlYWRlckluZm9UaXRsZSIsIlRpdGxlIiwiVmFsdWUiLCJ0aXRsZUZvckFjdGl2ZUhlYWRlck5vSGVhZGVySW5mbyIsInRpdGxlVmFsdWVFeHByZXNzaW9uIiwiY29ubmVjdGVkRmllbGRzUGF0aCIsInRpdGxlSXNFbXB0eSIsImNvbnN0YW50IiwidGl0bGVCb29sZWFuRXhwcmVzc2lvbiIsIiRUeXBlIiwiZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIiwiJHRhcmdldCIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiVGV4dCIsIlVJIiwiVGV4dEFycmFuZ2VtZW50IiwiYWRkVGV4dEFycmFuZ2VtZW50VG9CaW5kaW5nRXhwcmVzc2lvbiIsImZvcm1hdFZhbHVlUmVjdXJzaXZlbHkiLCJfdHlwZSIsInZhbHVlIiwiaXNFbXB0eSIsIlRhcmdldCIsImVuaGFuY2VEYXRhTW9kZWxQYXRoIiwiZ2V0TGFiZWxGb3JDb25uZWN0ZWRGaWVsZHMiLCJjcmVhdGVNb2RlVGl0bGUiLCJUeXBlTmFtZSIsImNvbmNhdCIsInJlc29sdmVCaW5kaW5nU3RyaW5nIiwidG9TdHJpbmciLCJhY3RpdmVFeHByZXNzaW9uIiwiRW50aXR5IiwiSXNBY3RpdmUiLCJjb21waWxlRXhwcmVzc2lvbiIsImlmRWxzZSIsImFuZCIsIklzQ3JlYXRlTW9kZSIsImdldEV4cHJlc3Npb25Gb3JEZXNjcmlwdGlvbiIsInBhdGhJbk1vZGVsIiwiRGVzY3JpcHRpb24iLCJnZXRFeHByZXNzaW9uRm9yU2F2ZUJ1dHRvbiIsInNhdmVCdXR0b25UZXh0IiwiY3JlYXRlQnV0dG9uVGV4dCIsInNhdmVFeHByZXNzaW9uIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJTZXNzaW9uIiwiU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsIkRyYWZ0IiwiSXNOZXdPYmplY3QiLCJpc01hbmlmZXN0QWN0aW9uIiwib0FjdGlvbiIsImFBY3Rpb25zIiwiaW5kZXhPZiIsInR5cGUiLCJidWlsZEVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uIiwiZGF0YUNvbnRleHRQYXRoIiwiaWRlbnRpZmljYXRpb24iLCJ0YXJnZXRFbnRpdHlUeXBlIiwiSWRlbnRpZmljYXRpb24iLCJkYXRhRmllbGRzV2l0aENyaXRpY2FsaXR5IiwiZmlsdGVyIiwiZGF0YUZpZWxkIiwiQ3JpdGljYWxpdHkiLCJkYXRhRmllbGRzQmluZGluZ0V4cHJlc3Npb25zIiwibGVuZ3RoIiwibWFwIiwiY3JpdGljYWxpdHlWaXNpYmxlQmluZGluZ0V4cHJlc3Npb24iLCJub3QiLCJlcXVhbCIsIkhpZGRlbiIsIm9yIiwiRGVmYXVsdCIsIkVtcGhhc2l6ZWQiLCJnZXRFbGVtZW50QmluZGluZyIsInNQYXRoIiwic05hdmlnYXRpb25QYXRoIiwiT0RhdGFNb2RlbEFubm90YXRpb25IZWxwZXIiLCJnZXROYXZpZ2F0aW9uUGF0aCIsImNoZWNrRHJhZnRTdGF0ZSIsIm9Bbm5vdGF0aW9ucyIsImdldFN3aXRjaFRvQWN0aXZlVmlzaWJpbGl0eSIsImdldFN3aXRjaFRvRHJhZnRWaXNpYmlsaXR5IiwiZ2V0U3dpdGNoRHJhZnRBbmRBY3RpdmVWaXNpYmlsaXR5IiwiX2ZpbmRBY3Rpb24iLCJhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnMiLCJzQWN0aW9uVHlwZSIsImZpbmQiLCJvSGVhZGVyQWN0aW9uIiwiZ2V0RGVsZXRlQ29tbWFuZEV4ZWN1dGlvbkVuYWJsZWQiLCJvRGVsZXRlQWN0aW9uIiwiZW5hYmxlZCIsImdldERlbGV0ZUNvbW1hbmRFeGVjdXRpb25WaXNpYmxlIiwidmlzaWJsZSIsImdldEVkaXRDb21tYW5kRXhlY3V0aW9uVmlzaWJsZSIsIm9FZGl0QWN0aW9uIiwiZ2V0RWRpdENvbW1hbmRFeGVjdXRpb25FbmFibGVkIiwiZ2V0RWRpdEFjdGlvbiIsIm9FbnRpdHlTZXQiLCJnZXRQYXRoIiwiYVBhdGhzIiwic3BsaXQiLCJyb290RW50aXR5U2V0UGF0aCIsInJvb3RFbnRpdHlTZXRBbm5ub3RhdGlvbnMiLCJnZXRPYmplY3QiLCJiRHJhZnRSb290IiwiaGFzT3duUHJvcGVydHkiLCJiRHJhZnROb2RlIiwiYlN0aWNreVNlc3Npb24iLCJzQWN0aW9uTmFtZSIsImlzUmVhZE9ubHlGcm9tU3RhdGljQW5ub3RhdGlvbnMiLCJvRmllbGRDb250cm9sIiwiYkNvbXB1dGVkIiwiYkltbXV0YWJsZSIsImJSZWFkT25seSIsIkJvb2wiLCJyZWFkT25seUV4cHJlc3Npb25Gcm9tRHluYW1pY0Fubm90YXRpb25zIiwic0lzRmllbGRDb250cm9sUGF0aFJlYWRPbmx5IiwiTWFuYWdlZE9iamVjdCIsImJpbmRpbmdQYXJzZXIiLCJnZXRFeHByZXNzaW9uRm9yTWljcm9DaGFydFRpdGxlUHJlc3MiLCJvQ29uZmlndXJhdGlvbiIsIm9NYW5pZmVzdE91dGJvdW5kIiwic0NvbGxlY3Rpb25OYW1lIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldE1pY3JvQ2hhcnRUaXRsZUFzTGluayIsIm9Db250cm9sQ29uZmlndXJhdGlvbiIsImdldEdyb3VwSWRGcm9tQ29uZmlnIiwib0NvbmZpZ3VyYXRpb25zIiwic0Fubm90YXRpb25QYXRoIiwic0RlZmF1bHRHcm91cElkIiwiYUF1dG9QYXR0ZXJucyIsInNHcm91cElkIiwicmVxdWVzdEdyb3VwSWQiLCJzb21lIiwiYXV0b1BhdHRlcm4iLCJnZXRCaW5kaW5nV2l0aEdyb3VwSWRGcm9tQ29uZmlnIiwic0tleSIsInNCaW5kaW5nIiwiZG9lc0ZpZWxkR3JvdXBDb250YWluT25seU9uZU11bHRpTGluZURhdGFGaWVsZCIsImFGb3JtRWxlbWVudHMiLCJpc1ZhbHVlTXVsdGlsaW5lVGV4dCIsImdldFZpc2libGVFeHByZXNzaW9uRm9yQnJlYWRjcnVtYnMiLCJzaG93QnJlYWRDcnVtYnMiLCJmY2xFbmFibGVkIiwiZ2V0U2hhcmVCdXR0b25WaXNpYmlsaXR5Iiwidmlld0RhdGEiLCJzU2hhcmVCdXR0b25WaXNpYmlsaXR5RXhwIiwiaXNTaGFyZUJ1dHRvblZpc2libGVGb3JNeUluYm94IiwiZ2V0VmlzaWJsaXR5T2ZIZWFkZXJJbmZvIiwib1RpdGxlQW5ub3RhdGlvbnMiLCJvRGVzY3JpcHRpb25Bbm5vdGF0aW9ucyIsIm9GaWVsZFRpdGxlRmllbGRDb250cm9sIiwib0ZpZWxkRGVzY3JpcHRpb25GaWVsZENvbnRyb2wiLCJiSXNUaXRsZVJlYWRPbmx5IiwidGl0bGVFeHByZXNzaW9uIiwiYklzRGVzY3JpcHRpb25SZWFkT25seSIsImRlc2NyaXB0aW9uRXhwcmVzc2lvbiIsImNvbWJpbmVUaXRsZUFuZERlc2NyaXB0aW9uRXhwcmVzc2lvbiIsIm9UaXRsZUZpZWxkQ29udHJvbCIsIm9EZXNjcmlwdGlvbkZpZWxkQ29udHJvbCIsImdldFByZXNzRXhwcmVzc2lvbkZvckRlbGV0ZSIsIm9JbnRlcmZhY2UiLCJzRGVsZXRhYmxlQ29udGV4dHMiLCJzVGl0bGUiLCJzRGVzY3JpcHRpb24iLCJlc0NvbnRleHQiLCJjb250ZXh0IiwiY29udGV4dFBhdGgiLCJjb250ZXh0UGF0aFBhcnRzIiwiTW9kZWxIZWxwZXIiLCJmaWx0ZXJPdXROYXZQcm9wQmluZGluZyIsInNFbnRpdHlTZXROYW1lIiwiZ2V0TW9kZWwiLCJqb2luIiwib1BhcmFtcyIsInRpdGxlIiwiZW50aXR5U2V0TmFtZSIsIkNvbW1vbkhlbHBlciIsImFkZFNpbmdsZVF1b3RlcyIsImRlc2NyaXB0aW9uIiwiZ2VuZXJhdGVGdW5jdGlvbiIsIm9iamVjdFRvU3RyaW5nIiwicmVxdWlyZXNJQ29udGV4dCIsImdldFByZXNzRXhwcmVzc2lvbkZvckVkaXQiLCJvRGF0YUZpZWxkIiwic0VkaXRhYmxlQ29udGV4dHMiLCJBY3Rpb24iLCJzRGF0YUZpZWxkRW51bU1lbWJlciIsIkludm9jYXRpb25Hcm91cGluZyIsInNJbnZvY2F0aW9uR3JvdXAiLCJjb250ZXh0cyIsImludm9jYXRpb25Hcm91cGluZyIsIm1vZGVsIiwibGFiZWwiLCJMYWJlbCIsImlzTmF2aWdhYmxlIiwiZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uIiwiZ2V0UHJlc3NFeHByZXNzaW9uRm9yRm9vdGVyQW5ub3RhdGlvbkFjdGlvbiIsInNBY3Rpb25Db250ZXh0cyIsImdldFByZXNzRXhwcmVzc2lvbkZvclByaW1hcnlBY3Rpb24iLCJwb3NpdGl2ZUFjdGlvblZpc2libGUiLCJwb3NpdGl2ZUFjdGlvbkVuYWJsZWQiLCJlZGl0QWN0aW9uVmlzaWJsZSIsImVkaXRBY3Rpb25FbmFibGVkIiwib0NvbmRpdGlvbnMiLCJnZXRTdGFzaGFibGVIQm94QmluZGluZyIsIm9IZWFkZXJGYWNldCIsIkZhY2V0IiwidGFyZ2V0QW5ub3RhdGlvblR5cGUiLCJ0YXJnZXRBbm5vdGF0aW9uVmFsdWUiLCJnZXRQcmVzc0V4cHJlc3Npb25Gb3JMaW5rIiwiZ2V0SGVhZGVyRm9ybUhib3hSZW5kZXJUeXBlIiwidGFyZ2V0T2JqZWN0IiwiZ2V0RGVmYXVsdEFjdGlvbkhhbmRsZXIiLCJvQ3R4Iiwib0RhdGFGaWVsZEZvckRlZmF1bHRBY3Rpb24iLCJkZWZhdWx0QWN0aW9uQ29udGV4dE9yRW50aXR5U2V0IiwiZGVmYXVsdEFjdGlvbiIsImNvbW1hbmQiLCJwcmVzcyIsIm5vV3JhcCIsImJ1aWxkQWN0aW9uV3JhcHBlciIsImlkIiwiaW9FeCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiT2JqZWN0UGFnZVRlbXBsYXRpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRm9ybWF0dGVycyBmb3IgdGhlIE9iamVjdCBQYWdlXG5pbXBvcnQgeyBFbnRpdHlTZXQgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YUZpZWxkRm9yQWN0aW9uLCBEYXRhRmllbGRUeXBlcywgSGVhZGVySW5mb1R5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB0eXBlIHsgQmFzZUFjdGlvbiwgQ3VzdG9tQWN0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuaW1wb3J0IHsgRHJhZnQsIEVudGl0eSwgVUkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0JpbmRpbmdIZWxwZXJcIjtcbmltcG9ydCB7XG5cdGFuZCxcblx0QmluZGluZ1Rvb2xraXRFeHByZXNzaW9uLFxuXHRDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbixcblx0Y29tcGlsZUV4cHJlc3Npb24sXG5cdGNvbmNhdCxcblx0Y29uc3RhbnQsXG5cdGVxdWFsLFxuXHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24sXG5cdGlmRWxzZSxcblx0aXNFbXB0eSxcblx0bm90LFxuXHRvcixcblx0cmVzb2x2ZUJpbmRpbmdTdHJpbmdcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgVmlld0RhdGEgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvVGVtcGxhdGVkVmlld1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgdHlwZSB7IERhdGFNb2RlbE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgeyBlbmhhbmNlRGF0YU1vZGVsUGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1VJRm9ybWF0dGVyc1wiO1xuaW1wb3J0IENvbW1vbkhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9Db21tb25IZWxwZXJcIjtcbmltcG9ydCB7IGFkZFRleHRBcnJhbmdlbWVudFRvQmluZGluZ0V4cHJlc3Npb24sIGZvcm1hdFZhbHVlUmVjdXJzaXZlbHkgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZFRlbXBsYXRpbmdcIjtcbmltcG9ydCB7IGdldExhYmVsRm9yQ29ubmVjdGVkRmllbGRzIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvZm9ybS9Gb3JtVGVtcGxhdGluZ1wiO1xuaW1wb3J0IG1MaWJyYXJ5IGZyb20gXCJzYXAvbS9saWJyYXJ5XCI7XG5pbXBvcnQgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IE9EYXRhTW9kZWxBbm5vdGF0aW9uSGVscGVyIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQW5ub3RhdGlvbkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcblxuY29uc3QgQnV0dG9uVHlwZSA9IG1MaWJyYXJ5LkJ1dHRvblR5cGU7XG5cbi8vYGBgbWVybWFpZFxuLy8gZ3JhcGggVERcbi8vIEFbT2JqZWN0IFBhZ2UgVGl0bGVdIC0tPnxHZXQgRGF0YUZpZWxkIFZhbHVlfCBDe0V2YWx1YXRlIENyZWF0ZSBNb2RlfVxuLy8gQyAtLT58SW4gQ3JlYXRlIE1vZGV8IER7SXMgRGF0YUZpZWxkIFZhbHVlIGVtcHR5fVxuLy8gRCAtLT58WWVzfCBGe0lzIHRoZXJlIGEgVHlwZU5hbWV9XG4vLyBGIC0tPnxZZXN8IEdbSXMgdGhlcmUgYW4gY3VzdG9tIHRpdGxlXVxuLy8gRyAtLT58WWVzfCBHMVtTaG93IHRoZSBjdXN0b20gdGl0bGUgKyAnVHlwZU5hbWUnXVxuLy8gRyAtLT58Tm98IEcyW0Rpc3BsYXkgdGhlIGRlZmF1bHQgdGl0bGUgJ05ldyArIFR5cGVOYW1lJ11cbi8vIEYgLS0+fE5vfCBIW0lzIHRoZXJlIGEgY3VzdG9tIHRpdGxlXVxuLy8gSCAtLT58WWVzfCBJW1Nob3cgdGhlIGN1c3RvbSB0aXRsZV1cbi8vIEggLS0+fE5vfCBKW1Nob3cgdGhlIGRlZmF1bHQgJ1VuYW1uZWQgT2JqZWN0J11cbi8vIEQgLS0+fE5vfCBFXG4vLyBDIC0tPnxOb3QgaW4gY3JlYXRlIG1vZGV8IEVbU2hvdyBEYXRhRmllbGQgVmFsdWVdXG4vLyBgYGBcbi8qKlxuICogQ29tcHV0ZSB0aGUgdGl0bGUgZm9yIHRoZSBvYmplY3QgcGFnZS5cbiAqXG4gKiBAcGFyYW0gb0hlYWRlckluZm8gVGhlIEBVSS5IZWFkZXJJbmZvIGFubm90YXRpb24gY29udGVudFxuICogQHBhcmFtIG9WaWV3RGF0YSBUaGUgdmlldyBkYXRhIG9iamVjdCB3ZSdyZSBjdXJyZW50bHkgb25cbiAqIEBwYXJhbSBmdWxsQ29udGV4dFBhdGggVGhlIGZ1bGwgY29udGV4dCBwYXRoIHVzZWQgdG8gcmVhY2ggdGhhdCBvYmplY3QgcGFnZVxuICogQHBhcmFtIG9EcmFmdFJvb3RcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSBvYmplY3QgcGFnZSB0aXRsZVxuICovXG5leHBvcnQgY29uc3QgZ2V0RXhwcmVzc2lvbkZvclRpdGxlID0gZnVuY3Rpb24gKFxuXHRvSGVhZGVySW5mbzogSGVhZGVySW5mb1R5cGUgfCB1bmRlZmluZWQsXG5cdG9WaWV3RGF0YTogVmlld0RhdGEsXG5cdGZ1bGxDb250ZXh0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0b0RyYWZ0Um9vdDogT2JqZWN0IHwgdW5kZWZpbmVkXG4pOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB7XG5cdGNvbnN0IHRpdGxlTm9IZWFkZXJJbmZvID0gb1ZpZXdEYXRhLnJlc291cmNlTW9kZWwuZ2V0VGV4dChcIlRfTkVXX09CSkVDVFwiLCB1bmRlZmluZWQsIG9WaWV3RGF0YS5lbnRpdHlTZXQpO1xuXG5cdGNvbnN0IHRpdGxlV2l0aEhlYWRlckluZm8gPSBvVmlld0RhdGEucmVzb3VyY2VNb2RlbC5nZXRUZXh0KFxuXHRcdFwiVF9BTk5PVEFUSU9OX0hFTFBFUl9ERUZBVUxUX09CSkVDVF9QQUdFX0hFQURFUl9USVRMRVwiLFxuXHRcdHVuZGVmaW5lZCxcblx0XHRvVmlld0RhdGEuZW50aXR5U2V0XG5cdCk7XG5cblx0Y29uc3Qgb0VtcHR5SGVhZGVySW5mb1RpdGxlID1cblx0XHRvSGVhZGVySW5mbz8uVGl0bGUgPT09IHVuZGVmaW5lZCB8fCAob0hlYWRlckluZm8/LlRpdGxlIGFzIGFueSkgPT09IFwiXCIgfHwgKG9IZWFkZXJJbmZvPy5UaXRsZSBhcyBEYXRhRmllbGRUeXBlcyk/LlZhbHVlID09PSBcIlwiO1xuXG5cdGNvbnN0IHRpdGxlRm9yQWN0aXZlSGVhZGVyTm9IZWFkZXJJbmZvID0gIW9FbXB0eUhlYWRlckluZm9UaXRsZVxuXHRcdD8gb1ZpZXdEYXRhLnJlc291cmNlTW9kZWwuZ2V0VGV4dChcIlRfQU5OT1RBVElPTl9IRUxQRVJfREVGQVVMVF9PQkpFQ1RfUEFHRV9IRUFERVJfVElUTEVfTk9fSEVBREVSX0lORk9cIilcblx0XHQ6IFwiXCI7XG5cdGxldCB0aXRsZVZhbHVlRXhwcmVzc2lvbixcblx0XHRjb25uZWN0ZWRGaWVsZHNQYXRoLFxuXHRcdHRpdGxlSXNFbXB0eTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gY29uc3RhbnQodHJ1ZSksXG5cdFx0dGl0bGVCb29sZWFuRXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHwgYm9vbGVhbjtcblx0aWYgKG9IZWFkZXJJbmZvPy5UaXRsZT8uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkXCIpIHtcblx0XHR0aXRsZVZhbHVlRXhwcmVzc2lvbiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbigob0hlYWRlckluZm8/LlRpdGxlIGFzIERhdGFGaWVsZFR5cGVzKT8uVmFsdWUpO1xuXHRcdGlmICgob0hlYWRlckluZm8/LlRpdGxlIGFzIERhdGFGaWVsZFR5cGVzKT8uVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5Db21tb24/LlRleHQ/LmFubm90YXRpb25zPy5VST8uVGV4dEFycmFuZ2VtZW50KSB7XG5cdFx0XHQvLyBJbiBjYXNlIGFuIGV4cGxpY2l0IHRleHQgYXJyYW5nZW1lbnQgd2FzIHNldCB3ZSBtYWtlIHVzZSBvZiBpdCBpbiB0aGUgZGVzY3JpcHRpb24gYXMgd2VsbFxuXHRcdFx0dGl0bGVWYWx1ZUV4cHJlc3Npb24gPSBhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uKHRpdGxlVmFsdWVFeHByZXNzaW9uLCBmdWxsQ29udGV4dFBhdGgpO1xuXHRcdH1cblx0XHR0aXRsZVZhbHVlRXhwcmVzc2lvbiA9IGZvcm1hdFZhbHVlUmVjdXJzaXZlbHkodGl0bGVWYWx1ZUV4cHJlc3Npb24sIGZ1bGxDb250ZXh0UGF0aCk7XG5cdFx0dGl0bGVJc0VtcHR5ID0gdGl0bGVWYWx1ZUV4cHJlc3Npb24/Ll90eXBlID09PSBcIkNvbnN0YW50XCIgPyBjb25zdGFudCghdGl0bGVWYWx1ZUV4cHJlc3Npb24/LnZhbHVlKSA6IGlzRW1wdHkodGl0bGVWYWx1ZUV4cHJlc3Npb24pO1xuXHR9IGVsc2UgaWYgKFxuXHRcdG9IZWFkZXJJbmZvPy5UaXRsZT8uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9yQW5ub3RhdGlvblwiICYmXG5cdFx0b0hlYWRlckluZm8/LlRpdGxlPy5UYXJnZXQuJHRhcmdldC4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5Db25uZWN0ZWRGaWVsZHNUeXBlXCJcblx0KSB7XG5cdFx0Y29ubmVjdGVkRmllbGRzUGF0aCA9IGVuaGFuY2VEYXRhTW9kZWxQYXRoKGZ1bGxDb250ZXh0UGF0aCwgXCIkVHlwZS9AVUkuSGVhZGVySW5mby9UaXRsZS9UYXJnZXQvJEFubm90YXRpb25QYXRoXCIpO1xuXHRcdHRpdGxlVmFsdWVFeHByZXNzaW9uID0gZ2V0TGFiZWxGb3JDb25uZWN0ZWRGaWVsZHMoY29ubmVjdGVkRmllbGRzUGF0aCwgZmFsc2UpIGFzIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxzdHJpbmc+O1xuXHRcdHRpdGxlQm9vbGVhbkV4cHJlc3Npb24gPVxuXHRcdFx0dGl0bGVWYWx1ZUV4cHJlc3Npb24/Ll90eXBlID09PSBcIkNvbnN0YW50XCIgPyBjb25zdGFudCghdGl0bGVWYWx1ZUV4cHJlc3Npb24/LnZhbHVlKSA6IGlzRW1wdHkodGl0bGVWYWx1ZUV4cHJlc3Npb24pO1xuXHRcdHRpdGxlSXNFbXB0eSA9IHRpdGxlVmFsdWVFeHByZXNzaW9uID8gdGl0bGVCb29sZWFuRXhwcmVzc2lvbiA6IGNvbnN0YW50KHRydWUpO1xuXHR9XG5cblx0Ly8gSWYgdGhlcmUgaXMgYSBUeXBlTmFtZSBkZWZpbmVkLCBzaG93IHRoZSBkZWZhdWx0IHRpdGxlICdOZXcgKyBUeXBlTmFtZScsIG90aGVyd2lzZSBzaG93IHRoZSBjdXN0b20gdGl0bGUgb3IgdGhlIGRlZmF1bHQgJ05ldyBvYmplY3QnXG5cdGNvbnN0IGNyZWF0ZU1vZGVUaXRsZSA9IG9IZWFkZXJJbmZvPy5UeXBlTmFtZVxuXHRcdD8gY29uY2F0KHRpdGxlV2l0aEhlYWRlckluZm8sIFwiOiBcIiwgcmVzb2x2ZUJpbmRpbmdTdHJpbmcob0hlYWRlckluZm8uVHlwZU5hbWUudG9TdHJpbmcoKSkpXG5cdFx0OiB0aXRsZU5vSGVhZGVySW5mbztcblx0Y29uc3QgYWN0aXZlRXhwcmVzc2lvbiA9IG9EcmFmdFJvb3QgPyBFbnRpdHkuSXNBY3RpdmUgOiB0cnVlO1xuXHRyZXR1cm4gY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0aWZFbHNlKFxuXHRcdFx0YW5kKFVJLklzQ3JlYXRlTW9kZSwgdGl0bGVJc0VtcHR5KSxcblx0XHRcdGNyZWF0ZU1vZGVUaXRsZSxcblxuXHRcdFx0Ly8gT3RoZXJ3aXNlIHNob3cgdGhlIGRlZmF1bHQgZXhwcmVzc2lvblxuXHRcdFx0aWZFbHNlKGFuZChhY3RpdmVFeHByZXNzaW9uLCB0aXRsZUlzRW1wdHkpLCB0aXRsZUZvckFjdGl2ZUhlYWRlck5vSGVhZGVySW5mbywgdGl0bGVWYWx1ZUV4cHJlc3Npb24pXG5cdFx0KVxuXHQpO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGV4cHJlc3Npb24gZm9yIHRoZSBkZXNjcmlwdGlvbiBvZiBhbiBvYmplY3QgcGFnZS5cbiAqXG4gKiBAcGFyYW0gb0hlYWRlckluZm8gVGhlIEBVSS5IZWFkZXJJbmZvIGFubm90YXRpb24gY29udGVudFxuICogQHBhcmFtIGZ1bGxDb250ZXh0UGF0aCBUaGUgZnVsbCBjb250ZXh0IHBhdGggdXNlZCB0byByZWFjaCB0aGF0IG9iamVjdCBwYWdlXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgb2JqZWN0IHBhZ2UgZGVzY3JpcHRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEV4cHJlc3Npb25Gb3JEZXNjcmlwdGlvbiA9IGZ1bmN0aW9uIChcblx0b0hlYWRlckluZm86IEhlYWRlckluZm9UeXBlIHwgdW5kZWZpbmVkLFxuXHRmdWxsQ29udGV4dFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGhcbik6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHtcblx0bGV0IHBhdGhJbk1vZGVsID0gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKChvSGVhZGVySW5mbz8uRGVzY3JpcHRpb24gYXMgRGF0YUZpZWxkVHlwZXMpPy5WYWx1ZSk7XG5cdGlmICgob0hlYWRlckluZm8/LkRlc2NyaXB0aW9uIGFzIERhdGFGaWVsZFR5cGVzKT8uVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5Db21tb24/LlRleHQ/LmFubm90YXRpb25zPy5VST8uVGV4dEFycmFuZ2VtZW50KSB7XG5cdFx0Ly8gSW4gY2FzZSBhbiBleHBsaWNpdCB0ZXh0IGFycmFuZ2VtZW50IHdhcyBzZXQgd2UgbWFrZSB1c2Ugb2YgaXQgaW4gdGhlIGRlc2NyaXB0aW9uIGFzIHdlbGxcblx0XHRwYXRoSW5Nb2RlbCA9IGFkZFRleHRBcnJhbmdlbWVudFRvQmluZGluZ0V4cHJlc3Npb24ocGF0aEluTW9kZWwsIGZ1bGxDb250ZXh0UGF0aCk7XG5cdH1cblxuXHRyZXR1cm4gY29tcGlsZUV4cHJlc3Npb24oZm9ybWF0VmFsdWVSZWN1cnNpdmVseShwYXRoSW5Nb2RlbCwgZnVsbENvbnRleHRQYXRoKSk7XG59O1xuXG4vKipcbiAqIFJldHVybiB0aGUgZXhwcmVzc2lvbiBmb3IgdGhlIHNhdmUgYnV0dG9uLlxuICpcbiAqIEBwYXJhbSBvVmlld0RhdGEgVGhlIGN1cnJlbnQgdmlldyBkYXRhXG4gKiBAcGFyYW0gZnVsbENvbnRleHRQYXRoIFRoZSBwYXRoIHVzZWQgdXAgdW50aWwgaGVyZVxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiB0aGF0IHNob3dzIHRoZSByaWdodCBzYXZlIGJ1dHRvbiB0ZXh0XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFeHByZXNzaW9uRm9yU2F2ZUJ1dHRvbiA9IGZ1bmN0aW9uIChcblx0b1ZpZXdEYXRhOiBWaWV3RGF0YSxcblx0ZnVsbENvbnRleHRQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoXG4pOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB7XG5cdGNvbnN0IHNhdmVCdXR0b25UZXh0ID0gb1ZpZXdEYXRhLnJlc291cmNlTW9kZWwuZ2V0VGV4dChcIlRfT1BfT0JKRUNUX1BBR0VfU0FWRVwiKTtcblx0Y29uc3QgY3JlYXRlQnV0dG9uVGV4dCA9IG9WaWV3RGF0YS5yZXNvdXJjZU1vZGVsLmdldFRleHQoXCJUX09QX09CSkVDVF9QQUdFX0NSRUFURVwiKTtcblx0bGV0IHNhdmVFeHByZXNzaW9uO1xuXG5cdGlmICgoZnVsbENvbnRleHRQYXRoLnN0YXJ0aW5nRW50aXR5U2V0IGFzIEVudGl0eVNldCkuYW5ub3RhdGlvbnMuU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCkge1xuXHRcdC8vIElmIHdlJ3JlIGluIHN0aWNreSBtb2RlIEFORCB0aGUgdWkgaXMgaW4gY3JlYXRlIG1vZGUsIHNob3cgQ3JlYXRlLCBlbHNlIHNob3cgU2F2ZVxuXHRcdHNhdmVFeHByZXNzaW9uID0gaWZFbHNlKFVJLklzQ3JlYXRlTW9kZSwgY3JlYXRlQnV0dG9uVGV4dCwgc2F2ZUJ1dHRvblRleHQpO1xuXHR9IGVsc2Uge1xuXHRcdC8vIElmIHdlJ3JlIGluIGRyYWZ0IEFORCB0aGUgZHJhZnQgaXMgYSBuZXcgb2JqZWN0ICghSXNBY3RpdmVFbnRpdHkgJiYgIUhhc0FjdGl2ZUVudGl0eSksIHNob3cgY3JlYXRlLCBlbHNlIHNob3cgc2F2ZVxuXHRcdHNhdmVFeHByZXNzaW9uID0gaWZFbHNlKERyYWZ0LklzTmV3T2JqZWN0LCBjcmVhdGVCdXR0b25UZXh0LCBzYXZlQnV0dG9uVGV4dCk7XG5cdH1cblx0cmV0dXJuIGNvbXBpbGVFeHByZXNzaW9uKHNhdmVFeHByZXNzaW9uKTtcbn07XG5cbi8qKlxuICogTWV0aG9kIHJldHVybnMgV2hldGhlciB0aGUgYWN0aW9uIHR5cGUgaXMgbWFuaWZlc3Qgb3Igbm90LlxuICpcbiAqIEBmdW5jdGlvblxuICogQG5hbWUgaXNNYW5pZmVzdEFjdGlvblxuICogQHBhcmFtIG9BY3Rpb24gVGhlIGFjdGlvbiBvYmplY3RcbiAqIEByZXR1cm5zIGB0cnVlYCBpZiBhY3Rpb24gaXMgY29taW5nIGZyb20gbWFuaWZlc3QsIGBmYWxzZWAgb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBjb25zdCBpc01hbmlmZXN0QWN0aW9uID0gZnVuY3Rpb24gKG9BY3Rpb246IGFueSk6IG9BY3Rpb24gaXMgQ3VzdG9tQWN0aW9uIHtcblx0Y29uc3QgYUFjdGlvbnMgPSBbXG5cdFx0XCJQcmltYXJ5XCIsXG5cdFx0XCJEZWZhdWx0QXBwbHlcIixcblx0XHRcIlNlY29uZGFyeVwiLFxuXHRcdFwiRm9yQWN0aW9uXCIsXG5cdFx0XCJGb3JOYXZpZ2F0aW9uXCIsXG5cdFx0XCJTd2l0Y2hUb0FjdGl2ZU9iamVjdFwiLFxuXHRcdFwiU3dpdGNoVG9EcmFmdE9iamVjdFwiLFxuXHRcdFwiRHJhZnRBY3Rpb25zXCIsXG5cdFx0XCJDb3B5XCJcblx0XTtcblx0cmV0dXJuIGFBY3Rpb25zLmluZGV4T2Yob0FjdGlvbi50eXBlKSA8IDA7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYSBjb21waWxlZCBleHByZXNzaW9uIHRvIGRldGVybWluZSBFbXBoYXNpemVkICBidXR0b24gdHlwZSBiYXNlZCBvbiBDcml0aWNhbGl0eSBhY3Jvc3MgYWxsIGFjdGlvbnNcbiAqIElmIGNyaXRpY2FsIGFjdGlvbiBpcyByZW5kZXJlZCwgaXRzIGNvbnNpZGVyZWQgdG8gYmUgdGhlIHByaW1hcnkgYWN0aW9uLiBIZW5jZSB0ZW1wbGF0ZSdzIGRlZmF1bHQgcHJpbWFyeSBhY3Rpb24gaXMgc2V0IGJhY2sgdG8gRGVmYXVsdC5cbiAqXG4gKiBAZnVuY3Rpb25cbiAqIEBzdGF0aWNcbiAqIEBuYW1lIHNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5PYmplY3RQYWdlVGVtcGxhdGluZy5idWlsZEVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uXG4gKiBAbWVtYmVyb2Ygc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLk9iamVjdFBhZ2VUZW1wbGF0aW5nXG4gKiBAcGFyYW0gZGF0YUNvbnRleHRQYXRoIFRoZSBkYXRhTW9kZWxPYmplY3RQYXRoIHJlbGF0ZWQgdG8gdGhlIGNvbnRleHRcbiAqIEByZXR1cm5zIEFuIGV4cHJlc3Npb24gdG8gZGVkdWNlIGlmIGJ1dHRvbiB0eXBlIGlzIERlZmF1bHQgb3IgRW1waGFzaXplZFxuICogQHByaXZhdGVcbiAqIEB1aTUtcmVzdHJpY3RlZFxuICovXG5leHBvcnQgY29uc3QgYnVpbGRFbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvbiA9IGZ1bmN0aW9uIChkYXRhQ29udGV4dFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgpIHtcblx0Y29uc3QgaWRlbnRpZmljYXRpb24gPSBkYXRhQ29udGV4dFBhdGgudGFyZ2V0RW50aXR5VHlwZT8uYW5ub3RhdGlvbnM/LlVJPy5JZGVudGlmaWNhdGlvbjtcblx0Y29uc3QgZGF0YUZpZWxkc1dpdGhDcml0aWNhbGl0eSA9XG5cdFx0aWRlbnRpZmljYXRpb24/LmZpbHRlcigoZGF0YUZpZWxkKSA9PiBkYXRhRmllbGQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckFjdGlvbiAmJiBkYXRhRmllbGQuQ3JpdGljYWxpdHkpIHx8IFtdO1xuXG5cdGNvbnN0IGRhdGFGaWVsZHNCaW5kaW5nRXhwcmVzc2lvbnMgPSBkYXRhRmllbGRzV2l0aENyaXRpY2FsaXR5Lmxlbmd0aFxuXHRcdD8gZGF0YUZpZWxkc1dpdGhDcml0aWNhbGl0eS5tYXAoKGRhdGFGaWVsZCkgPT4ge1xuXHRcdFx0XHRjb25zdCBjcml0aWNhbGl0eVZpc2libGVCaW5kaW5nRXhwcmVzc2lvbiA9IGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuQ3JpdGljYWxpdHkpO1xuXHRcdFx0XHRyZXR1cm4gYW5kKFxuXHRcdFx0XHRcdG5vdChlcXVhbChnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oZGF0YUZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuKSwgdHJ1ZSkpLFxuXHRcdFx0XHRcdG9yKFxuXHRcdFx0XHRcdFx0ZXF1YWwoY3JpdGljYWxpdHlWaXNpYmxlQmluZGluZ0V4cHJlc3Npb24sIFwiVUkuQ3JpdGljYWxpdHlUeXBlL05lZ2F0aXZlXCIpLFxuXHRcdFx0XHRcdFx0ZXF1YWwoY3JpdGljYWxpdHlWaXNpYmxlQmluZGluZ0V4cHJlc3Npb24sIFwiMVwiKSxcblx0XHRcdFx0XHRcdGVxdWFsKGNyaXRpY2FsaXR5VmlzaWJsZUJpbmRpbmdFeHByZXNzaW9uIGFzIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxudW1iZXI+LCAxKSxcblx0XHRcdFx0XHRcdGVxdWFsKGNyaXRpY2FsaXR5VmlzaWJsZUJpbmRpbmdFeHByZXNzaW9uLCBcIlVJLkNyaXRpY2FsaXR5VHlwZS9Qb3NpdGl2ZVwiKSxcblx0XHRcdFx0XHRcdGVxdWFsKGNyaXRpY2FsaXR5VmlzaWJsZUJpbmRpbmdFeHByZXNzaW9uLCBcIjNcIiksXG5cdFx0XHRcdFx0XHRlcXVhbChjcml0aWNhbGl0eVZpc2libGVCaW5kaW5nRXhwcmVzc2lvbiBhcyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248bnVtYmVyPiwgMylcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCk7XG5cdFx0ICB9KVxuXHRcdDogKFtjb25zdGFudChmYWxzZSldIGFzIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPltdKTtcblxuXHQvLyBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgdmlzaWJsZSBkYXRhRmllbGQgd2l0aCBjcml0aWNhbGl0eSBuZWdhdGl2ZSBvciBwb3NpdGl2ZSwgdGhlIHR5cGUgaXMgc2V0IGFzIERlZmF1bHRcblx0Ly8gZWxzZSBpdCBpcyBlbXBoYXNpemVkXG5cdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihpZkVsc2Uob3IoLi4uZGF0YUZpZWxkc0JpbmRpbmdFeHByZXNzaW9ucyksIEJ1dHRvblR5cGUuRGVmYXVsdCwgQnV0dG9uVHlwZS5FbXBoYXNpemVkKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudEJpbmRpbmcgPSBmdW5jdGlvbiAoc1BhdGg6IGFueSkge1xuXHRjb25zdCBzTmF2aWdhdGlvblBhdGggPSBPRGF0YU1vZGVsQW5ub3RhdGlvbkhlbHBlci5nZXROYXZpZ2F0aW9uUGF0aChzUGF0aCk7XG5cdGlmIChzTmF2aWdhdGlvblBhdGgpIHtcblx0XHRyZXR1cm4gXCJ7cGF0aDonXCIgKyBzTmF2aWdhdGlvblBhdGggKyBcIid9XCI7XG5cdH0gZWxzZSB7XG5cdFx0Ly9ubyBuYXZpZ2F0aW9uIHByb3BlcnR5IG5lZWRzIGVtcHR5IG9iamVjdFxuXHRcdHJldHVybiBcIntwYXRoOiAnJ31cIjtcblx0fVxufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byBjaGVjayBpZiBkcmFmdCBwYXR0ZXJuIGlzIHN1cHBvcnRlZC5cbiAqXG4gKiBAcGFyYW0gb0Fubm90YXRpb25zIEFubm90YXRpb25zIG9mIHRoZSBjdXJyZW50IGVudGl0eSBzZXQuXG4gKiBAcmV0dXJucyBSZXR1cm5zIHRoZSBCb29sZWFuIHZhbHVlIGJhc2VkIG9uIGRyYWZ0IHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBjaGVja0RyYWZ0U3RhdGUgPSBmdW5jdGlvbiAob0Fubm90YXRpb25zOiBhbnkpIHtcblx0aWYgKFxuXHRcdG9Bbm5vdGF0aW9uc1tcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290XCJdICYmXG5cdFx0b0Fubm90YXRpb25zW1wiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5EcmFmdFJvb3RcIl1bXCJFZGl0QWN0aW9uXCJdXG5cdCkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byBnZXQgdGhlIHZpc2liaWxpdHkgZm9yIHRoZSBTd2l0Y2hUb0FjdGl2ZSBidXR0b24gaW4gdGhlIG9iamVjdCBwYWdlIG9yIHN1Ym9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBvQW5ub3RhdGlvbnMgQW5ub3RhdGlvbnMgb2YgdGhlIGN1cnJlbnQgZW50aXR5IHNldC5cbiAqIEByZXR1cm5zIFJldHVybnMgZXhwcmVzc2lvbiBiaW5kaW5nIG9yIEJvb2xlYW4gdmFsdWUgYmFzZWQgb24gdGhlIGRyYWZ0IHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTd2l0Y2hUb0FjdGl2ZVZpc2liaWxpdHkgPSBmdW5jdGlvbiAob0Fubm90YXRpb25zOiBhbnkpOiBhbnkge1xuXHRpZiAoY2hlY2tEcmFmdFN0YXRlKG9Bbm5vdGF0aW9ucykpIHtcblx0XHRyZXR1cm4gXCJ7PSAoJXtEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9EcmFmdElzQ3JlYXRlZEJ5TWV9KSA/ICggJHt1aT4vaXNFZGl0YWJsZX0gJiYgISR7dWk+Y3JlYXRlTW9kZX0gJiYgJXtEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9EcmFmdElzQ3JlYXRlZEJ5TWV9ICkgOiBmYWxzZSB9XCI7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIGdldCB0aGUgdmlzaWJpbGl0eSBmb3IgdGhlIFN3aXRjaFRvRHJhZnQgYnV0dG9uIGluIHRoZSBvYmplY3QgcGFnZSBvciBzdWJvYmplY3QgcGFnZS5cbiAqXG4gKiBAcGFyYW0gb0Fubm90YXRpb25zIEFubm90YXRpb25zIG9mIHRoZSBjdXJyZW50IGVudGl0eSBzZXQuXG4gKiBAcmV0dXJucyBSZXR1cm5zIGV4cHJlc3Npb24gYmluZGluZyBvciBCb29sZWFuIHZhbHVlIGJhc2VkIG9uIHRoZSBkcmFmdCBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgZ2V0U3dpdGNoVG9EcmFmdFZpc2liaWxpdHkgPSBmdW5jdGlvbiAob0Fubm90YXRpb25zOiBhbnkpOiBhbnkge1xuXHRpZiAoY2hlY2tEcmFmdFN0YXRlKG9Bbm5vdGF0aW9ucykpIHtcblx0XHRyZXR1cm4gXCJ7PSAoJXtEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9EcmFmdElzQ3JlYXRlZEJ5TWV9KSA/ICggISgke3VpPi9pc0VkaXRhYmxlfSkgJiYgISR7dWk+Y3JlYXRlTW9kZX0gJiYgJHtIYXNEcmFmdEVudGl0eX0gJiYgJXtEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9EcmFmdElzQ3JlYXRlZEJ5TWV9ICkgOiBmYWxzZSB9XCI7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIGdldCB0aGUgdmlzaWJpbGl0eSBmb3IgdGhlIFN3aXRjaERyYWZ0QW5kQWN0aXZlIGJ1dHRvbiBpbiB0aGUgb2JqZWN0IHBhZ2Ugb3Igc3Vib2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIG9Bbm5vdGF0aW9ucyBBbm5vdGF0aW9ucyBvZiB0aGUgY3VycmVudCBlbnRpdHkgc2V0LlxuICogQHJldHVybnMgUmV0dXJucyBleHByZXNzaW9uIGJpbmRpbmcgb3IgQm9vbGVhbiB2YWx1ZSBiYXNlZCBvbiB0aGUgZHJhZnQgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFN3aXRjaERyYWZ0QW5kQWN0aXZlVmlzaWJpbGl0eSA9IGZ1bmN0aW9uIChvQW5ub3RhdGlvbnM6IGFueSk6IGFueSB7XG5cdGlmIChjaGVja0RyYWZ0U3RhdGUob0Fubm90YXRpb25zKSkge1xuXHRcdHJldHVybiBcIns9ICgle0RyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0RyYWZ0SXNDcmVhdGVkQnlNZX0pID8gKCAhJHt1aT5jcmVhdGVNb2RlfSAmJiAle0RyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0RyYWZ0SXNDcmVhdGVkQnlNZX0gKSA6IGZhbHNlIH1cIjtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn07XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gZmluZCBhbiBhY3Rpb24gZnJvbSB0aGUgYXJyYXkgb2YgaGVhZGVyIGFjdGlvbnMgaW4gdGhlIGNvbnZlcnRlciBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSBhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnMgQXJyYXkgb2YgJ2hlYWRlcicgYWN0aW9ucyBvbiB0aGUgb2JqZWN0IHBhZ2UuXG4gKiBAcGFyYW0gc0FjdGlvblR5cGUgVGhlIGFjdGlvbiB0eXBlXG4gKiBAcmV0dXJucyBUaGUgYWN0aW9uIHdpdGggdGhlIG1hdGNoaW5nIGFjdGlvbiB0eXBlXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY29uc3QgX2ZpbmRBY3Rpb24gPSBmdW5jdGlvbiAoYUNvbnZlcnRlckNvbnRleHRIZWFkZXJBY3Rpb25zOiBhbnlbXSwgc0FjdGlvblR5cGU6IHN0cmluZykge1xuXHRsZXQgb0FjdGlvbjtcblx0aWYgKGFDb252ZXJ0ZXJDb250ZXh0SGVhZGVyQWN0aW9ucyAmJiBhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnMubGVuZ3RoKSB7XG5cdFx0b0FjdGlvbiA9IGFDb252ZXJ0ZXJDb250ZXh0SGVhZGVyQWN0aW9ucy5maW5kKGZ1bmN0aW9uIChvSGVhZGVyQWN0aW9uOiBhbnkpIHtcblx0XHRcdHJldHVybiBvSGVhZGVyQWN0aW9uLnR5cGUgPT09IHNBY3Rpb25UeXBlO1xuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBvQWN0aW9uO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byBmb3JtYXQgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBmb3IgdGhlIERlbGV0ZSBidXR0b24gb24gdGhlIG9iamVjdCBwYWdlIG9yIHN1Ym9iamVjdCBwYWdlIGluIGNhc2Ugb2YgYSBDb21tYW5kIEV4ZWN1dGlvbi5cbiAqXG4gKiBAcGFyYW0gYUNvbnZlcnRlckNvbnRleHRIZWFkZXJBY3Rpb25zIEFycmF5IG9mIGhlYWRlciBhY3Rpb25zIG9uIHRoZSBvYmplY3QgcGFnZVxuICogQHJldHVybnMgUmV0dXJucyBleHByZXNzaW9uIGJpbmRpbmcgb3IgQm9vbGVhbiB2YWx1ZSBmcm9tIHRoZSBjb252ZXJ0ZXIgb3V0cHV0XG4gKi9cbmV4cG9ydCBjb25zdCBnZXREZWxldGVDb21tYW5kRXhlY3V0aW9uRW5hYmxlZCA9IGZ1bmN0aW9uIChhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnM6IGFueVtdKSB7XG5cdGNvbnN0IG9EZWxldGVBY3Rpb24gPSBfZmluZEFjdGlvbihhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnMsIFwiU2Vjb25kYXJ5XCIpO1xuXHRyZXR1cm4gb0RlbGV0ZUFjdGlvbiA/IG9EZWxldGVBY3Rpb24uZW5hYmxlZCA6IFwidHJ1ZVwiO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byBmb3JtYXQgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBmb3IgdGhlIERlbGV0ZSBidXR0b24gb24gdGhlIG9iamVjdCBwYWdlIG9yIHN1Ym9iamVjdCBwYWdlIGluIGNhc2Ugb2YgYSBDb21tYW5kIEV4ZWN1dGlvbi5cbiAqXG4gKiBAcGFyYW0gYUNvbnZlcnRlckNvbnRleHRIZWFkZXJBY3Rpb25zIEFycmF5IG9mIGhlYWRlciBhY3Rpb25zIG9uIHRoZSBvYmplY3QgcGFnZVxuICogQHJldHVybnMgUmV0dXJucyBleHByZXNzaW9uIGJpbmRpbmcgb3IgQm9vbGVhbiB2YWx1ZSBmcm9tIHRoZSBjb252ZXJ0ZXIgb3V0cHV0XG4gKi9cbmV4cG9ydCBjb25zdCBnZXREZWxldGVDb21tYW5kRXhlY3V0aW9uVmlzaWJsZSA9IGZ1bmN0aW9uIChhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnM6IGFueVtdKSB7XG5cdGNvbnN0IG9EZWxldGVBY3Rpb24gPSBfZmluZEFjdGlvbihhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnMsIFwiU2Vjb25kYXJ5XCIpO1xuXHRyZXR1cm4gb0RlbGV0ZUFjdGlvbiA/IG9EZWxldGVBY3Rpb24udmlzaWJsZSA6IFwidHJ1ZVwiO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byBmb3JtYXQgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBmb3IgdGhlIEVkaXQgYnV0dG9uIG9uIHRoZSBvYmplY3QgcGFnZSBvciBzdWJvYmplY3QgcGFnZSBpbiBjYXNlIG9mIGEgQ29tbWFuZCBFeGVjdXRpb24uXG4gKlxuICogQHBhcmFtIGFDb252ZXJ0ZXJDb250ZXh0SGVhZGVyQWN0aW9ucyBBcnJheSBvZiBoZWFkZXIgYWN0aW9ucyBvbiB0aGUgb2JqZWN0IHBhZ2VcbiAqIEByZXR1cm5zIFJldHVybnMgZXhwcmVzc2lvbiBiaW5kaW5nIG9yIEJvb2xlYW4gdmFsdWUgZnJvbSB0aGUgY29udmVydGVyIG91dHB1dFxuICovXG5leHBvcnQgY29uc3QgZ2V0RWRpdENvbW1hbmRFeGVjdXRpb25WaXNpYmxlID0gZnVuY3Rpb24gKGFDb252ZXJ0ZXJDb250ZXh0SGVhZGVyQWN0aW9uczogYW55W10pIHtcblx0Y29uc3Qgb0VkaXRBY3Rpb24gPSBfZmluZEFjdGlvbihhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnMsIFwiUHJpbWFyeVwiKTtcblx0cmV0dXJuIG9FZGl0QWN0aW9uID8gb0VkaXRBY3Rpb24udmlzaWJsZSA6IFwiZmFsc2VcIjtcbn07XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gZm9ybWF0IHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgZm9yIHRoZSBFZGl0IGJ1dHRvbiBvbiB0aGUgb2JqZWN0IHBhZ2Ugb3Igc3Vib2JqZWN0IHBhZ2UgaW4gY2FzZSBvZiBhIENvbW1hbmQgRXhlY3V0aW9uLlxuICpcbiAqIEBwYXJhbSBhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnMgQXJyYXkgb2YgaGVhZGVyIGFjdGlvbnMgb24gdGhlIG9iamVjdCBwYWdlXG4gKiBAcmV0dXJucyBSZXR1cm5zIGV4cHJlc3Npb24gYmluZGluZyBvciBCb29sZWFuIHZhbHVlIGZyb20gdGhlIGNvbnZlcnRlciBvdXRwdXRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEVkaXRDb21tYW5kRXhlY3V0aW9uRW5hYmxlZCA9IGZ1bmN0aW9uIChhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnM6IGFueVtdKSB7XG5cdGNvbnN0IG9FZGl0QWN0aW9uID0gX2ZpbmRBY3Rpb24oYUNvbnZlcnRlckNvbnRleHRIZWFkZXJBY3Rpb25zLCBcIlByaW1hcnlcIik7XG5cdHJldHVybiBvRWRpdEFjdGlvbiA/IG9FZGl0QWN0aW9uLmVuYWJsZWQgOiBcImZhbHNlXCI7XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIGdldCB0aGUgRWRpdEFjdGlvbiBmcm9tIHRoZSBiYXNlZCBvbiBhIGRyYWZ0LWVuYWJsZWQgYXBwbGljYXRpb24gb3IgYSBzdGlja3kgYXBwbGljYXRpb24uXG4gKlxuICogQHBhcmFtIFtvRW50aXR5U2V0XSBUaGUgdmFsdWUgZnJvbSB0aGUgZXhwcmVzc2lvbi5cbiAqIEByZXR1cm5zIFJldHVybnMgZXhwcmVzc2lvbiBiaW5kaW5nIG9yIEJvb2xlYW4gdmFsdWUgYmFzZWQgb24gdlJhd1ZhbHVlICYgb0RyYWZ0Tm9kZVxuICovXG5leHBvcnQgY29uc3QgZ2V0RWRpdEFjdGlvbiA9IGZ1bmN0aW9uIChvRW50aXR5U2V0OiBDb250ZXh0KSB7XG5cdGNvbnN0IHNQYXRoID0gb0VudGl0eVNldC5nZXRQYXRoKCk7XG5cdGNvbnN0IGFQYXRocyA9IHNQYXRoLnNwbGl0KFwiL1wiKTtcblx0Y29uc3Qgcm9vdEVudGl0eVNldFBhdGggPSBcIi9cIiArIGFQYXRoc1sxXTtcblx0Ly8gZ2V0IHRoZSBlZGl0IGFjdGlvbiBmcm9tIHJvb3QgZW50aXR5IHNldHNcblx0Y29uc3Qgcm9vdEVudGl0eVNldEFubm5vdGF0aW9ucyA9IG9FbnRpdHlTZXQuZ2V0T2JqZWN0KHJvb3RFbnRpdHlTZXRQYXRoICsgXCJAXCIpO1xuXHRjb25zdCBiRHJhZnRSb290ID0gcm9vdEVudGl0eVNldEFubm5vdGF0aW9ucy5oYXNPd25Qcm9wZXJ0eShcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290XCIpO1xuXHRjb25zdCBiRHJhZnROb2RlID0gcm9vdEVudGl0eVNldEFubm5vdGF0aW9ucy5oYXNPd25Qcm9wZXJ0eShcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnROb2RlXCIpO1xuXHRjb25zdCBiU3RpY2t5U2Vzc2lvbiA9IHJvb3RFbnRpdHlTZXRBbm5ub3RhdGlvbnMuaGFzT3duUHJvcGVydHkoXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuU2Vzc2lvbi52MS5TdGlja3lTZXNzaW9uU3VwcG9ydGVkXCIpO1xuXHRsZXQgc0FjdGlvbk5hbWU7XG5cdGlmIChiRHJhZnRSb290KSB7XG5cdFx0c0FjdGlvbk5hbWUgPSBvRW50aXR5U2V0LmdldE9iamVjdChgJHtyb290RW50aXR5U2V0UGF0aH1AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkRyYWZ0Um9vdC9FZGl0QWN0aW9uYCk7XG5cdH0gZWxzZSBpZiAoYkRyYWZ0Tm9kZSkge1xuXHRcdHNBY3Rpb25OYW1lID0gb0VudGl0eVNldC5nZXRPYmplY3QoYCR7cm9vdEVudGl0eVNldFBhdGh9QGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5EcmFmdE5vZGUvRWRpdEFjdGlvbmApO1xuXHR9IGVsc2UgaWYgKGJTdGlja3lTZXNzaW9uKSB7XG5cdFx0c0FjdGlvbk5hbWUgPSBvRW50aXR5U2V0LmdldE9iamVjdChgJHtyb290RW50aXR5U2V0UGF0aH1AY29tLnNhcC52b2NhYnVsYXJpZXMuU2Vzc2lvbi52MS5TdGlja3lTZXNzaW9uU3VwcG9ydGVkL0VkaXRBY3Rpb25gKTtcblx0fVxuXHRyZXR1cm4gIXNBY3Rpb25OYW1lID8gc0FjdGlvbk5hbWUgOiBgJHtyb290RW50aXR5U2V0UGF0aH0vJHtzQWN0aW9uTmFtZX1gO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzUmVhZE9ubHlGcm9tU3RhdGljQW5ub3RhdGlvbnMgPSBmdW5jdGlvbiAob0Fubm90YXRpb25zOiBhbnksIG9GaWVsZENvbnRyb2w6IGFueSkge1xuXHRsZXQgYkNvbXB1dGVkLCBiSW1tdXRhYmxlLCBiUmVhZE9ubHk7XG5cdGlmIChvQW5ub3RhdGlvbnMgJiYgb0Fubm90YXRpb25zW1wiQE9yZy5PRGF0YS5Db3JlLlYxLkNvbXB1dGVkXCJdKSB7XG5cdFx0YkNvbXB1dGVkID0gb0Fubm90YXRpb25zW1wiQE9yZy5PRGF0YS5Db3JlLlYxLkNvbXB1dGVkXCJdLkJvb2wgPyBvQW5ub3RhdGlvbnNbXCJAT3JnLk9EYXRhLkNvcmUuVjEuQ29tcHV0ZWRcIl0uQm9vbCA9PSBcInRydWVcIiA6IHRydWU7XG5cdH1cblx0aWYgKG9Bbm5vdGF0aW9ucyAmJiBvQW5ub3RhdGlvbnNbXCJAT3JnLk9EYXRhLkNvcmUuVjEuSW1tdXRhYmxlXCJdKSB7XG5cdFx0YkltbXV0YWJsZSA9IG9Bbm5vdGF0aW9uc1tcIkBPcmcuT0RhdGEuQ29yZS5WMS5JbW11dGFibGVcIl0uQm9vbCA/IG9Bbm5vdGF0aW9uc1tcIkBPcmcuT0RhdGEuQ29yZS5WMS5JbW11dGFibGVcIl0uQm9vbCA9PSBcInRydWVcIiA6IHRydWU7XG5cdH1cblx0YlJlYWRPbmx5ID0gYkNvbXB1dGVkIHx8IGJJbW11dGFibGU7XG5cblx0aWYgKG9GaWVsZENvbnRyb2wpIHtcblx0XHRiUmVhZE9ubHkgPSBiUmVhZE9ubHkgfHwgb0ZpZWxkQ29udHJvbCA9PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5GaWVsZENvbnRyb2xUeXBlL1JlYWRPbmx5XCI7XG5cdH1cblx0aWYgKGJSZWFkT25seSkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufTtcblxuZXhwb3J0IGNvbnN0IHJlYWRPbmx5RXhwcmVzc2lvbkZyb21EeW5hbWljQW5ub3RhdGlvbnMgPSBmdW5jdGlvbiAob0ZpZWxkQ29udHJvbDogYW55KSB7XG5cdGxldCBzSXNGaWVsZENvbnRyb2xQYXRoUmVhZE9ubHk7XG5cdGlmIChvRmllbGRDb250cm9sKSB7XG5cdFx0aWYgKChNYW5hZ2VkT2JqZWN0IGFzIGFueSkuYmluZGluZ1BhcnNlcihvRmllbGRDb250cm9sKSkge1xuXHRcdFx0c0lzRmllbGRDb250cm9sUGF0aFJlYWRPbmx5ID0gXCIlXCIgKyBvRmllbGRDb250cm9sICsgXCIgPT09IDEgXCI7XG5cdFx0fVxuXHR9XG5cdGlmIChzSXNGaWVsZENvbnRyb2xQYXRoUmVhZE9ubHkpIHtcblx0XHRyZXR1cm4gXCJ7PSBcIiArIHNJc0ZpZWxkQ29udHJvbFBhdGhSZWFkT25seSArIFwiPyBmYWxzZSA6IHRydWUgfVwiO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cbn07XG5cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdGhlIGV4cHJlc3Npb24gZm9yIGNoYXJ0IFRpdGxlIFByZXNzXG4gKlxuICogQGZ1bmN0aW9ud1xuICogQHBhcmFtIHtvQ29uZmlndXJhdGlvbn0gW29Db25maWd1cmF0aW9uc10gY29udHJvbCBjb25maWd1cmF0aW9uIGZyb20gbWFuaWZlc3RcbiAqICBAcGFyYW0ge29NYW5pZmVzdH0gW29NYW5pZmVzdF0gT3V0Ym91bmRzIGZyb20gbWFuaWZlc3RcbiAqIHJldHVybnMge1N0cmluZ30gW3NDb2xsZWN0aW9uTmFtZV0gQ29sbGVjdGlvbiBOYW1lIG9mIHRoZSBNaWNybyBDaGFydFxuICpcbiAqIHJldHVybnMge1N0cmluZ30gW0V4cHJlc3Npb25dIEhhbmRsZXIgRXhwcmVzc2lvbiBmb3IgdGhlIHRpdGxlIHByZXNzXG4gKlxuICovXG5leHBvcnQgY29uc3QgZ2V0RXhwcmVzc2lvbkZvck1pY3JvQ2hhcnRUaXRsZVByZXNzID0gZnVuY3Rpb24gKG9Db25maWd1cmF0aW9uOiBhbnksIG9NYW5pZmVzdE91dGJvdW5kOiBhbnksIHNDb2xsZWN0aW9uTmFtZTogYW55KSB7XG5cdGlmIChvQ29uZmlndXJhdGlvbikge1xuXHRcdGlmIChcblx0XHRcdChvQ29uZmlndXJhdGlvbltcInRhcmdldE91dGJvdW5kXCJdICYmIG9Db25maWd1cmF0aW9uW1widGFyZ2V0T3V0Ym91bmRcIl1bXCJvdXRib3VuZFwiXSkgfHxcblx0XHRcdChvQ29uZmlndXJhdGlvbltcInRhcmdldE91dGJvdW5kXCJdICYmIG9Db25maWd1cmF0aW9uW1widGFyZ2V0T3V0Ym91bmRcIl1bXCJvdXRib3VuZFwiXSAmJiBvQ29uZmlndXJhdGlvbltcInRhcmdldFNlY3Rpb25zXCJdKVxuXHRcdCkge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0XCIuaGFuZGxlcnMub25EYXRhUG9pbnRUaXRsZVByZXNzZWQoJGNvbnRyb2xsZXIsICR7JHNvdXJjZT4vfSwnXCIgK1xuXHRcdFx0XHRKU09OLnN0cmluZ2lmeShvTWFuaWZlc3RPdXRib3VuZCkgK1xuXHRcdFx0XHRcIicsJ1wiICtcblx0XHRcdFx0b0NvbmZpZ3VyYXRpb25bXCJ0YXJnZXRPdXRib3VuZFwiXVtcIm91dGJvdW5kXCJdICtcblx0XHRcdFx0XCInLCdcIiArXG5cdFx0XHRcdHNDb2xsZWN0aW9uTmFtZSArXG5cdFx0XHRcdFwiJyApXCJcblx0XHRcdCk7XG5cdFx0fSBlbHNlIGlmIChvQ29uZmlndXJhdGlvbltcInRhcmdldFNlY3Rpb25zXCJdKSB7XG5cdFx0XHRyZXR1cm4gXCIuaGFuZGxlcnMubmF2aWdhdGVUb1N1YlNlY3Rpb24oJGNvbnRyb2xsZXIsICdcIiArIEpTT04uc3RyaW5naWZ5KG9Db25maWd1cmF0aW9uW1widGFyZ2V0U2VjdGlvbnNcIl0pICsgXCInKVwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxufTtcblxuLypcbiAqIEZ1bmN0aW9uIHRvIHJlbmRlciBDaGFydCBUaXRsZSBhcyBMaW5rXG4gKlxuICogQGZ1bmN0aW9uXG4gKiBAcGFyYW0ge29Db250cm9sQ29uZmlndXJhdGlvbn0gW29Db25maWd1cmF0aW9uc10gY29udHJvbCBjb25maWd1cmF0aW9uIGZyb20gbWFuaWZlc3RcbiAqIHJldHVybnMge1N0cmluZ30gW3NLZXldIEZvciB0aGUgVGFyZ2V0T3V0Ym91bmQgYW5kIFRhcmdldFNlY3Rpb25cbiAqXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRNaWNyb0NoYXJ0VGl0bGVBc0xpbmsgPSBmdW5jdGlvbiAob0NvbnRyb2xDb25maWd1cmF0aW9uOiBhbnkpIHtcblx0aWYgKFxuXHRcdG9Db250cm9sQ29uZmlndXJhdGlvbiAmJlxuXHRcdChvQ29udHJvbENvbmZpZ3VyYXRpb25bXCJ0YXJnZXRPdXRib3VuZFwiXSB8fCAob0NvbnRyb2xDb25maWd1cmF0aW9uW1widGFyZ2V0T3V0Ym91bmRcIl0gJiYgb0NvbnRyb2xDb25maWd1cmF0aW9uW1widGFyZ2V0U2VjdGlvbnNcIl0pKVxuXHQpIHtcblx0XHRyZXR1cm4gXCJFeHRlcm5hbFwiO1xuXHR9IGVsc2UgaWYgKG9Db250cm9sQ29uZmlndXJhdGlvbiAmJiBvQ29udHJvbENvbmZpZ3VyYXRpb25bXCJ0YXJnZXRTZWN0aW9uc1wiXSkge1xuXHRcdHJldHVybiBcIkluUGFnZVwiO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBcIk5vbmVcIjtcblx0fVxufTtcblxuLyogR2V0IGdyb3VwSWQgZnJvbSBjb250cm9sIGNvbmZpZ3VyYXRpb25cbiAqXG4gKiBAZnVuY3Rpb25cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb0NvbmZpZ3VyYXRpb25zXSBjb250cm9sIGNvbmZpZ3VyYXRpb24gZnJvbSBtYW5pZmVzdFxuICogQHBhcmFtIHtTdHJpbmd9IFtzQW5ub3RhdGlvblBhdGhdIEFubm90YXRpb24gUGF0aCBmb3IgdGhlIGNvbmZpZ3VyYXRpb25cbiAqIEBkZXNjcmlwdGlvbiBVc2VkIHRvIGdldCB0aGUgZ3JvdXBJZCBmb3IgRGF0YVBvaW50cyBhbmQgTWljcm9DaGFydHMgaW4gdGhlIEhlYWRlci5cbiAqXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRHcm91cElkRnJvbUNvbmZpZyA9IGZ1bmN0aW9uIChvQ29uZmlndXJhdGlvbnM6IGFueSwgc0Fubm90YXRpb25QYXRoOiBhbnksIHNEZWZhdWx0R3JvdXBJZD86IGFueSkge1xuXHRjb25zdCBvQ29uZmlndXJhdGlvbiA9IG9Db25maWd1cmF0aW9uc1tzQW5ub3RhdGlvblBhdGhdLFxuXHRcdGFBdXRvUGF0dGVybnMgPSBbXCJIZXJvZXNcIiwgXCJEZWNvcmF0aW9uXCIsIFwiV29ya2Vyc1wiLCBcIkxvbmdSdW5uZXJzXCJdO1xuXHRsZXQgc0dyb3VwSWQgPSBzRGVmYXVsdEdyb3VwSWQ7XG5cdGlmIChcblx0XHRvQ29uZmlndXJhdGlvbiAmJlxuXHRcdG9Db25maWd1cmF0aW9uLnJlcXVlc3RHcm91cElkICYmXG5cdFx0YUF1dG9QYXR0ZXJucy5zb21lKGZ1bmN0aW9uIChhdXRvUGF0dGVybjogc3RyaW5nKSB7XG5cdFx0XHRyZXR1cm4gYXV0b1BhdHRlcm4gPT09IG9Db25maWd1cmF0aW9uLnJlcXVlc3RHcm91cElkO1xuXHRcdH0pXG5cdCkge1xuXHRcdHNHcm91cElkID0gXCIkYXV0by5cIiArIG9Db25maWd1cmF0aW9uLnJlcXVlc3RHcm91cElkO1xuXHR9XG5cdHJldHVybiBzR3JvdXBJZDtcbn07XG5cbi8qXG4gKiBHZXQgQ29udGV4dCBCaW5kaW5nIHdpdGggZ3JvdXBJZCBmcm9tIGNvbnRyb2wgY29uZmlndXJhdGlvblxuICpcbiAqIEBmdW5jdGlvblxuICogQHBhcmFtIHtPYmplY3R9IFtvQ29uZmlndXJhdGlvbnNdIGNvbnRyb2wgY29uZmlndXJhdGlvbiBmcm9tIG1hbmlmZXN0XG4gKiBAcGFyYW0ge1N0cmluZ30gW3NLZXldIEFubm90YXRpb24gUGF0aCBmb3Igb2YgdGhlIGNvbmZpZ3VyYXRpb25cbiAqIEBkZXNjcmlwdGlvbiBVc2VkIHRvIGdldCB0aGUgYmluZGluZyBmb3IgRGF0YVBvaW50cyBpbiB0aGUgSGVhZGVyLlxuICpcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEJpbmRpbmdXaXRoR3JvdXBJZEZyb21Db25maWcgPSBmdW5jdGlvbiAob0NvbmZpZ3VyYXRpb25zOiBhbnksIHNLZXk6IGFueSkge1xuXHRjb25zdCBzR3JvdXBJZCA9IGdldEdyb3VwSWRGcm9tQ29uZmlnKG9Db25maWd1cmF0aW9ucywgc0tleSk7XG5cdGxldCBzQmluZGluZztcblx0aWYgKHNHcm91cElkKSB7XG5cdFx0c0JpbmRpbmcgPSBcInsgcGF0aCA6ICcnLCBwYXJhbWV0ZXJzIDogeyAkJGdyb3VwSWQgOiAnXCIgKyBzR3JvdXBJZCArIFwiJyB9IH1cIjtcblx0fVxuXHRyZXR1cm4gc0JpbmRpbmc7XG59O1xuXG4vKipcbiAqIE1ldGhvZCB0byBjaGVjayB3aGV0aGVyIGEgRmllbGRHcm91cCBjb25zaXN0cyBvZiBvbmx5IDEgRGF0YUZpZWxkIHdpdGggTXVsdGlMaW5lIFRleHQgYW5ub3RhdGlvbi5cbiAqXG4gKiBAcGFyYW0gYUZvcm1FbGVtZW50cyBBIGNvbGxlY3Rpb24gb2YgZm9ybSBlbGVtZW50cyB1c2VkIGluIHRoZSBjdXJyZW50IGZpZWxkIGdyb3VwXG4gKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgb25seSAxIGRhdGEgZmllbGQgd2l0aCBNdWx0aWxpbmUgVGV4dCBhbm5vdGF0aW9uIGV4aXN0cy5cbiAqL1xuZXhwb3J0IGNvbnN0IGRvZXNGaWVsZEdyb3VwQ29udGFpbk9ubHlPbmVNdWx0aUxpbmVEYXRhRmllbGQgPSBmdW5jdGlvbiAoYUZvcm1FbGVtZW50czogYW55W10pIHtcblx0cmV0dXJuIGFGb3JtRWxlbWVudHMgJiYgYUZvcm1FbGVtZW50cy5sZW5ndGggPT09IDEgJiYgISFhRm9ybUVsZW1lbnRzWzBdLmlzVmFsdWVNdWx0aWxpbmVUZXh0O1xufTtcblxuLypcbiAqIEdldCB2aXNpYmxpdHkgb2YgYnJlYWRjcnVtYnMuXG4gKlxuICogQGZ1bmN0aW9uXG4gKiBAcGFyYW0ge09iamVjdH0gW29WaWV3RGF0YV0gVmlld0RhdGEgbW9kZWxcbiAqIHJldHVybnMgeyp9IEV4cHJlc3Npb24gb3IgQm9vbGVhbiB2YWx1ZVxuICovXG5leHBvcnQgY29uc3QgZ2V0VmlzaWJsZUV4cHJlc3Npb25Gb3JCcmVhZGNydW1icyA9IGZ1bmN0aW9uIChvVmlld0RhdGE6IGFueSkge1xuXHRyZXR1cm4gb1ZpZXdEYXRhLnNob3dCcmVhZENydW1icyAmJiBvVmlld0RhdGEuZmNsRW5hYmxlZCAhPT0gdW5kZWZpbmVkID8gXCJ7ZmNsaGVscGVyPi9icmVhZENydW1iSXNWaXNpYmxlfVwiIDogb1ZpZXdEYXRhLnNob3dCcmVhZENydW1icztcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB2aWV3RGF0YSBTcGVjaWZpZXMgdGhlIFZpZXdEYXRhIG1vZGVsXG4gKiBAcmV0dXJucyBFeHByZXNzaW9uIG9yIEJvb2xlYW4gdmFsdWVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFNoYXJlQnV0dG9uVmlzaWJpbGl0eSA9IGZ1bmN0aW9uICh2aWV3RGF0YTogYW55KSB7XG5cdGxldCBzU2hhcmVCdXR0b25WaXNpYmlsaXR5RXhwID0gXCIhJHt1aT5jcmVhdGVNb2RlfVwiO1xuXHRpZiAodmlld0RhdGEuZmNsRW5hYmxlZCkge1xuXHRcdHNTaGFyZUJ1dHRvblZpc2liaWxpdHlFeHAgPSBcIiR7ZmNsaGVscGVyPi9zaG93U2hhcmVJY29ufSAmJiBcIiArIHNTaGFyZUJ1dHRvblZpc2liaWxpdHlFeHA7XG5cdH1cblx0aWYgKHZpZXdEYXRhLmlzU2hhcmVCdXR0b25WaXNpYmxlRm9yTXlJbmJveCA9PT0gZmFsc2UpIHtcblx0XHRyZXR1cm4gXCJmYWxzZVwiO1xuXHR9XG5cdHJldHVybiBcIns9IFwiICsgc1NoYXJlQnV0dG9uVmlzaWJpbGl0eUV4cCArIFwiIH1cIjtcbn07XG5cbi8qXG4gKiBHZXRzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBoZWFkZXIgaW5mbyBpbiBlZGl0IG1vZGVcbiAqXG4gKiBJZiBlaXRoZXIgdGhlIHRpdGxlIG9yIGRlc2NyaXB0aW9uIGZpZWxkIGZyb20gdGhlIGhlYWRlciBhbm5vdGF0aW9ucyBhcmUgZWRpdGFibGUsIHRoZW4gdGhlXG4gKiBlZGl0YWJsZSBoZWFkZXIgaW5mbyBpcyB2aXNpYmxlLlxuICpcbiAqIEBmdW5jdGlvblxuICogQHBhcmFtIHtvYmplY3R9IFtvQW5ub3RhdGlvbnNdIEFubm90YXRpb25zIG9iamVjdCBmb3IgZ2l2ZW4gZW50aXR5IHNldFxuICogQHBhcmFtIHtvYmplY3R9IFtvRmllbGRDb250cm9sXSBmaWVsZCBjb250cm9sXG4gKiByZXR1cm5zIHsqfSAgYmluZGluZyBleHByZXNzaW9uIG9yIGJvb2xlYW4gdmFsdWUgcmVzb2x2ZWQgZm9ybSBmdW5jaXRvbnMgaXNSZWFkT25seUZyb21TdGF0aWNBbm5vdGF0aW9ucyBhbmQgaXNSZWFkT25seUZyb21EeW5hbWljQW5ub3RhdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFZpc2libGl0eU9mSGVhZGVySW5mbyA9IGZ1bmN0aW9uIChcblx0b1RpdGxlQW5ub3RhdGlvbnM6IGFueSxcblx0b0Rlc2NyaXB0aW9uQW5ub3RhdGlvbnM6IGFueSxcblx0b0ZpZWxkVGl0bGVGaWVsZENvbnRyb2w6IGFueSxcblx0b0ZpZWxkRGVzY3JpcHRpb25GaWVsZENvbnRyb2w6IGFueVxuKSB7XG5cdC8vIENoZWNrIEFubm90YXRpb25zIGZvciBUaXRsZSBGaWVsZFxuXHQvLyBTZXQgdG8gdHJ1ZSBhbmQgZG9uJ3QgdGFrZSBpbnRvIGFjY291bnQsIGlmIHRoZXJlIGFyZSBubyBhbm5vdGF0aW9ucywgaS5lLiBubyB0aXRsZSBleGlzdHNcblx0Y29uc3QgYklzVGl0bGVSZWFkT25seSA9IG9UaXRsZUFubm90YXRpb25zID8gaXNSZWFkT25seUZyb21TdGF0aWNBbm5vdGF0aW9ucyhvVGl0bGVBbm5vdGF0aW9ucywgb0ZpZWxkVGl0bGVGaWVsZENvbnRyb2wpIDogdHJ1ZTtcblx0Y29uc3QgdGl0bGVFeHByZXNzaW9uID0gcmVhZE9ubHlFeHByZXNzaW9uRnJvbUR5bmFtaWNBbm5vdGF0aW9ucyhvRmllbGRUaXRsZUZpZWxkQ29udHJvbCk7XG5cdC8vIFRoZXJlIGlzIG5vIGV4cHJlc3Npb24gYW5kIHRoZSB0aXRsZSBpcyBub3QgcmVhZHkgb25seSwgdGhpcyBpcyBzdWZmaWNpZW50IGZvciBhbiBlZGl0YWJsZSBoZWFkZXJcblx0aWYgKCFiSXNUaXRsZVJlYWRPbmx5ICYmICF0aXRsZUV4cHJlc3Npb24pIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdC8vIENoZWNrIEFubm90YXRpb25zIGZvciBEZXNjcmlwdGlvbiBGaWVsZFxuXHQvLyBTZXQgdG8gdHJ1ZSBhbmQgZG9uJ3QgdGFrZSBpbnRvIGFjY291bnQsIGlmIHRoZXJlIGFyZSBubyBhbm5vdGF0aW9ucywgaS5lLiBubyBkZXNjcmlwdGlvbiBleGlzdHNcblx0Y29uc3QgYklzRGVzY3JpcHRpb25SZWFkT25seSA9IG9EZXNjcmlwdGlvbkFubm90YXRpb25zXG5cdFx0PyBpc1JlYWRPbmx5RnJvbVN0YXRpY0Fubm90YXRpb25zKG9EZXNjcmlwdGlvbkFubm90YXRpb25zLCBvRmllbGREZXNjcmlwdGlvbkZpZWxkQ29udHJvbClcblx0XHQ6IHRydWU7XG5cdGNvbnN0IGRlc2NyaXB0aW9uRXhwcmVzc2lvbiA9IHJlYWRPbmx5RXhwcmVzc2lvbkZyb21EeW5hbWljQW5ub3RhdGlvbnMob0ZpZWxkRGVzY3JpcHRpb25GaWVsZENvbnRyb2wpO1xuXHQvLyBUaGVyZSBpcyBubyBleHByZXNzaW9uIGFuZCB0aGUgZGVzY3JpcHRpb24gaXMgbm90IHJlYWR5IG9ubHksIHRoaXMgaXMgc3VmZmljaWVudCBmb3IgYW4gZWRpdGFibGUgaGVhZGVyXG5cdGlmICghYklzRGVzY3JpcHRpb25SZWFkT25seSAmJiAhZGVzY3JpcHRpb25FeHByZXNzaW9uKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHQvLyBCb3RoIHRpdGxlIGFuZCBkZXNjcmlwdGlvbiBhcmUgbm90IGVkaXRhYmxlIGFuZCB0aGVyZSBhcmUgbm8gZHluYW1pYyBhbm5vdGF0aW9uc1xuXHRpZiAoYklzVGl0bGVSZWFkT25seSAmJiBiSXNEZXNjcmlwdGlvblJlYWRPbmx5ICYmICF0aXRsZUV4cHJlc3Npb24gJiYgIWRlc2NyaXB0aW9uRXhwcmVzc2lvbikge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8vIE5vdyBjb21iaW5lIGV4cHJlc3Npb25zXG5cdGlmICh0aXRsZUV4cHJlc3Npb24gJiYgIWRlc2NyaXB0aW9uRXhwcmVzc2lvbikge1xuXHRcdHJldHVybiB0aXRsZUV4cHJlc3Npb247XG5cdH0gZWxzZSBpZiAoIXRpdGxlRXhwcmVzc2lvbiAmJiBkZXNjcmlwdGlvbkV4cHJlc3Npb24pIHtcblx0XHRyZXR1cm4gZGVzY3JpcHRpb25FeHByZXNzaW9uO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBjb21iaW5lVGl0bGVBbmREZXNjcmlwdGlvbkV4cHJlc3Npb24ob0ZpZWxkVGl0bGVGaWVsZENvbnRyb2wsIG9GaWVsZERlc2NyaXB0aW9uRmllbGRDb250cm9sKTtcblx0fVxufTtcblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVUaXRsZUFuZERlc2NyaXB0aW9uRXhwcmVzc2lvbiA9IGZ1bmN0aW9uIChvVGl0bGVGaWVsZENvbnRyb2w6IGFueSwgb0Rlc2NyaXB0aW9uRmllbGRDb250cm9sOiBhbnkpIHtcblx0Ly8gSWYgYm90aCBoZWFkZXIgYW5kIHRpdGxlIGZpZWxkIGFyZSBiYXNlZCBvbiBkeW5tYWljIGZpZWxkIGNvbnRyb2wsIHRoZSBlZGl0YWJsZSBoZWFkZXJcblx0Ly8gaXMgdmlzaWJsZSBpZiBhdCBsZWFzdCBvbmUgb2YgdGhlc2UgaXMgbm90IHJlYWR5IG9ubHlcblx0cmV0dXJuIFwiez0gJVwiICsgb1RpdGxlRmllbGRDb250cm9sICsgXCIgPT09IDEgPyAoICVcIiArIG9EZXNjcmlwdGlvbkZpZWxkQ29udHJvbCArIFwiID09PSAxID8gZmFsc2UgOiB0cnVlICkgOiB0cnVlIH1cIjtcbn07XG5cbi8qXG4gKiBHZXQgRXhwcmVzc2lvbiBvZiBwcmVzcyBldmVudCBvZiBkZWxldGUgYnV0dG9uLlxuICpcbiAqIEBmdW5jdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IFtzRW50aXR5U2V0TmFtZV0gRW50aXR5IHNldCBuYW1lXG4gKiByZXR1cm5zIHtzdHJpbmd9ICBiaW5kaW5nIGV4cHJlc3Npb24gLyBmdW5jdGlvbiBzdHJpbmcgZ2VuZXJhdGVkIGZyb20gY29tbWFuaGVscGVyJ3MgZnVuY3Rpb24gZ2VuZXJhdGVGdW5jdGlvblxuICovXG5leHBvcnQgY29uc3QgZ2V0UHJlc3NFeHByZXNzaW9uRm9yRGVsZXRlID0gZnVuY3Rpb24gKGVudGl0eVNldDogT2JqZWN0LCBvSW50ZXJmYWNlOiBDb21wdXRlZEFubm90YXRpb25JbnRlcmZhY2UpOiBzdHJpbmcge1xuXHRjb25zdCBzRGVsZXRhYmxlQ29udGV4dHMgPSBcIiR7JHZpZXc+L2dldEJpbmRpbmdDb250ZXh0fVwiLFxuXHRcdHNUaXRsZSA9IFwiJHskdmlldz4vI2ZlOjpPYmplY3RQYWdlL2dldEhlYWRlclRpdGxlL2dldEV4cGFuZGVkSGVhZGluZy9nZXRJdGVtcy8xL2dldFRleHR9XCIsXG5cdFx0c0Rlc2NyaXB0aW9uID0gXCIkeyR2aWV3Pi8jZmU6Ok9iamVjdFBhZ2UvZ2V0SGVhZGVyVGl0bGUvZ2V0RXhwYW5kZWRDb250ZW50LzAvZ2V0SXRlbXMvMC9nZXRUZXh0fVwiO1xuXHRjb25zdCBlc0NvbnRleHQgPSBvSW50ZXJmYWNlICYmIG9JbnRlcmZhY2UuY29udGV4dDtcblx0Y29uc3QgY29udGV4dFBhdGggPSBlc0NvbnRleHQuZ2V0UGF0aCgpO1xuXHRjb25zdCBjb250ZXh0UGF0aFBhcnRzID0gY29udGV4dFBhdGguc3BsaXQoXCIvXCIpLmZpbHRlcihNb2RlbEhlbHBlci5maWx0ZXJPdXROYXZQcm9wQmluZGluZyk7XG5cdGNvbnN0IHNFbnRpdHlTZXROYW1lID1cblx0XHRjb250ZXh0UGF0aFBhcnRzLmxlbmd0aCA+IDEgPyBlc0NvbnRleHQuZ2V0TW9kZWwoKS5nZXRPYmplY3QoYC8ke2NvbnRleHRQYXRoUGFydHMuam9pbihcIi9cIil9QHNhcHVpLm5hbWVgKSA6IGNvbnRleHRQYXRoUGFydHNbMF07XG5cdGNvbnN0IG9QYXJhbXMgPSB7XG5cdFx0dGl0bGU6IHNUaXRsZSxcblx0XHRlbnRpdHlTZXROYW1lOiBDb21tb25IZWxwZXIuYWRkU2luZ2xlUXVvdGVzKHNFbnRpdHlTZXROYW1lKSxcblx0XHRkZXNjcmlwdGlvbjogc0Rlc2NyaXB0aW9uXG5cdH07XG5cdHJldHVybiBDb21tb25IZWxwZXIuZ2VuZXJhdGVGdW5jdGlvbihcIi5lZGl0Rmxvdy5kZWxldGVEb2N1bWVudFwiLCBzRGVsZXRhYmxlQ29udGV4dHMsIENvbW1vbkhlbHBlci5vYmplY3RUb1N0cmluZyhvUGFyYW1zKSk7XG59O1xuXG5nZXRQcmVzc0V4cHJlc3Npb25Gb3JEZWxldGUucmVxdWlyZXNJQ29udGV4dCA9IHRydWU7XG5cbi8qXG4gKiBHZXQgRXhwcmVzc2lvbiBvZiBwcmVzcyBldmVudCBvZiBFZGl0IGJ1dHRvbi5cbiAqXG4gKiBAZnVuY3Rpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBbb0RhdGFGaWVsZF0gRGF0YSBmaWVsZCBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc0VudGl0eVNldE5hbWVdIEVudGl0eSBzZXQgbmFtZVxuICogQHBhcmFtIHtvYmplY3R9IFtvSGVhZGVyQWN0aW9uXSBIZWFkZXIgYWN0aW9uIG9iamVjdFxuICogcmV0dXJucyB7c3RyaW5nfSAgYmluZGluZyBleHByZXNzaW9uIC8gZnVuY3Rpb24gc3RyaW5nIGdlbmVyYXRlZCBmcm9tIGNvbW1hbmhlbHBlcidzIGZ1bmN0aW9uIGdlbmVyYXRlRnVuY3Rpb25cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFByZXNzRXhwcmVzc2lvbkZvckVkaXQgPSBmdW5jdGlvbiAob0RhdGFGaWVsZDogYW55LCBzRW50aXR5U2V0TmFtZTogYW55LCBvSGVhZGVyQWN0aW9uOiBhbnkpIHtcblx0Y29uc3Qgc0VkaXRhYmxlQ29udGV4dHMgPSBDb21tb25IZWxwZXIuYWRkU2luZ2xlUXVvdGVzKG9EYXRhRmllbGQgJiYgb0RhdGFGaWVsZC5BY3Rpb24pLFxuXHRcdHNEYXRhRmllbGRFbnVtTWVtYmVyID0gb0RhdGFGaWVsZCAmJiBvRGF0YUZpZWxkLkludm9jYXRpb25Hcm91cGluZyAmJiBvRGF0YUZpZWxkLkludm9jYXRpb25Hcm91cGluZ1tcIiRFbnVtTWVtYmVyXCJdLFxuXHRcdHNJbnZvY2F0aW9uR3JvdXAgPSBzRGF0YUZpZWxkRW51bU1lbWJlciA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5PcGVyYXRpb25Hcm91cGluZ1R5cGUvQ2hhbmdlU2V0XCIgPyBcIkNoYW5nZVNldFwiIDogXCJJc29sYXRlZFwiO1xuXHRjb25zdCBvUGFyYW1zID0ge1xuXHRcdGNvbnRleHRzOiBcIiR7JHZpZXc+L2dldEJpbmRpbmdDb250ZXh0fVwiLFxuXHRcdGVudGl0eVNldE5hbWU6IENvbW1vbkhlbHBlci5hZGRTaW5nbGVRdW90ZXMoc0VudGl0eVNldE5hbWUpLFxuXHRcdGludm9jYXRpb25Hcm91cGluZzogQ29tbW9uSGVscGVyLmFkZFNpbmdsZVF1b3RlcyhzSW52b2NhdGlvbkdyb3VwKSxcblx0XHRtb2RlbDogXCIkeyRzb3VyY2U+L30uZ2V0TW9kZWwoKVwiLFxuXHRcdGxhYmVsOiBDb21tb25IZWxwZXIuYWRkU2luZ2xlUXVvdGVzKG9EYXRhRmllbGQgJiYgb0RhdGFGaWVsZC5MYWJlbCwgdHJ1ZSksXG5cdFx0aXNOYXZpZ2FibGU6IG9IZWFkZXJBY3Rpb24gJiYgb0hlYWRlckFjdGlvbi5pc05hdmlnYWJsZSxcblx0XHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb246XG5cdFx0XHRvSGVhZGVyQWN0aW9uICYmIG9IZWFkZXJBY3Rpb24uZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uID8gYCcke29IZWFkZXJBY3Rpb24uZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9ufSdgIDogdW5kZWZpbmVkXG5cdH07XG5cdHJldHVybiBDb21tb25IZWxwZXIuZ2VuZXJhdGVGdW5jdGlvbihcIi5oYW5kbGVycy5vbkNhbGxBY3Rpb25cIiwgXCIkeyR2aWV3Pi99XCIsIHNFZGl0YWJsZUNvbnRleHRzLCBDb21tb25IZWxwZXIub2JqZWN0VG9TdHJpbmcob1BhcmFtcykpO1xufTtcblxuLypcbiAqIE1ldGhvZCB0byBnZXQgdGhlIGV4cHJlc3Npb24gZm9yIHRoZSAncHJlc3MnIGV2ZW50IGZvciBmb290ZXIgYW5ub3RhdGlvbiBhY3Rpb25zXG4gKlxuICogQGZ1bmN0aW9uXG4gKiBAcGFyYW0ge29iamVjdH0gW29EYXRhRmllbGRdIERhdGEgZmllbGQgb2JqZWN0XG4gKiBAcGFyYW0ge3N0cmluZ30gW3NFbnRpdHlTZXROYW1lXSBFbnRpdHkgc2V0IG5hbWVcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb0hlYWRlckFjdGlvbl0gSGVhZGVyIGFjdGlvbiBvYmplY3RcbiAqIHJldHVybnMge3N0cmluZ30gIEJpbmRpbmcgZXhwcmVzc2lvbiBvciBmdW5jdGlvbiBzdHJpbmcgdGhhdCBpcyBnZW5lcmF0ZWQgZnJvbSB0aGUgQ29tbW9uaGVscGVyJ3MgZnVuY3Rpb24gZ2VuZXJhdGVGdW5jdGlvblxuICovXG5leHBvcnQgY29uc3QgZ2V0UHJlc3NFeHByZXNzaW9uRm9yRm9vdGVyQW5ub3RhdGlvbkFjdGlvbiA9IGZ1bmN0aW9uIChcblx0ZGF0YUZpZWxkOiBEYXRhRmllbGRGb3JBY3Rpb24sXG5cdHNFbnRpdHlTZXROYW1lOiBhbnksXG5cdG9IZWFkZXJBY3Rpb246IGFueVxuKSB7XG5cdGNvbnN0IHNBY3Rpb25Db250ZXh0cyA9IENvbW1vbkhlbHBlci5hZGRTaW5nbGVRdW90ZXMoZGF0YUZpZWxkLkFjdGlvbiBhcyBzdHJpbmcpLFxuXHRcdHNEYXRhRmllbGRFbnVtTWVtYmVyID0gZGF0YUZpZWxkLkludm9jYXRpb25Hcm91cGluZyxcblx0XHRzSW52b2NhdGlvbkdyb3VwID0gc0RhdGFGaWVsZEVudW1NZW1iZXIgPT09IFwiVUkuT3BlcmF0aW9uR3JvdXBpbmdUeXBlL0NoYW5nZVNldFwiID8gXCJDaGFuZ2VTZXRcIiA6IFwiSXNvbGF0ZWRcIjtcblx0Y29uc3Qgb1BhcmFtcyA9IHtcblx0XHRjb250ZXh0czogXCIkeyR2aWV3Pi8jZmU6Ok9iamVjdFBhZ2UvfS5nZXRCaW5kaW5nQ29udGV4dCgpXCIsXG5cdFx0ZW50aXR5U2V0TmFtZTogQ29tbW9uSGVscGVyLmFkZFNpbmdsZVF1b3RlcyhzRW50aXR5U2V0TmFtZSksXG5cdFx0aW52b2NhdGlvbkdyb3VwaW5nOiBDb21tb25IZWxwZXIuYWRkU2luZ2xlUXVvdGVzKHNJbnZvY2F0aW9uR3JvdXApLFxuXHRcdG1vZGVsOiBcIiR7JHNvdXJjZT4vfS5nZXRNb2RlbCgpXCIsXG5cdFx0bGFiZWw6IENvbW1vbkhlbHBlci5hZGRTaW5nbGVRdW90ZXMoZGF0YUZpZWxkLkxhYmVsIGFzIHN0cmluZywgdHJ1ZSksXG5cdFx0aXNOYXZpZ2FibGU6IG9IZWFkZXJBY3Rpb24gJiYgb0hlYWRlckFjdGlvbi5pc05hdmlnYWJsZSxcblx0XHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb246XG5cdFx0XHRvSGVhZGVyQWN0aW9uICYmIG9IZWFkZXJBY3Rpb24uZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uID8gYCcke29IZWFkZXJBY3Rpb24uZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9ufSdgIDogdW5kZWZpbmVkXG5cdH07XG5cdHJldHVybiBDb21tb25IZWxwZXIuZ2VuZXJhdGVGdW5jdGlvbihcIi5oYW5kbGVycy5vbkNhbGxBY3Rpb25cIiwgXCIkeyR2aWV3Pi99XCIsIHNBY3Rpb25Db250ZXh0cywgQ29tbW9uSGVscGVyLm9iamVjdFRvU3RyaW5nKG9QYXJhbXMpKTtcbn07XG5cbi8qXG4gKiBHZXQgRXhwcmVzc2lvbiBvZiBleGVjdXRlIGV2ZW50IGV4cHJlc3Npb24gb2YgcHJpbWFyeSBhY3Rpb24uXG4gKlxuICogQGZ1bmN0aW9uXG4gKiBAcGFyYW0ge29iamVjdH0gW29EYXRhRmllbGRdIERhdGEgZmllbGQgb2JqZWN0XG4gKiBAcGFyYW0ge3N0cmluZ30gW3NFbnRpdHlTZXROYW1lXSBFbnRpdHkgc2V0IG5hbWVcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb0hlYWRlckFjdGlvbl0gSGVhZGVyIGFjdGlvbiBvYmplY3RcbiAqIEBwYXJhbSB7Q29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfCBzdHJpbmd9IFRoZSB2aXNpYmlsaXR5IG9mIHNlbWF0aWMgcG9zaXRpdmUgYWN0aW9uXG4gKiBAcGFyYW0ge0NvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHwgc3RyaW5nfSBUaGUgZW5hYmxlbWVudCBvZiBzZW1hbnRpYyBwb3NpdGl2ZSBhY3Rpb25cbiAqIEBwYXJhbSB7Q29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfCBzdHJpbmd9IFRoZSBFZGl0IGJ1dHRvbiB2aXNpYmlsaXR5XG4gKiBAcGFyYW0ge0NvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHwgc3RyaW5nfSBUaGUgZW5hYmxlbWVudCBvZiBFZGl0IGJ1dHRvblxuICogcmV0dXJucyB7c3RyaW5nfSAgYmluZGluZyBleHByZXNzaW9uIC8gZnVuY3Rpb24gc3RyaW5nIGdlbmVyYXRlZCBmcm9tIGNvbW1hbmhlbHBlcidzIGZ1bmN0aW9uIGdlbmVyYXRlRnVuY3Rpb25cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFByZXNzRXhwcmVzc2lvbkZvclByaW1hcnlBY3Rpb24gPSBmdW5jdGlvbiAoXG5cdG9EYXRhRmllbGQ6IGFueSxcblx0c0VudGl0eVNldE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcblx0b0hlYWRlckFjdGlvbjogQmFzZUFjdGlvbiB8IG51bGwsXG5cdHBvc2l0aXZlQWN0aW9uVmlzaWJsZTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfCBzdHJpbmcsXG5cdHBvc2l0aXZlQWN0aW9uRW5hYmxlZDogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfCBzdHJpbmcsXG5cdGVkaXRBY3Rpb25WaXNpYmxlOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB8IHN0cmluZyxcblx0ZWRpdEFjdGlvbkVuYWJsZWQ6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHwgc3RyaW5nXG4pIHtcblx0Y29uc3Qgc0FjdGlvbkNvbnRleHRzID0gQ29tbW9uSGVscGVyLmFkZFNpbmdsZVF1b3RlcyhvRGF0YUZpZWxkICYmIG9EYXRhRmllbGQuQWN0aW9uKSxcblx0XHRzRGF0YUZpZWxkRW51bU1lbWJlciA9IG9EYXRhRmllbGQgJiYgb0RhdGFGaWVsZC5JbnZvY2F0aW9uR3JvdXBpbmcgJiYgb0RhdGFGaWVsZC5JbnZvY2F0aW9uR3JvdXBpbmdbXCIkRW51bU1lbWJlclwiXSxcblx0XHRzSW52b2NhdGlvbkdyb3VwID0gc0RhdGFGaWVsZEVudW1NZW1iZXIgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuT3BlcmF0aW9uR3JvdXBpbmdUeXBlL0NoYW5nZVNldFwiID8gXCJDaGFuZ2VTZXRcIiA6IFwiSXNvbGF0ZWRcIjtcblx0Y29uc3Qgb1BhcmFtcyA9IHtcblx0XHRjb250ZXh0czogXCIkeyR2aWV3Pi8jZmU6Ok9iamVjdFBhZ2UvfS5nZXRCaW5kaW5nQ29udGV4dCgpXCIsXG5cdFx0ZW50aXR5U2V0TmFtZTogc0VudGl0eVNldE5hbWUgPyBDb21tb25IZWxwZXIuYWRkU2luZ2xlUXVvdGVzKHNFbnRpdHlTZXROYW1lKSA6IFwiXCIsXG5cdFx0aW52b2NhdGlvbkdyb3VwaW5nOiBDb21tb25IZWxwZXIuYWRkU2luZ2xlUXVvdGVzKHNJbnZvY2F0aW9uR3JvdXApLFxuXHRcdG1vZGVsOiBcIiR7JHNvdXJjZT4vfS5nZXRNb2RlbCgpXCIsXG5cdFx0bGFiZWw6IENvbW1vbkhlbHBlci5hZGRTaW5nbGVRdW90ZXMob0RhdGFGaWVsZD8uTGFiZWwsIHRydWUpLFxuXHRcdGlzTmF2aWdhYmxlOiBvSGVhZGVyQWN0aW9uPy5pc05hdmlnYWJsZSxcblx0XHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb246IG9IZWFkZXJBY3Rpb24/LmRlZmF1bHRWYWx1ZXNFeHRlbnNpb25GdW5jdGlvblxuXHRcdFx0PyBgJyR7b0hlYWRlckFjdGlvbi5kZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb259J2Bcblx0XHRcdDogdW5kZWZpbmVkXG5cdH07XG5cdGNvbnN0IG9Db25kaXRpb25zID0ge1xuXHRcdHBvc2l0aXZlQWN0aW9uVmlzaWJsZSxcblx0XHRwb3NpdGl2ZUFjdGlvbkVuYWJsZWQsXG5cdFx0ZWRpdEFjdGlvblZpc2libGUsXG5cdFx0ZWRpdEFjdGlvbkVuYWJsZWRcblx0fTtcblx0cmV0dXJuIENvbW1vbkhlbHBlci5nZW5lcmF0ZUZ1bmN0aW9uKFxuXHRcdFwiLmhhbmRsZXJzLm9uUHJpbWFyeUFjdGlvblwiLFxuXHRcdFwiJGNvbnRyb2xsZXJcIixcblx0XHRcIiR7JHZpZXc+L31cIixcblx0XHRcIiR7JHZpZXc+L2dldEJpbmRpbmdDb250ZXh0fVwiLFxuXHRcdHNBY3Rpb25Db250ZXh0cyxcblx0XHRDb21tb25IZWxwZXIub2JqZWN0VG9TdHJpbmcob1BhcmFtcyksXG5cdFx0Q29tbW9uSGVscGVyLm9iamVjdFRvU3RyaW5nKG9Db25kaXRpb25zKVxuXHQpO1xufTtcblxuLypcbiAqIEdldHMgdGhlIGJpbmRpbmcgb2YgdGhlIGNvbnRhaW5lciBIQm94IGZvciB0aGUgaGVhZGVyIGZhY2V0LlxuICpcbiAqIEBmdW5jdGlvblxuICogQHBhcmFtIHtvYmplY3R9IFtvQ29udHJvbENvbmZpZ3VyYXRpb25dIFRoZSBjb250cm9sIGNvbmZpZ3VyYXRpb24gZm9ybSBvZiB0aGUgdmlld0RhdGEgbW9kZWxcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb0hlYWRlckZhY2V0XSBUaGUgb2JqZWN0IG9mIHRoZSBoZWFkZXIgZmFjZXRcbiAqIHJldHVybnMgeyp9ICBUaGUgYmluZGluZyBleHByZXNzaW9uIGZyb20gZnVuY3Rpb24gZ2V0QmluZGluZ1dpdGhHcm91cElkRnJvbUNvbmZpZyBvciB1bmRlZmluZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTdGFzaGFibGVIQm94QmluZGluZyA9IGZ1bmN0aW9uIChvQ29udHJvbENvbmZpZ3VyYXRpb246IGFueSwgb0hlYWRlckZhY2V0OiBhbnkpIHtcblx0aWYgKG9IZWFkZXJGYWNldCAmJiBvSGVhZGVyRmFjZXQuRmFjZXQgJiYgb0hlYWRlckZhY2V0LkZhY2V0LnRhcmdldEFubm90YXRpb25UeXBlID09PSBcIkRhdGFQb2ludFwiKSB7XG5cdFx0cmV0dXJuIGdldEJpbmRpbmdXaXRoR3JvdXBJZEZyb21Db25maWcob0NvbnRyb2xDb25maWd1cmF0aW9uLCBvSGVhZGVyRmFjZXQuRmFjZXQudGFyZ2V0QW5ub3RhdGlvblZhbHVlKTtcblx0fVxufTtcblxuLypcbiAqIEdldHMgdGhlICdQcmVzcycgZXZlbnQgZXhwcmVzc2lvbiBmb3IgdGhlIGV4dGVybmFsIGFuZCBpbnRlcm5hbCBkYXRhIHBvaW50IGxpbmsuXG4gKlxuICogQGZ1bmN0aW9uXG4gKiBAcGFyYW0ge29iamVjdH0gW29Db25maWd1cmF0aW9uXSBDb250cm9sIGNvbmZpZ3VyYXRpb24gZnJvbSBtYW5pZmVzdFxuICogQHBhcmFtIHtvYmplY3R9IFtvTWFuaWZlc3RPdXRib3VuZF0gT3V0Ym91bmRzIGZyb20gbWFuaWZlc3RcbiAqIHJldHVybnMge3N0cmluZ30gVGhlIHJ1bnRpbWUgYmluZGluZyBvZiB0aGUgJ1ByZXNzJyBldmVudFxuICovXG5leHBvcnQgY29uc3QgZ2V0UHJlc3NFeHByZXNzaW9uRm9yTGluayA9IGZ1bmN0aW9uIChvQ29uZmlndXJhdGlvbjogYW55LCBvTWFuaWZlc3RPdXRib3VuZDogYW55KSB7XG5cdGlmIChvQ29uZmlndXJhdGlvbikge1xuXHRcdGlmIChvQ29uZmlndXJhdGlvbltcInRhcmdldE91dGJvdW5kXCJdICYmIG9Db25maWd1cmF0aW9uW1widGFyZ2V0T3V0Ym91bmRcIl1bXCJvdXRib3VuZFwiXSkge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0XCIuaGFuZGxlcnMub25EYXRhUG9pbnRUaXRsZVByZXNzZWQoJGNvbnRyb2xsZXIsICR7JHNvdXJjZT59LCBcIiArXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KG9NYW5pZmVzdE91dGJvdW5kKSArXG5cdFx0XHRcdFwiLFwiICtcblx0XHRcdFx0SlNPTi5zdHJpbmdpZnkob0NvbmZpZ3VyYXRpb25bXCJ0YXJnZXRPdXRib3VuZFwiXVtcIm91dGJvdW5kXCJdKSArXG5cdFx0XHRcdFwiKVwiXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSBpZiAob0NvbmZpZ3VyYXRpb25bXCJ0YXJnZXRTZWN0aW9uc1wiXSkge1xuXHRcdFx0cmV0dXJuIFwiLmhhbmRsZXJzLm5hdmlnYXRlVG9TdWJTZWN0aW9uKCRjb250cm9sbGVyLCAnXCIgKyBKU09OLnN0cmluZ2lmeShvQ29uZmlndXJhdGlvbltcInRhcmdldFNlY3Rpb25zXCJdKSArIFwiJylcIjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIZWFkZXJGb3JtSGJveFJlbmRlclR5cGUgPSBmdW5jdGlvbiAoZGF0YUZpZWxkOiBEYXRhTW9kZWxPYmplY3RQYXRoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0aWYgKGRhdGFGaWVsZD8udGFyZ2V0T2JqZWN0Py4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQW5ub3RhdGlvbikge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblx0cmV0dXJuIFwiQmFyZVwiO1xufTtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBhY3Rpb24gZ3JvdXAgaGFuZGxlciB0aGF0IGlzIGludm9rZWQgd2hlbiBhZGRpbmcgdGhlIG1lbnUgYnV0dG9uIGhhbmRsaW5nIGFwcHJvcHJpYXRlbHkuXG4gKlxuICogQHBhcmFtIG9DdHggVGhlIGN1cnJlbnQgY29udGV4dCBpbiB3aGljaCB0aGUgaGFuZGxlciBpcyBjYWxsZWRcbiAqIEBwYXJhbSBvQWN0aW9uIFRoZSBjdXJyZW50IGFjdGlvbiBjb250ZXh0XG4gKiBAcGFyYW0gb0RhdGFGaWVsZEZvckRlZmF1bHRBY3Rpb24gVGhlIGN1cnJlbnQgZGF0YUZpZWxkIGZvciB0aGUgZGVmYXVsdCBhY3Rpb25cbiAqIEBwYXJhbSBkZWZhdWx0QWN0aW9uQ29udGV4dE9yRW50aXR5U2V0IFRoZSBjdXJyZW50IGNvbnRleHQgZm9yIHRoZSBkZWZhdWx0IGFjdGlvblxuICogQHJldHVybnMgVGhlIGFwcHJvcHJpYXRlIGV4cHJlc3Npb24gc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0QWN0aW9uSGFuZGxlcihvQ3R4OiBhbnksIG9BY3Rpb246IGFueSwgb0RhdGFGaWVsZEZvckRlZmF1bHRBY3Rpb246IGFueSwgZGVmYXVsdEFjdGlvbkNvbnRleHRPckVudGl0eVNldDogYW55KSB7XG5cdGlmIChvQWN0aW9uLmRlZmF1bHRBY3Rpb24pIHtcblx0XHR0cnkge1xuXHRcdFx0c3dpdGNoIChvQWN0aW9uLmRlZmF1bHRBY3Rpb24udHlwZSkge1xuXHRcdFx0XHRjYXNlIFwiRm9yQWN0aW9uXCI6IHtcblx0XHRcdFx0XHRyZXR1cm4gZ2V0UHJlc3NFeHByZXNzaW9uRm9yRWRpdChvRGF0YUZpZWxkRm9yRGVmYXVsdEFjdGlvbiwgZGVmYXVsdEFjdGlvbkNvbnRleHRPckVudGl0eVNldCwgb0FjdGlvbi5kZWZhdWx0QWN0aW9uKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjYXNlIFwiRm9yTmF2aWdhdGlvblwiOiB7XG5cdFx0XHRcdFx0aWYgKG9BY3Rpb24uZGVmYXVsdEFjdGlvbi5jb21tYW5kKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gXCJjbWQ6XCIgKyBvQWN0aW9uLmRlZmF1bHRBY3Rpb24uY29tbWFuZDtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0cmV0dXJuIG9BY3Rpb24uZGVmYXVsdEFjdGlvbi5wcmVzcztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZGVmYXVsdDoge1xuXHRcdFx0XHRcdGlmIChvQWN0aW9uLmRlZmF1bHRBY3Rpb24uY29tbWFuZCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFwiY21kOlwiICsgb0FjdGlvbi5kZWZhdWx0QWN0aW9uLmNvbW1hbmQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChvQWN0aW9uLmRlZmF1bHRBY3Rpb24ubm9XcmFwKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gb0FjdGlvbi5kZWZhdWx0QWN0aW9uLnByZXNzO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gQ29tbW9uSGVscGVyLmJ1aWxkQWN0aW9uV3JhcHBlcihvQWN0aW9uLmRlZmF1bHRBY3Rpb24sIHsgaWQ6IFwiZm9yVGhlT2JqZWN0UGFnZVwiIH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGlvRXgpIHtcblx0XHRcdHJldHVybiBcImJpbmRpbmcgZm9yIHRoZSBkZWZhdWx0IGFjdGlvbiBpcyBub3Qgd29ya2luZyBhcyBleHBlY3RlZFwiO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtDQSxNQUFNQSxVQUFVLEdBQUdDLFFBQVEsQ0FBQ0QsVUFBVTs7RUFFdEM7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNPLE1BQU1FLHFCQUFxQixHQUFHLFVBQ3BDQyxXQUF1QyxFQUN2Q0MsU0FBbUIsRUFDbkJDLGVBQW9DLEVBQ3BDQyxVQUE4QixFQUNLO0lBQUE7SUFDbkMsTUFBTUMsaUJBQWlCLEdBQUdILFNBQVMsQ0FBQ0ksYUFBYSxDQUFDQyxPQUFPLENBQUMsY0FBYyxFQUFFQyxTQUFTLEVBQUVOLFNBQVMsQ0FBQ08sU0FBUyxDQUFDO0lBRXpHLE1BQU1DLG1CQUFtQixHQUFHUixTQUFTLENBQUNJLGFBQWEsQ0FBQ0MsT0FBTyxDQUMxRCxzREFBc0QsRUFDdERDLFNBQVMsRUFDVE4sU0FBUyxDQUFDTyxTQUFTLENBQ25CO0lBRUQsTUFBTUUscUJBQXFCLEdBQzFCLENBQUFWLFdBQVcsYUFBWEEsV0FBVyx1QkFBWEEsV0FBVyxDQUFFVyxLQUFLLE1BQUtKLFNBQVMsSUFBSSxDQUFDUCxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRVcsS0FBSyxNQUFhLEVBQUUsSUFB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
|
|
760
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdXR0b25UeXBlIiwibUxpYnJhcnkiLCJnZXRFeHByZXNzaW9uRm9yVGl0bGUiLCJvSGVhZGVySW5mbyIsIm9WaWV3RGF0YSIsImZ1bGxDb250ZXh0UGF0aCIsIm9EcmFmdFJvb3QiLCJ0aXRsZU5vSGVhZGVySW5mbyIsInJlc291cmNlTW9kZWwiLCJnZXRUZXh0IiwidW5kZWZpbmVkIiwiZW50aXR5U2V0IiwidGl0bGVXaXRoSGVhZGVySW5mbyIsIm9FbXB0eUhlYWRlckluZm9UaXRsZSIsIlRpdGxlIiwiVmFsdWUiLCJ0aXRsZUZvckFjdGl2ZUhlYWRlck5vSGVhZGVySW5mbyIsInRpdGxlVmFsdWVFeHByZXNzaW9uIiwiY29ubmVjdGVkRmllbGRzUGF0aCIsInRpdGxlSXNFbXB0eSIsImNvbnN0YW50IiwidGl0bGVCb29sZWFuRXhwcmVzc2lvbiIsIiRUeXBlIiwiZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIiwiJHRhcmdldCIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiVGV4dCIsIlVJIiwiVGV4dEFycmFuZ2VtZW50IiwiYWRkVGV4dEFycmFuZ2VtZW50VG9CaW5kaW5nRXhwcmVzc2lvbiIsImZvcm1hdFZhbHVlUmVjdXJzaXZlbHkiLCJfdHlwZSIsInZhbHVlIiwiaXNFbXB0eSIsIlRhcmdldCIsImVuaGFuY2VEYXRhTW9kZWxQYXRoIiwiZ2V0TGFiZWxGb3JDb25uZWN0ZWRGaWVsZHMiLCJjcmVhdGVNb2RlVGl0bGUiLCJUeXBlTmFtZSIsImNvbmNhdCIsInJlc29sdmVCaW5kaW5nU3RyaW5nIiwidG9TdHJpbmciLCJhY3RpdmVFeHByZXNzaW9uIiwiRW50aXR5IiwiSXNBY3RpdmUiLCJjb21waWxlRXhwcmVzc2lvbiIsImlmRWxzZSIsImFuZCIsIklzQ3JlYXRlTW9kZSIsImdldEV4cHJlc3Npb25Gb3JEZXNjcmlwdGlvbiIsInBhdGhJbk1vZGVsIiwiRGVzY3JpcHRpb24iLCJnZXRFeHByZXNzaW9uRm9yU2F2ZUJ1dHRvbiIsInNhdmVCdXR0b25UZXh0IiwiY3JlYXRlQnV0dG9uVGV4dCIsInNhdmVFeHByZXNzaW9uIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJTZXNzaW9uIiwiU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsIkRyYWZ0IiwiSXNOZXdPYmplY3QiLCJpc01hbmlmZXN0QWN0aW9uIiwib0FjdGlvbiIsImFBY3Rpb25zIiwiaW5kZXhPZiIsInR5cGUiLCJidWlsZEVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uIiwiZGF0YUNvbnRleHRQYXRoIiwiaWRlbnRpZmljYXRpb24iLCJ0YXJnZXRFbnRpdHlUeXBlIiwiSWRlbnRpZmljYXRpb24iLCJkYXRhRmllbGRzV2l0aENyaXRpY2FsaXR5IiwiZmlsdGVyIiwiZGF0YUZpZWxkIiwiQ3JpdGljYWxpdHkiLCJkYXRhRmllbGRzQmluZGluZ0V4cHJlc3Npb25zIiwibGVuZ3RoIiwibWFwIiwiY3JpdGljYWxpdHlWaXNpYmxlQmluZGluZ0V4cHJlc3Npb24iLCJub3QiLCJlcXVhbCIsIkhpZGRlbiIsIm9yIiwiRGVmYXVsdCIsIkVtcGhhc2l6ZWQiLCJnZXRFbGVtZW50QmluZGluZyIsInNQYXRoIiwic05hdmlnYXRpb25QYXRoIiwiT0RhdGFNb2RlbEFubm90YXRpb25IZWxwZXIiLCJnZXROYXZpZ2F0aW9uUGF0aCIsImNoZWNrRHJhZnRTdGF0ZSIsIm9Bbm5vdGF0aW9ucyIsImdldFN3aXRjaFRvQWN0aXZlVmlzaWJpbGl0eSIsImdldFN3aXRjaFRvRHJhZnRWaXNpYmlsaXR5IiwiZ2V0U3dpdGNoRHJhZnRBbmRBY3RpdmVWaXNpYmlsaXR5IiwiX2ZpbmRBY3Rpb24iLCJhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnMiLCJzQWN0aW9uVHlwZSIsImZpbmQiLCJvSGVhZGVyQWN0aW9uIiwiZ2V0RGVsZXRlQ29tbWFuZEV4ZWN1dGlvbkVuYWJsZWQiLCJvRGVsZXRlQWN0aW9uIiwiZW5hYmxlZCIsImdldERlbGV0ZUNvbW1hbmRFeGVjdXRpb25WaXNpYmxlIiwidmlzaWJsZSIsImdldEVkaXRDb21tYW5kRXhlY3V0aW9uVmlzaWJsZSIsIm9FZGl0QWN0aW9uIiwiZ2V0RWRpdENvbW1hbmRFeGVjdXRpb25FbmFibGVkIiwiZ2V0RWRpdEFjdGlvbiIsIm9FbnRpdHlTZXQiLCJnZXRQYXRoIiwiYVBhdGhzIiwic3BsaXQiLCJyb290RW50aXR5U2V0UGF0aCIsInJvb3RFbnRpdHlTZXRBbm5ub3RhdGlvbnMiLCJnZXRPYmplY3QiLCJiRHJhZnRSb290IiwiaGFzT3duUHJvcGVydHkiLCJiRHJhZnROb2RlIiwiYlN0aWNreVNlc3Npb24iLCJzQWN0aW9uTmFtZSIsImlzUmVhZE9ubHlGcm9tU3RhdGljQW5ub3RhdGlvbnMiLCJvRmllbGRDb250cm9sIiwiYkNvbXB1dGVkIiwiYkltbXV0YWJsZSIsImJSZWFkT25seSIsIkJvb2wiLCJyZWFkT25seUV4cHJlc3Npb25Gcm9tRHluYW1pY0Fubm90YXRpb25zIiwic0lzRmllbGRDb250cm9sUGF0aFJlYWRPbmx5IiwiTWFuYWdlZE9iamVjdCIsImJpbmRpbmdQYXJzZXIiLCJnZXRFeHByZXNzaW9uRm9yTWljcm9DaGFydFRpdGxlUHJlc3MiLCJvQ29uZmlndXJhdGlvbiIsIm9NYW5pZmVzdE91dGJvdW5kIiwic0NvbGxlY3Rpb25OYW1lIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldE1pY3JvQ2hhcnRUaXRsZUFzTGluayIsIm9Db250cm9sQ29uZmlndXJhdGlvbiIsImdldEdyb3VwSWRGcm9tQ29uZmlnIiwib0NvbmZpZ3VyYXRpb25zIiwic0Fubm90YXRpb25QYXRoIiwic0RlZmF1bHRHcm91cElkIiwiYUF1dG9QYXR0ZXJucyIsInNHcm91cElkIiwicmVxdWVzdEdyb3VwSWQiLCJzb21lIiwiYXV0b1BhdHRlcm4iLCJnZXRCaW5kaW5nV2l0aEdyb3VwSWRGcm9tQ29uZmlnIiwic0tleSIsInNCaW5kaW5nIiwiZG9lc0ZpZWxkR3JvdXBDb250YWluT25seU9uZU11bHRpTGluZURhdGFGaWVsZCIsImFGb3JtRWxlbWVudHMiLCJpc1ZhbHVlTXVsdGlsaW5lVGV4dCIsImdldFZpc2libGVFeHByZXNzaW9uRm9yQnJlYWRjcnVtYnMiLCJzaG93QnJlYWRDcnVtYnMiLCJmY2xFbmFibGVkIiwiZ2V0U2hhcmVCdXR0b25WaXNpYmlsaXR5Iiwidmlld0RhdGEiLCJzU2hhcmVCdXR0b25WaXNpYmlsaXR5RXhwIiwiaXNTaGFyZUJ1dHRvblZpc2libGVGb3JNeUluYm94IiwiZ2V0VmlzaWJsaXR5T2ZIZWFkZXJJbmZvIiwib1RpdGxlQW5ub3RhdGlvbnMiLCJvRGVzY3JpcHRpb25Bbm5vdGF0aW9ucyIsIm9GaWVsZFRpdGxlRmllbGRDb250cm9sIiwib0ZpZWxkRGVzY3JpcHRpb25GaWVsZENvbnRyb2wiLCJiSXNUaXRsZVJlYWRPbmx5IiwidGl0bGVFeHByZXNzaW9uIiwiYklzRGVzY3JpcHRpb25SZWFkT25seSIsImRlc2NyaXB0aW9uRXhwcmVzc2lvbiIsImNvbWJpbmVUaXRsZUFuZERlc2NyaXB0aW9uRXhwcmVzc2lvbiIsIm9UaXRsZUZpZWxkQ29udHJvbCIsIm9EZXNjcmlwdGlvbkZpZWxkQ29udHJvbCIsImdldFByZXNzRXhwcmVzc2lvbkZvckRlbGV0ZSIsIm9JbnRlcmZhY2UiLCJzRGVsZXRhYmxlQ29udGV4dHMiLCJzVGl0bGUiLCJzRGVzY3JpcHRpb24iLCJlc0NvbnRleHQiLCJjb250ZXh0IiwiY29udGV4dFBhdGgiLCJjb250ZXh0UGF0aFBhcnRzIiwiTW9kZWxIZWxwZXIiLCJmaWx0ZXJPdXROYXZQcm9wQmluZGluZyIsInNFbnRpdHlTZXROYW1lIiwiZ2V0TW9kZWwiLCJqb2luIiwib1BhcmFtcyIsInRpdGxlIiwiZW50aXR5U2V0TmFtZSIsIkNvbW1vbkhlbHBlciIsImFkZFNpbmdsZVF1b3RlcyIsImRlc2NyaXB0aW9uIiwiZ2VuZXJhdGVGdW5jdGlvbiIsIm9iamVjdFRvU3RyaW5nIiwicmVxdWlyZXNJQ29udGV4dCIsImdldFByZXNzRXhwcmVzc2lvbkZvckVkaXQiLCJvRGF0YUZpZWxkIiwic0VkaXRhYmxlQ29udGV4dHMiLCJBY3Rpb24iLCJzRGF0YUZpZWxkRW51bU1lbWJlciIsIkludm9jYXRpb25Hcm91cGluZyIsInNJbnZvY2F0aW9uR3JvdXAiLCJjb250ZXh0cyIsImludm9jYXRpb25Hcm91cGluZyIsIm1vZGVsIiwibGFiZWwiLCJMYWJlbCIsImlzTmF2aWdhYmxlIiwiZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uIiwiZ2V0UHJlc3NFeHByZXNzaW9uRm9yRm9vdGVyQW5ub3RhdGlvbkFjdGlvbiIsInNBY3Rpb25Db250ZXh0cyIsImdldFByZXNzRXhwcmVzc2lvbkZvclByaW1hcnlBY3Rpb24iLCJwb3NpdGl2ZUFjdGlvblZpc2libGUiLCJwb3NpdGl2ZUFjdGlvbkVuYWJsZWQiLCJlZGl0QWN0aW9uVmlzaWJsZSIsImVkaXRBY3Rpb25FbmFibGVkIiwib0NvbmRpdGlvbnMiLCJnZXRTdGFzaGFibGVIQm94QmluZGluZyIsIm9IZWFkZXJGYWNldCIsIkZhY2V0IiwidGFyZ2V0QW5ub3RhdGlvblR5cGUiLCJ0YXJnZXRBbm5vdGF0aW9uVmFsdWUiLCJnZXRQcmVzc0V4cHJlc3Npb25Gb3JMaW5rIiwiZ2V0SGVhZGVyRm9ybUhib3hSZW5kZXJUeXBlIiwidGFyZ2V0T2JqZWN0IiwiZ2V0RGVmYXVsdEFjdGlvbkhhbmRsZXIiLCJvQ3R4Iiwib0RhdGFGaWVsZEZvckRlZmF1bHRBY3Rpb24iLCJkZWZhdWx0QWN0aW9uQ29udGV4dE9yRW50aXR5U2V0IiwiZGVmYXVsdEFjdGlvbiIsImNvbW1hbmQiLCJwcmVzcyIsIm5vV3JhcCIsImJ1aWxkQWN0aW9uV3JhcHBlciIsImlkIiwiaW9FeCIsImlzVmlzdWFsaXphdGlvbklzUGFydE9mUHJldmlldyIsInN1YlNlY3Rpb24iLCJpc1BhcnRPZlByZXZpZXciLCJwcmVzZW50YXRpb24iLCJ2aXN1YWxpemF0aW9ucyJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiT2JqZWN0UGFnZVRlbXBsYXRpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRm9ybWF0dGVycyBmb3IgdGhlIE9iamVjdCBQYWdlXG5pbXBvcnQgeyBFbnRpdHlTZXQgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YUZpZWxkRm9yQWN0aW9uLCBEYXRhRmllbGRUeXBlcywgSGVhZGVySW5mb1R5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB0eXBlIHsgQmFzZUFjdGlvbiwgQ3VzdG9tQWN0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuaW1wb3J0IHsgRGF0YVZpc3VhbGl6YXRpb25TdWJTZWN0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvT2JqZWN0UGFnZS9TdWJTZWN0aW9uXCI7XG5pbXBvcnQgeyBEcmFmdCwgRW50aXR5LCBVSSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuaW1wb3J0IHtcblx0YW5kLFxuXHRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24sXG5cdENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uLFxuXHRjb21waWxlRXhwcmVzc2lvbixcblx0Y29uY2F0LFxuXHRjb25zdGFudCxcblx0ZXF1YWwsXG5cdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbixcblx0aWZFbHNlLFxuXHRpc0VtcHR5LFxuXHRub3QsXG5cdG9yLFxuXHRyZXNvbHZlQmluZGluZ1N0cmluZ1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBWaWV3RGF0YSB9IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9UZW1wbGF0ZWRWaWV3U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGVuaGFuY2VEYXRhTW9kZWxQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgQ29tcHV0ZWRBbm5vdGF0aW9uSW50ZXJmYWNlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgQ29tbW9uSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL0NvbW1vbkhlbHBlclwiO1xuaW1wb3J0IHsgYWRkVGV4dEFycmFuZ2VtZW50VG9CaW5kaW5nRXhwcmVzc2lvbiwgZm9ybWF0VmFsdWVSZWN1cnNpdmVseSB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpZWxkL0ZpZWxkVGVtcGxhdGluZ1wiO1xuaW1wb3J0IHsgZ2V0TGFiZWxGb3JDb25uZWN0ZWRGaWVsZHMgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnRlcm5hbC9mb3JtL0Zvcm1UZW1wbGF0aW5nXCI7XG5pbXBvcnQgbUxpYnJhcnkgZnJvbSBcInNhcC9tL2xpYnJhcnlcIjtcbmltcG9ydCBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgT0RhdGFNb2RlbEFubm90YXRpb25IZWxwZXIgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Bbm5vdGF0aW9uSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuXG5jb25zdCBCdXR0b25UeXBlID0gbUxpYnJhcnkuQnV0dG9uVHlwZTtcblxuLy9gYGBtZXJtYWlkXG4vLyBncmFwaCBURFxuLy8gQVtPYmplY3QgUGFnZSBUaXRsZV0gLS0+fEdldCBEYXRhRmllbGQgVmFsdWV8IEN7RXZhbHVhdGUgQ3JlYXRlIE1vZGV9XG4vLyBDIC0tPnxJbiBDcmVhdGUgTW9kZXwgRHtJcyBEYXRhRmllbGQgVmFsdWUgZW1wdHl9XG4vLyBEIC0tPnxZZXN8IEZ7SXMgdGhlcmUgYSBUeXBlTmFtZX1cbi8vIEYgLS0+fFllc3wgR1tJcyB0aGVyZSBhbiBjdXN0b20gdGl0bGVdXG4vLyBHIC0tPnxZZXN8IEcxW1Nob3cgdGhlIGN1c3RvbSB0aXRsZSArICdUeXBlTmFtZSddXG4vLyBHIC0tPnxOb3wgRzJbRGlzcGxheSB0aGUgZGVmYXVsdCB0aXRsZSAnTmV3ICsgVHlwZU5hbWUnXVxuLy8gRiAtLT58Tm98IEhbSXMgdGhlcmUgYSBjdXN0b20gdGl0bGVdXG4vLyBIIC0tPnxZZXN8IElbU2hvdyB0aGUgY3VzdG9tIHRpdGxlXVxuLy8gSCAtLT58Tm98IEpbU2hvdyB0aGUgZGVmYXVsdCAnVW5hbW5lZCBPYmplY3QnXVxuLy8gRCAtLT58Tm98IEVcbi8vIEMgLS0+fE5vdCBpbiBjcmVhdGUgbW9kZXwgRVtTaG93IERhdGFGaWVsZCBWYWx1ZV1cbi8vIGBgYFxuLyoqXG4gKiBDb21wdXRlIHRoZSB0aXRsZSBmb3IgdGhlIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBvSGVhZGVySW5mbyBUaGUgQFVJLkhlYWRlckluZm8gYW5ub3RhdGlvbiBjb250ZW50XG4gKiBAcGFyYW0gb1ZpZXdEYXRhIFRoZSB2aWV3IGRhdGEgb2JqZWN0IHdlJ3JlIGN1cnJlbnRseSBvblxuICogQHBhcmFtIGZ1bGxDb250ZXh0UGF0aCBUaGUgZnVsbCBjb250ZXh0IHBhdGggdXNlZCB0byByZWFjaCB0aGF0IG9iamVjdCBwYWdlXG4gKiBAcGFyYW0gb0RyYWZ0Um9vdFxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlIG9iamVjdCBwYWdlIHRpdGxlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFeHByZXNzaW9uRm9yVGl0bGUgPSBmdW5jdGlvbiAoXG5cdG9IZWFkZXJJbmZvOiBIZWFkZXJJbmZvVHlwZSB8IHVuZGVmaW5lZCxcblx0b1ZpZXdEYXRhOiBWaWV3RGF0YSxcblx0ZnVsbENvbnRleHRQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRvRHJhZnRSb290OiBPYmplY3QgfCB1bmRlZmluZWRcbik6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHtcblx0Y29uc3QgdGl0bGVOb0hlYWRlckluZm8gPSBvVmlld0RhdGEucmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9ORVdfT0JKRUNUXCIsIHVuZGVmaW5lZCwgb1ZpZXdEYXRhLmVudGl0eVNldCk7XG5cblx0Y29uc3QgdGl0bGVXaXRoSGVhZGVySW5mbyA9IG9WaWV3RGF0YS5yZXNvdXJjZU1vZGVsLmdldFRleHQoXG5cdFx0XCJUX0FOTk9UQVRJT05fSEVMUEVSX0RFRkFVTFRfT0JKRUNUX1BBR0VfSEVBREVSX1RJVExFXCIsXG5cdFx0dW5kZWZpbmVkLFxuXHRcdG9WaWV3RGF0YS5lbnRpdHlTZXRcblx0KTtcblxuXHRjb25zdCBvRW1wdHlIZWFkZXJJbmZvVGl0bGUgPVxuXHRcdG9IZWFkZXJJbmZvPy5UaXRsZSA9PT0gdW5kZWZpbmVkIHx8IChvSGVhZGVySW5mbz8uVGl0bGUgYXMgYW55KSA9PT0gXCJcIiB8fCAob0hlYWRlckluZm8/LlRpdGxlIGFzIERhdGFGaWVsZFR5cGVzKT8uVmFsdWUgPT09IFwiXCI7XG5cblx0Y29uc3QgdGl0bGVGb3JBY3RpdmVIZWFkZXJOb0hlYWRlckluZm8gPSAhb0VtcHR5SGVhZGVySW5mb1RpdGxlXG5cdFx0PyBvVmlld0RhdGEucmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9BTk5PVEFUSU9OX0hFTFBFUl9ERUZBVUxUX09CSkVDVF9QQUdFX0hFQURFUl9USVRMRV9OT19IRUFERVJfSU5GT1wiKVxuXHRcdDogXCJcIjtcblx0bGV0IHRpdGxlVmFsdWVFeHByZXNzaW9uLFxuXHRcdGNvbm5lY3RlZEZpZWxkc1BhdGgsXG5cdFx0dGl0bGVJc0VtcHR5OiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4gPSBjb25zdGFudCh0cnVlKSxcblx0XHR0aXRsZUJvb2xlYW5FeHByZXNzaW9uOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4gfCBib29sZWFuO1xuXHRpZiAob0hlYWRlckluZm8/LlRpdGxlPy4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRcIikge1xuXHRcdHRpdGxlVmFsdWVFeHByZXNzaW9uID0gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKChvSGVhZGVySW5mbz8uVGl0bGUgYXMgRGF0YUZpZWxkVHlwZXMpPy5WYWx1ZSk7XG5cdFx0aWYgKChvSGVhZGVySW5mbz8uVGl0bGUgYXMgRGF0YUZpZWxkVHlwZXMpPy5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGV4dD8uYW5ub3RhdGlvbnM/LlVJPy5UZXh0QXJyYW5nZW1lbnQpIHtcblx0XHRcdC8vIEluIGNhc2UgYW4gZXhwbGljaXQgdGV4dCBhcnJhbmdlbWVudCB3YXMgc2V0IHdlIG1ha2UgdXNlIG9mIGl0IGluIHRoZSBkZXNjcmlwdGlvbiBhcyB3ZWxsXG5cdFx0XHR0aXRsZVZhbHVlRXhwcmVzc2lvbiA9IGFkZFRleHRBcnJhbmdlbWVudFRvQmluZGluZ0V4cHJlc3Npb24odGl0bGVWYWx1ZUV4cHJlc3Npb24sIGZ1bGxDb250ZXh0UGF0aCk7XG5cdFx0fVxuXHRcdHRpdGxlVmFsdWVFeHByZXNzaW9uID0gZm9ybWF0VmFsdWVSZWN1cnNpdmVseSh0aXRsZVZhbHVlRXhwcmVzc2lvbiwgZnVsbENvbnRleHRQYXRoKTtcblx0XHR0aXRsZUlzRW1wdHkgPSB0aXRsZVZhbHVlRXhwcmVzc2lvbj8uX3R5cGUgPT09IFwiQ29uc3RhbnRcIiA/IGNvbnN0YW50KCF0aXRsZVZhbHVlRXhwcmVzc2lvbj8udmFsdWUpIDogaXNFbXB0eSh0aXRsZVZhbHVlRXhwcmVzc2lvbik7XG5cdH0gZWxzZSBpZiAoXG5cdFx0b0hlYWRlckluZm8/LlRpdGxlPy4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBbm5vdGF0aW9uXCIgJiZcblx0XHRvSGVhZGVySW5mbz8uVGl0bGU/LlRhcmdldC4kdGFyZ2V0LiRUeXBlID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNvbm5lY3RlZEZpZWxkc1R5cGVcIlxuXHQpIHtcblx0XHRjb25uZWN0ZWRGaWVsZHNQYXRoID0gZW5oYW5jZURhdGFNb2RlbFBhdGgoZnVsbENvbnRleHRQYXRoLCBcIiRUeXBlL0BVSS5IZWFkZXJJbmZvL1RpdGxlL1RhcmdldC8kQW5ub3RhdGlvblBhdGhcIik7XG5cdFx0dGl0bGVWYWx1ZUV4cHJlc3Npb24gPSBnZXRMYWJlbEZvckNvbm5lY3RlZEZpZWxkcyhjb25uZWN0ZWRGaWVsZHNQYXRoLCBmYWxzZSkgYXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZz47XG5cdFx0dGl0bGVCb29sZWFuRXhwcmVzc2lvbiA9XG5cdFx0XHR0aXRsZVZhbHVlRXhwcmVzc2lvbj8uX3R5cGUgPT09IFwiQ29uc3RhbnRcIiA/IGNvbnN0YW50KCF0aXRsZVZhbHVlRXhwcmVzc2lvbj8udmFsdWUpIDogaXNFbXB0eSh0aXRsZVZhbHVlRXhwcmVzc2lvbik7XG5cdFx0dGl0bGVJc0VtcHR5ID0gdGl0bGVWYWx1ZUV4cHJlc3Npb24gPyB0aXRsZUJvb2xlYW5FeHByZXNzaW9uIDogY29uc3RhbnQodHJ1ZSk7XG5cdH1cblxuXHQvLyBJZiB0aGVyZSBpcyBhIFR5cGVOYW1lIGRlZmluZWQsIHNob3cgdGhlIGRlZmF1bHQgdGl0bGUgJ05ldyArIFR5cGVOYW1lJywgb3RoZXJ3aXNlIHNob3cgdGhlIGN1c3RvbSB0aXRsZSBvciB0aGUgZGVmYXVsdCAnTmV3IG9iamVjdCdcblx0Y29uc3QgY3JlYXRlTW9kZVRpdGxlID0gb0hlYWRlckluZm8/LlR5cGVOYW1lXG5cdFx0PyBjb25jYXQodGl0bGVXaXRoSGVhZGVySW5mbywgXCI6IFwiLCByZXNvbHZlQmluZGluZ1N0cmluZyhvSGVhZGVySW5mby5UeXBlTmFtZS50b1N0cmluZygpKSlcblx0XHQ6IHRpdGxlTm9IZWFkZXJJbmZvO1xuXHRjb25zdCBhY3RpdmVFeHByZXNzaW9uID0gb0RyYWZ0Um9vdCA/IEVudGl0eS5Jc0FjdGl2ZSA6IHRydWU7XG5cdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihcblx0XHRpZkVsc2UoXG5cdFx0XHRhbmQoVUkuSXNDcmVhdGVNb2RlLCB0aXRsZUlzRW1wdHkpLFxuXHRcdFx0Y3JlYXRlTW9kZVRpdGxlLFxuXG5cdFx0XHQvLyBPdGhlcndpc2Ugc2hvdyB0aGUgZGVmYXVsdCBleHByZXNzaW9uXG5cdFx0XHRpZkVsc2UoYW5kKGFjdGl2ZUV4cHJlc3Npb24sIHRpdGxlSXNFbXB0eSksIHRpdGxlRm9yQWN0aXZlSGVhZGVyTm9IZWFkZXJJbmZvLCB0aXRsZVZhbHVlRXhwcmVzc2lvbilcblx0XHQpXG5cdCk7XG59O1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgZXhwcmVzc2lvbiBmb3IgdGhlIGRlc2NyaXB0aW9uIG9mIGFuIG9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBvSGVhZGVySW5mbyBUaGUgQFVJLkhlYWRlckluZm8gYW5ub3RhdGlvbiBjb250ZW50XG4gKiBAcGFyYW0gZnVsbENvbnRleHRQYXRoIFRoZSBmdWxsIGNvbnRleHQgcGF0aCB1c2VkIHRvIHJlYWNoIHRoYXQgb2JqZWN0IHBhZ2VcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSBvYmplY3QgcGFnZSBkZXNjcmlwdGlvblxuICovXG5leHBvcnQgY29uc3QgZ2V0RXhwcmVzc2lvbkZvckRlc2NyaXB0aW9uID0gZnVuY3Rpb24gKFxuXHRvSGVhZGVySW5mbzogSGVhZGVySW5mb1R5cGUgfCB1bmRlZmluZWQsXG5cdGZ1bGxDb250ZXh0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aFxuKTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24ge1xuXHRsZXQgcGF0aEluTW9kZWwgPSBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oKG9IZWFkZXJJbmZvPy5EZXNjcmlwdGlvbiBhcyBEYXRhRmllbGRUeXBlcyk/LlZhbHVlKTtcblx0aWYgKChvSGVhZGVySW5mbz8uRGVzY3JpcHRpb24gYXMgRGF0YUZpZWxkVHlwZXMpPy5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGV4dD8uYW5ub3RhdGlvbnM/LlVJPy5UZXh0QXJyYW5nZW1lbnQpIHtcblx0XHQvLyBJbiBjYXNlIGFuIGV4cGxpY2l0IHRleHQgYXJyYW5nZW1lbnQgd2FzIHNldCB3ZSBtYWtlIHVzZSBvZiBpdCBpbiB0aGUgZGVzY3JpcHRpb24gYXMgd2VsbFxuXHRcdHBhdGhJbk1vZGVsID0gYWRkVGV4dEFycmFuZ2VtZW50VG9CaW5kaW5nRXhwcmVzc2lvbihwYXRoSW5Nb2RlbCwgZnVsbENvbnRleHRQYXRoKTtcblx0fVxuXG5cdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihmb3JtYXRWYWx1ZVJlY3Vyc2l2ZWx5KHBhdGhJbk1vZGVsLCBmdWxsQ29udGV4dFBhdGgpKTtcbn07XG5cbi8qKlxuICogUmV0dXJuIHRoZSBleHByZXNzaW9uIGZvciB0aGUgc2F2ZSBidXR0b24uXG4gKlxuICogQHBhcmFtIG9WaWV3RGF0YSBUaGUgY3VycmVudCB2aWV3IGRhdGFcbiAqIEBwYXJhbSBmdWxsQ29udGV4dFBhdGggVGhlIHBhdGggdXNlZCB1cCB1bnRpbCBoZXJlXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIHRoYXQgc2hvd3MgdGhlIHJpZ2h0IHNhdmUgYnV0dG9uIHRleHRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEV4cHJlc3Npb25Gb3JTYXZlQnV0dG9uID0gZnVuY3Rpb24gKFxuXHRvVmlld0RhdGE6IFZpZXdEYXRhLFxuXHRmdWxsQ29udGV4dFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGhcbik6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHtcblx0Y29uc3Qgc2F2ZUJ1dHRvblRleHQgPSBvVmlld0RhdGEucmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9PQkpFQ1RfUEFHRV9TQVZFXCIpO1xuXHRjb25zdCBjcmVhdGVCdXR0b25UZXh0ID0gb1ZpZXdEYXRhLnJlc291cmNlTW9kZWwuZ2V0VGV4dChcIlRfT1BfT0JKRUNUX1BBR0VfQ1JFQVRFXCIpO1xuXHRsZXQgc2F2ZUV4cHJlc3Npb247XG5cblx0aWYgKChmdWxsQ29udGV4dFBhdGguc3RhcnRpbmdFbnRpdHlTZXQgYXMgRW50aXR5U2V0KS5hbm5vdGF0aW9ucy5TZXNzaW9uPy5TdGlja3lTZXNzaW9uU3VwcG9ydGVkKSB7XG5cdFx0Ly8gSWYgd2UncmUgaW4gc3RpY2t5IG1vZGUgQU5EIHRoZSB1aSBpcyBpbiBjcmVhdGUgbW9kZSwgc2hvdyBDcmVhdGUsIGVsc2Ugc2hvdyBTYXZlXG5cdFx0c2F2ZUV4cHJlc3Npb24gPSBpZkVsc2UoVUkuSXNDcmVhdGVNb2RlLCBjcmVhdGVCdXR0b25UZXh0LCBzYXZlQnV0dG9uVGV4dCk7XG5cdH0gZWxzZSB7XG5cdFx0Ly8gSWYgd2UncmUgaW4gZHJhZnQgQU5EIHRoZSBkcmFmdCBpcyBhIG5ldyBvYmplY3QgKCFJc0FjdGl2ZUVudGl0eSAmJiAhSGFzQWN0aXZlRW50aXR5KSwgc2hvdyBjcmVhdGUsIGVsc2Ugc2hvdyBzYXZlXG5cdFx0c2F2ZUV4cHJlc3Npb24gPSBpZkVsc2UoRHJhZnQuSXNOZXdPYmplY3QsIGNyZWF0ZUJ1dHRvblRleHQsIHNhdmVCdXR0b25UZXh0KTtcblx0fVxuXHRyZXR1cm4gY29tcGlsZUV4cHJlc3Npb24oc2F2ZUV4cHJlc3Npb24pO1xufTtcblxuLyoqXG4gKiBNZXRob2QgcmV0dXJucyBXaGV0aGVyIHRoZSBhY3Rpb24gdHlwZSBpcyBtYW5pZmVzdCBvciBub3QuXG4gKlxuICogQGZ1bmN0aW9uXG4gKiBAbmFtZSBpc01hbmlmZXN0QWN0aW9uXG4gKiBAcGFyYW0gb0FjdGlvbiBUaGUgYWN0aW9uIG9iamVjdFxuICogQHJldHVybnMgYHRydWVgIGlmIGFjdGlvbiBpcyBjb21pbmcgZnJvbSBtYW5pZmVzdCwgYGZhbHNlYCBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGNvbnN0IGlzTWFuaWZlc3RBY3Rpb24gPSBmdW5jdGlvbiAob0FjdGlvbjogYW55KTogb0FjdGlvbiBpcyBDdXN0b21BY3Rpb24ge1xuXHRjb25zdCBhQWN0aW9ucyA9IFtcblx0XHRcIlByaW1hcnlcIixcblx0XHRcIkRlZmF1bHRBcHBseVwiLFxuXHRcdFwiU2Vjb25kYXJ5XCIsXG5cdFx0XCJGb3JBY3Rpb25cIixcblx0XHRcIkZvck5hdmlnYXRpb25cIixcblx0XHRcIlN3aXRjaFRvQWN0aXZlT2JqZWN0XCIsXG5cdFx0XCJTd2l0Y2hUb0RyYWZ0T2JqZWN0XCIsXG5cdFx0XCJEcmFmdEFjdGlvbnNcIixcblx0XHRcIkNvcHlcIlxuXHRdO1xuXHRyZXR1cm4gYUFjdGlvbnMuaW5kZXhPZihvQWN0aW9uLnR5cGUpIDwgMDtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhIGNvbXBpbGVkIGV4cHJlc3Npb24gdG8gZGV0ZXJtaW5lIEVtcGhhc2l6ZWQgIGJ1dHRvbiB0eXBlIGJhc2VkIG9uIENyaXRpY2FsaXR5IGFjcm9zcyBhbGwgYWN0aW9uc1xuICogSWYgY3JpdGljYWwgYWN0aW9uIGlzIHJlbmRlcmVkLCBpdHMgY29uc2lkZXJlZCB0byBiZSB0aGUgcHJpbWFyeSBhY3Rpb24uIEhlbmNlIHRlbXBsYXRlJ3MgZGVmYXVsdCBwcmltYXJ5IGFjdGlvbiBpcyBzZXQgYmFjayB0byBEZWZhdWx0LlxuICpcbiAqIEBmdW5jdGlvblxuICogQHN0YXRpY1xuICogQG5hbWUgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLk9iamVjdFBhZ2VUZW1wbGF0aW5nLmJ1aWxkRW1waGFzaXplZEJ1dHRvbkV4cHJlc3Npb25cbiAqIEBtZW1iZXJvZiBzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuT2JqZWN0UGFnZVRlbXBsYXRpbmdcbiAqIEBwYXJhbSBkYXRhQ29udGV4dFBhdGggVGhlIGRhdGFNb2RlbE9iamVjdFBhdGggcmVsYXRlZCB0byB0aGUgY29udGV4dFxuICogQHJldHVybnMgQW4gZXhwcmVzc2lvbiB0byBkZWR1Y2UgaWYgYnV0dG9uIHR5cGUgaXMgRGVmYXVsdCBvciBFbXBoYXNpemVkXG4gKiBAcHJpdmF0ZVxuICogQHVpNS1yZXN0cmljdGVkXG4gKi9cbmV4cG9ydCBjb25zdCBidWlsZEVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uID0gZnVuY3Rpb24gKGRhdGFDb250ZXh0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCkge1xuXHRjb25zdCBpZGVudGlmaWNhdGlvbiA9IGRhdGFDb250ZXh0UGF0aC50YXJnZXRFbnRpdHlUeXBlPy5hbm5vdGF0aW9ucz8uVUk/LklkZW50aWZpY2F0aW9uO1xuXHRjb25zdCBkYXRhRmllbGRzV2l0aENyaXRpY2FsaXR5ID1cblx0XHRpZGVudGlmaWNhdGlvbj8uZmlsdGVyKChkYXRhRmllbGQpID0+IGRhdGFGaWVsZC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQWN0aW9uICYmIGRhdGFGaWVsZC5Dcml0aWNhbGl0eSkgfHwgW107XG5cblx0Y29uc3QgZGF0YUZpZWxkc0JpbmRpbmdFeHByZXNzaW9ucyA9IGRhdGFGaWVsZHNXaXRoQ3JpdGljYWxpdHkubGVuZ3RoXG5cdFx0PyBkYXRhRmllbGRzV2l0aENyaXRpY2FsaXR5Lm1hcCgoZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGNyaXRpY2FsaXR5VmlzaWJsZUJpbmRpbmdFeHByZXNzaW9uID0gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKGRhdGFGaWVsZC5Dcml0aWNhbGl0eSk7XG5cdFx0XHRcdHJldHVybiBhbmQoXG5cdFx0XHRcdFx0bm90KGVxdWFsKGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbihkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4pLCB0cnVlKSksXG5cdFx0XHRcdFx0b3IoXG5cdFx0XHRcdFx0XHRlcXVhbChjcml0aWNhbGl0eVZpc2libGVCaW5kaW5nRXhwcmVzc2lvbiwgXCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIiksXG5cdFx0XHRcdFx0XHRlcXVhbChjcml0aWNhbGl0eVZpc2libGVCaW5kaW5nRXhwcmVzc2lvbiwgXCIxXCIpLFxuXHRcdFx0XHRcdFx0ZXF1YWwoY3JpdGljYWxpdHlWaXNpYmxlQmluZGluZ0V4cHJlc3Npb24gYXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPG51bWJlcj4sIDEpLFxuXHRcdFx0XHRcdFx0ZXF1YWwoY3JpdGljYWxpdHlWaXNpYmxlQmluZGluZ0V4cHJlc3Npb24sIFwiVUkuQ3JpdGljYWxpdHlUeXBlL1Bvc2l0aXZlXCIpLFxuXHRcdFx0XHRcdFx0ZXF1YWwoY3JpdGljYWxpdHlWaXNpYmxlQmluZGluZ0V4cHJlc3Npb24sIFwiM1wiKSxcblx0XHRcdFx0XHRcdGVxdWFsKGNyaXRpY2FsaXR5VmlzaWJsZUJpbmRpbmdFeHByZXNzaW9uIGFzIEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxudW1iZXI+LCAzKVxuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHQgIH0pXG5cdFx0OiAoW2NvbnN0YW50KGZhbHNlKV0gYXMgQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+W10pO1xuXG5cdC8vIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSB2aXNpYmxlIGRhdGFGaWVsZCB3aXRoIGNyaXRpY2FsaXR5IG5lZ2F0aXZlIG9yIHBvc2l0aXZlLCB0aGUgdHlwZSBpcyBzZXQgYXMgRGVmYXVsdFxuXHQvLyBlbHNlIGl0IGlzIGVtcGhhc2l6ZWRcblx0cmV0dXJuIGNvbXBpbGVFeHByZXNzaW9uKGlmRWxzZShvciguLi5kYXRhRmllbGRzQmluZGluZ0V4cHJlc3Npb25zKSwgQnV0dG9uVHlwZS5EZWZhdWx0LCBCdXR0b25UeXBlLkVtcGhhc2l6ZWQpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFbGVtZW50QmluZGluZyA9IGZ1bmN0aW9uIChzUGF0aDogYW55KSB7XG5cdGNvbnN0IHNOYXZpZ2F0aW9uUGF0aCA9IE9EYXRhTW9kZWxBbm5vdGF0aW9uSGVscGVyLmdldE5hdmlnYXRpb25QYXRoKHNQYXRoKTtcblx0aWYgKHNOYXZpZ2F0aW9uUGF0aCkge1xuXHRcdHJldHVybiBcIntwYXRoOidcIiArIHNOYXZpZ2F0aW9uUGF0aCArIFwiJ31cIjtcblx0fSBlbHNlIHtcblx0XHQvL25vIG5hdmlnYXRpb24gcHJvcGVydHkgbmVlZHMgZW1wdHkgb2JqZWN0XG5cdFx0cmV0dXJuIFwie3BhdGg6ICcnfVwiO1xuXHR9XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIGNoZWNrIGlmIGRyYWZ0IHBhdHRlcm4gaXMgc3VwcG9ydGVkLlxuICpcbiAqIEBwYXJhbSBvQW5ub3RhdGlvbnMgQW5ub3RhdGlvbnMgb2YgdGhlIGN1cnJlbnQgZW50aXR5IHNldC5cbiAqIEByZXR1cm5zIFJldHVybnMgdGhlIEJvb2xlYW4gdmFsdWUgYmFzZWQgb24gZHJhZnQgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IGNoZWNrRHJhZnRTdGF0ZSA9IGZ1bmN0aW9uIChvQW5ub3RhdGlvbnM6IGFueSkge1xuXHRpZiAoXG5cdFx0b0Fubm90YXRpb25zW1wiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5EcmFmdFJvb3RcIl0gJiZcblx0XHRvQW5ub3RhdGlvbnNbXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkRyYWZ0Um9vdFwiXVtcIkVkaXRBY3Rpb25cIl1cblx0KSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIGdldCB0aGUgdmlzaWJpbGl0eSBmb3IgdGhlIFN3aXRjaFRvQWN0aXZlIGJ1dHRvbiBpbiB0aGUgb2JqZWN0IHBhZ2Ugb3Igc3Vib2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIG9Bbm5vdGF0aW9ucyBBbm5vdGF0aW9ucyBvZiB0aGUgY3VycmVudCBlbnRpdHkgc2V0LlxuICogQHJldHVybnMgUmV0dXJucyBleHByZXNzaW9uIGJpbmRpbmcgb3IgQm9vbGVhbiB2YWx1ZSBiYXNlZCBvbiB0aGUgZHJhZnQgc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFN3aXRjaFRvQWN0aXZlVmlzaWJpbGl0eSA9IGZ1bmN0aW9uIChvQW5ub3RhdGlvbnM6IGFueSk6IGFueSB7XG5cdGlmIChjaGVja0RyYWZ0U3RhdGUob0Fubm90YXRpb25zKSkge1xuXHRcdHJldHVybiBcIns9ICgle0RyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0RyYWZ0SXNDcmVhdGVkQnlNZX0pID8gKCAke3VpPi9pc0VkaXRhYmxlfSAmJiAhJHt1aT5jcmVhdGVNb2RlfSAmJiAle0RyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0RyYWZ0SXNDcmVhdGVkQnlNZX0gKSA6IGZhbHNlIH1cIjtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn07XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gZ2V0IHRoZSB2aXNpYmlsaXR5IGZvciB0aGUgU3dpdGNoVG9EcmFmdCBidXR0b24gaW4gdGhlIG9iamVjdCBwYWdlIG9yIHN1Ym9iamVjdCBwYWdlLlxuICpcbiAqIEBwYXJhbSBvQW5ub3RhdGlvbnMgQW5ub3RhdGlvbnMgb2YgdGhlIGN1cnJlbnQgZW50aXR5IHNldC5cbiAqIEByZXR1cm5zIFJldHVybnMgZXhwcmVzc2lvbiBiaW5kaW5nIG9yIEJvb2xlYW4gdmFsdWUgYmFzZWQgb24gdGhlIGRyYWZ0IHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTd2l0Y2hUb0RyYWZ0VmlzaWJpbGl0eSA9IGZ1bmN0aW9uIChvQW5ub3RhdGlvbnM6IGFueSk6IGFueSB7XG5cdGlmIChjaGVja0RyYWZ0U3RhdGUob0Fubm90YXRpb25zKSkge1xuXHRcdHJldHVybiBcIns9ICgle0RyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0RyYWZ0SXNDcmVhdGVkQnlNZX0pID8gKCAhKCR7dWk+L2lzRWRpdGFibGV9KSAmJiAhJHt1aT5jcmVhdGVNb2RlfSAmJiAke0hhc0RyYWZ0RW50aXR5fSAmJiAle0RyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0RyYWZ0SXNDcmVhdGVkQnlNZX0gKSA6IGZhbHNlIH1cIjtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn07XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gZ2V0IHRoZSB2aXNpYmlsaXR5IGZvciB0aGUgU3dpdGNoRHJhZnRBbmRBY3RpdmUgYnV0dG9uIGluIHRoZSBvYmplY3QgcGFnZSBvciBzdWJvYmplY3QgcGFnZS5cbiAqXG4gKiBAcGFyYW0gb0Fubm90YXRpb25zIEFubm90YXRpb25zIG9mIHRoZSBjdXJyZW50IGVudGl0eSBzZXQuXG4gKiBAcmV0dXJucyBSZXR1cm5zIGV4cHJlc3Npb24gYmluZGluZyBvciBCb29sZWFuIHZhbHVlIGJhc2VkIG9uIHRoZSBkcmFmdCBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgZ2V0U3dpdGNoRHJhZnRBbmRBY3RpdmVWaXNpYmlsaXR5ID0gZnVuY3Rpb24gKG9Bbm5vdGF0aW9uczogYW55KTogYW55IHtcblx0aWYgKGNoZWNrRHJhZnRTdGF0ZShvQW5ub3RhdGlvbnMpKSB7XG5cdFx0cmV0dXJuIFwiez0gKCV7RHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEvRHJhZnRJc0NyZWF0ZWRCeU1lfSkgPyAoICEke3VpPmNyZWF0ZU1vZGV9ICYmICV7RHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEvRHJhZnRJc0NyZWF0ZWRCeU1lfSApIDogZmFsc2UgfVwiO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byBmaW5kIGFuIGFjdGlvbiBmcm9tIHRoZSBhcnJheSBvZiBoZWFkZXIgYWN0aW9ucyBpbiB0aGUgY29udmVydGVyIGNvbnRleHQuXG4gKlxuICogQHBhcmFtIGFDb252ZXJ0ZXJDb250ZXh0SGVhZGVyQWN0aW9ucyBBcnJheSBvZiAnaGVhZGVyJyBhY3Rpb25zIG9uIHRoZSBvYmplY3QgcGFnZS5cbiAqIEBwYXJhbSBzQWN0aW9uVHlwZSBUaGUgYWN0aW9uIHR5cGVcbiAqIEByZXR1cm5zIFRoZSBhY3Rpb24gd2l0aCB0aGUgbWF0Y2hpbmcgYWN0aW9uIHR5cGVcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBfZmluZEFjdGlvbiA9IGZ1bmN0aW9uIChhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnM6IGFueVtdLCBzQWN0aW9uVHlwZTogc3RyaW5nKSB7XG5cdGxldCBvQWN0aW9uO1xuXHRpZiAoYUNvbnZlcnRlckNvbnRleHRIZWFkZXJBY3Rpb25zICYmIGFDb252ZXJ0ZXJDb250ZXh0SGVhZGVyQWN0aW9ucy5sZW5ndGgpIHtcblx0XHRvQWN0aW9uID0gYUNvbnZlcnRlckNvbnRleHRIZWFkZXJBY3Rpb25zLmZpbmQoZnVuY3Rpb24gKG9IZWFkZXJBY3Rpb246IGFueSkge1xuXHRcdFx0cmV0dXJuIG9IZWFkZXJBY3Rpb24udHlwZSA9PT0gc0FjdGlvblR5cGU7XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIG9BY3Rpb247XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIGZvcm1hdCB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5IGZvciB0aGUgRGVsZXRlIGJ1dHRvbiBvbiB0aGUgb2JqZWN0IHBhZ2Ugb3Igc3Vib2JqZWN0IHBhZ2UgaW4gY2FzZSBvZiBhIENvbW1hbmQgRXhlY3V0aW9uLlxuICpcbiAqIEBwYXJhbSBhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnMgQXJyYXkgb2YgaGVhZGVyIGFjdGlvbnMgb24gdGhlIG9iamVjdCBwYWdlXG4gKiBAcmV0dXJucyBSZXR1cm5zIGV4cHJlc3Npb24gYmluZGluZyBvciBCb29sZWFuIHZhbHVlIGZyb20gdGhlIGNvbnZlcnRlciBvdXRwdXRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldERlbGV0ZUNvbW1hbmRFeGVjdXRpb25FbmFibGVkID0gZnVuY3Rpb24gKGFDb252ZXJ0ZXJDb250ZXh0SGVhZGVyQWN0aW9uczogYW55W10pIHtcblx0Y29uc3Qgb0RlbGV0ZUFjdGlvbiA9IF9maW5kQWN0aW9uKGFDb252ZXJ0ZXJDb250ZXh0SGVhZGVyQWN0aW9ucywgXCJTZWNvbmRhcnlcIik7XG5cdHJldHVybiBvRGVsZXRlQWN0aW9uID8gb0RlbGV0ZUFjdGlvbi5lbmFibGVkIDogXCJ0cnVlXCI7XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIGZvcm1hdCB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IGZvciB0aGUgRGVsZXRlIGJ1dHRvbiBvbiB0aGUgb2JqZWN0IHBhZ2Ugb3Igc3Vib2JqZWN0IHBhZ2UgaW4gY2FzZSBvZiBhIENvbW1hbmQgRXhlY3V0aW9uLlxuICpcbiAqIEBwYXJhbSBhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnMgQXJyYXkgb2YgaGVhZGVyIGFjdGlvbnMgb24gdGhlIG9iamVjdCBwYWdlXG4gKiBAcmV0dXJucyBSZXR1cm5zIGV4cHJlc3Npb24gYmluZGluZyBvciBCb29sZWFuIHZhbHVlIGZyb20gdGhlIGNvbnZlcnRlciBvdXRwdXRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldERlbGV0ZUNvbW1hbmRFeGVjdXRpb25WaXNpYmxlID0gZnVuY3Rpb24gKGFDb252ZXJ0ZXJDb250ZXh0SGVhZGVyQWN0aW9uczogYW55W10pIHtcblx0Y29uc3Qgb0RlbGV0ZUFjdGlvbiA9IF9maW5kQWN0aW9uKGFDb252ZXJ0ZXJDb250ZXh0SGVhZGVyQWN0aW9ucywgXCJTZWNvbmRhcnlcIik7XG5cdHJldHVybiBvRGVsZXRlQWN0aW9uID8gb0RlbGV0ZUFjdGlvbi52aXNpYmxlIDogXCJ0cnVlXCI7XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIGZvcm1hdCB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IGZvciB0aGUgRWRpdCBidXR0b24gb24gdGhlIG9iamVjdCBwYWdlIG9yIHN1Ym9iamVjdCBwYWdlIGluIGNhc2Ugb2YgYSBDb21tYW5kIEV4ZWN1dGlvbi5cbiAqXG4gKiBAcGFyYW0gYUNvbnZlcnRlckNvbnRleHRIZWFkZXJBY3Rpb25zIEFycmF5IG9mIGhlYWRlciBhY3Rpb25zIG9uIHRoZSBvYmplY3QgcGFnZVxuICogQHJldHVybnMgUmV0dXJucyBleHByZXNzaW9uIGJpbmRpbmcgb3IgQm9vbGVhbiB2YWx1ZSBmcm9tIHRoZSBjb252ZXJ0ZXIgb3V0cHV0XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFZGl0Q29tbWFuZEV4ZWN1dGlvblZpc2libGUgPSBmdW5jdGlvbiAoYUNvbnZlcnRlckNvbnRleHRIZWFkZXJBY3Rpb25zOiBhbnlbXSkge1xuXHRjb25zdCBvRWRpdEFjdGlvbiA9IF9maW5kQWN0aW9uKGFDb252ZXJ0ZXJDb250ZXh0SGVhZGVyQWN0aW9ucywgXCJQcmltYXJ5XCIpO1xuXHRyZXR1cm4gb0VkaXRBY3Rpb24gPyBvRWRpdEFjdGlvbi52aXNpYmxlIDogXCJmYWxzZVwiO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byBmb3JtYXQgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBmb3IgdGhlIEVkaXQgYnV0dG9uIG9uIHRoZSBvYmplY3QgcGFnZSBvciBzdWJvYmplY3QgcGFnZSBpbiBjYXNlIG9mIGEgQ29tbWFuZCBFeGVjdXRpb24uXG4gKlxuICogQHBhcmFtIGFDb252ZXJ0ZXJDb250ZXh0SGVhZGVyQWN0aW9ucyBBcnJheSBvZiBoZWFkZXIgYWN0aW9ucyBvbiB0aGUgb2JqZWN0IHBhZ2VcbiAqIEByZXR1cm5zIFJldHVybnMgZXhwcmVzc2lvbiBiaW5kaW5nIG9yIEJvb2xlYW4gdmFsdWUgZnJvbSB0aGUgY29udmVydGVyIG91dHB1dFxuICovXG5leHBvcnQgY29uc3QgZ2V0RWRpdENvbW1hbmRFeGVjdXRpb25FbmFibGVkID0gZnVuY3Rpb24gKGFDb252ZXJ0ZXJDb250ZXh0SGVhZGVyQWN0aW9uczogYW55W10pIHtcblx0Y29uc3Qgb0VkaXRBY3Rpb24gPSBfZmluZEFjdGlvbihhQ29udmVydGVyQ29udGV4dEhlYWRlckFjdGlvbnMsIFwiUHJpbWFyeVwiKTtcblx0cmV0dXJuIG9FZGl0QWN0aW9uID8gb0VkaXRBY3Rpb24uZW5hYmxlZCA6IFwiZmFsc2VcIjtcbn07XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gZ2V0IHRoZSBFZGl0QWN0aW9uIGZyb20gdGhlIGJhc2VkIG9uIGEgZHJhZnQtZW5hYmxlZCBhcHBsaWNhdGlvbiBvciBhIHN0aWNreSBhcHBsaWNhdGlvbi5cbiAqXG4gKiBAcGFyYW0gW29FbnRpdHlTZXRdIFRoZSB2YWx1ZSBmcm9tIHRoZSBleHByZXNzaW9uLlxuICogQHJldHVybnMgUmV0dXJucyBleHByZXNzaW9uIGJpbmRpbmcgb3IgQm9vbGVhbiB2YWx1ZSBiYXNlZCBvbiB2UmF3VmFsdWUgJiBvRHJhZnROb2RlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFZGl0QWN0aW9uID0gZnVuY3Rpb24gKG9FbnRpdHlTZXQ6IENvbnRleHQpIHtcblx0Y29uc3Qgc1BhdGggPSBvRW50aXR5U2V0LmdldFBhdGgoKTtcblx0Y29uc3QgYVBhdGhzID0gc1BhdGguc3BsaXQoXCIvXCIpO1xuXHRjb25zdCByb290RW50aXR5U2V0UGF0aCA9IFwiL1wiICsgYVBhdGhzWzFdO1xuXHQvLyBnZXQgdGhlIGVkaXQgYWN0aW9uIGZyb20gcm9vdCBlbnRpdHkgc2V0c1xuXHRjb25zdCByb290RW50aXR5U2V0QW5ubm90YXRpb25zID0gb0VudGl0eVNldC5nZXRPYmplY3Qocm9vdEVudGl0eVNldFBhdGggKyBcIkBcIik7XG5cdGNvbnN0IGJEcmFmdFJvb3QgPSByb290RW50aXR5U2V0QW5ubm90YXRpb25zLmhhc093blByb3BlcnR5KFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5EcmFmdFJvb3RcIik7XG5cdGNvbnN0IGJEcmFmdE5vZGUgPSByb290RW50aXR5U2V0QW5ubm90YXRpb25zLmhhc093blByb3BlcnR5KFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5EcmFmdE5vZGVcIik7XG5cdGNvbnN0IGJTdGlja3lTZXNzaW9uID0gcm9vdEVudGl0eVNldEFubm5vdGF0aW9ucy5oYXNPd25Qcm9wZXJ0eShcIkBjb20uc2FwLnZvY2FidWxhcmllcy5TZXNzaW9uLnYxLlN0aWNreVNlc3Npb25TdXBwb3J0ZWRcIik7XG5cdGxldCBzQWN0aW9uTmFtZTtcblx0aWYgKGJEcmFmdFJvb3QpIHtcblx0XHRzQWN0aW9uTmFtZSA9IG9FbnRpdHlTZXQuZ2V0T2JqZWN0KGAke3Jvb3RFbnRpdHlTZXRQYXRofUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290L0VkaXRBY3Rpb25gKTtcblx0fSBlbHNlIGlmIChiRHJhZnROb2RlKSB7XG5cdFx0c0FjdGlvbk5hbWUgPSBvRW50aXR5U2V0LmdldE9iamVjdChgJHtyb290RW50aXR5U2V0UGF0aH1AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkRyYWZ0Tm9kZS9FZGl0QWN0aW9uYCk7XG5cdH0gZWxzZSBpZiAoYlN0aWNreVNlc3Npb24pIHtcblx0XHRzQWN0aW9uTmFtZSA9IG9FbnRpdHlTZXQuZ2V0T2JqZWN0KGAke3Jvb3RFbnRpdHlTZXRQYXRofUBjb20uc2FwLnZvY2FidWxhcmllcy5TZXNzaW9uLnYxLlN0aWNreVNlc3Npb25TdXBwb3J0ZWQvRWRpdEFjdGlvbmApO1xuXHR9XG5cdHJldHVybiAhc0FjdGlvbk5hbWUgPyBzQWN0aW9uTmFtZSA6IGAke3Jvb3RFbnRpdHlTZXRQYXRofS8ke3NBY3Rpb25OYW1lfWA7XG59O1xuXG5leHBvcnQgY29uc3QgaXNSZWFkT25seUZyb21TdGF0aWNBbm5vdGF0aW9ucyA9IGZ1bmN0aW9uIChvQW5ub3RhdGlvbnM6IGFueSwgb0ZpZWxkQ29udHJvbDogYW55KSB7XG5cdGxldCBiQ29tcHV0ZWQsIGJJbW11dGFibGUsIGJSZWFkT25seTtcblx0aWYgKG9Bbm5vdGF0aW9ucyAmJiBvQW5ub3RhdGlvbnNbXCJAT3JnLk9EYXRhLkNvcmUuVjEuQ29tcHV0ZWRcIl0pIHtcblx0XHRiQ29tcHV0ZWQgPSBvQW5ub3RhdGlvbnNbXCJAT3JnLk9EYXRhLkNvcmUuVjEuQ29tcHV0ZWRcIl0uQm9vbCA/IG9Bbm5vdGF0aW9uc1tcIkBPcmcuT0RhdGEuQ29yZS5WMS5Db21wdXRlZFwiXS5Cb29sID09IFwidHJ1ZVwiIDogdHJ1ZTtcblx0fVxuXHRpZiAob0Fubm90YXRpb25zICYmIG9Bbm5vdGF0aW9uc1tcIkBPcmcuT0RhdGEuQ29yZS5WMS5JbW11dGFibGVcIl0pIHtcblx0XHRiSW1tdXRhYmxlID0gb0Fubm90YXRpb25zW1wiQE9yZy5PRGF0YS5Db3JlLlYxLkltbXV0YWJsZVwiXS5Cb29sID8gb0Fubm90YXRpb25zW1wiQE9yZy5PRGF0YS5Db3JlLlYxLkltbXV0YWJsZVwiXS5Cb29sID09IFwidHJ1ZVwiIDogdHJ1ZTtcblx0fVxuXHRiUmVhZE9ubHkgPSBiQ29tcHV0ZWQgfHwgYkltbXV0YWJsZTtcblxuXHRpZiAob0ZpZWxkQ29udHJvbCkge1xuXHRcdGJSZWFkT25seSA9IGJSZWFkT25seSB8fCBvRmllbGRDb250cm9sID09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkZpZWxkQ29udHJvbFR5cGUvUmVhZE9ubHlcIjtcblx0fVxuXHRpZiAoYlJlYWRPbmx5KSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59O1xuXG5leHBvcnQgY29uc3QgcmVhZE9ubHlFeHByZXNzaW9uRnJvbUR5bmFtaWNBbm5vdGF0aW9ucyA9IGZ1bmN0aW9uIChvRmllbGRDb250cm9sOiBhbnkpIHtcblx0bGV0IHNJc0ZpZWxkQ29udHJvbFBhdGhSZWFkT25seTtcblx0aWYgKG9GaWVsZENvbnRyb2wpIHtcblx0XHRpZiAoKE1hbmFnZWRPYmplY3QgYXMgYW55KS5iaW5kaW5nUGFyc2VyKG9GaWVsZENvbnRyb2wpKSB7XG5cdFx0XHRzSXNGaWVsZENvbnRyb2xQYXRoUmVhZE9ubHkgPSBcIiVcIiArIG9GaWVsZENvbnRyb2wgKyBcIiA9PT0gMSBcIjtcblx0XHR9XG5cdH1cblx0aWYgKHNJc0ZpZWxkQ29udHJvbFBhdGhSZWFkT25seSkge1xuXHRcdHJldHVybiBcIns9IFwiICsgc0lzRmllbGRDb250cm9sUGF0aFJlYWRPbmx5ICsgXCI/IGZhbHNlIDogdHJ1ZSB9XCI7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxufTtcblxuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB0aGUgZXhwcmVzc2lvbiBmb3IgY2hhcnQgVGl0bGUgUHJlc3NcbiAqXG4gKiBAZnVuY3Rpb253XG4gKiBAcGFyYW0ge29Db25maWd1cmF0aW9ufSBbb0NvbmZpZ3VyYXRpb25zXSBjb250cm9sIGNvbmZpZ3VyYXRpb24gZnJvbSBtYW5pZmVzdFxuICogIEBwYXJhbSB7b01hbmlmZXN0fSBbb01hbmlmZXN0XSBPdXRib3VuZHMgZnJvbSBtYW5pZmVzdFxuICogcmV0dXJucyB7U3RyaW5nfSBbc0NvbGxlY3Rpb25OYW1lXSBDb2xsZWN0aW9uIE5hbWUgb2YgdGhlIE1pY3JvIENoYXJ0XG4gKlxuICogcmV0dXJucyB7U3RyaW5nfSBbRXhwcmVzc2lvbl0gSGFuZGxlciBFeHByZXNzaW9uIGZvciB0aGUgdGl0bGUgcHJlc3NcbiAqXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFeHByZXNzaW9uRm9yTWljcm9DaGFydFRpdGxlUHJlc3MgPSBmdW5jdGlvbiAob0NvbmZpZ3VyYXRpb246IGFueSwgb01hbmlmZXN0T3V0Ym91bmQ6IGFueSwgc0NvbGxlY3Rpb25OYW1lOiBhbnkpIHtcblx0aWYgKG9Db25maWd1cmF0aW9uKSB7XG5cdFx0aWYgKFxuXHRcdFx0KG9Db25maWd1cmF0aW9uW1widGFyZ2V0T3V0Ym91bmRcIl0gJiYgb0NvbmZpZ3VyYXRpb25bXCJ0YXJnZXRPdXRib3VuZFwiXVtcIm91dGJvdW5kXCJdKSB8fFxuXHRcdFx0KG9Db25maWd1cmF0aW9uW1widGFyZ2V0T3V0Ym91bmRcIl0gJiYgb0NvbmZpZ3VyYXRpb25bXCJ0YXJnZXRPdXRib3VuZFwiXVtcIm91dGJvdW5kXCJdICYmIG9Db25maWd1cmF0aW9uW1widGFyZ2V0U2VjdGlvbnNcIl0pXG5cdFx0KSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcIi5oYW5kbGVycy5vbkRhdGFQb2ludFRpdGxlUHJlc3NlZCgkY29udHJvbGxlciwgJHskc291cmNlPi99LCdcIiArXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KG9NYW5pZmVzdE91dGJvdW5kKSArXG5cdFx0XHRcdFwiJywnXCIgK1xuXHRcdFx0XHRvQ29uZmlndXJhdGlvbltcInRhcmdldE91dGJvdW5kXCJdW1wib3V0Ym91bmRcIl0gK1xuXHRcdFx0XHRcIicsJ1wiICtcblx0XHRcdFx0c0NvbGxlY3Rpb25OYW1lICtcblx0XHRcdFx0XCInIClcIlxuXHRcdFx0KTtcblx0XHR9IGVsc2UgaWYgKG9Db25maWd1cmF0aW9uW1widGFyZ2V0U2VjdGlvbnNcIl0pIHtcblx0XHRcdHJldHVybiBcIi5oYW5kbGVycy5uYXZpZ2F0ZVRvU3ViU2VjdGlvbigkY29udHJvbGxlciwgJ1wiICsgSlNPTi5zdHJpbmdpZnkob0NvbmZpZ3VyYXRpb25bXCJ0YXJnZXRTZWN0aW9uc1wiXSkgKyBcIicpXCI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG59O1xuXG4vKlxuICogRnVuY3Rpb24gdG8gcmVuZGVyIENoYXJ0IFRpdGxlIGFzIExpbmtcbiAqXG4gKiBAZnVuY3Rpb25cbiAqIEBwYXJhbSB7b0NvbnRyb2xDb25maWd1cmF0aW9ufSBbb0NvbmZpZ3VyYXRpb25zXSBjb250cm9sIGNvbmZpZ3VyYXRpb24gZnJvbSBtYW5pZmVzdFxuICogcmV0dXJucyB7U3RyaW5nfSBbc0tleV0gRm9yIHRoZSBUYXJnZXRPdXRib3VuZCBhbmQgVGFyZ2V0U2VjdGlvblxuICpcbiAqL1xuZXhwb3J0IGNvbnN0IGdldE1pY3JvQ2hhcnRUaXRsZUFzTGluayA9IGZ1bmN0aW9uIChvQ29udHJvbENvbmZpZ3VyYXRpb246IGFueSkge1xuXHRpZiAoXG5cdFx0b0NvbnRyb2xDb25maWd1cmF0aW9uICYmXG5cdFx0KG9Db250cm9sQ29uZmlndXJhdGlvbltcInRhcmdldE91dGJvdW5kXCJdIHx8IChvQ29udHJvbENvbmZpZ3VyYXRpb25bXCJ0YXJnZXRPdXRib3VuZFwiXSAmJiBvQ29udHJvbENvbmZpZ3VyYXRpb25bXCJ0YXJnZXRTZWN0aW9uc1wiXSkpXG5cdCkge1xuXHRcdHJldHVybiBcIkV4dGVybmFsXCI7XG5cdH0gZWxzZSBpZiAob0NvbnRyb2xDb25maWd1cmF0aW9uICYmIG9Db250cm9sQ29uZmlndXJhdGlvbltcInRhcmdldFNlY3Rpb25zXCJdKSB7XG5cdFx0cmV0dXJuIFwiSW5QYWdlXCI7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIFwiTm9uZVwiO1xuXHR9XG59O1xuXG4vKiBHZXQgZ3JvdXBJZCBmcm9tIGNvbnRyb2wgY29uZmlndXJhdGlvblxuICpcbiAqIEBmdW5jdGlvblxuICogQHBhcmFtIHtPYmplY3R9IFtvQ29uZmlndXJhdGlvbnNdIGNvbnRyb2wgY29uZmlndXJhdGlvbiBmcm9tIG1hbmlmZXN0XG4gKiBAcGFyYW0ge1N0cmluZ30gW3NBbm5vdGF0aW9uUGF0aF0gQW5ub3RhdGlvbiBQYXRoIGZvciB0aGUgY29uZmlndXJhdGlvblxuICogQGRlc2NyaXB0aW9uIFVzZWQgdG8gZ2V0IHRoZSBncm91cElkIGZvciBEYXRhUG9pbnRzIGFuZCBNaWNyb0NoYXJ0cyBpbiB0aGUgSGVhZGVyLlxuICpcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEdyb3VwSWRGcm9tQ29uZmlnID0gZnVuY3Rpb24gKG9Db25maWd1cmF0aW9uczogYW55LCBzQW5ub3RhdGlvblBhdGg6IGFueSwgc0RlZmF1bHRHcm91cElkPzogYW55KSB7XG5cdGNvbnN0IG9Db25maWd1cmF0aW9uID0gb0NvbmZpZ3VyYXRpb25zW3NBbm5vdGF0aW9uUGF0aF0sXG5cdFx0YUF1dG9QYXR0ZXJucyA9IFtcIkhlcm9lc1wiLCBcIkRlY29yYXRpb25cIiwgXCJXb3JrZXJzXCIsIFwiTG9uZ1J1bm5lcnNcIl07XG5cdGxldCBzR3JvdXBJZCA9IHNEZWZhdWx0R3JvdXBJZDtcblx0aWYgKFxuXHRcdG9Db25maWd1cmF0aW9uICYmXG5cdFx0b0NvbmZpZ3VyYXRpb24ucmVxdWVzdEdyb3VwSWQgJiZcblx0XHRhQXV0b1BhdHRlcm5zLnNvbWUoZnVuY3Rpb24gKGF1dG9QYXR0ZXJuOiBzdHJpbmcpIHtcblx0XHRcdHJldHVybiBhdXRvUGF0dGVybiA9PT0gb0NvbmZpZ3VyYXRpb24ucmVxdWVzdEdyb3VwSWQ7XG5cdFx0fSlcblx0KSB7XG5cdFx0c0dyb3VwSWQgPSBcIiRhdXRvLlwiICsgb0NvbmZpZ3VyYXRpb24ucmVxdWVzdEdyb3VwSWQ7XG5cdH1cblx0cmV0dXJuIHNHcm91cElkO1xufTtcblxuLypcbiAqIEdldCBDb250ZXh0IEJpbmRpbmcgd2l0aCBncm91cElkIGZyb20gY29udHJvbCBjb25maWd1cmF0aW9uXG4gKlxuICogQGZ1bmN0aW9uXG4gKiBAcGFyYW0ge09iamVjdH0gW29Db25maWd1cmF0aW9uc10gY29udHJvbCBjb25maWd1cmF0aW9uIGZyb20gbWFuaWZlc3RcbiAqIEBwYXJhbSB7U3RyaW5nfSBbc0tleV0gQW5ub3RhdGlvbiBQYXRoIGZvciBvZiB0aGUgY29uZmlndXJhdGlvblxuICogQGRlc2NyaXB0aW9uIFVzZWQgdG8gZ2V0IHRoZSBiaW5kaW5nIGZvciBEYXRhUG9pbnRzIGluIHRoZSBIZWFkZXIuXG4gKlxuICovXG5leHBvcnQgY29uc3QgZ2V0QmluZGluZ1dpdGhHcm91cElkRnJvbUNvbmZpZyA9IGZ1bmN0aW9uIChvQ29uZmlndXJhdGlvbnM6IGFueSwgc0tleTogYW55KSB7XG5cdGNvbnN0IHNHcm91cElkID0gZ2V0R3JvdXBJZEZyb21Db25maWcob0NvbmZpZ3VyYXRpb25zLCBzS2V5KTtcblx0bGV0IHNCaW5kaW5nO1xuXHRpZiAoc0dyb3VwSWQpIHtcblx0XHRzQmluZGluZyA9IFwieyBwYXRoIDogJycsIHBhcmFtZXRlcnMgOiB7ICQkZ3JvdXBJZCA6ICdcIiArIHNHcm91cElkICsgXCInIH0gfVwiO1xuXHR9XG5cdHJldHVybiBzQmluZGluZztcbn07XG5cbi8qKlxuICogTWV0aG9kIHRvIGNoZWNrIHdoZXRoZXIgYSBGaWVsZEdyb3VwIGNvbnNpc3RzIG9mIG9ubHkgMSBEYXRhRmllbGQgd2l0aCBNdWx0aUxpbmUgVGV4dCBhbm5vdGF0aW9uLlxuICpcbiAqIEBwYXJhbSBhRm9ybUVsZW1lbnRzIEEgY29sbGVjdGlvbiBvZiBmb3JtIGVsZW1lbnRzIHVzZWQgaW4gdGhlIGN1cnJlbnQgZmllbGQgZ3JvdXBcbiAqIEByZXR1cm5zIFJldHVybnMgdHJ1ZSBpZiBvbmx5IDEgZGF0YSBmaWVsZCB3aXRoIE11bHRpbGluZSBUZXh0IGFubm90YXRpb24gZXhpc3RzLlxuICovXG5leHBvcnQgY29uc3QgZG9lc0ZpZWxkR3JvdXBDb250YWluT25seU9uZU11bHRpTGluZURhdGFGaWVsZCA9IGZ1bmN0aW9uIChhRm9ybUVsZW1lbnRzOiBhbnlbXSkge1xuXHRyZXR1cm4gYUZvcm1FbGVtZW50cyAmJiBhRm9ybUVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhIWFGb3JtRWxlbWVudHNbMF0uaXNWYWx1ZU11bHRpbGluZVRleHQ7XG59O1xuXG4vKlxuICogR2V0IHZpc2libGl0eSBvZiBicmVhZGNydW1icy5cbiAqXG4gKiBAZnVuY3Rpb25cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb1ZpZXdEYXRhXSBWaWV3RGF0YSBtb2RlbFxuICogcmV0dXJucyB7Kn0gRXhwcmVzc2lvbiBvciBCb29sZWFuIHZhbHVlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRWaXNpYmxlRXhwcmVzc2lvbkZvckJyZWFkY3J1bWJzID0gZnVuY3Rpb24gKG9WaWV3RGF0YTogYW55KSB7XG5cdHJldHVybiBvVmlld0RhdGEuc2hvd0JyZWFkQ3J1bWJzICYmIG9WaWV3RGF0YS5mY2xFbmFibGVkICE9PSB1bmRlZmluZWQgPyBcIntmY2xoZWxwZXI+L2JyZWFkQ3J1bWJJc1Zpc2libGV9XCIgOiBvVmlld0RhdGEuc2hvd0JyZWFkQ3J1bWJzO1xufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHZpZXdEYXRhIFNwZWNpZmllcyB0aGUgVmlld0RhdGEgbW9kZWxcbiAqIEByZXR1cm5zIEV4cHJlc3Npb24gb3IgQm9vbGVhbiB2YWx1ZVxuICovXG5leHBvcnQgY29uc3QgZ2V0U2hhcmVCdXR0b25WaXNpYmlsaXR5ID0gZnVuY3Rpb24gKHZpZXdEYXRhOiBhbnkpIHtcblx0bGV0IHNTaGFyZUJ1dHRvblZpc2liaWxpdHlFeHAgPSBcIiEke3VpPmNyZWF0ZU1vZGV9XCI7XG5cdGlmICh2aWV3RGF0YS5mY2xFbmFibGVkKSB7XG5cdFx0c1NoYXJlQnV0dG9uVmlzaWJpbGl0eUV4cCA9IFwiJHtmY2xoZWxwZXI+L3Nob3dTaGFyZUljb259ICYmIFwiICsgc1NoYXJlQnV0dG9uVmlzaWJpbGl0eUV4cDtcblx0fVxuXHRpZiAodmlld0RhdGEuaXNTaGFyZUJ1dHRvblZpc2libGVGb3JNeUluYm94ID09PSBmYWxzZSkge1xuXHRcdHJldHVybiBcImZhbHNlXCI7XG5cdH1cblx0cmV0dXJuIFwiez0gXCIgKyBzU2hhcmVCdXR0b25WaXNpYmlsaXR5RXhwICsgXCIgfVwiO1xufTtcblxuLypcbiAqIEdldHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGhlYWRlciBpbmZvIGluIGVkaXQgbW9kZVxuICpcbiAqIElmIGVpdGhlciB0aGUgdGl0bGUgb3IgZGVzY3JpcHRpb24gZmllbGQgZnJvbSB0aGUgaGVhZGVyIGFubm90YXRpb25zIGFyZSBlZGl0YWJsZSwgdGhlbiB0aGVcbiAqIGVkaXRhYmxlIGhlYWRlciBpbmZvIGlzIHZpc2libGUuXG4gKlxuICogQGZ1bmN0aW9uXG4gKiBAcGFyYW0ge29iamVjdH0gW29Bbm5vdGF0aW9uc10gQW5ub3RhdGlvbnMgb2JqZWN0IGZvciBnaXZlbiBlbnRpdHkgc2V0XG4gKiBAcGFyYW0ge29iamVjdH0gW29GaWVsZENvbnRyb2xdIGZpZWxkIGNvbnRyb2xcbiAqIHJldHVybnMgeyp9ICBiaW5kaW5nIGV4cHJlc3Npb24gb3IgYm9vbGVhbiB2YWx1ZSByZXNvbHZlZCBmb3JtIGZ1bmNpdG9ucyBpc1JlYWRPbmx5RnJvbVN0YXRpY0Fubm90YXRpb25zIGFuZCBpc1JlYWRPbmx5RnJvbUR5bmFtaWNBbm5vdGF0aW9uc1xuICovXG5leHBvcnQgY29uc3QgZ2V0VmlzaWJsaXR5T2ZIZWFkZXJJbmZvID0gZnVuY3Rpb24gKFxuXHRvVGl0bGVBbm5vdGF0aW9uczogYW55LFxuXHRvRGVzY3JpcHRpb25Bbm5vdGF0aW9uczogYW55LFxuXHRvRmllbGRUaXRsZUZpZWxkQ29udHJvbDogYW55LFxuXHRvRmllbGREZXNjcmlwdGlvbkZpZWxkQ29udHJvbDogYW55XG4pIHtcblx0Ly8gQ2hlY2sgQW5ub3RhdGlvbnMgZm9yIFRpdGxlIEZpZWxkXG5cdC8vIFNldCB0byB0cnVlIGFuZCBkb24ndCB0YWtlIGludG8gYWNjb3VudCwgaWYgdGhlcmUgYXJlIG5vIGFubm90YXRpb25zLCBpLmUuIG5vIHRpdGxlIGV4aXN0c1xuXHRjb25zdCBiSXNUaXRsZVJlYWRPbmx5ID0gb1RpdGxlQW5ub3RhdGlvbnMgPyBpc1JlYWRPbmx5RnJvbVN0YXRpY0Fubm90YXRpb25zKG9UaXRsZUFubm90YXRpb25zLCBvRmllbGRUaXRsZUZpZWxkQ29udHJvbCkgOiB0cnVlO1xuXHRjb25zdCB0aXRsZUV4cHJlc3Npb24gPSByZWFkT25seUV4cHJlc3Npb25Gcm9tRHluYW1pY0Fubm90YXRpb25zKG9GaWVsZFRpdGxlRmllbGRDb250cm9sKTtcblx0Ly8gVGhlcmUgaXMgbm8gZXhwcmVzc2lvbiBhbmQgdGhlIHRpdGxlIGlzIG5vdCByZWFkeSBvbmx5LCB0aGlzIGlzIHN1ZmZpY2llbnQgZm9yIGFuIGVkaXRhYmxlIGhlYWRlclxuXHRpZiAoIWJJc1RpdGxlUmVhZE9ubHkgJiYgIXRpdGxlRXhwcmVzc2lvbikge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0Ly8gQ2hlY2sgQW5ub3RhdGlvbnMgZm9yIERlc2NyaXB0aW9uIEZpZWxkXG5cdC8vIFNldCB0byB0cnVlIGFuZCBkb24ndCB0YWtlIGludG8gYWNjb3VudCwgaWYgdGhlcmUgYXJlIG5vIGFubm90YXRpb25zLCBpLmUuIG5vIGRlc2NyaXB0aW9uIGV4aXN0c1xuXHRjb25zdCBiSXNEZXNjcmlwdGlvblJlYWRPbmx5ID0gb0Rlc2NyaXB0aW9uQW5ub3RhdGlvbnNcblx0XHQ/IGlzUmVhZE9ubHlGcm9tU3RhdGljQW5ub3RhdGlvbnMob0Rlc2NyaXB0aW9uQW5ub3RhdGlvbnMsIG9GaWVsZERlc2NyaXB0aW9uRmllbGRDb250cm9sKVxuXHRcdDogdHJ1ZTtcblx0Y29uc3QgZGVzY3JpcHRpb25FeHByZXNzaW9uID0gcmVhZE9ubHlFeHByZXNzaW9uRnJvbUR5bmFtaWNBbm5vdGF0aW9ucyhvRmllbGREZXNjcmlwdGlvbkZpZWxkQ29udHJvbCk7XG5cdC8vIFRoZXJlIGlzIG5vIGV4cHJlc3Npb24gYW5kIHRoZSBkZXNjcmlwdGlvbiBpcyBub3QgcmVhZHkgb25seSwgdGhpcyBpcyBzdWZmaWNpZW50IGZvciBhbiBlZGl0YWJsZSBoZWFkZXJcblx0aWYgKCFiSXNEZXNjcmlwdGlvblJlYWRPbmx5ICYmICFkZXNjcmlwdGlvbkV4cHJlc3Npb24pIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdC8vIEJvdGggdGl0bGUgYW5kIGRlc2NyaXB0aW9uIGFyZSBub3QgZWRpdGFibGUgYW5kIHRoZXJlIGFyZSBubyBkeW5hbWljIGFubm90YXRpb25zXG5cdGlmIChiSXNUaXRsZVJlYWRPbmx5ICYmIGJJc0Rlc2NyaXB0aW9uUmVhZE9ubHkgJiYgIXRpdGxlRXhwcmVzc2lvbiAmJiAhZGVzY3JpcHRpb25FeHByZXNzaW9uKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0Ly8gTm93IGNvbWJpbmUgZXhwcmVzc2lvbnNcblx0aWYgKHRpdGxlRXhwcmVzc2lvbiAmJiAhZGVzY3JpcHRpb25FeHByZXNzaW9uKSB7XG5cdFx0cmV0dXJuIHRpdGxlRXhwcmVzc2lvbjtcblx0fSBlbHNlIGlmICghdGl0bGVFeHByZXNzaW9uICYmIGRlc2NyaXB0aW9uRXhwcmVzc2lvbikge1xuXHRcdHJldHVybiBkZXNjcmlwdGlvbkV4cHJlc3Npb247XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGNvbWJpbmVUaXRsZUFuZERlc2NyaXB0aW9uRXhwcmVzc2lvbihvRmllbGRUaXRsZUZpZWxkQ29udHJvbCwgb0ZpZWxkRGVzY3JpcHRpb25GaWVsZENvbnRyb2wpO1xuXHR9XG59O1xuXG5leHBvcnQgY29uc3QgY29tYmluZVRpdGxlQW5kRGVzY3JpcHRpb25FeHByZXNzaW9uID0gZnVuY3Rpb24gKG9UaXRsZUZpZWxkQ29udHJvbDogYW55LCBvRGVzY3JpcHRpb25GaWVsZENvbnRyb2w6IGFueSkge1xuXHQvLyBJZiBib3RoIGhlYWRlciBhbmQgdGl0bGUgZmllbGQgYXJlIGJhc2VkIG9uIGR5bm1haWMgZmllbGQgY29udHJvbCwgdGhlIGVkaXRhYmxlIGhlYWRlclxuXHQvLyBpcyB2aXNpYmxlIGlmIGF0IGxlYXN0IG9uZSBvZiB0aGVzZSBpcyBub3QgcmVhZHkgb25seVxuXHRyZXR1cm4gXCJ7PSAlXCIgKyBvVGl0bGVGaWVsZENvbnRyb2wgKyBcIiA9PT0gMSA/ICggJVwiICsgb0Rlc2NyaXB0aW9uRmllbGRDb250cm9sICsgXCIgPT09IDEgPyBmYWxzZSA6IHRydWUgKSA6IHRydWUgfVwiO1xufTtcblxuLypcbiAqIEdldCBFeHByZXNzaW9uIG9mIHByZXNzIGV2ZW50IG9mIGRlbGV0ZSBidXR0b24uXG4gKlxuICogQGZ1bmN0aW9uXG4gKiBAcGFyYW0ge3N0cmluZ30gW3NFbnRpdHlTZXROYW1lXSBFbnRpdHkgc2V0IG5hbWVcbiAqIHJldHVybnMge3N0cmluZ30gIGJpbmRpbmcgZXhwcmVzc2lvbiAvIGZ1bmN0aW9uIHN0cmluZyBnZW5lcmF0ZWQgZnJvbSBjb21tYW5oZWxwZXIncyBmdW5jdGlvbiBnZW5lcmF0ZUZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRQcmVzc0V4cHJlc3Npb25Gb3JEZWxldGUgPSBmdW5jdGlvbiAoZW50aXR5U2V0OiBPYmplY3QsIG9JbnRlcmZhY2U6IENvbXB1dGVkQW5ub3RhdGlvbkludGVyZmFjZSk6IHN0cmluZyB7XG5cdGNvbnN0IHNEZWxldGFibGVDb250ZXh0cyA9IFwiJHskdmlldz4vZ2V0QmluZGluZ0NvbnRleHR9XCIsXG5cdFx0c1RpdGxlID0gXCIkeyR2aWV3Pi8jZmU6Ok9iamVjdFBhZ2UvZ2V0SGVhZGVyVGl0bGUvZ2V0RXhwYW5kZWRIZWFkaW5nL2dldEl0ZW1zLzEvZ2V0VGV4dH1cIixcblx0XHRzRGVzY3JpcHRpb24gPSBcIiR7JHZpZXc+LyNmZTo6T2JqZWN0UGFnZS9nZXRIZWFkZXJUaXRsZS9nZXRFeHBhbmRlZENvbnRlbnQvMC9nZXRJdGVtcy8wL2dldFRleHR9XCI7XG5cdGNvbnN0IGVzQ29udGV4dCA9IG9JbnRlcmZhY2UgJiYgb0ludGVyZmFjZS5jb250ZXh0O1xuXHRjb25zdCBjb250ZXh0UGF0aCA9IGVzQ29udGV4dC5nZXRQYXRoKCk7XG5cdGNvbnN0IGNvbnRleHRQYXRoUGFydHMgPSBjb250ZXh0UGF0aC5zcGxpdChcIi9cIikuZmlsdGVyKE1vZGVsSGVscGVyLmZpbHRlck91dE5hdlByb3BCaW5kaW5nKTtcblx0Y29uc3Qgc0VudGl0eVNldE5hbWUgPVxuXHRcdGNvbnRleHRQYXRoUGFydHMubGVuZ3RoID4gMSA/IGVzQ29udGV4dC5nZXRNb2RlbCgpLmdldE9iamVjdChgLyR7Y29udGV4dFBhdGhQYXJ0cy5qb2luKFwiL1wiKX1Ac2FwdWkubmFtZWApIDogY29udGV4dFBhdGhQYXJ0c1swXTtcblx0Y29uc3Qgb1BhcmFtcyA9IHtcblx0XHR0aXRsZTogc1RpdGxlLFxuXHRcdGVudGl0eVNldE5hbWU6IENvbW1vbkhlbHBlci5hZGRTaW5nbGVRdW90ZXMoc0VudGl0eVNldE5hbWUpLFxuXHRcdGRlc2NyaXB0aW9uOiBzRGVzY3JpcHRpb25cblx0fTtcblx0cmV0dXJuIENvbW1vbkhlbHBlci5nZW5lcmF0ZUZ1bmN0aW9uKFwiLmVkaXRGbG93LmRlbGV0ZURvY3VtZW50XCIsIHNEZWxldGFibGVDb250ZXh0cywgQ29tbW9uSGVscGVyLm9iamVjdFRvU3RyaW5nKG9QYXJhbXMpKTtcbn07XG5cbmdldFByZXNzRXhwcmVzc2lvbkZvckRlbGV0ZS5yZXF1aXJlc0lDb250ZXh0ID0gdHJ1ZTtcblxuLypcbiAqIEdldCBFeHByZXNzaW9uIG9mIHByZXNzIGV2ZW50IG9mIEVkaXQgYnV0dG9uLlxuICpcbiAqIEBmdW5jdGlvblxuICogQHBhcmFtIHtvYmplY3R9IFtvRGF0YUZpZWxkXSBEYXRhIGZpZWxkIG9iamVjdFxuICogQHBhcmFtIHtzdHJpbmd9IFtzRW50aXR5U2V0TmFtZV0gRW50aXR5IHNldCBuYW1lXG4gKiBAcGFyYW0ge29iamVjdH0gW29IZWFkZXJBY3Rpb25dIEhlYWRlciBhY3Rpb24gb2JqZWN0XG4gKiByZXR1cm5zIHtzdHJpbmd9ICBiaW5kaW5nIGV4cHJlc3Npb24gLyBmdW5jdGlvbiBzdHJpbmcgZ2VuZXJhdGVkIGZyb20gY29tbWFuaGVscGVyJ3MgZnVuY3Rpb24gZ2VuZXJhdGVGdW5jdGlvblxuICovXG5leHBvcnQgY29uc3QgZ2V0UHJlc3NFeHByZXNzaW9uRm9yRWRpdCA9IGZ1bmN0aW9uIChvRGF0YUZpZWxkOiBhbnksIHNFbnRpdHlTZXROYW1lOiBhbnksIG9IZWFkZXJBY3Rpb246IGFueSkge1xuXHRjb25zdCBzRWRpdGFibGVDb250ZXh0cyA9IENvbW1vbkhlbHBlci5hZGRTaW5nbGVRdW90ZXMob0RhdGFGaWVsZCAmJiBvRGF0YUZpZWxkLkFjdGlvbiksXG5cdFx0c0RhdGFGaWVsZEVudW1NZW1iZXIgPSBvRGF0YUZpZWxkICYmIG9EYXRhRmllbGQuSW52b2NhdGlvbkdyb3VwaW5nICYmIG9EYXRhRmllbGQuSW52b2NhdGlvbkdyb3VwaW5nW1wiJEVudW1NZW1iZXJcIl0sXG5cdFx0c0ludm9jYXRpb25Hcm91cCA9IHNEYXRhRmllbGRFbnVtTWVtYmVyID09PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLk9wZXJhdGlvbkdyb3VwaW5nVHlwZS9DaGFuZ2VTZXRcIiA/IFwiQ2hhbmdlU2V0XCIgOiBcIklzb2xhdGVkXCI7XG5cdGNvbnN0IG9QYXJhbXMgPSB7XG5cdFx0Y29udGV4dHM6IFwiJHskdmlldz4vZ2V0QmluZGluZ0NvbnRleHR9XCIsXG5cdFx0ZW50aXR5U2V0TmFtZTogQ29tbW9uSGVscGVyLmFkZFNpbmdsZVF1b3RlcyhzRW50aXR5U2V0TmFtZSksXG5cdFx0aW52b2NhdGlvbkdyb3VwaW5nOiBDb21tb25IZWxwZXIuYWRkU2luZ2xlUXVvdGVzKHNJbnZvY2F0aW9uR3JvdXApLFxuXHRcdG1vZGVsOiBcIiR7JHNvdXJjZT4vfS5nZXRNb2RlbCgpXCIsXG5cdFx0bGFiZWw6IENvbW1vbkhlbHBlci5hZGRTaW5nbGVRdW90ZXMob0RhdGFGaWVsZCAmJiBvRGF0YUZpZWxkLkxhYmVsLCB0cnVlKSxcblx0XHRpc05hdmlnYWJsZTogb0hlYWRlckFjdGlvbiAmJiBvSGVhZGVyQWN0aW9uLmlzTmF2aWdhYmxlLFxuXHRcdGRlZmF1bHRWYWx1ZXNFeHRlbnNpb25GdW5jdGlvbjpcblx0XHRcdG9IZWFkZXJBY3Rpb24gJiYgb0hlYWRlckFjdGlvbi5kZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24gPyBgJyR7b0hlYWRlckFjdGlvbi5kZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb259J2AgOiB1bmRlZmluZWRcblx0fTtcblx0cmV0dXJuIENvbW1vbkhlbHBlci5nZW5lcmF0ZUZ1bmN0aW9uKFwiLmhhbmRsZXJzLm9uQ2FsbEFjdGlvblwiLCBcIiR7JHZpZXc+L31cIiwgc0VkaXRhYmxlQ29udGV4dHMsIENvbW1vbkhlbHBlci5vYmplY3RUb1N0cmluZyhvUGFyYW1zKSk7XG59O1xuXG4vKlxuICogTWV0aG9kIHRvIGdldCB0aGUgZXhwcmVzc2lvbiBmb3IgdGhlICdwcmVzcycgZXZlbnQgZm9yIGZvb3RlciBhbm5vdGF0aW9uIGFjdGlvbnNcbiAqXG4gKiBAZnVuY3Rpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBbb0RhdGFGaWVsZF0gRGF0YSBmaWVsZCBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc0VudGl0eVNldE5hbWVdIEVudGl0eSBzZXQgbmFtZVxuICogQHBhcmFtIHtvYmplY3R9IFtvSGVhZGVyQWN0aW9uXSBIZWFkZXIgYWN0aW9uIG9iamVjdFxuICogcmV0dXJucyB7c3RyaW5nfSAgQmluZGluZyBleHByZXNzaW9uIG9yIGZ1bmN0aW9uIHN0cmluZyB0aGF0IGlzIGdlbmVyYXRlZCBmcm9tIHRoZSBDb21tb25oZWxwZXIncyBmdW5jdGlvbiBnZW5lcmF0ZUZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRQcmVzc0V4cHJlc3Npb25Gb3JGb290ZXJBbm5vdGF0aW9uQWN0aW9uID0gZnVuY3Rpb24gKFxuXHRkYXRhRmllbGQ6IERhdGFGaWVsZEZvckFjdGlvbixcblx0c0VudGl0eVNldE5hbWU6IGFueSxcblx0b0hlYWRlckFjdGlvbjogYW55XG4pIHtcblx0Y29uc3Qgc0FjdGlvbkNvbnRleHRzID0gQ29tbW9uSGVscGVyLmFkZFNpbmdsZVF1b3RlcyhkYXRhRmllbGQuQWN0aW9uIGFzIHN0cmluZyksXG5cdFx0c0RhdGFGaWVsZEVudW1NZW1iZXIgPSBkYXRhRmllbGQuSW52b2NhdGlvbkdyb3VwaW5nLFxuXHRcdHNJbnZvY2F0aW9uR3JvdXAgPSBzRGF0YUZpZWxkRW51bU1lbWJlciA9PT0gXCJVSS5PcGVyYXRpb25Hcm91cGluZ1R5cGUvQ2hhbmdlU2V0XCIgPyBcIkNoYW5nZVNldFwiIDogXCJJc29sYXRlZFwiO1xuXHRjb25zdCBvUGFyYW1zID0ge1xuXHRcdGNvbnRleHRzOiBcIiR7JHZpZXc+LyNmZTo6T2JqZWN0UGFnZS99LmdldEJpbmRpbmdDb250ZXh0KClcIixcblx0XHRlbnRpdHlTZXROYW1lOiBDb21tb25IZWxwZXIuYWRkU2luZ2xlUXVvdGVzKHNFbnRpdHlTZXROYW1lKSxcblx0XHRpbnZvY2F0aW9uR3JvdXBpbmc6IENvbW1vbkhlbHBlci5hZGRTaW5nbGVRdW90ZXMoc0ludm9jYXRpb25Hcm91cCksXG5cdFx0bW9kZWw6IFwiJHskc291cmNlPi99LmdldE1vZGVsKClcIixcblx0XHRsYWJlbDogQ29tbW9uSGVscGVyLmFkZFNpbmdsZVF1b3RlcyhkYXRhRmllbGQuTGFiZWwgYXMgc3RyaW5nLCB0cnVlKSxcblx0XHRpc05hdmlnYWJsZTogb0hlYWRlckFjdGlvbiAmJiBvSGVhZGVyQWN0aW9uLmlzTmF2aWdhYmxlLFxuXHRcdGRlZmF1bHRWYWx1ZXNFeHRlbnNpb25GdW5jdGlvbjpcblx0XHRcdG9IZWFkZXJBY3Rpb24gJiYgb0hlYWRlckFjdGlvbi5kZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24gPyBgJyR7b0hlYWRlckFjdGlvbi5kZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb259J2AgOiB1bmRlZmluZWRcblx0fTtcblx0cmV0dXJuIENvbW1vbkhlbHBlci5nZW5lcmF0ZUZ1bmN0aW9uKFwiLmhhbmRsZXJzLm9uQ2FsbEFjdGlvblwiLCBcIiR7JHZpZXc+L31cIiwgc0FjdGlvbkNvbnRleHRzLCBDb21tb25IZWxwZXIub2JqZWN0VG9TdHJpbmcob1BhcmFtcykpO1xufTtcblxuLypcbiAqIEdldCBFeHByZXNzaW9uIG9mIGV4ZWN1dGUgZXZlbnQgZXhwcmVzc2lvbiBvZiBwcmltYXJ5IGFjdGlvbi5cbiAqXG4gKiBAZnVuY3Rpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBbb0RhdGFGaWVsZF0gRGF0YSBmaWVsZCBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc0VudGl0eVNldE5hbWVdIEVudGl0eSBzZXQgbmFtZVxuICogQHBhcmFtIHtvYmplY3R9IFtvSGVhZGVyQWN0aW9uXSBIZWFkZXIgYWN0aW9uIG9iamVjdFxuICogQHBhcmFtIHtDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB8IHN0cmluZ30gVGhlIHZpc2liaWxpdHkgb2Ygc2VtYXRpYyBwb3NpdGl2ZSBhY3Rpb25cbiAqIEBwYXJhbSB7Q29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfCBzdHJpbmd9IFRoZSBlbmFibGVtZW50IG9mIHNlbWFudGljIHBvc2l0aXZlIGFjdGlvblxuICogQHBhcmFtIHtDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB8IHN0cmluZ30gVGhlIEVkaXQgYnV0dG9uIHZpc2liaWxpdHlcbiAqIEBwYXJhbSB7Q29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfCBzdHJpbmd9IFRoZSBlbmFibGVtZW50IG9mIEVkaXQgYnV0dG9uXG4gKiByZXR1cm5zIHtzdHJpbmd9ICBiaW5kaW5nIGV4cHJlc3Npb24gLyBmdW5jdGlvbiBzdHJpbmcgZ2VuZXJhdGVkIGZyb20gY29tbWFuaGVscGVyJ3MgZnVuY3Rpb24gZ2VuZXJhdGVGdW5jdGlvblxuICovXG5leHBvcnQgY29uc3QgZ2V0UHJlc3NFeHByZXNzaW9uRm9yUHJpbWFyeUFjdGlvbiA9IGZ1bmN0aW9uIChcblx0b0RhdGFGaWVsZDogYW55LFxuXHRzRW50aXR5U2V0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuXHRvSGVhZGVyQWN0aW9uOiBCYXNlQWN0aW9uIHwgbnVsbCxcblx0cG9zaXRpdmVBY3Rpb25WaXNpYmxlOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB8IHN0cmluZyxcblx0cG9zaXRpdmVBY3Rpb25FbmFibGVkOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB8IHN0cmluZyxcblx0ZWRpdEFjdGlvblZpc2libGU6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHwgc3RyaW5nLFxuXHRlZGl0QWN0aW9uRW5hYmxlZDogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfCBzdHJpbmdcbikge1xuXHRjb25zdCBzQWN0aW9uQ29udGV4dHMgPSBDb21tb25IZWxwZXIuYWRkU2luZ2xlUXVvdGVzKG9EYXRhRmllbGQgJiYgb0RhdGFGaWVsZC5BY3Rpb24pLFxuXHRcdHNEYXRhRmllbGRFbnVtTWVtYmVyID0gb0RhdGFGaWVsZCAmJiBvRGF0YUZpZWxkLkludm9jYXRpb25Hcm91cGluZyAmJiBvRGF0YUZpZWxkLkludm9jYXRpb25Hcm91cGluZ1tcIiRFbnVtTWVtYmVyXCJdLFxuXHRcdHNJbnZvY2F0aW9uR3JvdXAgPSBzRGF0YUZpZWxkRW51bU1lbWJlciA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5PcGVyYXRpb25Hcm91cGluZ1R5cGUvQ2hhbmdlU2V0XCIgPyBcIkNoYW5nZVNldFwiIDogXCJJc29sYXRlZFwiO1xuXHRjb25zdCBvUGFyYW1zID0ge1xuXHRcdGNvbnRleHRzOiBcIiR7JHZpZXc+LyNmZTo6T2JqZWN0UGFnZS99LmdldEJpbmRpbmdDb250ZXh0KClcIixcblx0XHRlbnRpdHlTZXROYW1lOiBzRW50aXR5U2V0TmFtZSA/IENvbW1vbkhlbHBlci5hZGRTaW5nbGVRdW90ZXMoc0VudGl0eVNldE5hbWUpIDogXCJcIixcblx0XHRpbnZvY2F0aW9uR3JvdXBpbmc6IENvbW1vbkhlbHBlci5hZGRTaW5nbGVRdW90ZXMoc0ludm9jYXRpb25Hcm91cCksXG5cdFx0bW9kZWw6IFwiJHskc291cmNlPi99LmdldE1vZGVsKClcIixcblx0XHRsYWJlbDogQ29tbW9uSGVscGVyLmFkZFNpbmdsZVF1b3RlcyhvRGF0YUZpZWxkPy5MYWJlbCwgdHJ1ZSksXG5cdFx0aXNOYXZpZ2FibGU6IG9IZWFkZXJBY3Rpb24/LmlzTmF2aWdhYmxlLFxuXHRcdGRlZmF1bHRWYWx1ZXNFeHRlbnNpb25GdW5jdGlvbjogb0hlYWRlckFjdGlvbj8uZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uXG5cdFx0XHQ/IGAnJHtvSGVhZGVyQWN0aW9uLmRlZmF1bHRWYWx1ZXNFeHRlbnNpb25GdW5jdGlvbn0nYFxuXHRcdFx0OiB1bmRlZmluZWRcblx0fTtcblx0Y29uc3Qgb0NvbmRpdGlvbnMgPSB7XG5cdFx0cG9zaXRpdmVBY3Rpb25WaXNpYmxlLFxuXHRcdHBvc2l0aXZlQWN0aW9uRW5hYmxlZCxcblx0XHRlZGl0QWN0aW9uVmlzaWJsZSxcblx0XHRlZGl0QWN0aW9uRW5hYmxlZFxuXHR9O1xuXHRyZXR1cm4gQ29tbW9uSGVscGVyLmdlbmVyYXRlRnVuY3Rpb24oXG5cdFx0XCIuaGFuZGxlcnMub25QcmltYXJ5QWN0aW9uXCIsXG5cdFx0XCIkY29udHJvbGxlclwiLFxuXHRcdFwiJHskdmlldz4vfVwiLFxuXHRcdFwiJHskdmlldz4vZ2V0QmluZGluZ0NvbnRleHR9XCIsXG5cdFx0c0FjdGlvbkNvbnRleHRzLFxuXHRcdENvbW1vbkhlbHBlci5vYmplY3RUb1N0cmluZyhvUGFyYW1zKSxcblx0XHRDb21tb25IZWxwZXIub2JqZWN0VG9TdHJpbmcob0NvbmRpdGlvbnMpXG5cdCk7XG59O1xuXG4vKlxuICogR2V0cyB0aGUgYmluZGluZyBvZiB0aGUgY29udGFpbmVyIEhCb3ggZm9yIHRoZSBoZWFkZXIgZmFjZXQuXG4gKlxuICogQGZ1bmN0aW9uXG4gKiBAcGFyYW0ge29iamVjdH0gW29Db250cm9sQ29uZmlndXJhdGlvbl0gVGhlIGNvbnRyb2wgY29uZmlndXJhdGlvbiBmb3JtIG9mIHRoZSB2aWV3RGF0YSBtb2RlbFxuICogQHBhcmFtIHtvYmplY3R9IFtvSGVhZGVyRmFjZXRdIFRoZSBvYmplY3Qgb2YgdGhlIGhlYWRlciBmYWNldFxuICogcmV0dXJucyB7Kn0gIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZnJvbSBmdW5jdGlvbiBnZXRCaW5kaW5nV2l0aEdyb3VwSWRGcm9tQ29uZmlnIG9yIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFN0YXNoYWJsZUhCb3hCaW5kaW5nID0gZnVuY3Rpb24gKG9Db250cm9sQ29uZmlndXJhdGlvbjogYW55LCBvSGVhZGVyRmFjZXQ6IGFueSkge1xuXHRpZiAob0hlYWRlckZhY2V0ICYmIG9IZWFkZXJGYWNldC5GYWNldCAmJiBvSGVhZGVyRmFjZXQuRmFjZXQudGFyZ2V0QW5ub3RhdGlvblR5cGUgPT09IFwiRGF0YVBvaW50XCIpIHtcblx0XHRyZXR1cm4gZ2V0QmluZGluZ1dpdGhHcm91cElkRnJvbUNvbmZpZyhvQ29udHJvbENvbmZpZ3VyYXRpb24sIG9IZWFkZXJGYWNldC5GYWNldC50YXJnZXRBbm5vdGF0aW9uVmFsdWUpO1xuXHR9XG59O1xuXG4vKlxuICogR2V0cyB0aGUgJ1ByZXNzJyBldmVudCBleHByZXNzaW9uIGZvciB0aGUgZXh0ZXJuYWwgYW5kIGludGVybmFsIGRhdGEgcG9pbnQgbGluay5cbiAqXG4gKiBAZnVuY3Rpb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBbb0NvbmZpZ3VyYXRpb25dIENvbnRyb2wgY29uZmlndXJhdGlvbiBmcm9tIG1hbmlmZXN0XG4gKiBAcGFyYW0ge29iamVjdH0gW29NYW5pZmVzdE91dGJvdW5kXSBPdXRib3VuZHMgZnJvbSBtYW5pZmVzdFxuICogcmV0dXJucyB7c3RyaW5nfSBUaGUgcnVudGltZSBiaW5kaW5nIG9mIHRoZSAnUHJlc3MnIGV2ZW50XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRQcmVzc0V4cHJlc3Npb25Gb3JMaW5rID0gZnVuY3Rpb24gKG9Db25maWd1cmF0aW9uOiBhbnksIG9NYW5pZmVzdE91dGJvdW5kOiBhbnkpIHtcblx0aWYgKG9Db25maWd1cmF0aW9uKSB7XG5cdFx0aWYgKG9Db25maWd1cmF0aW9uW1widGFyZ2V0T3V0Ym91bmRcIl0gJiYgb0NvbmZpZ3VyYXRpb25bXCJ0YXJnZXRPdXRib3VuZFwiXVtcIm91dGJvdW5kXCJdKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcIi5oYW5kbGVycy5vbkRhdGFQb2ludFRpdGxlUHJlc3NlZCgkY29udHJvbGxlciwgJHskc291cmNlPn0sIFwiICtcblx0XHRcdFx0SlNPTi5zdHJpbmdpZnkob01hbmlmZXN0T3V0Ym91bmQpICtcblx0XHRcdFx0XCIsXCIgK1xuXHRcdFx0XHRKU09OLnN0cmluZ2lmeShvQ29uZmlndXJhdGlvbltcInRhcmdldE91dGJvdW5kXCJdW1wib3V0Ym91bmRcIl0pICtcblx0XHRcdFx0XCIpXCJcblx0XHRcdCk7XG5cdFx0fSBlbHNlIGlmIChvQ29uZmlndXJhdGlvbltcInRhcmdldFNlY3Rpb25zXCJdKSB7XG5cdFx0XHRyZXR1cm4gXCIuaGFuZGxlcnMubmF2aWdhdGVUb1N1YlNlY3Rpb24oJGNvbnRyb2xsZXIsICdcIiArIEpTT04uc3RyaW5naWZ5KG9Db25maWd1cmF0aW9uW1widGFyZ2V0U2VjdGlvbnNcIl0pICsgXCInKVwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxufTtcblxuZXhwb3J0IGNvbnN0IGdldEhlYWRlckZvcm1IYm94UmVuZGVyVHlwZSA9IGZ1bmN0aW9uIChkYXRhRmllbGQ6IERhdGFNb2RlbE9iamVjdFBhdGgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRpZiAoZGF0YUZpZWxkPy50YXJnZXRPYmplY3Q/LiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBbm5vdGF0aW9uKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXHRyZXR1cm4gXCJCYXJlXCI7XG59O1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IGFjdGlvbiBncm91cCBoYW5kbGVyIHRoYXQgaXMgaW52b2tlZCB3aGVuIGFkZGluZyB0aGUgbWVudSBidXR0b24gaGFuZGxpbmcgYXBwcm9wcmlhdGVseS5cbiAqXG4gKiBAcGFyYW0gb0N0eCBUaGUgY3VycmVudCBjb250ZXh0IGluIHdoaWNoIHRoZSBoYW5kbGVyIGlzIGNhbGxlZFxuICogQHBhcmFtIG9BY3Rpb24gVGhlIGN1cnJlbnQgYWN0aW9uIGNvbnRleHRcbiAqIEBwYXJhbSBvRGF0YUZpZWxkRm9yRGVmYXVsdEFjdGlvbiBUaGUgY3VycmVudCBkYXRhRmllbGQgZm9yIHRoZSBkZWZhdWx0IGFjdGlvblxuICogQHBhcmFtIGRlZmF1bHRBY3Rpb25Db250ZXh0T3JFbnRpdHlTZXQgVGhlIGN1cnJlbnQgY29udGV4dCBmb3IgdGhlIGRlZmF1bHQgYWN0aW9uXG4gKiBAcmV0dXJucyBUaGUgYXBwcm9wcmlhdGUgZXhwcmVzc2lvbiBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRBY3Rpb25IYW5kbGVyKG9DdHg6IGFueSwgb0FjdGlvbjogYW55LCBvRGF0YUZpZWxkRm9yRGVmYXVsdEFjdGlvbjogYW55LCBkZWZhdWx0QWN0aW9uQ29udGV4dE9yRW50aXR5U2V0OiBhbnkpIHtcblx0aWYgKG9BY3Rpb24uZGVmYXVsdEFjdGlvbikge1xuXHRcdHRyeSB7XG5cdFx0XHRzd2l0Y2ggKG9BY3Rpb24uZGVmYXVsdEFjdGlvbi50eXBlKSB7XG5cdFx0XHRcdGNhc2UgXCJGb3JBY3Rpb25cIjoge1xuXHRcdFx0XHRcdHJldHVybiBnZXRQcmVzc0V4cHJlc3Npb25Gb3JFZGl0KG9EYXRhRmllbGRGb3JEZWZhdWx0QWN0aW9uLCBkZWZhdWx0QWN0aW9uQ29udGV4dE9yRW50aXR5U2V0LCBvQWN0aW9uLmRlZmF1bHRBY3Rpb24pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNhc2UgXCJGb3JOYXZpZ2F0aW9uXCI6IHtcblx0XHRcdFx0XHRpZiAob0FjdGlvbi5kZWZhdWx0QWN0aW9uLmNvbW1hbmQpIHtcblx0XHRcdFx0XHRcdHJldHVybiBcImNtZDpcIiArIG9BY3Rpb24uZGVmYXVsdEFjdGlvbi5jb21tYW5kO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gb0FjdGlvbi5kZWZhdWx0QWN0aW9uLnByZXNzO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRkZWZhdWx0OiB7XG5cdFx0XHRcdFx0aWYgKG9BY3Rpb24uZGVmYXVsdEFjdGlvbi5jb21tYW5kKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gXCJjbWQ6XCIgKyBvQWN0aW9uLmRlZmF1bHRBY3Rpb24uY29tbWFuZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKG9BY3Rpb24uZGVmYXVsdEFjdGlvbi5ub1dyYXApIHtcblx0XHRcdFx0XHRcdHJldHVybiBvQWN0aW9uLmRlZmF1bHRBY3Rpb24ucHJlc3M7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHJldHVybiBDb21tb25IZWxwZXIuYnVpbGRBY3Rpb25XcmFwcGVyKG9BY3Rpb24uZGVmYXVsdEFjdGlvbiwgeyBpZDogXCJmb3JUaGVPYmplY3RQYWdlXCIgfSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCAoaW9FeCkge1xuXHRcdFx0cmV0dXJuIFwiYmluZGluZyBmb3IgdGhlIGRlZmF1bHQgYWN0aW9uIGlzIG5vdCB3b3JraW5nIGFzIGV4cGVjdGVkXCI7XG5cdFx0fVxuXHR9XG5cdHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHN1YiBzZWN0aW9uIHZpc3VhbGl6YXRpb24gaXMgcGFydCBvZiBwcmV2aWV3LlxuICpcbiAqIEBwYXJhbSBzdWJTZWN0aW9uIFRoZSBzdWIgc2VjdGlvbiB2aXN1YWxpemF0aW9uXG4gKiBAcmV0dXJucyBBIEJvb2xlYW4gdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmlzdWFsaXphdGlvbklzUGFydE9mUHJldmlldyhzdWJTZWN0aW9uOiBEYXRhVmlzdWFsaXphdGlvblN1YlNlY3Rpb24pIHtcblx0cmV0dXJuIHN1YlNlY3Rpb24uaXNQYXJ0T2ZQcmV2aWV3ID09PSB0cnVlIHx8IHN1YlNlY3Rpb24ucHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zWzBdLnR5cGUgIT09IFwiVGFibGVcIjtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtQ0EsTUFBTUEsVUFBVSxHQUFHQyxR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
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/converters/helpers/BindingHelper","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/templating/DataModelPathHelper","sap/fe/macros/CommonHelper","sap/fe/macros/field/FieldTemplating","sap/fe/macros/internal/form/FormTemplating","sap/m/library","sap/ui/base/ManagedObject","sap/ui/model/odata/v4/AnnotationHelper"],function(e,t,n,o,i,r,a,s,l,u){"use strict";var c={};var d=a.getLabelForConnectedFields;var f=r.formatValueRecursively;var g=r.addTextArrangementToBindingExpression;var v=o.enhanceDataModelPath;var p=t.resolveBindingString;var m=t.or;var b=t.not;var T=t.isEmpty;var E=t.ifElse;var y=t.getExpressionFromAnnotation;var A=t.equal;var S=t.constant;var C=t.concat;var O=t.compileExpression;var $=t.and;var D=e.UI;var x=e.Entity;var I=e.Draft;const h=s.ButtonType;const F=function(e,t,n,o){var i,r,a,s;const l=t.resourceModel.getText("T_NEW_OBJECT",undefined,t.entitySet);const u=t.resourceModel.getText("T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE",undefined,t.entitySet);const c=(e===null||e===void 0?void 0:e.Title)===undefined||(e===null||e===void 0?void 0:e.Title)===""||(e===null||e===void 0?void 0:(i=e.Title)===null||i===void 0?void 0:i.Value)==="";const m=!c?t.resourceModel.getText("T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE_NO_HEADER_INFO"):"";let b,A,I=S(true),h;if((e===null||e===void 0?void 0:(r=e.Title)===null||r===void 0?void 0:r.$Type)==="com.sap.vocabularies.UI.v1.DataField"){var F,P,B,V,N,M,_,w,H,j,G;b=y(e===null||e===void 0?void 0:(F=e.Title)===null||F===void 0?void 0:F.Value);if(e!==null&&e!==void 0&&(P=e.Title)!==null&&P!==void 0&&(B=P.Value)!==null&&B!==void 0&&(V=B.$target)!==null&&V!==void 0&&(N=V.annotations)!==null&&N!==void 0&&(M=N.Common)!==null&&M!==void 0&&(_=M.Text)!==null&&_!==void 0&&(w=_.annotations)!==null&&w!==void 0&&(H=w.UI)!==null&&H!==void 0&&H.TextArrangement){b=g(b,n)}b=f(b,n);I=((j=b)===null||j===void 0?void 0:j._type)==="Constant"?S(!((G=b)!==null&&G!==void 0&&G.value)):T(b)}else if((e===null||e===void 0?void 0:(a=e.Title)===null||a===void 0?void 0:a.$Type)==="com.sap.vocabularies.UI.v1.DataFieldForAnnotation"&&(e===null||e===void 0?void 0:(s=e.Title)===null||s===void 0?void 0:s.Target.$target.$Type)==="com.sap.vocabularies.UI.v1.ConnectedFieldsType"){var U,R;A=v(n,"$Type/@UI.HeaderInfo/Title/Target/$AnnotationPath");b=d(A,false);h=((U=b)===null||U===void 0?void 0:U._type)==="Constant"?S(!((R=b)!==null&&R!==void 0&&R.value)):T(b);I=b?h:S(true)}const L=e!==null&&e!==void 0&&e.TypeName?C(u,": ",p(e.TypeName.toString())):l;const Q=o?x.IsActive:true;return O(E($(D.IsCreateMode,I),L,E($(Q,I),m,b)))};c.getExpressionForTitle=F;const P=function(e,t){var n,o,i,r,a,s,l,u,c;let d=y(e===null||e===void 0?void 0:(n=e.Description)===null||n===void 0?void 0:n.Value);if(e!==null&&e!==void 0&&(o=e.Description)!==null&&o!==void 0&&(i=o.Value)!==null&&i!==void 0&&(r=i.$target)!==null&&r!==void 0&&(a=r.annotations)!==null&&a!==void 0&&(s=a.Common)!==null&&s!==void 0&&(l=s.Text)!==null&&l!==void 0&&(u=l.annotations)!==null&&u!==void 0&&(c=u.UI)!==null&&c!==void 0&&c.TextArrangement){d=g(d,t)}return O(f(d,t))};c.getExpressionForDescription=P;const B=function(e,t){var n;const o=e.resourceModel.getText("T_OP_OBJECT_PAGE_SAVE");const i=e.resourceModel.getText("T_OP_OBJECT_PAGE_CREATE");let r;if((n=t.startingEntitySet.annotations.Session)!==null&&n!==void 0&&n.StickySessionSupported){r=E(D.IsCreateMode,i,o)}else{r=E(I.IsNewObject,i,o)}return O(r)};c.getExpressionForSaveButton=B;const V=function(e){const t=["Primary","DefaultApply","Secondary","ForAction","ForNavigation","SwitchToActiveObject","SwitchToDraftObject","DraftActions","Copy"];return t.indexOf(e.type)<0};c.isManifestAction=V;const N=function(e){var t,n,o;const i=(t=e.targetEntityType)===null||t===void 0?void 0:(n=t.annotations)===null||n===void 0?void 0:(o=n.UI)===null||o===void 0?void 0:o.Identification;const r=(i===null||i===void 0?void 0:i.filter(e=>e.$Type==="com.sap.vocabularies.UI.v1.DataFieldForAction"&&e.Criticality))||[];const a=r.length?r.map(e=>{var t,n;const o=y(e.Criticality);return $(b(A(y((t=e.annotations)===null||t===void 0?void 0:(n=t.UI)===null||n===void 0?void 0:n.Hidden),true)),m(A(o,"UI.CriticalityType/Negative"),A(o,"1"),A(o,1),A(o,"UI.CriticalityType/Positive"),A(o,"3"),A(o,3)))}):[S(false)];return O(E(m(...a),h.Default,h.Emphasized))};c.buildEmphasizedButtonExpression=N;const M=function(e){const t=u.getNavigationPath(e);if(t){return"{path:'"+t+"'}"}else{return"{path: ''}"}};c.getElementBinding=M;const _=function(e){if(e["@com.sap.vocabularies.Common.v1.DraftRoot"]&&e["@com.sap.vocabularies.Common.v1.DraftRoot"]["EditAction"]){return true}else{return false}};c.checkDraftState=_;const w=function(e){if(_(e)){return"{= (%{DraftAdministrativeData/DraftIsCreatedByMe}) ? ( ${ui>/isEditable} && !${ui>createMode} && %{DraftAdministrativeData/DraftIsCreatedByMe} ) : false }"}else{return false}};c.getSwitchToActiveVisibility=w;const H=function(e){if(_(e)){return"{= (%{DraftAdministrativeData/DraftIsCreatedByMe}) ? ( !(${ui>/isEditable}) && !${ui>createMode} && ${HasDraftEntity} && %{DraftAdministrativeData/DraftIsCreatedByMe} ) : false }"}else{return false}};c.getSwitchToDraftVisibility=H;const j=function(e){if(_(e)){return"{= (%{DraftAdministrativeData/DraftIsCreatedByMe}) ? ( !${ui>createMode} && %{DraftAdministrativeData/DraftIsCreatedByMe} ) : false }"}else{return false}};c.getSwitchDraftAndActiveVisibility=j;const G=function(e,t){let n;if(e&&e.length){n=e.find(function(e){return e.type===t})}return n};c._findAction=G;const U=function(e){const t=G(e,"Secondary");return t?t.enabled:"true"};c.getDeleteCommandExecutionEnabled=U;const R=function(e){const t=G(e,"Secondary");return t?t.visible:"true"};c.getDeleteCommandExecutionVisible=R;const L=function(e){const t=G(e,"Primary");return t?t.visible:"false"};c.getEditCommandExecutionVisible=L;const Q=function(e){const t=G(e,"Primary");return t?t.enabled:"false"};c.getEditCommandExecutionEnabled=Q;const J=function(e){const t=e.getPath();const n=t.split("/");const o="/"+n[1];const i=e.getObject(o+"@");const r=i.hasOwnProperty("@com.sap.vocabularies.Common.v1.DraftRoot");const a=i.hasOwnProperty("@com.sap.vocabularies.Common.v1.DraftNode");const s=i.hasOwnProperty("@com.sap.vocabularies.Session.v1.StickySessionSupported");let l;if(r){l=e.getObject(`${o}@com.sap.vocabularies.Common.v1.DraftRoot/EditAction`)}else if(a){l=e.getObject(`${o}@com.sap.vocabularies.Common.v1.DraftNode/EditAction`)}else if(s){l=e.getObject(`${o}@com.sap.vocabularies.Session.v1.StickySessionSupported/EditAction`)}return!l?l:`${o}/${l}`};c.getEditAction=J;const k=function(e,t){let n,o,i;if(e&&e["@Org.OData.Core.V1.Computed"]){n=e["@Org.OData.Core.V1.Computed"].Bool?e["@Org.OData.Core.V1.Computed"].Bool=="true":true}if(e&&e["@Org.OData.Core.V1.Immutable"]){o=e["@Org.OData.Core.V1.Immutable"].Bool?e["@Org.OData.Core.V1.Immutable"].Bool=="true":true}i=n||o;if(t){i=i||t=="com.sap.vocabularies.Common.v1.FieldControlType/ReadOnly"}if(i){return true}else{return false}};c.isReadOnlyFromStaticAnnotations=k;const q=function(e){let t;if(e){if(l.bindingParser(e)){t="%"+e+" === 1 "}}if(t){return"{= "+t+"? false : true }"}else{return undefined}};c.readOnlyExpressionFromDynamicAnnotations=q;const W=function(e,t,n){if(e){if(e["targetOutbound"]&&e["targetOutbound"]["outbound"]||e["targetOutbound"]&&e["targetOutbound"]["outbound"]&&e["targetSections"]){return".handlers.onDataPointTitlePressed($controller, ${$source>/},'"+JSON.stringify(t)+"','"+e["targetOutbound"]["outbound"]+"','"+n+"' )"}else if(e["targetSections"]){return".handlers.navigateToSubSection($controller, '"+JSON.stringify(e["targetSections"])+"')"}else{return undefined}}};c.getExpressionForMicroChartTitlePress=W;const z=function(e){if(e&&(e["targetOutbound"]||e["targetOutbound"]&&e["targetSections"])){return"External"}else if(e&&e["targetSections"]){return"InPage"}else{return"None"}};c.getMicroChartTitleAsLink=z;const K=function(e,t,n){const o=e[t],i=["Heroes","Decoration","Workers","LongRunners"];let r=n;if(o&&o.requestGroupId&&i.some(function(e){return e===o.requestGroupId})){r="$auto."+o.requestGroupId}return r};c.getGroupIdFromConfig=K;const X=function(e,t){const n=K(e,t);let o;if(n){o="{ path : '', parameters : { $$groupId : '"+n+"' } }"}return o};c.getBindingWithGroupIdFromConfig=X;const Y=function(e){return e&&e.length===1&&!!e[0].isValueMultilineText};c.doesFieldGroupContainOnlyOneMultiLineDataField=Y;const Z=function(e){return e.showBreadCrumbs&&e.fclEnabled!==undefined?"{fclhelper>/breadCrumbIsVisible}":e.showBreadCrumbs};c.getVisibleExpressionForBreadcrumbs=Z;const ee=function(e){let t="!${ui>createMode}";if(e.fclEnabled){t="${fclhelper>/showShareIcon} && "+t}if(e.isShareButtonVisibleForMyInbox===false){return"false"}return"{= "+t+" }"};c.getShareButtonVisibility=ee;const te=function(e,t,n,o){const i=e?k(e,n):true;const r=q(n);if(!i&&!r){return true}const a=t?k(t,o):true;const s=q(o);if(!a&&!s){return true}if(i&&a&&!r&&!s){return false}if(r&&!s){return r}else if(!r&&s){return s}else{return ne(n,o)}};c.getVisiblityOfHeaderInfo=te;const ne=function(e,t){return"{= %"+e+" === 1 ? ( %"+t+" === 1 ? false : true ) : true }"};c.combineTitleAndDescriptionExpression=ne;const oe=function(e,t){const o="${$view>/getBindingContext}",r="${$view>/#fe::ObjectPage/getHeaderTitle/getExpandedHeading/getItems/1/getText}",a="${$view>/#fe::ObjectPage/getHeaderTitle/getExpandedContent/0/getItems/0/getText}";const s=t&&t.context;const l=s.getPath();const u=l.split("/").filter(n.filterOutNavPropBinding);const c=u.length>1?s.getModel().getObject(`/${u.join("/")}@sapui.name`):u[0];const d={title:r,entitySetName:i.addSingleQuotes(c),description:a};return i.generateFunction(".editFlow.deleteDocument",o,i.objectToString(d))};oe.requiresIContext=true;c.getPressExpressionForDelete=oe;const ie=function(e,t,n){const o=i.addSingleQuotes(e&&e.Action),r=e&&e.InvocationGrouping&&e.InvocationGrouping["$EnumMember"],a=r==="com.sap.vocabularies.UI.v1.OperationGroupingType/ChangeSet"?"ChangeSet":"Isolated";const s={contexts:"${$view>/getBindingContext}",entitySetName:i.addSingleQuotes(t),invocationGrouping:i.addSingleQuotes(a),model:"${$source>/}.getModel()",label:i.addSingleQuotes(e&&e.Label,true),isNavigable:n&&n.isNavigable,defaultValuesExtensionFunction:n&&n.defaultValuesExtensionFunction?`'${n.defaultValuesExtensionFunction}'`:undefined};return i.generateFunction(".handlers.onCallAction","${$view>/}",o,i.objectToString(s))};c.getPressExpressionForEdit=ie;const re=function(e,t,n){const o=i.addSingleQuotes(e.Action),r=e.InvocationGrouping,a=r==="UI.OperationGroupingType/ChangeSet"?"ChangeSet":"Isolated";const s={contexts:"${$view>/#fe::ObjectPage/}.getBindingContext()",entitySetName:i.addSingleQuotes(t),invocationGrouping:i.addSingleQuotes(a),model:"${$source>/}.getModel()",label:i.addSingleQuotes(e.Label,true),isNavigable:n&&n.isNavigable,defaultValuesExtensionFunction:n&&n.defaultValuesExtensionFunction?`'${n.defaultValuesExtensionFunction}'`:undefined};return i.generateFunction(".handlers.onCallAction","${$view>/}",o,i.objectToString(s))};c.getPressExpressionForFooterAnnotationAction=re;const ae=function(e,t,n,o,r,a,s){const l=i.addSingleQuotes(e&&e.Action),u=e&&e.InvocationGrouping&&e.InvocationGrouping["$EnumMember"],c=u==="com.sap.vocabularies.UI.v1.OperationGroupingType/ChangeSet"?"ChangeSet":"Isolated";const d={contexts:"${$view>/#fe::ObjectPage/}.getBindingContext()",entitySetName:t?i.addSingleQuotes(t):"",invocationGrouping:i.addSingleQuotes(c),model:"${$source>/}.getModel()",label:i.addSingleQuotes(e===null||e===void 0?void 0:e.Label,true),isNavigable:n===null||n===void 0?void 0:n.isNavigable,defaultValuesExtensionFunction:n!==null&&n!==void 0&&n.defaultValuesExtensionFunction?`'${n.defaultValuesExtensionFunction}'`:undefined};const f={positiveActionVisible:o,positiveActionEnabled:r,editActionVisible:a,editActionEnabled:s};return i.generateFunction(".handlers.onPrimaryAction","$controller","${$view>/}","${$view>/getBindingContext}",l,i.objectToString(d),i.objectToString(f))};c.getPressExpressionForPrimaryAction=ae;const se=function(e,t){if(t&&t.Facet&&t.Facet.targetAnnotationType==="DataPoint"){return X(e,t.Facet.targetAnnotationValue)}};c.getStashableHBoxBinding=se;const le=function(e,t){if(e){if(e["targetOutbound"]&&e["targetOutbound"]["outbound"]){return".handlers.onDataPointTitlePressed($controller, ${$source>}, "+JSON.stringify(t)+","+JSON.stringify(e["targetOutbound"]["outbound"])+")"}else if(e["targetSections"]){return".handlers.navigateToSubSection($controller, '"+JSON.stringify(e["targetSections"])+"')"}else{return undefined}}};c.getPressExpressionForLink=le;const ue=function(e){var t;if((e===null||e===void 0?void 0:(t=e.targetObject)===null||t===void 0?void 0:t.$Type)==="com.sap.vocabularies.UI.v1.DataFieldForAnnotation"){return undefined}return"Bare"};c.getHeaderFormHboxRenderType=ue;function ce(e,t,n,o){if(t.defaultAction){try{switch(t.defaultAction.type){case"ForAction":{return ie(n,o,t.defaultAction)}case"ForNavigation":{if(t.defaultAction.command){return"cmd:"+t.defaultAction.command}else{return t.defaultAction.press}}default:{if(t.defaultAction.command){return"cmd:"+t.defaultAction.command}if(t.defaultAction.noWrap){return t.defaultAction.press}else{return i.buildActionWrapper(t.defaultAction,{id:"forTheObjectPage"})}}}}catch(e){return"binding for the default action is not working as expected"}}return undefined}c.getDefaultActionHandler=ce;return c},false);
|
|
5
|
+
sap.ui.define(["sap/fe/core/converters/helpers/BindingHelper","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/templating/DataModelPathHelper","sap/fe/macros/CommonHelper","sap/fe/macros/field/FieldTemplating","sap/fe/macros/internal/form/FormTemplating","sap/m/library","sap/ui/base/ManagedObject","sap/ui/model/odata/v4/AnnotationHelper"],function(e,t,n,o,i,r,a,s,l,u){"use strict";var c={};var d=a.getLabelForConnectedFields;var f=r.formatValueRecursively;var v=r.addTextArrangementToBindingExpression;var g=o.enhanceDataModelPath;var p=t.resolveBindingString;var m=t.or;var b=t.not;var T=t.isEmpty;var E=t.ifElse;var y=t.getExpressionFromAnnotation;var A=t.equal;var S=t.constant;var O=t.concat;var C=t.compileExpression;var $=t.and;var D=e.UI;var x=e.Entity;var I=e.Draft;const h=s.ButtonType;const F=function(e,t,n,o){var i,r,a,s;const l=t.resourceModel.getText("T_NEW_OBJECT",undefined,t.entitySet);const u=t.resourceModel.getText("T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE",undefined,t.entitySet);const c=(e===null||e===void 0?void 0:e.Title)===undefined||(e===null||e===void 0?void 0:e.Title)===""||(e===null||e===void 0?void 0:(i=e.Title)===null||i===void 0?void 0:i.Value)==="";const m=!c?t.resourceModel.getText("T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE_NO_HEADER_INFO"):"";let b,A,I=S(true),h;if((e===null||e===void 0?void 0:(r=e.Title)===null||r===void 0?void 0:r.$Type)==="com.sap.vocabularies.UI.v1.DataField"){var F,P,B,V,N,M,_,w,H,j,G;b=y(e===null||e===void 0?void 0:(F=e.Title)===null||F===void 0?void 0:F.Value);if(e!==null&&e!==void 0&&(P=e.Title)!==null&&P!==void 0&&(B=P.Value)!==null&&B!==void 0&&(V=B.$target)!==null&&V!==void 0&&(N=V.annotations)!==null&&N!==void 0&&(M=N.Common)!==null&&M!==void 0&&(_=M.Text)!==null&&_!==void 0&&(w=_.annotations)!==null&&w!==void 0&&(H=w.UI)!==null&&H!==void 0&&H.TextArrangement){b=v(b,n)}b=f(b,n);I=((j=b)===null||j===void 0?void 0:j._type)==="Constant"?S(!((G=b)!==null&&G!==void 0&&G.value)):T(b)}else if((e===null||e===void 0?void 0:(a=e.Title)===null||a===void 0?void 0:a.$Type)==="com.sap.vocabularies.UI.v1.DataFieldForAnnotation"&&(e===null||e===void 0?void 0:(s=e.Title)===null||s===void 0?void 0:s.Target.$target.$Type)==="com.sap.vocabularies.UI.v1.ConnectedFieldsType"){var U,R;A=g(n,"$Type/@UI.HeaderInfo/Title/Target/$AnnotationPath");b=d(A,false);h=((U=b)===null||U===void 0?void 0:U._type)==="Constant"?S(!((R=b)!==null&&R!==void 0&&R.value)):T(b);I=b?h:S(true)}const L=e!==null&&e!==void 0&&e.TypeName?O(u,": ",p(e.TypeName.toString())):l;const Q=o?x.IsActive:true;return C(E($(D.IsCreateMode,I),L,E($(Q,I),m,b)))};c.getExpressionForTitle=F;const P=function(e,t){var n,o,i,r,a,s,l,u,c;let d=y(e===null||e===void 0?void 0:(n=e.Description)===null||n===void 0?void 0:n.Value);if(e!==null&&e!==void 0&&(o=e.Description)!==null&&o!==void 0&&(i=o.Value)!==null&&i!==void 0&&(r=i.$target)!==null&&r!==void 0&&(a=r.annotations)!==null&&a!==void 0&&(s=a.Common)!==null&&s!==void 0&&(l=s.Text)!==null&&l!==void 0&&(u=l.annotations)!==null&&u!==void 0&&(c=u.UI)!==null&&c!==void 0&&c.TextArrangement){d=v(d,t)}return C(f(d,t))};c.getExpressionForDescription=P;const B=function(e,t){var n;const o=e.resourceModel.getText("T_OP_OBJECT_PAGE_SAVE");const i=e.resourceModel.getText("T_OP_OBJECT_PAGE_CREATE");let r;if((n=t.startingEntitySet.annotations.Session)!==null&&n!==void 0&&n.StickySessionSupported){r=E(D.IsCreateMode,i,o)}else{r=E(I.IsNewObject,i,o)}return C(r)};c.getExpressionForSaveButton=B;const V=function(e){const t=["Primary","DefaultApply","Secondary","ForAction","ForNavigation","SwitchToActiveObject","SwitchToDraftObject","DraftActions","Copy"];return t.indexOf(e.type)<0};c.isManifestAction=V;const N=function(e){var t,n,o;const i=(t=e.targetEntityType)===null||t===void 0?void 0:(n=t.annotations)===null||n===void 0?void 0:(o=n.UI)===null||o===void 0?void 0:o.Identification;const r=(i===null||i===void 0?void 0:i.filter(e=>e.$Type==="com.sap.vocabularies.UI.v1.DataFieldForAction"&&e.Criticality))||[];const a=r.length?r.map(e=>{var t,n;const o=y(e.Criticality);return $(b(A(y((t=e.annotations)===null||t===void 0?void 0:(n=t.UI)===null||n===void 0?void 0:n.Hidden),true)),m(A(o,"UI.CriticalityType/Negative"),A(o,"1"),A(o,1),A(o,"UI.CriticalityType/Positive"),A(o,"3"),A(o,3)))}):[S(false)];return C(E(m(...a),h.Default,h.Emphasized))};c.buildEmphasizedButtonExpression=N;const M=function(e){const t=u.getNavigationPath(e);if(t){return"{path:'"+t+"'}"}else{return"{path: ''}"}};c.getElementBinding=M;const _=function(e){if(e["@com.sap.vocabularies.Common.v1.DraftRoot"]&&e["@com.sap.vocabularies.Common.v1.DraftRoot"]["EditAction"]){return true}else{return false}};c.checkDraftState=_;const w=function(e){if(_(e)){return"{= (%{DraftAdministrativeData/DraftIsCreatedByMe}) ? ( ${ui>/isEditable} && !${ui>createMode} && %{DraftAdministrativeData/DraftIsCreatedByMe} ) : false }"}else{return false}};c.getSwitchToActiveVisibility=w;const H=function(e){if(_(e)){return"{= (%{DraftAdministrativeData/DraftIsCreatedByMe}) ? ( !(${ui>/isEditable}) && !${ui>createMode} && ${HasDraftEntity} && %{DraftAdministrativeData/DraftIsCreatedByMe} ) : false }"}else{return false}};c.getSwitchToDraftVisibility=H;const j=function(e){if(_(e)){return"{= (%{DraftAdministrativeData/DraftIsCreatedByMe}) ? ( !${ui>createMode} && %{DraftAdministrativeData/DraftIsCreatedByMe} ) : false }"}else{return false}};c.getSwitchDraftAndActiveVisibility=j;const G=function(e,t){let n;if(e&&e.length){n=e.find(function(e){return e.type===t})}return n};c._findAction=G;const U=function(e){const t=G(e,"Secondary");return t?t.enabled:"true"};c.getDeleteCommandExecutionEnabled=U;const R=function(e){const t=G(e,"Secondary");return t?t.visible:"true"};c.getDeleteCommandExecutionVisible=R;const L=function(e){const t=G(e,"Primary");return t?t.visible:"false"};c.getEditCommandExecutionVisible=L;const Q=function(e){const t=G(e,"Primary");return t?t.enabled:"false"};c.getEditCommandExecutionEnabled=Q;const J=function(e){const t=e.getPath();const n=t.split("/");const o="/"+n[1];const i=e.getObject(o+"@");const r=i.hasOwnProperty("@com.sap.vocabularies.Common.v1.DraftRoot");const a=i.hasOwnProperty("@com.sap.vocabularies.Common.v1.DraftNode");const s=i.hasOwnProperty("@com.sap.vocabularies.Session.v1.StickySessionSupported");let l;if(r){l=e.getObject(`${o}@com.sap.vocabularies.Common.v1.DraftRoot/EditAction`)}else if(a){l=e.getObject(`${o}@com.sap.vocabularies.Common.v1.DraftNode/EditAction`)}else if(s){l=e.getObject(`${o}@com.sap.vocabularies.Session.v1.StickySessionSupported/EditAction`)}return!l?l:`${o}/${l}`};c.getEditAction=J;const k=function(e,t){let n,o,i;if(e&&e["@Org.OData.Core.V1.Computed"]){n=e["@Org.OData.Core.V1.Computed"].Bool?e["@Org.OData.Core.V1.Computed"].Bool=="true":true}if(e&&e["@Org.OData.Core.V1.Immutable"]){o=e["@Org.OData.Core.V1.Immutable"].Bool?e["@Org.OData.Core.V1.Immutable"].Bool=="true":true}i=n||o;if(t){i=i||t=="com.sap.vocabularies.Common.v1.FieldControlType/ReadOnly"}if(i){return true}else{return false}};c.isReadOnlyFromStaticAnnotations=k;const q=function(e){let t;if(e){if(l.bindingParser(e)){t="%"+e+" === 1 "}}if(t){return"{= "+t+"? false : true }"}else{return undefined}};c.readOnlyExpressionFromDynamicAnnotations=q;const W=function(e,t,n){if(e){if(e["targetOutbound"]&&e["targetOutbound"]["outbound"]||e["targetOutbound"]&&e["targetOutbound"]["outbound"]&&e["targetSections"]){return".handlers.onDataPointTitlePressed($controller, ${$source>/},'"+JSON.stringify(t)+"','"+e["targetOutbound"]["outbound"]+"','"+n+"' )"}else if(e["targetSections"]){return".handlers.navigateToSubSection($controller, '"+JSON.stringify(e["targetSections"])+"')"}else{return undefined}}};c.getExpressionForMicroChartTitlePress=W;const z=function(e){if(e&&(e["targetOutbound"]||e["targetOutbound"]&&e["targetSections"])){return"External"}else if(e&&e["targetSections"]){return"InPage"}else{return"None"}};c.getMicroChartTitleAsLink=z;const K=function(e,t,n){const o=e[t],i=["Heroes","Decoration","Workers","LongRunners"];let r=n;if(o&&o.requestGroupId&&i.some(function(e){return e===o.requestGroupId})){r="$auto."+o.requestGroupId}return r};c.getGroupIdFromConfig=K;const X=function(e,t){const n=K(e,t);let o;if(n){o="{ path : '', parameters : { $$groupId : '"+n+"' } }"}return o};c.getBindingWithGroupIdFromConfig=X;const Y=function(e){return e&&e.length===1&&!!e[0].isValueMultilineText};c.doesFieldGroupContainOnlyOneMultiLineDataField=Y;const Z=function(e){return e.showBreadCrumbs&&e.fclEnabled!==undefined?"{fclhelper>/breadCrumbIsVisible}":e.showBreadCrumbs};c.getVisibleExpressionForBreadcrumbs=Z;const ee=function(e){let t="!${ui>createMode}";if(e.fclEnabled){t="${fclhelper>/showShareIcon} && "+t}if(e.isShareButtonVisibleForMyInbox===false){return"false"}return"{= "+t+" }"};c.getShareButtonVisibility=ee;const te=function(e,t,n,o){const i=e?k(e,n):true;const r=q(n);if(!i&&!r){return true}const a=t?k(t,o):true;const s=q(o);if(!a&&!s){return true}if(i&&a&&!r&&!s){return false}if(r&&!s){return r}else if(!r&&s){return s}else{return ne(n,o)}};c.getVisiblityOfHeaderInfo=te;const ne=function(e,t){return"{= %"+e+" === 1 ? ( %"+t+" === 1 ? false : true ) : true }"};c.combineTitleAndDescriptionExpression=ne;const oe=function(e,t){const o="${$view>/getBindingContext}",r="${$view>/#fe::ObjectPage/getHeaderTitle/getExpandedHeading/getItems/1/getText}",a="${$view>/#fe::ObjectPage/getHeaderTitle/getExpandedContent/0/getItems/0/getText}";const s=t&&t.context;const l=s.getPath();const u=l.split("/").filter(n.filterOutNavPropBinding);const c=u.length>1?s.getModel().getObject(`/${u.join("/")}@sapui.name`):u[0];const d={title:r,entitySetName:i.addSingleQuotes(c),description:a};return i.generateFunction(".editFlow.deleteDocument",o,i.objectToString(d))};oe.requiresIContext=true;c.getPressExpressionForDelete=oe;const ie=function(e,t,n){const o=i.addSingleQuotes(e&&e.Action),r=e&&e.InvocationGrouping&&e.InvocationGrouping["$EnumMember"],a=r==="com.sap.vocabularies.UI.v1.OperationGroupingType/ChangeSet"?"ChangeSet":"Isolated";const s={contexts:"${$view>/getBindingContext}",entitySetName:i.addSingleQuotes(t),invocationGrouping:i.addSingleQuotes(a),model:"${$source>/}.getModel()",label:i.addSingleQuotes(e&&e.Label,true),isNavigable:n&&n.isNavigable,defaultValuesExtensionFunction:n&&n.defaultValuesExtensionFunction?`'${n.defaultValuesExtensionFunction}'`:undefined};return i.generateFunction(".handlers.onCallAction","${$view>/}",o,i.objectToString(s))};c.getPressExpressionForEdit=ie;const re=function(e,t,n){const o=i.addSingleQuotes(e.Action),r=e.InvocationGrouping,a=r==="UI.OperationGroupingType/ChangeSet"?"ChangeSet":"Isolated";const s={contexts:"${$view>/#fe::ObjectPage/}.getBindingContext()",entitySetName:i.addSingleQuotes(t),invocationGrouping:i.addSingleQuotes(a),model:"${$source>/}.getModel()",label:i.addSingleQuotes(e.Label,true),isNavigable:n&&n.isNavigable,defaultValuesExtensionFunction:n&&n.defaultValuesExtensionFunction?`'${n.defaultValuesExtensionFunction}'`:undefined};return i.generateFunction(".handlers.onCallAction","${$view>/}",o,i.objectToString(s))};c.getPressExpressionForFooterAnnotationAction=re;const ae=function(e,t,n,o,r,a,s){const l=i.addSingleQuotes(e&&e.Action),u=e&&e.InvocationGrouping&&e.InvocationGrouping["$EnumMember"],c=u==="com.sap.vocabularies.UI.v1.OperationGroupingType/ChangeSet"?"ChangeSet":"Isolated";const d={contexts:"${$view>/#fe::ObjectPage/}.getBindingContext()",entitySetName:t?i.addSingleQuotes(t):"",invocationGrouping:i.addSingleQuotes(c),model:"${$source>/}.getModel()",label:i.addSingleQuotes(e===null||e===void 0?void 0:e.Label,true),isNavigable:n===null||n===void 0?void 0:n.isNavigable,defaultValuesExtensionFunction:n!==null&&n!==void 0&&n.defaultValuesExtensionFunction?`'${n.defaultValuesExtensionFunction}'`:undefined};const f={positiveActionVisible:o,positiveActionEnabled:r,editActionVisible:a,editActionEnabled:s};return i.generateFunction(".handlers.onPrimaryAction","$controller","${$view>/}","${$view>/getBindingContext}",l,i.objectToString(d),i.objectToString(f))};c.getPressExpressionForPrimaryAction=ae;const se=function(e,t){if(t&&t.Facet&&t.Facet.targetAnnotationType==="DataPoint"){return X(e,t.Facet.targetAnnotationValue)}};c.getStashableHBoxBinding=se;const le=function(e,t){if(e){if(e["targetOutbound"]&&e["targetOutbound"]["outbound"]){return".handlers.onDataPointTitlePressed($controller, ${$source>}, "+JSON.stringify(t)+","+JSON.stringify(e["targetOutbound"]["outbound"])+")"}else if(e["targetSections"]){return".handlers.navigateToSubSection($controller, '"+JSON.stringify(e["targetSections"])+"')"}else{return undefined}}};c.getPressExpressionForLink=le;const ue=function(e){var t;if((e===null||e===void 0?void 0:(t=e.targetObject)===null||t===void 0?void 0:t.$Type)==="com.sap.vocabularies.UI.v1.DataFieldForAnnotation"){return undefined}return"Bare"};c.getHeaderFormHboxRenderType=ue;function ce(e,t,n,o){if(t.defaultAction){try{switch(t.defaultAction.type){case"ForAction":{return ie(n,o,t.defaultAction)}case"ForNavigation":{if(t.defaultAction.command){return"cmd:"+t.defaultAction.command}else{return t.defaultAction.press}}default:{if(t.defaultAction.command){return"cmd:"+t.defaultAction.command}if(t.defaultAction.noWrap){return t.defaultAction.press}else{return i.buildActionWrapper(t.defaultAction,{id:"forTheObjectPage"})}}}}catch(e){return"binding for the default action is not working as expected"}}return undefined}c.getDefaultActionHandler=ce;function de(e){return e.isPartOfPreview===true||e.presentation.visualizations[0].type!=="Table"}c.isVisualizationIsPartOfPreview=de;return c},false);
|
|
6
6
|
//# sourceMappingURL=ObjectPageTemplating.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectPageTemplating.js","names":["sap","ui","define","BindingHelper","BindingToolkit","ModelHelper","DataModelPathHelper","CommonHelper","FieldTemplating","FormTemplating","mLibrary","ManagedObject","ODataModelAnnotationHelper","_exports","getLabelForConnectedFields","formatValueRecursively","addTextArrangementToBindingExpression","enhanceDataModelPath","resolveBindingString","or","not","isEmpty","ifElse","getExpressionFromAnnotation","equal","constant","concat","compileExpression","and","UI","Entity","Draft","ButtonType","getExpressionForTitle","oHeaderInfo","oViewData","fullContextPath","oDraftRoot","_oHeaderInfo$Title","_oHeaderInfo$Title2","_oHeaderInfo$Title5","_oHeaderInfo$Title6","titleNoHeaderInfo","resourceModel","getText","undefined","entitySet","titleWithHeaderInfo","oEmptyHeaderInfoTitle","Title","Value","titleForActiveHeaderNoHeaderInfo","titleValueExpression","connectedFieldsPath","titleIsEmpty","titleBooleanExpression","$Type","_oHeaderInfo$Title3","_oHeaderInfo$Title4","_oHeaderInfo$Title4$V","_oHeaderInfo$Title4$V2","_oHeaderInfo$Title4$V3","_oHeaderInfo$Title4$V4","_oHeaderInfo$Title4$V5","_oHeaderInfo$Title4$V6","_oHeaderInfo$Title4$V7","_titleValueExpression","_titleValueExpression2","$target","annotations","Common","Text","TextArrangement","_type","value","Target","_titleValueExpression3","_titleValueExpression4","createModeTitle","TypeName","toString","activeExpression","IsActive","IsCreateMode","getExpressionForDescription","_oHeaderInfo$Descript","_oHeaderInfo$Descript2","_oHeaderInfo$Descript3","_oHeaderInfo$Descript4","_oHeaderInfo$Descript5","_oHeaderInfo$Descript6","_oHeaderInfo$Descript7","_oHeaderInfo$Descript8","_oHeaderInfo$Descript9","pathInModel","Description","getExpressionForSaveButton","_annotations$Session","saveButtonText","createButtonText","saveExpression","startingEntitySet","Session","StickySessionSupported","IsNewObject","isManifestAction","oAction","aActions","indexOf","type","buildEmphasizedButtonExpression","dataContextPath","_dataContextPath$targ","_dataContextPath$targ2","_dataContextPath$targ3","identification","targetEntityType","Identification","dataFieldsWithCriticality","filter","dataField","Criticality","dataFieldsBindingExpressions","length","map","_dataField$annotation","_dataField$annotation2","criticalityVisibleBindingExpression","Hidden","Default","Emphasized","getElementBinding","sPath","sNavigationPath","getNavigationPath","checkDraftState","oAnnotations","getSwitchToActiveVisibility","getSwitchToDraftVisibility","getSwitchDraftAndActiveVisibility","_findAction","aConverterContextHeaderActions","sActionType","find","oHeaderAction","getDeleteCommandExecutionEnabled","oDeleteAction","enabled","getDeleteCommandExecutionVisible","visible","getEditCommandExecutionVisible","oEditAction","getEditCommandExecutionEnabled","getEditAction","oEntitySet","getPath","aPaths","split","rootEntitySetPath","rootEntitySetAnnnotations","getObject","bDraftRoot","hasOwnProperty","bDraftNode","bStickySession","sActionName","isReadOnlyFromStaticAnnotations","oFieldControl","bComputed","bImmutable","bReadOnly","Bool","readOnlyExpressionFromDynamicAnnotations","sIsFieldControlPathReadOnly","bindingParser","getExpressionForMicroChartTitlePress","oConfiguration","oManifestOutbound","sCollectionName","JSON","stringify","getMicroChartTitleAsLink","oControlConfiguration","getGroupIdFromConfig","oConfigurations","sAnnotationPath","sDefaultGroupId","aAutoPatterns","sGroupId","requestGroupId","some","autoPattern","getBindingWithGroupIdFromConfig","sKey","sBinding","doesFieldGroupContainOnlyOneMultiLineDataField","aFormElements","isValueMultilineText","getVisibleExpressionForBreadcrumbs","showBreadCrumbs","fclEnabled","getShareButtonVisibility","viewData","sShareButtonVisibilityExp","isShareButtonVisibleForMyInbox","getVisiblityOfHeaderInfo","oTitleAnnotations","oDescriptionAnnotations","oFieldTitleFieldControl","oFieldDescriptionFieldControl","bIsTitleReadOnly","titleExpression","bIsDescriptionReadOnly","descriptionExpression","combineTitleAndDescriptionExpression","oTitleFieldControl","oDescriptionFieldControl","getPressExpressionForDelete","oInterface","sDeletableContexts","sTitle","sDescription","esContext","context","contextPath","contextPathParts","filterOutNavPropBinding","sEntitySetName","getModel","join","oParams","title","entitySetName","addSingleQuotes","description","generateFunction","objectToString","requiresIContext","getPressExpressionForEdit","oDataField","sEditableContexts","Action","sDataFieldEnumMember","InvocationGrouping","sInvocationGroup","contexts","invocationGrouping","model","label","Label","isNavigable","defaultValuesExtensionFunction","getPressExpressionForFooterAnnotationAction","sActionContexts","getPressExpressionForPrimaryAction","positiveActionVisible","positiveActionEnabled","editActionVisible","editActionEnabled","oConditions","getStashableHBoxBinding","oHeaderFacet","Facet","targetAnnotationType","targetAnnotationValue","getPressExpressionForLink","getHeaderFormHboxRenderType","_dataField$targetObje","targetObject","getDefaultActionHandler","oCtx","oDataFieldForDefaultAction","defaultActionContextOrEntitySet","defaultAction","command","press","noWrap","buildActionWrapper","id","ioEx"],"sources":["ObjectPageTemplating-dbg.js"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ObjectPageTemplating.js","names":["sap","ui","define","BindingHelper","BindingToolkit","ModelHelper","DataModelPathHelper","CommonHelper","FieldTemplating","FormTemplating","mLibrary","ManagedObject","ODataModelAnnotationHelper","_exports","getLabelForConnectedFields","formatValueRecursively","addTextArrangementToBindingExpression","enhanceDataModelPath","resolveBindingString","or","not","isEmpty","ifElse","getExpressionFromAnnotation","equal","constant","concat","compileExpression","and","UI","Entity","Draft","ButtonType","getExpressionForTitle","oHeaderInfo","oViewData","fullContextPath","oDraftRoot","_oHeaderInfo$Title","_oHeaderInfo$Title2","_oHeaderInfo$Title5","_oHeaderInfo$Title6","titleNoHeaderInfo","resourceModel","getText","undefined","entitySet","titleWithHeaderInfo","oEmptyHeaderInfoTitle","Title","Value","titleForActiveHeaderNoHeaderInfo","titleValueExpression","connectedFieldsPath","titleIsEmpty","titleBooleanExpression","$Type","_oHeaderInfo$Title3","_oHeaderInfo$Title4","_oHeaderInfo$Title4$V","_oHeaderInfo$Title4$V2","_oHeaderInfo$Title4$V3","_oHeaderInfo$Title4$V4","_oHeaderInfo$Title4$V5","_oHeaderInfo$Title4$V6","_oHeaderInfo$Title4$V7","_titleValueExpression","_titleValueExpression2","$target","annotations","Common","Text","TextArrangement","_type","value","Target","_titleValueExpression3","_titleValueExpression4","createModeTitle","TypeName","toString","activeExpression","IsActive","IsCreateMode","getExpressionForDescription","_oHeaderInfo$Descript","_oHeaderInfo$Descript2","_oHeaderInfo$Descript3","_oHeaderInfo$Descript4","_oHeaderInfo$Descript5","_oHeaderInfo$Descript6","_oHeaderInfo$Descript7","_oHeaderInfo$Descript8","_oHeaderInfo$Descript9","pathInModel","Description","getExpressionForSaveButton","_annotations$Session","saveButtonText","createButtonText","saveExpression","startingEntitySet","Session","StickySessionSupported","IsNewObject","isManifestAction","oAction","aActions","indexOf","type","buildEmphasizedButtonExpression","dataContextPath","_dataContextPath$targ","_dataContextPath$targ2","_dataContextPath$targ3","identification","targetEntityType","Identification","dataFieldsWithCriticality","filter","dataField","Criticality","dataFieldsBindingExpressions","length","map","_dataField$annotation","_dataField$annotation2","criticalityVisibleBindingExpression","Hidden","Default","Emphasized","getElementBinding","sPath","sNavigationPath","getNavigationPath","checkDraftState","oAnnotations","getSwitchToActiveVisibility","getSwitchToDraftVisibility","getSwitchDraftAndActiveVisibility","_findAction","aConverterContextHeaderActions","sActionType","find","oHeaderAction","getDeleteCommandExecutionEnabled","oDeleteAction","enabled","getDeleteCommandExecutionVisible","visible","getEditCommandExecutionVisible","oEditAction","getEditCommandExecutionEnabled","getEditAction","oEntitySet","getPath","aPaths","split","rootEntitySetPath","rootEntitySetAnnnotations","getObject","bDraftRoot","hasOwnProperty","bDraftNode","bStickySession","sActionName","isReadOnlyFromStaticAnnotations","oFieldControl","bComputed","bImmutable","bReadOnly","Bool","readOnlyExpressionFromDynamicAnnotations","sIsFieldControlPathReadOnly","bindingParser","getExpressionForMicroChartTitlePress","oConfiguration","oManifestOutbound","sCollectionName","JSON","stringify","getMicroChartTitleAsLink","oControlConfiguration","getGroupIdFromConfig","oConfigurations","sAnnotationPath","sDefaultGroupId","aAutoPatterns","sGroupId","requestGroupId","some","autoPattern","getBindingWithGroupIdFromConfig","sKey","sBinding","doesFieldGroupContainOnlyOneMultiLineDataField","aFormElements","isValueMultilineText","getVisibleExpressionForBreadcrumbs","showBreadCrumbs","fclEnabled","getShareButtonVisibility","viewData","sShareButtonVisibilityExp","isShareButtonVisibleForMyInbox","getVisiblityOfHeaderInfo","oTitleAnnotations","oDescriptionAnnotations","oFieldTitleFieldControl","oFieldDescriptionFieldControl","bIsTitleReadOnly","titleExpression","bIsDescriptionReadOnly","descriptionExpression","combineTitleAndDescriptionExpression","oTitleFieldControl","oDescriptionFieldControl","getPressExpressionForDelete","oInterface","sDeletableContexts","sTitle","sDescription","esContext","context","contextPath","contextPathParts","filterOutNavPropBinding","sEntitySetName","getModel","join","oParams","title","entitySetName","addSingleQuotes","description","generateFunction","objectToString","requiresIContext","getPressExpressionForEdit","oDataField","sEditableContexts","Action","sDataFieldEnumMember","InvocationGrouping","sInvocationGroup","contexts","invocationGrouping","model","label","Label","isNavigable","defaultValuesExtensionFunction","getPressExpressionForFooterAnnotationAction","sActionContexts","getPressExpressionForPrimaryAction","positiveActionVisible","positiveActionEnabled","editActionVisible","editActionEnabled","oConditions","getStashableHBoxBinding","oHeaderFacet","Facet","targetAnnotationType","targetAnnotationValue","getPressExpressionForLink","getHeaderFormHboxRenderType","_dataField$targetObje","targetObject","getDefaultActionHandler","oCtx","oDataFieldForDefaultAction","defaultActionContextOrEntitySet","defaultAction","command","press","noWrap","buildActionWrapper","id","ioEx","isVisualizationIsPartOfPreview","subSection","isPartOfPreview","presentation","visualizations"],"sources":["ObjectPageTemplating-dbg.js"],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { EntitySet } from "@sap-ux/vocabularies-types";
|
|
|
3
3
|
import type { DataFieldForAction, DataFieldTypes, HeaderInfoType } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
4
4
|
import { UIAnnotationTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
5
5
|
import type { BaseAction, CustomAction } from "sap/fe/core/converters/controls/Common/Action";
|
|
6
|
+
import { DataVisualizationSubSection } from "sap/fe/core/converters/controls/ObjectPage/SubSection";
|
|
6
7
|
import { Draft, Entity, UI } from "sap/fe/core/converters/helpers/BindingHelper";
|
|
7
8
|
import {
|
|
8
9
|
and,
|
|
@@ -829,3 +830,13 @@ export function getDefaultActionHandler(oCtx: any, oAction: any, oDataFieldForDe
|
|
|
829
830
|
}
|
|
830
831
|
return undefined;
|
|
831
832
|
}
|
|
833
|
+
|
|
834
|
+
/**
|
|
835
|
+
* Check if the sub section visualization is part of preview.
|
|
836
|
+
*
|
|
837
|
+
* @param subSection The sub section visualization
|
|
838
|
+
* @returns A Boolean value
|
|
839
|
+
*/
|
|
840
|
+
export function isVisualizationIsPartOfPreview(subSection: DataVisualizationSubSection) {
|
|
841
|
+
return subSection.isPartOfPreview === true || subSection.presentation.visualizations[0].type !== "Table";
|
|
842
|
+
}
|