@sapui5/sap.fe.macros 1.130.3 → 1.130.5
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/macros/.library +1 -1
- package/src/sap/fe/macros/DelegateUtil.js +6 -2
- package/src/sap/fe/macros/DelegateUtil.ts +7 -0
- package/src/sap/fe/macros/ai/EasyFilterBar.js +2 -8
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +0 -7
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +3 -3
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +1 -1
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +7 -2
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +6 -1
- package/src/sap/fe/macros/formatters/TableFormatter.js +5 -3
- package/src/sap/fe/macros/formatters/TableFormatter.ts +9 -1
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +2 -1
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +1 -0
- package/src/sap/fe/macros/internal/helpers/Upload.js +2 -1
- package/src/sap/fe/macros/internal/helpers/Upload.ts +1 -0
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +3 -2
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +2 -2
- package/src/sap/fe/macros/library.js +1 -1
- package/src/sap/fe/macros/messagebundle_ar.properties +2 -1
- package/src/sap/fe/macros/messagebundle_bg.properties +1 -1
- package/src/sap/fe/macros/messagebundle_ca.properties +1 -2
- package/src/sap/fe/macros/messagebundle_cnr.properties +1 -1
- package/src/sap/fe/macros/messagebundle_cs.properties +1 -1
- package/src/sap/fe/macros/messagebundle_cy.properties +1 -1
- package/src/sap/fe/macros/messagebundle_da.properties +1 -2
- package/src/sap/fe/macros/messagebundle_de.properties +2 -1
- package/src/sap/fe/macros/messagebundle_el.properties +1 -1
- package/src/sap/fe/macros/messagebundle_en.properties +2 -1
- package/src/sap/fe/macros/messagebundle_en_GB.properties +1 -1
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +1 -1
- package/src/sap/fe/macros/messagebundle_es.properties +1 -2
- package/src/sap/fe/macros/messagebundle_es_MX.properties +1 -1
- package/src/sap/fe/macros/messagebundle_et.properties +2 -1
- package/src/sap/fe/macros/messagebundle_fi.properties +1 -1
- package/src/sap/fe/macros/messagebundle_fr.properties +1 -1
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +1 -1
- package/src/sap/fe/macros/messagebundle_hi.properties +2 -1
- package/src/sap/fe/macros/messagebundle_hr.properties +1 -1
- package/src/sap/fe/macros/messagebundle_hu.properties +1 -1
- package/src/sap/fe/macros/messagebundle_id.properties +1 -1
- package/src/sap/fe/macros/messagebundle_it.properties +1 -1
- package/src/sap/fe/macros/messagebundle_iw.properties +1 -1
- package/src/sap/fe/macros/messagebundle_ja.properties +1 -2
- package/src/sap/fe/macros/messagebundle_kk.properties +1 -1
- package/src/sap/fe/macros/messagebundle_ko.properties +1 -2
- package/src/sap/fe/macros/messagebundle_lt.properties +1 -2
- package/src/sap/fe/macros/messagebundle_lv.properties +1 -2
- package/src/sap/fe/macros/messagebundle_mk.properties +1 -2
- package/src/sap/fe/macros/messagebundle_ms.properties +1 -2
- package/src/sap/fe/macros/messagebundle_nl.properties +1 -2
- package/src/sap/fe/macros/messagebundle_no.properties +1 -2
- package/src/sap/fe/macros/messagebundle_pl.properties +1 -2
- package/src/sap/fe/macros/messagebundle_pt.properties +1 -2
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +1 -2
- package/src/sap/fe/macros/messagebundle_ro.properties +1 -2
- package/src/sap/fe/macros/messagebundle_ru.properties +1 -2
- package/src/sap/fe/macros/messagebundle_sh.properties +1 -2
- package/src/sap/fe/macros/messagebundle_sk.properties +1 -2
- package/src/sap/fe/macros/messagebundle_sl.properties +1 -2
- package/src/sap/fe/macros/messagebundle_sr.properties +1 -2
- package/src/sap/fe/macros/messagebundle_sv.properties +1 -2
- package/src/sap/fe/macros/messagebundle_th.properties +1 -2
- package/src/sap/fe/macros/messagebundle_tr.properties +1 -2
- package/src/sap/fe/macros/messagebundle_uk.properties +1 -2
- package/src/sap/fe/macros/messagebundle_vi.properties +1 -2
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +1 -2
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +1 -2
- package/src/sap/fe/macros/quickView/QuickViewDelegate.js +24 -16
- package/src/sap/fe/macros/quickView/QuickViewDelegate.ts +38 -18
- package/src/sap/fe/macros/richtexteditor/RichTextEditorWithMetadata.block.js +7 -1
- package/src/sap/fe/macros/richtexteditor/RichTextEditorWithMetadata.block.tsx +8 -1
- package/src/sap/fe/macros/table/MdcTableTemplate.js +3 -2
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +2 -2
- package/src/sap/fe/macros/table/TableHelper.js +2 -2
- package/src/sap/fe/macros/table/TableHelper.ts +4 -1
- package/src/sap/fe/macros/table/TableSizeHelper.js +13 -2
- package/src/sap/fe/macros/table/TableSizeHelper.ts +11 -0
- package/src/sap/fe/macros/table/massEdit/MassEdit.js +10 -3
- package/src/sap/fe/macros/table/massEdit/MassEdit.tsx +5 -1
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +2 -2
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +1 -1
package/package.json
CHANGED
|
@@ -146,7 +146,11 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
146
146
|
for (const oDependent of aDependents) {
|
|
147
147
|
let oTargetDependent = oDependent;
|
|
148
148
|
if (oModifier) {
|
|
149
|
-
if (oModifier.getControlType(oDependent) === "sap.fe.macros.ValueHelp" && oModifier.
|
|
149
|
+
if (oModifier.getControlType(oDependent) === "sap.fe.macros.ValueHelp" && (await oModifier.getProperty(oDependent, "metaPath")) === mParameters.metaPath) {
|
|
150
|
+
// in xml validate against the metaPath of the ValueHelp
|
|
151
|
+
return true;
|
|
152
|
+
} else if (oModifier.getControlType(oDependent) === "sap.fe.macros.ValueHelp" && oModifier.targets !== "xmlTree") {
|
|
153
|
+
// in xml validate against the metaPath of the ValueHelp
|
|
150
154
|
oTargetDependent = oDependent.getContent();
|
|
151
155
|
}
|
|
152
156
|
if (oTargetDependent && oModifier.getId(oTargetDependent) === sGeneratedId) {
|
|
@@ -227,4 +231,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
227
231
|
};
|
|
228
232
|
return DelegateUtil;
|
|
229
233
|
}, false);
|
|
230
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOU19NQUNST0RBVEEiLCJfcmV0cmlldmVNb2RlbCIsImNvbnRyb2wiLCJkZXRhY2hNb2RlbENvbnRleHRDaGFuZ2UiLCJzTW9kZWxOYW1lIiwibW9kZWxOYW1lIiwib01vZGVsIiwiZ2V0TW9kZWwiLCJyZXNvbHZlIiwiYXR0YWNoTW9kZWxDb250ZXh0Q2hhbmdlIiwiZ2V0Q3VzdG9tRGF0YVdpdGhNb2RpZmllciIsInByb3BlcnR5IiwibW9kaWZpZXIiLCJjdXN0b21EYXRhIiwiRGVsZWdhdGVVdGlsIiwicmV0cmlldmVDdXN0b21EYXRhTm9kZSIsImxlbmd0aCIsImdldFByb3BlcnR5IiwidW5kZWZpbmVkIiwiRkVUQ0hFRF9QUk9QRVJUSUVTX0RBVEFfS0VZIiwic2V0Q2FjaGVkUHJvcGVydGllcyIsImZldGNoZWRQcm9wZXJ0aWVzIiwid2luZG93IiwiRWxlbWVudCIsImtleSIsInNldEN1c3RvbURhdGEiLCJnZXRDYWNoZWRQcm9wZXJ0aWVzIiwiZ2V0Q3VzdG9tRGF0YSIsIm9Db250cm9sIiwic1Byb3BlcnR5Iiwib01vZGlmaWVyIiwiZ2V0QXR0cmlidXRlTlMiLCJkYXRhIiwiRnVuY3Rpb24iLCJ2VmFsdWUiLCJzZXRBdHRyaWJ1dGVOUyIsImZldGNoUHJvcGVydGllc0ZvckVudGl0eSIsInNFbnRpdHlTZXQiLCJvTWV0YU1vZGVsIiwicmVxdWVzdE9iamVjdCIsImZldGNoQW5ub3RhdGlvbnNGb3JFbnRpdHkiLCJmZXRjaE1vZGVsIiwiUHJvbWlzZSIsImdldERlbGVnYXRlIiwicGF5bG9hZCIsIm9Db250ZXh0IiwiY2FsbCIsInRlbXBsYXRlQ29udHJvbEZyYWdtZW50Iiwic0ZyYWdtZW50TmFtZSIsIm9QcmVwcm9jZXNzb3JTZXR0aW5ncyIsIm9PcHRpb25zIiwiQ29tbW9uVXRpbHMiLCJkb2VzVmFsdWVIZWxwRXhpc3QiLCJtUGFyYW1ldGVycyIsInNQcm9wZXJ0eU5hbWUiLCJzVmFsdWVIZWxwVHlwZSIsInNPcmlnaW5hbFByb3BlcnR5Iiwic0JpbmRpbmdQYXRoIiwicHJvcGVydHlDb250ZXh0IiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJ2YWx1ZUhlbHBQcm9wZXJ0eVBhdGgiLCJGaWVsZEhlbHBlciIsInZhbHVlSGVscFByb3BlcnR5IiwiYklzQWJzb2x1dGUiLCJpbmRleE9mIiwiaW5jbHVkZXMiLCJnZXRPYmplY3QiLCJwcm9wZXJ0eURhdGFNb2RlbCIsImdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyIsInVuaXRPckN1cnJlbmN5UHJvcGVydHlQYXRoIiwiZ2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHlQYXRoIiwidGFyZ2V0T2JqZWN0IiwiZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eVBhdGgiLCJ1bml0T3JDdXJyZW5jeURhdGFNb2RlbCIsImVuaGFuY2VEYXRhTW9kZWxQYXRoIiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsInNHZW5lcmF0ZWRJZCIsImdlbmVyYXRlSUQiLCJmbGV4SWQiLCJnZW5lcmF0ZSIsImdldElkIiwiZ2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGgiLCJjb250ZXh0IiwiZ2V0UGF0aCIsInRoZW4iLCJnZXRBZ2dyZWdhdGlvbiIsImFEZXBlbmRlbnRzIiwib0RlcGVuZGVudCIsIm9UYXJnZXREZXBlbmRlbnQiLCJnZXRDb250cm9sVHlwZSIsInRhcmdldHMiLCJnZXRDb250ZW50IiwiX29UYXJnZXREZXBlbmRlbnQiLCJpc0EiLCJpc1ZhbHVlSGVscFJlcXVpcmVkIiwiYkluRmlsdGVyRmllbGQiLCJvUHJvcGVydHlDb250ZXh0Iiwic1ZhbHVlSGVscFByb3BlcnR5IiwiYlJlYWRPbmx5IiwiYWxsIiwiYVJlc3VsdHMiLCJjYXRjaCIsIm9FcnJvciIsIkxvZyIsIndhcm5pbmciLCJpc011bHRpVmFsdWUiLCJvUHJvcGVydHkiLCJiSXNNdWx0aVZhbHVlIiwiZmlsdGVyRXhwcmVzc2lvbiIsInR5cGUiLCJwcm9wZXJ0eUtleSIsImFSZXRyaWV2ZWRDdXN0b21EYXRhIiwiYmluZCIsIm9DdXN0b21EYXRhIiwicHVzaCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRGVsZWdhdGVVdGlsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBCYXNlVHJlZU1vZGlmaWVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgeyBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCB0eXBlIHtcblx0Q29sdW1uRXhwb3J0U2V0dGluZ3MsXG5cdEN1c3RvbUJhc2VkVGFibGVDb2x1bW4sXG5cdEV4dGVuc2lvbkZvckFuYWx5dGljcyxcblx0UHJvcGVydHlUeXBlQ29uZmlnLFxuXHRWaXN1YWxTZXR0aW5nc1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vVGFibGVcIjtcbmltcG9ydCB0eXBlIHsgQ3VzdG9tRWxlbWVudCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvQ29uZmlndXJhYmxlT2JqZWN0XCI7XG5pbXBvcnQgeyBnZW5lcmF0ZSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1N0YWJsZUlkSGVscGVyXCI7XG5pbXBvcnQgeyBlbmhhbmNlRGF0YU1vZGVsUGF0aCwgZ2V0VGFyZ2V0T2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgRGlzcGxheU1vZGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EaXNwbGF5TW9kZUZvcm1hdHRlclwiO1xuaW1wb3J0IHsgZ2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUZvcm1hdHRlcnNcIjtcbmltcG9ydCB7IGdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5UGF0aCwgZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eVBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IHR5cGUgVmFsdWVIZWxwIGZyb20gXCJzYXAvZmUvbWFjcm9zL1ZhbHVlSGVscFwiO1xuaW1wb3J0IEZpZWxkSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpZWxkL0ZpZWxkSGVscGVyXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUlEIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvdmFsdWVoZWxwL1ZhbHVlSGVscFRlbXBsYXRpbmdcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIFVJNUVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCB0eXBlIE1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvTW9kZWxcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcblxuY29uc3QgTlNfTUFDUk9EQVRBID0gXCJodHRwOi8vc2NoZW1hcy5zYXAuY29tL3NhcHVpNS9leHRlbnNpb24vc2FwLnVpLmNvcmUuQ3VzdG9tRGF0YS8xXCI7XG5cbmV4cG9ydCB0eXBlIHRhYmxlRGVsZWdhdGVNb2RlbCA9IHtcblx0ZW5hYmxlQXV0b0NvbHVtbldpZHRoOiBib29sZWFuO1xuXHRyZWFkT25seTogYm9vbGVhbjtcblx0dGFibGVUeXBlOiBzdHJpbmc7XG5cdG9uQ2hhbmdlOiBGdW5jdGlvbjtcblx0aWQ6IHN0cmluZztcblx0bmF2aWdhdGlvblByb3BlcnR5UGF0aDogc3RyaW5nO1xuXHRjb2x1bW5JbmZvOiBDdXN0b21FbGVtZW50PEN1c3RvbUJhc2VkVGFibGVDb2x1bW4+O1xuXHRjb2xsZWN0aW9uOiB7XG5cdFx0c1BhdGg6IHN0cmluZztcblx0XHRvTW9kZWw6IHN0cmluZztcblx0fTtcblx0d2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXI6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBQcm9wZXJ0eUluZm8gPSB7XG5cdGFkZGl0aW9uYWxMYWJlbHM/OiBzdHJpbmdbXTtcblx0Y2FzZVNlbnNpdGl2ZT86IGJvb2xlYW47XG5cdGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXHRkZXNjcmlwdGlvblByb3BlcnR5Pzogc3RyaW5nO1xuXHRleHBvcnRTZXR0aW5ncz86IENvbHVtbkV4cG9ydFNldHRpbmdzIHwgbnVsbDtcblx0Y2xpcGJvYXJkU2V0dGluZ3M/OiBPYmplY3QgfCBudWxsO1xuXHRmb3JtYXRPcHRpb25zPzogT2JqZWN0IHwgbnVsbDtcblx0ZmlsdGVyYWJsZT86IGJvb2xlYW47XG5cdGdyb3VwPzogc3RyaW5nO1xuXHRncm91cGFibGU/OiBib29sZWFuO1xuXHRncm91cExhYmVsPzogc3RyaW5nO1xuXHRpc0tleT86IGJvb2xlYW47XG5cdGxhYmVsPzogc3RyaW5nO1xuXHRtYXhDb25kaXRpb25zPzogbnVtYmVyO1xuXHRtZXRhZGF0YVBhdGg/OiBzdHJpbmc7XG5cdG1vZGU/OiBEaXNwbGF5TW9kZTtcblx0bmFtZTogc3RyaW5nO1xuXHRrZXk/OiBzdHJpbmc7XG5cdHBhdGg/OiBzdHJpbmc7XG5cdHByb3BlcnR5SW5mb3M/OiBzdHJpbmdbXTtcblx0cmVsYXRpdmVQYXRoPzogc3RyaW5nO1xuXHRzb3J0YWJsZT86IGJvb2xlYW47XG5cdHNvcnREaXJlY3Rpb24/OiBzdHJpbmc7XG5cdHRleHQ/OiBzdHJpbmc7XG5cdHRvb2x0aXA/OiBzdHJpbmc7XG5cdHR5cGVDb25maWc/OiBQcm9wZXJ0eVR5cGVDb25maWc7XG5cdHR5cGU/OiBzdHJpbmc7XG5cdHVuaXQ/OiBzdHJpbmc7XG5cdHZhbHVlUHJvcGVydHk/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBib29sZWFuO1xuXHR2aXN1YWxTZXR0aW5ncz86IFZpc3VhbFNldHRpbmdzO1xuXHRleHBvcnREYXRhUG9pbnRUYXJnZXRWYWx1ZT86IHN0cmluZztcblx0aXNQYXJhbWV0ZXI/OiBib29sZWFuO1xuXHRhZ2dyZWdhdGFibGU/OiBib29sZWFuO1xuXHRyZXF1aXJlZD86IGJvb2xlYW47XG5cdGV4dGVuc2lvbj86IEV4dGVuc2lvbkZvckFuYWx5dGljcztcbn07XG5cbmZ1bmN0aW9uIF9yZXRyaWV2ZU1vZGVsKHRoaXM6IHsgbW9kZWxOYW1lOiBzdHJpbmc7IGNvbnRyb2w6IGFueTsgcmVzb2x2ZTogRnVuY3Rpb24gfSkge1xuXHR0aGlzLmNvbnRyb2wuZGV0YWNoTW9kZWxDb250ZXh0Q2hhbmdlKF9yZXRyaWV2ZU1vZGVsLCB0aGlzKTtcblx0Y29uc3Qgc01vZGVsTmFtZSA9IHRoaXMubW9kZWxOYW1lLFxuXHRcdG9Nb2RlbCA9IHRoaXMuY29udHJvbC5nZXRNb2RlbChzTW9kZWxOYW1lKTtcblxuXHRpZiAob01vZGVsKSB7XG5cdFx0dGhpcy5yZXNvbHZlKG9Nb2RlbCk7XG5cdH0gZWxzZSB7XG5cdFx0dGhpcy5jb250cm9sLmF0dGFjaE1vZGVsQ29udGV4dENoYW5nZShfcmV0cmlldmVNb2RlbCwgdGhpcyk7XG5cdH1cbn1cblxuZXhwb3J0IHR5cGUgTW9kaWZpZXIgPSB7XG5cdGdldEFnZ3JlZ2F0aW9uOiBGdW5jdGlvbjtcblx0Z2V0UHJvcGVydHk6IEZ1bmN0aW9uO1xuXHRzZXRQcm9wZXJ0eTogRnVuY3Rpb247XG5cdGluc2VydEFnZ3JlZ2F0aW9uOiBGdW5jdGlvbjtcbn07XG5hc3luYyBmdW5jdGlvbiBnZXRDdXN0b21EYXRhV2l0aE1vZGlmaWVyKGNvbnRyb2w6IFVJNUVsZW1lbnQsIHByb3BlcnR5OiBzdHJpbmcsIG1vZGlmaWVyOiBCYXNlVHJlZU1vZGlmaWVyKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcblx0Y29uc3QgY3VzdG9tRGF0YSA9IGF3YWl0IERlbGVnYXRlVXRpbC5yZXRyaWV2ZUN1c3RvbURhdGFOb2RlKGNvbnRyb2wsIHByb3BlcnR5LCBtb2RpZmllcik7XG5cdGlmIChjdXN0b21EYXRhLmxlbmd0aCA9PT0gMSkge1xuXHRcdHJldHVybiBtb2RpZmllci5nZXRQcm9wZXJ0eShjdXN0b21EYXRhWzBdLCBcInZhbHVlXCIpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cbn1cblxuY29uc3QgRGVsZWdhdGVVdGlsID0ge1xuXHRGRVRDSEVEX1BST1BFUlRJRVNfREFUQV9LRVk6IFwic2FwX2ZlX0NvbnRyb2xEZWxlZ2F0ZV9wcm9wZXJ0eUluZm9NYXBcIixcblx0c2V0Q2FjaGVkUHJvcGVydGllcyhjb250cm9sOiBhbnksIGZldGNoZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eUluZm9bXSkge1xuXHRcdC8vIGRvIG5vdCBjYWNoZSBkdXJpbmcgdGVtcGxhdGluZywgZWxzZSBpdCBiZWNvbWVzIHBhcnQgb2YgdGhlIGNhY2hlZCB2aWV3XG5cdFx0aWYgKGNvbnRyb2wgaW5zdGFuY2VvZiB3aW5kb3cuRWxlbWVudCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBrZXkgPSBEZWxlZ2F0ZVV0aWwuRkVUQ0hFRF9QUk9QRVJUSUVTX0RBVEFfS0VZO1xuXHRcdERlbGVnYXRlVXRpbC5zZXRDdXN0b21EYXRhKGNvbnRyb2wsIGtleSwgZmV0Y2hlZFByb3BlcnRpZXMgYXMgdW5rbm93biBhcyBzdHJpbmcpO1xuXHR9LFxuXHRnZXRDYWNoZWRQcm9wZXJ0aWVzKGNvbnRyb2w6IGFueSk6IFByb3BlcnR5SW5mb1tdIHwgbnVsbCB7XG5cdFx0Ly8gcHJvcGVydGllcyBhcmUgbm90IGNhY2hlZCBkdXJpbmcgdGVtcGxhdGluZ1xuXHRcdGlmIChjb250cm9sIGluc3RhbmNlb2Ygd2luZG93LkVsZW1lbnQpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRjb25zdCBrZXkgPSBEZWxlZ2F0ZVV0aWwuRkVUQ0hFRF9QUk9QRVJUSUVTX0RBVEFfS0VZO1xuXHRcdHJldHVybiBEZWxlZ2F0ZVV0aWwuZ2V0Q3VzdG9tRGF0YShjb250cm9sLCBrZXkpO1xuXHR9LFxuXG5cdGdldEN1c3RvbURhdGEob0NvbnRyb2w6IGFueSwgc1Byb3BlcnR5OiBhbnksIG9Nb2RpZmllcj86IGFueSkge1xuXHRcdC8vIElmIE1vZGlmaWVyIGlzIGdpdmVuLCB0aGUgbWV0aG9kIG11c3QgZXhlY3V0ZSBhc3luY2hyb25vdXNseSBhbmQgcmV0dXJuIGEgUHJvbWlzZVxuXHRcdGlmIChvTW9kaWZpZXIpIHtcblx0XHRcdHJldHVybiBnZXRDdXN0b21EYXRhV2l0aE1vZGlmaWVyKG9Db250cm9sLCBzUHJvcGVydHksIG9Nb2RpZmllcik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIERlbGVnYXRlIGludm9rZWQgZnJvbSBhIG5vbi1mbGV4IGNoYW5nZSAtIEZpbHRlckJhckRlbGVnYXRlLl9hZGRQMTNuSXRlbSBmb3IgT1AgdGFibGUgZmlsdGVyaW5nLCBGaWx0ZXJCYXJEZWxlZ2F0ZS5mZXRjaFByb3BlcnRpZXMgZXRjLlxuXHRcdFx0aWYgKG9Db250cm9sICYmIHNQcm9wZXJ0eSkge1xuXHRcdFx0XHRpZiAob0NvbnRyb2wgaW5zdGFuY2VvZiB3aW5kb3cuRWxlbWVudCkge1xuXHRcdFx0XHRcdHJldHVybiBvQ29udHJvbC5nZXRBdHRyaWJ1dGVOUyhOU19NQUNST0RBVEEsIHNQcm9wZXJ0eSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG9Db250cm9sLmRhdGEgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuXHRcdFx0XHRcdHJldHVybiBvQ29udHJvbC5kYXRhKHNQcm9wZXJ0eSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9LFxuXHRzZXRDdXN0b21EYXRhKG9Db250cm9sOiBFbGVtZW50IHwgQ29udHJvbCwgc1Byb3BlcnR5OiBzdHJpbmcsIHZWYWx1ZTogdW5rbm93bik6IHZvaWQge1xuXHRcdGlmIChvQ29udHJvbCAmJiBzUHJvcGVydHkpIHtcblx0XHRcdGlmIChvQ29udHJvbCBpbnN0YW5jZW9mIHdpbmRvdy5FbGVtZW50KSB7XG5cdFx0XHRcdHJldHVybiBvQ29udHJvbC5zZXRBdHRyaWJ1dGVOUyhOU19NQUNST0RBVEEsIGBjdXN0b21EYXRhOiR7c1Byb3BlcnR5fWAsIHZWYWx1ZSBhcyBzdHJpbmcpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKG9Db250cm9sLmRhdGEgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuXHRcdFx0XHRyZXR1cm4gb0NvbnRyb2wuZGF0YShzUHJvcGVydHksIHZWYWx1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRmZXRjaFByb3BlcnRpZXNGb3JFbnRpdHkoc0VudGl0eVNldDogc3RyaW5nLCBvTWV0YU1vZGVsOiBPRGF0YU1ldGFNb2RlbCk6IHVua25vd24ge1xuXHRcdHJldHVybiBvTWV0YU1vZGVsLnJlcXVlc3RPYmplY3QoYCR7c0VudGl0eVNldH0vYCk7XG5cdH0sXG5cdGZldGNoQW5ub3RhdGlvbnNGb3JFbnRpdHkoc0VudGl0eVNldDogc3RyaW5nLCBvTWV0YU1vZGVsOiBPRGF0YU1ldGFNb2RlbCk6IHVua25vd24ge1xuXHRcdHJldHVybiBvTWV0YU1vZGVsLnJlcXVlc3RPYmplY3QoYCR7c0VudGl0eVNldH1AYCk7XG5cdH0sXG5cdGZldGNoTW9kZWwob0NvbnRyb2w6IGFueSk6IFByb21pc2U8TW9kZWw+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcblx0XHRcdGNvbnN0IHNNb2RlbE5hbWUgPSBvQ29udHJvbC5nZXREZWxlZ2F0ZSgpLnBheWxvYWQgJiYgb0NvbnRyb2wuZ2V0RGVsZWdhdGUoKS5wYXlsb2FkLm1vZGVsTmFtZSxcblx0XHRcdFx0b0NvbnRleHQgPSB7IG1vZGVsTmFtZTogc01vZGVsTmFtZSwgY29udHJvbDogb0NvbnRyb2wsIHJlc29sdmU6IHJlc29sdmUgfTtcblx0XHRcdF9yZXRyaWV2ZU1vZGVsLmNhbGwob0NvbnRleHQpO1xuXHRcdH0pO1xuXHR9LFxuXHR0ZW1wbGF0ZUNvbnRyb2xGcmFnbWVudChzRnJhZ21lbnROYW1lOiBhbnksIG9QcmVwcm9jZXNzb3JTZXR0aW5nczogYW55LCBvT3B0aW9uczogYW55LCBvTW9kaWZpZXI/OiBhbnkpIHtcblx0XHRyZXR1cm4gQ29tbW9uVXRpbHMudGVtcGxhdGVDb250cm9sRnJhZ21lbnQoc0ZyYWdtZW50TmFtZSwgb1ByZXByb2Nlc3NvclNldHRpbmdzLCBvT3B0aW9ucywgb01vZGlmaWVyKTtcblx0fSxcblx0ZG9lc1ZhbHVlSGVscEV4aXN0KG1QYXJhbWV0ZXJzOiBhbnkpIHtcblx0XHRjb25zdCBzUHJvcGVydHlOYW1lID0gbVBhcmFtZXRlcnMuc1Byb3BlcnR5TmFtZSB8fCBcIlwiO1xuXHRcdGNvbnN0IHNWYWx1ZUhlbHBUeXBlID0gbVBhcmFtZXRlcnMuc1ZhbHVlSGVscFR5cGUgfHwgXCJcIjtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gbVBhcmFtZXRlcnMub01ldGFNb2RlbDtcblx0XHRjb25zdCBvTW9kaWZpZXIgPSBtUGFyYW1ldGVycy5vTW9kaWZpZXI7XG5cdFx0Y29uc3Qgc09yaWdpbmFsUHJvcGVydHkgPSBgJHttUGFyYW1ldGVycy5zQmluZGluZ1BhdGh9LyR7c1Byb3BlcnR5TmFtZX1gO1xuXHRcdGNvbnN0IHByb3BlcnR5Q29udGV4dCA9IG9NZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoc09yaWdpbmFsUHJvcGVydHkpO1xuXHRcdGxldCB2YWx1ZUhlbHBQcm9wZXJ0eVBhdGggPSBGaWVsZEhlbHBlci52YWx1ZUhlbHBQcm9wZXJ0eShwcm9wZXJ0eUNvbnRleHQpO1xuXHRcdGNvbnN0IGJJc0Fic29sdXRlID0gbVBhcmFtZXRlcnMuc0JpbmRpbmdQYXRoICYmIG1QYXJhbWV0ZXJzLnNCaW5kaW5nUGF0aC5pbmRleE9mKFwiL1wiKSA9PT0gMDtcblxuXHRcdC8vIHVuaXQvY3VycmVuY3lcblx0XHRpZiAodmFsdWVIZWxwUHJvcGVydHlQYXRoLmluY2x1ZGVzKFwiJFBhdGhcIikpIHtcblx0XHRcdHZhbHVlSGVscFByb3BlcnR5UGF0aCA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KHZhbHVlSGVscFByb3BlcnR5UGF0aCk7XG5cdFx0fVxuXHRcdGlmIChiSXNBYnNvbHV0ZSAmJiB2YWx1ZUhlbHBQcm9wZXJ0eVBhdGguaW5kZXhPZihcIi9cIikgIT09IDApIHtcblx0XHRcdGNvbnN0IHByb3BlcnR5RGF0YU1vZGVsID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKHByb3BlcnR5Q29udGV4dCk7XG5cdFx0XHRjb25zdCB1bml0T3JDdXJyZW5jeVByb3BlcnR5UGF0aCA9XG5cdFx0XHRcdGdldEFzc29jaWF0ZWRDdXJyZW5jeVByb3BlcnR5UGF0aChwcm9wZXJ0eURhdGFNb2RlbC50YXJnZXRPYmplY3QgYXMgUHJvcGVydHkpIHx8XG5cdFx0XHRcdGdldEFzc29jaWF0ZWRVbml0UHJvcGVydHlQYXRoKHByb3BlcnR5RGF0YU1vZGVsLnRhcmdldE9iamVjdCBhcyBQcm9wZXJ0eSk7XG5cdFx0XHRjb25zdCB1bml0T3JDdXJyZW5jeURhdGFNb2RlbCA9IGVuaGFuY2VEYXRhTW9kZWxQYXRoKHByb3BlcnR5RGF0YU1vZGVsLCB1bml0T3JDdXJyZW5jeVByb3BlcnR5UGF0aCk7XG5cdFx0XHR2YWx1ZUhlbHBQcm9wZXJ0eVBhdGggPSBnZXRUYXJnZXRPYmplY3RQYXRoKHVuaXRPckN1cnJlbmN5RGF0YU1vZGVsKTtcblx0XHR9XG5cblx0XHRjb25zdCBzR2VuZXJhdGVkSWQgPSBnZW5lcmF0ZUlEKFxuXHRcdFx0bVBhcmFtZXRlcnMuZmxleElkLFxuXHRcdFx0Z2VuZXJhdGUoW29Nb2RpZmllciA/IG9Nb2RpZmllci5nZXRJZChtUGFyYW1ldGVycy5vQ29udHJvbCkgOiBtUGFyYW1ldGVycy5vQ29udHJvbC5nZXRJZCgpLCBzVmFsdWVIZWxwVHlwZV0pLFxuXHRcdFx0Z2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGgocHJvcGVydHlDb250ZXh0LmdldFByb3BlcnR5KHNPcmlnaW5hbFByb3BlcnR5KSwge1xuXHRcdFx0XHRjb250ZXh0OiB7XG5cdFx0XHRcdFx0Z2V0TW9kZWw6ICgpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBtUGFyYW1ldGVycy5vTWV0YU1vZGVsO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Z2V0UGF0aDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHNPcmlnaW5hbFByb3BlcnR5O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBhcyBhbnlcblx0XHRcdH0pLFxuXHRcdFx0Z2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGgocHJvcGVydHlDb250ZXh0LmdldFByb3BlcnR5KHZhbHVlSGVscFByb3BlcnR5UGF0aCksIHtcblx0XHRcdFx0Y29udGV4dDoge1xuXHRcdFx0XHRcdGdldE1vZGVsOiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gbVBhcmFtZXRlcnMub01ldGFNb2RlbDtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGdldFBhdGg6ICgpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiB2YWx1ZUhlbHBQcm9wZXJ0eVBhdGg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGFzIGFueVxuXHRcdFx0fSlcblx0XHQpO1xuXG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdGlmIChvTW9kaWZpZXIpIHtcblx0XHRcdFx0XHRyZXR1cm4gb01vZGlmaWVyLmdldEFnZ3JlZ2F0aW9uKG1QYXJhbWV0ZXJzLm9Db250cm9sLCBcImRlcGVuZGVudHNcIik7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIG1QYXJhbWV0ZXJzLm9Db250cm9sLmdldEFnZ3JlZ2F0aW9uKFwiZGVwZW5kZW50c1wiKTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbihhc3luYyBmdW5jdGlvbiAoYURlcGVuZGVudHM6IFVJNUVsZW1lbnRbXSkge1xuXHRcdFx0XHRpZiAoYURlcGVuZGVudHMpIHtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IG9EZXBlbmRlbnQgb2YgYURlcGVuZGVudHMpIHtcblx0XHRcdFx0XHRcdGxldCBvVGFyZ2V0RGVwZW5kZW50OiBVSTVFbGVtZW50IHwgdW5kZWZpbmVkID0gb0RlcGVuZGVudDtcblx0XHRcdFx0XHRcdGlmIChvTW9kaWZpZXIpIHtcblx0XHRcdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0XHRcdG9Nb2RpZmllci5nZXRDb250cm9sVHlwZShvRGVwZW5kZW50KSA9PT0gXCJzYXAuZmUubWFjcm9zLlZhbHVlSGVscFwiICYmXG5cdFx0XHRcdFx0XHRcdFx0b01vZGlmaWVyLnRhcmdldHMgIT09IFwieG1sVHJlZVwiXG5cdFx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHRcdG9UYXJnZXREZXBlbmRlbnQgPSAob0RlcGVuZGVudCBhcyBWYWx1ZUhlbHApLmdldENvbnRlbnQoKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRpZiAob1RhcmdldERlcGVuZGVudCAmJiBvTW9kaWZpZXIuZ2V0SWQob1RhcmdldERlcGVuZGVudCkgPT09IHNHZW5lcmF0ZWRJZCkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRpZiAob0RlcGVuZGVudC5pc0E8VmFsdWVIZWxwPihcInNhcC5mZS5tYWNyb3MuVmFsdWVIZWxwXCIpKSB7XG5cdFx0XHRcdFx0XHRcdFx0b1RhcmdldERlcGVuZGVudCA9IG9EZXBlbmRlbnQuZ2V0Q29udGVudCgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGlmIChvVGFyZ2V0RGVwZW5kZW50Py5nZXRJZCgpID09PSBzR2VuZXJhdGVkSWQpIHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9KTtcblx0fSxcblx0aXNWYWx1ZUhlbHBSZXF1aXJlZChtUGFyYW1ldGVyczogYW55LCBiSW5GaWx0ZXJGaWVsZD86IGJvb2xlYW4pIHtcblx0XHRjb25zdCBzUHJvcGVydHlOYW1lID0gbVBhcmFtZXRlcnMuc1Byb3BlcnR5TmFtZSB8fCBcIlwiLFxuXHRcdFx0b01ldGFNb2RlbCA9IG1QYXJhbWV0ZXJzLm9NZXRhTW9kZWwsXG5cdFx0XHRzUHJvcGVydHkgPSBgJHttUGFyYW1ldGVycy5zQmluZGluZ1BhdGh9LyR7c1Byb3BlcnR5TmFtZX1gLFxuXHRcdFx0b1Byb3BlcnR5Q29udGV4dCA9IG9NZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoc1Byb3BlcnR5KSxcblx0XHRcdHNWYWx1ZUhlbHBQcm9wZXJ0eSA9IEZpZWxkSGVscGVyLnZhbHVlSGVscFByb3BlcnR5KG9Qcm9wZXJ0eUNvbnRleHQsIGJJbkZpbHRlckZpZWxkKTtcblxuXHRcdHJldHVybiB0aGlzLmdldEN1c3RvbURhdGEobVBhcmFtZXRlcnMub0NvbnRyb2wsIFwiZGlzcGxheU1vZGVQcm9wZXJ0eUJpbmRpbmdcIiwgbVBhcmFtZXRlcnMub01vZGlmaWVyKVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKGJSZWFkT25seTogYW55KSB7XG5cdFx0XHRcdC8vIENoZWNrIHdoZXRoZXIgdGhlIGNvbnRyb2wgaXMgcmVhZC1vbmx5LiBJZiB5ZXMsIG5vIG5lZWQgb2YgYSB2YWx1ZSBoZWxwLlxuXHRcdFx0XHRiUmVhZE9ubHkgPSB0eXBlb2YgYlJlYWRPbmx5ID09PSBcImJvb2xlYW5cIiA/IGJSZWFkT25seSA6IGJSZWFkT25seSA9PT0gXCJ0cnVlXCI7XG5cdFx0XHRcdGlmIChiUmVhZE9ubHkpIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gRWxzZSwgY2hlY2sgd2hldGhlciBWYWx1ZSBIZWxwIHJlbGV2YW50IGFubm90YXRpb24gZXhpc3RzIGZvciB0aGUgcHJvcGVydHkuXG5cdFx0XHRcdC8vIFRPRE8gdXNlIFByb3BlcnR5Rm9ybWF0dGVyLmhhc1ZhbHVlSGVscCAoKSA9PiBpZiBkb2luZyBzbywgUVVuaXQgdGVzdHMgZmFpbCBkdWUgdG8gbW9ja2VkIG1vZGVsIGltcGxlbWVudGF0aW9uXG5cdFx0XHRcdHJldHVybiBQcm9taXNlLmFsbChbXG5cdFx0XHRcdFx0b01ldGFNb2RlbC5yZXF1ZXN0T2JqZWN0KGAke3NWYWx1ZUhlbHBQcm9wZXJ0eX1AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlc2ApLFxuXHRcdFx0XHRcdG9NZXRhTW9kZWwucmVxdWVzdE9iamVjdChgJHtzVmFsdWVIZWxwUHJvcGVydHl9QGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5WYWx1ZUxpc3RSZWZlcmVuY2VzYCksXG5cdFx0XHRcdFx0b01ldGFNb2RlbC5yZXF1ZXN0T2JqZWN0KGAke3NWYWx1ZUhlbHBQcm9wZXJ0eX1AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlZhbHVlTGlzdE1hcHBpbmdgKSxcblx0XHRcdFx0XHRvTWV0YU1vZGVsLnJlcXVlc3RPYmplY3QoYCR7c1ZhbHVlSGVscFByb3BlcnR5fUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVmFsdWVMaXN0YClcblx0XHRcdFx0XSk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKGFSZXN1bHRzOiBhbnlbXSkge1xuXHRcdFx0XHRyZXR1cm4gISFhUmVzdWx0c1swXSB8fCAhIWFSZXN1bHRzWzFdIHx8ICEhYVJlc3VsdHNbMl0gfHwgISFhUmVzdWx0c1szXTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy53YXJuaW5nKFwiRXJyb3Igd2hpbGUgcmV0cmlldmluZyBjdXN0b20gZGF0YSAvIHZhbHVlIGxpc3QgYW5ub3RhdGlvbiB2YWx1ZXNcIiwgb0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9LFxuXHRpc011bHRpVmFsdWUob1Byb3BlcnR5OiBhbnkpIHtcblx0XHRsZXQgYklzTXVsdGlWYWx1ZSA9IHRydWU7XG5cdFx0Ly9TaW5nbGVWYWx1ZSB8IE11bHRpVmFsdWUgfCBTaW5nbGVSYW5nZSB8IE11bHRpUmFuZ2UgfCBTZWFyY2hFeHByZXNzaW9uIHwgTXVsdGlSYW5nZU9yU2VhcmNoRXhwcmVzc2lvblxuXHRcdHN3aXRjaCAob1Byb3BlcnR5LmZpbHRlckV4cHJlc3Npb24pIHtcblx0XHRcdGNhc2UgXCJTZWFyY2hFeHByZXNzaW9uXCI6XG5cdFx0XHRjYXNlIFwiU2luZ2xlUmFuZ2VcIjpcblx0XHRcdGNhc2UgXCJTaW5nbGVWYWx1ZVwiOlxuXHRcdFx0XHRiSXNNdWx0aVZhbHVlID0gZmFsc2U7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdGlmIChvUHJvcGVydHkudHlwZSAmJiBvUHJvcGVydHkudHlwZS5pbmRleE9mKFwiQm9vbGVhblwiKSA+IDApIHtcblx0XHRcdGJJc011bHRpVmFsdWUgPSBmYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIGJJc011bHRpVmFsdWU7XG5cdH0sXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgYSBjdXN0b20gZGF0YSBub2RlIGZyb20gdGhlIGNvbnRyb2wuXG5cdCAqIEBwYXJhbSBjb250cm9sIFRoZSBjb250cm9sIGZyb20gd2hpY2ggdG8gcmV0cmlldmUgdGhlIGN1c3RvbSBkYXRhIG5vZGVcblx0ICogQHBhcmFtIHByb3BlcnR5S2V5IFRoZSBrZXkgb2YgdGhlIGN1c3RvbSBkYXRhIG5vZGUgdG8gcmV0cmlldmVcblx0ICogQHBhcmFtIG1vZGlmaWVyIFRoZSBtb2RpZmllciBmb3IgdGhlIGNvbnRyb2xcblx0ICogQHJldHVybnMgLSBUaGUgY3VzdG9tIGRhdGEgbm9kZVxuXHQgKi9cblx0YXN5bmMgcmV0cmlldmVDdXN0b21EYXRhTm9kZShjb250cm9sOiBVSTVFbGVtZW50LCBwcm9wZXJ0eUtleTogc3RyaW5nLCBtb2RpZmllcjogQmFzZVRyZWVNb2RpZmllcik6IFByb21pc2U8RWxlbWVudFtdPiB7XG5cdFx0Y29uc3QgY3VzdG9tRGF0YTogRWxlbWVudFtdID0gW107XG5cdFx0Y29uc3QgYVJldHJpZXZlZEN1c3RvbURhdGEgPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoKS50aGVuKFxuXHRcdFx0bW9kaWZpZXIuZ2V0QWdncmVnYXRpb24uYmluZChtb2RpZmllciwgY29udHJvbCwgXCJjdXN0b21EYXRhXCIpIGFzICgpID0+IFByb21pc2U8RWxlbWVudFtdPlxuXHRcdCk7XG5cblx0XHQvLyBQcm9jZXNzIGVhY2ggcmV0cmlldmVkIGN1c3RvbSBkYXRhIGVsZW1lbnRcblx0XHRmb3IgKGNvbnN0IG9DdXN0b21EYXRhIG9mIGFSZXRyaWV2ZWRDdXN0b21EYXRhKSB7XG5cdFx0XHRjb25zdCBrZXkgPSBhd2FpdCBtb2RpZmllci5nZXRQcm9wZXJ0eShvQ3VzdG9tRGF0YSwgXCJrZXlcIik7XG5cdFx0XHRpZiAoa2V5ID09PSBwcm9wZXJ0eUtleSkge1xuXHRcdFx0XHRjdXN0b21EYXRhLnB1c2gob0N1c3RvbURhdGEpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBjdXN0b21EYXRhO1xuXHR9XG59O1xuZXhwb3J0IGRlZmF1bHQgRGVsZWdhdGVVdGlsO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7RUEwQkEsTUFBTUEsWUFBWSxHQUFHLGtFQUFrRTtFQXdEdkYsU0FBU0MsY0FBY0EsQ0FBQSxFQUErRDtJQUNyRixJQUFJLENBQUNDLE9BQU8sQ0FBQ0Msd0JBQXdCLENBQUNGLGNBQWMsRUFBRSxJQUFJLENBQUM7SUFDM0Qs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
|
|
234
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOU19NQUNST0RBVEEiLCJfcmV0cmlldmVNb2RlbCIsImNvbnRyb2wiLCJkZXRhY2hNb2RlbENvbnRleHRDaGFuZ2UiLCJzTW9kZWxOYW1lIiwibW9kZWxOYW1lIiwib01vZGVsIiwiZ2V0TW9kZWwiLCJyZXNvbHZlIiwiYXR0YWNoTW9kZWxDb250ZXh0Q2hhbmdlIiwiZ2V0Q3VzdG9tRGF0YVdpdGhNb2RpZmllciIsInByb3BlcnR5IiwibW9kaWZpZXIiLCJjdXN0b21EYXRhIiwiRGVsZWdhdGVVdGlsIiwicmV0cmlldmVDdXN0b21EYXRhTm9kZSIsImxlbmd0aCIsImdldFByb3BlcnR5IiwidW5kZWZpbmVkIiwiRkVUQ0hFRF9QUk9QRVJUSUVTX0RBVEFfS0VZIiwic2V0Q2FjaGVkUHJvcGVydGllcyIsImZldGNoZWRQcm9wZXJ0aWVzIiwid2luZG93IiwiRWxlbWVudCIsImtleSIsInNldEN1c3RvbURhdGEiLCJnZXRDYWNoZWRQcm9wZXJ0aWVzIiwiZ2V0Q3VzdG9tRGF0YSIsIm9Db250cm9sIiwic1Byb3BlcnR5Iiwib01vZGlmaWVyIiwiZ2V0QXR0cmlidXRlTlMiLCJkYXRhIiwiRnVuY3Rpb24iLCJ2VmFsdWUiLCJzZXRBdHRyaWJ1dGVOUyIsImZldGNoUHJvcGVydGllc0ZvckVudGl0eSIsInNFbnRpdHlTZXQiLCJvTWV0YU1vZGVsIiwicmVxdWVzdE9iamVjdCIsImZldGNoQW5ub3RhdGlvbnNGb3JFbnRpdHkiLCJmZXRjaE1vZGVsIiwiUHJvbWlzZSIsImdldERlbGVnYXRlIiwicGF5bG9hZCIsIm9Db250ZXh0IiwiY2FsbCIsInRlbXBsYXRlQ29udHJvbEZyYWdtZW50Iiwic0ZyYWdtZW50TmFtZSIsIm9QcmVwcm9jZXNzb3JTZXR0aW5ncyIsIm9PcHRpb25zIiwiQ29tbW9uVXRpbHMiLCJkb2VzVmFsdWVIZWxwRXhpc3QiLCJtUGFyYW1ldGVycyIsInNQcm9wZXJ0eU5hbWUiLCJzVmFsdWVIZWxwVHlwZSIsInNPcmlnaW5hbFByb3BlcnR5Iiwic0JpbmRpbmdQYXRoIiwicHJvcGVydHlDb250ZXh0IiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJ2YWx1ZUhlbHBQcm9wZXJ0eVBhdGgiLCJGaWVsZEhlbHBlciIsInZhbHVlSGVscFByb3BlcnR5IiwiYklzQWJzb2x1dGUiLCJpbmRleE9mIiwiaW5jbHVkZXMiLCJnZXRPYmplY3QiLCJwcm9wZXJ0eURhdGFNb2RlbCIsImdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyIsInVuaXRPckN1cnJlbmN5UHJvcGVydHlQYXRoIiwiZ2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHlQYXRoIiwidGFyZ2V0T2JqZWN0IiwiZ2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eVBhdGgiLCJ1bml0T3JDdXJyZW5jeURhdGFNb2RlbCIsImVuaGFuY2VEYXRhTW9kZWxQYXRoIiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsInNHZW5lcmF0ZWRJZCIsImdlbmVyYXRlSUQiLCJmbGV4SWQiLCJnZW5lcmF0ZSIsImdldElkIiwiZ2V0UmVsYXRpdmVQcm9wZXJ0eVBhdGgiLCJjb250ZXh0IiwiZ2V0UGF0aCIsInRoZW4iLCJnZXRBZ2dyZWdhdGlvbiIsImFEZXBlbmRlbnRzIiwib0RlcGVuZGVudCIsIm9UYXJnZXREZXBlbmRlbnQiLCJnZXRDb250cm9sVHlwZSIsIm1ldGFQYXRoIiwidGFyZ2V0cyIsImdldENvbnRlbnQiLCJfb1RhcmdldERlcGVuZGVudCIsImlzQSIsImlzVmFsdWVIZWxwUmVxdWlyZWQiLCJiSW5GaWx0ZXJGaWVsZCIsIm9Qcm9wZXJ0eUNvbnRleHQiLCJzVmFsdWVIZWxwUHJvcGVydHkiLCJiUmVhZE9ubHkiLCJhbGwiLCJhUmVzdWx0cyIsImNhdGNoIiwib0Vycm9yIiwiTG9nIiwid2FybmluZyIsImlzTXVsdGlWYWx1ZSIsIm9Qcm9wZXJ0eSIsImJJc011bHRpVmFsdWUiLCJmaWx0ZXJFeHByZXNzaW9uIiwidHlwZSIsInByb3BlcnR5S2V5IiwiYVJldHJpZXZlZEN1c3RvbURhdGEiLCJiaW5kIiwib0N1c3RvbURhdGEiLCJwdXNoIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJEZWxlZ2F0ZVV0aWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7IEJhc2VUcmVlTW9kaWZpZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB7IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHR5cGUge1xuXHRDb2x1bW5FeHBvcnRTZXR0aW5ncyxcblx0Q3VzdG9tQmFzZWRUYWJsZUNvbHVtbixcblx0RXh0ZW5zaW9uRm9yQW5hbHl0aWNzLFxuXHRQcm9wZXJ0eVR5cGVDb25maWcsXG5cdFZpc3VhbFNldHRpbmdzXG59IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9UYWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBDdXN0b21FbGVtZW50IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB7IGVuaGFuY2VEYXRhTW9kZWxQYXRoLCBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBEaXNwbGF5TW9kZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0Rpc3BsYXlNb2RlRm9ybWF0dGVyXCI7XG5pbXBvcnQgeyBnZXRSZWxhdGl2ZVByb3BlcnR5UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1Byb3BlcnR5Rm9ybWF0dGVyc1wiO1xuaW1wb3J0IHsgZ2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHlQYXRoLCBnZXRBc3NvY2lhdGVkVW5pdFByb3BlcnR5UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1Byb3BlcnR5SGVscGVyXCI7XG5pbXBvcnQgdHlwZSBWYWx1ZUhlbHAgZnJvbSBcInNhcC9mZS9tYWNyb3MvVmFsdWVIZWxwXCI7XG5pbXBvcnQgRmllbGRIZWxwZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmllbGQvRmllbGRIZWxwZXJcIjtcbmltcG9ydCB7IGdlbmVyYXRlSUQgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnRlcm5hbC92YWx1ZWhlbHAvVmFsdWVIZWxwVGVtcGxhdGluZ1wiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgVUk1RWxlbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRWxlbWVudFwiO1xuaW1wb3J0IHR5cGUgTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuXG5jb25zdCBOU19NQUNST0RBVEEgPSBcImh0dHA6Ly9zY2hlbWFzLnNhcC5jb20vc2FwdWk1L2V4dGVuc2lvbi9zYXAudWkuY29yZS5DdXN0b21EYXRhLzFcIjtcblxuZXhwb3J0IHR5cGUgdGFibGVEZWxlZ2F0ZU1vZGVsID0ge1xuXHRlbmFibGVBdXRvQ29sdW1uV2lkdGg6IGJvb2xlYW47XG5cdHJlYWRPbmx5OiBib29sZWFuO1xuXHR0YWJsZVR5cGU6IHN0cmluZztcblx0b25DaGFuZ2U6IEZ1bmN0aW9uO1xuXHRpZDogc3RyaW5nO1xuXHRuYXZpZ2F0aW9uUHJvcGVydHlQYXRoOiBzdHJpbmc7XG5cdGNvbHVtbkluZm86IEN1c3RvbUVsZW1lbnQ8Q3VzdG9tQmFzZWRUYWJsZUNvbHVtbj47XG5cdGNvbGxlY3Rpb246IHtcblx0XHRzUGF0aDogc3RyaW5nO1xuXHRcdG9Nb2RlbDogc3RyaW5nO1xuXHR9O1xuXHR3aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlcjogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb3BlcnR5SW5mbyA9IHtcblx0YWRkaXRpb25hbExhYmVscz86IHN0cmluZ1tdO1xuXHRjYXNlU2Vuc2l0aXZlPzogYm9vbGVhbjtcblx0ZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cdGRlc2NyaXB0aW9uUHJvcGVydHk/OiBzdHJpbmc7XG5cdGV4cG9ydFNldHRpbmdzPzogQ29sdW1uRXhwb3J0U2V0dGluZ3MgfCBudWxsO1xuXHRjbGlwYm9hcmRTZXR0aW5ncz86IE9iamVjdCB8IG51bGw7XG5cdGZvcm1hdE9wdGlvbnM/OiBPYmplY3QgfCBudWxsO1xuXHRmaWx0ZXJhYmxlPzogYm9vbGVhbjtcblx0Z3JvdXA/OiBzdHJpbmc7XG5cdGdyb3VwYWJsZT86IGJvb2xlYW47XG5cdGdyb3VwTGFiZWw/OiBzdHJpbmc7XG5cdGlzS2V5PzogYm9vbGVhbjtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdG1heENvbmRpdGlvbnM/OiBudW1iZXI7XG5cdG1ldGFkYXRhUGF0aD86IHN0cmluZztcblx0bW9kZT86IERpc3BsYXlNb2RlO1xuXHRuYW1lOiBzdHJpbmc7XG5cdGtleT86IHN0cmluZztcblx0cGF0aD86IHN0cmluZztcblx0cHJvcGVydHlJbmZvcz86IHN0cmluZ1tdO1xuXHRyZWxhdGl2ZVBhdGg/OiBzdHJpbmc7XG5cdHNvcnRhYmxlPzogYm9vbGVhbjtcblx0c29ydERpcmVjdGlvbj86IHN0cmluZztcblx0dGV4dD86IHN0cmluZztcblx0dG9vbHRpcD86IHN0cmluZztcblx0dHlwZUNvbmZpZz86IFByb3BlcnR5VHlwZUNvbmZpZztcblx0dHlwZT86IHN0cmluZztcblx0dW5pdD86IHN0cmluZztcblx0dmFsdWVQcm9wZXJ0eT86IHN0cmluZztcblx0dmlzaWJsZT86IGJvb2xlYW47XG5cdHZpc3VhbFNldHRpbmdzPzogVmlzdWFsU2V0dGluZ3M7XG5cdGV4cG9ydERhdGFQb2ludFRhcmdldFZhbHVlPzogc3RyaW5nO1xuXHRpc1BhcmFtZXRlcj86IGJvb2xlYW47XG5cdGFnZ3JlZ2F0YWJsZT86IGJvb2xlYW47XG5cdHJlcXVpcmVkPzogYm9vbGVhbjtcblx0ZXh0ZW5zaW9uPzogRXh0ZW5zaW9uRm9yQW5hbHl0aWNzO1xufTtcblxuZnVuY3Rpb24gX3JldHJpZXZlTW9kZWwodGhpczogeyBtb2RlbE5hbWU6IHN0cmluZzsgY29udHJvbDogYW55OyByZXNvbHZlOiBGdW5jdGlvbiB9KSB7XG5cdHRoaXMuY29udHJvbC5kZXRhY2hNb2RlbENvbnRleHRDaGFuZ2UoX3JldHJpZXZlTW9kZWwsIHRoaXMpO1xuXHRjb25zdCBzTW9kZWxOYW1lID0gdGhpcy5tb2RlbE5hbWUsXG5cdFx0b01vZGVsID0gdGhpcy5jb250cm9sLmdldE1vZGVsKHNNb2RlbE5hbWUpO1xuXG5cdGlmIChvTW9kZWwpIHtcblx0XHR0aGlzLnJlc29sdmUob01vZGVsKTtcblx0fSBlbHNlIHtcblx0XHR0aGlzLmNvbnRyb2wuYXR0YWNoTW9kZWxDb250ZXh0Q2hhbmdlKF9yZXRyaWV2ZU1vZGVsLCB0aGlzKTtcblx0fVxufVxuXG5leHBvcnQgdHlwZSBNb2RpZmllciA9IHtcblx0Z2V0QWdncmVnYXRpb246IEZ1bmN0aW9uO1xuXHRnZXRQcm9wZXJ0eTogRnVuY3Rpb247XG5cdHNldFByb3BlcnR5OiBGdW5jdGlvbjtcblx0aW5zZXJ0QWdncmVnYXRpb246IEZ1bmN0aW9uO1xufTtcbmFzeW5jIGZ1bmN0aW9uIGdldEN1c3RvbURhdGFXaXRoTW9kaWZpZXIoY29udHJvbDogVUk1RWxlbWVudCwgcHJvcGVydHk6IHN0cmluZywgbW9kaWZpZXI6IEJhc2VUcmVlTW9kaWZpZXIpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuXHRjb25zdCBjdXN0b21EYXRhID0gYXdhaXQgRGVsZWdhdGVVdGlsLnJldHJpZXZlQ3VzdG9tRGF0YU5vZGUoY29udHJvbCwgcHJvcGVydHksIG1vZGlmaWVyKTtcblx0aWYgKGN1c3RvbURhdGEubGVuZ3RoID09PSAxKSB7XG5cdFx0cmV0dXJuIG1vZGlmaWVyLmdldFByb3BlcnR5KGN1c3RvbURhdGFbMF0sIFwidmFsdWVcIik7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxufVxuXG5jb25zdCBEZWxlZ2F0ZVV0aWwgPSB7XG5cdEZFVENIRURfUFJPUEVSVElFU19EQVRBX0tFWTogXCJzYXBfZmVfQ29udHJvbERlbGVnYXRlX3Byb3BlcnR5SW5mb01hcFwiLFxuXHRzZXRDYWNoZWRQcm9wZXJ0aWVzKGNvbnRyb2w6IGFueSwgZmV0Y2hlZFByb3BlcnRpZXM6IFByb3BlcnR5SW5mb1tdKSB7XG5cdFx0Ly8gZG8gbm90IGNhY2hlIGR1cmluZyB0ZW1wbGF0aW5nLCBlbHNlIGl0IGJlY29tZXMgcGFydCBvZiB0aGUgY2FjaGVkIHZpZXdcblx0XHRpZiAoY29udHJvbCBpbnN0YW5jZW9mIHdpbmRvdy5FbGVtZW50KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IGtleSA9IERlbGVnYXRlVXRpbC5GRVRDSEVEX1BST1BFUlRJRVNfREFUQV9LRVk7XG5cdFx0RGVsZWdhdGVVdGlsLnNldEN1c3RvbURhdGEoY29udHJvbCwga2V5LCBmZXRjaGVkUHJvcGVydGllcyBhcyB1bmtub3duIGFzIHN0cmluZyk7XG5cdH0sXG5cdGdldENhY2hlZFByb3BlcnRpZXMoY29udHJvbDogYW55KTogUHJvcGVydHlJbmZvW10gfCBudWxsIHtcblx0XHQvLyBwcm9wZXJ0aWVzIGFyZSBub3QgY2FjaGVkIGR1cmluZyB0ZW1wbGF0aW5nXG5cdFx0aWYgKGNvbnRyb2wgaW5zdGFuY2VvZiB3aW5kb3cuRWxlbWVudCkge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHRcdGNvbnN0IGtleSA9IERlbGVnYXRlVXRpbC5GRVRDSEVEX1BST1BFUlRJRVNfREFUQV9LRVk7XG5cdFx0cmV0dXJuIERlbGVnYXRlVXRpbC5nZXRDdXN0b21EYXRhKGNvbnRyb2wsIGtleSk7XG5cdH0sXG5cblx0Z2V0Q3VzdG9tRGF0YShvQ29udHJvbDogYW55LCBzUHJvcGVydHk6IGFueSwgb01vZGlmaWVyPzogYW55KSB7XG5cdFx0Ly8gSWYgTW9kaWZpZXIgaXMgZ2l2ZW4sIHRoZSBtZXRob2QgbXVzdCBleGVjdXRlIGFzeW5jaHJvbm91c2x5IGFuZCByZXR1cm4gYSBQcm9taXNlXG5cdFx0aWYgKG9Nb2RpZmllcikge1xuXHRcdFx0cmV0dXJuIGdldEN1c3RvbURhdGFXaXRoTW9kaWZpZXIob0NvbnRyb2wsIHNQcm9wZXJ0eSwgb01vZGlmaWVyKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gRGVsZWdhdGUgaW52b2tlZCBmcm9tIGEgbm9uLWZsZXggY2hhbmdlIC0gRmlsdGVyQmFyRGVsZWdhdGUuX2FkZFAxM25JdGVtIGZvciBPUCB0YWJsZSBmaWx0ZXJpbmcsIEZpbHRlckJhckRlbGVnYXRlLmZldGNoUHJvcGVydGllcyBldGMuXG5cdFx0XHRpZiAob0NvbnRyb2wgJiYgc1Byb3BlcnR5KSB7XG5cdFx0XHRcdGlmIChvQ29udHJvbCBpbnN0YW5jZW9mIHdpbmRvdy5FbGVtZW50KSB7XG5cdFx0XHRcdFx0cmV0dXJuIG9Db250cm9sLmdldEF0dHJpYnV0ZU5TKE5TX01BQ1JPREFUQSwgc1Byb3BlcnR5KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAob0NvbnRyb2wuZGF0YSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG5cdFx0XHRcdFx0cmV0dXJuIG9Db250cm9sLmRhdGEoc1Byb3BlcnR5KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH0sXG5cdHNldEN1c3RvbURhdGEob0NvbnRyb2w6IEVsZW1lbnQgfCBDb250cm9sLCBzUHJvcGVydHk6IHN0cmluZywgdlZhbHVlOiB1bmtub3duKTogdm9pZCB7XG5cdFx0aWYgKG9Db250cm9sICYmIHNQcm9wZXJ0eSkge1xuXHRcdFx0aWYgKG9Db250cm9sIGluc3RhbmNlb2Ygd2luZG93LkVsZW1lbnQpIHtcblx0XHRcdFx0cmV0dXJuIG9Db250cm9sLnNldEF0dHJpYnV0ZU5TKE5TX01BQ1JPREFUQSwgYGN1c3RvbURhdGE6JHtzUHJvcGVydHl9YCwgdlZhbHVlIGFzIHN0cmluZyk7XG5cdFx0XHR9XG5cdFx0XHRpZiAob0NvbnRyb2wuZGF0YSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG5cdFx0XHRcdHJldHVybiBvQ29udHJvbC5kYXRhKHNQcm9wZXJ0eSwgdlZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGZldGNoUHJvcGVydGllc0ZvckVudGl0eShzRW50aXR5U2V0OiBzdHJpbmcsIG9NZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsKTogdW5rbm93biB7XG5cdFx0cmV0dXJuIG9NZXRhTW9kZWwucmVxdWVzdE9iamVjdChgJHtzRW50aXR5U2V0fS9gKTtcblx0fSxcblx0ZmV0Y2hBbm5vdGF0aW9uc0ZvckVudGl0eShzRW50aXR5U2V0OiBzdHJpbmcsIG9NZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsKTogdW5rbm93biB7XG5cdFx0cmV0dXJuIG9NZXRhTW9kZWwucmVxdWVzdE9iamVjdChgJHtzRW50aXR5U2V0fUBgKTtcblx0fSxcblx0ZmV0Y2hNb2RlbChvQ29udHJvbDogYW55KTogUHJvbWlzZTxNb2RlbD4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuXHRcdFx0Y29uc3Qgc01vZGVsTmFtZSA9IG9Db250cm9sLmdldERlbGVnYXRlKCkucGF5bG9hZCAmJiBvQ29udHJvbC5nZXREZWxlZ2F0ZSgpLnBheWxvYWQubW9kZWxOYW1lLFxuXHRcdFx0XHRvQ29udGV4dCA9IHsgbW9kZWxOYW1lOiBzTW9kZWxOYW1lLCBjb250cm9sOiBvQ29udHJvbCwgcmVzb2x2ZTogcmVzb2x2ZSB9O1xuXHRcdFx0X3JldHJpZXZlTW9kZWwuY2FsbChvQ29udGV4dCk7XG5cdFx0fSk7XG5cdH0sXG5cdHRlbXBsYXRlQ29udHJvbEZyYWdtZW50KHNGcmFnbWVudE5hbWU6IGFueSwgb1ByZXByb2Nlc3NvclNldHRpbmdzOiBhbnksIG9PcHRpb25zOiBhbnksIG9Nb2RpZmllcj86IGFueSkge1xuXHRcdHJldHVybiBDb21tb25VdGlscy50ZW1wbGF0ZUNvbnRyb2xGcmFnbWVudChzRnJhZ21lbnROYW1lLCBvUHJlcHJvY2Vzc29yU2V0dGluZ3MsIG9PcHRpb25zLCBvTW9kaWZpZXIpO1xuXHR9LFxuXHRkb2VzVmFsdWVIZWxwRXhpc3QobVBhcmFtZXRlcnM6IGFueSkge1xuXHRcdGNvbnN0IHNQcm9wZXJ0eU5hbWUgPSBtUGFyYW1ldGVycy5zUHJvcGVydHlOYW1lIHx8IFwiXCI7XG5cdFx0Y29uc3Qgc1ZhbHVlSGVscFR5cGUgPSBtUGFyYW1ldGVycy5zVmFsdWVIZWxwVHlwZSB8fCBcIlwiO1xuXHRcdGNvbnN0IG9NZXRhTW9kZWwgPSBtUGFyYW1ldGVycy5vTWV0YU1vZGVsO1xuXHRcdGNvbnN0IG9Nb2RpZmllciA9IG1QYXJhbWV0ZXJzLm9Nb2RpZmllcjtcblx0XHRjb25zdCBzT3JpZ2luYWxQcm9wZXJ0eSA9IGAke21QYXJhbWV0ZXJzLnNCaW5kaW5nUGF0aH0vJHtzUHJvcGVydHlOYW1lfWA7XG5cdFx0Y29uc3QgcHJvcGVydHlDb250ZXh0ID0gb01ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChzT3JpZ2luYWxQcm9wZXJ0eSk7XG5cdFx0bGV0IHZhbHVlSGVscFByb3BlcnR5UGF0aCA9IEZpZWxkSGVscGVyLnZhbHVlSGVscFByb3BlcnR5KHByb3BlcnR5Q29udGV4dCk7XG5cdFx0Y29uc3QgYklzQWJzb2x1dGUgPSBtUGFyYW1ldGVycy5zQmluZGluZ1BhdGggJiYgbVBhcmFtZXRlcnMuc0JpbmRpbmdQYXRoLmluZGV4T2YoXCIvXCIpID09PSAwO1xuXG5cdFx0Ly8gdW5pdC9jdXJyZW5jeVxuXHRcdGlmICh2YWx1ZUhlbHBQcm9wZXJ0eVBhdGguaW5jbHVkZXMoXCIkUGF0aFwiKSkge1xuXHRcdFx0dmFsdWVIZWxwUHJvcGVydHlQYXRoID0gb01ldGFNb2RlbC5nZXRPYmplY3QodmFsdWVIZWxwUHJvcGVydHlQYXRoKTtcblx0XHR9XG5cdFx0aWYgKGJJc0Fic29sdXRlICYmIHZhbHVlSGVscFByb3BlcnR5UGF0aC5pbmRleE9mKFwiL1wiKSAhPT0gMCkge1xuXHRcdFx0Y29uc3QgcHJvcGVydHlEYXRhTW9kZWwgPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMocHJvcGVydHlDb250ZXh0KTtcblx0XHRcdGNvbnN0IHVuaXRPckN1cnJlbmN5UHJvcGVydHlQYXRoID1cblx0XHRcdFx0Z2V0QXNzb2NpYXRlZEN1cnJlbmN5UHJvcGVydHlQYXRoKHByb3BlcnR5RGF0YU1vZGVsLnRhcmdldE9iamVjdCBhcyBQcm9wZXJ0eSkgfHxcblx0XHRcdFx0Z2V0QXNzb2NpYXRlZFVuaXRQcm9wZXJ0eVBhdGgocHJvcGVydHlEYXRhTW9kZWwudGFyZ2V0T2JqZWN0IGFzIFByb3BlcnR5KTtcblx0XHRcdGNvbnN0IHVuaXRPckN1cnJlbmN5RGF0YU1vZGVsID0gZW5oYW5jZURhdGFNb2RlbFBhdGgocHJvcGVydHlEYXRhTW9kZWwsIHVuaXRPckN1cnJlbmN5UHJvcGVydHlQYXRoKTtcblx0XHRcdHZhbHVlSGVscFByb3BlcnR5UGF0aCA9IGdldFRhcmdldE9iamVjdFBhdGgodW5pdE9yQ3VycmVuY3lEYXRhTW9kZWwpO1xuXHRcdH1cblxuXHRcdGNvbnN0IHNHZW5lcmF0ZWRJZCA9IGdlbmVyYXRlSUQoXG5cdFx0XHRtUGFyYW1ldGVycy5mbGV4SWQsXG5cdFx0XHRnZW5lcmF0ZShbb01vZGlmaWVyID8gb01vZGlmaWVyLmdldElkKG1QYXJhbWV0ZXJzLm9Db250cm9sKSA6IG1QYXJhbWV0ZXJzLm9Db250cm9sLmdldElkKCksIHNWYWx1ZUhlbHBUeXBlXSksXG5cdFx0XHRnZXRSZWxhdGl2ZVByb3BlcnR5UGF0aChwcm9wZXJ0eUNvbnRleHQuZ2V0UHJvcGVydHkoc09yaWdpbmFsUHJvcGVydHkpLCB7XG5cdFx0XHRcdGNvbnRleHQ6IHtcblx0XHRcdFx0XHRnZXRNb2RlbDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIG1QYXJhbWV0ZXJzLm9NZXRhTW9kZWw7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRnZXRQYXRoOiAoKSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gc09yaWdpbmFsUHJvcGVydHk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGFzIGFueVxuXHRcdFx0fSksXG5cdFx0XHRnZXRSZWxhdGl2ZVByb3BlcnR5UGF0aChwcm9wZXJ0eUNvbnRleHQuZ2V0UHJvcGVydHkodmFsdWVIZWxwUHJvcGVydHlQYXRoKSwge1xuXHRcdFx0XHRjb250ZXh0OiB7XG5cdFx0XHRcdFx0Z2V0TW9kZWw6ICgpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBtUGFyYW1ldGVycy5vTWV0YU1vZGVsO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Z2V0UGF0aDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHZhbHVlSGVscFByb3BlcnR5UGF0aDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gYXMgYW55XG5cdFx0XHR9KVxuXHRcdCk7XG5cblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcblx0XHRcdC50aGVuKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0aWYgKG9Nb2RpZmllcikge1xuXHRcdFx0XHRcdHJldHVybiBvTW9kaWZpZXIuZ2V0QWdncmVnYXRpb24obVBhcmFtZXRlcnMub0NvbnRyb2wsIFwiZGVwZW5kZW50c1wiKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbVBhcmFtZXRlcnMub0NvbnRyb2wuZ2V0QWdncmVnYXRpb24oXCJkZXBlbmRlbnRzXCIpO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKGFzeW5jIGZ1bmN0aW9uIChhRGVwZW5kZW50czogVUk1RWxlbWVudFtdKSB7XG5cdFx0XHRcdGlmIChhRGVwZW5kZW50cykge1xuXHRcdFx0XHRcdGZvciAoY29uc3Qgb0RlcGVuZGVudCBvZiBhRGVwZW5kZW50cykge1xuXHRcdFx0XHRcdFx0bGV0IG9UYXJnZXREZXBlbmRlbnQ6IFVJNUVsZW1lbnQgfCB1bmRlZmluZWQgPSBvRGVwZW5kZW50O1xuXHRcdFx0XHRcdFx0aWYgKG9Nb2RpZmllcikge1xuXHRcdFx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRcdFx0b01vZGlmaWVyLmdldENvbnRyb2xUeXBlKG9EZXBlbmRlbnQpID09PSBcInNhcC5mZS5tYWNyb3MuVmFsdWVIZWxwXCIgJiZcblx0XHRcdFx0XHRcdFx0XHQoYXdhaXQgb01vZGlmaWVyLmdldFByb3BlcnR5KG9EZXBlbmRlbnQsIFwibWV0YVBhdGhcIikpID09PSBtUGFyYW1ldGVycy5tZXRhUGF0aFxuXHRcdFx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdFx0XHQvLyBpbiB4bWwgdmFsaWRhdGUgYWdhaW5zdCB0aGUgbWV0YVBhdGggb2YgdGhlIFZhbHVlSGVscFxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHRcdFx0XHRcdG9Nb2RpZmllci5nZXRDb250cm9sVHlwZShvRGVwZW5kZW50KSA9PT0gXCJzYXAuZmUubWFjcm9zLlZhbHVlSGVscFwiICYmXG5cdFx0XHRcdFx0XHRcdFx0b01vZGlmaWVyLnRhcmdldHMgIT09IFwieG1sVHJlZVwiXG5cdFx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIGluIHhtbCB2YWxpZGF0ZSBhZ2FpbnN0IHRoZSBtZXRhUGF0aCBvZiB0aGUgVmFsdWVIZWxwXG5cdFx0XHRcdFx0XHRcdFx0b1RhcmdldERlcGVuZGVudCA9IChvRGVwZW5kZW50IGFzIFZhbHVlSGVscCkuZ2V0Q29udGVudCgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGlmIChvVGFyZ2V0RGVwZW5kZW50ICYmIG9Nb2RpZmllci5nZXRJZChvVGFyZ2V0RGVwZW5kZW50KSA9PT0gc0dlbmVyYXRlZElkKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGlmIChvRGVwZW5kZW50LmlzQTxWYWx1ZUhlbHA+KFwic2FwLmZlLm1hY3Jvcy5WYWx1ZUhlbHBcIikpIHtcblx0XHRcdFx0XHRcdFx0XHRvVGFyZ2V0RGVwZW5kZW50ID0gb0RlcGVuZGVudC5nZXRDb250ZW50KCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0aWYgKG9UYXJnZXREZXBlbmRlbnQ/LmdldElkKCkgPT09IHNHZW5lcmF0ZWRJZCkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH0pO1xuXHR9LFxuXHRpc1ZhbHVlSGVscFJlcXVpcmVkKG1QYXJhbWV0ZXJzOiBhbnksIGJJbkZpbHRlckZpZWxkPzogYm9vbGVhbikge1xuXHRcdGNvbnN0IHNQcm9wZXJ0eU5hbWUgPSBtUGFyYW1ldGVycy5zUHJvcGVydHlOYW1lIHx8IFwiXCIsXG5cdFx0XHRvTWV0YU1vZGVsID0gbVBhcmFtZXRlcnMub01ldGFNb2RlbCxcblx0XHRcdHNQcm9wZXJ0eSA9IGAke21QYXJhbWV0ZXJzLnNCaW5kaW5nUGF0aH0vJHtzUHJvcGVydHlOYW1lfWAsXG5cdFx0XHRvUHJvcGVydHlDb250ZXh0ID0gb01ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChzUHJvcGVydHkpLFxuXHRcdFx0c1ZhbHVlSGVscFByb3BlcnR5ID0gRmllbGRIZWxwZXIudmFsdWVIZWxwUHJvcGVydHkob1Byb3BlcnR5Q29udGV4dCwgYkluRmlsdGVyRmllbGQpO1xuXG5cdFx0cmV0dXJuIHRoaXMuZ2V0Q3VzdG9tRGF0YShtUGFyYW1ldGVycy5vQ29udHJvbCwgXCJkaXNwbGF5TW9kZVByb3BlcnR5QmluZGluZ1wiLCBtUGFyYW1ldGVycy5vTW9kaWZpZXIpXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoYlJlYWRPbmx5OiBhbnkpIHtcblx0XHRcdFx0Ly8gQ2hlY2sgd2hldGhlciB0aGUgY29udHJvbCBpcyByZWFkLW9ubHkuIElmIHllcywgbm8gbmVlZCBvZiBhIHZhbHVlIGhlbHAuXG5cdFx0XHRcdGJSZWFkT25seSA9IHR5cGVvZiBiUmVhZE9ubHkgPT09IFwiYm9vbGVhblwiID8gYlJlYWRPbmx5IDogYlJlYWRPbmx5ID09PSBcInRydWVcIjtcblx0XHRcdFx0aWYgKGJSZWFkT25seSkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBFbHNlLCBjaGVjayB3aGV0aGVyIFZhbHVlIEhlbHAgcmVsZXZhbnQgYW5ub3RhdGlvbiBleGlzdHMgZm9yIHRoZSBwcm9wZXJ0eS5cblx0XHRcdFx0Ly8gVE9ETyB1c2UgUHJvcGVydHlGb3JtYXR0ZXIuaGFzVmFsdWVIZWxwICgpID0+IGlmIGRvaW5nIHNvLCBRVW5pdCB0ZXN0cyBmYWlsIGR1ZSB0byBtb2NrZWQgbW9kZWwgaW1wbGVtZW50YXRpb25cblx0XHRcdFx0cmV0dXJuIFByb21pc2UuYWxsKFtcblx0XHRcdFx0XHRvTWV0YU1vZGVsLnJlcXVlc3RPYmplY3QoYCR7c1ZhbHVlSGVscFByb3BlcnR5fUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzYCksXG5cdFx0XHRcdFx0b01ldGFNb2RlbC5yZXF1ZXN0T2JqZWN0KGAke3NWYWx1ZUhlbHBQcm9wZXJ0eX1AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlZhbHVlTGlzdFJlZmVyZW5jZXNgKSxcblx0XHRcdFx0XHRvTWV0YU1vZGVsLnJlcXVlc3RPYmplY3QoYCR7c1ZhbHVlSGVscFByb3BlcnR5fUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVmFsdWVMaXN0TWFwcGluZ2ApLFxuXHRcdFx0XHRcdG9NZXRhTW9kZWwucmVxdWVzdE9iamVjdChgJHtzVmFsdWVIZWxwUHJvcGVydHl9QGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5WYWx1ZUxpc3RgKVxuXHRcdFx0XHRdKTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoYVJlc3VsdHM6IGFueVtdKSB7XG5cdFx0XHRcdHJldHVybiAhIWFSZXN1bHRzWzBdIHx8ICEhYVJlc3VsdHNbMV0gfHwgISFhUmVzdWx0c1syXSB8fCAhIWFSZXN1bHRzWzNdO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAob0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLndhcm5pbmcoXCJFcnJvciB3aGlsZSByZXRyaWV2aW5nIGN1c3RvbSBkYXRhIC8gdmFsdWUgbGlzdCBhbm5vdGF0aW9uIHZhbHVlc1wiLCBvRXJyb3IpO1xuXHRcdFx0fSk7XG5cdH0sXG5cdGlzTXVsdGlWYWx1ZShvUHJvcGVydHk6IGFueSkge1xuXHRcdGxldCBiSXNNdWx0aVZhbHVlID0gdHJ1ZTtcblx0XHQvL1NpbmdsZVZhbHVlIHwgTXVsdGlWYWx1ZSB8IFNpbmdsZVJhbmdlIHwgTXVsdGlSYW5nZSB8IFNlYXJjaEV4cHJlc3Npb24gfCBNdWx0aVJhbmdlT3JTZWFyY2hFeHByZXNzaW9uXG5cdFx0c3dpdGNoIChvUHJvcGVydHkuZmlsdGVyRXhwcmVzc2lvbikge1xuXHRcdFx0Y2FzZSBcIlNlYXJjaEV4cHJlc3Npb25cIjpcblx0XHRcdGNhc2UgXCJTaW5nbGVSYW5nZVwiOlxuXHRcdFx0Y2FzZSBcIlNpbmdsZVZhbHVlXCI6XG5cdFx0XHRcdGJJc011bHRpVmFsdWUgPSBmYWxzZTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdFx0aWYgKG9Qcm9wZXJ0eS50eXBlICYmIG9Qcm9wZXJ0eS50eXBlLmluZGV4T2YoXCJCb29sZWFuXCIpID4gMCkge1xuXHRcdFx0YklzTXVsdGlWYWx1ZSA9IGZhbHNlO1xuXHRcdH1cblx0XHRyZXR1cm4gYklzTXVsdGlWYWx1ZTtcblx0fSxcblx0LyoqXG5cdCAqIFJldHJpZXZlcyBhIGN1c3RvbSBkYXRhIG5vZGUgZnJvbSB0aGUgY29udHJvbC5cblx0ICogQHBhcmFtIGNvbnRyb2wgVGhlIGNvbnRyb2wgZnJvbSB3aGljaCB0byByZXRyaWV2ZSB0aGUgY3VzdG9tIGRhdGEgbm9kZVxuXHQgKiBAcGFyYW0gcHJvcGVydHlLZXkgVGhlIGtleSBvZiB0aGUgY3VzdG9tIGRhdGEgbm9kZSB0byByZXRyaWV2ZVxuXHQgKiBAcGFyYW0gbW9kaWZpZXIgVGhlIG1vZGlmaWVyIGZvciB0aGUgY29udHJvbFxuXHQgKiBAcmV0dXJucyAtIFRoZSBjdXN0b20gZGF0YSBub2RlXG5cdCAqL1xuXHRhc3luYyByZXRyaWV2ZUN1c3RvbURhdGFOb2RlKGNvbnRyb2w6IFVJNUVsZW1lbnQsIHByb3BlcnR5S2V5OiBzdHJpbmcsIG1vZGlmaWVyOiBCYXNlVHJlZU1vZGlmaWVyKTogUHJvbWlzZTxFbGVtZW50W10+IHtcblx0XHRjb25zdCBjdXN0b21EYXRhOiBFbGVtZW50W10gPSBbXTtcblx0XHRjb25zdCBhUmV0cmlldmVkQ3VzdG9tRGF0YSA9IGF3YWl0IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oXG5cdFx0XHRtb2RpZmllci5nZXRBZ2dyZWdhdGlvbi5iaW5kKG1vZGlmaWVyLCBjb250cm9sLCBcImN1c3RvbURhdGFcIikgYXMgKCkgPT4gUHJvbWlzZTxFbGVtZW50W10+XG5cdFx0KTtcblxuXHRcdC8vIFByb2Nlc3MgZWFjaCByZXRyaWV2ZWQgY3VzdG9tIGRhdGEgZWxlbWVudFxuXHRcdGZvciAoY29uc3Qgb0N1c3RvbURhdGEgb2YgYVJldHJpZXZlZEN1c3RvbURhdGEpIHtcblx0XHRcdGNvbnN0IGtleSA9IGF3YWl0IG1vZGlmaWVyLmdldFByb3BlcnR5KG9DdXN0b21EYXRhLCBcImtleVwiKTtcblx0XHRcdGlmIChrZXkgPT09IHByb3BlcnR5S2V5KSB7XG5cdFx0XHRcdGN1c3RvbURhdGEucHVzaChvQ3VzdG9tRGF0YSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGN1c3RvbURhdGE7XG5cdH1cbn07XG5leHBvcnQgZGVmYXVsdCBEZWxlZ2F0ZVV0aWw7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztFQTBCQSxNQUFNQSxZQUFZLEdBQUcsa0VBQWtFO0VBd0R2RixTQUFTQyxjQUFjQSxDQUFBLEVBQStEO0lBQ3JGLElBQUksQ0FBQ0MsT0FBTyxDQUFDQyx3QkFBd0IsQ0FBQ0YsY0FBYyxFQUFFLElBQUksQ0FBQztJQUMzRCxNQUFNRyxVQUFVLEdBQUcsSUFBSSxDQUFDQyxTQUFTO01BQ2hDQyxNQUFNLEdBQUcsSUFBSSxDQUFDSixPQUFPLENBQUNLLFFBQVEsQ0FBQ0gsVUFBVSxDQUFDO0lBRTNDLElBQUlFLE1BQU0sRUFBRTtNQUNYLElBQUksQ0FBQ0UsT0FBTyxDQUFDRixNQUFNLENBQUM7SUFDckIsQ0FBQyxNQUFNO01BQ04sSUFBSSxDQUFDSixPQUFPLENBQUNPLHdCQUF3QixDQUFDUixjQUFjLEVBQUUsSUFBSSxDQUFDO0lBQzVEO0VBQ0Q7RUFRQSxlQUFlUyx5QkFBeUJBLENBQUNSLE9BQW1CLEVBQUVTLFFBQWdCLEVBQUVDLFFBQTBCLEVBQStCO0lBQ3hJLE1BQU1DLFVBQVUsR0FBRyxNQUFNQyxZQUFZLENBQUNDLHNCQUFzQixDQUFDYixPQUFPLEVBQUVTLFFBQVEsRUFBRUMsUUFBUSxDQUFDO0lBQ3pGLElBQUlDLFVBQVUsQ0FBQ0csTUFBTSxLQUFLLENBQUMsRUFBRTtNQUM1QixPQUFPSixRQUFRLENBQUNLLFdBQVcsQ0FBQ0osVUFBVSxDQUFDLENBQUMsQ0FB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
|
|
@@ -230,9 +230,16 @@ const DelegateUtil = {
|
|
|
230
230
|
let oTargetDependent: UI5Element | undefined = oDependent;
|
|
231
231
|
if (oModifier) {
|
|
232
232
|
if (
|
|
233
|
+
oModifier.getControlType(oDependent) === "sap.fe.macros.ValueHelp" &&
|
|
234
|
+
(await oModifier.getProperty(oDependent, "metaPath")) === mParameters.metaPath
|
|
235
|
+
) {
|
|
236
|
+
// in xml validate against the metaPath of the ValueHelp
|
|
237
|
+
return true;
|
|
238
|
+
} else if (
|
|
233
239
|
oModifier.getControlType(oDependent) === "sap.fe.macros.ValueHelp" &&
|
|
234
240
|
oModifier.targets !== "xmlTree"
|
|
235
241
|
) {
|
|
242
|
+
// in xml validate against the metaPath of the ValueHelp
|
|
236
243
|
oTargetDependent = (oDependent as ValueHelp).getContent();
|
|
237
244
|
}
|
|
238
245
|
if (oTargetDependent && oModifier.getId(oTargetDependent) === sGeneratedId) {
|
|
@@ -324,11 +324,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/controls/easy
|
|
|
324
324
|
await filterBarAPI._clearFilterValuesWithOptions(filterBar);
|
|
325
325
|
await filterBarAPI.triggerSearch();
|
|
326
326
|
};
|
|
327
|
-
_proto.onExecuteSearch = function onExecuteSearch() {
|
|
328
|
-
const filterBar = UI5Element.getElementById(this.filterBar);
|
|
329
|
-
const filterBarAPI = filterBar.getParent();
|
|
330
|
-
filterBarAPI.triggerSearch();
|
|
331
|
-
};
|
|
332
327
|
_proto.onQueryChanged = function onQueryChanged() {
|
|
333
328
|
const filterBar = UI5Element.getElementById(this.filterBar);
|
|
334
329
|
filterBar.fireFiltersChanged({
|
|
@@ -364,8 +359,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/controls/easy
|
|
|
364
359
|
tokensChanged: this.onTokensChanged.bind(this),
|
|
365
360
|
beforeQueryProcessing: this.onBeforeQueryProcessing.bind(this),
|
|
366
361
|
afterQueryProcessing: this.onAfterQueryProcessing.bind(this),
|
|
367
|
-
clearFilters: this.onClearFilters.bind(this)
|
|
368
|
-
executeSearch: this.onExecuteSearch.bind(this)
|
|
362
|
+
clearFilters: this.onClearFilters.bind(this)
|
|
369
363
|
});
|
|
370
364
|
};
|
|
371
365
|
return EasyFilterBar;
|
|
@@ -403,4 +397,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/controls/easy
|
|
|
403
397
|
_exports = EasyFilterBar;
|
|
404
398
|
return _exports;
|
|
405
399
|
}, false);
|
|
406
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFYXN5RmlsdGVyQmFyIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJpbXBsZW1lbnRJbnRlcmZhY2UiLCJfZGVjMyIsImFzc29jaWF0aW9uIiwidHlwZSIsIl9kZWM0IiwiX2RlYzUiLCJwcm9wZXJ0eSIsIl9kZWM2IiwiX2RlYzciLCJhZ2dyZWdhdGlvbiIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja0Jhc2UiLCJfaW5oZXJpdHNMb29zZSIsInByb3BlcnRpZXMiLCJvdGhlcnMiLCJfdGhpcyRnZXRBcHBDb21wb25lbnQiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIl9kZXNjcmlwdG9yMiIsIl9kZXNjcmlwdG9yMyIsIl9kZXNjcmlwdG9yNCIsIl9kZXNjcmlwdG9yNSIsIl9kZXNjcmlwdG9yNiIsImdldEFwcENvbXBvbmVudCIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwicHJlcGFyZUZlYXR1cmUiLCJ0aGVuIiwiX3RoaXMkY29udGVudCIsImVhc3lGaWx0ZXJQYXRoIiwiY29udGVudCIsInNldEVhc3lGaWx0ZXJMaWIiLCJjYXRjaCIsImVycm9yIiwiTG9nIiwiZGVidWciLCJ1bmRlZmluZWQiLCJfZXhwb3J0cyIsIl9wcm90byIsInByb3RvdHlwZSIsImFwcGx5TGVnYWN5U3RhdGUiLCJnZXRDb250cmlsU3RhdGUiLCJvTmF2UGFyYW1ldGVycyIsIl9zaG91bGRBcHBseURpZmZTdGF0ZSIsIl9za2lwTWVyZ2UiLCJzZWxlY3Rpb25WYXJpYW50IiwiX3RoaXMkY29udGVudDIiLCJzZWxlY3RPcHRpb25zTmFtZXMiLCJnZXRTZWxlY3RPcHRpb25zUHJvcGVydHlOYW1lcyIsImZpbHRlckJhck1ldGFkYXRhIiwiZm9yRWFjaCIsImZpZWxkIiwiaW5jbHVkZXMiLCJuYW1lIiwiX2dldFNlbGVjdE9wdGlvbiIsImRlZmF1bHRWYWx1ZSIsImdldFNlbGVjdE9wdGlvbiIsIm1hcCIsIm9wdGlvbiIsIlNpZ24iLCJPcHRpb24iLCJvcGVyYXRvciIsIkZpbHRlck9wZXJhdG9yIiwiQlQiLCJzZWxlY3RlZFZhbHVlcyIsInZhbHVlMSIsIkxvdyIsInZhbHVlMiIsIkhpZ2giLCJORSIsInJlc2V0U3RhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsImFwcGx5U3RhdGUiLCJfc3RhdGUiLCJfb05hdlBhcmFtZXRlcnMiLCJyZXRyaWV2ZVN0YXRlIiwiZ2V0QXBwbGljYXRpb25JZCIsIl90aGlzJGdldEFwcENvbXBvbmVudDIiLCJnZXRNYW5pZmVzdEVudHJ5IiwiaWQiLCJvbk1ldGFkYXRhQXZhaWxhYmxlIiwiX3RoaXMkZ2V0QXBwQ29tcG9uZW50MyIsIl90aGlzJGdldEFwcENvbXBvbmVudDQiLCJfdGhpcyRnZXRBcHBDb21wb25lbnQ1IiwiX3RoaXMkZ2V0QXBwQ29tcG9uZW50NiIsIl9mZXRjaGVkQ29kZUxpc3QiLCJwcmVwYXJlRmlsdGVyQmFyTWV0YWRhdGEiLCJyZWNvbW1lbmRlZFF1ZXJpZXMiLCJtYWNyb3MiLCJlYXN5RmlsdGVyIiwiY3JlYXRlQ29udGVudCIsIl9vd25lciRwcmVwcm9jZXNzb3JDbyIsIm93bmVyIiwiX2dldE93bmVyIiwiZGVmaW5pdGlvbkZvclBhZ2UiLCJwcmVwcm9jZXNzb3JDb250ZXh0IiwiZ2V0RGVmaW5pdGlvbkZvclBhZ2UiLCJmaWx0ZXJCYXJEZWYiLCJfb3duZXIkcHJlcHJvY2Vzc29yQ28yIiwiX293bmVyJGdldEFwcENvbXBvbmVuIiwiZ2V0RmlsdGVyQmFyRGVmaW5pdGlvbiIsIm1ldGFNb2RlbCIsIm1vZGVscyIsImdldFR5cGUiLCJlZG1UeXBlIiwiY29kZUxpc3QiLCJzdGFydHVwUGFyYW1ldGVycyIsImdldENvbXBvbmVudERhdGEiLCJmaWx0ZXJGaWVsZHMiLCJnZXRGaWx0ZXJGaWVsZHMiLCJyZXN1bHQiLCJfcHJvcGVydHlPYmplY3QkYW5ub3QiLCJfcHJvcGVydHlPYmplY3QkYW5ub3QyIiwiX2ZpbHRlckZpZWxkcyRmaW5kIiwicHJvcGVydHlPYmplY3QiLCJnZXRUYXJnZXQiLCJoYXNDb2RlTGlzdCIsImhhc1ZhbHVlSGVscFdpdGhGaXhlZFZhbHVlcyIsImdldENvZGVMaXN0Rm9yUHJvcGVydHkiLCJhbm5vdGF0aW9uUGF0aCIsInVuaXRBbm5vdGF0aW9uIiwiYW5ub3RhdGlvbnMiLCJNZWFzdXJlcyIsIklTT0N1cnJlbmN5IiwiVW5pdCIsInVuaXRQcm9wZXJ0eSIsImlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uIiwiJHRhcmdldCIsInVuaXQiLCJmaW5kIiwiZiIsImhhc093blByb3BlcnR5IiwiRVEiLCJpc1BhcmFtZXRlciIsInN1YnN0cmluZyIsImxhYmVsIiwiZGF0YVR5cGUiLCJyZXF1aXJlZCIsImZpbHRlcmFibGUiLCJzb3J0YWJsZSIsIk1vZGVsSGVscGVyIiwiaXNNZXRhUGF0aERyYWZ0U3VwcG9ydGVkIiwiZ2V0TWV0YVBhdGgiLCJwcm9wcyIsIkpTT05Nb2RlbCIsImlzRHJhZnRDb2xsYWJvcmF0aXZlIiwiaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsImVkaXRpbmdTdGF0dXNDb2RlTGlzdCIsIkRyYWZ0RWRpdFN0YXRlIiwiZ2V0RWRpdFN0YXRlc0NvbnRleHQiLCJnZXRPYmplY3QiLCJzdGF0ZSIsInZhbHVlIiwiZGVzY3JpcHRpb24iLCJkaXNwbGF5IiwicHVzaCIsImdldFRyYW5zbGF0ZWRUZXh0Iiwia2V5IiwicHJvcGVydHlQYXRoIiwib2RhdGFNb2RlbCIsImdldE1vZGVsIiwidmFsdWVMaXN0IiwiZ2V0TWV0YU1vZGVsIiwicmVxdWVzdFZhbHVlTGlzdEluZm8iLCJkZWZhdWx0VmFsdWVMaXN0Iiwic2VsZWN0IiwiUGFyYW1ldGVycyIsInBhcmFtIiwiVmFsdWVMaXN0UHJvcGVydHkiLCJqb2luIiwibGlzdEJpbmRpbmciLCIkbW9kZWwiLCJiaW5kTGlzdCIsIkNvbGxlY3Rpb25QYXRoIiwiJHNlbGVjdCIsImRhdGEiLCJyZXF1ZXN0Q29udGV4dHMiLCJ2YWx1ZVByb3BlcnR5IiwiZGVzY3JpcHRpb25Qcm9wZXJ0eSIsInBhcmFtZXRlciIsIl9wYXJhbWV0ZXIkTG9jYWxEYXRhUCIsIkxvY2FsRGF0YVByb3BlcnR5IiwiJFByb3BlcnR5UGF0aCIsImZpbHRlckdyb3VwVmFsdWVzIiwiZGF0dW0iLCJkYXRhb2JqIiwiY29kZUxpc3RQcm9wZXJ0eSIsIm9uVG9rZW5zQ2hhbmdlZCIsImUiLCJmaWx0ZXJCYXIiLCJVSTVFbGVtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJmaWx0ZXJCYXJBUEkiLCJnZXRQYXJlbnQiLCJ0b2tlbnMiLCJnZXRQYXJhbWV0ZXIiLCJjbGVhckVkaXRGaWx0ZXIiLCJzb21lIiwidG9rZW5EZWZpbml0aW9uIiwiX2NsZWFyRmlsdGVyVmFsdWVzV2l0aE9wdGlvbnMiLCJmb3JtYXRlRGF0YVR5cGVzIiwidG9rZW4iLCJ0b2tlbktleVNwZWNpZmljYXRpb24iLCJrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzIiwiRmlsdGVyVXRpbHMiLCJhZGRGaWx0ZXJWYWx1ZXMiLCJ0cmlnZ2VyU2VhcmNoIiwiZGF0ZVR5cGUiLCJEYXRlMSIsImRhdGVUaW1lT2Zmc2V0VHlwZSIsIkRhdGVUaW1lT2Zmc2V0IiwiVjQiLCJ0aW1lT2ZEYXlUeXBlIiwiVGltZU9mRGF5IiwiX3RoaXMkZmlsdGVyQmFyTWV0YWRhIiwia2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlIiwicmVxdWlyZWRDb252ZXJ0ZXIiLCJpZHgiLCJwYXJzZVZhbHVlIiwic2hvd1ZhbHVlSGVscEZvcktleSIsIl9jdXJyZW50VmFsdWUiLCJmbkNhbGxiYWNrIiwic2hvd0ZpbHRlckZpZWxkIiwib3BlblZhbHVlSGVscEZvckZpbHRlckZpZWxkIiwib25CZWZvcmVRdWVyeVByb2Nlc3NpbmciLCJ1aU1vZGVsIiwiQnVzeUxvY2tlciIsImxvY2siLCJvbkFmdGVyUXVlcnlQcm9jZXNzaW5nIiwidW5sb2NrIiwib25DbGVhckZpbHRlcnMiLCJvbkV4ZWN1dGVTZWFyY2giLCJvblF1ZXJ5Q2hhbmdlZCIsImZpcmVGaWx0ZXJzQ2hhbmdlZCIsImNvbmRpdGlvbnNCYXNlZCIsIl9qc3giLCJFYXN5RmlsdGVyQmFyQ29udGFpbmVyIiwiY29udGV4dFBhdGgiLCJnZXRPd25lckNvbnRleHRQYXRoIiwiYXBwSWQiLCJlYXN5RmlsdGVyTGliIiwic2hvd1ZhbHVlSGVscCIsInNlbGVjdGVkQ29uZGl0aW9ucyIsInRva2VuU2VsZWN0ZWRWYWx1ZXMiLCJjb25kaXRpb24iLCJOQiIsInZhbHVlcyIsInJlY29tbWVuZGVkVmFsdWVzIiwicXVlcnlDaGFuZ2VkIiwiYmluZCIsInRva2Vuc0NoYW5nZWQiLCJiZWZvcmVRdWVyeVByb2Nlc3NpbmciLCJhZnRlclF1ZXJ5UHJvY2Vzc2luZyIsImNsZWFyRmlsdGVycyIsImV4ZWN1dGVTZWFyY2giLCJCdWlsZGluZ0Jsb2NrQmFzZSIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRWFzeUZpbHRlckJhci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7IEVuaGFuY2VXaXRoVUk1IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgYWdncmVnYXRpb24sIGFzc29jaWF0aW9uLCBkZWZpbmVVSTVDbGFzcywgaW1wbGVtZW50SW50ZXJmYWNlLCBwcm9wZXJ0eSwgdHlwZSBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7XG5cdEJldHdlZW5TZWxlY3RlZFZhbHVlcyxcblx0RWFzeUZpbHRlclByb3BlcnR5TWV0YWRhdGEsXG5cdFRva2VuRGVmaW5pdGlvbixcblx0VG9rZW5TZWxlY3RlZFZhbHVlc0RlZmluaXRpb24sXG5cdFRva2VuVHlwZVxufSBmcm9tIFwic2FwL2ZlL2NvbnRyb2xzL2Vhc3lGaWx0ZXIvRWFzeUZpbHRlckJhckNvbnRhaW5lclwiO1xuaW1wb3J0IEVhc3lGaWx0ZXJCYXJDb250YWluZXIgZnJvbSBcInNhcC9mZS9jb250cm9scy9lYXN5RmlsdGVyL0Vhc3lGaWx0ZXJCYXJDb250YWluZXJcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrQmFzZSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja0Jhc2VcIjtcbmltcG9ydCBCdXN5TG9ja2VyIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9CdXN5TG9ja2VyXCI7XG5pbXBvcnQgdHlwZSB7IENvbnRyb2xTdGF0ZSwgTmF2aWdhdGlvblBhcmFtZXRlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9WaWV3U3RhdGVcIjtcbmltcG9ydCB0eXBlIElWaWV3U3RhdGVDb250cmlidXRvciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvdmlld1N0YXRlL0lWaWV3U3RhdGVDb250cmlidXRvclwiO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXJGaWVsZCB9IGZyb20gXCJzYXAvZmUvY29yZS9kZWZpbml0aW9uL0ZFRGVmaW5pdGlvblwiO1xuaW1wb3J0IHR5cGUgTWV0YVBhdGggZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWV0YVBhdGhcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9UeXBlR3VhcmRzXCI7XG5pbXBvcnQgeyBoYXNWYWx1ZUhlbHBXaXRoRml4ZWRWYWx1ZXMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IERyYWZ0RWRpdFN0YXRlIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9EcmFmdEVkaXRTdGF0ZVwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9GaWx0ZXJCYXJBUElcIjtcbmltcG9ydCB0eXBlIFVJNUV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgeyAkQ29udHJvbFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBVSTVFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJCYXIgZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgdHlwZSB7IENvbmRpdGlvbk9iamVjdCB9IGZyb20gXCJzYXAvdWkvbWRjL2NvbmRpdGlvbi9Db25kaXRpb25cIjtcbmltcG9ydCBGaWx0ZXJPcGVyYXRvciBmcm9tIFwic2FwL3VpL21vZGVsL0ZpbHRlck9wZXJhdG9yXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBEYXRlMSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3R5cGUvRGF0ZVwiO1xuaW1wb3J0IERhdGVUaW1lT2Zmc2V0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdHlwZS9EYXRlVGltZU9mZnNldFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFUeXBlIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdHlwZS9PRGF0YVR5cGVcIjtcbmltcG9ydCBUaW1lT2ZEYXkgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS90eXBlL1RpbWVPZkRheVwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcblxudHlwZSBFYXN5RmlsdGVyQmFyU3RhdGUgPSB7fTtcbi8qKlxuICogRGVsaXZlcnkgZm9yIGJldGEgcmVsZWFzZSBmb3IgdGhlIGVhc3kgZmlsdGVyIGZlYXR1cmUuXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuRWFzeUZpbHRlckJhclwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRWFzeUZpbHRlckJhciBleHRlbmRzIEJ1aWxkaW5nQmxvY2tCYXNlIGltcGxlbWVudHMgSVZpZXdTdGF0ZUNvbnRyaWJ1dG9yPEVhc3lGaWx0ZXJCYXJTdGF0ZT4ge1xuXHRAaW1wbGVtZW50SW50ZXJmYWNlKFwic2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMudmlld1N0YXRlLklWaWV3U3RhdGVDb250cmlidXRvclwiKVxuXHRfX2ltcGxlbWVudHNfX3NhcF9mZV9jb3JlX2NvbnRyb2xsZXJleHRlbnNpb25zX3ZpZXdTdGF0ZV9JVmlld1N0YXRlQ29udHJpYnV0b3IhOiBib29sZWFuO1xuXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLmZlLm1hY3Jvcy5maWx0ZXJCYXIuRmlsdGVyQmFyQVBJXCIgfSlcblx0ZmlsdGVyQmFyITogc3RyaW5nO1xuXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLmZlLm1hY3Jvcy5jb250ZW50U3dpdGNoZXIuQ29udGVudFN3aXRjaGVyXCIgfSlcblx0Y29udGVudFN3aXRjaGVyITogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0Y29udGVudFN3aXRjaGVyS2V5Pzogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0Y29udGV4dFBhdGg/OiBzdHJpbmc7XG5cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAuZmUuY29udHJvbHMuZWFzeUZpbHRlci5FYXN5RmlsdGVyQmFyQ29udGFpbmVyXCIgfSlcblx0Y29udGVudD86IEVuaGFuY2VXaXRoVUk1PEVhc3lGaWx0ZXJCYXJDb250YWluZXI+O1xuXG5cdF9mZXRjaGVkQ29kZUxpc3QhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuXHRwcml2YXRlIGZpbHRlckJhck1ldGFkYXRhITogRWFzeUZpbHRlclByb3BlcnR5TWV0YWRhdGFbXTtcblxuXHRwcml2YXRlIGVhc3lGaWx0ZXJQYXRoPzogc3RyaW5nO1xuXG5cdHByaXZhdGUgcmVjb21tZW5kZWRRdWVyaWVzPzogc3RyaW5nW107XG5cblx0Y29uc3RydWN0b3IocHJvcGVydGllczogJENvbnRyb2xTZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxFYXN5RmlsdGVyQmFyPiwgb3RoZXJzPzogJENvbnRyb2xTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BlcnRpZXMsIG90aGVycyk7XG5cdFx0dGhpcy5nZXRBcHBDb21wb25lbnQoKVxuXHRcdFx0Py5nZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcygpXG5cdFx0XHQucHJlcGFyZUZlYXR1cmUoXCJNYWdpY0ZpbHRlcmluZ1wiKVxuXHRcdFx0LnRoZW4oKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmVhc3lGaWx0ZXJQYXRoID0gXCJ1eC9lbmcvZmlvcmlhaS9yZXVzZS9lYXN5ZmlsdGVyL0Vhc3lGaWx0ZXJcIjtcblx0XHRcdFx0dGhpcy5jb250ZW50Py5zZXRFYXN5RmlsdGVyTGliKHRoaXMuZWFzeUZpbHRlclBhdGgpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKChlcnJvcikgPT4ge1xuXHRcdFx0XHRMb2cuZGVidWcoXCJFcnJvciB3aGlsZSBsb2FkaW5nIEVhc3lGaWx0ZXJcIiwgZXJyb3IpO1xuXHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0fSk7XG5cdH1cblxuXHRhc3luYyBhcHBseUxlZ2FjeVN0YXRlKFxuXHRcdGdldENvbnRyaWxTdGF0ZT86IChjb250cm9sOiBNYW5hZ2VkT2JqZWN0KSA9PiBDb250cm9sU3RhdGUsXG5cdFx0b05hdlBhcmFtZXRlcnM/OiBOYXZpZ2F0aW9uUGFyYW1ldGVyLFxuXHRcdF9zaG91bGRBcHBseURpZmZTdGF0ZT86IGJvb2xlYW4sXG5cdFx0X3NraXBNZXJnZT86IGJvb2xlYW5cblx0KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKG9OYXZQYXJhbWV0ZXJzPy5zZWxlY3Rpb25WYXJpYW50KSB7XG5cdFx0XHRjb25zdCBzZWxlY3RPcHRpb25zTmFtZXMgPSBvTmF2UGFyYW1ldGVycy5zZWxlY3Rpb25WYXJpYW50LmdldFNlbGVjdE9wdGlvbnNQcm9wZXJ0eU5hbWVzKCk7XG5cdFx0XHR0aGlzLmZpbHRlckJhck1ldGFkYXRhLmZvckVhY2goKGZpZWxkKSA9PiB7XG5cdFx0XHRcdGlmIChzZWxlY3RPcHRpb25zTmFtZXMuaW5jbHVkZXMoZmllbGQubmFtZSkpIHtcblx0XHRcdFx0XHRmaWVsZC5kZWZhdWx0VmFsdWUgPSBvTmF2UGFyYW1ldGVycy5zZWxlY3Rpb25WYXJpYW50IS5nZXRTZWxlY3RPcHRpb24oZmllbGQubmFtZSk/Lm1hcCgob3B0aW9uKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAob3B0aW9uLlNpZ24gPT09IFwiSVwiKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChvcHRpb24uT3B0aW9uID09PSBcIkJUXCIpIHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0b3BlcmF0b3I6IEZpbHRlck9wZXJhdG9yLkJULFxuXHRcdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRWYWx1ZXM6IFt7IHZhbHVlMTogb3B0aW9uLkxvdywgdmFsdWUyOiBvcHRpb24uSGlnaCB9XVxuXHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0XHRcdG9wZXJhdG9yOiBvcHRpb24uT3B0aW9uLFxuXHRcdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRWYWx1ZXM6IFtvcHRpb24uTG93XVxuXHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0b3BlcmF0b3I6IEZpbHRlck9wZXJhdG9yLk5FLFxuXHRcdFx0XHRcdFx0XHRcdHNlbGVjdGVkVmFsdWVzOiBbb3B0aW9uLkxvd11cblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KSBhcyBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMuY29udGVudD8ucmVzZXRTdGF0ZSgpO1xuXHRcdH1cblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG5cdH1cblxuXHRhcHBseVN0YXRlKF9zdGF0ZTogRWFzeUZpbHRlckJhclN0YXRlLCBfb05hdlBhcmFtZXRlcnM/OiBOYXZpZ2F0aW9uUGFyYW1ldGVyKTogUHJvbWlzZTx2b2lkPiB8IHZvaWQge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRyZXRyaWV2ZVN0YXRlKCk6IEVhc3lGaWx0ZXJCYXJTdGF0ZSB8IG51bGwge1xuXHRcdHJldHVybiB7fTtcblx0fVxuXG5cdGdldEFwcGxpY2F0aW9uSWQoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRBcHBDb21wb25lbnQoKT8uZ2V0TWFuaWZlc3RFbnRyeShcInNhcC5hcHBcIikuaWQgPz8gXCI8dW5rbm93bklEPlwiO1xuXHR9XG5cblx0b25NZXRhZGF0YUF2YWlsYWJsZSgpOiB2b2lkIHtcblx0XHR0aGlzLl9mZXRjaGVkQ29kZUxpc3QgPz89IHt9O1xuXHRcdHRoaXMuZmlsdGVyQmFyTWV0YWRhdGEgPSB0aGlzLnByZXBhcmVGaWx0ZXJCYXJNZXRhZGF0YSgpO1xuXHRcdHRoaXMucmVjb21tZW5kZWRRdWVyaWVzID0gdGhpcy5nZXRBcHBDb21wb25lbnQoKT8uZ2V0TWFuaWZlc3RFbnRyeShcInNhcC5mZVwiKT8ubWFjcm9zPy5lYXN5RmlsdGVyPy5yZWNvbW1lbmRlZFF1ZXJpZXMgPz8gW107XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCkgYXMgRW5oYW5jZVdpdGhVSTU8RWFzeUZpbHRlckJhckNvbnRhaW5lcj47XG5cdFx0dGhpcy5jb250ZW50LmZpbHRlckJhck1ldGFkYXRhID0gdGhpcy5maWx0ZXJCYXJNZXRhZGF0YTtcblx0fVxuXG5cdHByZXBhcmVGaWx0ZXJCYXJNZXRhZGF0YSgpOiBFYXN5RmlsdGVyUHJvcGVydHlNZXRhZGF0YVtdIHtcblx0XHRjb25zdCBvd25lciA9IHRoaXMuX2dldE93bmVyKCkhO1xuXHRcdGNvbnN0IGRlZmluaXRpb25Gb3JQYWdlID0gb3duZXIucHJlcHJvY2Vzc29yQ29udGV4dD8uZ2V0RGVmaW5pdGlvbkZvclBhZ2UoKTtcblx0XHRsZXQgZmlsdGVyQmFyRGVmO1xuXHRcdGlmIChkZWZpbml0aW9uRm9yUGFnZSkge1xuXHRcdFx0ZmlsdGVyQmFyRGVmID0gZGVmaW5pdGlvbkZvclBhZ2UuZ2V0RmlsdGVyQmFyRGVmaW5pdGlvbih7fSk7XG5cblx0XHRcdGNvbnN0IG1ldGFNb2RlbCA9IG93bmVyLnByZXByb2Nlc3NvckNvbnRleHQ/Lm1vZGVscy5tZXRhTW9kZWwgYXMgT0RhdGFNZXRhTW9kZWw7XG5cblx0XHRcdGNvbnN0IGdldFR5cGUgPSAoZWRtVHlwZTogc3RyaW5nLCBjb2RlTGlzdDogdW5rbm93bik6IFRva2VuVHlwZSA9PiB7XG5cdFx0XHRcdGlmIChjb2RlTGlzdCkge1xuXHRcdFx0XHRcdHJldHVybiBcIk1lbnVXaXRoQ2hlY2tCb3hcIjtcblx0XHRcdFx0fVxuXHRcdFx0XHRzd2l0Y2ggKGVkbVR5cGUpIHtcblx0XHRcdFx0XHRjYXNlIFwiRWRtLkRhdGVcIjpcblx0XHRcdFx0XHRcdHJldHVybiBcIkNhbGVuZGFyXCI7XG5cdFx0XHRcdFx0Y2FzZSBcIkVkbS5UaW1lT2ZEYXlcIjpcblx0XHRcdFx0XHRcdHJldHVybiBcIlRpbWVcIjtcblx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0cmV0dXJuIFwiVmFsdWVIZWxwXCI7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRjb25zdCBzdGFydHVwUGFyYW1ldGVycyA9IG93bmVyLmdldEFwcENvbXBvbmVudCgpLmdldENvbXBvbmVudERhdGEoKT8uc3RhcnR1cFBhcmFtZXRlcnMgPz8ge307XG5cblx0XHRcdGNvbnN0IGZpbHRlckZpZWxkcyA9IGZpbHRlckJhckRlZi5nZXRGaWx0ZXJGaWVsZHMoKTtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IGZpbHRlckZpZWxkcy5tYXAoKGZpZWxkOiBGaWx0ZXJGaWVsZCk6IEVhc3lGaWx0ZXJQcm9wZXJ0eU1ldGFkYXRhID0+IHtcblx0XHRcdFx0Ly8gRXhjbHVkZSBoaWRkZW4gZmlsdGVyIGZpZWxkcy4gSXQgaXMgbm90IHBvc3NpYmxlIHRvIHNldCBhIHZhbHVlIGZvciBoaWRkZW4gZmlsdGVycywgYW5kIHVzZXJzIHdvdWxkIG5vdCB1bmRlcnN0YW5kIGFueXdheSBhcyB0aGV5IGNhbm5vdCBzZWUgdGhlc2UgdmFsdWVzLlxuXHRcdFx0XHRjb25zdCBwcm9wZXJ0eU9iamVjdCA9IGZpZWxkLmdldFRhcmdldCgpO1xuXHRcdFx0XHRsZXQgY29kZUxpc3Q7XG5cdFx0XHRcdGNvbnN0IGhhc0NvZGVMaXN0ID0gaGFzVmFsdWVIZWxwV2l0aEZpeGVkVmFsdWVzKHByb3BlcnR5T2JqZWN0KTtcblx0XHRcdFx0aWYgKGhhc0NvZGVMaXN0KSB7XG5cdFx0XHRcdFx0Y29kZUxpc3QgPSB0aGlzLl9mZXRjaGVkQ29kZUxpc3RbZmllbGQubmFtZV07XG5cdFx0XHRcdFx0aWYgKCFjb2RlTGlzdCkge1xuXHRcdFx0XHRcdFx0Y29kZUxpc3QgPSBhc3luYyAoKTogUHJvbWlzZTx1bmtub3duPiA9PiB0aGlzLmdldENvZGVMaXN0Rm9yUHJvcGVydHkoZmllbGQubmFtZSwgZmllbGQuYW5ub3RhdGlvblBhdGghKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBDaGVjayBpZiB0aGUgZmlsdGVyIGZpZWxkJ3MgdGFyZ2V0IHByb3BlcnR5IGhhcyBhIGN1cnJlbmN5IG9yIGEgdW5pdC4gSWYgc28sIGxvb2sgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGZpbHRlciBmaWVsZCAodGhlXG5cdFx0XHRcdC8vIGFubm90YXRpb24gaGFzIHRvIGJlIGEgcGF0aCBmb3IgdGhhdCkgYW5kIHNldCB0aGUgJ3VuaXQnIHByb3BlcnR5LlxuXHRcdFx0XHRjb25zdCB1bml0QW5ub3RhdGlvbiA9IHByb3BlcnR5T2JqZWN0LmFubm90YXRpb25zLk1lYXN1cmVzPy5JU09DdXJyZW5jeSA/PyBwcm9wZXJ0eU9iamVjdC5hbm5vdGF0aW9ucy5NZWFzdXJlcz8uVW5pdDtcblx0XHRcdFx0Y29uc3QgdW5pdFByb3BlcnR5ID0gaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24odW5pdEFubm90YXRpb24pID8gdW5pdEFubm90YXRpb24uJHRhcmdldCA6IHVuZGVmaW5lZDtcblx0XHRcdFx0Y29uc3QgdW5pdCA9IHVuaXRQcm9wZXJ0eSA/IGZpbHRlckZpZWxkcy5maW5kKChmKSA9PiBmLmdldFRhcmdldCgpID09PSB1bml0UHJvcGVydHkpPy5uYW1lIDogdW5kZWZpbmVkO1xuXHRcdFx0XHRsZXQgZGVmYXVsdFZhbHVlO1xuXHRcdFx0XHRpZiAoc3RhcnR1cFBhcmFtZXRlcnMuaGFzT3duUHJvcGVydHkoZmllbGQubmFtZSkpIHtcblx0XHRcdFx0XHRkZWZhdWx0VmFsdWUgPSBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvci5FUSxcblx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRWYWx1ZXM6IHN0YXJ0dXBQYXJhbWV0ZXJzW2ZpZWxkLm5hbWVdXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XTtcblx0XHRcdFx0fSBlbHNlIGlmIChmaWVsZC5pc1BhcmFtZXRlciAmJiBzdGFydHVwUGFyYW1ldGVycy5oYXNPd25Qcm9wZXJ0eShmaWVsZC5uYW1lLnN1YnN0cmluZygyKSkpIHtcblx0XHRcdFx0XHRkZWZhdWx0VmFsdWUgPSBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvci5FUSxcblx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRWYWx1ZXM6IHN0YXJ0dXBQYXJhbWV0ZXJzW2ZpZWxkLm5hbWUuc3Vic3RyaW5nKDIpXVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF07XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRuYW1lOiBmaWVsZC5uYW1lLFxuXHRcdFx0XHRcdGxhYmVsOiBmaWVsZC5sYWJlbCxcblx0XHRcdFx0XHRkYXRhVHlwZTogcHJvcGVydHlPYmplY3QudHlwZSxcblx0XHRcdFx0XHRyZXF1aXJlZDogZmllbGQucmVxdWlyZWQgPz8gZmFsc2UsXG5cdFx0XHRcdFx0ZGVmYXVsdFZhbHVlOiBkZWZhdWx0VmFsdWUsXG5cdFx0XHRcdFx0ZmlsdGVyYWJsZTogdHJ1ZSxcblx0XHRcdFx0XHRzb3J0YWJsZTogIWZpZWxkLmlzUGFyYW1ldGVyLFxuXHRcdFx0XHRcdGNvZGVMaXN0OiBjb2RlTGlzdCxcblx0XHRcdFx0XHR0eXBlOiBnZXRUeXBlKHByb3BlcnR5T2JqZWN0LnR5cGUsIGNvZGVMaXN0KSxcblx0XHRcdFx0XHR1bml0OiB1bml0XG5cdFx0XHRcdH0gYXMgRWFzeUZpbHRlclByb3BlcnR5TWV0YWRhdGE7XG5cdFx0XHR9KTtcblxuXHRcdFx0Ly8gW0VkaXRpbmcgU3RhdHVzXVxuXG5cdFx0XHRpZiAoTW9kZWxIZWxwZXIuaXNNZXRhUGF0aERyYWZ0U3VwcG9ydGVkKGRlZmluaXRpb25Gb3JQYWdlLmdldE1ldGFQYXRoKCkgYXMgdW5rbm93biBhcyBNZXRhUGF0aDx1bmtub3duPikpIHtcblx0XHRcdFx0Ly8gQXNzZW1ibGUgdGhlIGNvZGUgbGlzdCBmb3IgdGhlIGVkaXRpbmcgc3RhdHVzIGZpbHRlciB2YWx1ZXM6XG5cdFx0XHRcdGNvbnN0IHByb3BzID0gbmV3IEpTT05Nb2RlbCh7XG5cdFx0XHRcdFx0aXNEcmFmdENvbGxhYm9yYXRpdmU6IE1vZGVsSGVscGVyLmlzQ29sbGFib3JhdGlvbkRyYWZ0U3VwcG9ydGVkKG1ldGFNb2RlbClcblx0XHRcdFx0fSkuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvXCIpO1xuXG5cdFx0XHRcdGNvbnN0IGVkaXRpbmdTdGF0dXNDb2RlTGlzdCA9IERyYWZ0RWRpdFN0YXRlLmdldEVkaXRTdGF0ZXNDb250ZXh0KHByb3BzKVxuXHRcdFx0XHRcdC5nZXRPYmplY3QoXCIvXCIpXG5cdFx0XHRcdFx0Lm1hcCgoc3RhdGU6IHsgaWQ6IHN0cmluZzsgZGlzcGxheTogc3RyaW5nIH0pID0+ICh7IHZhbHVlOiBzdGF0ZS5pZCwgZGVzY3JpcHRpb246IHN0YXRlLmRpc3BsYXkgfSkpO1xuXG5cdFx0XHRcdHJlc3VsdC5wdXNoKHtcblx0XHRcdFx0XHRuYW1lOiBcIiRlZGl0U3RhdGVcIixcblx0XHRcdFx0XHRsYWJlbDogdGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkZJTFRFUkJBUl9FRElUSU5HX1NUQVRVU1wiKSxcblx0XHRcdFx0XHRkYXRhVHlwZTogXCJFZG0uU3RyaW5nXCIsXG5cdFx0XHRcdFx0cmVxdWlyZWQ6IGZhbHNlLFxuXHRcdFx0XHRcdGZpbHRlcmFibGU6IHRydWUsXG5cdFx0XHRcdFx0c29ydGFibGU6IGZhbHNlLFxuXHRcdFx0XHRcdGNvZGVMaXN0OiBlZGl0aW5nU3RhdHVzQ29kZUxpc3QsXG5cdFx0XHRcdFx0dHlwZTogXCJNZW51V2l0aENoZWNrQm94XCJcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH1cblx0XHRyZXR1cm4gW107XG5cdH1cblxuXHRhc3luYyBnZXRDb2RlTGlzdEZvclByb3BlcnR5KGtleTogc3RyaW5nLCBwcm9wZXJ0eVBhdGg6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4ge1xuXHRcdC8vIEZldGNoIGFuZCBjYWNoZSB0aGUgY29kZUxpc3QgZm9yIHZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlc1xuXHRcdGNvbnN0IG9kYXRhTW9kZWwgPSB0aGlzLmdldE1vZGVsKCkgYXMgT0RhdGFNb2RlbDtcblx0XHRjb25zdCB2YWx1ZUxpc3QgPSBhd2FpdCBvZGF0YU1vZGVsLmdldE1ldGFNb2RlbCgpLnJlcXVlc3RWYWx1ZUxpc3RJbmZvKHByb3BlcnR5UGF0aCk7XG5cdFx0Y29uc3QgZGVmYXVsdFZhbHVlTGlzdCA9IHZhbHVlTGlzdFtcIlwiXTtcblx0XHRjb25zdCBzZWxlY3QgPSBkZWZhdWx0VmFsdWVMaXN0LlBhcmFtZXRlcnMubWFwKChwYXJhbTogeyBWYWx1ZUxpc3RQcm9wZXJ0eTogc3RyaW5nIH0pID0+IHBhcmFtLlZhbHVlTGlzdFByb3BlcnR5KS5qb2luKFwiLFwiKTtcblx0XHRjb25zdCBsaXN0QmluZGluZyA9IGRlZmF1bHRWYWx1ZUxpc3QuJG1vZGVsLmJpbmRMaXN0KFwiL1wiICsgZGVmYXVsdFZhbHVlTGlzdC5Db2xsZWN0aW9uUGF0aCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwge1xuXHRcdFx0JHNlbGVjdDogc2VsZWN0XG5cdFx0fSk7XG5cdFx0Y29uc3QgZGF0YSA9IGF3YWl0IGxpc3RCaW5kaW5nLnJlcXVlc3RDb250ZXh0cygpO1xuXHRcdGxldCB2YWx1ZVByb3BlcnR5OiBzdHJpbmc7XG5cdFx0bGV0IGRlc2NyaXB0aW9uUHJvcGVydHk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0XHRmb3IgKGNvbnN0IHBhcmFtZXRlciBvZiBkZWZhdWx0VmFsdWVMaXN0LlBhcmFtZXRlcnMpIHtcblx0XHRcdGlmIChwYXJhbWV0ZXIuTG9jYWxEYXRhUHJvcGVydHk/LiRQcm9wZXJ0eVBhdGggPT09IGtleSkge1xuXHRcdFx0XHR2YWx1ZVByb3BlcnR5ID0gcGFyYW1ldGVyLlZhbHVlTGlzdFByb3BlcnR5O1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZGVzY3JpcHRpb25Qcm9wZXJ0eSA9IHBhcmFtZXRlci5WYWx1ZUxpc3RQcm9wZXJ0eTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb25zdCBmaWx0ZXJHcm91cFZhbHVlcyA9IFtdO1xuXHRcdGZvciAoY29uc3QgZGF0dW0gb2YgZGF0YSkge1xuXHRcdFx0Y29uc3QgZGF0YW9iaiA9IGRhdHVtLmdldE9iamVjdCgpO1xuXHRcdFx0ZmlsdGVyR3JvdXBWYWx1ZXMucHVzaCh7XG5cdFx0XHRcdHZhbHVlOiBkYXRhb2JqW3ZhbHVlUHJvcGVydHkhXSxcblx0XHRcdFx0ZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uUHJvcGVydHkgPyBkYXRhb2JqW2Rlc2NyaXB0aW9uUHJvcGVydHldIDogdW5kZWZpbmVkXG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0dGhpcy5fZmV0Y2hlZENvZGVMaXN0W2tleV0gPSBmaWx0ZXJHcm91cFZhbHVlcztcblx0XHRjb25zdCBjb2RlTGlzdFByb3BlcnR5ID0gdGhpcy5maWx0ZXJCYXJNZXRhZGF0YS5maW5kKChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0ga2V5KTtcblx0XHRpZiAoY29kZUxpc3RQcm9wZXJ0eSkge1xuXHRcdFx0Y29kZUxpc3RQcm9wZXJ0eS5jb2RlTGlzdCA9IGZpbHRlckdyb3VwVmFsdWVzO1xuXHRcdH1cblx0XHRyZXR1cm4gZmlsdGVyR3JvdXBWYWx1ZXM7XG5cdH1cblxuXHRhc3luYyBvblRva2Vuc0NoYW5nZWQoZTogVUk1RXZlbnQ8eyB0b2tlbnM6IFRva2VuRGVmaW5pdGlvbltdIH0sIEVhc3lGaWx0ZXJCYXJDb250YWluZXI+KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgZmlsdGVyQmFyID0gVUk1RWxlbWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmZpbHRlckJhcikgYXMgRmlsdGVyQmFyO1xuXHRcdGNvbnN0IGZpbHRlckJhckFQSSA9IGZpbHRlckJhci5nZXRQYXJlbnQoKSBhcyBGaWx0ZXJCYXJBUEk7XG5cdFx0Y29uc3QgdG9rZW5zID0gZS5nZXRQYXJhbWV0ZXIoXCJ0b2tlbnNcIik7XG5cdFx0Y29uc3QgY2xlYXJFZGl0RmlsdGVyID0gdG9rZW5zLnNvbWUoKHRva2VuRGVmaW5pdGlvbikgPT4gdG9rZW5EZWZpbml0aW9uLmtleSA9PT0gXCIkZWRpdFN0YXRlXCIpO1xuXHRcdGF3YWl0IGZpbHRlckJhckFQSS5fY2xlYXJGaWx0ZXJWYWx1ZXNXaXRoT3B0aW9ucyhmaWx0ZXJCYXIsIHsgY2xlYXJFZGl0RmlsdGVyIH0pO1xuXHRcdHRoaXMuZm9ybWF0ZURhdGFUeXBlcyh0b2tlbnMpO1xuXG5cdFx0Zm9yIChjb25zdCB0b2tlbiBvZiB0b2tlbnMpIHtcblx0XHRcdGlmICh0b2tlbi5rZXkgPT09IFwiJGVkaXRTdGF0ZVwiKSB7XG5cdFx0XHRcdC8vIGNvbnZlcnQgdGhlICRlZGl0U3RhdGUgZmlsdGVyIGNvbmRpdGlvblxuXHRcdFx0XHRmb3IgKGNvbnN0IHRva2VuS2V5U3BlY2lmaWNhdGlvbiBvZiB0b2tlbi5rZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzKSB7XG5cdFx0XHRcdFx0YXdhaXQgRmlsdGVyVXRpbHMuYWRkRmlsdGVyVmFsdWVzKFxuXHRcdFx0XHRcdFx0ZmlsdGVyQmFyQVBJLmNvbnRlbnQsXG5cdFx0XHRcdFx0XHR0b2tlbi5rZXksXG5cdFx0XHRcdFx0XHRcIkRSQUZUX0VESVRfU1RBVEVcIixcblx0XHRcdFx0XHRcdHRva2VuS2V5U3BlY2lmaWNhdGlvbi5zZWxlY3RlZFZhbHVlc1xuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vQlQgYW5kIE5CIGNhc2UgdG8gYmUgaGFuZGxlZCBpbiBmdXR1cmUsIGN1cnJlbnRseSBpdHMgY3Jhc2hpbmdcblx0XHRcdFx0Zm9yIChjb25zdCB0b2tlbktleVNwZWNpZmljYXRpb24gb2YgdG9rZW4ua2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcykge1xuXHRcdFx0XHRcdGNvbnN0IHsgb3BlcmF0b3IsIHNlbGVjdGVkVmFsdWVzIH0gPSB0b2tlbktleVNwZWNpZmljYXRpb247XG5cdFx0XHRcdFx0YXdhaXQgRmlsdGVyVXRpbHMuYWRkRmlsdGVyVmFsdWVzKGZpbHRlckJhckFQSS5jb250ZW50LCB0b2tlbi5rZXksIG9wZXJhdG9yLCBzZWxlY3RlZFZhbHVlcyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0YXdhaXQgZmlsdGVyQmFyQVBJLnRyaWdnZXJTZWFyY2goKTtcblx0fVxuXG5cdC8vV2UgbmVlZCB0aGUgYmVsb3cgZnVuY3Rpb24gc28gdGhhdCB0aGUgZGF0ZSBvYmplY3RzIGFuZCBkYXRlVGltZU9mZnNldHMgd291bGQgYmUgY29udmVydGVkIHRvIHN0cmluZyB0eXBlIGFzIHRoZSBkYXRlIG9iamVjdCBpcyBub3QgYSB2YWxpZCB0eXBlIGluIFY0IHdvcmxkXG5cdGZvcm1hdGVEYXRhVHlwZXModG9rZW5zOiBUb2tlbkRlZmluaXRpb25bXSk6IHZvaWQge1xuXHRcdGNvbnN0IGRhdGVUeXBlID0gbmV3IERhdGUxKCksXG5cdFx0XHRkYXRlVGltZU9mZnNldFR5cGUgPSBuZXcgRGF0ZVRpbWVPZmZzZXQodW5kZWZpbmVkLCB7IFY0OiB0cnVlIH0pLFxuXHRcdFx0dGltZU9mRGF5VHlwZSA9IG5ldyBUaW1lT2ZEYXkoKTtcblx0XHR0b2tlbnMuZm9yRWFjaCgodG9rZW4pID0+IHtcblx0XHRcdGNvbnN0IGVkbVR5cGUgPSB0aGlzLmZpbHRlckJhck1ldGFkYXRhLmZpbmQoKGRhdGEpID0+IGRhdGEubmFtZSA9PT0gdG9rZW4ua2V5KT8uZGF0YVR5cGU7XG5cdFx0XHR0b2tlbi5rZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzLmZvckVhY2goKGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZSkgPT4ge1xuXHRcdFx0XHRsZXQgcmVxdWlyZWRDb252ZXJ0ZXI6IE9EYXRhVHlwZTtcblx0XHRcdFx0c3dpdGNoIChlZG1UeXBlKSB7XG5cdFx0XHRcdFx0Y2FzZSBcIkVkbS5EYXRlXCI6XG5cdFx0XHRcdFx0XHRyZXF1aXJlZENvbnZlcnRlciA9IGRhdGVUeXBlO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSBcIkVkbS5UaW1lT2ZEYXlcIjpcblx0XHRcdFx0XHRcdHJlcXVpcmVkQ29udmVydGVyID0gdGltZU9mRGF5VHlwZTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgXCJFZG0uRGF0ZVRpbWVPZmZzZXRcIjpcblx0XHRcdFx0XHRcdHJlcXVpcmVkQ29udmVydGVyID0gZGF0ZVRpbWVPZmZzZXRUeXBlO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWUuc2VsZWN0ZWRWYWx1ZXMuZm9yRWFjaCgodmFsdWUsIGlkeCkgPT4ge1xuXHRcdFx0XHRcdGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZS5zZWxlY3RlZFZhbHVlc1tpZHhdID0gcmVxdWlyZWRDb252ZXJ0ZXIucGFyc2VWYWx1ZSh2YWx1ZSwgXCJvYmplY3RcIik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cblxuXHRhc3luYyBzaG93VmFsdWVIZWxwRm9yS2V5KGtleTogc3RyaW5nLCBfY3VycmVudFZhbHVlOiB1bmtub3duLCBmbkNhbGxiYWNrOiBGdW5jdGlvbik6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IGZpbHRlckJhciA9IFVJNUVsZW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5maWx0ZXJCYXIpIGFzIEZpbHRlckJhcjtcblx0XHRjb25zdCBmaWx0ZXJCYXJBUEkgPSBmaWx0ZXJCYXIuZ2V0UGFyZW50KCkgYXMgRmlsdGVyQmFyQVBJO1xuXHRcdGF3YWl0IGZpbHRlckJhckFQSS5zaG93RmlsdGVyRmllbGQoa2V5KTtcblx0XHRmaWx0ZXJCYXJBUEkub3BlblZhbHVlSGVscEZvckZpbHRlckZpZWxkKGtleSwgdW5kZWZpbmVkLCBmbkNhbGxiYWNrKTtcblx0fVxuXG5cdG9uQmVmb3JlUXVlcnlQcm9jZXNzaW5nKCk6IHZvaWQge1xuXHRcdGNvbnN0IHVpTW9kZWwgPSB0aGlzLmdldE1vZGVsKFwidWlcIikgYXMgSlNPTk1vZGVsO1xuXHRcdEJ1c3lMb2NrZXIubG9jayh1aU1vZGVsKTtcblx0fVxuXG5cdG9uQWZ0ZXJRdWVyeVByb2Nlc3NpbmcoKTogdm9pZCB7XG5cdFx0Y29uc3QgdWlNb2RlbCA9IHRoaXMuZ2V0TW9kZWwoXCJ1aVwiKSBhcyBKU09OTW9kZWw7XG5cdFx0QnVzeUxvY2tlci51bmxvY2sodWlNb2RlbCk7XG5cdH1cblxuXHRhc3luYyBvbkNsZWFyRmlsdGVycygpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHQvLyBFbXB0eSBpbnB1dDogY2xlYXIgdGhlIGZpbHRlcnMgYW5kIHJlZnJlc2ggdGhlIGxpc3Rcblx0XHRjb25zdCBmaWx0ZXJCYXIgPSBVSTVFbGVtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZmlsdGVyQmFyKSBhcyBGaWx0ZXJCYXI7XG5cdFx0Y29uc3QgZmlsdGVyQmFyQVBJID0gZmlsdGVyQmFyLmdldFBhcmVudCgpIGFzIEZpbHRlckJhckFQSTtcblx0XHRhd2FpdCBmaWx0ZXJCYXJBUEkuX2NsZWFyRmlsdGVyVmFsdWVzV2l0aE9wdGlvbnMoZmlsdGVyQmFyKTtcblx0XHRhd2FpdCBmaWx0ZXJCYXJBUEkudHJpZ2dlclNlYXJjaCgpO1xuXHR9XG5cblx0b25FeGVjdXRlU2VhcmNoKCk6IHZvaWQge1xuXHRcdGNvbnN0IGZpbHRlckJhciA9IFVJNUVsZW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5maWx0ZXJCYXIpIGFzIEZpbHRlckJhcjtcblx0XHRjb25zdCBmaWx0ZXJCYXJBUEkgPSBmaWx0ZXJCYXIuZ2V0UGFyZW50KCkgYXMgRmlsdGVyQmFyQVBJO1xuXHRcdGZpbHRlckJhckFQSS50cmlnZ2VyU2VhcmNoKCk7XG5cdH1cblxuXHRvblF1ZXJ5Q2hhbmdlZCgpOiB2b2lkIHtcblx0XHRjb25zdCBmaWx0ZXJCYXIgPSBVSTVFbGVtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZmlsdGVyQmFyKSBhcyBGaWx0ZXJCYXI7XG5cdFx0ZmlsdGVyQmFyLmZpcmVGaWx0ZXJzQ2hhbmdlZCh7IGNvbmRpdGlvbnNCYXNlZDogdHJ1ZSB9KTtcblx0fVxuXG5cdGNyZWF0ZUNvbnRlbnQoKTogRWFzeUZpbHRlckJhckNvbnRhaW5lciB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxFYXN5RmlsdGVyQmFyQ29udGFpbmVyXG5cdFx0XHRcdGNvbnRleHRQYXRoPXt0aGlzLmdldE93bmVyQ29udGV4dFBhdGgoKX1cblx0XHRcdFx0YXBwSWQ9e3RoaXMuZ2V0QXBwbGljYXRpb25JZCgpfVxuXHRcdFx0XHRmaWx0ZXJCYXJNZXRhZGF0YT17dGhpcy5maWx0ZXJCYXJNZXRhZGF0YX1cblx0XHRcdFx0ZWFzeUZpbHRlckxpYj17dGhpcy5lYXN5RmlsdGVyUGF0aH1cblx0XHRcdFx0c2hvd1ZhbHVlSGVscD17KGUpOiB2b2lkID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3dWYWx1ZUhlbHBGb3JLZXkoZS5nZXRQYXJhbWV0ZXIoXCJrZXlcIiksIGUuZ2V0UGFyYW1ldGVyKFwidmFsdWVzXCIpLCAoc2VsZWN0ZWRDb25kaXRpb25zOiBDb25kaXRpb25PYmplY3RbXSkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgdG9rZW5TZWxlY3RlZFZhbHVlczogVG9rZW5TZWxlY3RlZFZhbHVlc0RlZmluaXRpb25bXSA9IHNlbGVjdGVkQ29uZGl0aW9ucy5tYXAoKGNvbmRpdGlvbikgPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAoY29uZGl0aW9uLm9wZXJhdG9yID09PSBGaWx0ZXJPcGVyYXRvci5CVCB8fCBjb25kaXRpb24ub3BlcmF0b3IgPT09IEZpbHRlck9wZXJhdG9yLk5CKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0XHRcdG9wZXJhdG9yOiBjb25kaXRpb24ub3BlcmF0b3IsXG5cdFx0XHRcdFx0XHRcdFx0XHRzZWxlY3RlZFZhbHVlczogY29uZGl0aW9uLnZhbHVlcyBhcyBCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXNcblx0XHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRvcGVyYXRvcjogY29uZGl0aW9uLm9wZXJhdG9yIGFzIEV4Y2x1ZGU8RmlsdGVyT3BlcmF0b3IsIEZpbHRlck9wZXJhdG9yLkJUIHwgRmlsdGVyT3BlcmF0b3IuTkI+LFxuXHRcdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRWYWx1ZXM6IGNvbmRpdGlvbi52YWx1ZXMgYXMgc3RyaW5nW10gfCBib29sZWFuW10gfCBudW1iZXJbXSB8IERhdGVbXVxuXHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0ZS5nZXRQYXJhbWV0ZXIoXCJyZXNvbHZlXCIpKHRva2VuU2VsZWN0ZWRWYWx1ZXMpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9fVxuXHRcdFx0XHRyZWNvbW1lbmRlZFZhbHVlcz17dGhpcy5yZWNvbW1lbmRlZFF1ZXJpZXN9XG5cdFx0XHRcdHF1ZXJ5Q2hhbmdlZD17dGhpcy5vblF1ZXJ5Q2hhbmdlZC5iaW5kKHRoaXMpfVxuXHRcdFx0XHR0b2tlbnNDaGFuZ2VkPXt0aGlzLm9uVG9rZW5zQ2hhbmdlZC5iaW5kKHRoaXMpfVxuXHRcdFx0XHRiZWZvcmVRdWVyeVByb2Nlc3Npbmc9e3RoaXMub25CZWZvcmVRdWVyeVByb2Nlc3NpbmcuYmluZCh0aGlzKX1cblx0XHRcdFx0YWZ0ZXJRdWVyeVByb2Nlc3Npbmc9e3RoaXMub25BZnRlclF1ZXJ5UHJvY2Vzc2luZy5iaW5kKHRoaXMpfVxuXHRcdFx0XHRjbGVhckZpbHRlcnM9e3RoaXMub25DbGVhckZpbHRlcnMuYmluZCh0aGlzKX1cblx0XHRcdFx0ZXhlY3V0ZVNlYXJjaD17dGhpcy5vbkV4ZWN1dGVTZWFyY2guYmluZCh0aGlzKX1cblx0XHRcdC8+XG5cdFx0KSBhcyBFYXN5RmlsdGVyQmFyQ29udGFpbmVyO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF1Q0E7QUFDQTtBQUNBO0FBQ0E7RUFIQSxJQUtxQkEsYUFBYSxJQUFBQyxJQUFBLEdBRGpDQyxjQUFjLENBQUMsNkJBQTZCLENBQUMsRUFBQUMsS0FBQSxHQUU1Q0Msa0JBQWtCLENBQUMsa0VBQWtFLENBQUMsRUFBQUMsS0FBQSxHQUd0RkMsV0FBVyxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUF1QyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQUc3REYsV0FBVyxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFnRCxDQUFDLENBQUMsRUFBQUUsS0FBQSxHQUd0RUMsUUFBUSxDQUFDO0lBQUVILElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBSSxLQUFBLEdBRzVCRCxRQUFRLENBQUM7SUFBRUgsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLEVBQUFLLEtBQUEsR0FHNUJDLFdBQVcsQ0FBQztJQUFFTixJQUFJLEVBQUU7RUFBb0QsQ0FBQyxDQUFDLEVBQUFOLElBQUEsQ0FBQWEsTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxrQkFBQTtJQUFBQyxjQUFBLENBQUFqQixhQUFBLEVBQUFnQixrQkFBQTtJQVczRSxTQUFBaEIsY0FBWWtCLFVBQTBELEVBQUVDLE1BQXlCLEVBQUU7TUFBQSxJQUFBQyxxQkFBQTtNQUFBLElBQUFDLEtBQUE7TUFDbEdBLEtBQUEsR0FBQUwsa0JBQUEsQ0FBQU0sSUFBQSxP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
|
|
400
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFYXN5RmlsdGVyQmFyIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJpbXBsZW1lbnRJbnRlcmZhY2UiLCJfZGVjMyIsImFzc29jaWF0aW9uIiwidHlwZSIsIl9kZWM0IiwiX2RlYzUiLCJwcm9wZXJ0eSIsIl9kZWM2IiwiX2RlYzciLCJhZ2dyZWdhdGlvbiIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja0Jhc2UiLCJfaW5oZXJpdHNMb29zZSIsInByb3BlcnRpZXMiLCJvdGhlcnMiLCJfdGhpcyRnZXRBcHBDb21wb25lbnQiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIl9kZXNjcmlwdG9yMiIsIl9kZXNjcmlwdG9yMyIsIl9kZXNjcmlwdG9yNCIsIl9kZXNjcmlwdG9yNSIsIl9kZXNjcmlwdG9yNiIsImdldEFwcENvbXBvbmVudCIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwicHJlcGFyZUZlYXR1cmUiLCJ0aGVuIiwiX3RoaXMkY29udGVudCIsImVhc3lGaWx0ZXJQYXRoIiwiY29udGVudCIsInNldEVhc3lGaWx0ZXJMaWIiLCJjYXRjaCIsImVycm9yIiwiTG9nIiwiZGVidWciLCJ1bmRlZmluZWQiLCJfZXhwb3J0cyIsIl9wcm90byIsInByb3RvdHlwZSIsImFwcGx5TGVnYWN5U3RhdGUiLCJnZXRDb250cmlsU3RhdGUiLCJvTmF2UGFyYW1ldGVycyIsIl9zaG91bGRBcHBseURpZmZTdGF0ZSIsIl9za2lwTWVyZ2UiLCJzZWxlY3Rpb25WYXJpYW50IiwiX3RoaXMkY29udGVudDIiLCJzZWxlY3RPcHRpb25zTmFtZXMiLCJnZXRTZWxlY3RPcHRpb25zUHJvcGVydHlOYW1lcyIsImZpbHRlckJhck1ldGFkYXRhIiwiZm9yRWFjaCIsImZpZWxkIiwiaW5jbHVkZXMiLCJuYW1lIiwiX2dldFNlbGVjdE9wdGlvbiIsImRlZmF1bHRWYWx1ZSIsImdldFNlbGVjdE9wdGlvbiIsIm1hcCIsIm9wdGlvbiIsIlNpZ24iLCJPcHRpb24iLCJvcGVyYXRvciIsIkZpbHRlck9wZXJhdG9yIiwiQlQiLCJzZWxlY3RlZFZhbHVlcyIsInZhbHVlMSIsIkxvdyIsInZhbHVlMiIsIkhpZ2giLCJORSIsInJlc2V0U3RhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsImFwcGx5U3RhdGUiLCJfc3RhdGUiLCJfb05hdlBhcmFtZXRlcnMiLCJyZXRyaWV2ZVN0YXRlIiwiZ2V0QXBwbGljYXRpb25JZCIsIl90aGlzJGdldEFwcENvbXBvbmVudDIiLCJnZXRNYW5pZmVzdEVudHJ5IiwiaWQiLCJvbk1ldGFkYXRhQXZhaWxhYmxlIiwiX3RoaXMkZ2V0QXBwQ29tcG9uZW50MyIsIl90aGlzJGdldEFwcENvbXBvbmVudDQiLCJfdGhpcyRnZXRBcHBDb21wb25lbnQ1IiwiX3RoaXMkZ2V0QXBwQ29tcG9uZW50NiIsIl9mZXRjaGVkQ29kZUxpc3QiLCJwcmVwYXJlRmlsdGVyQmFyTWV0YWRhdGEiLCJyZWNvbW1lbmRlZFF1ZXJpZXMiLCJtYWNyb3MiLCJlYXN5RmlsdGVyIiwiY3JlYXRlQ29udGVudCIsIl9vd25lciRwcmVwcm9jZXNzb3JDbyIsIm93bmVyIiwiX2dldE93bmVyIiwiZGVmaW5pdGlvbkZvclBhZ2UiLCJwcmVwcm9jZXNzb3JDb250ZXh0IiwiZ2V0RGVmaW5pdGlvbkZvclBhZ2UiLCJmaWx0ZXJCYXJEZWYiLCJfb3duZXIkcHJlcHJvY2Vzc29yQ28yIiwiX293bmVyJGdldEFwcENvbXBvbmVuIiwiZ2V0RmlsdGVyQmFyRGVmaW5pdGlvbiIsIm1ldGFNb2RlbCIsIm1vZGVscyIsImdldFR5cGUiLCJlZG1UeXBlIiwiY29kZUxpc3QiLCJzdGFydHVwUGFyYW1ldGVycyIsImdldENvbXBvbmVudERhdGEiLCJmaWx0ZXJGaWVsZHMiLCJnZXRGaWx0ZXJGaWVsZHMiLCJyZXN1bHQiLCJfcHJvcGVydHlPYmplY3QkYW5ub3QiLCJfcHJvcGVydHlPYmplY3QkYW5ub3QyIiwiX2ZpbHRlckZpZWxkcyRmaW5kIiwicHJvcGVydHlPYmplY3QiLCJnZXRUYXJnZXQiLCJoYXNDb2RlTGlzdCIsImhhc1ZhbHVlSGVscFdpdGhGaXhlZFZhbHVlcyIsImdldENvZGVMaXN0Rm9yUHJvcGVydHkiLCJhbm5vdGF0aW9uUGF0aCIsInVuaXRBbm5vdGF0aW9uIiwiYW5ub3RhdGlvbnMiLCJNZWFzdXJlcyIsIklTT0N1cnJlbmN5IiwiVW5pdCIsInVuaXRQcm9wZXJ0eSIsImlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uIiwiJHRhcmdldCIsInVuaXQiLCJmaW5kIiwiZiIsImhhc093blByb3BlcnR5IiwiRVEiLCJpc1BhcmFtZXRlciIsInN1YnN0cmluZyIsImxhYmVsIiwiZGF0YVR5cGUiLCJyZXF1aXJlZCIsImZpbHRlcmFibGUiLCJzb3J0YWJsZSIsIk1vZGVsSGVscGVyIiwiaXNNZXRhUGF0aERyYWZ0U3VwcG9ydGVkIiwiZ2V0TWV0YVBhdGgiLCJwcm9wcyIsIkpTT05Nb2RlbCIsImlzRHJhZnRDb2xsYWJvcmF0aXZlIiwiaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsImVkaXRpbmdTdGF0dXNDb2RlTGlzdCIsIkRyYWZ0RWRpdFN0YXRlIiwiZ2V0RWRpdFN0YXRlc0NvbnRleHQiLCJnZXRPYmplY3QiLCJzdGF0ZSIsInZhbHVlIiwiZGVzY3JpcHRpb24iLCJkaXNwbGF5IiwicHVzaCIsImdldFRyYW5zbGF0ZWRUZXh0Iiwia2V5IiwicHJvcGVydHlQYXRoIiwib2RhdGFNb2RlbCIsImdldE1vZGVsIiwidmFsdWVMaXN0IiwiZ2V0TWV0YU1vZGVsIiwicmVxdWVzdFZhbHVlTGlzdEluZm8iLCJkZWZhdWx0VmFsdWVMaXN0Iiwic2VsZWN0IiwiUGFyYW1ldGVycyIsInBhcmFtIiwiVmFsdWVMaXN0UHJvcGVydHkiLCJqb2luIiwibGlzdEJpbmRpbmciLCIkbW9kZWwiLCJiaW5kTGlzdCIsIkNvbGxlY3Rpb25QYXRoIiwiJHNlbGVjdCIsImRhdGEiLCJyZXF1ZXN0Q29udGV4dHMiLCJ2YWx1ZVByb3BlcnR5IiwiZGVzY3JpcHRpb25Qcm9wZXJ0eSIsInBhcmFtZXRlciIsIl9wYXJhbWV0ZXIkTG9jYWxEYXRhUCIsIkxvY2FsRGF0YVByb3BlcnR5IiwiJFByb3BlcnR5UGF0aCIsImZpbHRlckdyb3VwVmFsdWVzIiwiZGF0dW0iLCJkYXRhb2JqIiwiY29kZUxpc3RQcm9wZXJ0eSIsIm9uVG9rZW5zQ2hhbmdlZCIsImUiLCJmaWx0ZXJCYXIiLCJVSTVFbGVtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJmaWx0ZXJCYXJBUEkiLCJnZXRQYXJlbnQiLCJ0b2tlbnMiLCJnZXRQYXJhbWV0ZXIiLCJjbGVhckVkaXRGaWx0ZXIiLCJzb21lIiwidG9rZW5EZWZpbml0aW9uIiwiX2NsZWFyRmlsdGVyVmFsdWVzV2l0aE9wdGlvbnMiLCJmb3JtYXRlRGF0YVR5cGVzIiwidG9rZW4iLCJ0b2tlbktleVNwZWNpZmljYXRpb24iLCJrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzIiwiRmlsdGVyVXRpbHMiLCJhZGRGaWx0ZXJWYWx1ZXMiLCJ0cmlnZ2VyU2VhcmNoIiwiZGF0ZVR5cGUiLCJEYXRlMSIsImRhdGVUaW1lT2Zmc2V0VHlwZSIsIkRhdGVUaW1lT2Zmc2V0IiwiVjQiLCJ0aW1lT2ZEYXlUeXBlIiwiVGltZU9mRGF5IiwiX3RoaXMkZmlsdGVyQmFyTWV0YWRhIiwia2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlIiwicmVxdWlyZWRDb252ZXJ0ZXIiLCJpZHgiLCJwYXJzZVZhbHVlIiwic2hvd1ZhbHVlSGVscEZvcktleSIsIl9jdXJyZW50VmFsdWUiLCJmbkNhbGxiYWNrIiwic2hvd0ZpbHRlckZpZWxkIiwib3BlblZhbHVlSGVscEZvckZpbHRlckZpZWxkIiwib25CZWZvcmVRdWVyeVByb2Nlc3NpbmciLCJ1aU1vZGVsIiwiQnVzeUxvY2tlciIsImxvY2siLCJvbkFmdGVyUXVlcnlQcm9jZXNzaW5nIiwidW5sb2NrIiwib25DbGVhckZpbHRlcnMiLCJvblF1ZXJ5Q2hhbmdlZCIsImZpcmVGaWx0ZXJzQ2hhbmdlZCIsImNvbmRpdGlvbnNCYXNlZCIsIl9qc3giLCJFYXN5RmlsdGVyQmFyQ29udGFpbmVyIiwiY29udGV4dFBhdGgiLCJnZXRPd25lckNvbnRleHRQYXRoIiwiYXBwSWQiLCJlYXN5RmlsdGVyTGliIiwic2hvd1ZhbHVlSGVscCIsInNlbGVjdGVkQ29uZGl0aW9ucyIsInRva2VuU2VsZWN0ZWRWYWx1ZXMiLCJjb25kaXRpb24iLCJOQiIsInZhbHVlcyIsInJlY29tbWVuZGVkVmFsdWVzIiwicXVlcnlDaGFuZ2VkIiwiYmluZCIsInRva2Vuc0NoYW5nZWQiLCJiZWZvcmVRdWVyeVByb2Nlc3NpbmciLCJhZnRlclF1ZXJ5UHJvY2Vzc2luZyIsImNsZWFyRmlsdGVycyIsIkJ1aWxkaW5nQmxvY2tCYXNlIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJFYXN5RmlsdGVyQmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB0eXBlIHsgRW5oYW5jZVdpdGhVSTUgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbiwgYXNzb2NpYXRpb24sIGRlZmluZVVJNUNsYXNzLCBpbXBsZW1lbnRJbnRlcmZhY2UsIHByb3BlcnR5LCB0eXBlIFByb3BlcnRpZXNPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHtcblx0QmV0d2VlblNlbGVjdGVkVmFsdWVzLFxuXHRFYXN5RmlsdGVyUHJvcGVydHlNZXRhZGF0YSxcblx0VG9rZW5EZWZpbml0aW9uLFxuXHRUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbixcblx0VG9rZW5UeXBlXG59IGZyb20gXCJzYXAvZmUvY29udHJvbHMvZWFzeUZpbHRlci9FYXN5RmlsdGVyQmFyQ29udGFpbmVyXCI7XG5pbXBvcnQgRWFzeUZpbHRlckJhckNvbnRhaW5lciBmcm9tIFwic2FwL2ZlL2NvbnRyb2xzL2Vhc3lGaWx0ZXIvRWFzeUZpbHRlckJhckNvbnRhaW5lclwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2tCYXNlIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrQmFzZVwiO1xuaW1wb3J0IEJ1c3lMb2NrZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0J1c3lMb2NrZXJcIjtcbmltcG9ydCB0eXBlIHsgQ29udHJvbFN0YXRlLCBOYXZpZ2F0aW9uUGFyYW1ldGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1ZpZXdTdGF0ZVwiO1xuaW1wb3J0IHR5cGUgSVZpZXdTdGF0ZUNvbnRyaWJ1dG9yIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy92aWV3U3RhdGUvSVZpZXdTdGF0ZUNvbnRyaWJ1dG9yXCI7XG5pbXBvcnQgdHlwZSB7IEZpbHRlckZpZWxkIH0gZnJvbSBcInNhcC9mZS9jb3JlL2RlZmluaXRpb24vRkVEZWZpbml0aW9uXCI7XG5pbXBvcnQgdHlwZSBNZXRhUGF0aCBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9NZXRhUGF0aFwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB7IGhhc1ZhbHVlSGVscFdpdGhGaXhlZFZhbHVlcyB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1Byb3BlcnR5SGVscGVyXCI7XG5pbXBvcnQgRmlsdGVyVXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlclV0aWxzXCI7XG5pbXBvcnQgRHJhZnRFZGl0U3RhdGUgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0RyYWZ0RWRpdFN0YXRlXCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJCYXJBUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0ZpbHRlckJhckFQSVwiO1xuaW1wb3J0IHR5cGUgVUk1RXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IFVJNUVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIHsgQ29uZGl0aW9uT2JqZWN0IH0gZnJvbSBcInNhcC91aS9tZGMvY29uZGl0aW9uL0NvbmRpdGlvblwiO1xuaW1wb3J0IEZpbHRlck9wZXJhdG9yIGZyb20gXCJzYXAvdWkvbW9kZWwvRmlsdGVyT3BlcmF0b3JcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IERhdGUxIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdHlwZS9EYXRlXCI7XG5pbXBvcnQgRGF0ZVRpbWVPZmZzZXQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS90eXBlL0RhdGVUaW1lT2Zmc2V0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YVR5cGUgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS90eXBlL09EYXRhVHlwZVwiO1xuaW1wb3J0IFRpbWVPZkRheSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3R5cGUvVGltZU9mRGF5XCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuXG50eXBlIEVhc3lGaWx0ZXJCYXJTdGF0ZSA9IHt9O1xuLyoqXG4gKiBEZWxpdmVyeSBmb3IgYmV0YSByZWxlYXNlIGZvciB0aGUgZWFzeSBmaWx0ZXIgZmVhdHVyZS5cbiAqIEBleHBlcmltZW50YWxcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5FYXN5RmlsdGVyQmFyXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFYXN5RmlsdGVyQmFyIGV4dGVuZHMgQnVpbGRpbmdCbG9ja0Jhc2UgaW1wbGVtZW50cyBJVmlld1N0YXRlQ29udHJpYnV0b3I8RWFzeUZpbHRlckJhclN0YXRlPiB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAuZmUuY29yZS5jb250cm9sbGVyZXh0ZW5zaW9ucy52aWV3U3RhdGUuSVZpZXdTdGF0ZUNvbnRyaWJ1dG9yXCIpXG5cdF9faW1wbGVtZW50c19fc2FwX2ZlX2NvcmVfY29udHJvbGxlcmV4dGVuc2lvbnNfdmlld1N0YXRlX0lWaWV3U3RhdGVDb250cmlidXRvciE6IGJvb2xlYW47XG5cblx0QGFzc29jaWF0aW9uKHsgdHlwZTogXCJzYXAuZmUubWFjcm9zLmZpbHRlckJhci5GaWx0ZXJCYXJBUElcIiB9KVxuXHRmaWx0ZXJCYXIhOiBzdHJpbmc7XG5cblx0QGFzc29jaWF0aW9uKHsgdHlwZTogXCJzYXAuZmUubWFjcm9zLmNvbnRlbnRTd2l0Y2hlci5Db250ZW50U3dpdGNoZXJcIiB9KVxuXHRjb250ZW50U3dpdGNoZXIhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRjb250ZW50U3dpdGNoZXJLZXk/OiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRjb250ZXh0UGF0aD86IHN0cmluZztcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5mZS5jb250cm9scy5lYXN5RmlsdGVyLkVhc3lGaWx0ZXJCYXJDb250YWluZXJcIiB9KVxuXHRjb250ZW50PzogRW5oYW5jZVdpdGhVSTU8RWFzeUZpbHRlckJhckNvbnRhaW5lcj47XG5cblx0X2ZldGNoZWRDb2RlTGlzdCE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5cdHByaXZhdGUgZmlsdGVyQmFyTWV0YWRhdGEhOiBFYXN5RmlsdGVyUHJvcGVydHlNZXRhZGF0YVtdO1xuXG5cdHByaXZhdGUgZWFzeUZpbHRlclBhdGg/OiBzdHJpbmc7XG5cblx0cHJpdmF0ZSByZWNvbW1lbmRlZFF1ZXJpZXM/OiBzdHJpbmdbXTtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiAkQ29udHJvbFNldHRpbmdzICYgUHJvcGVydGllc09mPEVhc3lGaWx0ZXJCYXI+LCBvdGhlcnM/OiAkQ29udHJvbFNldHRpbmdzKSB7XG5cdFx0c3VwZXIocHJvcGVydGllcywgb3RoZXJzKTtcblx0XHR0aGlzLmdldEFwcENvbXBvbmVudCgpXG5cdFx0XHQ/LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKClcblx0XHRcdC5wcmVwYXJlRmVhdHVyZShcIk1hZ2ljRmlsdGVyaW5nXCIpXG5cdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdHRoaXMuZWFzeUZpbHRlclBhdGggPSBcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWx0ZXIvRWFzeUZpbHRlclwiO1xuXHRcdFx0XHR0aGlzLmNvbnRlbnQ/LnNldEVhc3lGaWx0ZXJMaWIodGhpcy5lYXN5RmlsdGVyUGF0aCk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goKGVycm9yKSA9PiB7XG5cdFx0XHRcdExvZy5kZWJ1ZyhcIkVycm9yIHdoaWxlIGxvYWRpbmcgRWFzeUZpbHRlclwiLCBlcnJvcik7XG5cdFx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0XHR9KTtcblx0fVxuXG5cdGFzeW5jIGFwcGx5TGVnYWN5U3RhdGUoXG5cdFx0Z2V0Q29udHJpbFN0YXRlPzogKGNvbnRyb2w6IE1hbmFnZWRPYmplY3QpID0+IENvbnRyb2xTdGF0ZSxcblx0XHRvTmF2UGFyYW1ldGVycz86IE5hdmlnYXRpb25QYXJhbWV0ZXIsXG5cdFx0X3Nob3VsZEFwcGx5RGlmZlN0YXRlPzogYm9vbGVhbixcblx0XHRfc2tpcE1lcmdlPzogYm9vbGVhblxuXHQpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAob05hdlBhcmFtZXRlcnM/LnNlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdGNvbnN0IHNlbGVjdE9wdGlvbnNOYW1lcyA9IG9OYXZQYXJhbWV0ZXJzLnNlbGVjdGlvblZhcmlhbnQuZ2V0U2VsZWN0T3B0aW9uc1Byb3BlcnR5TmFtZXMoKTtcblx0XHRcdHRoaXMuZmlsdGVyQmFyTWV0YWRhdGEuZm9yRWFjaCgoZmllbGQpID0+IHtcblx0XHRcdFx0aWYgKHNlbGVjdE9wdGlvbnNOYW1lcy5pbmNsdWRlcyhmaWVsZC5uYW1lKSkge1xuXHRcdFx0XHRcdGZpZWxkLmRlZmF1bHRWYWx1ZSA9IG9OYXZQYXJhbWV0ZXJzLnNlbGVjdGlvblZhcmlhbnQhLmdldFNlbGVjdE9wdGlvbihmaWVsZC5uYW1lKT8ubWFwKChvcHRpb24pID0+IHtcblx0XHRcdFx0XHRcdGlmIChvcHRpb24uU2lnbiA9PT0gXCJJXCIpIHtcblx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbi5PcHRpb24gPT09IFwiQlRcIikge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRvcGVyYXRvcjogRmlsdGVyT3BlcmF0b3IuQlQsXG5cdFx0XHRcdFx0XHRcdFx0XHRzZWxlY3RlZFZhbHVlczogW3sgdmFsdWUxOiBvcHRpb24uTG93LCB2YWx1ZTI6IG9wdGlvbi5IaWdoIH1dXG5cdFx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0b3BlcmF0b3I6IG9wdGlvbi5PcHRpb24sXG5cdFx0XHRcdFx0XHRcdFx0XHRzZWxlY3RlZFZhbHVlczogW29wdGlvbi5Mb3ddXG5cdFx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0XHRvcGVyYXRvcjogRmlsdGVyT3BlcmF0b3IuTkUsXG5cdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRWYWx1ZXM6IFtvcHRpb24uTG93XVxuXHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pIGFzIFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW107XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0dGhpcy5jb250ZW50Py5yZXNldFN0YXRlKCk7XG5cdFx0fVxuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcblx0fVxuXG5cdGFwcGx5U3RhdGUoX3N0YXRlOiBFYXN5RmlsdGVyQmFyU3RhdGUsIF9vTmF2UGFyYW1ldGVycz86IE5hdmlnYXRpb25QYXJhbWV0ZXIpOiBQcm9taXNlPHZvaWQ+IHwgdm9pZCB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdHJldHJpZXZlU3RhdGUoKTogRWFzeUZpbHRlckJhclN0YXRlIHwgbnVsbCB7XG5cdFx0cmV0dXJuIHt9O1xuXHR9XG5cblx0Z2V0QXBwbGljYXRpb25JZCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmdldEFwcENvbXBvbmVudCgpPy5nZXRNYW5pZmVzdEVudHJ5KFwic2FwLmFwcFwiKS5pZCA/PyBcIjx1bmtub3duSUQ+XCI7XG5cdH1cblxuXHRvbk1ldGFkYXRhQXZhaWxhYmxlKCk6IHZvaWQge1xuXHRcdHRoaXMuX2ZldGNoZWRDb2RlTGlzdCA/Pz0ge307XG5cdFx0dGhpcy5maWx0ZXJCYXJNZXRhZGF0YSA9IHRoaXMucHJlcGFyZUZpbHRlckJhck1ldGFkYXRhKCk7XG5cdFx0dGhpcy5yZWNvbW1lbmRlZFF1ZXJpZXMgPSB0aGlzLmdldEFwcENvbXBvbmVudCgpPy5nZXRNYW5pZmVzdEVudHJ5KFwic2FwLmZlXCIpPy5tYWNyb3M/LmVhc3lGaWx0ZXI/LnJlY29tbWVuZGVkUXVlcmllcyA/PyBbXTtcblx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbnRlbnQoKSBhcyBFbmhhbmNlV2l0aFVJNTxFYXN5RmlsdGVyQmFyQ29udGFpbmVyPjtcblx0XHR0aGlzLmNvbnRlbnQuZmlsdGVyQmFyTWV0YWRhdGEgPSB0aGlzLmZpbHRlckJhck1ldGFkYXRhO1xuXHR9XG5cblx0cHJlcGFyZUZpbHRlckJhck1ldGFkYXRhKCk6IEVhc3lGaWx0ZXJQcm9wZXJ0eU1ldGFkYXRhW10ge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKSE7XG5cdFx0Y29uc3QgZGVmaW5pdGlvbkZvclBhZ2UgPSBvd25lci5wcmVwcm9jZXNzb3JDb250ZXh0Py5nZXREZWZpbml0aW9uRm9yUGFnZSgpO1xuXHRcdGxldCBmaWx0ZXJCYXJEZWY7XG5cdFx0aWYgKGRlZmluaXRpb25Gb3JQYWdlKSB7XG5cdFx0XHRmaWx0ZXJCYXJEZWYgPSBkZWZpbml0aW9uRm9yUGFnZS5nZXRGaWx0ZXJCYXJEZWZpbml0aW9uKHt9KTtcblxuXHRcdFx0Y29uc3QgbWV0YU1vZGVsID0gb3duZXIucHJlcHJvY2Vzc29yQ29udGV4dD8ubW9kZWxzLm1ldGFNb2RlbCBhcyBPRGF0YU1ldGFNb2RlbDtcblxuXHRcdFx0Y29uc3QgZ2V0VHlwZSA9IChlZG1UeXBlOiBzdHJpbmcsIGNvZGVMaXN0OiB1bmtub3duKTogVG9rZW5UeXBlID0+IHtcblx0XHRcdFx0aWYgKGNvZGVMaXN0KSB7XG5cdFx0XHRcdFx0cmV0dXJuIFwiTWVudVdpdGhDaGVja0JveFwiO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHN3aXRjaCAoZWRtVHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgXCJFZG0uRGF0ZVwiOlxuXHRcdFx0XHRcdFx0cmV0dXJuIFwiQ2FsZW5kYXJcIjtcblx0XHRcdFx0XHRjYXNlIFwiRWRtLlRpbWVPZkRheVwiOlxuXHRcdFx0XHRcdFx0cmV0dXJuIFwiVGltZVwiO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRyZXR1cm4gXCJWYWx1ZUhlbHBcIjtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IHN0YXJ0dXBQYXJhbWV0ZXJzID0gb3duZXIuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0Q29tcG9uZW50RGF0YSgpPy5zdGFydHVwUGFyYW1ldGVycyA/PyB7fTtcblxuXHRcdFx0Y29uc3QgZmlsdGVyRmllbGRzID0gZmlsdGVyQmFyRGVmLmdldEZpbHRlckZpZWxkcygpO1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gZmlsdGVyRmllbGRzLm1hcCgoZmllbGQ6IEZpbHRlckZpZWxkKTogRWFzeUZpbHRlclByb3BlcnR5TWV0YWRhdGEgPT4ge1xuXHRcdFx0XHQvLyBFeGNsdWRlIGhpZGRlbiBmaWx0ZXIgZmllbGRzLiBJdCBpcyBub3QgcG9zc2libGUgdG8gc2V0IGEgdmFsdWUgZm9yIGhpZGRlbiBmaWx0ZXJzLCBhbmQgdXNlcnMgd291bGQgbm90IHVuZGVyc3RhbmQgYW55d2F5IGFzIHRoZXkgY2Fubm90IHNlZSB0aGVzZSB2YWx1ZXMuXG5cdFx0XHRcdGNvbnN0IHByb3BlcnR5T2JqZWN0ID0gZmllbGQuZ2V0VGFyZ2V0KCk7XG5cdFx0XHRcdGxldCBjb2RlTGlzdDtcblx0XHRcdFx0Y29uc3QgaGFzQ29kZUxpc3QgPSBoYXNWYWx1ZUhlbHBXaXRoRml4ZWRWYWx1ZXMocHJvcGVydHlPYmplY3QpO1xuXHRcdFx0XHRpZiAoaGFzQ29kZUxpc3QpIHtcblx0XHRcdFx0XHRjb2RlTGlzdCA9IHRoaXMuX2ZldGNoZWRDb2RlTGlzdFtmaWVsZC5uYW1lXTtcblx0XHRcdFx0XHRpZiAoIWNvZGVMaXN0KSB7XG5cdFx0XHRcdFx0XHRjb2RlTGlzdCA9IGFzeW5jICgpOiBQcm9taXNlPHVua25vd24+ID0+IHRoaXMuZ2V0Q29kZUxpc3RGb3JQcm9wZXJ0eShmaWVsZC5uYW1lLCBmaWVsZC5hbm5vdGF0aW9uUGF0aCEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIENoZWNrIGlmIHRoZSBmaWx0ZXIgZmllbGQncyB0YXJnZXQgcHJvcGVydHkgaGFzIGEgY3VycmVuY3kgb3IgYSB1bml0LiBJZiBzbywgbG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgZmlsdGVyIGZpZWxkICh0aGVcblx0XHRcdFx0Ly8gYW5ub3RhdGlvbiBoYXMgdG8gYmUgYSBwYXRoIGZvciB0aGF0KSBhbmQgc2V0IHRoZSAndW5pdCcgcHJvcGVydHkuXG5cdFx0XHRcdGNvbnN0IHVuaXRBbm5vdGF0aW9uID0gcHJvcGVydHlPYmplY3QuYW5ub3RhdGlvbnMuTWVhc3VyZXM/LklTT0N1cnJlbmN5ID8/IHByb3BlcnR5T2JqZWN0LmFubm90YXRpb25zLk1lYXN1cmVzPy5Vbml0O1xuXHRcdFx0XHRjb25zdCB1bml0UHJvcGVydHkgPSBpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbih1bml0QW5ub3RhdGlvbikgPyB1bml0QW5ub3RhdGlvbi4kdGFyZ2V0IDogdW5kZWZpbmVkO1xuXHRcdFx0XHRjb25zdCB1bml0ID0gdW5pdFByb3BlcnR5ID8gZmlsdGVyRmllbGRzLmZpbmQoKGYpID0+IGYuZ2V0VGFyZ2V0KCkgPT09IHVuaXRQcm9wZXJ0eSk/Lm5hbWUgOiB1bmRlZmluZWQ7XG5cdFx0XHRcdGxldCBkZWZhdWx0VmFsdWU7XG5cdFx0XHRcdGlmIChzdGFydHVwUGFyYW1ldGVycy5oYXNPd25Qcm9wZXJ0eShmaWVsZC5uYW1lKSkge1xuXHRcdFx0XHRcdGRlZmF1bHRWYWx1ZSA9IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0b3BlcmF0b3I6IEZpbHRlck9wZXJhdG9yLkVRLFxuXHRcdFx0XHRcdFx0XHRzZWxlY3RlZFZhbHVlczogc3RhcnR1cFBhcmFtZXRlcnNbZmllbGQubmFtZV1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGZpZWxkLmlzUGFyYW1ldGVyICYmIHN0YXJ0dXBQYXJhbWV0ZXJzLmhhc093blByb3BlcnR5KGZpZWxkLm5hbWUuc3Vic3RyaW5nKDIpKSkge1xuXHRcdFx0XHRcdGRlZmF1bHRWYWx1ZSA9IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0b3BlcmF0b3I6IEZpbHRlck9wZXJhdG9yLkVRLFxuXHRcdFx0XHRcdFx0XHRzZWxlY3RlZFZhbHVlczogc3RhcnR1cFBhcmFtZXRlcnNbZmllbGQubmFtZS5zdWJzdHJpbmcoMildXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdG5hbWU6IGZpZWxkLm5hbWUsXG5cdFx0XHRcdFx0bGFiZWw6IGZpZWxkLmxhYmVsLFxuXHRcdFx0XHRcdGRhdGFUeXBlOiBwcm9wZXJ0eU9iamVjdC50eXBlLFxuXHRcdFx0XHRcdHJlcXVpcmVkOiBmaWVsZC5yZXF1aXJlZCA/PyBmYWxzZSxcblx0XHRcdFx0XHRkZWZhdWx0VmFsdWU6IGRlZmF1bHRWYWx1ZSxcblx0XHRcdFx0XHRmaWx0ZXJhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdHNvcnRhYmxlOiAhZmllbGQuaXNQYXJhbWV0ZXIsXG5cdFx0XHRcdFx0Y29kZUxpc3Q6IGNvZGVMaXN0LFxuXHRcdFx0XHRcdHR5cGU6IGdldFR5cGUocHJvcGVydHlPYmplY3QudHlwZSwgY29kZUxpc3QpLFxuXHRcdFx0XHRcdHVuaXQ6IHVuaXRcblx0XHRcdFx0fSBhcyBFYXN5RmlsdGVyUHJvcGVydHlNZXRhZGF0YTtcblx0XHRcdH0pO1xuXG5cdFx0XHQvLyBbRWRpdGluZyBTdGF0dXNdXG5cblx0XHRcdGlmIChNb2RlbEhlbHBlci5pc01ldGFQYXRoRHJhZnRTdXBwb3J0ZWQoZGVmaW5pdGlvbkZvclBhZ2UuZ2V0TWV0YVBhdGgoKSBhcyB1bmtub3duIGFzIE1ldGFQYXRoPHVua25vd24+KSkge1xuXHRcdFx0XHQvLyBBc3NlbWJsZSB0aGUgY29kZSBsaXN0IGZvciB0aGUgZWRpdGluZyBzdGF0dXMgZmlsdGVyIHZhbHVlczpcblx0XHRcdFx0Y29uc3QgcHJvcHMgPSBuZXcgSlNPTk1vZGVsKHtcblx0XHRcdFx0XHRpc0RyYWZ0Q29sbGFib3JhdGl2ZTogTW9kZWxIZWxwZXIuaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQobWV0YU1vZGVsKVxuXHRcdFx0XHR9KS5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9cIik7XG5cblx0XHRcdFx0Y29uc3QgZWRpdGluZ1N0YXR1c0NvZGVMaXN0ID0gRHJhZnRFZGl0U3RhdGUuZ2V0RWRpdFN0YXRlc0NvbnRleHQocHJvcHMpXG5cdFx0XHRcdFx0LmdldE9iamVjdChcIi9cIilcblx0XHRcdFx0XHQubWFwKChzdGF0ZTogeyBpZDogc3RyaW5nOyBkaXNwbGF5OiBzdHJpbmcgfSkgPT4gKHsgdmFsdWU6IHN0YXRlLmlkLCBkZXNjcmlwdGlvbjogc3RhdGUuZGlzcGxheSB9KSk7XG5cblx0XHRcdFx0cmVzdWx0LnB1c2goe1xuXHRcdFx0XHRcdG5hbWU6IFwiJGVkaXRTdGF0ZVwiLFxuXHRcdFx0XHRcdGxhYmVsOiB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiRklMVEVSQkFSX0VESVRJTkdfU1RBVFVTXCIpLFxuXHRcdFx0XHRcdGRhdGFUeXBlOiBcIkVkbS5TdHJpbmdcIixcblx0XHRcdFx0XHRyZXF1aXJlZDogZmFsc2UsXG5cdFx0XHRcdFx0ZmlsdGVyYWJsZTogdHJ1ZSxcblx0XHRcdFx0XHRzb3J0YWJsZTogZmFsc2UsXG5cdFx0XHRcdFx0Y29kZUxpc3Q6IGVkaXRpbmdTdGF0dXNDb2RlTGlzdCxcblx0XHRcdFx0XHR0eXBlOiBcIk1lbnVXaXRoQ2hlY2tCb3hcIlxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fVxuXHRcdHJldHVybiBbXTtcblx0fVxuXG5cdGFzeW5jIGdldENvZGVMaXN0Rm9yUHJvcGVydHkoa2V5OiBzdHJpbmcsIHByb3BlcnR5UGF0aDogc3RyaW5nKTogUHJvbWlzZTx1bmtub3duPiB7XG5cdFx0Ly8gRmV0Y2ggYW5kIGNhY2hlIHRoZSBjb2RlTGlzdCBmb3IgdmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzXG5cdFx0Y29uc3Qgb2RhdGFNb2RlbCA9IHRoaXMuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsO1xuXHRcdGNvbnN0IHZhbHVlTGlzdCA9IGF3YWl0IG9kYXRhTW9kZWwuZ2V0TWV0YU1vZGVsKCkucmVxdWVzdFZhbHVlTGlzdEluZm8ocHJvcGVydHlQYXRoKTtcblx0XHRjb25zdCBkZWZhdWx0VmFsdWVMaXN0ID0gdmFsdWVMaXN0W1wiXCJdO1xuXHRcdGNvbnN0IHNlbGVjdCA9IGRlZmF1bHRWYWx1ZUxpc3QuUGFyYW1ldGVycy5tYXAoKHBhcmFtOiB7IFZhbHVlTGlzdFByb3BlcnR5OiBzdHJpbmcgfSkgPT4gcGFyYW0uVmFsdWVMaXN0UHJvcGVydHkpLmpvaW4oXCIsXCIpO1xuXHRcdGNvbnN0IGxpc3RCaW5kaW5nID0gZGVmYXVsdFZhbHVlTGlzdC4kbW9kZWwuYmluZExpc3QoXCIvXCIgKyBkZWZhdWx0VmFsdWVMaXN0LkNvbGxlY3Rpb25QYXRoLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB7XG5cdFx0XHQkc2VsZWN0OiBzZWxlY3Rcblx0XHR9KTtcblx0XHRjb25zdCBkYXRhID0gYXdhaXQgbGlzdEJpbmRpbmcucmVxdWVzdENvbnRleHRzKCk7XG5cdFx0bGV0IHZhbHVlUHJvcGVydHk6IHN0cmluZztcblx0XHRsZXQgZGVzY3JpcHRpb25Qcm9wZXJ0eTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRcdGZvciAoY29uc3QgcGFyYW1ldGVyIG9mIGRlZmF1bHRWYWx1ZUxpc3QuUGFyYW1ldGVycykge1xuXHRcdFx0aWYgKHBhcmFtZXRlci5Mb2NhbERhdGFQcm9wZXJ0eT8uJFByb3BlcnR5UGF0aCA9PT0ga2V5KSB7XG5cdFx0XHRcdHZhbHVlUHJvcGVydHkgPSBwYXJhbWV0ZXIuVmFsdWVMaXN0UHJvcGVydHk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkZXNjcmlwdGlvblByb3BlcnR5ID0gcGFyYW1ldGVyLlZhbHVlTGlzdFByb3BlcnR5O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGZpbHRlckdyb3VwVmFsdWVzID0gW107XG5cdFx0Zm9yIChjb25zdCBkYXR1bSBvZiBkYXRhKSB7XG5cdFx0XHRjb25zdCBkYXRhb2JqID0gZGF0dW0uZ2V0T2JqZWN0KCk7XG5cdFx0XHRmaWx0ZXJHcm91cFZhbHVlcy5wdXNoKHtcblx0XHRcdFx0dmFsdWU6IGRhdGFvYmpbdmFsdWVQcm9wZXJ0eSFdLFxuXHRcdFx0XHRkZXNjcmlwdGlvbjogZGVzY3JpcHRpb25Qcm9wZXJ0eSA/IGRhdGFvYmpbZGVzY3JpcHRpb25Qcm9wZXJ0eV0gOiB1bmRlZmluZWRcblx0XHRcdH0pO1xuXHRcdH1cblx0XHR0aGlzLl9mZXRjaGVkQ29kZUxpc3Rba2V5XSA9IGZpbHRlckdyb3VwVmFsdWVzO1xuXHRcdGNvbnN0IGNvZGVMaXN0UHJvcGVydHkgPSB0aGlzLmZpbHRlckJhck1ldGFkYXRhLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSBrZXkpO1xuXHRcdGlmIChjb2RlTGlzdFByb3BlcnR5KSB7XG5cdFx0XHRjb2RlTGlzdFByb3BlcnR5LmNvZGVMaXN0ID0gZmlsdGVyR3JvdXBWYWx1ZXM7XG5cdFx0fVxuXHRcdHJldHVybiBmaWx0ZXJHcm91cFZhbHVlcztcblx0fVxuXG5cdGFzeW5jIG9uVG9rZW5zQ2hhbmdlZChlOiBVSTVFdmVudDx7IHRva2VuczogVG9rZW5EZWZpbml0aW9uW10gfSwgRWFzeUZpbHRlckJhckNvbnRhaW5lcj4pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCBmaWx0ZXJCYXIgPSBVSTVFbGVtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZmlsdGVyQmFyKSBhcyBGaWx0ZXJCYXI7XG5cdFx0Y29uc3QgZmlsdGVyQmFyQVBJID0gZmlsdGVyQmFyLmdldFBhcmVudCgpIGFzIEZpbHRlckJhckFQSTtcblx0XHRjb25zdCB0b2tlbnMgPSBlLmdldFBhcmFtZXRlcihcInRva2Vuc1wiKTtcblx0XHRjb25zdCBjbGVhckVkaXRGaWx0ZXIgPSB0b2tlbnMuc29tZSgodG9rZW5EZWZpbml0aW9uKSA9PiB0b2tlbkRlZmluaXRpb24ua2V5ID09PSBcIiRlZGl0U3RhdGVcIik7XG5cdFx0YXdhaXQgZmlsdGVyQmFyQVBJLl9jbGVhckZpbHRlclZhbHVlc1dpdGhPcHRpb25zKGZpbHRlckJhciwgeyBjbGVhckVkaXRGaWx0ZXIgfSk7XG5cdFx0dGhpcy5mb3JtYXRlRGF0YVR5cGVzKHRva2Vucyk7XG5cblx0XHRmb3IgKGNvbnN0IHRva2VuIG9mIHRva2Vucykge1xuXHRcdFx0aWYgKHRva2VuLmtleSA9PT0gXCIkZWRpdFN0YXRlXCIpIHtcblx0XHRcdFx0Ly8gY29udmVydCB0aGUgJGVkaXRTdGF0ZSBmaWx0ZXIgY29uZGl0aW9uXG5cdFx0XHRcdGZvciAoY29uc3QgdG9rZW5LZXlTcGVjaWZpY2F0aW9uIG9mIHRva2VuLmtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMpIHtcblx0XHRcdFx0XHRhd2FpdCBGaWx0ZXJVdGlscy5hZGRGaWx0ZXJWYWx1ZXMoXG5cdFx0XHRcdFx0XHRmaWx0ZXJCYXJBUEkuY29udGVudCxcblx0XHRcdFx0XHRcdHRva2VuLmtleSxcblx0XHRcdFx0XHRcdFwiRFJBRlRfRURJVF9TVEFURVwiLFxuXHRcdFx0XHRcdFx0dG9rZW5LZXlTcGVjaWZpY2F0aW9uLnNlbGVjdGVkVmFsdWVzXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly9CVCBhbmQgTkIgY2FzZSB0byBiZSBoYW5kbGVkIGluIGZ1dHVyZSwgY3VycmVudGx5IGl0cyBjcmFzaGluZ1xuXHRcdFx0XHRmb3IgKGNvbnN0IHRva2VuS2V5U3BlY2lmaWNhdGlvbiBvZiB0b2tlbi5rZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzKSB7XG5cdFx0XHRcdFx0Y29uc3QgeyBvcGVyYXRvciwgc2VsZWN0ZWRWYWx1ZXMgfSA9IHRva2VuS2V5U3BlY2lmaWNhdGlvbjtcblx0XHRcdFx0XHRhd2FpdCBGaWx0ZXJVdGlscy5hZGRGaWx0ZXJWYWx1ZXMoZmlsdGVyQmFyQVBJLmNvbnRlbnQsIHRva2VuLmtleSwgb3BlcmF0b3IsIHNlbGVjdGVkVmFsdWVzKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRhd2FpdCBmaWx0ZXJCYXJBUEkudHJpZ2dlclNlYXJjaCgpO1xuXHR9XG5cblx0Ly9XZSBuZWVkIHRoZSBiZWxvdyBmdW5jdGlvbiBzbyB0aGF0IHRoZSBkYXRlIG9iamVjdHMgYW5kIGRhdGVUaW1lT2Zmc2V0cyB3b3VsZCBiZSBjb252ZXJ0ZWQgdG8gc3RyaW5nIHR5cGUgYXMgdGhlIGRhdGUgb2JqZWN0IGlzIG5vdCBhIHZhbGlkIHR5cGUgaW4gVjQgd29ybGRcblx0Zm9ybWF0ZURhdGFUeXBlcyh0b2tlbnM6IFRva2VuRGVmaW5pdGlvbltdKTogdm9pZCB7XG5cdFx0Y29uc3QgZGF0ZVR5cGUgPSBuZXcgRGF0ZTEoKSxcblx0XHRcdGRhdGVUaW1lT2Zmc2V0VHlwZSA9IG5ldyBEYXRlVGltZU9mZnNldCh1bmRlZmluZWQsIHsgVjQ6IHRydWUgfSksXG5cdFx0XHR0aW1lT2ZEYXlUeXBlID0gbmV3IFRpbWVPZkRheSgpO1xuXHRcdHRva2Vucy5mb3JFYWNoKCh0b2tlbikgPT4ge1xuXHRcdFx0Y29uc3QgZWRtVHlwZSA9IHRoaXMuZmlsdGVyQmFyTWV0YWRhdGEuZmluZCgoZGF0YSkgPT4gZGF0YS5uYW1lID09PSB0b2tlbi5rZXkpPy5kYXRhVHlwZTtcblx0XHRcdHRva2VuLmtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMuZm9yRWFjaCgoa2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlKSA9PiB7XG5cdFx0XHRcdGxldCByZXF1aXJlZENvbnZlcnRlcjogT0RhdGFUeXBlO1xuXHRcdFx0XHRzd2l0Y2ggKGVkbVR5cGUpIHtcblx0XHRcdFx0XHRjYXNlIFwiRWRtLkRhdGVcIjpcblx0XHRcdFx0XHRcdHJlcXVpcmVkQ29udmVydGVyID0gZGF0ZVR5cGU7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlIFwiRWRtLlRpbWVPZkRheVwiOlxuXHRcdFx0XHRcdFx0cmVxdWlyZWRDb252ZXJ0ZXIgPSB0aW1lT2ZEYXlUeXBlO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSBcIkVkbS5EYXRlVGltZU9mZnNldFwiOlxuXHRcdFx0XHRcdFx0cmVxdWlyZWRDb252ZXJ0ZXIgPSBkYXRlVGltZU9mZnNldFR5cGU7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZS5zZWxlY3RlZFZhbHVlcy5mb3JFYWNoKCh2YWx1ZSwgaWR4KSA9PiB7XG5cdFx0XHRcdFx0a2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlLnNlbGVjdGVkVmFsdWVzW2lkeF0gPSByZXF1aXJlZENvbnZlcnRlci5wYXJzZVZhbHVlKHZhbHVlLCBcIm9iamVjdFwiKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdGFzeW5jIHNob3dWYWx1ZUhlbHBGb3JLZXkoa2V5OiBzdHJpbmcsIF9jdXJyZW50VmFsdWU6IHVua25vd24sIGZuQ2FsbGJhY2s6IEZ1bmN0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgZmlsdGVyQmFyID0gVUk1RWxlbWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmZpbHRlckJhcikgYXMgRmlsdGVyQmFyO1xuXHRcdGNvbnN0IGZpbHRlckJhckFQSSA9IGZpbHRlckJhci5nZXRQYXJlbnQoKSBhcyBGaWx0ZXJCYXJBUEk7XG5cdFx0YXdhaXQgZmlsdGVyQmFyQVBJLnNob3dGaWx0ZXJGaWVsZChrZXkpO1xuXHRcdGZpbHRlckJhckFQSS5vcGVuVmFsdWVIZWxwRm9yRmlsdGVyRmllbGQoa2V5LCB1bmRlZmluZWQsIGZuQ2FsbGJhY2spO1xuXHR9XG5cblx0b25CZWZvcmVRdWVyeVByb2Nlc3NpbmcoKTogdm9pZCB7XG5cdFx0Y29uc3QgdWlNb2RlbCA9IHRoaXMuZ2V0TW9kZWwoXCJ1aVwiKSBhcyBKU09OTW9kZWw7XG5cdFx0QnVzeUxvY2tlci5sb2NrKHVpTW9kZWwpO1xuXHR9XG5cblx0b25BZnRlclF1ZXJ5UHJvY2Vzc2luZygpOiB2b2lkIHtcblx0XHRjb25zdCB1aU1vZGVsID0gdGhpcy5nZXRNb2RlbChcInVpXCIpIGFzIEpTT05Nb2RlbDtcblx0XHRCdXN5TG9ja2VyLnVubG9jayh1aU1vZGVsKTtcblx0fVxuXG5cdGFzeW5jIG9uQ2xlYXJGaWx0ZXJzKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdC8vIEVtcHR5IGlucHV0OiBjbGVhciB0aGUgZmlsdGVycyBhbmQgcmVmcmVzaCB0aGUgbGlzdFxuXHRcdGNvbnN0IGZpbHRlckJhciA9IFVJNUVsZW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5maWx0ZXJCYXIpIGFzIEZpbHRlckJhcjtcblx0XHRjb25zdCBmaWx0ZXJCYXJBUEkgPSBmaWx0ZXJCYXIuZ2V0UGFyZW50KCkgYXMgRmlsdGVyQmFyQVBJO1xuXHRcdGF3YWl0IGZpbHRlckJhckFQSS5fY2xlYXJGaWx0ZXJWYWx1ZXNXaXRoT3B0aW9ucyhmaWx0ZXJCYXIpO1xuXHRcdGF3YWl0IGZpbHRlckJhckFQSS50cmlnZ2VyU2VhcmNoKCk7XG5cdH1cblxuXHRvblF1ZXJ5Q2hhbmdlZCgpOiB2b2lkIHtcblx0XHRjb25zdCBmaWx0ZXJCYXIgPSBVSTVFbGVtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZmlsdGVyQmFyKSBhcyBGaWx0ZXJCYXI7XG5cdFx0ZmlsdGVyQmFyLmZpcmVGaWx0ZXJzQ2hhbmdlZCh7IGNvbmRpdGlvbnNCYXNlZDogdHJ1ZSB9KTtcblx0fVxuXG5cdGNyZWF0ZUNvbnRlbnQoKTogRWFzeUZpbHRlckJhckNvbnRhaW5lciB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxFYXN5RmlsdGVyQmFyQ29udGFpbmVyXG5cdFx0XHRcdGNvbnRleHRQYXRoPXt0aGlzLmdldE93bmVyQ29udGV4dFBhdGgoKX1cblx0XHRcdFx0YXBwSWQ9e3RoaXMuZ2V0QXBwbGljYXRpb25JZCgpfVxuXHRcdFx0XHRmaWx0ZXJCYXJNZXRhZGF0YT17dGhpcy5maWx0ZXJCYXJNZXRhZGF0YX1cblx0XHRcdFx0ZWFzeUZpbHRlckxpYj17dGhpcy5lYXN5RmlsdGVyUGF0aH1cblx0XHRcdFx0c2hvd1ZhbHVlSGVscD17KGUpOiB2b2lkID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3dWYWx1ZUhlbHBGb3JLZXkoZS5nZXRQYXJhbWV0ZXIoXCJrZXlcIiksIGUuZ2V0UGFyYW1ldGVyKFwidmFsdWVzXCIpLCAoc2VsZWN0ZWRDb25kaXRpb25zOiBDb25kaXRpb25PYmplY3RbXSkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgdG9rZW5TZWxlY3RlZFZhbHVlczogVG9rZW5TZWxlY3RlZFZhbHVlc0RlZmluaXRpb25bXSA9IHNlbGVjdGVkQ29uZGl0aW9ucy5tYXAoKGNvbmRpdGlvbikgPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAoY29uZGl0aW9uLm9wZXJhdG9yID09PSBGaWx0ZXJPcGVyYXRvci5CVCB8fCBjb25kaXRpb24ub3BlcmF0b3IgPT09IEZpbHRlck9wZXJhdG9yLk5CKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0XHRcdG9wZXJhdG9yOiBjb25kaXRpb24ub3BlcmF0b3IsXG5cdFx0XHRcdFx0XHRcdFx0XHRzZWxlY3RlZFZhbHVlczogY29uZGl0aW9uLnZhbHVlcyBhcyBCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXNcblx0XHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRvcGVyYXRvcjogY29uZGl0aW9uLm9wZXJhdG9yIGFzIEV4Y2x1ZGU8RmlsdGVyT3BlcmF0b3IsIEZpbHRlck9wZXJhdG9yLkJUIHwgRmlsdGVyT3BlcmF0b3IuTkI+LFxuXHRcdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRWYWx1ZXM6IGNvbmRpdGlvbi52YWx1ZXMgYXMgc3RyaW5nW10gfCBib29sZWFuW10gfCBudW1iZXJbXSB8IERhdGVbXVxuXHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0ZS5nZXRQYXJhbWV0ZXIoXCJyZXNvbHZlXCIpKHRva2VuU2VsZWN0ZWRWYWx1ZXMpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9fVxuXHRcdFx0XHRyZWNvbW1lbmRlZFZhbHVlcz17dGhpcy5yZWNvbW1lbmRlZFF1ZXJpZXN9XG5cdFx0XHRcdHF1ZXJ5Q2hhbmdlZD17dGhpcy5vblF1ZXJ5Q2hhbmdlZC5iaW5kKHRoaXMpfVxuXHRcdFx0XHR0b2tlbnNDaGFuZ2VkPXt0aGlzLm9uVG9rZW5zQ2hhbmdlZC5iaW5kKHRoaXMpfVxuXHRcdFx0XHRiZWZvcmVRdWVyeVByb2Nlc3Npbmc9e3RoaXMub25CZWZvcmVRdWVyeVByb2Nlc3NpbmcuYmluZCh0aGlzKX1cblx0XHRcdFx0YWZ0ZXJRdWVyeVByb2Nlc3Npbmc9e3RoaXMub25BZnRlclF1ZXJ5UHJvY2Vzc2luZy5iaW5kKHRoaXMpfVxuXHRcdFx0XHRjbGVhckZpbHRlcnM9e3RoaXMub25DbGVhckZpbHRlcnMuYmluZCh0aGlzKX1cblx0XHRcdC8+XG5cdFx0KSBhcyBFYXN5RmlsdGVyQmFyQ29udGFpbmVyO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF1Q0E7QUFDQTtBQUNBO0FB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
|
|
@@ -362,12 +362,6 @@ export default class EasyFilterBar extends BuildingBlockBase implements IViewSta
|
|
|
362
362
|
await filterBarAPI.triggerSearch();
|
|
363
363
|
}
|
|
364
364
|
|
|
365
|
-
onExecuteSearch(): void {
|
|
366
|
-
const filterBar = UI5Element.getElementById(this.filterBar) as FilterBar;
|
|
367
|
-
const filterBarAPI = filterBar.getParent() as FilterBarAPI;
|
|
368
|
-
filterBarAPI.triggerSearch();
|
|
369
|
-
}
|
|
370
|
-
|
|
371
365
|
onQueryChanged(): void {
|
|
372
366
|
const filterBar = UI5Element.getElementById(this.filterBar) as FilterBar;
|
|
373
367
|
filterBar.fireFiltersChanged({ conditionsBased: true });
|
|
@@ -404,7 +398,6 @@ export default class EasyFilterBar extends BuildingBlockBase implements IViewSta
|
|
|
404
398
|
beforeQueryProcessing={this.onBeforeQueryProcessing.bind(this)}
|
|
405
399
|
afterQueryProcessing={this.onAfterQueryProcessing.bind(this)}
|
|
406
400
|
clearFilters={this.onClearFilters.bind(this)}
|
|
407
|
-
executeSearch={this.onExecuteSearch.bind(this)}
|
|
408
401
|
/>
|
|
409
402
|
) as EasyFilterBarContainer;
|
|
410
403
|
}
|