@sapui5/sap.fe.core 1.136.11 → 1.136.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AppStateHandler.js +8 -2
- package/src/sap/fe/core/AppStateHandler.ts +9 -1
- package/src/sap/fe/core/TemplateComponent.js +1 -1
- package/src/sap/fe/core/TemplateComponent.ts +1 -3
- package/src/sap/fe/core/controllerextensions/EditFlow.js +73 -23
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +113 -43
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +7 -4
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +8 -5
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +1 -0
- package/src/sap/fe/core/controllerextensions/Routing.js +6 -2
- package/src/sap/fe/core/controllerextensions/Routing.ts +4 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +8 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +8 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.js +2 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.ts +1 -0
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +6 -5
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +15 -5
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.js +29 -1
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.tsx +32 -0
- package/src/sap/fe/core/converters/controls/Common/Action.js +3 -2
- package/src/sap/fe/core/converters/controls/Common/Action.ts +2 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +31 -36
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +47 -57
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +4 -3
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +3 -2
- package/src/sap/fe/core/formatters/FPMFormatter.js +2 -2
- package/src/sap/fe/core/formatters/FPMFormatter.ts +1 -1
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.js +4 -1
- package/src/sap/fe/core/helpers/ModelHelper.ts +4 -1
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/messagebundle_da.properties +1 -1
- package/src/sap/fe/core/messagebundle_ko.properties +3 -3
- package/src/sap/fe/core/messagebundle_uk.properties +2 -2
- package/src/sap/fe/core/messagebundle_vi.properties +4 -4
- package/src/sap/fe/core/rootView/Fcl.controller.js +1 -1
- package/src/sap/fe/core/rootView/Fcl.controller.ts +6 -1
- package/src/sap/fe/core/services/CollaborationManagerServiceFactory.js +17 -29
- package/src/sap/fe/core/services/CollaborationManagerServiceFactory.ts +23 -26
- package/src/sap/fe/core/services/RoutingServiceFactory.js +9 -5
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +12 -6
package/package.json
CHANGED
package/src/sap/fe/core/.library
CHANGED
|
@@ -59,9 +59,10 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/base/ClassSupp
|
|
|
59
59
|
routerProxy = appComponent.getRouterProxy(),
|
|
60
60
|
hash = routerProxy.getHash(),
|
|
61
61
|
isStickyMode = ModelHelper.isStickySessionSupported(appComponent.getMetaModel()),
|
|
62
|
+
isHiddenDraftEnabled = this.oAppComponent.getEnvironmentCapabilities().getCapabilities().HiddenDraft?.enabled || false,
|
|
62
63
|
newHash = navigationService.replaceInnerAppStateKey(routerProxy.getHash(), appStateKey);
|
|
63
64
|
if (newHash && this.simultaneousCreateRequest[stateIdentifier] === 0 && newHash !== hash) {
|
|
64
|
-
routerProxy.navToHash(newHash, undefined, undefined, undefined,
|
|
65
|
+
routerProxy.navToHash(newHash, undefined, undefined, undefined, isStickyMode || isHiddenDraftEnabled);
|
|
65
66
|
this.bNoRouteChange = true;
|
|
66
67
|
}
|
|
67
68
|
Log.info("APPSTATE: navToHash");
|
|
@@ -210,6 +211,11 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/base/ClassSupp
|
|
|
210
211
|
if (internalModelContext && internalModelContext.getProperty("fclColumnClosed") === true) {
|
|
211
212
|
const technicalKeysObject = internalModelContext.getProperty("technicalKeysOfLastSeenRecord");
|
|
212
213
|
const bindingContext = view?.getBindingContext();
|
|
214
|
+
if (bindingContext.getObject() === undefined) {
|
|
215
|
+
// After executing a bound action in an FCL app, we set the EditState to dirty, which refreshes the LR table, and invalidate all bindingContexts.
|
|
216
|
+
// This ensure it won't throw an error in those cases.
|
|
217
|
+
return false;
|
|
218
|
+
}
|
|
213
219
|
const path = bindingContext && bindingContext.getPath() || "";
|
|
214
220
|
const metaModel = bindingContext?.getModel().getMetaModel();
|
|
215
221
|
const metaPath = metaModel?.getMetaPath(path);
|
|
@@ -357,4 +363,4 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/base/ClassSupp
|
|
|
357
363
|
*/
|
|
358
364
|
return AppStateHandler;
|
|
359
365
|
}, true);
|
|
360
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZUeXBlIiwibGlicmFyeSIsIlNLSVBfTUVSR0VfS0VZIiwiUkVQTEFDRV9DT01QTEVURV9BUFBTVEFURSIsIkFwcFN0YXRlSGFuZGxlciIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9jbGFzcyIsIl9BcHBTdGF0ZUhhbmRsZXIiLCJfQmFzZU9iamVjdCIsIm9BcHBDb21wb25lbnQiLCJfdGhpcyIsImNhbGwiLCJfbUN1cnJlbnRBcHBTdGF0ZSIsInNJZCIsImdldElkIiwic2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdCIsImJOb1JvdXRlQ2hhbmdlIiwiTG9nIiwiaW5mbyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiX2dldElubmVyQXBwU3RhdGVGb3JWaWV3IiwiaW5uZXJBcHBTdGF0ZSIsInN0YXRlSWRlbnRpZmllciIsIl9hZGRBcHBTdGF0ZUluSGFzaCIsImFwcFN0YXRlS2V5IiwiYXBwQ29tcG9uZW50IiwibmF2aWdhdGlvblNlcnZpY2UiLCJnZXROYXZpZ2F0aW9uU2VydmljZSIsInJvdXRlclByb3h5IiwiZ2V0Um91dGVyUHJveHkiLCJoYXNoIiwiZ2V0SGFzaCIsImlzU3RpY2t5TW9kZSIsIk1vZGVsSGVscGVyIiwiaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiZ2V0TWV0YU1vZGVsIiwibmV3SGFzaCIsInJlcGxhY2VJbm5lckFwcFN0YXRlS2V5IiwibmF2VG9IYXNoIiwidW5kZWZpbmVkIiwiX2NyZWF0ZUFwcFN0YXRlS2V5IiwiYXBwU3RhdGVEYXRhIiwic3RvcmVJbm5lckFwcFN0YXRlQXN5bmMiLCJfZ2V0QXBwU3RhdGVJbmZvIiwiY3JlYXRlQXBwUGFyYW1ldGVycyIsInJlcGxhY2VIYXNoIiwidmlld0lkIiwiYXBwU3RhdGUiLCJjdXJyZW50U3RhdGVUb1VwZGF0ZSIsImRlZXBFcXVhbCIsIm9FcnJvciIsImVycm9yIiwiZmluZEFwcFN0YXRlSW5IYXNoIiwiY3JlYXRlQXBwU3RhdGUiLCJnZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcyIsImdldENhcGFiaWxpdGllcyIsIkFwcFN0YXRlIiwiQnVzeUxvY2tlciIsImlzTG9ja2VkIiwic2tpcE1lcmdlIiwicm9vdENvbnRyb2xsZXIiLCJnZXRSb290Q29udHJvbCIsImdldENvbnRyb2xsZXIiLCJ2aWV3U3RhdGUiLCJFcnJvciIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsInJvdXRpbmdJc0NvbXBsZXRlIiwicmV0cmlldmVWaWV3U3RhdGUiLCJfY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMiLCJvQXBwRGF0YSIsInNOYXZUeXBlIiwiT2JqZWN0IiwiYXNzaWduIiwic2VsZWN0aW9uVmFyaWFudERlZmF1bHRzIiwib0RlZmF1bHRlZFNlbGVjdGlvblZhcmlhbnQiLCJzZWxlY3Rpb25WYXJpYW50Iiwib1NlbGVjdGlvblZhcmlhbnQiLCJyZXF1aXJlc1N0YW5kYXJkVmFyaWFudCIsImJOYXZTZWxWYXJIYXNEZWZhdWx0c09ubHkiLCJuYXZpZ2F0aW9uVHlwZSIsInNldFJUQVZlcnNpb25XYXNBY3RpdmF0ZWQiLCJpZCIsInZhbHVlIiwidmVyc2lvbkFjdGl2YXRpb25TdGF0dXMiLCJnZXRSVEFWZXJzaW9uV2FzQWN0aXZhdGVkIiwiX2NoZWNrSWZMYXN0U2VlblJlY29yZCIsInZpZXciLCJpbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwiZ2V0UHJvcGVydHkiLCJ0ZWNobmljYWxLZXlzT2JqZWN0IiwiYmluZGluZ0NvbnRleHQiLCJwYXRoIiwiZ2V0UGF0aCIsIm1ldGFNb2RlbCIsImdldE1vZGVsIiwibWV0YVBhdGgiLCJnZXRNZXRhUGF0aCIsInRlY2huaWNhbEtleXMiLCJnZXRPYmplY3QiLCJlbGVtZW50Iiwia2V5VmFsdWUiLCJzZXRQcm9wZXJ0eSIsIl9nZXRBcHBTdGF0ZURhdGEiLCJuYXZUeXBlIiwia2V5IiwiaSIsImh5YnJpZCIsImlBcHBTdGF0ZSIsImtleXMiLCJsZW5ndGgiLCJhcHBseUFwcFN0YXRlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJjaGVja0lmTGFzdFNlZW5SZWNvcmQiLCJsb2NrIiwib05hdmlnYXRpb25TZXJ2aWNlIiwidG9FUzZQcm9taXNlIiwicGFyc2VOYXZpZ2F0aW9uIiwiY2F0Y2giLCJhRXJyb3JEYXRhIiwid2FybmluZyIsInRoZW4iLCJhUmVzdWx0cyIsImluaXRpYWwiLCJvUm9vdENvbnRyb2xsZXIiLCJzaG91bGRBcHBseVN0YXRlIiwiX2lzU3RhdGVFbXB0eUZvcklBcHBTdGF0ZU5hdlR5cGUiLCJfZ2V0SW5pdGlhbFN0YXRlQXBwbGllZCIsIl9zZXRJbml0aWFsU3RhdGVBcHBsaWVkIiwiYXBwbHlWaWV3U3RhdGUiLCJmaW5hbGx5IiwidW5sb2NrIiwiY2hlY2tJZlJvdXRlQ2hhbmdlZEJ5SUFwcCIsInJlc2V0Um91dGVDaGFuZ2VkQnlJQXBwIiwicmVzZXRWZXJzaW9uQWN0aXZhdGlvblN0YXR1cyIsImhhc093blByb3BlcnR5IiwiQmFzZU9iamVjdCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQXBwU3RhdGVIYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IGRlZXBFcXVhbCBmcm9tIFwic2FwL2Jhc2UvdXRpbC9kZWVwRXF1YWxcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgQXBwQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9BcHBDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgTmF2aWdhdGlvblBhcmFtZXRlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9WaWV3U3RhdGVcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHRvRVM2UHJvbWlzZSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Ub0VTNlByb21pc2VcIjtcbmltcG9ydCB0eXBlIHsgSW5uZXJBcHBEYXRhIH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgdHlwZSB7IFNlbGVjdGlvblZhcmlhbnQgfSBmcm9tIFwic2FwL2ZlL25hdmlnYXRpb24vU2VsZWN0aW9uVmFyaWFudFwiO1xuaW1wb3J0IGxpYnJhcnkgZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL2xpYnJhcnlcIjtcbmltcG9ydCBCYXNlT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9PYmplY3RcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IEJ1c3lMb2NrZXIgZnJvbSBcIi4vY29udHJvbGxlcmV4dGVuc2lvbnMvQnVzeUxvY2tlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCIuL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcblxuY29uc3QgTmF2VHlwZSA9IGxpYnJhcnkuTmF2VHlwZTtcbnR5cGUgQXBwU3RhdGUgPSB7XG5cdHNraXBNZXJnZT86IGJvb2xlYW47XG5cdFtrZXk6IHN0cmluZ106IHVua25vd247XG59O1xuZXhwb3J0IHR5cGUgQXBwRGF0YSA9IHtcblx0b0RlZmF1bHRlZFNlbGVjdGlvblZhcmlhbnQ6IFNlbGVjdGlvblZhcmlhbnQ7XG5cdG9TZWxlY3Rpb25WYXJpYW50OiBTZWxlY3Rpb25WYXJpYW50O1xuXHRiTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5OiBib29sZWFuO1xuXHRhcHBTdGF0ZTogQXBwU3RhdGU7XG5cdGlBcHBTdGF0ZT86IHtcblx0XHRhcHBTdGF0ZTogQXBwU3RhdGU7XG5cdH07XG59O1xuY29uc3QgU0tJUF9NRVJHRV9LRVkgPSBcInNraXBNZXJnZVwiO1xuZXhwb3J0IHR5cGUgSUFwcFN0YXRlID0ge1xuXHRhcHBTdGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59O1xuXG5leHBvcnQgdHlwZSBBcHBEYXRhSW5mbyA9IHtcblx0YXBwU3RhdGVEYXRhOiB7IGFwcFN0YXRlOiBvYmplY3QgfCB1bmRlZmluZWQgfTtcblx0YXBwU3RhdGVLZXk6IHN0cmluZyB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVBcHBQYXJhbWV0ZXJzID0ge1xuXHRyZXBsYWNlSGFzaD86IGJvb2xlYW47XG5cdHNraXBNZXJnZT86IGJvb2xlYW47XG5cdHZpZXdJZD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFZlcnNpb25BY3RpdmF0ZWQgPSB7XG5cdHZlcnNpb25XYXNBY3RpdmF0ZWQ6IGJvb2xlYW47XG59O1xuXG5jb25zdCBSRVBMQUNFX0NPTVBMRVRFX0FQUFNUQVRFID0gXCJSRVBMQUNFX0NPTVBMRVRFX0FQUFNUQVRFXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLkFwcFN0YXRlSGFuZGxlclwiKVxuY2xhc3MgQXBwU3RhdGVIYW5kbGVyIGV4dGVuZHMgQmFzZU9iamVjdCB7XG5cdHB1YmxpYyBzSWQ6IHN0cmluZztcblxuXHRwdWJsaWMgb0FwcENvbXBvbmVudDogQXBwQ29tcG9uZW50O1xuXG5cdHB1YmxpYyBiTm9Sb3V0ZUNoYW5nZTogYm9vbGVhbjtcblxuXHRwcml2YXRlIF9tQ3VycmVudEFwcFN0YXRlPzogQXBwU3RhdGUgPSB7fTtcblxuXHRzaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuXG5cdHN0YXRpYyB2ZXJzaW9uQWN0aXZhdGlvblN0YXR1czogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcblxuXHRjb25zdHJ1Y3RvcihvQXBwQ29tcG9uZW50OiBBcHBDb21wb25lbnQpIHtcblx0XHRzdXBlcigpO1xuXHRcdHRoaXMub0FwcENvbXBvbmVudCA9IG9BcHBDb21wb25lbnQ7XG5cdFx0dGhpcy5zSWQgPSBgJHtvQXBwQ29tcG9uZW50LmdldElkKCl9L0FwcFN0YXRlSGFuZGxlcmA7XG5cdFx0dGhpcy5zaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0ID0ge307XG5cdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IGZhbHNlO1xuXHRcdExvZy5pbmZvKFwiQVBQU1RBVEUgOiBBcHBzdGF0ZSBoYW5kbGVyIGluaXRpYWxpemVkXCIpO1xuXHR9XG5cblx0Z2V0SWQoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5zSWQ7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHZpZXcgc3BlY2lmaWMgYXBwc3RhdGUuXG5cdCAqIEBwYXJhbSBpbm5lckFwcFN0YXRlIE92ZXJhbGwgYXBwc3RhdGVcblx0ICogQHBhcmFtIHN0YXRlSWRlbnRpZmllciBTdGF0ZSBpZGVudGlmaWVyLiBJZCBvZiB0aGUgbG9jYWwgdmlld1xuXHQgKiBAcmV0dXJucyBJbm5lciBhcHBzdGF0ZVxuXHQgKi9cblx0X2dldElubmVyQXBwU3RhdGVGb3JWaWV3KGlubmVyQXBwU3RhdGU6IElubmVyQXBwRGF0YSB8IHVuZGVmaW5lZCwgc3RhdGVJZGVudGlmaWVyOiBzdHJpbmcpOiBJbm5lckFwcERhdGEgfCB1bmRlZmluZWQge1xuXHRcdGlmIChzdGF0ZUlkZW50aWZpZXIgPT09IFJFUExBQ0VfQ09NUExFVEVfQVBQU1RBVEUgfHwgIWlubmVyQXBwU3RhdGUpIHtcblx0XHRcdC8vIG92ZXJhbGwgYXBwIHN0YXRlIG5lZWRzIHRvIGJlIGNvbnNpZGVyZWQuXG5cdFx0XHRyZXR1cm4gaW5uZXJBcHBTdGF0ZTtcblx0XHR9XG5cblx0XHQvLyB3ZSB0YWtlIHRoZSBzdWJzZXQgb2YgdGhlIGFwcCBzdGF0ZSB3cnQgdG8gdGhlIGxvY2FsIHZpZXcgaWQuXG5cdFx0cmV0dXJuIHtcblx0XHRcdFtzdGF0ZUlkZW50aWZpZXJdOiBpbm5lckFwcFN0YXRlW3N0YXRlSWRlbnRpZmllciBhcyBrZXlvZiB0eXBlb2YgaW5uZXJBcHBTdGF0ZV0gfHwge31cblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZCBhcHBzdGF0ZSBpbiBoYXNoLlxuXHQgKiBAcGFyYW0gYXBwU3RhdGVLZXkgQXBwc3RhdGUga2V5XG5cdCAqIEBwYXJhbSBzdGF0ZUlkZW50aWZpZXIgU3RhdGUgaWRlbnRpZmllci4gSWQgb2YgdGhlIGxvY2FsIHZpZXdcblx0ICovXG5cdF9hZGRBcHBTdGF0ZUluSGFzaChhcHBTdGF0ZUtleTogc3RyaW5nLCBzdGF0ZUlkZW50aWZpZXI6IHN0cmluZyk6IHZvaWQge1xuXHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IHRoaXMub0FwcENvbXBvbmVudCxcblx0XHRcdG5hdmlnYXRpb25TZXJ2aWNlID0gYXBwQ29tcG9uZW50LmdldE5hdmlnYXRpb25TZXJ2aWNlKCksXG5cdFx0XHRyb3V0ZXJQcm94eSA9IGFwcENvbXBvbmVudC5nZXRSb3V0ZXJQcm94eSgpLFxuXHRcdFx0aGFzaCA9IHJvdXRlclByb3h5LmdldEhhc2goKSxcblx0XHRcdGlzU3RpY2t5TW9kZSA9IE1vZGVsSGVscGVyLmlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZChhcHBDb21wb25lbnQuZ2V0TWV0YU1vZGVsKCkpLFxuXHRcdFx0bmV3SGFzaCA9IG5hdmlnYXRpb25TZXJ2aWNlLnJlcGxhY2VJbm5lckFwcFN0YXRlS2V5KHJvdXRlclByb3h5LmdldEhhc2goKSwgYXBwU3RhdGVLZXkpO1xuXG5cdFx0aWYgKG5ld0hhc2ggJiYgdGhpcy5zaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0W3N0YXRlSWRlbnRpZmllcl0gPT09IDAgJiYgbmV3SGFzaCAhPT0gaGFzaCkge1xuXHRcdFx0cm91dGVyUHJveHkubmF2VG9IYXNoKG5ld0hhc2gsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsICFpc1N0aWNreU1vZGUpO1xuXHRcdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IHRydWU7XG5cdFx0fVxuXHRcdExvZy5pbmZvKFwiQVBQU1RBVEU6IG5hdlRvSGFzaFwiKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGUgQXBwc3RhdGUgS2V5LlxuXHQgKiBAcGFyYW0gYXBwU3RhdGVEYXRhIEFwcHN0YXRlXG5cdCAqIEBwYXJhbSBzdGF0ZUlkZW50aWZpZXIgU3RhdGUgaWRlbnRpZmllci4gSWQgb2YgdGhlIGxvY2FsIHZpZXdcblx0ICogQHJldHVybnMgQXBwc3RhdGUgS2V5XG5cdCAqL1xuXHRhc3luYyBfY3JlYXRlQXBwU3RhdGVLZXkoYXBwU3RhdGVEYXRhOiBJbm5lckFwcERhdGEsIHN0YXRlSWRlbnRpZmllcjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcblx0XHRjb25zdCBhcHBDb21wb25lbnQgPSB0aGlzLm9BcHBDb21wb25lbnQsXG5cdFx0XHRuYXZpZ2F0aW9uU2VydmljZSA9IGFwcENvbXBvbmVudC5nZXROYXZpZ2F0aW9uU2VydmljZSgpO1xuXG5cdFx0aWYgKHRoaXMuc2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdFtzdGF0ZUlkZW50aWZpZXJdKSB7XG5cdFx0XHQvLyBhbnkgb3RoZXIgdmFsdWVcblx0XHRcdHRoaXMuc2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdFtzdGF0ZUlkZW50aWZpZXJdKys7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIDAgb3IgdW5kZWZpbmVkXG5cdFx0XHR0aGlzLnNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3Rbc3RhdGVJZGVudGlmaWVyXSA9IDE7XG5cdFx0fVxuXG5cdFx0Y29uc3QgYXBwU3RhdGVLZXkgPSBhd2FpdCBuYXZpZ2F0aW9uU2VydmljZS5zdG9yZUlubmVyQXBwU3RhdGVBc3luYyhhcHBTdGF0ZURhdGEsIHRydWUsIHRydWUpO1xuXG5cdFx0dGhpcy5zaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0W3N0YXRlSWRlbnRpZmllcl0tLTtcblxuXHRcdExvZy5pbmZvKFwiQVBQU1RBVEU6IEFwcHN0YXRlIHN0b3JlZFwiKTtcblx0XHRyZXR1cm4gYXBwU3RhdGVLZXk7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhcHBzdGF0ZSBpbmZvLlxuXHQgKiBAcGFyYW0gaW5uZXJBcHBTdGF0ZVxuXHQgKiBAcGFyYW0gY3JlYXRlQXBwUGFyYW1ldGVycyBQYXJhbWV0ZXJzIGZvciBjcmVhdGluZyBuZXcgYXBwc3RhdGVcblx0ICogQHBhcmFtIGNyZWF0ZUFwcFBhcmFtZXRlcnMucmVwbGFjZUhhc2ggQm9vbGVhbiB3aGljaCBkZXRlcm1pbmVzIHRvIHJlcGxhY2UgdGhlIGhhc2ggd2l0aCB0aGUgbmV3IGdlbmVyYXRlZCBrZXlcblx0ICogQHBhcmFtIGNyZWF0ZUFwcFBhcmFtZXRlcnMudmlld0lkIElkIG9mIHRoZSB2aWV3IGZvciB3aGljaCB3ZSBuZWVkIHRvIGNyZWF0ZSB0aGUgYXBwIHN0YXRlLiBUaGlzIGlzIHRvIGNyZWF0ZSBvciB1cGRhdGUgdmlldyBzcGVjaWZpYyBhcHBzdGF0ZS5cblx0ICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmluZyB0aGUgc3RvcmVkIGRhdGEgb3IgYXBwc3RhdGUga2V5XG5cdCAqL1xuXHRhc3luYyBfZ2V0QXBwU3RhdGVJbmZvKGlubmVyQXBwU3RhdGU6IElubmVyQXBwRGF0YSB8IHVuZGVmaW5lZCwgY3JlYXRlQXBwUGFyYW1ldGVycz86IENyZWF0ZUFwcFBhcmFtZXRlcnMpOiBQcm9taXNlPEFwcERhdGFJbmZvPiB7XG5cdFx0Y29uc3QgYXBwQ29tcG9uZW50ID0gdGhpcy5vQXBwQ29tcG9uZW50O1xuXHRcdGNvbnN0IHsgcmVwbGFjZUhhc2ggPSB0cnVlLCB2aWV3SWQ6IHN0YXRlSWRlbnRpZmllciA9IFJFUExBQ0VfQ09NUExFVEVfQVBQU1RBVEUgfSA9IGNyZWF0ZUFwcFBhcmFtZXRlcnMgPz8ge307XG5cblx0XHRsZXQgYXBwU3RhdGVLZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXHRcdGxldCBhcHBTdGF0ZURhdGEgPSB7IGFwcFN0YXRlOiB0aGlzLl9tQ3VycmVudEFwcFN0YXRlIH07XG5cblx0XHRjb25zdCBjdXJyZW50U3RhdGVUb1VwZGF0ZSA9IHRoaXMuX2dldElubmVyQXBwU3RhdGVGb3JWaWV3KHRoaXMuX21DdXJyZW50QXBwU3RhdGUsIHN0YXRlSWRlbnRpZmllcik7XG5cdFx0aWYgKGlubmVyQXBwU3RhdGUgJiYgIWRlZXBFcXVhbChjdXJyZW50U3RhdGVUb1VwZGF0ZSwgaW5uZXJBcHBTdGF0ZSkpIHtcblx0XHRcdC8vXG5cdFx0XHR0aGlzLl9tQ3VycmVudEFwcFN0YXRlID0geyAuLi50aGlzLl9tQ3VycmVudEFwcFN0YXRlLCAuLi4oaW5uZXJBcHBTdGF0ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgfTtcblx0XHRcdGFwcFN0YXRlRGF0YSA9IHsgYXBwU3RhdGU6IHRoaXMuX21DdXJyZW50QXBwU3RhdGUgfTtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGFwcFN0YXRlS2V5ID0gYXdhaXQgdGhpcy5fY3JlYXRlQXBwU3RhdGVLZXkoYXBwU3RhdGVEYXRhLCBzdGF0ZUlkZW50aWZpZXIpO1xuXHRcdFx0XHRpZiAocmVwbGFjZUhhc2ggPT09IHRydWUpIHtcblx0XHRcdFx0XHR0aGlzLl9hZGRBcHBTdGF0ZUluSGFzaChhcHBTdGF0ZUtleSwgc3RhdGVJZGVudGlmaWVyKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBjYXRjaCAob0Vycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdExvZy5lcnJvcihvRXJyb3IgYXMgc3RyaW5nKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3Qgcm91dGVyUHJveHkgPSBhcHBDb21wb25lbnQuZ2V0Um91dGVyUHJveHkoKSxcblx0XHRcdFx0aGFzaCA9IHJvdXRlclByb3h5LmdldEhhc2goKTtcblx0XHRcdGFwcFN0YXRlS2V5ID0gcm91dGVyUHJveHkuZmluZEFwcFN0YXRlSW5IYXNoKGhhc2gpIGFzIHN0cmluZztcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdGFwcFN0YXRlRGF0YSxcblx0XHRcdGFwcFN0YXRlS2V5XG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIG9yIHVwZGF0ZXMgdGhlIGFwcHN0YXRlLlxuXHQgKiBSZXBsYWNlcyB0aGUgaGFzaCB3aXRoIHRoZSBuZXcgYXBwc3RhdGUgYmFzZWQgb24gcmVwbGFjZUhhc2guXG5cdCAqIEBwYXJhbSBjcmVhdGVBcHBQYXJhbWV0ZXJzIFBhcmFtZXRlcnMgZm9yIGNyZWF0aW5nIG5ldyBhcHBzdGF0ZVxuXHQgKiBAcGFyYW0gY3JlYXRlQXBwUGFyYW1ldGVycy5yZXBsYWNlSGFzaCBCb29sZWFuIHdoaWNoIGRldGVybWluZXMgdG8gcmVwbGFjZSB0aGUgaGFzaCB3aXRoIHRoZSBuZXcgZ2VuZXJhdGVkIGtleVxuXHQgKiBAcGFyYW0gY3JlYXRlQXBwUGFyYW1ldGVycy5za2lwTWVyZ2UgQm9vbGVhbiB3aGljaCBkZXRlcm1pbmVzIHRvIHNraXAgdGhlIGtleSB1c2VyIHNoaW5lIHRocm91Z2hcblx0ICogQHBhcmFtIGNyZWF0ZUFwcFBhcmFtZXRlcnMudmlld0lkIElkIG9mIHRoZSB2aWV3IGZvciB3aGljaCB3ZSBuZWVkIHRvIGNyZWF0ZSB0aGUgYXBwIHN0YXRlLiBUaGlzIGlzIHRvIGNyZWF0ZSBvciB1cGRhdGUgdmlldyBzcGVjaWZpYyBhcHBzdGF0ZVxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRoZSBzdG9yZWQgZGF0YSBvciBhcHBzdGF0ZSBrZXlcblx0ICovXG5cdGFzeW5jIGNyZWF0ZUFwcFN0YXRlKGNyZWF0ZUFwcFBhcmFtZXRlcnM/OiBDcmVhdGVBcHBQYXJhbWV0ZXJzKTogUHJvbWlzZTx2b2lkIHwgQXBwRGF0YUluZm8+IHtcblx0XHRjb25zdCBhcHBDb21wb25lbnQgPSB0aGlzLm9BcHBDb21wb25lbnQ7XG5cdFx0aWYgKCFhcHBDb21wb25lbnQuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKS5nZXRDYXBhYmlsaXRpZXMoKS5BcHBTdGF0ZSB8fCBCdXN5TG9ja2VyLmlzTG9ja2VkKHRoaXMpKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IHsgc2tpcE1lcmdlID0gZmFsc2UsIHZpZXdJZDogc3RhdGVJZGVudGlmaWVyID0gUkVQTEFDRV9DT01QTEVURV9BUFBTVEFURSB9ID0gY3JlYXRlQXBwUGFyYW1ldGVycyA/PyB7fSxcblx0XHRcdHJvb3RDb250cm9sbGVyID0gYXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkuZ2V0Q29udHJvbGxlcigpO1xuXG5cdFx0aWYgKCFyb290Q29udHJvbGxlci52aWV3U3RhdGUpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgdmlld1N0YXRlIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIG5vdCBhdmFpbGFibGUgZm9yIGNvbnRyb2xsZXI6ICR7cm9vdENvbnRyb2xsZXIuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCl9YCk7XG5cdFx0fVxuXG5cdFx0Ly8gSW4gY2FzZSwgb24gbG9hZCBvZiBGQ0wgYXBwIHdlIGhhdmUgbXVsdGlwbGUgdmlld3MoTFIsIE9QLCBzdWItT1AuLi4pIGFuZCB1cmwgaGFzIGlBcHBTdGF0ZSgxKS5cblx0XHQvLyBUaGUgTFIgdmlldyBsb2FkcyB3aXRoIGFwcGxpZWQgaUFwcFN0YXRlKDEpIGFuZCBjYWxscyBjcmVhdGVBcHBTdGF0ZShleGFtcGxlOiBvblNlYXJjaCBldmVudCBpbiBMUikgYmVmb3JlIE9QIGlzIGxvYWRlZC5cblx0XHQvLyBUaGlzIGNyZWF0ZXMgaUFwcFN0YXRlKDIpIGJlZm9yZSBpQXBwU3RhdGUoMSkgaXMgYXBwbGllZCB0byBPUC5cblx0XHQvLyBTbywgd2UgdHJ5IHRvIHdhaXQgdGlsbCB0aGUgcm91dGluZyBpcyBjb21wbGV0ZS5cblx0XHRhd2FpdCByb290Q29udHJvbGxlci5yb3V0aW5nSXNDb21wbGV0ZSgpO1xuXG5cdFx0Ly8gR2V0IGFwcFN0YXRlIHRvIHVwZGF0ZVxuXHRcdGxldCBpbm5lckFwcFN0YXRlID0gKGF3YWl0IHJvb3RDb250cm9sbGVyLnZpZXdTdGF0ZS5yZXRyaWV2ZVZpZXdTdGF0ZSgpKSBhcyBJbm5lckFwcERhdGEgfCB1bmRlZmluZWQ7XG5cdFx0aW5uZXJBcHBTdGF0ZSA9IHRoaXMuX2dldElubmVyQXBwU3RhdGVGb3JWaWV3KGlubmVyQXBwU3RhdGUsIHN0YXRlSWRlbnRpZmllcik7XG5cdFx0aWYgKHNraXBNZXJnZSkge1xuXHRcdFx0aW5uZXJBcHBTdGF0ZSA9IHsgLi4uaW5uZXJBcHBTdGF0ZSwgLi4ueyBza2lwTWVyZ2UgfSB9O1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLl9nZXRBcHBTdGF0ZUluZm8oaW5uZXJBcHBTdGF0ZSwgY3JlYXRlQXBwUGFyYW1ldGVycyk7XG5cdH1cblxuXHRfY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMob0FwcERhdGE6IEFwcERhdGEsIHNOYXZUeXBlOiBzdHJpbmcpOiBOYXZpZ2F0aW9uUGFyYW1ldGVyIHtcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgb0FwcERhdGEsIHtcblx0XHRcdHNlbGVjdGlvblZhcmlhbnREZWZhdWx0czogb0FwcERhdGEub0RlZmF1bHRlZFNlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRzZWxlY3Rpb25WYXJpYW50OiBvQXBwRGF0YS5vU2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdHJlcXVpcmVzU3RhbmRhcmRWYXJpYW50OiAhb0FwcERhdGEuYk5hdlNlbFZhckhhc0RlZmF1bHRzT25seSxcblx0XHRcdG5hdmlnYXRpb25UeXBlOiBzTmF2VHlwZVxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIFJUQSAoUnVudGltZSBBZGFwdGF0aW9uKSB2ZXJzaW9uIGFjdGl2YXRpb24gc3RhdHVzIGZvciBhIHNwZWNpZmljIElELlxuXHQgKiBAcGFyYW0gaWQgVGhlIHVuaXF1ZSBpZGVudGlmaWVyLlxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgUlRBIHZlcnNpb24gd2FzIGFjdGl2YXRlZC5cblx0ICovXG5cdHN0YXRpYyBzZXRSVEFWZXJzaW9uV2FzQWN0aXZhdGVkKGlkOiBzdHJpbmcsIHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG5cdFx0dGhpcy52ZXJzaW9uQWN0aXZhdGlvblN0YXR1c1tpZF0gPSB2YWx1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIFJUQSAoUnVudGltZSBBZGFwdGF0aW9uKSB2ZXJzaW9uIGFjdGl2YXRpb24gc3RhdHVzIGZvciBhIHNwZWNpZmljIElELlxuXHQgKiBAcGFyYW0gaWQgVGhlIHVuaXF1ZSBpZGVudGlmaWVyLlxuXHQgKiBAcmV0dXJucyBUaGUgYWN0aXZhdGlvbiBzdGF0dXMgb3IgdW5kZWZpbmVkIGlmIG5vdCBzZXQuXG5cdCAqL1xuXHRzdGF0aWMgZ2V0UlRBVmVyc2lvbldhc0FjdGl2YXRlZChpZDogc3RyaW5nKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMudmVyc2lvbkFjdGl2YXRpb25TdGF0dXNbaWRdO1xuXHR9XG5cblx0X2NoZWNrSWZMYXN0U2VlblJlY29yZCh2aWV3PzogVmlldyk6IGJvb2xlYW4ge1xuXHRcdC8vZ2V0dGluZyB0aGUgaW50ZXJuYWwgbW9kZWwgY29udGV4dCBpbiBvcmRlciB0byBmZXRjaCB0aGUgdGVjaG5pY2Fsa2V5cyBvZiBsYXN0IHNlZW4gcmVjb3JkIGFuZCBjbG9zZSBjb2x1bW4gZmxhZyBzZXQgaW4gdGhlIGludGVybmFscm91dGluZyBmb3IgcmV0YWluaW5nIHNldHRpbmdzIGluIHBlcnNpc3RlbmNlIG1vZGVcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsQ29udGV4dCA9IHZpZXcgJiYgKHZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dCk7XG5cdFx0aWYgKGludGVybmFsTW9kZWxDb250ZXh0ICYmIGludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KFwiZmNsQ29sdW1uQ2xvc2VkXCIpID09PSB0cnVlKSB7XG5cdFx0XHRjb25zdCB0ZWNobmljYWxLZXlzT2JqZWN0ID0gaW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJ0ZWNobmljYWxLZXlzT2ZMYXN0U2VlblJlY29yZFwiKTtcblx0XHRcdGNvbnN0IGJpbmRpbmdDb250ZXh0ID0gdmlldz8uZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBDb250ZXh0O1xuXHRcdFx0Y29uc3QgcGF0aCA9IChiaW5kaW5nQ29udGV4dCAmJiBiaW5kaW5nQ29udGV4dC5nZXRQYXRoKCkpIHx8IFwiXCI7XG5cdFx0XHRjb25zdCBtZXRhTW9kZWwgPSBiaW5kaW5nQ29udGV4dD8uZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRcdGNvbnN0IG1ldGFQYXRoID0gbWV0YU1vZGVsPy5nZXRNZXRhUGF0aChwYXRoKTtcblx0XHRcdGNvbnN0IHRlY2huaWNhbEtleXMgPSBtZXRhTW9kZWw/LmdldE9iamVjdChgJHttZXRhUGF0aH0vJFR5cGUvJEtleWApO1xuXHRcdFx0aWYgKHRlY2huaWNhbEtleXMpIHtcblx0XHRcdFx0Zm9yIChjb25zdCBlbGVtZW50IG9mIHRlY2huaWNhbEtleXMpIHtcblx0XHRcdFx0XHRjb25zdCBrZXlWYWx1ZSA9IGJpbmRpbmdDb250ZXh0LmdldE9iamVjdCgpW2VsZW1lbnRdO1xuXHRcdFx0XHRcdGlmIChrZXlWYWx1ZSAhPT0gdGVjaG5pY2FsS2V5c09iamVjdFtlbGVtZW50XSkge1xuXHRcdFx0XHRcdFx0aW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJmY2xDb2x1bW5DbG9zZWRcIiwgZmFsc2UpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQvL3RoZSByZWNvcmQgb3BlbmVkIGlzIG5vdCB0aGUgbGFzdCBzZWVuIG9uZSA6IG5vIG5lZWQgdG8gcGVyc2lzdCB0aGUgY2hhbmdlcywgcmVzZXQgdG8gZGVmYXVsdCBpbnN0ZWFkXG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdF9nZXRBcHBTdGF0ZURhdGEob0FwcERhdGE6IEFwcERhdGEsIHZpZXdJZD86IHN0cmluZywgbmF2VHlwZT86IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkIHtcblx0XHRsZXQga2V5ID0gXCJcIixcblx0XHRcdGkgPSAwO1xuXHRcdGNvbnN0IGFwcFN0YXRlRGF0YSA9IG5hdlR5cGUgPT09IE5hdlR5cGUuaHlicmlkID8gb0FwcERhdGEuaUFwcFN0YXRlIDogb0FwcERhdGE7XG5cblx0XHRpZiAoYXBwU3RhdGVEYXRhPy5hcHBTdGF0ZSkge1xuXHRcdFx0Zm9yIChpOyBpIDwgT2JqZWN0LmtleXMoYXBwU3RhdGVEYXRhLmFwcFN0YXRlKS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAoT2JqZWN0LmtleXMoYXBwU3RhdGVEYXRhLmFwcFN0YXRlKVtpXSA9PT0gdmlld0lkKSB7XG5cdFx0XHRcdFx0a2V5ID0gT2JqZWN0LmtleXMoYXBwU3RhdGVEYXRhLmFwcFN0YXRlKVtpXTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoYXBwU3RhdGVEYXRhPy5hcHBTdGF0ZSkge1xuXHRcdFx0cmV0dXJuIGtleVxuXHRcdFx0XHQ/IHtcblx0XHRcdFx0XHRcdFtPYmplY3Qua2V5cyhhcHBTdGF0ZURhdGEuYXBwU3RhdGUpW2ldXTogYXBwU3RhdGVEYXRhLmFwcFN0YXRlW2tleV0gfHwge31cblx0XHRcdFx0ICB9XG5cdFx0XHRcdDoge307XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEFwcGxpZXMgYW4gYXBwc3RhdGUgYnkgZmV0Y2hpbmcgYXBwZGF0YSBhbmQgcGFzc2luZyBpdCB0byBfYXBwbHlBcHBzdGF0ZVRvUGFnZS5cblx0ICogQHBhcmFtIHZpZXcgVGhlIHZpZXcgZm9yIHdoaWNoIHRoZSBhcHAgc3RhdGUgbXVzdCBiZSBhcHBsaWVkLiBJZiBubyB2aWV3IGlzIHByb3ZpZGVkLCB0aGVuIGFwcCBzdGF0ZSBvZiBhbGwgdGhlIHZpZXdzIGlzIGFwcGxpZWQuXG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSBmb3IgYXN5bmMgaGFuZGxpbmdcblx0ICovXG5cdGFzeW5jIGFwcGx5QXBwU3RhdGUodmlldz86IFZpZXcpOiBQcm9taXNlPHZvaWQgfCB7fT4ge1xuXHRcdGlmIChBcHBTdGF0ZUhhbmRsZXIuZ2V0UlRBVmVyc2lvbldhc0FjdGl2YXRlZCh0aGlzLm9BcHBDb21wb25lbnQuZ2V0SWQoKSkpIHtcblx0XHRcdEFwcFN0YXRlSGFuZGxlci5zZXRSVEFWZXJzaW9uV2FzQWN0aXZhdGVkKHRoaXMub0FwcENvbXBvbmVudC5nZXRJZCgpLCBmYWxzZSk7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXHRcdGNvbnN0IHZpZXdJZCA9IHZpZXc/LmdldElkKCk7XG5cdFx0aWYgKCF0aGlzLm9BcHBDb21wb25lbnQuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKS5nZXRDYXBhYmlsaXRpZXMoKS5BcHBTdGF0ZSB8fCBCdXN5TG9ja2VyLmlzTG9ja2VkKHRoaXMsIHZpZXdJZCkpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cblx0XHRjb25zdCBjaGVja0lmTGFzdFNlZW5SZWNvcmQgPSB0aGlzLl9jaGVja0lmTGFzdFNlZW5SZWNvcmQodmlldyk7XG5cdFx0aWYgKGNoZWNrSWZMYXN0U2VlblJlY29yZCA9PT0gdHJ1ZSkge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdH1cblx0XHQvLyBsb2NrIHRoZSBhcHBseSBzdGF0ZSBmb3IgdGhlIGN1cnJlbnQgdmlld1xuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzLCB2aWV3SWQpO1xuXHRcdC8vIGxvY2sgdGhlIEFwcCBTdGF0ZSBoYW5kbGVyLCB1c2VkIHRvIGF2b2lkIGEgY3JlYXRpb24gb2YgYXBwIHN0YXRlIGR1cmluZyBhcHBseVxuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzKTtcblx0XHQvLyBEb25lIGZvciBidXN5IGluZGljYXRvclxuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKSk7XG5cdFx0Y29uc3Qgb05hdmlnYXRpb25TZXJ2aWNlID0gdGhpcy5vQXBwQ29tcG9uZW50LmdldE5hdmlnYXRpb25TZXJ2aWNlKCk7XG5cdFx0Ly8gVE9ETyBvTmF2aWdhdGlvblNlcnZpY2UucGFyc2VOYXZpZ2F0aW9uKCkgc2hvdWxkIHJldHVybiBFUzYgcHJvbWlzZSBpbnN0ZWFkIGpRdWVyeS5wcm9taXNlXG5cdFx0cmV0dXJuIHRvRVM2UHJvbWlzZTx1bmtub3duW10+KG9OYXZpZ2F0aW9uU2VydmljZS5wYXJzZU5hdmlnYXRpb24oKSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoYUVycm9yRGF0YTogdW5rbm93bltdKSB7XG5cdFx0XHRcdGlmICghYUVycm9yRGF0YSkge1xuXHRcdFx0XHRcdGFFcnJvckRhdGEgPSBbXTtcblx0XHRcdFx0fVxuXHRcdFx0XHRMb2cud2FybmluZyhcIkFQUFNUQVRFOiBQYXJzZSBOYXZpZ2F0aW9uIGZhaWxlZFwiLCBhRXJyb3JEYXRhWzBdIGFzIHN0cmluZyk7XG5cdFx0XHRcdHJldHVybiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0LyogYXBwIGRhdGEgKi9cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGFFcnJvckRhdGFbMV0sXG5cdFx0XHRcdFx0YUVycm9yRGF0YVsyXVxuXHRcdFx0XHRdO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKGFzeW5jIChhUmVzdWx0czogdW5rbm93bltdKSA9PiB7XG5cdFx0XHRcdExvZy5pbmZvKFwiQVBQU1RBVEU6IFBhcnNlIE5hdmlnYXRpb24gZG9uZVwiKTtcblxuXHRcdFx0XHQvLyBhUmVzdWx0c1sxXSA9PiBvU3RhcnR1cFBhcmFtZXRlcnMgKG5vdCBldmFsdWF0ZWQpXG5cdFx0XHRcdGNvbnN0IG9BcHBEYXRhID0gKGFSZXN1bHRzWzBdIHx8IHt9KSBhcyBBcHBEYXRhLFxuXHRcdFx0XHRcdHNOYXZUeXBlID0gKGFSZXN1bHRzWzJdIGFzIHN0cmluZykgfHwgTmF2VHlwZS5pbml0aWFsLFxuXHRcdFx0XHRcdG9Sb290Q29udHJvbGxlciA9IHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpLmdldENvbnRyb2xsZXIoKTtcblx0XHRcdFx0Ly8gYXBwbHkgdGhlIGFwcHN0YXRlIGRlcGVuZGluZyB1cG9uIHRoZSB2aWV3IChMUi9PUClcblx0XHRcdFx0Y29uc3QgYXBwU3RhdGVEYXRhID0gdGhpcy5fZ2V0QXBwU3RhdGVEYXRhKG9BcHBEYXRhLCB2aWV3SWQsIHNOYXZUeXBlKTtcblx0XHRcdFx0Ly8gZmV0Y2ggdGhlIHNraXBNZXJnZSBmbGFnIGZyb20gYXBwU3RhdGUgZm9yIHNhdmUgYXMgdGlsZVxuXHRcdFx0XHRjb25zdCBza2lwTWVyZ2U6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBvQXBwRGF0YT8uYXBwU3RhdGU/LltTS0lQX01FUkdFX0tFWV07XG5cdFx0XHRcdHRoaXMuX21DdXJyZW50QXBwU3RhdGUgPVxuXHRcdFx0XHRcdHNOYXZUeXBlID09PSBOYXZUeXBlLmlBcHBTdGF0ZSB8fCBzTmF2VHlwZSA9PT0gTmF2VHlwZS5oeWJyaWQgPyB7IC4uLnRoaXMuX21DdXJyZW50QXBwU3RhdGUsIC4uLmFwcFN0YXRlRGF0YSB9IDoge307XG5cdFx0XHRcdGxldCBzaG91bGRBcHBseVN0YXRlID0gdHJ1ZTtcblxuXHRcdFx0XHRpZiAoIW9Sb290Q29udHJvbGxlci52aWV3U3RhdGUpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYHZpZXdTdGF0ZSBleHRlbnNpb24gcmVxdWlyZWQgZm9yIGNvbnRyb2xsZXIgJHtvUm9vdENvbnRyb2xsZXIuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCl9YCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG9Sb290Q29udHJvbGxlci52aWV3U3RhdGUuX2lzU3RhdGVFbXB0eUZvcklBcHBTdGF0ZU5hdlR5cGUob0FwcERhdGEsIHNOYXZUeXBlKSkge1xuXHRcdFx0XHRcdGlmICghb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZS5fZ2V0SW5pdGlhbFN0YXRlQXBwbGllZCgpKSB7XG5cdFx0XHRcdFx0XHRvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlLl9zZXRJbml0aWFsU3RhdGVBcHBsaWVkKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHNob3VsZEFwcGx5U3RhdGUgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCBhcHBseVZpZXdTdGF0ZSA9IGF3YWl0IG9Sb290Q29udHJvbGxlci52aWV3U3RhdGUuYXBwbHlWaWV3U3RhdGUoXG5cdFx0XHRcdFx0dmlld0lkID8gYXBwU3RhdGVEYXRhIDogdGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSxcblx0XHRcdFx0XHR0aGlzLl9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyhvQXBwRGF0YSwgc05hdlR5cGUpLFxuXHRcdFx0XHRcdHNraXBNZXJnZVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRpZiAoIXNob3VsZEFwcGx5U3RhdGUpIHtcblx0XHRcdFx0XHRyZXR1cm4ge307XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIGFwcGx5Vmlld1N0YXRlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChvRXJyb3I6IHVua25vd24pIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiYXBwU3RhdGUgY291bGQgbm90IGJlIGFwcGxpZWRcIiwgb0Vycm9yIGFzIHN0cmluZyk7XG5cdFx0XHRcdHRocm93IG9FcnJvcjtcblx0XHRcdH0pXG5cdFx0XHQuZmluYWxseSgoKSA9PiB7XG5cdFx0XHRcdC8vIHVubG9jayBhcHBseSBzdGF0ZSBmb3IgdGhlIGN1cnJlbnQgdmlld1xuXHRcdFx0XHRCdXN5TG9ja2VyLnVubG9jayh0aGlzLCB2aWV3SWQpO1xuXHRcdFx0XHQvLyB1bmxvY2sgdGhlIGFwcCBzdGF0ZSBoYW5kbGVyLCBzbyB0aGF0IGFwcCBzdGF0ZSBjcmVhdGlvbiBjYW4gaGFwcGVuIG5vdy5cblx0XHRcdFx0QnVzeUxvY2tlci51bmxvY2sodGhpcyk7XG5cdFx0XHRcdC8vIHVubG9jayB0aGUgUm9vdENvbnRyb2wgdG8gcmVtb3ZlIHRoZSBidXN5IGluZGljYXRvci5cblx0XHRcdFx0QnVzeUxvY2tlci51bmxvY2sodGhpcy5vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkpO1xuXHRcdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogVG8gY2hlY2sgaXMgcm91dGUgaXMgY2hhbmdlZCBieSBjaGFuZ2UgaW4gdGhlIGlBUFBTdGF0ZS5cblx0ICogQHJldHVybnMgYHRydWVgIGlmIHRoZSByb3V0ZSBoYXMgY2huYWdlZFxuXHQgKi9cblx0Y2hlY2tJZlJvdXRlQ2hhbmdlZEJ5SUFwcCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5iTm9Sb3V0ZUNoYW5nZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXNldCB0aGUgcm91dGUgY2hhbmdlZCBieSBpQVBQU3RhdGUuXG5cdCAqL1xuXHRyZXNldFJvdXRlQ2hhbmdlZEJ5SUFwcCgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5iTm9Sb3V0ZUNoYW5nZSkge1xuXHRcdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IGZhbHNlO1xuXHRcdH1cblx0fVxuXG5cdC8vIFJlc2V0IGFsbCBhY3RpdmF0aW9uIHN0YXR1c2VzIGluIEFwcFN0YXRlSGFuZGxlci52ZXJzaW9uQWN0aXZhdGlvblN0YXR1cyB0byBmYWxzZVxuXHRzdGF0aWMgcmVzZXRWZXJzaW9uQWN0aXZhdGlvblN0YXR1cygpOiB2b2lkIHtcblx0XHRmb3IgKGNvbnN0IGlkIGluIHRoaXMudmVyc2lvbkFjdGl2YXRpb25TdGF0dXMpIHtcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy52ZXJzaW9uQWN0aXZhdGlvblN0YXR1cywgaWQpKSB7XG5cdFx0XHRcdHRoaXMudmVyc2lvbkFjdGl2YXRpb25TdGF0dXNbaWRdID0gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogQGdsb2JhbFxuICovXG5leHBvcnQgZGVmYXVsdCBBcHBTdGF0ZUhhbmRsZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0VBZ0JBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDRCxPQUFPO0VBYy9CLE1BQU1FLGNBQWMsR0FBRyxXQUFXO0VBb0JsQyxNQUFNQyx5QkFBeUIsR0FBRywyQkFBMkI7RUFBQyxJQUd4REMsZUFBZSxJQUFBQyxJQUFBLEdBRHBCQyxjQUFjLENBQUMsNkJBQTZCLENBQUMsRUFBQUQsSUFBQSxDQUFBRSxNQUFBLElBQUFDLGdCQUFBLDBCQUFBQyxXQUFBO0lBYzdDLFNBQUFMLGdCQUFZTSxhQUEyQixFQUFFO01BQUEsSUFBQUMsS0FBQTtNQUN4Q0EsS0FBQSxHQUFBRixXQUFBLENBQUFHLElBQUEsS0FBTSxDQUFDO01BQUNELEtBQUEsQ0FQREUsaUJBQWlCLEdBQWMsQ0FBQyxDQUFDO01BUXhDRixLQUFBLENBQUtELGFBQWEsR0FBR0EsYUFBYTtNQUNsQ0MsS0FBQSxDQUFLRyxHQUFHLEdBQUcsR0FBR0osYUFBYSxDQUFDSyxLQUFLLENBQUMsQ0FBQyxrQkFBa0I7TUFDckRKLEtBQUEsQ0FBS0sseUJBQXlCLEdBQUcsQ0FBQyxDQUFDO01BQ25DTCxLQUFBLENBQUtNLGNBQWMsR0FBRyxLQUFLO01BQzNCQyxHQUFHLENBQUNDLElBQUksQ0FBQyx5Q0FBeUMsQ0FBQztNQUFDLE9BQUFSLEtBQUE7SUFDckQ7SUFBQ1MsY0FBQSxDQUFBaEIsZUFBQSxFQUFBSyxXQUFBO0lBQUEsSUFBQVksTUFBQSxHQUFBakIsZUFBQSxDQUFBa0IsU0FBQTtJQUFBRCxNQUFBLENBRUROLEtBQUssR0FBTCxTQUFBQSxLQUFLQSxDQUFBLEVBQVc7TUFDZixPQUFPLElBQUksQ0FBQ0QsR0FBRztJQUNoQjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FMQztJQUFBTyxNQUFBLENBTUFFLHdC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
|
|
366
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZUeXBlIiwibGlicmFyeSIsIlNLSVBfTUVSR0VfS0VZIiwiUkVQTEFDRV9DT01QTEVURV9BUFBTVEFURSIsIkFwcFN0YXRlSGFuZGxlciIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9jbGFzcyIsIl9BcHBTdGF0ZUhhbmRsZXIiLCJfQmFzZU9iamVjdCIsIm9BcHBDb21wb25lbnQiLCJfdGhpcyIsImNhbGwiLCJfbUN1cnJlbnRBcHBTdGF0ZSIsInNJZCIsImdldElkIiwic2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdCIsImJOb1JvdXRlQ2hhbmdlIiwiTG9nIiwiaW5mbyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiX2dldElubmVyQXBwU3RhdGVGb3JWaWV3IiwiaW5uZXJBcHBTdGF0ZSIsInN0YXRlSWRlbnRpZmllciIsIl9hZGRBcHBTdGF0ZUluSGFzaCIsImFwcFN0YXRlS2V5IiwiYXBwQ29tcG9uZW50IiwibmF2aWdhdGlvblNlcnZpY2UiLCJnZXROYXZpZ2F0aW9uU2VydmljZSIsInJvdXRlclByb3h5IiwiZ2V0Um91dGVyUHJveHkiLCJoYXNoIiwiZ2V0SGFzaCIsImlzU3RpY2t5TW9kZSIsIk1vZGVsSGVscGVyIiwiaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiZ2V0TWV0YU1vZGVsIiwiaXNIaWRkZW5EcmFmdEVuYWJsZWQiLCJnZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcyIsImdldENhcGFiaWxpdGllcyIsIkhpZGRlbkRyYWZ0IiwiZW5hYmxlZCIsIm5ld0hhc2giLCJyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleSIsIm5hdlRvSGFzaCIsInVuZGVmaW5lZCIsIl9jcmVhdGVBcHBTdGF0ZUtleSIsImFwcFN0YXRlRGF0YSIsInN0b3JlSW5uZXJBcHBTdGF0ZUFzeW5jIiwiX2dldEFwcFN0YXRlSW5mbyIsImNyZWF0ZUFwcFBhcmFtZXRlcnMiLCJyZXBsYWNlSGFzaCIsInZpZXdJZCIsImFwcFN0YXRlIiwiY3VycmVudFN0YXRlVG9VcGRhdGUiLCJkZWVwRXF1YWwiLCJvRXJyb3IiLCJlcnJvciIsImZpbmRBcHBTdGF0ZUluSGFzaCIsImNyZWF0ZUFwcFN0YXRlIiwiQXBwU3RhdGUiLCJCdXN5TG9ja2VyIiwiaXNMb2NrZWQiLCJza2lwTWVyZ2UiLCJyb290Q29udHJvbGxlciIsImdldFJvb3RDb250cm9sIiwiZ2V0Q29udHJvbGxlciIsInZpZXdTdGF0ZSIsIkVycm9yIiwiZ2V0TWV0YWRhdGEiLCJnZXROYW1lIiwicm91dGluZ0lzQ29tcGxldGUiLCJyZXRyaWV2ZVZpZXdTdGF0ZSIsIl9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyIsIm9BcHBEYXRhIiwic05hdlR5cGUiLCJPYmplY3QiLCJhc3NpZ24iLCJzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMiLCJvRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudCIsInNlbGVjdGlvblZhcmlhbnQiLCJvU2VsZWN0aW9uVmFyaWFudCIsInJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IiwiYk5hdlNlbFZhckhhc0RlZmF1bHRzT25seSIsIm5hdmlnYXRpb25UeXBlIiwic2V0UlRBVmVyc2lvbldhc0FjdGl2YXRlZCIsImlkIiwidmFsdWUiLCJ2ZXJzaW9uQWN0aXZhdGlvblN0YXR1cyIsImdldFJUQVZlcnNpb25XYXNBY3RpdmF0ZWQiLCJfY2hlY2tJZkxhc3RTZWVuUmVjb3JkIiwidmlldyIsImludGVybmFsTW9kZWxDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJnZXRQcm9wZXJ0eSIsInRlY2huaWNhbEtleXNPYmplY3QiLCJiaW5kaW5nQ29udGV4dCIsImdldE9iamVjdCIsInBhdGgiLCJnZXRQYXRoIiwibWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJtZXRhUGF0aCIsImdldE1ldGFQYXRoIiwidGVjaG5pY2FsS2V5cyIsImVsZW1lbnQiLCJrZXlWYWx1ZSIsInNldFByb3BlcnR5IiwiX2dldEFwcFN0YXRlRGF0YSIsIm5hdlR5cGUiLCJrZXkiLCJpIiwiaHlicmlkIiwiaUFwcFN0YXRlIiwia2V5cyIsImxlbmd0aCIsImFwcGx5QXBwU3RhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsImNoZWNrSWZMYXN0U2VlblJlY29yZCIsImxvY2siLCJvTmF2aWdhdGlvblNlcnZpY2UiLCJ0b0VTNlByb21pc2UiLCJwYXJzZU5hdmlnYXRpb24iLCJjYXRjaCIsImFFcnJvckRhdGEiLCJ3YXJuaW5nIiwidGhlbiIsImFSZXN1bHRzIiwiaW5pdGlhbCIsIm9Sb290Q29udHJvbGxlciIsInNob3VsZEFwcGx5U3RhdGUiLCJfaXNTdGF0ZUVtcHR5Rm9ySUFwcFN0YXRlTmF2VHlwZSIsIl9nZXRJbml0aWFsU3RhdGVBcHBsaWVkIiwiX3NldEluaXRpYWxTdGF0ZUFwcGxpZWQiLCJhcHBseVZpZXdTdGF0ZSIsImZpbmFsbHkiLCJ1bmxvY2siLCJjaGVja0lmUm91dGVDaGFuZ2VkQnlJQXBwIiwicmVzZXRSb3V0ZUNoYW5nZWRCeUlBcHAiLCJyZXNldFZlcnNpb25BY3RpdmF0aW9uU3RhdHVzIiwiaGFzT3duUHJvcGVydHkiLCJCYXNlT2JqZWN0Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJBcHBTdGF0ZUhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgZGVlcEVxdWFsIGZyb20gXCJzYXAvYmFzZS91dGlsL2RlZXBFcXVhbFwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBOYXZpZ2F0aW9uUGFyYW1ldGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1ZpZXdTdGF0ZVwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgdG9FUzZQcm9taXNlIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1RvRVM2UHJvbWlzZVwiO1xuaW1wb3J0IHR5cGUgeyBJbm5lckFwcERhdGEgfSBmcm9tIFwic2FwL2ZlL25hdmlnYXRpb24vTmF2aWdhdGlvbkhhbmRsZXJcIjtcbmltcG9ydCB0eXBlIHsgU2VsZWN0aW9uVmFyaWFudCB9IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgbGlicmFyeSBmcm9tIFwic2FwL2ZlL25hdmlnYXRpb24vbGlicmFyeVwiO1xuaW1wb3J0IEJhc2VPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL09iamVjdFwiO1xuaW1wb3J0IHR5cGUgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgQnVzeUxvY2tlciBmcm9tIFwiLi9jb250cm9sbGVyZXh0ZW5zaW9ucy9CdXN5TG9ja2VyXCI7XG5pbXBvcnQgdHlwZSB7IEhpZGRlbkRyYWZ0IH0gZnJvbSBcIi4vY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcIi4vaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuXG5jb25zdCBOYXZUeXBlID0gbGlicmFyeS5OYXZUeXBlO1xudHlwZSBBcHBTdGF0ZSA9IHtcblx0c2tpcE1lcmdlPzogYm9vbGVhbjtcblx0W2tleTogc3RyaW5nXTogdW5rbm93bjtcbn07XG5leHBvcnQgdHlwZSBBcHBEYXRhID0ge1xuXHRvRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudDogU2VsZWN0aW9uVmFyaWFudDtcblx0b1NlbGVjdGlvblZhcmlhbnQ6IFNlbGVjdGlvblZhcmlhbnQ7XG5cdGJOYXZTZWxWYXJIYXNEZWZhdWx0c09ubHk6IGJvb2xlYW47XG5cdGFwcFN0YXRlOiBBcHBTdGF0ZTtcblx0aUFwcFN0YXRlPzoge1xuXHRcdGFwcFN0YXRlOiBBcHBTdGF0ZTtcblx0fTtcbn07XG5jb25zdCBTS0lQX01FUkdFX0tFWSA9IFwic2tpcE1lcmdlXCI7XG5leHBvcnQgdHlwZSBJQXBwU3RhdGUgPSB7XG5cdGFwcFN0YXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn07XG5cbmV4cG9ydCB0eXBlIEFwcERhdGFJbmZvID0ge1xuXHRhcHBTdGF0ZURhdGE6IHsgYXBwU3RhdGU6IG9iamVjdCB8IHVuZGVmaW5lZCB9O1xuXHRhcHBTdGF0ZUtleTogc3RyaW5nIHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUFwcFBhcmFtZXRlcnMgPSB7XG5cdHJlcGxhY2VIYXNoPzogYm9vbGVhbjtcblx0c2tpcE1lcmdlPzogYm9vbGVhbjtcblx0dmlld0lkPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVmVyc2lvbkFjdGl2YXRlZCA9IHtcblx0dmVyc2lvbldhc0FjdGl2YXRlZDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IFJFUExBQ0VfQ09NUExFVEVfQVBQU1RBVEUgPSBcIlJFUExBQ0VfQ09NUExFVEVfQVBQU1RBVEVcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuQXBwU3RhdGVIYW5kbGVyXCIpXG5jbGFzcyBBcHBTdGF0ZUhhbmRsZXIgZXh0ZW5kcyBCYXNlT2JqZWN0IHtcblx0cHVibGljIHNJZDogc3RyaW5nO1xuXG5cdHB1YmxpYyBvQXBwQ29tcG9uZW50OiBBcHBDb21wb25lbnQ7XG5cblx0cHVibGljIGJOb1JvdXRlQ2hhbmdlOiBib29sZWFuO1xuXG5cdHByaXZhdGUgX21DdXJyZW50QXBwU3RhdGU/OiBBcHBTdGF0ZSA9IHt9O1xuXG5cdHNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3Q6IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG5cblx0c3RhdGljIHZlcnNpb25BY3RpdmF0aW9uU3RhdHVzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuXG5cdGNvbnN0cnVjdG9yKG9BcHBDb21wb25lbnQ6IEFwcENvbXBvbmVudCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5vQXBwQ29tcG9uZW50ID0gb0FwcENvbXBvbmVudDtcblx0XHR0aGlzLnNJZCA9IGAke29BcHBDb21wb25lbnQuZ2V0SWQoKX0vQXBwU3RhdGVIYW5kbGVyYDtcblx0XHR0aGlzLnNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3QgPSB7fTtcblx0XHR0aGlzLmJOb1JvdXRlQ2hhbmdlID0gZmFsc2U7XG5cdFx0TG9nLmluZm8oXCJBUFBTVEFURSA6IEFwcHN0YXRlIGhhbmRsZXIgaW5pdGlhbGl6ZWRcIik7XG5cdH1cblxuXHRnZXRJZCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLnNJZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdmlldyBzcGVjaWZpYyBhcHBzdGF0ZS5cblx0ICogQHBhcmFtIGlubmVyQXBwU3RhdGUgT3ZlcmFsbCBhcHBzdGF0ZVxuXHQgKiBAcGFyYW0gc3RhdGVJZGVudGlmaWVyIFN0YXRlIGlkZW50aWZpZXIuIElkIG9mIHRoZSBsb2NhbCB2aWV3XG5cdCAqIEByZXR1cm5zIElubmVyIGFwcHN0YXRlXG5cdCAqL1xuXHRfZ2V0SW5uZXJBcHBTdGF0ZUZvclZpZXcoaW5uZXJBcHBTdGF0ZTogSW5uZXJBcHBEYXRhIHwgdW5kZWZpbmVkLCBzdGF0ZUlkZW50aWZpZXI6IHN0cmluZyk6IElubmVyQXBwRGF0YSB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHN0YXRlSWRlbnRpZmllciA9PT0gUkVQTEFDRV9DT01QTEVURV9BUFBTVEFURSB8fCAhaW5uZXJBcHBTdGF0ZSkge1xuXHRcdFx0Ly8gb3ZlcmFsbCBhcHAgc3RhdGUgbmVlZHMgdG8gYmUgY29uc2lkZXJlZC5cblx0XHRcdHJldHVybiBpbm5lckFwcFN0YXRlO1xuXHRcdH1cblxuXHRcdC8vIHdlIHRha2UgdGhlIHN1YnNldCBvZiB0aGUgYXBwIHN0YXRlIHdydCB0byB0aGUgbG9jYWwgdmlldyBpZC5cblx0XHRyZXR1cm4ge1xuXHRcdFx0W3N0YXRlSWRlbnRpZmllcl06IGlubmVyQXBwU3RhdGVbc3RhdGVJZGVudGlmaWVyIGFzIGtleW9mIHR5cGVvZiBpbm5lckFwcFN0YXRlXSB8fCB7fVxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQWRkIGFwcHN0YXRlIGluIGhhc2guXG5cdCAqIEBwYXJhbSBhcHBTdGF0ZUtleSBBcHBzdGF0ZSBrZXlcblx0ICogQHBhcmFtIHN0YXRlSWRlbnRpZmllciBTdGF0ZSBpZGVudGlmaWVyLiBJZCBvZiB0aGUgbG9jYWwgdmlld1xuXHQgKi9cblx0X2FkZEFwcFN0YXRlSW5IYXNoKGFwcFN0YXRlS2V5OiBzdHJpbmcsIHN0YXRlSWRlbnRpZmllcjogc3RyaW5nKTogdm9pZCB7XG5cdFx0Y29uc3QgYXBwQ29tcG9uZW50ID0gdGhpcy5vQXBwQ29tcG9uZW50LFxuXHRcdFx0bmF2aWdhdGlvblNlcnZpY2UgPSBhcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKSxcblx0XHRcdHJvdXRlclByb3h5ID0gYXBwQ29tcG9uZW50LmdldFJvdXRlclByb3h5KCksXG5cdFx0XHRoYXNoID0gcm91dGVyUHJveHkuZ2V0SGFzaCgpLFxuXHRcdFx0aXNTdGlja3lNb2RlID0gTW9kZWxIZWxwZXIuaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkKGFwcENvbXBvbmVudC5nZXRNZXRhTW9kZWwoKSksXG5cdFx0XHRpc0hpZGRlbkRyYWZ0RW5hYmxlZCA9XG5cdFx0XHRcdCh0aGlzLm9BcHBDb21wb25lbnQuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKS5nZXRDYXBhYmlsaXRpZXMoKS5IaWRkZW5EcmFmdCBhcyBIaWRkZW5EcmFmdCk/LmVuYWJsZWQgfHwgZmFsc2UsXG5cdFx0XHRuZXdIYXNoID0gbmF2aWdhdGlvblNlcnZpY2UucmVwbGFjZUlubmVyQXBwU3RhdGVLZXkocm91dGVyUHJveHkuZ2V0SGFzaCgpLCBhcHBTdGF0ZUtleSk7XG5cblx0XHRpZiAobmV3SGFzaCAmJiB0aGlzLnNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3Rbc3RhdGVJZGVudGlmaWVyXSA9PT0gMCAmJiBuZXdIYXNoICE9PSBoYXNoKSB7XG5cdFx0XHRyb3V0ZXJQcm94eS5uYXZUb0hhc2gobmV3SGFzaCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgaXNTdGlja3lNb2RlIHx8IGlzSGlkZGVuRHJhZnRFbmFibGVkKTtcblx0XHRcdHRoaXMuYk5vUm91dGVDaGFuZ2UgPSB0cnVlO1xuXHRcdH1cblx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBuYXZUb0hhc2hcIik7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlIEFwcHN0YXRlIEtleS5cblx0ICogQHBhcmFtIGFwcFN0YXRlRGF0YSBBcHBzdGF0ZVxuXHQgKiBAcGFyYW0gc3RhdGVJZGVudGlmaWVyIFN0YXRlIGlkZW50aWZpZXIuIElkIG9mIHRoZSBsb2NhbCB2aWV3XG5cdCAqIEByZXR1cm5zIEFwcHN0YXRlIEtleVxuXHQgKi9cblx0YXN5bmMgX2NyZWF0ZUFwcFN0YXRlS2V5KGFwcFN0YXRlRGF0YTogSW5uZXJBcHBEYXRhLCBzdGF0ZUlkZW50aWZpZXI6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG5cdFx0Y29uc3QgYXBwQ29tcG9uZW50ID0gdGhpcy5vQXBwQ29tcG9uZW50LFxuXHRcdFx0bmF2aWdhdGlvblNlcnZpY2UgPSBhcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKTtcblxuXHRcdGlmICh0aGlzLnNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3Rbc3RhdGVJZGVudGlmaWVyXSkge1xuXHRcdFx0Ly8gYW55IG90aGVyIHZhbHVlXG5cdFx0XHR0aGlzLnNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3Rbc3RhdGVJZGVudGlmaWVyXSsrO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyAwIG9yIHVuZGVmaW5lZFxuXHRcdFx0dGhpcy5zaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0W3N0YXRlSWRlbnRpZmllcl0gPSAxO1xuXHRcdH1cblxuXHRcdGNvbnN0IGFwcFN0YXRlS2V5ID0gYXdhaXQgbmF2aWdhdGlvblNlcnZpY2Uuc3RvcmVJbm5lckFwcFN0YXRlQXN5bmMoYXBwU3RhdGVEYXRhLCB0cnVlLCB0cnVlKTtcblxuXHRcdHRoaXMuc2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdFtzdGF0ZUlkZW50aWZpZXJdLS07XG5cblx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBBcHBzdGF0ZSBzdG9yZWRcIik7XG5cdFx0cmV0dXJuIGFwcFN0YXRlS2V5O1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYXBwc3RhdGUgaW5mby5cblx0ICogQHBhcmFtIGlubmVyQXBwU3RhdGVcblx0ICogQHBhcmFtIGNyZWF0ZUFwcFBhcmFtZXRlcnMgUGFyYW1ldGVycyBmb3IgY3JlYXRpbmcgbmV3IGFwcHN0YXRlXG5cdCAqIEBwYXJhbSBjcmVhdGVBcHBQYXJhbWV0ZXJzLnJlcGxhY2VIYXNoIEJvb2xlYW4gd2hpY2ggZGV0ZXJtaW5lcyB0byByZXBsYWNlIHRoZSBoYXNoIHdpdGggdGhlIG5ldyBnZW5lcmF0ZWQga2V5XG5cdCAqIEBwYXJhbSBjcmVhdGVBcHBQYXJhbWV0ZXJzLnZpZXdJZCBJZCBvZiB0aGUgdmlldyBmb3Igd2hpY2ggd2UgbmVlZCB0byBjcmVhdGUgdGhlIGFwcCBzdGF0ZS4gVGhpcyBpcyB0byBjcmVhdGUgb3IgdXBkYXRlIHZpZXcgc3BlY2lmaWMgYXBwc3RhdGUuXG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZpbmcgdGhlIHN0b3JlZCBkYXRhIG9yIGFwcHN0YXRlIGtleVxuXHQgKi9cblx0YXN5bmMgX2dldEFwcFN0YXRlSW5mbyhpbm5lckFwcFN0YXRlOiBJbm5lckFwcERhdGEgfCB1bmRlZmluZWQsIGNyZWF0ZUFwcFBhcmFtZXRlcnM/OiBDcmVhdGVBcHBQYXJhbWV0ZXJzKTogUHJvbWlzZTxBcHBEYXRhSW5mbz4ge1xuXHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IHRoaXMub0FwcENvbXBvbmVudDtcblx0XHRjb25zdCB7IHJlcGxhY2VIYXNoID0gdHJ1ZSwgdmlld0lkOiBzdGF0ZUlkZW50aWZpZXIgPSBSRVBMQUNFX0NPTVBMRVRFX0FQUFNUQVRFIH0gPSBjcmVhdGVBcHBQYXJhbWV0ZXJzID8/IHt9O1xuXG5cdFx0bGV0IGFwcFN0YXRlS2V5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblx0XHRsZXQgYXBwU3RhdGVEYXRhID0geyBhcHBTdGF0ZTogdGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSB9O1xuXG5cdFx0Y29uc3QgY3VycmVudFN0YXRlVG9VcGRhdGUgPSB0aGlzLl9nZXRJbm5lckFwcFN0YXRlRm9yVmlldyh0aGlzLl9tQ3VycmVudEFwcFN0YXRlLCBzdGF0ZUlkZW50aWZpZXIpO1xuXHRcdGlmIChpbm5lckFwcFN0YXRlICYmICFkZWVwRXF1YWwoY3VycmVudFN0YXRlVG9VcGRhdGUsIGlubmVyQXBwU3RhdGUpKSB7XG5cdFx0XHQvL1xuXHRcdFx0dGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSA9IHsgLi4udGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSwgLi4uKGlubmVyQXBwU3RhdGUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIH07XG5cdFx0XHRhcHBTdGF0ZURhdGEgPSB7IGFwcFN0YXRlOiB0aGlzLl9tQ3VycmVudEFwcFN0YXRlIH07XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRhcHBTdGF0ZUtleSA9IGF3YWl0IHRoaXMuX2NyZWF0ZUFwcFN0YXRlS2V5KGFwcFN0YXRlRGF0YSwgc3RhdGVJZGVudGlmaWVyKTtcblx0XHRcdFx0aWYgKHJlcGxhY2VIYXNoID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0dGhpcy5fYWRkQXBwU3RhdGVJbkhhc2goYXBwU3RhdGVLZXksIHN0YXRlSWRlbnRpZmllcik7XG5cdFx0XHRcdH1cblx0XHRcdH0gY2F0Y2ggKG9FcnJvcjogdW5rbm93bikge1xuXHRcdFx0XHRMb2cuZXJyb3Iob0Vycm9yIGFzIHN0cmluZyk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IHJvdXRlclByb3h5ID0gYXBwQ29tcG9uZW50LmdldFJvdXRlclByb3h5KCksXG5cdFx0XHRcdGhhc2ggPSByb3V0ZXJQcm94eS5nZXRIYXNoKCk7XG5cdFx0XHRhcHBTdGF0ZUtleSA9IHJvdXRlclByb3h5LmZpbmRBcHBTdGF0ZUluSGFzaChoYXNoKSBhcyBzdHJpbmc7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRhcHBTdGF0ZURhdGEsXG5cdFx0XHRhcHBTdGF0ZUtleVxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBvciB1cGRhdGVzIHRoZSBhcHBzdGF0ZS5cblx0ICogUmVwbGFjZXMgdGhlIGhhc2ggd2l0aCB0aGUgbmV3IGFwcHN0YXRlIGJhc2VkIG9uIHJlcGxhY2VIYXNoLlxuXHQgKiBAcGFyYW0gY3JlYXRlQXBwUGFyYW1ldGVycyBQYXJhbWV0ZXJzIGZvciBjcmVhdGluZyBuZXcgYXBwc3RhdGVcblx0ICogQHBhcmFtIGNyZWF0ZUFwcFBhcmFtZXRlcnMucmVwbGFjZUhhc2ggQm9vbGVhbiB3aGljaCBkZXRlcm1pbmVzIHRvIHJlcGxhY2UgdGhlIGhhc2ggd2l0aCB0aGUgbmV3IGdlbmVyYXRlZCBrZXlcblx0ICogQHBhcmFtIGNyZWF0ZUFwcFBhcmFtZXRlcnMuc2tpcE1lcmdlIEJvb2xlYW4gd2hpY2ggZGV0ZXJtaW5lcyB0byBza2lwIHRoZSBrZXkgdXNlciBzaGluZSB0aHJvdWdoXG5cdCAqIEBwYXJhbSBjcmVhdGVBcHBQYXJhbWV0ZXJzLnZpZXdJZCBJZCBvZiB0aGUgdmlldyBmb3Igd2hpY2ggd2UgbmVlZCB0byBjcmVhdGUgdGhlIGFwcCBzdGF0ZS4gVGhpcyBpcyB0byBjcmVhdGUgb3IgdXBkYXRlIHZpZXcgc3BlY2lmaWMgYXBwc3RhdGVcblx0ICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmluZyB0aGUgc3RvcmVkIGRhdGEgb3IgYXBwc3RhdGUga2V5XG5cdCAqL1xuXHRhc3luYyBjcmVhdGVBcHBTdGF0ZShjcmVhdGVBcHBQYXJhbWV0ZXJzPzogQ3JlYXRlQXBwUGFyYW1ldGVycyk6IFByb21pc2U8dm9pZCB8IEFwcERhdGFJbmZvPiB7XG5cdFx0Y29uc3QgYXBwQ29tcG9uZW50ID0gdGhpcy5vQXBwQ29tcG9uZW50O1xuXHRcdGlmICghYXBwQ29tcG9uZW50LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuZ2V0Q2FwYWJpbGl0aWVzKCkuQXBwU3RhdGUgfHwgQnVzeUxvY2tlci5pc0xvY2tlZCh0aGlzKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCB7IHNraXBNZXJnZSA9IGZhbHNlLCB2aWV3SWQ6IHN0YXRlSWRlbnRpZmllciA9IFJFUExBQ0VfQ09NUExFVEVfQVBQU1RBVEUgfSA9IGNyZWF0ZUFwcFBhcmFtZXRlcnMgPz8ge30sXG5cdFx0XHRyb290Q29udHJvbGxlciA9IGFwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpLmdldENvbnRyb2xsZXIoKTtcblxuXHRcdGlmICghcm9vdENvbnRyb2xsZXIudmlld1N0YXRlKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYHZpZXdTdGF0ZSBjb250cm9sbGVyIGV4dGVuc2lvbiBub3QgYXZhaWxhYmxlIGZvciBjb250cm9sbGVyOiAke3Jvb3RDb250cm9sbGVyLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpfWApO1xuXHRcdH1cblxuXHRcdC8vIEluIGNhc2UsIG9uIGxvYWQgb2YgRkNMIGFwcCB3ZSBoYXZlIG11bHRpcGxlIHZpZXdzKExSLCBPUCwgc3ViLU9QLi4uKSBhbmQgdXJsIGhhcyBpQXBwU3RhdGUoMSkuXG5cdFx0Ly8gVGhlIExSIHZpZXcgbG9hZHMgd2l0aCBhcHBsaWVkIGlBcHBTdGF0ZSgxKSBhbmQgY2FsbHMgY3JlYXRlQXBwU3RhdGUoZXhhbXBsZTogb25TZWFyY2ggZXZlbnQgaW4gTFIpIGJlZm9yZSBPUCBpcyBsb2FkZWQuXG5cdFx0Ly8gVGhpcyBjcmVhdGVzIGlBcHBTdGF0ZSgyKSBiZWZvcmUgaUFwcFN0YXRlKDEpIGlzIGFwcGxpZWQgdG8gT1AuXG5cdFx0Ly8gU28sIHdlIHRyeSB0byB3YWl0IHRpbGwgdGhlIHJvdXRpbmcgaXMgY29tcGxldGUuXG5cdFx0YXdhaXQgcm9vdENvbnRyb2xsZXIucm91dGluZ0lzQ29tcGxldGUoKTtcblxuXHRcdC8vIEdldCBhcHBTdGF0ZSB0byB1cGRhdGVcblx0XHRsZXQgaW5uZXJBcHBTdGF0ZSA9IChhd2FpdCByb290Q29udHJvbGxlci52aWV3U3RhdGUucmV0cmlldmVWaWV3U3RhdGUoKSkgYXMgSW5uZXJBcHBEYXRhIHwgdW5kZWZpbmVkO1xuXHRcdGlubmVyQXBwU3RhdGUgPSB0aGlzLl9nZXRJbm5lckFwcFN0YXRlRm9yVmlldyhpbm5lckFwcFN0YXRlLCBzdGF0ZUlkZW50aWZpZXIpO1xuXHRcdGlmIChza2lwTWVyZ2UpIHtcblx0XHRcdGlubmVyQXBwU3RhdGUgPSB7IC4uLmlubmVyQXBwU3RhdGUsIC4uLnsgc2tpcE1lcmdlIH0gfTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5fZ2V0QXBwU3RhdGVJbmZvKGlubmVyQXBwU3RhdGUsIGNyZWF0ZUFwcFBhcmFtZXRlcnMpO1xuXHR9XG5cblx0X2NyZWF0ZU5hdmlnYXRpb25QYXJhbWV0ZXJzKG9BcHBEYXRhOiBBcHBEYXRhLCBzTmF2VHlwZTogc3RyaW5nKTogTmF2aWdhdGlvblBhcmFtZXRlciB7XG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIG9BcHBEYXRhLCB7XG5cdFx0XHRzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHM6IG9BcHBEYXRhLm9EZWZhdWx0ZWRTZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0c2VsZWN0aW9uVmFyaWFudDogb0FwcERhdGEub1NlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRyZXF1aXJlc1N0YW5kYXJkVmFyaWFudDogIW9BcHBEYXRhLmJOYXZTZWxWYXJIYXNEZWZhdWx0c09ubHksXG5cdFx0XHRuYXZpZ2F0aW9uVHlwZTogc05hdlR5cGVcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBSVEEgKFJ1bnRpbWUgQWRhcHRhdGlvbikgdmVyc2lvbiBhY3RpdmF0aW9uIHN0YXR1cyBmb3IgYSBzcGVjaWZpYyBJRC5cblx0ICogQHBhcmFtIGlkIFRoZSB1bmlxdWUgaWRlbnRpZmllci5cblx0ICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIFJUQSB2ZXJzaW9uIHdhcyBhY3RpdmF0ZWQuXG5cdCAqL1xuXHRzdGF0aWMgc2V0UlRBVmVyc2lvbldhc0FjdGl2YXRlZChpZDogc3RyaW5nLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuXHRcdHRoaXMudmVyc2lvbkFjdGl2YXRpb25TdGF0dXNbaWRdID0gdmFsdWU7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBSVEEgKFJ1bnRpbWUgQWRhcHRhdGlvbikgdmVyc2lvbiBhY3RpdmF0aW9uIHN0YXR1cyBmb3IgYSBzcGVjaWZpYyBJRC5cblx0ICogQHBhcmFtIGlkIFRoZSB1bmlxdWUgaWRlbnRpZmllci5cblx0ICogQHJldHVybnMgVGhlIGFjdGl2YXRpb24gc3RhdHVzIG9yIHVuZGVmaW5lZCBpZiBub3Qgc2V0LlxuXHQgKi9cblx0c3RhdGljIGdldFJUQVZlcnNpb25XYXNBY3RpdmF0ZWQoaWQ6IHN0cmluZyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLnZlcnNpb25BY3RpdmF0aW9uU3RhdHVzW2lkXTtcblx0fVxuXG5cdF9jaGVja0lmTGFzdFNlZW5SZWNvcmQodmlldz86IFZpZXcpOiBib29sZWFuIHtcblx0XHQvL2dldHRpbmcgdGhlIGludGVybmFsIG1vZGVsIGNvbnRleHQgaW4gb3JkZXIgdG8gZmV0Y2ggdGhlIHRlY2huaWNhbGtleXMgb2YgbGFzdCBzZWVuIHJlY29yZCBhbmQgY2xvc2UgY29sdW1uIGZsYWcgc2V0IGluIHRoZSBpbnRlcm5hbHJvdXRpbmcgZm9yIHJldGFpbmluZyBzZXR0aW5ncyBpbiBwZXJzaXN0ZW5jZSBtb2RlXG5cdFx0Y29uc3QgaW50ZXJuYWxNb2RlbENvbnRleHQgPSB2aWV3ICYmICh2aWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQpO1xuXHRcdGlmIChpbnRlcm5hbE1vZGVsQ29udGV4dCAmJiBpbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcImZjbENvbHVtbkNsb3NlZFwiKSA9PT0gdHJ1ZSkge1xuXHRcdFx0Y29uc3QgdGVjaG5pY2FsS2V5c09iamVjdCA9IGludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KFwidGVjaG5pY2FsS2V5c09mTGFzdFNlZW5SZWNvcmRcIik7XG5cdFx0XHRjb25zdCBiaW5kaW5nQ29udGV4dCA9IHZpZXc/LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dDtcblx0XHRcdGlmIChiaW5kaW5nQ29udGV4dC5nZXRPYmplY3QoKSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdC8vIEFmdGVyIGV4ZWN1dGluZyBhIGJvdW5kIGFjdGlvbiBpbiBhbiBGQ0wgYXBwLCB3ZSBzZXQgdGhlIEVkaXRTdGF0ZSB0byBkaXJ0eSwgd2hpY2ggcmVmcmVzaGVzIHRoZSBMUiB0YWJsZSwgYW5kIGludmFsaWRhdGUgYWxsIGJpbmRpbmdDb250ZXh0cy5cblx0XHRcdFx0Ly8gVGhpcyBlbnN1cmUgaXQgd29uJ3QgdGhyb3cgYW4gZXJyb3IgaW4gdGhvc2UgY2FzZXMuXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHRcdGNvbnN0IHBhdGggPSAoYmluZGluZ0NvbnRleHQgJiYgYmluZGluZ0NvbnRleHQuZ2V0UGF0aCgpKSB8fCBcIlwiO1xuXHRcdFx0Y29uc3QgbWV0YU1vZGVsID0gYmluZGluZ0NvbnRleHQ/LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0XHRjb25zdCBtZXRhUGF0aCA9IG1ldGFNb2RlbD8uZ2V0TWV0YVBhdGgocGF0aCk7XG5cdFx0XHRjb25zdCB0ZWNobmljYWxLZXlzID0gbWV0YU1vZGVsPy5nZXRPYmplY3QoYCR7bWV0YVBhdGh9LyRUeXBlLyRLZXlgKTtcblx0XHRcdGlmICh0ZWNobmljYWxLZXlzKSB7XG5cdFx0XHRcdGZvciAoY29uc3QgZWxlbWVudCBvZiB0ZWNobmljYWxLZXlzKSB7XG5cdFx0XHRcdFx0Y29uc3Qga2V5VmFsdWUgPSBiaW5kaW5nQ29udGV4dC5nZXRPYmplY3QoKVtlbGVtZW50XTtcblx0XHRcdFx0XHRpZiAoa2V5VmFsdWUgIT09IHRlY2huaWNhbEtleXNPYmplY3RbZWxlbWVudF0pIHtcblx0XHRcdFx0XHRcdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiZmNsQ29sdW1uQ2xvc2VkXCIsIGZhbHNlKTtcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly90aGUgcmVjb3JkIG9wZW5lZCBpcyBub3QgdGhlIGxhc3Qgc2VlbiBvbmUgOiBubyBuZWVkIHRvIHBlcnNpc3QgdGhlIGNoYW5nZXMsIHJlc2V0IHRvIGRlZmF1bHQgaW5zdGVhZFxuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRfZ2V0QXBwU3RhdGVEYXRhKG9BcHBEYXRhOiBBcHBEYXRhLCB2aWV3SWQ/OiBzdHJpbmcsIG5hdlR5cGU/OiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCB7XG5cdFx0bGV0IGtleSA9IFwiXCIsXG5cdFx0XHRpID0gMDtcblx0XHRjb25zdCBhcHBTdGF0ZURhdGEgPSBuYXZUeXBlID09PSBOYXZUeXBlLmh5YnJpZCA/IG9BcHBEYXRhLmlBcHBTdGF0ZSA6IG9BcHBEYXRhO1xuXG5cdFx0aWYgKGFwcFN0YXRlRGF0YT8uYXBwU3RhdGUpIHtcblx0XHRcdGZvciAoaTsgaSA8IE9iamVjdC5rZXlzKGFwcFN0YXRlRGF0YS5hcHBTdGF0ZSkubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKE9iamVjdC5rZXlzKGFwcFN0YXRlRGF0YS5hcHBTdGF0ZSlbaV0gPT09IHZpZXdJZCkge1xuXHRcdFx0XHRcdGtleSA9IE9iamVjdC5rZXlzKGFwcFN0YXRlRGF0YS5hcHBTdGF0ZSlbaV07XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGFwcFN0YXRlRGF0YT8uYXBwU3RhdGUpIHtcblx0XHRcdHJldHVybiBrZXlcblx0XHRcdFx0PyB7XG5cdFx0XHRcdFx0XHRbT2JqZWN0LmtleXMoYXBwU3RhdGVEYXRhLmFwcFN0YXRlKVtpXV06IGFwcFN0YXRlRGF0YS5hcHBTdGF0ZVtrZXldIHx8IHt9XG5cdFx0XHRcdCAgfVxuXHRcdFx0XHQ6IHt9O1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBBcHBsaWVzIGFuIGFwcHN0YXRlIGJ5IGZldGNoaW5nIGFwcGRhdGEgYW5kIHBhc3NpbmcgaXQgdG8gX2FwcGx5QXBwc3RhdGVUb1BhZ2UuXG5cdCAqIEBwYXJhbSB2aWV3IFRoZSB2aWV3IGZvciB3aGljaCB0aGUgYXBwIHN0YXRlIG11c3QgYmUgYXBwbGllZC4gSWYgbm8gdmlldyBpcyBwcm92aWRlZCwgdGhlbiBhcHAgc3RhdGUgb2YgYWxsIHRoZSB2aWV3cyBpcyBhcHBsaWVkLlxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgZm9yIGFzeW5jIGhhbmRsaW5nXG5cdCAqL1xuXHRhc3luYyBhcHBseUFwcFN0YXRlKHZpZXc/OiBWaWV3KTogUHJvbWlzZTx2b2lkIHwge30+IHtcblx0XHRpZiAoQXBwU3RhdGVIYW5kbGVyLmdldFJUQVZlcnNpb25XYXNBY3RpdmF0ZWQodGhpcy5vQXBwQ29tcG9uZW50LmdldElkKCkpKSB7XG5cdFx0XHRBcHBTdGF0ZUhhbmRsZXIuc2V0UlRBVmVyc2lvbldhc0FjdGl2YXRlZCh0aGlzLm9BcHBDb21wb25lbnQuZ2V0SWQoKSwgZmFsc2UpO1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdH1cblx0XHRjb25zdCB2aWV3SWQgPSB2aWV3Py5nZXRJZCgpO1xuXHRcdGlmICghdGhpcy5vQXBwQ29tcG9uZW50LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuZ2V0Q2FwYWJpbGl0aWVzKCkuQXBwU3RhdGUgfHwgQnVzeUxvY2tlci5pc0xvY2tlZCh0aGlzLCB2aWV3SWQpKSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgY2hlY2tJZkxhc3RTZWVuUmVjb3JkID0gdGhpcy5fY2hlY2tJZkxhc3RTZWVuUmVjb3JkKHZpZXcpO1xuXHRcdGlmIChjaGVja0lmTGFzdFNlZW5SZWNvcmQgPT09IHRydWUpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cdFx0Ly8gbG9jayB0aGUgYXBwbHkgc3RhdGUgZm9yIHRoZSBjdXJyZW50IHZpZXdcblx0XHRCdXN5TG9ja2VyLmxvY2sodGhpcywgdmlld0lkKTtcblx0XHQvLyBsb2NrIHRoZSBBcHAgU3RhdGUgaGFuZGxlciwgdXNlZCB0byBhdm9pZCBhIGNyZWF0aW9uIG9mIGFwcCBzdGF0ZSBkdXJpbmcgYXBwbHlcblx0XHRCdXN5TG9ja2VyLmxvY2sodGhpcyk7XG5cdFx0Ly8gRG9uZSBmb3IgYnVzeSBpbmRpY2F0b3Jcblx0XHRCdXN5TG9ja2VyLmxvY2sodGhpcy5vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkpO1xuXHRcdGNvbnN0IG9OYXZpZ2F0aW9uU2VydmljZSA9IHRoaXMub0FwcENvbXBvbmVudC5nZXROYXZpZ2F0aW9uU2VydmljZSgpO1xuXHRcdC8vIFRPRE8gb05hdmlnYXRpb25TZXJ2aWNlLnBhcnNlTmF2aWdhdGlvbigpIHNob3VsZCByZXR1cm4gRVM2IHByb21pc2UgaW5zdGVhZCBqUXVlcnkucHJvbWlzZVxuXHRcdHJldHVybiB0b0VTNlByb21pc2U8dW5rbm93bltdPihvTmF2aWdhdGlvblNlcnZpY2UucGFyc2VOYXZpZ2F0aW9uKCkpXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGFFcnJvckRhdGE6IHVua25vd25bXSkge1xuXHRcdFx0XHRpZiAoIWFFcnJvckRhdGEpIHtcblx0XHRcdFx0XHRhRXJyb3JEYXRhID0gW107XG5cdFx0XHRcdH1cblx0XHRcdFx0TG9nLndhcm5pbmcoXCJBUFBTVEFURTogUGFyc2UgTmF2aWdhdGlvbiBmYWlsZWRcIiwgYUVycm9yRGF0YVswXSBhcyBzdHJpbmcpO1xuXHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdC8qIGFwcCBkYXRhICovXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRhRXJyb3JEYXRhWzFdLFxuXHRcdFx0XHRcdGFFcnJvckRhdGFbMl1cblx0XHRcdFx0XTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbihhc3luYyAoYVJlc3VsdHM6IHVua25vd25bXSkgPT4ge1xuXHRcdFx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBQYXJzZSBOYXZpZ2F0aW9uIGRvbmVcIik7XG5cblx0XHRcdFx0Ly8gYVJlc3VsdHNbMV0gPT4gb1N0YXJ0dXBQYXJhbWV0ZXJzIChub3QgZXZhbHVhdGVkKVxuXHRcdFx0XHRjb25zdCBvQXBwRGF0YSA9IChhUmVzdWx0c1swXSB8fCB7fSkgYXMgQXBwRGF0YSxcblx0XHRcdFx0XHRzTmF2VHlwZSA9IChhUmVzdWx0c1syXSBhcyBzdHJpbmcpIHx8IE5hdlR5cGUuaW5pdGlhbCxcblx0XHRcdFx0XHRvUm9vdENvbnRyb2xsZXIgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250cm9sbGVyKCk7XG5cdFx0XHRcdC8vIGFwcGx5IHRoZSBhcHBzdGF0ZSBkZXBlbmRpbmcgdXBvbiB0aGUgdmlldyAoTFIvT1ApXG5cdFx0XHRcdGNvbnN0IGFwcFN0YXRlRGF0YSA9IHRoaXMuX2dldEFwcFN0YXRlRGF0YShvQXBwRGF0YSwgdmlld0lkLCBzTmF2VHlwZSk7XG5cdFx0XHRcdC8vIGZldGNoIHRoZSBza2lwTWVyZ2UgZmxhZyBmcm9tIGFwcFN0YXRlIGZvciBzYXZlIGFzIHRpbGVcblx0XHRcdFx0Y29uc3Qgc2tpcE1lcmdlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gb0FwcERhdGE/LmFwcFN0YXRlPy5bU0tJUF9NRVJHRV9LRVldO1xuXHRcdFx0XHR0aGlzLl9tQ3VycmVudEFwcFN0YXRlID1cblx0XHRcdFx0XHRzTmF2VHlwZSA9PT0gTmF2VHlwZS5pQXBwU3RhdGUgfHwgc05hdlR5cGUgPT09IE5hdlR5cGUuaHlicmlkID8geyAuLi50aGlzLl9tQ3VycmVudEFwcFN0YXRlLCAuLi5hcHBTdGF0ZURhdGEgfSA6IHt9O1xuXHRcdFx0XHRsZXQgc2hvdWxkQXBwbHlTdGF0ZSA9IHRydWU7XG5cblx0XHRcdFx0aWYgKCFvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGB2aWV3U3RhdGUgZXh0ZW5zaW9uIHJlcXVpcmVkIGZvciBjb250cm9sbGVyICR7b1Jvb3RDb250cm9sbGVyLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpfWApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlLl9pc1N0YXRlRW1wdHlGb3JJQXBwU3RhdGVOYXZUeXBlKG9BcHBEYXRhLCBzTmF2VHlwZSkpIHtcblx0XHRcdFx0XHRpZiAoIW9Sb290Q29udHJvbGxlci52aWV3U3RhdGUuX2dldEluaXRpYWxTdGF0ZUFwcGxpZWQoKSkge1xuXHRcdFx0XHRcdFx0b1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZS5fc2V0SW5pdGlhbFN0YXRlQXBwbGllZCgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRzaG91bGRBcHBseVN0YXRlID0gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgYXBwbHlWaWV3U3RhdGUgPSBhd2FpdCBvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlLmFwcGx5Vmlld1N0YXRlKFxuXHRcdFx0XHRcdHZpZXdJZCA/IGFwcFN0YXRlRGF0YSA6IHRoaXMuX21DdXJyZW50QXBwU3RhdGUsXG5cdFx0XHRcdFx0dGhpcy5fY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMob0FwcERhdGEsIHNOYXZUeXBlKSxcblx0XHRcdFx0XHRza2lwTWVyZ2Vcblx0XHRcdFx0KTtcblx0XHRcdFx0aWYgKCFzaG91bGRBcHBseVN0YXRlKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHt9O1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiBhcHBseVZpZXdTdGF0ZTtcblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAob0Vycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdExvZy5lcnJvcihcImFwcFN0YXRlIGNvdWxkIG5vdCBiZSBhcHBsaWVkXCIsIG9FcnJvciBhcyBzdHJpbmcpO1xuXHRcdFx0XHR0aHJvdyBvRXJyb3I7XG5cdFx0XHR9KVxuXHRcdFx0LmZpbmFsbHkoKCkgPT4ge1xuXHRcdFx0XHQvLyB1bmxvY2sgYXBwbHkgc3RhdGUgZm9yIHRoZSBjdXJyZW50IHZpZXdcblx0XHRcdFx0QnVzeUxvY2tlci51bmxvY2sodGhpcywgdmlld0lkKTtcblx0XHRcdFx0Ly8gdW5sb2NrIHRoZSBhcHAgc3RhdGUgaGFuZGxlciwgc28gdGhhdCBhcHAgc3RhdGUgY3JlYXRpb24gY2FuIGhhcHBlbiBub3cuXG5cdFx0XHRcdEJ1c3lMb2NrZXIudW5sb2NrKHRoaXMpO1xuXHRcdFx0XHQvLyB1bmxvY2sgdGhlIFJvb3RDb250cm9sIHRvIHJlbW92ZSB0aGUgYnVzeSBpbmRpY2F0b3IuXG5cdFx0XHRcdEJ1c3lMb2NrZXIudW5sb2NrKHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpKTtcblx0XHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRvIGNoZWNrIGlzIHJvdXRlIGlzIGNoYW5nZWQgYnkgY2hhbmdlIGluIHRoZSBpQVBQU3RhdGUuXG5cdCAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcm91dGUgaGFzIGNobmFnZWRcblx0ICovXG5cdGNoZWNrSWZSb3V0ZUNoYW5nZWRCeUlBcHAoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuYk5vUm91dGVDaGFuZ2U7XG5cdH1cblxuXHQvKipcblx0ICogUmVzZXQgdGhlIHJvdXRlIGNoYW5nZWQgYnkgaUFQUFN0YXRlLlxuXHQgKi9cblx0cmVzZXRSb3V0ZUNoYW5nZWRCeUlBcHAoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuYk5vUm91dGVDaGFuZ2UpIHtcblx0XHRcdHRoaXMuYk5vUm91dGVDaGFuZ2UgPSBmYWxzZTtcblx0XHR9XG5cdH1cblxuXHQvLyBSZXNldCBhbGwgYWN0aXZhdGlvbiBzdGF0dXNlcyBpbiBBcHBTdGF0ZUhhbmRsZXIudmVyc2lvbkFjdGl2YXRpb25TdGF0dXMgdG8gZmFsc2Vcblx0c3RhdGljIHJlc2V0VmVyc2lvbkFjdGl2YXRpb25TdGF0dXMoKTogdm9pZCB7XG5cdFx0Zm9yIChjb25zdCBpZCBpbiB0aGlzLnZlcnNpb25BY3RpdmF0aW9uU3RhdHVzKSB7XG5cdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMudmVyc2lvbkFjdGl2YXRpb25TdGF0dXMsIGlkKSkge1xuXHRcdFx0XHR0aGlzLnZlcnNpb25BY3RpdmF0aW9uU3RhdHVzW2lkXSA9IGZhbHNlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIEBnbG9iYWxcbiAqL1xuZXhwb3J0IGRlZmF1bHQgQXBwU3RhdGVIYW5kbGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztFQWlCQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQ0QsT0FBTztFQWMvQixNQUFNRSxjQUFjLEdBQUcsV0FBVztFQW9CbEMsTUFBTUMseUJBQXlCLEdBQUcsMkJBQTJCO0VBQUMsSUFHeERDLGVBQWUsSUFBQUMsSUFBQSxHQURwQkMsY0FBYyxDQUFDLDZCQUE2QixDQUFDLEVBQUFELElBQUEsQ0FBQUUsTUFBQSxJ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
|
|
@@ -12,6 +12,7 @@ import BaseObject from "sap/ui/base/Object";
|
|
|
12
12
|
import type View from "sap/ui/core/mvc/View";
|
|
13
13
|
import type Context from "sap/ui/model/odata/v4/Context";
|
|
14
14
|
import BusyLocker from "./controllerextensions/BusyLocker";
|
|
15
|
+
import type { HiddenDraft } from "./converters/ManifestSettings";
|
|
15
16
|
import ModelHelper from "./helpers/ModelHelper";
|
|
16
17
|
|
|
17
18
|
const NavType = library.NavType;
|
|
@@ -106,10 +107,12 @@ class AppStateHandler extends BaseObject {
|
|
|
106
107
|
routerProxy = appComponent.getRouterProxy(),
|
|
107
108
|
hash = routerProxy.getHash(),
|
|
108
109
|
isStickyMode = ModelHelper.isStickySessionSupported(appComponent.getMetaModel()),
|
|
110
|
+
isHiddenDraftEnabled =
|
|
111
|
+
(this.oAppComponent.getEnvironmentCapabilities().getCapabilities().HiddenDraft as HiddenDraft)?.enabled || false,
|
|
109
112
|
newHash = navigationService.replaceInnerAppStateKey(routerProxy.getHash(), appStateKey);
|
|
110
113
|
|
|
111
114
|
if (newHash && this.simultaneousCreateRequest[stateIdentifier] === 0 && newHash !== hash) {
|
|
112
|
-
routerProxy.navToHash(newHash, undefined, undefined, undefined,
|
|
115
|
+
routerProxy.navToHash(newHash, undefined, undefined, undefined, isStickyMode || isHiddenDraftEnabled);
|
|
113
116
|
this.bNoRouteChange = true;
|
|
114
117
|
}
|
|
115
118
|
Log.info("APPSTATE: navToHash");
|
|
@@ -250,6 +253,11 @@ class AppStateHandler extends BaseObject {
|
|
|
250
253
|
if (internalModelContext && internalModelContext.getProperty("fclColumnClosed") === true) {
|
|
251
254
|
const technicalKeysObject = internalModelContext.getProperty("technicalKeysOfLastSeenRecord");
|
|
252
255
|
const bindingContext = view?.getBindingContext() as Context;
|
|
256
|
+
if (bindingContext.getObject() === undefined) {
|
|
257
|
+
// After executing a bound action in an FCL app, we set the EditState to dirty, which refreshes the LR table, and invalidate all bindingContexts.
|
|
258
|
+
// This ensure it won't throw an error in those cases.
|
|
259
|
+
return false;
|
|
260
|
+
}
|
|
253
261
|
const path = (bindingContext && bindingContext.getPath()) || "";
|
|
254
262
|
const metaModel = bindingContext?.getModel().getMetaModel();
|
|
255
263
|
const metaPath = metaModel?.getMetaPath(path);
|
|
@@ -322,4 +322,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
|
|
|
322
322
|
}), _class2)) || _class);
|
|
323
323
|
return TemplateComponent;
|
|
324
324
|
}, false);
|
|
325
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZW1wbGF0ZUNvbXBvbmVudCIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwiaW1wbGVtZW50SW50ZXJmYWNlIiwiX2RlYzMiLCJfZGVjNCIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsIl9kZWM1IiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfZGVjMTIiLCJfZGVjMTMiLCJfZGVjMTQiLCJfZGVjMTUiLCJfZGVjMTYiLCJfZGVjMTciLCJfZGVjMTgiLCJldmVudCIsIl9kZWMxOSIsIl9kZWMyMCIsIl9jbGFzcyIsIl9jbGFzczIiLCJfVUlDb21wb25lbnQiLCJfdGhpcyIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwiX2Rlc2NyaXB0b3IxMSIsIl9kZXNjcmlwdG9yMTIiLCJfZGVzY3JpcHRvcjEzIiwiX2Rlc2NyaXB0b3IxNCIsIl9kZXNjcmlwdG9yMTUiLCJfZGVzY3JpcHRvcjE2IiwiX2Rlc2NyaXB0b3IxNyIsIl9kZXNjcmlwdG9yMTgiLCJfZGVzY3JpcHRvcjE5IiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJzZXRDb250YWluZXIiLCJvQ29udGFpbmVyIiwiZmlyZUV2ZW50IiwiY29udGFpbmVyIiwiaW5pdCIsIm9BcHBDb21wb25lbnQiLCJDb21tb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsImdldEV4dGVuc2lvbkNvbXBvbmVudCIsInNldFJvb3RDb250cm9sbGVyIiwiY29udHJvbGxlciIsIl9yb290Q29udHJvbGxlciIsImdldFJvb3RDb250cm9sbGVyIiwicm9vdENvbnRyb2wiLCJnZXRSb290Q29udHJvbCIsInJvb3RDb250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsIm9uUGFnZVJlYWR5IiwibVBhcmFtZXRlcnMiLCJnZXROYXZpZ2F0aW9uQ29uZmlndXJhdGlvbiIsInNUYXJnZXRQYXRoIiwibU5hdmlnYXRpb24iLCJuYXZpZ2F0aW9uIiwiZ2V0Vmlld0RhdGEiLCJtUHJvcGVydGllcyIsImdldE1ldGFkYXRhIiwiZ2V0QWxsUHJvcGVydGllcyIsIm9WaWV3RGF0YSIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJtVmlld0RhdGEiLCJzUHJvcGVydHlOYW1lIiwiZ2V0IiwicHJlcHJvY2Vzc29yQ29udGV4dCIsImZjbEVuYWJsZWQiLCJfaXNGY2xFbmFibGVkIiwicm91dGluZ1RhcmdldE5hbWUiLCJnZXRSb3V0aW5nU2VydmljZSIsImdldFRhcmdldE5hbWUiLCJpc0lubGluZUVkaXRFbmFibGVkIiwiZ2V0SW5saW5lRWRpdFNlcnZpY2UiLCJkb2VzUGFnZUhhdmVJbmxpbmVFZGl0IiwiX2dldFBhZ2VUaXRsZUluZm9ybWF0aW9uIiwiUHJvbWlzZSIsInJlc29sdmUiLCJnZXRFeHRlbnNpb25BUEkiLCJnZXRNZXRhTW9kZWwiLCJtZXRhTW9kZWxSZWZlcmVuY2UiLCJtb2RlbHMiLCJtZXRhTW9kZWwiLCJzdGFydHNXaXRoIiwiZ2V0TWV0YU1vZGVsQnlJZCIsImdldE1vZGVsIiwiZ2V0RnVsbENvbnRleHRQYXRoIiwiZnVsbENvbnRleHRQYXRoIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiTWFuaWZlc3RXcmFwcGVyIiwiVUlDb21wb25lbnQiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlRlbXBsYXRlQ29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29udmVydGVkTWV0YWRhdGEgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBldmVudCwgaW1wbGVtZW50SW50ZXJmYWNlLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBFeHRlbnNpb25BUEkgZnJvbSBcInNhcC9mZS9jb3JlL0V4dGVuc2lvbkFQSVwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSB7IElCdWlsZGluZ0Jsb2NrT3duZXJDb21wb25lbnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvSUJ1aWxkaW5nQmxvY2tPd25lckNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgQ29udmVydGVyQ29udGV4dCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IE5hdmlnYXRpb25UYXJnZXRDb25maWd1cmF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgdHlwZSBCYXNlTWFuaWZlc3RTZXR0aW5ncyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCBNYW5pZmVzdFdyYXBwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RXcmFwcGVyXCI7XG5pbXBvcnQgeyBnZXRNZXRhTW9kZWxCeUlkIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgdHlwZSB7IERlZmluaXRpb25Db250ZXh0LCBEZWZpbml0aW9uUGFnZSB9IGZyb20gXCJzYXAvZmUvY29yZS9kZWZpbml0aW9uL0ZFRGVmaW5pdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBUaXRsZUluZm9ybWF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3Jvb3RWaWV3L1Jvb3RWaWV3QmFzZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIENvbXBvbmVudENvbnRhaW5lciBmcm9tIFwic2FwL3VpL2NvcmUvQ29tcG9uZW50Q29udGFpbmVyXCI7XG5pbXBvcnQgVUlDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL1VJQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IElBc3luY0NvbnRlbnRDcmVhdGlvbiB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgQmFzZUNvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01vZGVsXCI7XG5pbXBvcnQgdHlwZSBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuXG5leHBvcnQgdHlwZSBOYXZpZ2F0aW9uQ29uZmlndXJhdGlvbiA9IHtcblx0ZGV0YWlsOiB7XG5cdFx0cm91dGU6IHN0cmluZztcblx0XHRwYXJhbWV0ZXJzOiB1bmtub3duO1xuXHRcdG91dGJvdW5kPzogc3RyaW5nO1xuXHRcdG91dGJvdW5kRGV0YWlsPzogTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb25bXCJvdXRib3VuZERldGFpbFwiXTtcblx0fTtcblx0Y3JlYXRlOiB7XG5cdFx0cm91dGU6IHN0cmluZztcblx0XHRwYXJhbWV0ZXJzOiB1bmtub3duO1xuXHRcdG91dGJvdW5kPzogc3RyaW5nO1xuXHRcdG91dGJvdW5kRGV0YWlsPzogTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb25bXCJvdXRib3VuZERldGFpbFwiXTtcblx0fTtcbn07XG5cbmV4cG9ydCB0eXBlIFhNTFByZXByb2Nlc3NvckNvbnRleHQgPSB7XG5cdGJpbmRpbmdDb250ZXh0czogUmVjb3JkPHN0cmluZywgQmFzZUNvbnRleHQgfCBudWxsPjtcblx0bW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBNb2RlbD47XG5cdGZ1bGxDb250ZXh0UGF0aDogc3RyaW5nO1xuXHRnZXRDb252ZXJ0ZWRNZXRhZGF0YTogKCkgPT4gQ29udmVydGVkTWV0YWRhdGE7XG5cdGdldERlZmluaXRpb25Db250ZXh0OiAoKSA9PiBEZWZpbml0aW9uQ29udGV4dDtcblx0Z2V0RGVmaW5pdGlvbkZvclBhZ2U6ICgpID0+IERlZmluaXRpb25QYWdlO1xuXHRhcHBDb21wb25lbnQ6IEFwcENvbXBvbmVudDtcblx0dmlld0lkOiBzdHJpbmc7XG59O1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5UZW1wbGF0ZUNvbXBvbmVudFwiKVxuY2xhc3MgVGVtcGxhdGVDb21wb25lbnQgZXh0ZW5kcyBVSUNvbXBvbmVudCBpbXBsZW1lbnRzIElBc3luY0NvbnRlbnRDcmVhdGlvbiwgSUJ1aWxkaW5nQmxvY2tPd25lckNvbXBvbmVudCB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JQXN5bmNDb250ZW50Q3JlYXRpb25cIilcblx0X19pbXBsZW1lbnRzX19zYXBfdWlfY29yZV9JQXN5bmNDb250ZW50Q3JlYXRpb24gPSB0cnVlO1xuXG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAuZmUuY29yZS5idWlsZGluZ0Jsb2Nrcy5JQnVpbGRpbmdCbG9ja093bmVyQ29tcG9uZW50XCIpXG5cdF9faW1wbGVtZW50c19fc2FwX2ZlX2NvcmVfYnVpbGRpbmdCbG9ja3NfSUJ1aWxkaW5nQmxvY2tPd25lckNvbXBvbmVudCA9IHRydWU7XG5cblx0LyoqXG5cdCAqIE5hbWUgb2YgdGhlIE9EYXRhIGVudGl0eSBzZXRcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogbnVsbCB9KVxuXHRlbnRpdHlTZXQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG5cdC8qKlxuXHQgKiBDb250ZXh0IFBhdGggZm9yIHJlbmRlcmluZyB0aGUgdGVtcGxhdGVcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogbnVsbCB9KVxuXHRjb250ZXh0UGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RcIiB9KVxuXHRwcmVwcm9jZXNzb3JDb250ZXh0PzogWE1MUHJlcHJvY2Vzc29yQ29udGV4dDtcblxuXHQvKipcblx0ICogVGhlIHBhdHRlcm4gZm9yIHRoZSBiaW5kaW5nIGNvbnRleHQgdG8gYmUgY3JlYXRlIGJhc2VkIG9uIHRoZSBwYXJhbWV0ZXJzIGZyb20gdGhlIG5hdmlnYXRpb25cblx0ICogSWYgbm90IHByb3ZpZGVkIHdlJ2xsIGRlZmF1bHQgdG8gd2hhdCB3YXMgcGFzc2VkIGluIHRoZSBVUkxcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0YmluZGluZ0NvbnRleHRQYXR0ZXJuITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBNYXAgb2YgdXNlZCBPRGF0YSBuYXZpZ2F0aW9ucyBhbmQgaXRzIHJvdXRpbmcgdGFyZ2V0c1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RcIiB9KVxuXHRuYXZpZ2F0aW9uITogUmVjb3JkPHN0cmluZywgTmF2aWdhdGlvbkNvbmZpZ3VyYXRpb24+O1xuXG5cdC8qKlxuXHQgKiBFbmhhbmNlIHRoZSBpMThuIGJ1bmRsZSB1c2VkIGZvciB0aGlzIHBhZ2Ugd2l0aCBvbmUgb3IgbW9yZSBhcHAgc3BlY2lmaWMgaTE4biByZXNvdXJjZSBidW5kbGVzIG9yIHJlc291cmNlIG1vZGVsc1xuXHQgKiBvciBhIGNvbWJpbmF0aW9uIG9mIGJvdGguIFRoZSBsYXN0IHJlc291cmNlIGJ1bmRsZS9tb2RlbCBpcyBnaXZlbiBoaWdoZXN0IHByaW9yaXR5XG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1tdXCIgfSlcblx0ZW5oYW5jZUkxOG4hOiBzdHJpbmdbXTtcblxuXHQvKipcblx0ICogRGVmaW5lIGNvbnRyb2wgcmVsYXRlZCBjb25maWd1cmF0aW9uIHNldHRpbmdzXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcIm9iamVjdFwiIH0pXG5cdGNvbnRyb2xDb25maWd1cmF0aW9uPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RcIiB9KVxuXHRpbmxpbmVFZGl0PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cblx0LyoqXG5cdCAqIEFkanVzdHMgdGhlIHRlbXBsYXRlIGNvbnRlbnRcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwib2JqZWN0XCIgfSlcblx0Y29udGVudD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIG9yIG5vdCB5b3UgY2FuIHJlYWNoIHRoaXMgcGFnZSBkaXJlY3RseSB0aHJvdWdoIHNlbWFudGljIGJvb2ttYXJrc1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0YWxsb3dEZWVwTGlua2luZyE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIGNvbnRleHQgcGF0aCBvbiB0aGUgY29tcG9uZW50IHRoYXQgaXMgcmVmcmVzaGVkIHdoZW4gdGhlIGFwcCBpcyByZXN0b3JlZCB1c2luZyBrZWVwIGFsaXZlIG1vZGVcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwib2JqZWN0XCIgfSlcblx0cmVmcmVzaFN0cmF0ZWd5T25BcHBSZXN0b3JlOiB1bmtub3duO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0dmlld1R5cGUgPSBcIlhNTFwiO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0dmlld05hbWU/OiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRfanN4Vmlld05hbWUgPSBcIlwiO1xuXG5cdEBldmVudCgpXG5cdGNvbnRhaW5lckRlZmluZWQhOiBGdW5jdGlvbjtcblxuXHRAZXZlbnQoKVxuXHRoZXJvZXNCYXRjaFJlY2VpdmVkITogRnVuY3Rpb247XG5cblx0QGV2ZW50KClcblx0d29ya2Vyc0JhdGNoUmVjZWl2ZWQhOiBGdW5jdGlvbjtcblxuXHRwcm90ZWN0ZWQgb0FwcENvbXBvbmVudCE6IEFwcENvbXBvbmVudDtcblxuXHRwcml2YXRlIF9yb290Q29udHJvbGxlcj86IFBhZ2VDb250cm9sbGVyO1xuXG5cdC8vIFRoZSBpZCBvZiBhIGZyYWdtZW50IGJlaW5nIHByb2Nlc3NlZCwgaXQgd2lsbCB0YWtlIHByaW9yaXR5IGluIHRoZSBJRCBnZW5lcmF0aW9uXG5cdHByaXZhdGUgX3RlbXBvcmFyeUZyYWdtZW50SWQ/OiBzdHJpbmc7XG5cblx0c2V0Q29udGFpbmVyKG9Db250YWluZXI6IENvbXBvbmVudENvbnRhaW5lcik6IHRoaXMge1xuXHRcdHN1cGVyLnNldENvbnRhaW5lcihvQ29udGFpbmVyKTtcblx0XHR0aGlzLmZpcmVFdmVudChcImNvbnRhaW5lckRlZmluZWRcIiwgeyBjb250YWluZXI6IG9Db250YWluZXIgfSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRpbml0KCk6IHZvaWQge1xuXHRcdHRoaXMub0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzKTtcblx0XHRzdXBlci5pbml0KCk7XG5cdH1cblxuXHQvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgVUk1IGNvcmUgdG8gYWNjZXNzIHRvIHRoZSBjb21wb25lbnQgY29udGFpbmluZyB0aGUgY3VzdG9taXppbmcgY29uZmlndXJhdGlvbi5cblx0Ly8gYXMgY29udHJvbGxlciBleHRlbnNpb25zIGFyZSBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdCBmb3IgdGhlIGFwcCBjb21wb25lbnQgYW5kIG5vdCBmb3IgdGhlXG5cdC8vIHRlbXBsYXRlIGNvbXBvbmVudCB3ZSByZXR1cm4gdGhlIGFwcCBjb21wb25lbnQuXG5cdGdldEV4dGVuc2lvbkNvbXBvbmVudCgpOiBBcHBDb21wb25lbnQge1xuXHRcdHJldHVybiB0aGlzLm9BcHBDb21wb25lbnQ7XG5cdH1cblxuXHRnZXRBcHBDb21wb25lbnQoKTogQXBwQ29tcG9uZW50IHtcblx0XHRyZXR1cm4gdGhpcy5vQXBwQ29tcG9uZW50O1xuXHR9XG5cblx0c2V0Um9vdENvbnRyb2xsZXIoY29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIpOiB2b2lkIHtcblx0XHR0aGlzLl9yb290Q29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG5cdH1cblxuXHRnZXRSb290Q29udHJvbGxlcigpOiBQYWdlQ29udHJvbGxlciB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgcm9vdENvbnRyb2w6IFZpZXcgPSB0aGlzLmdldFJvb3RDb250cm9sKCk7XG5cdFx0bGV0IHJvb3RDb250cm9sbGVyOiBQYWdlQ29udHJvbGxlciB8IHVuZGVmaW5lZDtcblx0XHRpZiAocm9vdENvbnRyb2wgJiYgcm9vdENvbnRyb2wuZ2V0Q29udHJvbGxlcikge1xuXHRcdFx0cm9vdENvbnRyb2xsZXIgPSByb290Q29udHJvbC5nZXRDb250cm9sbGVyKCkgYXMgUGFnZUNvbnRyb2xsZXI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJvb3RDb250cm9sbGVyID0gdGhpcy5fcm9vdENvbnRyb2xsZXI7XG5cdFx0fVxuXHRcdHJldHVybiByb290Q29udHJvbGxlcjtcblx0fVxuXG5cdG9uUGFnZVJlYWR5KG1QYXJhbWV0ZXJzOiB1bmtub3duKTogdm9pZCB7XG5cdFx0Y29uc3Qgcm9vdENvbnRyb2xsZXIgPSB0aGlzLmdldFJvb3RDb250cm9sbGVyKCk7XG5cdFx0aWYgKHJvb3RDb250cm9sbGVyICYmIHJvb3RDb250cm9sbGVyLm9uUGFnZVJlYWR5KSB7XG5cdFx0XHRyb290Q29udHJvbGxlci5vblBhZ2VSZWFkeShtUGFyYW1ldGVycyk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0TmF2aWdhdGlvbkNvbmZpZ3VyYXRpb24oc1RhcmdldFBhdGg6IHN0cmluZyk6IE5hdmlnYXRpb25Db25maWd1cmF0aW9uIHtcblx0XHRjb25zdCBtTmF2aWdhdGlvbiA9IHRoaXMubmF2aWdhdGlvbjtcblx0XHRyZXR1cm4gbU5hdmlnYXRpb25bc1RhcmdldFBhdGhdO1xuXHR9XG5cblx0Z2V0Vmlld0RhdGEoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuXHRcdGNvbnN0IG1Qcm9wZXJ0aWVzID0gdGhpcy5nZXRNZXRhZGF0YSgpLmdldEFsbFByb3BlcnRpZXMoKTtcblx0XHRjb25zdCBvVmlld0RhdGEgPSBPYmplY3Qua2V5cyhtUHJvcGVydGllcykucmVkdWNlKChtVmlld0RhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBzUHJvcGVydHlOYW1lOiBzdHJpbmcpID0+IHtcblx0XHRcdG1WaWV3RGF0YVtzUHJvcGVydHlOYW1lXSA9IG1Qcm9wZXJ0aWVzW3NQcm9wZXJ0eU5hbWVdLmdldCEodGhpcyk7XG5cdFx0XHRyZXR1cm4gbVZpZXdEYXRhO1xuXHRcdH0sIHt9KTtcblx0XHRkZWxldGUgb1ZpZXdEYXRhLnByZXByb2Nlc3NvckNvbnRleHQ7XG5cdFx0Ly8gQWNjZXNzIHRoZSBpbnRlcm5hbCBfaXNGY2xFbmFibGVkIHdoaWNoIHdpbGwgYmUgdGhlcmVcblx0XHRvVmlld0RhdGEuZmNsRW5hYmxlZCA9IHRoaXMub0FwcENvbXBvbmVudC5faXNGY2xFbmFibGVkKCk7XG5cdFx0Y29uc3Qgcm91dGluZ1RhcmdldE5hbWUgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um91dGluZ1NlcnZpY2UoKS5nZXRUYXJnZXROYW1lKHRoaXMpO1xuXHRcdG9WaWV3RGF0YS5pc0lubGluZUVkaXRFbmFibGVkID0gcm91dGluZ1RhcmdldE5hbWVcblx0XHRcdD8gdGhpcy5vQXBwQ29tcG9uZW50LmdldElubGluZUVkaXRTZXJ2aWNlKCkuZG9lc1BhZ2VIYXZlSW5saW5lRWRpdChyb3V0aW5nVGFyZ2V0TmFtZSlcblx0XHRcdDogZmFsc2U7XG5cblx0XHRyZXR1cm4gb1ZpZXdEYXRhO1xuXHR9XG5cblx0YXN5bmMgX2dldFBhZ2VUaXRsZUluZm9ybWF0aW9uKCk6IFByb21pc2U8VGl0bGVJbmZvcm1hdGlvbj4ge1xuXHRcdGNvbnN0IHJvb3RDb250cm9sID0gdGhpcy5nZXRSb290Q29udHJvbCgpO1xuXHRcdGlmIChyb290Q29udHJvbCAmJiByb290Q29udHJvbC5nZXRDb250cm9sbGVyKCkgJiYgcm9vdENvbnRyb2wuZ2V0Q29udHJvbGxlcigpLl9nZXRQYWdlVGl0bGVJbmZvcm1hdGlvbikge1xuXHRcdFx0cmV0dXJuIHJvb3RDb250cm9sLmdldENvbnRyb2xsZXIoKS5fZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24oKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSBhcyBUaXRsZUluZm9ybWF0aW9uKTtcblx0XHR9XG5cdH1cblxuXHRnZXRFeHRlbnNpb25BUEkoKTogRXh0ZW5zaW9uQVBJIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRSb290Q29udHJvbCgpLmdldENvbnRyb2xsZXIoKS5nZXRFeHRlbnNpb25BUEkoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIG1ldGFtb2RlbCBmb3IgdGhlIGdpdmVuIG1ldGFtb2RlbCByZWZlcmVuY2UgKElEIC8gbmFtZSBvciB1bmRlZmluZWQgZm9yIHRoZSBkZWZhdWx0IG9uZSkuXG5cdCAqIEBwYXJhbSBtZXRhTW9kZWxSZWZlcmVuY2UgVGhlIG1ldGFtb2RlbCByZWZlcmVuY2Vcblx0ICogQHJldHVybnMgVGhlIGNvcnJlY3QgbWV0YW1vZGVsIGlmIGl0IGV4aXRzXG5cdCAqL1xuXHRnZXRNZXRhTW9kZWwobWV0YU1vZGVsUmVmZXJlbmNlPzogc3RyaW5nKTogT0RhdGFNZXRhTW9kZWwgfCB1bmRlZmluZWQge1xuXHRcdGlmICghbWV0YU1vZGVsUmVmZXJlbmNlKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5wcmVwcm9jZXNzb3JDb250ZXh0Py5tb2RlbHMubWV0YU1vZGVsIGFzIE9EYXRhTWV0YU1vZGVsIHwgdW5kZWZpbmVkO1xuXHRcdH0gZWxzZSBpZiAobWV0YU1vZGVsUmVmZXJlbmNlLnN0YXJ0c1dpdGgoXCJpZC1cIikpIHtcblx0XHRcdHJldHVybiBnZXRNZXRhTW9kZWxCeUlkKG1ldGFNb2RlbFJlZmVyZW5jZSk7XG5cdFx0fSBlbHNlIGlmICghdGhpcy5nZXRNb2RlbChtZXRhTW9kZWxSZWZlcmVuY2UpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRBcHBDb21wb25lbnQoKS5nZXRNb2RlbChtZXRhTW9kZWxSZWZlcmVuY2UpPy5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbCB8IHVuZGVmaW5lZDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0TW9kZWwobWV0YU1vZGVsUmVmZXJlbmNlKT8uZ2V0TWV0YU1vZGVsKCkgYXMgT0RhdGFNZXRhTW9kZWwgfCB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgZnVsbCBjb250ZXh0IHBhdGggZm9yIHRoZSBnaXZlbiBtZXRhbW9kZWwgcmVmZXJlbmNlIChJRCAvIG5hbWUgb3IgdW5kZWZpbmVkIGZvciB0aGUgZGVmYXVsdCBvbmUpLlxuXHQgKiBAcGFyYW0gbWV0YU1vZGVsUmVmZXJlbmNlIFRoZSBtZXRhbW9kZWwgcmVmZXJlbmNlXG5cdCAqIEByZXR1cm5zIFRoZSBjb3JyZWN0IGZ1bGwgY29udGV4dCBwYXRoXG5cdCAqL1xuXHRnZXRGdWxsQ29udGV4dFBhdGgobWV0YU1vZGVsUmVmZXJlbmNlPzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAoIW1ldGFNb2RlbFJlZmVyZW5jZSkge1xuXHRcdFx0cmV0dXJuIHRoaXMucHJlcHJvY2Vzc29yQ29udGV4dD8uZnVsbENvbnRleHRQYXRoO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIE1hbmlmZXN0V3JhcHBlciBmb3IgdGhlIGN1cnJlbnQgdmlldy5cblx0ICogQHJldHVybnMgVGhlIE1hbmlmZXN0V3JhcHBlclxuXHQgKi9cblx0Z2V0TWFuaWZlc3RXcmFwcGVyKCk6IE1hbmlmZXN0V3JhcHBlciB7XG5cdFx0cmV0dXJuIG5ldyBNYW5pZmVzdFdyYXBwZXIodGhpcy5nZXRWaWV3RGF0YSgpIGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzKTtcblx0fVxufVxuaW50ZXJmYWNlIFRlbXBsYXRlQ29tcG9uZW50IHtcblx0Ly8gVE9ETzogdGhpcyBzaG91bGQgYmUgaWRlYWxseSBiZSBoYW5kbGVkIGJ5IHRoZSBlZGl0Zmxvdy9yb3V0aW5nIHdpdGhvdXQgdGhlIG5lZWQgdG8gaGF2ZSB0aGlzIG1ldGhvZCBpbiB0aGUgb2JqZWN0IHBhZ2UgLSBmb3Igbm93IGtlZXAgaXQgaGVyZVxuXHRjcmVhdGVEZWZlcnJlZENvbnRleHQ/KFxuXHRcdHNQYXRoOiBzdHJpbmcsXG5cdFx0b0xpc3RCaW5kaW5nOiBPRGF0YUxpc3RCaW5kaW5nIHwgdW5kZWZpbmVkLFxuXHRcdHBhcmVudENvbnRleHQ6IENvbnRleHQgfCB1bmRlZmluZWQsXG5cdFx0ZGF0YTogb2JqZWN0IHwgdW5kZWZpbmVkLFxuXHRcdGJBY3Rpb25DcmVhdGU6IGJvb2xlYW5cblx0KTogdm9pZDtcblx0aXNPcGVuSW5FZGl0TW9kZSgpOiBib29sZWFuO1xuXHRnZXRSb290Q29udHJvbCgpOiB7IGdldENvbnRyb2xsZXIoKTogUGFnZUNvbnRyb2xsZXIgfSAmIFZpZXc7XG5cdGV4dGVuZFBhZ2VEZWZpbml0aW9uPyhwYWdlRGVmaW5pdGlvbjoge30sIGNvbnZlcnRlckNvbnRleHQ/OiBDb252ZXJ0ZXJDb250ZXh0KToge307XG5cdGdldE1vZGVsKCk6IE9EYXRhTW9kZWw7XG5cdGdldE1vZGVsKG1vZGVsTmFtZTogXCJfcGFnZU1vZGVsXCIpOiBKU09OTW9kZWw7XG5cdGdldE1vZGVsKG1vZGVsTmFtZTogc3RyaW5nKTogTW9kZWwgfCB1bmRlZmluZWQ7XG59XG5leHBvcnQgZGVmYXVsdCBUZW1wbGF0ZUNvbXBvbmVudDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BcURNQSxpQkFBaUIsSUFBQUMsSUFBQSxHQUR0QkMsY0FBYyxDQUFDLCtCQUErQixDQUFDLEVBQUFDLEtBQUEsR0FFOUNDLGtCQUFrQixDQUFDLG1DQUFtQyxDQUFDLEVBQUFDLEtBQUEsR0FHdkRELGtCQUFrQixDQUFDLHlEQUF5RCxDQUFDLEVBQUFFLEtBQUEsR0FNN0VDLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsUUFBUTtJQUFFQyxZQUFZLEVBQUU7RUFBSyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU1oREgsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxRQUFRO0lBQUVDLFlBQVksRUFBRTtFQUFL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
|
|
325
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZW1wbGF0ZUNvbXBvbmVudCIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwiaW1wbGVtZW50SW50ZXJmYWNlIiwiX2RlYzMiLCJfZGVjNCIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsIl9kZWM1IiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfZGVjMTIiLCJfZGVjMTMiLCJfZGVjMTQiLCJfZGVjMTUiLCJfZGVjMTYiLCJfZGVjMTciLCJfZGVjMTgiLCJldmVudCIsIl9kZWMxOSIsIl9kZWMyMCIsIl9jbGFzcyIsIl9jbGFzczIiLCJfVUlDb21wb25lbnQiLCJfdGhpcyIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwiX2Rlc2NyaXB0b3IxMSIsIl9kZXNjcmlwdG9yMTIiLCJfZGVzY3JpcHRvcjEzIiwiX2Rlc2NyaXB0b3IxNCIsIl9kZXNjcmlwdG9yMTUiLCJfZGVzY3JpcHRvcjE2IiwiX2Rlc2NyaXB0b3IxNyIsIl9kZXNjcmlwdG9yMTgiLCJfZGVzY3JpcHRvcjE5IiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJzZXRDb250YWluZXIiLCJvQ29udGFpbmVyIiwiZmlyZUV2ZW50IiwiY29udGFpbmVyIiwiaW5pdCIsIm9BcHBDb21wb25lbnQiLCJDb21tb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsImdldEV4dGVuc2lvbkNvbXBvbmVudCIsInNldFJvb3RDb250cm9sbGVyIiwiY29udHJvbGxlciIsIl9yb290Q29udHJvbGxlciIsImdldFJvb3RDb250cm9sbGVyIiwicm9vdENvbnRyb2wiLCJnZXRSb290Q29udHJvbCIsInJvb3RDb250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsIm9uUGFnZVJlYWR5IiwibVBhcmFtZXRlcnMiLCJnZXROYXZpZ2F0aW9uQ29uZmlndXJhdGlvbiIsInNUYXJnZXRQYXRoIiwibU5hdmlnYXRpb24iLCJuYXZpZ2F0aW9uIiwiZ2V0Vmlld0RhdGEiLCJtUHJvcGVydGllcyIsImdldE1ldGFkYXRhIiwiZ2V0QWxsUHJvcGVydGllcyIsIm9WaWV3RGF0YSIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJtVmlld0RhdGEiLCJzUHJvcGVydHlOYW1lIiwiZ2V0IiwicHJlcHJvY2Vzc29yQ29udGV4dCIsImZjbEVuYWJsZWQiLCJfaXNGY2xFbmFibGVkIiwicm91dGluZ1RhcmdldE5hbWUiLCJnZXRSb3V0aW5nU2VydmljZSIsImdldFRhcmdldE5hbWUiLCJpc0lubGluZUVkaXRFbmFibGVkIiwiZ2V0SW5saW5lRWRpdFNlcnZpY2UiLCJkb2VzUGFnZUhhdmVJbmxpbmVFZGl0IiwiX2dldFBhZ2VUaXRsZUluZm9ybWF0aW9uIiwiUHJvbWlzZSIsInJlc29sdmUiLCJnZXRFeHRlbnNpb25BUEkiLCJnZXRNZXRhTW9kZWwiLCJtZXRhTW9kZWxSZWZlcmVuY2UiLCJtb2RlbHMiLCJtZXRhTW9kZWwiLCJzdGFydHNXaXRoIiwiZ2V0TWV0YU1vZGVsQnlJZCIsImdldE1vZGVsIiwiZ2V0RnVsbENvbnRleHRQYXRoIiwiZnVsbENvbnRleHRQYXRoIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiTWFuaWZlc3RXcmFwcGVyIiwiVUlDb21wb25lbnQiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlRlbXBsYXRlQ29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29udmVydGVkTWV0YWRhdGEgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBldmVudCwgaW1wbGVtZW50SW50ZXJmYWNlLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBFeHRlbnNpb25BUEkgZnJvbSBcInNhcC9mZS9jb3JlL0V4dGVuc2lvbkFQSVwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSB7IElCdWlsZGluZ0Jsb2NrT3duZXJDb21wb25lbnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvSUJ1aWxkaW5nQmxvY2tPd25lckNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgQ29udmVydGVyQ29udGV4dCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IE5hdmlnYXRpb25UYXJnZXRDb25maWd1cmF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgdHlwZSBCYXNlTWFuaWZlc3RTZXR0aW5ncyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCBNYW5pZmVzdFdyYXBwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RXcmFwcGVyXCI7XG5pbXBvcnQgeyBnZXRNZXRhTW9kZWxCeUlkIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgdHlwZSB7IERlZmluaXRpb25Db250ZXh0LCBEZWZpbml0aW9uUGFnZSB9IGZyb20gXCJzYXAvZmUvY29yZS9kZWZpbml0aW9uL0ZFRGVmaW5pdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBUaXRsZUluZm9ybWF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3Jvb3RWaWV3L1Jvb3RWaWV3QmFzZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIENvbXBvbmVudENvbnRhaW5lciBmcm9tIFwic2FwL3VpL2NvcmUvQ29tcG9uZW50Q29udGFpbmVyXCI7XG5pbXBvcnQgVUlDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL1VJQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IElBc3luY0NvbnRlbnRDcmVhdGlvbiB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgQmFzZUNvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01vZGVsXCI7XG5pbXBvcnQgdHlwZSBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuXG5leHBvcnQgdHlwZSBOYXZpZ2F0aW9uQ29uZmlndXJhdGlvbiA9IHtcblx0ZGV0YWlsOiB7XG5cdFx0cm91dGU6IHN0cmluZztcblx0XHRwYXJhbWV0ZXJzOiB1bmtub3duO1xuXHRcdG91dGJvdW5kPzogc3RyaW5nO1xuXHRcdG91dGJvdW5kRGV0YWlsPzogTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb25bXCJvdXRib3VuZERldGFpbFwiXTtcblx0fTtcblx0Y3JlYXRlOiB7XG5cdFx0cm91dGU6IHN0cmluZztcblx0XHRwYXJhbWV0ZXJzOiB1bmtub3duO1xuXHRcdG91dGJvdW5kPzogc3RyaW5nO1xuXHRcdG91dGJvdW5kRGV0YWlsPzogTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb25bXCJvdXRib3VuZERldGFpbFwiXTtcblx0fTtcbn07XG5cbmV4cG9ydCB0eXBlIFhNTFByZXByb2Nlc3NvckNvbnRleHQgPSB7XG5cdGJpbmRpbmdDb250ZXh0czogUmVjb3JkPHN0cmluZywgQmFzZUNvbnRleHQgfCBudWxsPjtcblx0bW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBNb2RlbD47XG5cdGZ1bGxDb250ZXh0UGF0aDogc3RyaW5nO1xuXHRnZXRDb252ZXJ0ZWRNZXRhZGF0YTogKCkgPT4gQ29udmVydGVkTWV0YWRhdGE7XG5cdGdldERlZmluaXRpb25Db250ZXh0OiAoKSA9PiBEZWZpbml0aW9uQ29udGV4dDtcblx0Z2V0RGVmaW5pdGlvbkZvclBhZ2U6ICgpID0+IERlZmluaXRpb25QYWdlO1xuXHRhcHBDb21wb25lbnQ6IEFwcENvbXBvbmVudDtcblx0dmlld0lkOiBzdHJpbmc7XG59O1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5UZW1wbGF0ZUNvbXBvbmVudFwiKVxuY2xhc3MgVGVtcGxhdGVDb21wb25lbnQgZXh0ZW5kcyBVSUNvbXBvbmVudCBpbXBsZW1lbnRzIElBc3luY0NvbnRlbnRDcmVhdGlvbiwgSUJ1aWxkaW5nQmxvY2tPd25lckNvbXBvbmVudCB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JQXN5bmNDb250ZW50Q3JlYXRpb25cIilcblx0X19pbXBsZW1lbnRzX19zYXBfdWlfY29yZV9JQXN5bmNDb250ZW50Q3JlYXRpb24gPSB0cnVlO1xuXG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAuZmUuY29yZS5idWlsZGluZ0Jsb2Nrcy5JQnVpbGRpbmdCbG9ja093bmVyQ29tcG9uZW50XCIpXG5cdF9faW1wbGVtZW50c19fc2FwX2ZlX2NvcmVfYnVpbGRpbmdCbG9ja3NfSUJ1aWxkaW5nQmxvY2tPd25lckNvbXBvbmVudCA9IHRydWU7XG5cblx0LyoqXG5cdCAqIE5hbWUgb2YgdGhlIE9EYXRhIGVudGl0eSBzZXRcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogbnVsbCB9KVxuXHRlbnRpdHlTZXQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG5cdC8qKlxuXHQgKiBDb250ZXh0IFBhdGggZm9yIHJlbmRlcmluZyB0aGUgdGVtcGxhdGVcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogbnVsbCB9KVxuXHRjb250ZXh0UGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RcIiB9KVxuXHRwcmVwcm9jZXNzb3JDb250ZXh0PzogWE1MUHJlcHJvY2Vzc29yQ29udGV4dDtcblxuXHQvKipcblx0ICogVGhlIHBhdHRlcm4gZm9yIHRoZSBiaW5kaW5nIGNvbnRleHQgdG8gYmUgY3JlYXRlIGJhc2VkIG9uIHRoZSBwYXJhbWV0ZXJzIGZyb20gdGhlIG5hdmlnYXRpb25cblx0ICogSWYgbm90IHByb3ZpZGVkIHdlJ2xsIGRlZmF1bHQgdG8gd2hhdCB3YXMgcGFzc2VkIGluIHRoZSBVUkxcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0YmluZGluZ0NvbnRleHRQYXR0ZXJuITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBNYXAgb2YgdXNlZCBPRGF0YSBuYXZpZ2F0aW9ucyBhbmQgaXRzIHJvdXRpbmcgdGFyZ2V0c1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RcIiB9KVxuXHRuYXZpZ2F0aW9uITogUmVjb3JkPHN0cmluZywgTmF2aWdhdGlvbkNvbmZpZ3VyYXRpb24+O1xuXG5cdC8qKlxuXHQgKiBFbmhhbmNlIHRoZSBpMThuIGJ1bmRsZSB1c2VkIGZvciB0aGlzIHBhZ2Ugd2l0aCBvbmUgb3IgbW9yZSBhcHAgc3BlY2lmaWMgaTE4biByZXNvdXJjZSBidW5kbGVzIG9yIHJlc291cmNlIG1vZGVsc1xuXHQgKiBvciBhIGNvbWJpbmF0aW9uIG9mIGJvdGguIFRoZSBsYXN0IHJlc291cmNlIGJ1bmRsZS9tb2RlbCBpcyBnaXZlbiBoaWdoZXN0IHByaW9yaXR5XG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1tdXCIgfSlcblx0ZW5oYW5jZUkxOG4hOiBzdHJpbmdbXTtcblxuXHQvKipcblx0ICogRGVmaW5lIGNvbnRyb2wgcmVsYXRlZCBjb25maWd1cmF0aW9uIHNldHRpbmdzXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcIm9iamVjdFwiIH0pXG5cdGNvbnRyb2xDb25maWd1cmF0aW9uPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RcIiB9KVxuXHRpbmxpbmVFZGl0PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cblx0LyoqXG5cdCAqIEFkanVzdHMgdGhlIHRlbXBsYXRlIGNvbnRlbnRcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwib2JqZWN0XCIgfSlcblx0Y29udGVudD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIG9yIG5vdCB5b3UgY2FuIHJlYWNoIHRoaXMgcGFnZSBkaXJlY3RseSB0aHJvdWdoIHNlbWFudGljIGJvb2ttYXJrc1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0YWxsb3dEZWVwTGlua2luZyE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIGNvbnRleHQgcGF0aCBvbiB0aGUgY29tcG9uZW50IHRoYXQgaXMgcmVmcmVzaGVkIHdoZW4gdGhlIGFwcCBpcyByZXN0b3JlZCB1c2luZyBrZWVwIGFsaXZlIG1vZGVcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwib2JqZWN0XCIgfSlcblx0cmVmcmVzaFN0cmF0ZWd5T25BcHBSZXN0b3JlOiB1bmtub3duO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0dmlld1R5cGUgPSBcIlhNTFwiO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0dmlld05hbWU/OiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRfanN4Vmlld05hbWUgPSBcIlwiO1xuXG5cdEBldmVudCgpXG5cdGNvbnRhaW5lckRlZmluZWQhOiBGdW5jdGlvbjtcblxuXHRAZXZlbnQoKVxuXHRoZXJvZXNCYXRjaFJlY2VpdmVkITogRnVuY3Rpb247XG5cblx0QGV2ZW50KClcblx0d29ya2Vyc0JhdGNoUmVjZWl2ZWQhOiBGdW5jdGlvbjtcblxuXHRwcm90ZWN0ZWQgb0FwcENvbXBvbmVudCE6IEFwcENvbXBvbmVudDtcblxuXHRwcml2YXRlIF9yb290Q29udHJvbGxlcj86IFBhZ2VDb250cm9sbGVyO1xuXG5cdC8vIFRoZSBpZCBvZiBhIGZyYWdtZW50IGJlaW5nIHByb2Nlc3NlZCwgaXQgd2lsbCB0YWtlIHByaW9yaXR5IGluIHRoZSBJRCBnZW5lcmF0aW9uXG5cdHByaXZhdGUgX3RlbXBvcmFyeUZyYWdtZW50SWQ/OiBzdHJpbmc7XG5cblx0c2V0Q29udGFpbmVyKG9Db250YWluZXI6IENvbXBvbmVudENvbnRhaW5lcik6IHRoaXMge1xuXHRcdHN1cGVyLnNldENvbnRhaW5lcihvQ29udGFpbmVyKTtcblx0XHR0aGlzLmZpcmVFdmVudChcImNvbnRhaW5lckRlZmluZWRcIiwgeyBjb250YWluZXI6IG9Db250YWluZXIgfSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRpbml0KCk6IHZvaWQge1xuXHRcdHRoaXMub0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzKTtcblx0XHRzdXBlci5pbml0KCk7XG5cdH1cblxuXHQvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgVUk1IGNvcmUgdG8gYWNjZXNzIHRvIHRoZSBjb21wb25lbnQgY29udGFpbmluZyB0aGUgY3VzdG9taXppbmcgY29uZmlndXJhdGlvbi5cblx0Ly8gYXMgY29udHJvbGxlciBleHRlbnNpb25zIGFyZSBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdCBmb3IgdGhlIGFwcCBjb21wb25lbnQgYW5kIG5vdCBmb3IgdGhlXG5cdC8vIHRlbXBsYXRlIGNvbXBvbmVudCB3ZSByZXR1cm4gdGhlIGFwcCBjb21wb25lbnQuXG5cdGdldEV4dGVuc2lvbkNvbXBvbmVudCgpOiBBcHBDb21wb25lbnQge1xuXHRcdHJldHVybiB0aGlzLm9BcHBDb21wb25lbnQ7XG5cdH1cblxuXHRnZXRBcHBDb21wb25lbnQoKTogQXBwQ29tcG9uZW50IHtcblx0XHRyZXR1cm4gdGhpcy5vQXBwQ29tcG9uZW50O1xuXHR9XG5cblx0c2V0Um9vdENvbnRyb2xsZXIoY29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIpOiB2b2lkIHtcblx0XHR0aGlzLl9yb290Q29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG5cdH1cblxuXHRnZXRSb290Q29udHJvbGxlcigpOiBQYWdlQ29udHJvbGxlciB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgcm9vdENvbnRyb2w6IFZpZXcgPSB0aGlzLmdldFJvb3RDb250cm9sKCk7XG5cdFx0bGV0IHJvb3RDb250cm9sbGVyOiBQYWdlQ29udHJvbGxlciB8IHVuZGVmaW5lZDtcblx0XHRpZiAocm9vdENvbnRyb2wgJiYgcm9vdENvbnRyb2wuZ2V0Q29udHJvbGxlcikge1xuXHRcdFx0cm9vdENvbnRyb2xsZXIgPSByb290Q29udHJvbC5nZXRDb250cm9sbGVyKCkgYXMgUGFnZUNvbnRyb2xsZXI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJvb3RDb250cm9sbGVyID0gdGhpcy5fcm9vdENvbnRyb2xsZXI7XG5cdFx0fVxuXHRcdHJldHVybiByb290Q29udHJvbGxlcjtcblx0fVxuXG5cdG9uUGFnZVJlYWR5KG1QYXJhbWV0ZXJzOiB1bmtub3duKTogdm9pZCB7XG5cdFx0Y29uc3Qgcm9vdENvbnRyb2xsZXIgPSB0aGlzLmdldFJvb3RDb250cm9sbGVyKCk7XG5cdFx0aWYgKHJvb3RDb250cm9sbGVyICYmIHJvb3RDb250cm9sbGVyLm9uUGFnZVJlYWR5KSB7XG5cdFx0XHRyb290Q29udHJvbGxlci5vblBhZ2VSZWFkeShtUGFyYW1ldGVycyk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0TmF2aWdhdGlvbkNvbmZpZ3VyYXRpb24oc1RhcmdldFBhdGg6IHN0cmluZyk6IE5hdmlnYXRpb25Db25maWd1cmF0aW9uIHtcblx0XHRjb25zdCBtTmF2aWdhdGlvbiA9IHRoaXMubmF2aWdhdGlvbjtcblx0XHRyZXR1cm4gbU5hdmlnYXRpb25bc1RhcmdldFBhdGhdO1xuXHR9XG5cblx0Z2V0Vmlld0RhdGEoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuXHRcdGNvbnN0IG1Qcm9wZXJ0aWVzID0gdGhpcy5nZXRNZXRhZGF0YSgpLmdldEFsbFByb3BlcnRpZXMoKTtcblx0XHRjb25zdCBvVmlld0RhdGEgPSBPYmplY3Qua2V5cyhtUHJvcGVydGllcykucmVkdWNlKChtVmlld0RhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBzUHJvcGVydHlOYW1lOiBzdHJpbmcpID0+IHtcblx0XHRcdG1WaWV3RGF0YVtzUHJvcGVydHlOYW1lXSA9IG1Qcm9wZXJ0aWVzW3NQcm9wZXJ0eU5hbWVdLmdldCEodGhpcyk7XG5cdFx0XHRyZXR1cm4gbVZpZXdEYXRhO1xuXHRcdH0sIHt9KTtcblx0XHRkZWxldGUgb1ZpZXdEYXRhLnByZXByb2Nlc3NvckNvbnRleHQ7XG5cdFx0Ly8gQWNjZXNzIHRoZSBpbnRlcm5hbCBfaXNGY2xFbmFibGVkIHdoaWNoIHdpbGwgYmUgdGhlcmVcblx0XHRvVmlld0RhdGEuZmNsRW5hYmxlZCA9IHRoaXMub0FwcENvbXBvbmVudC5faXNGY2xFbmFibGVkKCk7XG5cdFx0Y29uc3Qgcm91dGluZ1RhcmdldE5hbWUgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um91dGluZ1NlcnZpY2UoKS5nZXRUYXJnZXROYW1lKHRoaXMpO1xuXHRcdG9WaWV3RGF0YS5pc0lubGluZUVkaXRFbmFibGVkID0gcm91dGluZ1RhcmdldE5hbWVcblx0XHRcdD8gdGhpcy5vQXBwQ29tcG9uZW50LmdldElubGluZUVkaXRTZXJ2aWNlKCkuZG9lc1BhZ2VIYXZlSW5saW5lRWRpdChyb3V0aW5nVGFyZ2V0TmFtZSlcblx0XHRcdDogZmFsc2U7XG5cblx0XHRyZXR1cm4gb1ZpZXdEYXRhO1xuXHR9XG5cblx0YXN5bmMgX2dldFBhZ2VUaXRsZUluZm9ybWF0aW9uKCk6IFByb21pc2U8VGl0bGVJbmZvcm1hdGlvbj4ge1xuXHRcdGNvbnN0IHJvb3RDb250cm9sID0gdGhpcy5nZXRSb290Q29udHJvbCgpO1xuXHRcdGlmIChyb290Q29udHJvbCAmJiByb290Q29udHJvbC5nZXRDb250cm9sbGVyKCkgJiYgcm9vdENvbnRyb2wuZ2V0Q29udHJvbGxlcigpLl9nZXRQYWdlVGl0bGVJbmZvcm1hdGlvbikge1xuXHRcdFx0cmV0dXJuIHJvb3RDb250cm9sLmdldENvbnRyb2xsZXIoKS5fZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24oKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSBhcyBUaXRsZUluZm9ybWF0aW9uKTtcblx0XHR9XG5cdH1cblxuXHRnZXRFeHRlbnNpb25BUEkoKTogRXh0ZW5zaW9uQVBJIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRSb290Q29udHJvbCgpLmdldENvbnRyb2xsZXIoKS5nZXRFeHRlbnNpb25BUEkoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIG1ldGFtb2RlbCBmb3IgdGhlIGdpdmVuIG1ldGFtb2RlbCByZWZlcmVuY2UgKElEIC8gbmFtZSBvciB1bmRlZmluZWQgZm9yIHRoZSBkZWZhdWx0IG9uZSkuXG5cdCAqIEBwYXJhbSBtZXRhTW9kZWxSZWZlcmVuY2UgVGhlIG1ldGFtb2RlbCByZWZlcmVuY2Vcblx0ICogQHJldHVybnMgVGhlIGNvcnJlY3QgbWV0YW1vZGVsIGlmIGl0IGV4aXRzXG5cdCAqL1xuXHRnZXRNZXRhTW9kZWwobWV0YU1vZGVsUmVmZXJlbmNlPzogc3RyaW5nKTogT0RhdGFNZXRhTW9kZWwgfCB1bmRlZmluZWQge1xuXHRcdGlmICghbWV0YU1vZGVsUmVmZXJlbmNlKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5wcmVwcm9jZXNzb3JDb250ZXh0Py5tb2RlbHMubWV0YU1vZGVsIGFzIE9EYXRhTWV0YU1vZGVsIHwgdW5kZWZpbmVkO1xuXHRcdH0gZWxzZSBpZiAobWV0YU1vZGVsUmVmZXJlbmNlLnN0YXJ0c1dpdGgoXCJpZC1cIikpIHtcblx0XHRcdHJldHVybiBnZXRNZXRhTW9kZWxCeUlkKG1ldGFNb2RlbFJlZmVyZW5jZSk7XG5cdFx0fSBlbHNlIGlmICghdGhpcy5nZXRNb2RlbChtZXRhTW9kZWxSZWZlcmVuY2UpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRBcHBDb21wb25lbnQoKS5nZXRNb2RlbChtZXRhTW9kZWxSZWZlcmVuY2UpPy5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbCB8IHVuZGVmaW5lZDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0TW9kZWwobWV0YU1vZGVsUmVmZXJlbmNlKT8uZ2V0TWV0YU1vZGVsKCkgYXMgT0RhdGFNZXRhTW9kZWwgfCB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgZnVsbCBjb250ZXh0IHBhdGggZm9yIHRoZSBnaXZlbiBtZXRhbW9kZWwgcmVmZXJlbmNlIChJRCAvIG5hbWUgb3IgdW5kZWZpbmVkIGZvciB0aGUgZGVmYXVsdCBvbmUpLlxuXHQgKiBAcGFyYW0gbWV0YU1vZGVsUmVmZXJlbmNlIFRoZSBtZXRhbW9kZWwgcmVmZXJlbmNlXG5cdCAqIEByZXR1cm5zIFRoZSBjb3JyZWN0IGZ1bGwgY29udGV4dCBwYXRoXG5cdCAqL1xuXHRnZXRGdWxsQ29udGV4dFBhdGgobWV0YU1vZGVsUmVmZXJlbmNlPzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAoIW1ldGFNb2RlbFJlZmVyZW5jZSkge1xuXHRcdFx0cmV0dXJuIHRoaXMucHJlcHJvY2Vzc29yQ29udGV4dD8uZnVsbENvbnRleHRQYXRoO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIE1hbmlmZXN0V3JhcHBlciBmb3IgdGhlIGN1cnJlbnQgdmlldy5cblx0ICogQHJldHVybnMgVGhlIE1hbmlmZXN0V3JhcHBlclxuXHQgKi9cblx0Z2V0TWFuaWZlc3RXcmFwcGVyKCk6IE1hbmlmZXN0V3JhcHBlciB7XG5cdFx0cmV0dXJuIG5ldyBNYW5pZmVzdFdyYXBwZXIodGhpcy5nZXRWaWV3RGF0YSgpIGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzKTtcblx0fVxufVxuaW50ZXJmYWNlIFRlbXBsYXRlQ29tcG9uZW50IHtcblx0Ly8gVE9ETzogdGhpcyBzaG91bGQgYmUgaWRlYWxseSBiZSBoYW5kbGVkIGJ5IHRoZSBlZGl0Zmxvdy9yb3V0aW5nIHdpdGhvdXQgdGhlIG5lZWQgdG8gaGF2ZSB0aGlzIG1ldGhvZCBpbiB0aGUgb2JqZWN0IHBhZ2UgLSBmb3Igbm93IGtlZXAgaXQgaGVyZVxuXHRjcmVhdGVEZWZlcnJlZENvbnRleHQ/KFxuXHRcdHNQYXRoOiBzdHJpbmcsXG5cdFx0cGFyYW1ldGVyczogeyBsaXN0QmluZGluZz86IE9EYXRhTGlzdEJpbmRpbmc7IHBhcmVudENvbnRleHQ/OiBDb250ZXh0OyBkYXRhPzogb2JqZWN0OyByZXF1ZXN0QXRMZWFzdD86IHN0cmluZ1tdIH0sXG5cdFx0YkFjdGlvbkNyZWF0ZTogYm9vbGVhblxuXHQpOiB2b2lkO1xuXHRpc09wZW5JbkVkaXRNb2RlKCk6IGJvb2xlYW47XG5cdGdldFJvb3RDb250cm9sKCk6IHsgZ2V0Q29udHJvbGxlcigpOiBQYWdlQ29udHJvbGxlciB9ICYgVmlldztcblx0ZXh0ZW5kUGFnZURlZmluaXRpb24/KHBhZ2VEZWZpbml0aW9uOiB7fSwgY29udmVydGVyQ29udGV4dD86IENvbnZlcnRlckNvbnRleHQpOiB7fTtcblx0Z2V0TW9kZWwoKTogT0RhdGFNb2RlbDtcblx0Z2V0TW9kZWwobW9kZWxOYW1lOiBcIl9wYWdlTW9kZWxcIik6IEpTT05Nb2RlbDtcblx0Z2V0TW9kZWwobW9kZWxOYW1lOiBzdHJpbmcpOiBNb2RlbCB8IHVuZGVmaW5lZDtcbn1cbmV4cG9ydCBkZWZhdWx0IFRlbXBsYXRlQ29tcG9uZW50O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFxRE1BLGlCQUFpQixJQUFBQyxJQUFBLEdBRHRCQyxjQUFjLENBQUMsK0JBQStCLENBQUMsRUFBQUMsS0FBQSxHQUU5Q0Msa0JBQWtCLENBQUMsbUNBQW1DLENBQUMsRUFBQUMsS0FBQSxHQUd2REQsa0JBQWtCLENBQUMseURBQXlELENBQUMsRUFBQUUsS0FBQSxHQU03RUMsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxRQUFRO0lBQUVDLFlBQVksRUFBRTtFQUFLLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBTWhESCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFFBQVE7SUFBRUMsWUFBWSxFQUFFO0VBQUss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
|
|
@@ -264,9 +264,7 @@ interface TemplateComponent {
|
|
|
264
264
|
// TODO: this should be ideally be handled by the editflow/routing without the need to have this method in the object page - for now keep it here
|
|
265
265
|
createDeferredContext?(
|
|
266
266
|
sPath: string,
|
|
267
|
-
|
|
268
|
-
parentContext: Context | undefined,
|
|
269
|
-
data: object | undefined,
|
|
267
|
+
parameters: { listBinding?: ODataListBinding; parentContext?: Context; data?: object; requestAtLeast?: string[] },
|
|
270
268
|
bActionCreate: boolean
|
|
271
269
|
): void;
|
|
272
270
|
isOpenInEditMode(): boolean;
|