@sapui5/sap.fe.templates 1.146.0 → 1.148.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/templates/.library +1 -1
- package/src/sap/fe/templates/AnalyticalListPage/manifest.json +1 -1
- package/src/sap/fe/templates/ListReport/ExtensionAPI.js +1 -1
- package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +1 -1
- package/src/sap/fe/templates/ListReport/ListReport.view.xml +45 -10
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +43 -16
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +51 -15
- package/src/sap/fe/templates/ListReport/ListReportTemplating.js +39 -3
- package/src/sap/fe/templates/ListReport/ListReportTemplating.ts +35 -1
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +4 -1
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +3 -0
- package/src/sap/fe/templates/ListReport/manifest.json +1 -1
- package/src/sap/fe/templates/ListReport/overrides/MessageHandler.js +3 -2
- package/src/sap/fe/templates/ListReport/overrides/MessageHandler.ts +2 -1
- package/src/sap/fe/templates/ObjectPage/Component.js +4 -2
- package/src/sap/fe/templates/ObjectPage/Component.ts +3 -1
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +163 -28
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +163 -23
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +246 -35
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +286 -42
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +32 -16
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +46 -33
- package/src/sap/fe/templates/ObjectPage/components/CollaborationDiscardDialog.js +4 -1
- package/src/sap/fe/templates/ObjectPage/components/CollaborationDiscardDialog.tsx +1 -0
- package/src/sap/fe/templates/ObjectPage/components/CollaborationDraft.js +15 -4
- package/src/sap/fe/templates/ObjectPage/components/CollaborationDraft.tsx +11 -2
- package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +28 -1
- package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.ts +31 -0
- package/src/sap/fe/templates/ObjectPage/helpers/SectionNavigationHelper.js +72 -0
- package/src/sap/fe/templates/ObjectPage/helpers/SectionNavigationHelper.ts +75 -0
- package/src/sap/fe/templates/ObjectPage/manifest.json +1 -15
- package/src/sap/fe/templates/ObjectPage/overrides/CollaborationManager.js +29 -20
- package/src/sap/fe/templates/ObjectPage/overrides/CollaborationManager.ts +28 -21
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +4 -3
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +4 -4
- package/src/sap/fe/templates/ObjectPage/overrides/Share.js +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +93 -17
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.ts +108 -22
- package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +12 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/EmphasizedFirstHeaderAction.fragment.xml +182 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/ExpandedHeading.fragment.xml +4 -4
- package/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +4 -4
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderAddress.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +1 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +2 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +18 -12
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +2 -0
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +2 -0
- package/src/sap/fe/templates/library.js +1 -1
- package/src/sap/fe/templates/messagebundle.properties +1 -1
- package/src/sap/fe/templates/messagebundle_ar.properties +1 -1
- package/src/sap/fe/templates/messagebundle_bg.properties +1 -1
- package/src/sap/fe/templates/messagebundle_ca.properties +1 -1
- package/src/sap/fe/templates/messagebundle_cnr.properties +1 -1
- package/src/sap/fe/templates/messagebundle_cs.properties +1 -1
- package/src/sap/fe/templates/messagebundle_cy.properties +1 -1
- package/src/sap/fe/templates/messagebundle_da.properties +1 -1
- package/src/sap/fe/templates/messagebundle_de.properties +1 -1
- package/src/sap/fe/templates/messagebundle_el.properties +1 -1
- package/src/sap/fe/templates/messagebundle_en.properties +1 -1
- package/src/sap/fe/templates/messagebundle_en_GB.properties +1 -1
- package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +1 -1
- package/src/sap/fe/templates/messagebundle_es.properties +1 -1
- package/src/sap/fe/templates/messagebundle_es_MX.properties +1 -1
- package/src/sap/fe/templates/messagebundle_et.properties +1 -1
- package/src/sap/fe/templates/messagebundle_fi.properties +1 -1
- package/src/sap/fe/templates/messagebundle_fr.properties +1 -1
- package/src/sap/fe/templates/messagebundle_fr_CA.properties +1 -1
- package/src/sap/fe/templates/messagebundle_hi.properties +1 -1
- package/src/sap/fe/templates/messagebundle_hr.properties +1 -1
- package/src/sap/fe/templates/messagebundle_hu.properties +1 -1
- package/src/sap/fe/templates/messagebundle_id.properties +1 -1
- package/src/sap/fe/templates/messagebundle_it.properties +1 -1
- package/src/sap/fe/templates/messagebundle_iw.properties +2 -2
- package/src/sap/fe/templates/messagebundle_ja.properties +1 -1
- package/src/sap/fe/templates/messagebundle_kk.properties +1 -1
- package/src/sap/fe/templates/messagebundle_ko.properties +1 -1
- package/src/sap/fe/templates/messagebundle_lt.properties +1 -1
- package/src/sap/fe/templates/messagebundle_lv.properties +1 -1
- package/src/sap/fe/templates/messagebundle_mk.properties +1 -1
- package/src/sap/fe/templates/messagebundle_ms.properties +1 -1
- package/src/sap/fe/templates/messagebundle_nl.properties +1 -1
- package/src/sap/fe/templates/messagebundle_no.properties +2 -2
- package/src/sap/fe/templates/messagebundle_pl.properties +1 -1
- package/src/sap/fe/templates/messagebundle_pt.properties +1 -1
- package/src/sap/fe/templates/messagebundle_pt_PT.properties +1 -1
- package/src/sap/fe/templates/messagebundle_ro.properties +1 -1
- package/src/sap/fe/templates/messagebundle_ru.properties +1 -1
- package/src/sap/fe/templates/messagebundle_sh.properties +1 -1
- package/src/sap/fe/templates/messagebundle_sk.properties +1 -1
- package/src/sap/fe/templates/messagebundle_sl.properties +1 -1
- package/src/sap/fe/templates/messagebundle_sr.properties +1 -1
- package/src/sap/fe/templates/messagebundle_sv.properties +1 -1
- package/src/sap/fe/templates/messagebundle_th.properties +1 -1
- package/src/sap/fe/templates/messagebundle_tr.properties +1 -1
- package/src/sap/fe/templates/messagebundle_uk.properties +3 -3
- package/src/sap/fe/templates/messagebundle_vi.properties +1 -1
- package/src/sap/fe/templates/messagebundle_zh_CN.properties +1 -1
- package/src/sap/fe/templates/messagebundle_zh_TW.properties +1 -1
|
@@ -160,6 +160,9 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/coll
|
|
|
160
160
|
children: [_jsx(CollaborationDiscard.GridTableColumnControl, {
|
|
161
161
|
width: "3em",
|
|
162
162
|
children: {
|
|
163
|
+
label: _jsx(Text, {
|
|
164
|
+
text: this.discardResourceModel.getText("C_COLLABORATIONDRAFT_DISCARD_TABLE_USER_AVATAR_COLUMN")
|
|
165
|
+
}),
|
|
163
166
|
template: _jsx(HBox, {
|
|
164
167
|
alignItems: "Center",
|
|
165
168
|
justifyContent: "SpaceBetween",
|
|
@@ -426,4 +429,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/controllerextensions/coll
|
|
|
426
429
|
_exports = CollaborationDiscard;
|
|
427
430
|
return _exports;
|
|
428
431
|
}, false);
|
|
429
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsYWJvcmF0aW9uRGlzY2FyZCIsInZpZXciLCJpc1NhdmUiLCJmb3JtYXRVc2VyU3RhdHVzIiwidXNlclN0YXR1cyIsIlVzZXJTdGF0dXMiLCJDdXJyZW50bHlFZGl0aW5nIiwiZGlzY2FyZFJlc291cmNlTW9kZWwiLCJnZXRUZXh0IiwiQ2hhbmdlc01hZGUiLCJOb0NoYW5nZXNNYWRlIiwiTm90WWV0SW52aXRlZCIsInNhdmVNYW5hZ2VEaWFsb2ciLCJwcm9taXNlUmVzb2x2ZSIsIm1hbmFnZURpYWxvZyIsImNsb3NlIiwiZGVzdHJveSIsImRpc2NhcmRNYW5hZ2VEaWFsb2ciLCJjYW5jZWxNYW5hZ2VEaWFsb2ciLCJrZWVwRHJhZnRNYW5hZ2VEaWFsb2ciLCJhY3Rpb25Jc1NhdmUiLCJjb250YWluaW5nVmlldyIsIlJlc291cmNlTW9kZWxIZWxwZXIiLCJnZXRSZXNvdXJjZU1vZGVsIiwiYWN0aW9uQnV0dG9uIiwiZ2V0U2F2ZUJ1dHRvbiIsInRvcFRleHQiLCJib3R0b21UZXh0IiwiZ2V0RGlzY2FyZEJ1dHRvbiIsIl9leHBvcnRzIiwibG9hZCIsIkdyaWRUYWJsZUNvbnRyb2wiLCJ1bmRlZmluZWQiLCJMaWIiLCJuYW1lIiwiZGVmYXVsdCIsIl9fdWk1X3JlcXVpcmVfYXN5bmMiLCJHcmlkVGFibGVDb2x1bW5Db250cm9sIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiZ2V0TWFuYWdlRGlhbG9nIiwiX2pzeCIsIkRpYWxvZyIsInRpdGxlIiwic3RhdGUiLCJWYWx1ZVN0YXRlIiwiV2FybmluZyIsImNvbnRlbnRXaWR0aCIsImNoaWxkcmVuIiwiYnV0dG9ucyIsIl9qc3hzIiwiX0ZyYWdtZW50IiwiZ2V0S2VlcERyYWZ0QnV0dG9uIiwiZ2V0Q2FuY2VsQnV0dG9uIiwiY29udGVudCIsIlZCb3giLCJjbGFzcyIsIk9iamVjdElkZW50aWZpZXIiLCJ0ZXh0IiwiZ2V0TWFuYWdlRGlhbG9nVXNlclRhYmxlIiwiVGV4dCIsImFkZERlcGVuZGVudCIsImJpbmRFbGVtZW50IiwibW9kZWwiLCJwYXRoIiwiZ2V0TWFuYWdlRGlhbG9nVXNlclRhYmxlQ29sdW1ucyIsIndpZHRoIiwidGVtcGxhdGUiLCJIQm94IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiQXZhdGFyIiwiZGlzcGxheVNpemUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJpbml0aWFscyIsImxhYmVsIiwiT2JqZWN0U3RhdHVzIiwiZm9ybWF0dGVyIiwiZm9ybWF0VXNlclN0YXR1c0NvbG9yIiwidmlld0ludGVybmFsTW9kZWxDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJlZGl0aW5nVXNlcnMiLCJnZXRQcm9wZXJ0eSIsInRhYmxlUm93Q291bnQiLCJDb21tb25IZWxwZXIiLCJpc0Rlc2t0b3AiLCJsZW5ndGgiLCJyb3dzIiwidmlzaWJsZVJvd0NvdW50IiwidmlzaWJsZVJvd0NvdW50TW9kZSIsInNlbGVjdGlvbk1vZGUiLCJjb2x1bW5zIiwiU3VjY2VzcyIsIkluZm9ybWF0aW9uIiwicmVhZEludml0ZWRVc2VycyIsImdldE1vZGVsIiwicGFyYW1ldGVycyIsIiRzZWxlY3QiLCJpbnZpdGVkVXNlckxpc3QiLCJiaW5kTGlzdCIsIm1lIiwiQ29sbGFib3JhdGlvblV0aWxzIiwiZ2V0TWUiLCJDb21tb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsImludGVybmFsTW9kZWxDb250ZXh0IiwiZmlsdGVyIiwiRmlsdGVyIiwib3BlcmF0b3IiLCJ2YWx1ZTEiLCJpZCIsImNvbnRleHRzIiwicmVxdWVzdENvbnRleHRzIiwiYWN0aXZlVXNlcnMiLCJzZXRQcm9wZXJ0eSIsImZvckVhY2giLCJzaW5nbGVDb250ZXh0IiwidXNlckRhdGEiLCJnZXRPYmplY3QiLCJ1c2VyIiwiY3JlYXRlVXNlciIsImNvbG9yIiwiZ2V0VXNlckNvbG9yIiwiVXNlcklEIiwicHVzaCIsInNvcnRlZFVzZXJzIiwic29ydFVzZXIiLCJyZWFkQ3VycmVudFVzZXJzIiwiY3VycmVudFVzZXJzIiwiY3VycmVudFVzZXJzV2l0aG91dE1lIiwibWFwIiwic3RhdHVzIiwic29ydCIsInVzZXJBIiwidXNlckIiLCJpc0FjdGl2ZSIsImZpbmQiLCJ1IiwidXNlckRlc2NyaXB0aW9uIiwiVXNlckRlc2NyaXB0aW9uIiwiZm9ybWF0SW5pdGlhbHMiLCJVc2VyRWRpdGluZ1N0YXRlIiwiSW5Qcm9ncmVzcyIsIkJ1dHRvbiIsInByZXNzIiwidHlwZSIsImdldFVzZXJBY3Rpb24iLCJvcGVuIiwiUHJvbWlzZSIsInJlc29sdmUiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbGxhYm9yYXRpb25EaXNjYXJkRGlhbG9nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBCYWNrZW5kVXNlciwgVXNlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0NvbGxhYm9yYXRpb25Db21tb25cIjtcbmltcG9ydCB7IENvbGxhYm9yYXRpb25VdGlscywgVXNlckVkaXRpbmdTdGF0ZSwgVXNlclN0YXR1cyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0NvbGxhYm9yYXRpb25Db21tb25cIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IFJlc291cmNlTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvUmVzb3VyY2VNb2RlbEhlbHBlclwiO1xuaW1wb3J0IENvbW1vbkhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9Db21tb25IZWxwZXJcIjtcbmltcG9ydCBBdmF0YXIgZnJvbSBcInNhcC9tL0F2YXRhclwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRGlhbG9nIGZyb20gXCJzYXAvbS9EaWFsb2dcIjtcbmltcG9ydCBIQm94IGZyb20gXCJzYXAvbS9IQm94XCI7XG5pbXBvcnQgT2JqZWN0SWRlbnRpZmllciBmcm9tIFwic2FwL20vT2JqZWN0SWRlbnRpZmllclwiO1xuaW1wb3J0IE9iamVjdFN0YXR1cyBmcm9tIFwic2FwL20vT2JqZWN0U3RhdHVzXCI7XG5pbXBvcnQgVGV4dCBmcm9tIFwic2FwL20vVGV4dFwiO1xuaW1wb3J0IFZCb3ggZnJvbSBcInNhcC9tL1ZCb3hcIjtcbmltcG9ydCBMaWIgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IHsgVmFsdWVTdGF0ZSB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IEZpbHRlciBmcm9tIFwic2FwL3VpL21vZGVsL0ZpbHRlclwiO1xuaW1wb3J0IHR5cGUgR3JpZFRhYmxlQ29sdW1uIGZyb20gXCJzYXAvdWkvdGFibGUvQ29sdW1uXCI7XG5pbXBvcnQgdHlwZSBHcmlkVGFibGUgZnJvbSBcInNhcC91aS90YWJsZS9UYWJsZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb2xsYWJvcmF0aW9uRGlzY2FyZCB7XG5cdHB1YmxpYyBpZD86IHN0cmluZztcblxuXHRwcml2YXRlIHByb21pc2VSZXNvbHZlITogRnVuY3Rpb247XG5cblx0cHVibGljIGRpc2NhcmRSZXNvdXJjZU1vZGVsITogUmVzb3VyY2VNb2RlbDtcblxuXHRwdWJsaWMgY29udGFpbmluZ1ZpZXchOiBGRVZpZXc7XG5cblx0cHVibGljIG1hbmFnZURpYWxvZyE6IERpYWxvZztcblxuXHRwcml2YXRlIGFjdGlvbkJ1dHRvbiE6IEJ1dHRvbjtcblxuXHRwcml2YXRlIHRvcFRleHQhOiBzdHJpbmc7XG5cblx0cHJpdmF0ZSBib3R0b21UZXh0ITogc3RyaW5nO1xuXG5cdHByaXZhdGUgYWN0aW9uSXNTYXZlITogYm9vbGVhbjtcblxuXHRwcml2YXRlIHN0YXRpYyBHcmlkVGFibGVDb250cm9sOiB0eXBlb2YgR3JpZFRhYmxlO1xuXG5cdHByaXZhdGUgc3RhdGljIEdyaWRUYWJsZUNvbHVtbkNvbnRyb2w6IHR5cGVvZiBHcmlkVGFibGVDb2x1bW47XG5cblx0Y29uc3RydWN0b3IodmlldzogRkVWaWV3LCBpc1NhdmU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmFjdGlvbklzU2F2ZSA9IGlzU2F2ZTtcblx0XHR0aGlzLmNvbnRhaW5pbmdWaWV3ID0gdmlldztcblx0XHR0aGlzLmRpc2NhcmRSZXNvdXJjZU1vZGVsID0gUmVzb3VyY2VNb2RlbEhlbHBlci5nZXRSZXNvdXJjZU1vZGVsKHZpZXcpO1xuXHRcdGlmIChpc1NhdmUpIHtcblx0XHRcdHRoaXMuYWN0aW9uQnV0dG9uID0gdGhpcy5nZXRTYXZlQnV0dG9uKCk7XG5cdFx0XHR0aGlzLnRvcFRleHQgPSB0aGlzLmRpc2NhcmRSZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9ESVNDQVJEX0VESVRJTkdfRFJBRlRcIik7XG5cdFx0XHR0aGlzLmJvdHRvbVRleHQgPSB0aGlzLmRpc2NhcmRSZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9ESVNDQVJEX1NBVkVfV0FSTklOR1wiKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5hY3Rpb25CdXR0b24gPSB0aGlzLmdldERpc2NhcmRCdXR0b24oKTtcblx0XHRcdHRoaXMudG9wVGV4dCA9IHRoaXMuZGlzY2FyZFJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0RJU0NBUkRfQ0hBTkdFU19EUkFGVFwiKTtcblx0XHRcdHRoaXMuYm90dG9tVGV4dCA9IHRoaXMuZGlzY2FyZFJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0RJU0NBUkRfRElTQ0FSRF9XQVJOSU5HXCIpO1xuXHRcdH1cblx0fVxuXG5cdHN0YXRpYyBhc3luYyBsb2FkKCk6IFByb21pc2U8dHlwZW9mIENvbGxhYm9yYXRpb25EaXNjYXJkPiB7XG5cdFx0aWYgKENvbGxhYm9yYXRpb25EaXNjYXJkLkdyaWRUYWJsZUNvbnRyb2wgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0YXdhaXQgTGliLmxvYWQoeyBuYW1lOiBcInNhcC51aS50YWJsZVwiIH0pO1xuXHRcdFx0Y29uc3QgeyBkZWZhdWx0OiBHcmlkVGFibGVDb250cm9sIH0gPSBhd2FpdCBpbXBvcnQoXCJzYXAvdWkvdGFibGUvVGFibGVcIik7XG5cdFx0XHRDb2xsYWJvcmF0aW9uRGlzY2FyZC5HcmlkVGFibGVDb250cm9sID0gR3JpZFRhYmxlQ29udHJvbDtcblx0XHRcdGNvbnN0IHsgZGVmYXVsdDogR3JpZFRhYmxlQ29sdW1uQ29udHJvbCB9ID0gYXdhaXQgaW1wb3J0KFwic2FwL3VpL3RhYmxlL0NvbHVtblwiKTtcblx0XHRcdENvbGxhYm9yYXRpb25EaXNjYXJkLkdyaWRUYWJsZUNvbHVtbkNvbnRyb2wgPSBHcmlkVGFibGVDb2x1bW5Db250cm9sO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBtYW5hZ2UgZGlhbG9nIHVzZWQgdG8gaW52aXRlIGZ1cnRoZXIgdXNlcnMuXG5cdCAqIEByZXR1cm5zIFRoZSBjb250cm9sIHRyZWVcblx0ICovXG5cdGdldE1hbmFnZURpYWxvZygpOiBEaWFsb2cge1xuXHRcdHRoaXMubWFuYWdlRGlhbG9nID0gKFxuXHRcdFx0PERpYWxvZ1xuXHRcdFx0XHR0aXRsZT17dGhpcy5kaXNjYXJkUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfRElTQ0FSRF9USVRMRVwiKX1cblx0XHRcdFx0c3RhdGU9e1ZhbHVlU3RhdGUuV2FybmluZ31cblx0XHRcdFx0Y29udGVudFdpZHRoPVwiMzVlbVwiXG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0YnV0dG9uczogKFxuXHRcdFx0XHRcdFx0PD5cblx0XHRcdFx0XHRcdFx0a2VlcERyYWZ0QnV0dG9uID0ge3RoaXMuZ2V0S2VlcERyYWZ0QnV0dG9uKCl9XG5cdFx0XHRcdFx0XHRcdGNvbmZpcm1BY3Rpb25CdXR0b24gPSB7dGhpcy5hY3Rpb25CdXR0b259XG5cdFx0XHRcdFx0XHRcdGNhbmNlbEJ1dHRvbiA9IHt0aGlzLmdldENhbmNlbEJ1dHRvbigpfVxuXHRcdFx0XHRcdFx0PC8+XG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRjb250ZW50OiAoXG5cdFx0XHRcdFx0XHQ8VkJveCBjbGFzcz1cInNhcFVpU21hbGxNYXJnaW5cIj5cblx0XHRcdFx0XHRcdFx0PE9iamVjdElkZW50aWZpZXIgY2xhc3M9XCJzYXBVaVNtYWxsTWFyZ2luQm90dG9tXCIgdGV4dD17dGhpcy50b3BUZXh0fT48L09iamVjdElkZW50aWZpZXI+XG5cblx0XHRcdFx0XHRcdFx0e3RoaXMuZ2V0TWFuYWdlRGlhbG9nVXNlclRhYmxlKCl9XG5cblx0XHRcdFx0XHRcdFx0PFRleHQgY2xhc3M9XCJzYXBVaVNtYWxsTWFyZ2luVG9wXCIgdGV4dD17dGhpcy5ib3R0b21UZXh0fT48L1RleHQ+XG5cdFx0XHRcdFx0XHRcdDxUZXh0XG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJzYXBVaVNtYWxsTWFyZ2luVG9wXCJcblx0XHRcdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmRpc2NhcmRSZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9ESVNDQVJEX1FVRVNUSU9OXCIpfVxuXHRcdFx0XHRcdFx0XHQ+PC9UZXh0PlxuXHRcdFx0XHRcdFx0PC9WQm94PlxuXHRcdFx0XHRcdClcblx0XHRcdFx0fX1cblx0XHRcdDwvRGlhbG9nPlxuXHRcdCk7XG5cdFx0dGhpcy5jb250YWluaW5nVmlldy5hZGREZXBlbmRlbnQodGhpcy5tYW5hZ2VEaWFsb2cpO1xuXHRcdHRoaXMubWFuYWdlRGlhbG9nLmJpbmRFbGVtZW50KHtcblx0XHRcdG1vZGVsOiBcImludGVybmFsXCIsXG5cdFx0XHRwYXRoOiBcImNvbGxhYm9yYXRpb25cIlxuXHRcdH0pO1xuXHRcdHJldHVybiB0aGlzLm1hbmFnZURpYWxvZztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSB0YWJsZSBjb2x1bW5zIG9mIGludml0ZWQgdXNlcnMuXG5cdCAqIEByZXR1cm5zIFRoZSBjb250cm9sIHRyZWVcblx0ICovXG5cdGdldE1hbmFnZURpYWxvZ1VzZXJUYWJsZUNvbHVtbnMoKTogR3JpZFRhYmxlQ29sdW1uW10ge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8PlxuXHRcdFx0XHQ8Q29sbGFib3JhdGlvbkRpc2NhcmQuR3JpZFRhYmxlQ29sdW1uQ29udHJvbCB3aWR0aD1cIjNlbVwiPlxuXHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHR0ZW1wbGF0ZTogKFxuXHRcdFx0XHRcdFx0XHQ8SEJveCBhbGlnbkl0ZW1zPVwiQ2VudGVyXCIganVzdGlmeUNvbnRlbnQ9XCJTcGFjZUJldHdlZW5cIiB3aWR0aD1cIjEwMCVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8QXZhdGFyIGRpc3BsYXlTaXplPVwiWFNcIiBiYWNrZ3JvdW5kQ29sb3I9XCJ7aW50ZXJuYWw+Y29sb3J9XCIgaW5pdGlhbHM9XCJ7aW50ZXJuYWw+aW5pdGlhbHN9XCIgLz5cblx0XHRcdFx0XHRcdFx0PC9IQm94PlxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdH19XG5cdFx0XHRcdDwvQ29sbGFib3JhdGlvbkRpc2NhcmQuR3JpZFRhYmxlQ29sdW1uQ29udHJvbD5cblx0XHRcdFx0PENvbGxhYm9yYXRpb25EaXNjYXJkLkdyaWRUYWJsZUNvbHVtbkNvbnRyb2wgd2lkdGg9XCIxMHJlbVwiPlxuXHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRsYWJlbDogPFRleHQgdGV4dD17dGhpcy5kaXNjYXJkUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfSU5WSVRBVElPTl9UQUJMRV9VU0VSX0NPTFVNTlwiKX0gLz4sXG5cdFx0XHRcdFx0XHR0ZW1wbGF0ZTogPFRleHQgdGV4dD1cIntpbnRlcm5hbD5uYW1lfVwiIC8+XG5cdFx0XHRcdFx0fX1cblx0XHRcdFx0PC9Db2xsYWJvcmF0aW9uRGlzY2FyZC5HcmlkVGFibGVDb2x1bW5Db250cm9sPlxuXHRcdFx0XHQ8Q29sbGFib3JhdGlvbkRpc2NhcmQuR3JpZFRhYmxlQ29sdW1uQ29udHJvbCB3aWR0aD1cIjE0ZW1cIj5cblx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0bGFiZWw6IChcblx0XHRcdFx0XHRcdFx0PFRleHQgdGV4dD17dGhpcy5kaXNjYXJkUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfSU5WSVRBVElPTl9UQUJMRV9VU0VSX1NUQVRVU19DT0xVTU5cIil9IC8+XG5cdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0dGVtcGxhdGU6IChcblx0XHRcdFx0XHRcdFx0PE9iamVjdFN0YXR1c1xuXHRcdFx0XHRcdFx0XHRcdHN0YXRlPXt7IHBhdGg6IFwiaW50ZXJuYWw+c3RhdHVzXCIsIGZvcm1hdHRlcjogdGhpcy5mb3JtYXRVc2VyU3RhdHVzQ29sb3IgfX1cblx0XHRcdFx0XHRcdFx0XHR0ZXh0PXt7IHBhdGg6IFwiaW50ZXJuYWw+c3RhdHVzXCIsIGZvcm1hdHRlcjogdGhpcy5mb3JtYXRVc2VyU3RhdHVzIH19XG5cdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0fX1cblx0XHRcdFx0PC9Db2xsYWJvcmF0aW9uRGlzY2FyZC5HcmlkVGFibGVDb2x1bW5Db250cm9sPlxuXHRcdFx0PC8+XG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSB0YWJsZSB3aXRoIHRoZSBsaXN0IG9mIGludml0ZWQgdXNlcnMuXG5cdCAqIEByZXR1cm5zIFRoZSBjb250cm9sIHRyZWVcblx0ICovXG5cdGdldE1hbmFnZURpYWxvZ1VzZXJUYWJsZSgpOiBHcmlkVGFibGUge1xuXHRcdGNvbnN0IHZpZXdJbnRlcm5hbE1vZGVsQ29udGV4dCA9IHRoaXMuY29udGFpbmluZ1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRjb25zdCBlZGl0aW5nVXNlcnMgPSB2aWV3SW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJjb2xsYWJvcmF0aW9uL2N1cnJlbnRseUVkaXRpbmdVc2Vyc1wiKTtcblx0XHRsZXQgdGFibGVSb3dDb3VudDogbnVtYmVyO1xuXHRcdGlmIChDb21tb25IZWxwZXIuaXNEZXNrdG9wKCkpIHtcblx0XHRcdHRhYmxlUm93Q291bnQgPSBlZGl0aW5nVXNlcnMubGVuZ3RoIDwgNSA/IGVkaXRpbmdVc2Vycy5sZW5ndGggOiA1O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0YWJsZVJvd0NvdW50ID0gZWRpdGluZ1VzZXJzLmxlbmd0aCA8IDMgPyBlZGl0aW5nVXNlcnMubGVuZ3RoIDogMztcblx0XHR9XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0PENvbGxhYm9yYXRpb25EaXNjYXJkLkdyaWRUYWJsZUNvbnRyb2xcblx0XHRcdFx0d2lkdGg9XCIxMDAlXCJcblx0XHRcdFx0cm93cz17eyBwYXRoOiBcImludGVybmFsPmN1cnJlbnRseUVkaXRpbmdVc2Vyc1wiIH19XG5cdFx0XHRcdHZpc2libGVSb3dDb3VudD17dGFibGVSb3dDb3VudH1cblx0XHRcdFx0dmlzaWJsZVJvd0NvdW50TW9kZT1cIkZpeGVkXCJcblx0XHRcdFx0c2VsZWN0aW9uTW9kZT1cIk5vbmVcIlxuXHRcdFx0PlxuXHRcdFx0XHR7e1xuXHRcdFx0XHRcdGNvbHVtbnM6IHRoaXMuZ2V0TWFuYWdlRGlhbG9nVXNlclRhYmxlQ29sdW1ucygpXG5cdFx0XHRcdH19XG5cdFx0XHQ8L0NvbGxhYm9yYXRpb25EaXNjYXJkLkdyaWRUYWJsZUNvbnRyb2w+XG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBGb3JtYXR0ZXIgdG8gc2V0IHRoZSB1c2VyIGNvbG9yIGRlcGVuZGluZyBvbiB0aGUgZWRpdGluZyBzdGF0dXMuXG5cdCAqIEBwYXJhbSB1c2VyU3RhdHVzIFRoZSBlZGl0aW5nIHN0YXR1cyBvZiB0aGUgdXNlclxuXHQgKiBAcmV0dXJucyBUaGUgdXNlciBzdGF0dXMgY29sb3Jcblx0ICovXG5cdGZvcm1hdFVzZXJTdGF0dXNDb2xvcih1c2VyU3RhdHVzOiBVc2VyU3RhdHVzKTogVmFsdWVTdGF0ZSB7XG5cdFx0c3dpdGNoICh1c2VyU3RhdHVzKSB7XG5cdFx0XHRjYXNlIFVzZXJTdGF0dXMuQ3VycmVudGx5RWRpdGluZzpcblx0XHRcdFx0cmV0dXJuIFZhbHVlU3RhdGUuU3VjY2Vzcztcblx0XHRcdGNhc2UgVXNlclN0YXR1cy5DaGFuZ2VzTWFkZTpcblx0XHRcdFx0cmV0dXJuIFZhbHVlU3RhdGUuV2FybmluZztcblx0XHRcdGNhc2UgVXNlclN0YXR1cy5Ob0NoYW5nZXNNYWRlOlxuXHRcdFx0Y2FzZSBVc2VyU3RhdHVzLk5vdFlldEludml0ZWQ6XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRyZXR1cm4gVmFsdWVTdGF0ZS5JbmZvcm1hdGlvbjtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRm9ybWF0dGVyIHRvIHNldCB0aGUgdXNlciBzdGF0dXMgZGVwZW5kaW5nIG9uIHRoZSBlZGl0aW5nIHN0YXR1cy5cblx0ICogQHBhcmFtIHVzZXJTdGF0dXMgVGhlIGVkaXRpbmcgc3RhdHVzIG9mIHRoZSB1c2VyXG5cdCAqIEByZXR1cm5zIFRoZSB1c2VyIHN0YXR1c1xuXHQgKi9cblx0Zm9ybWF0VXNlclN0YXR1cyA9ICh1c2VyU3RhdHVzOiBVc2VyU3RhdHVzKTogc3RyaW5nID0+IHtcblx0XHRzd2l0Y2ggKHVzZXJTdGF0dXMpIHtcblx0XHRcdGNhc2UgVXNlclN0YXR1cy5DdXJyZW50bHlFZGl0aW5nOlxuXHRcdFx0XHRyZXR1cm4gdGhpcy5kaXNjYXJkUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfVVNFUl9DVVJSRU5UTFlfRURJVElOR1wiKTtcblx0XHRcdGNhc2UgVXNlclN0YXR1cy5DaGFuZ2VzTWFkZTpcblx0XHRcdFx0cmV0dXJuIHRoaXMuZGlzY2FyZFJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX1VTRVJfQ0hBTkdFU19NQURFXCIpO1xuXHRcdFx0Y2FzZSBVc2VyU3RhdHVzLk5vQ2hhbmdlc01hZGU6XG5cdFx0XHRcdHJldHVybiB0aGlzLmRpc2NhcmRSZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9VU0VSX05PX0NIQU5HRVNfTUFERVwiKTtcblx0XHRcdGNhc2UgVXNlclN0YXR1cy5Ob3RZZXRJbnZpdGVkOlxuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0cmV0dXJuIHRoaXMuZGlzY2FyZFJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX1VTRVJfTk9UX1lFVF9JTlZJVEVEXCIpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcblx0ICogUmVhZHMgdGhlIGN1cnJlbnRseSBpbnZpdGVkIHVzZXIgYW5kIHN0b3JlIGl0IGluIHRoZSBpbnRlcm5hbCBtb2RlbC5cblx0ICogQHJldHVybnMgUHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIG9uY2UgdGhlIHVzZXJzIGFyZSByZWFkLlxuXHQgKi9cblx0YXN5bmMgcmVhZEludml0ZWRVc2VycygpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5jb250YWluaW5nVmlldztcblx0XHRjb25zdCBtb2RlbCA9IHZpZXcuZ2V0TW9kZWwoKTtcblx0XHRjb25zdCBwYXJhbWV0ZXJzID0ge1xuXHRcdFx0JHNlbGVjdDogXCJVc2VySUQsVXNlckRlc2NyaXB0aW9uLFVzZXJFZGl0aW5nU3RhdGVcIlxuXHRcdH07XG5cdFx0Y29uc3QgaW52aXRlZFVzZXJMaXN0ID0gbW9kZWwuYmluZExpc3QoXG5cdFx0XHRcIkRyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0RyYWZ0QWRtaW5pc3RyYXRpdmVVc2VyXCIsXG5cdFx0XHR2aWV3LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dCxcblx0XHRcdFtdLFxuXHRcdFx0W10sXG5cdFx0XHRwYXJhbWV0ZXJzXG5cdFx0KTtcblx0XHRjb25zdCBtZSA9IENvbGxhYm9yYXRpb25VdGlscy5nZXRNZShDb21tb25VdGlscy5nZXRBcHBDb21wb25lbnQodmlldykpO1xuXHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdGlmIChtZSkge1xuXHRcdFx0aW52aXRlZFVzZXJMaXN0LmZpbHRlcihcblx0XHRcdFx0bmV3IEZpbHRlcih7XG5cdFx0XHRcdFx0cGF0aDogXCJVc2VySURcIixcblx0XHRcdFx0XHRvcGVyYXRvcjogXCJORVwiLFxuXHRcdFx0XHRcdHZhbHVlMTogbWUuaWRcblx0XHRcdFx0fSlcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0Ly8gZm9yIG5vdyB3ZSBzZXQgYSBsaW1pdCB0byAxMDAuIHRoZXJlIHNob3VsZG4ndCBiZSBtb3JlIHRoYW4gYSBmZXdcblx0XHRjb25zdCBjb250ZXh0cyA9IGF3YWl0IGludml0ZWRVc2VyTGlzdC5yZXF1ZXN0Q29udGV4dHMoMCwgMTAwKTtcblxuXHRcdGNvbnN0IGVkaXRpbmdVc2VyczogVXNlcltdID0gW107XG5cdFx0Y29uc3QgYWN0aXZlVXNlcnMgPSB2aWV3LmdldE1vZGVsKFwiaW50ZXJuYWxcIikuZ2V0UHJvcGVydHkoXCIvY29sbGFib3JhdGlvbi9hY3RpdmVVc2Vyc1wiKSB8fCBbXTtcblx0XHRpZiAoIWNvbnRleHRzLmxlbmd0aCB8fCBjb250ZXh0cy5sZW5ndGggPT09IDApIHtcblx0XHRcdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiY29sbGFib3JhdGlvbi9jdXJyZW50bHlFZGl0aW5nVXNlcnNcIiwgW10pO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb250ZXh0cy5mb3JFYWNoKChzaW5nbGVDb250ZXh0OiBDb250ZXh0KSA9PiB7XG5cdFx0XHRjb25zdCB1c2VyRGF0YSA9IHNpbmdsZUNvbnRleHQuZ2V0T2JqZWN0KCkgYXMgQmFja2VuZFVzZXI7XG5cdFx0XHRjb25zdCB1c2VyID0gdGhpcy5jcmVhdGVVc2VyKHVzZXJEYXRhLCBhY3RpdmVVc2Vycyk7XG5cdFx0XHRpZiAodXNlcikge1xuXHRcdFx0XHR1c2VyLmNvbG9yID0gQ29sbGFib3JhdGlvblV0aWxzLmdldFVzZXJDb2xvcih1c2VyRGF0YS5Vc2VySUQsIGFjdGl2ZVVzZXJzLCBlZGl0aW5nVXNlcnMpO1xuXHRcdFx0XHRlZGl0aW5nVXNlcnMucHVzaCh1c2VyKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGNvbnN0IHNvcnRlZFVzZXJzID0gdGhpcy5zb3J0VXNlcihlZGl0aW5nVXNlcnMpO1xuXG5cdFx0aW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJjb2xsYWJvcmF0aW9uL2N1cnJlbnRseUVkaXRpbmdVc2Vyc1wiLCBzb3J0ZWRVc2Vycyk7XG5cdH1cblxuXHQvKipcblx0ICogUmVhZHMgdGhlIGxpc3Qgb2YgdXNlcnMgY3VycmVudGx5IGVkaXRpbmcgdGhlIGRyYWZ0IChleGNlcHQgbWUpIGFuZCBzdG9yZXMgaXQgaW4gdGhlIGludGVybmFsIG1vZGVsLlxuXHQgKi9cblx0cmVhZEN1cnJlbnRVc2VycygpOiB2b2lkIHtcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5jb250YWluaW5nVmlldztcblx0XHRjb25zdCBjdXJyZW50VXNlcnM6IFVzZXJbXSA9IHZpZXcuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKS5nZXRQcm9wZXJ0eShcIi9jb2xsYWJvcmF0aW9uL2FjdGl2ZVVzZXJzXCIpIHx8IFtdO1xuXHRcdGNvbnN0IGN1cnJlbnRVc2Vyc1dpdGhvdXRNZSA9IGN1cnJlbnRVc2Vyc1xuXHRcdFx0LmZpbHRlcigodXNlcjogVXNlcikgPT4gdXNlci5tZSAhPT0gdHJ1ZSlcblx0XHRcdC5tYXAoKHVzZXI6IFVzZXIpID0+IHtcblx0XHRcdFx0cmV0dXJuIHsgLi4udXNlciwgc3RhdHVzOiBVc2VyU3RhdHVzLkN1cnJlbnRseUVkaXRpbmcgfTtcblx0XHRcdH0pO1xuXHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiY29sbGFib3JhdGlvbi9jdXJyZW50bHlFZGl0aW5nVXNlcnNcIiwgY3VycmVudFVzZXJzV2l0aG91dE1lKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIHNvcnRzIHRoZSB1c2VyIGFjY29yZGluZyB0aGUgRWRpdGluZyBTdGF0dXMuXG5cdCAqIEN1cnJlbnRseUVkaXRpbmcgLT4gQ2hhbmdlc01hZGUgKFN0YXR1cyAzIC0+IFN0YXR1cyAyKS5cblx0ICogQHBhcmFtIGVkaXRpbmdVc2VycyBUaGUgYXJyYXkgb2YgVXNlcnMgdG8gc29ydFxuXHQgKiBAcmV0dXJucyBUaGUgc29ydGVkIGFycmF5IG9mIFVzZXJzXG5cdCAqL1xuXHRzb3J0VXNlcihlZGl0aW5nVXNlcnM6IFVzZXJbXSk6IFVzZXJbXSB7XG5cdFx0bGV0IHNvcnRlZFVzZXJzID0gZWRpdGluZ1VzZXJzO1xuXHRcdGlmIChlZGl0aW5nVXNlcnMubGVuZ3RoID4gMSkge1xuXHRcdFx0Ly8gV2UgZGVmaW5lIG91ciBVc2VycyBqdXN0IGFib3ZlLCBTdGF0dXMgaXMgYWx3YXlzIGRlZmluZWRcblx0XHRcdHNvcnRlZFVzZXJzID0gZWRpdGluZ1VzZXJzLnNvcnQoKHVzZXJBOiBVc2VyLCB1c2VyQjogVXNlcik6IG51bWJlciA9PiB7XG5cdFx0XHRcdGlmICh1c2VyQS5zdGF0dXMhIDwgdXNlckIuc3RhdHVzISkge1xuXHRcdFx0XHRcdHJldHVybiAxO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHVzZXJBLnN0YXR1cyEgPiB1c2VyQi5zdGF0dXMhKSB7XG5cdFx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiAwO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiBzb3J0ZWRVc2Vycztcblx0fVxuXG5cdGNyZWF0ZVVzZXIodXNlckRhdGE6IEJhY2tlbmRVc2VyLCBhY3RpdmVVc2VyczogVXNlcltdKTogVXNlciB8IHVuZGVmaW5lZCB7XG5cdFx0bGV0IHVzZXJTdGF0dXM6IFVzZXJTdGF0dXM7XG5cdFx0Y29uc3QgaXNBY3RpdmUgPSBhY3RpdmVVc2Vycy5maW5kKCh1OiBVc2VyKSA9PiB1LmlkID09PSB1c2VyRGF0YS5Vc2VySUQpO1xuXHRcdGNvbnN0IHVzZXJEZXNjcmlwdGlvbiA9IHVzZXJEYXRhLlVzZXJEZXNjcmlwdGlvbiA/PyB1c2VyRGF0YS5Vc2VySUQ7XG5cdFx0Y29uc3QgaW5pdGlhbHMgPSBDb2xsYWJvcmF0aW9uVXRpbHMuZm9ybWF0SW5pdGlhbHModXNlckRlc2NyaXB0aW9uKTtcblx0XHRpZiAoaXNBY3RpdmUpIHtcblx0XHRcdHVzZXJTdGF0dXMgPSBVc2VyU3RhdHVzLkN1cnJlbnRseUVkaXRpbmc7XG5cdFx0fSBlbHNlIGlmICh1c2VyRGF0YS5Vc2VyRWRpdGluZ1N0YXRlID09PSBVc2VyRWRpdGluZ1N0YXRlLkluUHJvZ3Jlc3MpIHtcblx0XHRcdHVzZXJTdGF0dXMgPSBVc2VyU3RhdHVzLkNoYW5nZXNNYWRlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUaGlzIGNhc2UgaXMgZm9yIHVzZXIgdGhhdCBhcmUganVzdCBpbnZpdGVkLCBidXQgZGlkbid0IG1ha2UgYW55IGNoYW5nZXNcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdGNvbnN0IHVzZXI6IFVzZXIgPSB7XG5cdFx0XHRpZDogdXNlckRhdGEuVXNlcklELFxuXHRcdFx0bmFtZTogdXNlckRlc2NyaXB0aW9uLFxuXHRcdFx0c3RhdHVzOiB1c2VyU3RhdHVzLFxuXHRcdFx0aW5pdGlhbHM6IGluaXRpYWxzXG5cdFx0fTtcblx0XHRyZXR1cm4gdXNlcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBTYXZlIGJ1dHRvbi5cblx0ICogQHJldHVybnMgQSBidXR0b25cblx0ICovXG5cdHByaXZhdGUgZ2V0U2F2ZUJ1dHRvbigpOiBCdXR0b24ge1xuXHRcdHJldHVybiA8QnV0dG9uIHRleHQ9e3RoaXMuZGlzY2FyZFJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0RJU0NBUkRfU0FWRVwiKX0gcHJlc3M9e3RoaXMuc2F2ZU1hbmFnZURpYWxvZ30gLz47XG5cdH1cblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciBmb3IgdGhlIFNhdmUgYWN0aW9uIG9mIHRoZSBtYW5hZ2UgZGlhbG9nLlxuXHQgKlxuXHQgKi9cblx0c2F2ZU1hbmFnZURpYWxvZyA9ICgpOiB2b2lkID0+IHtcblx0XHR0aGlzLnByb21pc2VSZXNvbHZlKFwic2F2ZVwiKTtcblx0XHR0aGlzLm1hbmFnZURpYWxvZy5jbG9zZSgpO1xuXHRcdHRoaXMubWFuYWdlRGlhbG9nLmRlc3Ryb3koKTtcblx0fTtcblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgRGlzY2FyZCBidXR0b24uXG5cdCAqIEByZXR1cm5zIEEgYnV0dG9uXG5cdCAqL1xuXHRwcml2YXRlIGdldERpc2NhcmRCdXR0b24oKTogQnV0dG9uIHtcblx0XHRyZXR1cm4gPEJ1dHRvbiB0ZXh0PXt0aGlzLmRpc2NhcmRSZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9ESVNDQVJEX0RJU0NBUkRcIil9IHByZXNzPXt0aGlzLmRpc2NhcmRNYW5hZ2VEaWFsb2d9IC8+O1xuXHR9XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgZm9yIHRoZSBEaXNjYXJkIGFjdGlvbiBvZiB0aGUgbWFuYWdlIGRpYWxvZy5cblx0ICpcblx0ICovXG5cdHByaXZhdGUgZGlzY2FyZE1hbmFnZURpYWxvZyA9ICgpOiB2b2lkID0+IHtcblx0XHR0aGlzLnByb21pc2VSZXNvbHZlKFwiZGlzY2FyZENvbmZpcm1lZFwiKTtcblx0XHR0aGlzLm1hbmFnZURpYWxvZy5jbG9zZSgpO1xuXHRcdHRoaXMubWFuYWdlRGlhbG9nLmRlc3Ryb3koKTtcblx0fTtcblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgQ2FuY2VsIGJ1dHRvbi5cblx0ICogQHJldHVybnMgQSBidXR0b25cblx0ICovXG5cdHByaXZhdGUgZ2V0Q2FuY2VsQnV0dG9uKCk6IEJ1dHRvbiB7XG5cdFx0cmV0dXJuIDxCdXR0b24gdGV4dD17dGhpcy5kaXNjYXJkUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfRElTQ0FSRF9DQU5DRUxcIil9IHByZXNzPXt0aGlzLmNhbmNlbE1hbmFnZURpYWxvZ30gLz47XG5cdH1cblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciBmb3IgdGhlIENhbmNlbCBhY3Rpb24gb2YgdGhlIG1hbmFnZSBkaWFsb2cuXG5cdCAqXG5cdCAqL1xuXHRwcml2YXRlIGNhbmNlbE1hbmFnZURpYWxvZyA9ICgpOiB2b2lkID0+IHtcblx0XHR0aGlzLnByb21pc2VSZXNvbHZlKFwiY2FuY2VsXCIpO1xuXHRcdHRoaXMubWFuYWdlRGlhbG9nLmNsb3NlKCk7XG5cdFx0dGhpcy5tYW5hZ2VEaWFsb2cuZGVzdHJveSgpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBTYXZlIGJ1dHRvbi5cblx0ICogQHJldHVybnMgQSBidXR0b25cblx0ICovXG5cdHByaXZhdGUgZ2V0S2VlcERyYWZ0QnV0dG9uKCk6IEJ1dHRvbiB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxCdXR0b25cblx0XHRcdFx0dGV4dD17dGhpcy5kaXNjYXJkUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfRElTQ0FSRF9LRUVQX0RSQUZUXCIpfVxuXHRcdFx0XHRwcmVzcz17dGhpcy5rZWVwRHJhZnRNYW5hZ2VEaWFsb2d9XG5cdFx0XHRcdHR5cGU9XCJFbXBoYXNpemVkXCJcblx0XHRcdC8+XG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIGZvciB0aGUgS2VlcCBEcmFmdCBhY3Rpb24gb2YgdGhlIG1hbmFnZSBkaWFsb2cuXG5cdCAqXG5cdCAqL1xuXHRwcml2YXRlIGtlZXBEcmFmdE1hbmFnZURpYWxvZyA9ICgpOiB2b2lkID0+IHtcblx0XHR0aGlzLnByb21pc2VSZXNvbHZlKFwia2VlcERyYWZ0XCIpO1xuXHRcdHRoaXMubWFuYWdlRGlhbG9nLmNsb3NlKCk7XG5cdFx0dGhpcy5tYW5hZ2VEaWFsb2cuZGVzdHJveSgpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBSZWFkcyB0aGUgdXNlcnMsIGFuZCBvcGVucyB0aGUgZGlhbG9nIHRvIGdldCB0aGUgdXNlciBpbnB1dC5cblx0ICogQHJldHVybnMgQSBzdHJpbmcgb2YgdGhlIGFjdGlvbiBzZWxlY3RlZCBieSB0aGUgdXNlclxuXHQgKi9cblx0YXN5bmMgZ2V0VXNlckFjdGlvbigpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdGlmICh0aGlzLmFjdGlvbklzU2F2ZSkge1xuXHRcdFx0Ly8gSW4gY2FzZSBvZiBhIFNhdmUsIHdlIG9ubHkgc2hvdyB0aGUgbGlzdCBvZiB1c2VycyB3aGljaCBhcmUgY3VycmVubHkgZWRpdGluZyB0aGUgZHJhZnRcblx0XHRcdHRoaXMucmVhZEN1cnJlbnRVc2VycygpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRhd2FpdCB0aGlzLnJlYWRJbnZpdGVkVXNlcnMoKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5vcGVuKCk7XG5cdH1cblxuXHQvKipcblx0ICogT3BlbnMgdGhlIGRpc2NhcmQgZHJhZnQgZnJvbSBEaXNjYXJkL0NhbmNlbCBhY3Rpb24uXG5cdCAqIEByZXR1cm5zIEEgc3RyaW5nIG9mIHRoZSBhY3Rpb24gc2VsZWN0ZWQgYnkgdGhlIHVzZXJcblx0ICovXG5cdHB1YmxpYyBhc3luYyBvcGVuKCk6IFByb21pc2U8c3RyaW5nPiB7XG5cdFx0YXdhaXQgQ29sbGFib3JhdGlvbkRpc2NhcmQubG9hZCgpO1xuXHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdGhpcy5jb250YWluaW5nVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdGNvbnN0IGVkaXRpbmdVc2VycyA9IGludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KFwiY29sbGFib3JhdGlvbi9jdXJyZW50bHlFZGl0aW5nVXNlcnNcIik7XG5cdFx0aWYgKGVkaXRpbmdVc2Vycy5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybiB0aGlzLmFjdGlvbklzU2F2ZSA/IFwic2F2ZVwiIDogXCJkaXNjYXJkXCI7XG5cdFx0fVxuXHRcdC8vIFdlIGNyZWF0ZSB0aGUgZGlhbG9nIGFmdGVyIHJlYWRpbmcgdGhlIHVzZXJzXG5cdFx0dGhpcy5tYW5hZ2VEaWFsb2cgPSB0aGlzLmdldE1hbmFnZURpYWxvZygpO1xuXHRcdC8vIFdlIHNldCB1cCB0aGUgYmluZGluZyBjb250ZXh0IG9mIHRoZSBEaWFsb2dcblx0XHQodGhpcy5tYW5hZ2VEaWFsb2cuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dCkuc2V0UHJvcGVydHkoXCJjdXJyZW50bHlFZGl0aW5nVXNlcnNcIiwgZWRpdGluZ1VzZXJzKTtcblx0XHR0aGlzLm1hbmFnZURpYWxvZy5vcGVuKCk7XG5cblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcblx0XHRcdHRoaXMucHJvbWlzZVJlc29sdmUgPSByZXNvbHZlO1xuXHRcdH0pO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BdUJxQkEsb0JBQW9CO0lBdUJ4QyxTQUFBQSxxQkFBWUMsSUFBWSxFQUFFQyxNQUFlLEVBQUU7TUEySjNDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7TUFKQyxLQUtBQyxnQkFBZ0IsR0FBSUMsVUFBc0IsSUFBYTtRQUN0RCxRQUFRQSxVQUFVO1VBQ2pCLEtBQUtDLFVBQVUsQ0FBQ0MsZ0JBQWdCO1lBQy9CLE9BQU8sSUFBSSxDQUFDQyxvQkFBb0IsQ0FBQ0MsT0FBTyxDQUFDLDZDQUE2QyxDQUFDO1VBQ3hGLEtBQUtILFVBQVUsQ0FBQ0ksV0FBVztZQUMxQixPQUFPLElBQUksQ0FBQ0Ysb0JBQW9CLENBQUNDLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQztVQUNuRixLQUFLSCxVQUFVLENBQUNLLGFBQWE7WUFDNUIsT0FBTyxJQUFJLENBQUNILG9CQUFvQixDQUFDQyxPQUFPLENBQUMsMkNBQTJDLENBQUM7VUFDdEYsS0FBS0gsVUFBVSxDQUFDTSxhQUFhO1VBQzdCO1lBQ0MsT0FBTyxJQUFJLENBQUNKLG9CQUFvQixDQUFDQyxPQUFPLENBQUMsMkNBQTJDLENBQUM7UUFDdkY7TUFDRCxDQUFDO01BeUhEO0FBQ0Q7QUFDQTtBQUNBO01BSEMsS0FJQUksZ0JBQWdCLEdBQUcsTUFBWTtRQUM5QixJQUFJLENBQUNDLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDQyxZQUFZLENBQUNDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQ0QsWUFBWSxDQUFDRSxPQUFPLENBQUMsQ0FBQztNQUM1QixDQUFDO01BVUQ7QUFDRDtBQUNBO0FBQ0E7TUFIQyxLQUlRQyxtQkFBbUIsR0FBRyxNQUFZO1FBQ3pDLElBQUksQ0FBQ0osY0FBYyxDQUFDLGtCQUFrQixDQUFDO1FBQ3ZDLElB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
|
|
432
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsYWJvcmF0aW9uRGlzY2FyZCIsInZpZXciLCJpc1NhdmUiLCJmb3JtYXRVc2VyU3RhdHVzIiwidXNlclN0YXR1cyIsIlVzZXJTdGF0dXMiLCJDdXJyZW50bHlFZGl0aW5nIiwiZGlzY2FyZFJlc291cmNlTW9kZWwiLCJnZXRUZXh0IiwiQ2hhbmdlc01hZGUiLCJOb0NoYW5nZXNNYWRlIiwiTm90WWV0SW52aXRlZCIsInNhdmVNYW5hZ2VEaWFsb2ciLCJwcm9taXNlUmVzb2x2ZSIsIm1hbmFnZURpYWxvZyIsImNsb3NlIiwiZGVzdHJveSIsImRpc2NhcmRNYW5hZ2VEaWFsb2ciLCJjYW5jZWxNYW5hZ2VEaWFsb2ciLCJrZWVwRHJhZnRNYW5hZ2VEaWFsb2ciLCJhY3Rpb25Jc1NhdmUiLCJjb250YWluaW5nVmlldyIsIlJlc291cmNlTW9kZWxIZWxwZXIiLCJnZXRSZXNvdXJjZU1vZGVsIiwiYWN0aW9uQnV0dG9uIiwiZ2V0U2F2ZUJ1dHRvbiIsInRvcFRleHQiLCJib3R0b21UZXh0IiwiZ2V0RGlzY2FyZEJ1dHRvbiIsIl9leHBvcnRzIiwibG9hZCIsIkdyaWRUYWJsZUNvbnRyb2wiLCJ1bmRlZmluZWQiLCJMaWIiLCJuYW1lIiwiZGVmYXVsdCIsIl9fdWk1X3JlcXVpcmVfYXN5bmMiLCJHcmlkVGFibGVDb2x1bW5Db250cm9sIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiZ2V0TWFuYWdlRGlhbG9nIiwiX2pzeCIsIkRpYWxvZyIsInRpdGxlIiwic3RhdGUiLCJWYWx1ZVN0YXRlIiwiV2FybmluZyIsImNvbnRlbnRXaWR0aCIsImNoaWxkcmVuIiwiYnV0dG9ucyIsIl9qc3hzIiwiX0ZyYWdtZW50IiwiZ2V0S2VlcERyYWZ0QnV0dG9uIiwiZ2V0Q2FuY2VsQnV0dG9uIiwiY29udGVudCIsIlZCb3giLCJjbGFzcyIsIk9iamVjdElkZW50aWZpZXIiLCJ0ZXh0IiwiZ2V0TWFuYWdlRGlhbG9nVXNlclRhYmxlIiwiVGV4dCIsImFkZERlcGVuZGVudCIsImJpbmRFbGVtZW50IiwibW9kZWwiLCJwYXRoIiwiZ2V0TWFuYWdlRGlhbG9nVXNlclRhYmxlQ29sdW1ucyIsIndpZHRoIiwibGFiZWwiLCJ0ZW1wbGF0ZSIsIkhCb3giLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJBdmF0YXIiLCJkaXNwbGF5U2l6ZSIsImJhY2tncm91bmRDb2xvciIsImluaXRpYWxzIiwiT2JqZWN0U3RhdHVzIiwiZm9ybWF0dGVyIiwiZm9ybWF0VXNlclN0YXR1c0NvbG9yIiwidmlld0ludGVybmFsTW9kZWxDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJlZGl0aW5nVXNlcnMiLCJnZXRQcm9wZXJ0eSIsInRhYmxlUm93Q291bnQiLCJDb21tb25IZWxwZXIiLCJpc0Rlc2t0b3AiLCJsZW5ndGgiLCJyb3dzIiwidmlzaWJsZVJvd0NvdW50IiwidmlzaWJsZVJvd0NvdW50TW9kZSIsInNlbGVjdGlvbk1vZGUiLCJjb2x1bW5zIiwiU3VjY2VzcyIsIkluZm9ybWF0aW9uIiwicmVhZEludml0ZWRVc2VycyIsImdldE1vZGVsIiwicGFyYW1ldGVycyIsIiRzZWxlY3QiLCJpbnZpdGVkVXNlckxpc3QiLCJiaW5kTGlzdCIsIm1lIiwiQ29sbGFib3JhdGlvblV0aWxzIiwiZ2V0TWUiLCJDb21tb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsImludGVybmFsTW9kZWxDb250ZXh0IiwiZmlsdGVyIiwiRmlsdGVyIiwib3BlcmF0b3IiLCJ2YWx1ZTEiLCJpZCIsImNvbnRleHRzIiwicmVxdWVzdENvbnRleHRzIiwiYWN0aXZlVXNlcnMiLCJzZXRQcm9wZXJ0eSIsImZvckVhY2giLCJzaW5nbGVDb250ZXh0IiwidXNlckRhdGEiLCJnZXRPYmplY3QiLCJ1c2VyIiwiY3JlYXRlVXNlciIsImNvbG9yIiwiZ2V0VXNlckNvbG9yIiwiVXNlcklEIiwicHVzaCIsInNvcnRlZFVzZXJzIiwic29ydFVzZXIiLCJyZWFkQ3VycmVudFVzZXJzIiwiY3VycmVudFVzZXJzIiwiY3VycmVudFVzZXJzV2l0aG91dE1lIiwibWFwIiwic3RhdHVzIiwic29ydCIsInVzZXJBIiwidXNlckIiLCJpc0FjdGl2ZSIsImZpbmQiLCJ1IiwidXNlckRlc2NyaXB0aW9uIiwiVXNlckRlc2NyaXB0aW9uIiwiZm9ybWF0SW5pdGlhbHMiLCJVc2VyRWRpdGluZ1N0YXRlIiwiSW5Qcm9ncmVzcyIsIkJ1dHRvbiIsInByZXNzIiwidHlwZSIsImdldFVzZXJBY3Rpb24iLCJvcGVuIiwiUHJvbWlzZSIsInJlc29sdmUiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbGxhYm9yYXRpb25EaXNjYXJkRGlhbG9nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBCYWNrZW5kVXNlciwgVXNlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0NvbGxhYm9yYXRpb25Db21tb25cIjtcbmltcG9ydCB7IENvbGxhYm9yYXRpb25VdGlscywgVXNlckVkaXRpbmdTdGF0ZSwgVXNlclN0YXR1cyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0NvbGxhYm9yYXRpb25Db21tb25cIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IFJlc291cmNlTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvUmVzb3VyY2VNb2RlbEhlbHBlclwiO1xuaW1wb3J0IENvbW1vbkhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9Db21tb25IZWxwZXJcIjtcbmltcG9ydCBBdmF0YXIgZnJvbSBcInNhcC9tL0F2YXRhclwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRGlhbG9nIGZyb20gXCJzYXAvbS9EaWFsb2dcIjtcbmltcG9ydCBIQm94IGZyb20gXCJzYXAvbS9IQm94XCI7XG5pbXBvcnQgT2JqZWN0SWRlbnRpZmllciBmcm9tIFwic2FwL20vT2JqZWN0SWRlbnRpZmllclwiO1xuaW1wb3J0IE9iamVjdFN0YXR1cyBmcm9tIFwic2FwL20vT2JqZWN0U3RhdHVzXCI7XG5pbXBvcnQgVGV4dCBmcm9tIFwic2FwL20vVGV4dFwiO1xuaW1wb3J0IFZCb3ggZnJvbSBcInNhcC9tL1ZCb3hcIjtcbmltcG9ydCBMaWIgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IHsgVmFsdWVTdGF0ZSB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IEZpbHRlciBmcm9tIFwic2FwL3VpL21vZGVsL0ZpbHRlclwiO1xuaW1wb3J0IHR5cGUgR3JpZFRhYmxlQ29sdW1uIGZyb20gXCJzYXAvdWkvdGFibGUvQ29sdW1uXCI7XG5pbXBvcnQgdHlwZSBHcmlkVGFibGUgZnJvbSBcInNhcC91aS90YWJsZS9UYWJsZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb2xsYWJvcmF0aW9uRGlzY2FyZCB7XG5cdHB1YmxpYyBpZD86IHN0cmluZztcblxuXHRwcml2YXRlIHByb21pc2VSZXNvbHZlITogRnVuY3Rpb247XG5cblx0cHVibGljIGRpc2NhcmRSZXNvdXJjZU1vZGVsITogUmVzb3VyY2VNb2RlbDtcblxuXHRwdWJsaWMgY29udGFpbmluZ1ZpZXchOiBGRVZpZXc7XG5cblx0cHVibGljIG1hbmFnZURpYWxvZyE6IERpYWxvZztcblxuXHRwcml2YXRlIGFjdGlvbkJ1dHRvbiE6IEJ1dHRvbjtcblxuXHRwcml2YXRlIHRvcFRleHQhOiBzdHJpbmc7XG5cblx0cHJpdmF0ZSBib3R0b21UZXh0ITogc3RyaW5nO1xuXG5cdHByaXZhdGUgYWN0aW9uSXNTYXZlITogYm9vbGVhbjtcblxuXHRwcml2YXRlIHN0YXRpYyBHcmlkVGFibGVDb250cm9sOiB0eXBlb2YgR3JpZFRhYmxlO1xuXG5cdHByaXZhdGUgc3RhdGljIEdyaWRUYWJsZUNvbHVtbkNvbnRyb2w6IHR5cGVvZiBHcmlkVGFibGVDb2x1bW47XG5cblx0Y29uc3RydWN0b3IodmlldzogRkVWaWV3LCBpc1NhdmU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmFjdGlvbklzU2F2ZSA9IGlzU2F2ZTtcblx0XHR0aGlzLmNvbnRhaW5pbmdWaWV3ID0gdmlldztcblx0XHR0aGlzLmRpc2NhcmRSZXNvdXJjZU1vZGVsID0gUmVzb3VyY2VNb2RlbEhlbHBlci5nZXRSZXNvdXJjZU1vZGVsKHZpZXcpO1xuXHRcdGlmIChpc1NhdmUpIHtcblx0XHRcdHRoaXMuYWN0aW9uQnV0dG9uID0gdGhpcy5nZXRTYXZlQnV0dG9uKCk7XG5cdFx0XHR0aGlzLnRvcFRleHQgPSB0aGlzLmRpc2NhcmRSZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9ESVNDQVJEX0VESVRJTkdfRFJBRlRcIik7XG5cdFx0XHR0aGlzLmJvdHRvbVRleHQgPSB0aGlzLmRpc2NhcmRSZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9ESVNDQVJEX1NBVkVfV0FSTklOR1wiKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5hY3Rpb25CdXR0b24gPSB0aGlzLmdldERpc2NhcmRCdXR0b24oKTtcblx0XHRcdHRoaXMudG9wVGV4dCA9IHRoaXMuZGlzY2FyZFJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0RJU0NBUkRfQ0hBTkdFU19EUkFGVFwiKTtcblx0XHRcdHRoaXMuYm90dG9tVGV4dCA9IHRoaXMuZGlzY2FyZFJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0RJU0NBUkRfRElTQ0FSRF9XQVJOSU5HXCIpO1xuXHRcdH1cblx0fVxuXG5cdHN0YXRpYyBhc3luYyBsb2FkKCk6IFByb21pc2U8dHlwZW9mIENvbGxhYm9yYXRpb25EaXNjYXJkPiB7XG5cdFx0aWYgKENvbGxhYm9yYXRpb25EaXNjYXJkLkdyaWRUYWJsZUNvbnRyb2wgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0YXdhaXQgTGliLmxvYWQoeyBuYW1lOiBcInNhcC51aS50YWJsZVwiIH0pO1xuXHRcdFx0Y29uc3QgeyBkZWZhdWx0OiBHcmlkVGFibGVDb250cm9sIH0gPSBhd2FpdCBpbXBvcnQoXCJzYXAvdWkvdGFibGUvVGFibGVcIik7XG5cdFx0XHRDb2xsYWJvcmF0aW9uRGlzY2FyZC5HcmlkVGFibGVDb250cm9sID0gR3JpZFRhYmxlQ29udHJvbDtcblx0XHRcdGNvbnN0IHsgZGVmYXVsdDogR3JpZFRhYmxlQ29sdW1uQ29udHJvbCB9ID0gYXdhaXQgaW1wb3J0KFwic2FwL3VpL3RhYmxlL0NvbHVtblwiKTtcblx0XHRcdENvbGxhYm9yYXRpb25EaXNjYXJkLkdyaWRUYWJsZUNvbHVtbkNvbnRyb2wgPSBHcmlkVGFibGVDb2x1bW5Db250cm9sO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBtYW5hZ2UgZGlhbG9nIHVzZWQgdG8gaW52aXRlIGZ1cnRoZXIgdXNlcnMuXG5cdCAqIEByZXR1cm5zIFRoZSBjb250cm9sIHRyZWVcblx0ICovXG5cdGdldE1hbmFnZURpYWxvZygpOiBEaWFsb2cge1xuXHRcdHRoaXMubWFuYWdlRGlhbG9nID0gKFxuXHRcdFx0PERpYWxvZ1xuXHRcdFx0XHR0aXRsZT17dGhpcy5kaXNjYXJkUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfRElTQ0FSRF9USVRMRVwiKX1cblx0XHRcdFx0c3RhdGU9e1ZhbHVlU3RhdGUuV2FybmluZ31cblx0XHRcdFx0Y29udGVudFdpZHRoPVwiMzVlbVwiXG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0YnV0dG9uczogKFxuXHRcdFx0XHRcdFx0PD5cblx0XHRcdFx0XHRcdFx0a2VlcERyYWZ0QnV0dG9uID0ge3RoaXMuZ2V0S2VlcERyYWZ0QnV0dG9uKCl9XG5cdFx0XHRcdFx0XHRcdGNvbmZpcm1BY3Rpb25CdXR0b24gPSB7dGhpcy5hY3Rpb25CdXR0b259XG5cdFx0XHRcdFx0XHRcdGNhbmNlbEJ1dHRvbiA9IHt0aGlzLmdldENhbmNlbEJ1dHRvbigpfVxuXHRcdFx0XHRcdFx0PC8+XG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRjb250ZW50OiAoXG5cdFx0XHRcdFx0XHQ8VkJveCBjbGFzcz1cInNhcFVpU21hbGxNYXJnaW5cIj5cblx0XHRcdFx0XHRcdFx0PE9iamVjdElkZW50aWZpZXIgY2xhc3M9XCJzYXBVaVNtYWxsTWFyZ2luQm90dG9tXCIgdGV4dD17dGhpcy50b3BUZXh0fT48L09iamVjdElkZW50aWZpZXI+XG5cblx0XHRcdFx0XHRcdFx0e3RoaXMuZ2V0TWFuYWdlRGlhbG9nVXNlclRhYmxlKCl9XG5cblx0XHRcdFx0XHRcdFx0PFRleHQgY2xhc3M9XCJzYXBVaVNtYWxsTWFyZ2luVG9wXCIgdGV4dD17dGhpcy5ib3R0b21UZXh0fT48L1RleHQ+XG5cdFx0XHRcdFx0XHRcdDxUZXh0XG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJzYXBVaVNtYWxsTWFyZ2luVG9wXCJcblx0XHRcdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmRpc2NhcmRSZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9ESVNDQVJEX1FVRVNUSU9OXCIpfVxuXHRcdFx0XHRcdFx0XHQ+PC9UZXh0PlxuXHRcdFx0XHRcdFx0PC9WQm94PlxuXHRcdFx0XHRcdClcblx0XHRcdFx0fX1cblx0XHRcdDwvRGlhbG9nPlxuXHRcdCk7XG5cdFx0dGhpcy5jb250YWluaW5nVmlldy5hZGREZXBlbmRlbnQodGhpcy5tYW5hZ2VEaWFsb2cpO1xuXHRcdHRoaXMubWFuYWdlRGlhbG9nLmJpbmRFbGVtZW50KHtcblx0XHRcdG1vZGVsOiBcImludGVybmFsXCIsXG5cdFx0XHRwYXRoOiBcImNvbGxhYm9yYXRpb25cIlxuXHRcdH0pO1xuXHRcdHJldHVybiB0aGlzLm1hbmFnZURpYWxvZztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSB0YWJsZSBjb2x1bW5zIG9mIGludml0ZWQgdXNlcnMuXG5cdCAqIEByZXR1cm5zIFRoZSBjb250cm9sIHRyZWVcblx0ICovXG5cdGdldE1hbmFnZURpYWxvZ1VzZXJUYWJsZUNvbHVtbnMoKTogR3JpZFRhYmxlQ29sdW1uW10ge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8PlxuXHRcdFx0XHQ8Q29sbGFib3JhdGlvbkRpc2NhcmQuR3JpZFRhYmxlQ29sdW1uQ29udHJvbCB3aWR0aD1cIjNlbVwiPlxuXHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRsYWJlbDogPFRleHQgdGV4dD17dGhpcy5kaXNjYXJkUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfRElTQ0FSRF9UQUJMRV9VU0VSX0FWQVRBUl9DT0xVTU5cIil9IC8+LFxuXHRcdFx0XHRcdFx0dGVtcGxhdGU6IChcblx0XHRcdFx0XHRcdFx0PEhCb3ggYWxpZ25JdGVtcz1cIkNlbnRlclwiIGp1c3RpZnlDb250ZW50PVwiU3BhY2VCZXR3ZWVuXCIgd2lkdGg9XCIxMDAlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PEF2YXRhciBkaXNwbGF5U2l6ZT1cIlhTXCIgYmFja2dyb3VuZENvbG9yPVwie2ludGVybmFsPmNvbG9yfVwiIGluaXRpYWxzPVwie2ludGVybmFsPmluaXRpYWxzfVwiIC8+XG5cdFx0XHRcdFx0XHRcdDwvSEJveD5cblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHR9fVxuXHRcdFx0XHQ8L0NvbGxhYm9yYXRpb25EaXNjYXJkLkdyaWRUYWJsZUNvbHVtbkNvbnRyb2w+XG5cdFx0XHRcdDxDb2xsYWJvcmF0aW9uRGlzY2FyZC5HcmlkVGFibGVDb2x1bW5Db250cm9sIHdpZHRoPVwiMTByZW1cIj5cblx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0bGFiZWw6IDxUZXh0IHRleHQ9e3RoaXMuZGlzY2FyZFJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0lOVklUQVRJT05fVEFCTEVfVVNFUl9DT0xVTU5cIil9IC8+LFxuXHRcdFx0XHRcdFx0dGVtcGxhdGU6IDxUZXh0IHRleHQ9XCJ7aW50ZXJuYWw+bmFtZX1cIiAvPlxuXHRcdFx0XHRcdH19XG5cdFx0XHRcdDwvQ29sbGFib3JhdGlvbkRpc2NhcmQuR3JpZFRhYmxlQ29sdW1uQ29udHJvbD5cblx0XHRcdFx0PENvbGxhYm9yYXRpb25EaXNjYXJkLkdyaWRUYWJsZUNvbHVtbkNvbnRyb2wgd2lkdGg9XCIxNGVtXCI+XG5cdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdGxhYmVsOiAoXG5cdFx0XHRcdFx0XHRcdDxUZXh0IHRleHQ9e3RoaXMuZGlzY2FyZFJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0lOVklUQVRJT05fVEFCTEVfVVNFUl9TVEFUVVNfQ09MVU1OXCIpfSAvPlxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdHRlbXBsYXRlOiAoXG5cdFx0XHRcdFx0XHRcdDxPYmplY3RTdGF0dXNcblx0XHRcdFx0XHRcdFx0XHRzdGF0ZT17eyBwYXRoOiBcImludGVybmFsPnN0YXR1c1wiLCBmb3JtYXR0ZXI6IHRoaXMuZm9ybWF0VXNlclN0YXR1c0NvbG9yIH19XG5cdFx0XHRcdFx0XHRcdFx0dGV4dD17eyBwYXRoOiBcImludGVybmFsPnN0YXR1c1wiLCBmb3JtYXR0ZXI6IHRoaXMuZm9ybWF0VXNlclN0YXR1cyB9fVxuXHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdH19XG5cdFx0XHRcdDwvQ29sbGFib3JhdGlvbkRpc2NhcmQuR3JpZFRhYmxlQ29sdW1uQ29udHJvbD5cblx0XHRcdDwvPlxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgdGFibGUgd2l0aCB0aGUgbGlzdCBvZiBpbnZpdGVkIHVzZXJzLlxuXHQgKiBAcmV0dXJucyBUaGUgY29udHJvbCB0cmVlXG5cdCAqL1xuXHRnZXRNYW5hZ2VEaWFsb2dVc2VyVGFibGUoKTogR3JpZFRhYmxlIHtcblx0XHRjb25zdCB2aWV3SW50ZXJuYWxNb2RlbENvbnRleHQgPSB0aGlzLmNvbnRhaW5pbmdWaWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0Y29uc3QgZWRpdGluZ1VzZXJzID0gdmlld0ludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KFwiY29sbGFib3JhdGlvbi9jdXJyZW50bHlFZGl0aW5nVXNlcnNcIik7XG5cdFx0bGV0IHRhYmxlUm93Q291bnQ6IG51bWJlcjtcblx0XHRpZiAoQ29tbW9uSGVscGVyLmlzRGVza3RvcCgpKSB7XG5cdFx0XHR0YWJsZVJvd0NvdW50ID0gZWRpdGluZ1VzZXJzLmxlbmd0aCA8IDUgPyBlZGl0aW5nVXNlcnMubGVuZ3RoIDogNTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGFibGVSb3dDb3VudCA9IGVkaXRpbmdVc2Vycy5sZW5ndGggPCAzID8gZWRpdGluZ1VzZXJzLmxlbmd0aCA6IDM7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIChcblx0XHRcdDxDb2xsYWJvcmF0aW9uRGlzY2FyZC5HcmlkVGFibGVDb250cm9sXG5cdFx0XHRcdHdpZHRoPVwiMTAwJVwiXG5cdFx0XHRcdHJvd3M9e3sgcGF0aDogXCJpbnRlcm5hbD5jdXJyZW50bHlFZGl0aW5nVXNlcnNcIiB9fVxuXHRcdFx0XHR2aXNpYmxlUm93Q291bnQ9e3RhYmxlUm93Q291bnR9XG5cdFx0XHRcdHZpc2libGVSb3dDb3VudE1vZGU9XCJGaXhlZFwiXG5cdFx0XHRcdHNlbGVjdGlvbk1vZGU9XCJOb25lXCJcblx0XHRcdD5cblx0XHRcdFx0e3tcblx0XHRcdFx0XHRjb2x1bW5zOiB0aGlzLmdldE1hbmFnZURpYWxvZ1VzZXJUYWJsZUNvbHVtbnMoKVxuXHRcdFx0XHR9fVxuXHRcdFx0PC9Db2xsYWJvcmF0aW9uRGlzY2FyZC5HcmlkVGFibGVDb250cm9sPlxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogRm9ybWF0dGVyIHRvIHNldCB0aGUgdXNlciBjb2xvciBkZXBlbmRpbmcgb24gdGhlIGVkaXRpbmcgc3RhdHVzLlxuXHQgKiBAcGFyYW0gdXNlclN0YXR1cyBUaGUgZWRpdGluZyBzdGF0dXMgb2YgdGhlIHVzZXJcblx0ICogQHJldHVybnMgVGhlIHVzZXIgc3RhdHVzIGNvbG9yXG5cdCAqL1xuXHRmb3JtYXRVc2VyU3RhdHVzQ29sb3IodXNlclN0YXR1czogVXNlclN0YXR1cyk6IFZhbHVlU3RhdGUge1xuXHRcdHN3aXRjaCAodXNlclN0YXR1cykge1xuXHRcdFx0Y2FzZSBVc2VyU3RhdHVzLkN1cnJlbnRseUVkaXRpbmc6XG5cdFx0XHRcdHJldHVybiBWYWx1ZVN0YXRlLlN1Y2Nlc3M7XG5cdFx0XHRjYXNlIFVzZXJTdGF0dXMuQ2hhbmdlc01hZGU6XG5cdFx0XHRcdHJldHVybiBWYWx1ZVN0YXRlLldhcm5pbmc7XG5cdFx0XHRjYXNlIFVzZXJTdGF0dXMuTm9DaGFuZ2VzTWFkZTpcblx0XHRcdGNhc2UgVXNlclN0YXR1cy5Ob3RZZXRJbnZpdGVkOlxuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0cmV0dXJuIFZhbHVlU3RhdGUuSW5mb3JtYXRpb247XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEZvcm1hdHRlciB0byBzZXQgdGhlIHVzZXIgc3RhdHVzIGRlcGVuZGluZyBvbiB0aGUgZWRpdGluZyBzdGF0dXMuXG5cdCAqIEBwYXJhbSB1c2VyU3RhdHVzIFRoZSBlZGl0aW5nIHN0YXR1cyBvZiB0aGUgdXNlclxuXHQgKiBAcmV0dXJucyBUaGUgdXNlciBzdGF0dXNcblx0ICovXG5cdGZvcm1hdFVzZXJTdGF0dXMgPSAodXNlclN0YXR1czogVXNlclN0YXR1cyk6IHN0cmluZyA9PiB7XG5cdFx0c3dpdGNoICh1c2VyU3RhdHVzKSB7XG5cdFx0XHRjYXNlIFVzZXJTdGF0dXMuQ3VycmVudGx5RWRpdGluZzpcblx0XHRcdFx0cmV0dXJuIHRoaXMuZGlzY2FyZFJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX1VTRVJfQ1VSUkVOVExZX0VESVRJTkdcIik7XG5cdFx0XHRjYXNlIFVzZXJTdGF0dXMuQ2hhbmdlc01hZGU6XG5cdFx0XHRcdHJldHVybiB0aGlzLmRpc2NhcmRSZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9VU0VSX0NIQU5HRVNfTUFERVwiKTtcblx0XHRcdGNhc2UgVXNlclN0YXR1cy5Ob0NoYW5nZXNNYWRlOlxuXHRcdFx0XHRyZXR1cm4gdGhpcy5kaXNjYXJkUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfVVNFUl9OT19DSEFOR0VTX01BREVcIik7XG5cdFx0XHRjYXNlIFVzZXJTdGF0dXMuTm90WWV0SW52aXRlZDpcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHJldHVybiB0aGlzLmRpc2NhcmRSZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9VU0VSX05PVF9ZRVRfSU5WSVRFRFwiKTtcblx0XHR9XG5cdH07XG5cblx0LyoqXG5cdCAqIFJlYWRzIHRoZSBjdXJyZW50bHkgaW52aXRlZCB1c2VyIGFuZCBzdG9yZSBpdCBpbiB0aGUgaW50ZXJuYWwgbW9kZWwuXG5cdCAqIEByZXR1cm5zIFByb21pc2UgdGhhdCBpcyByZXNvbHZlZCBvbmNlIHRoZSB1c2VycyBhcmUgcmVhZC5cblx0ICovXG5cdGFzeW5jIHJlYWRJbnZpdGVkVXNlcnMoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgdmlldyA9IHRoaXMuY29udGFpbmluZ1ZpZXc7XG5cdFx0Y29uc3QgbW9kZWwgPSB2aWV3LmdldE1vZGVsKCk7XG5cdFx0Y29uc3QgcGFyYW1ldGVycyA9IHtcblx0XHRcdCRzZWxlY3Q6IFwiVXNlcklELFVzZXJEZXNjcmlwdGlvbixVc2VyRWRpdGluZ1N0YXRlXCJcblx0XHR9O1xuXHRcdGNvbnN0IGludml0ZWRVc2VyTGlzdCA9IG1vZGVsLmJpbmRMaXN0KFxuXHRcdFx0XCJEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9EcmFmdEFkbWluaXN0cmF0aXZlVXNlclwiLFxuXHRcdFx0dmlldy5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIENvbnRleHQsXG5cdFx0XHRbXSxcblx0XHRcdFtdLFxuXHRcdFx0cGFyYW1ldGVyc1xuXHRcdCk7XG5cdFx0Y29uc3QgbWUgPSBDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0TWUoQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHZpZXcpKTtcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsQ29udGV4dCA9IHZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRpZiAobWUpIHtcblx0XHRcdGludml0ZWRVc2VyTGlzdC5maWx0ZXIoXG5cdFx0XHRcdG5ldyBGaWx0ZXIoe1xuXHRcdFx0XHRcdHBhdGg6IFwiVXNlcklEXCIsXG5cdFx0XHRcdFx0b3BlcmF0b3I6IFwiTkVcIixcblx0XHRcdFx0XHR2YWx1ZTE6IG1lLmlkXG5cdFx0XHRcdH0pXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdC8vIGZvciBub3cgd2Ugc2V0IGEgbGltaXQgdG8gMTAwLiB0aGVyZSBzaG91bGRuJ3QgYmUgbW9yZSB0aGFuIGEgZmV3XG5cdFx0Y29uc3QgY29udGV4dHMgPSBhd2FpdCBpbnZpdGVkVXNlckxpc3QucmVxdWVzdENvbnRleHRzKDAsIDEwMCk7XG5cblx0XHRjb25zdCBlZGl0aW5nVXNlcnM6IFVzZXJbXSA9IFtdO1xuXHRcdGNvbnN0IGFjdGl2ZVVzZXJzID0gdmlldy5nZXRNb2RlbChcImludGVybmFsXCIpLmdldFByb3BlcnR5KFwiL2NvbGxhYm9yYXRpb24vYWN0aXZlVXNlcnNcIikgfHwgW107XG5cdFx0aWYgKCFjb250ZXh0cy5sZW5ndGggfHwgY29udGV4dHMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRpbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcImNvbGxhYm9yYXRpb24vY3VycmVudGx5RWRpdGluZ1VzZXJzXCIsIFtdKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29udGV4dHMuZm9yRWFjaCgoc2luZ2xlQ29udGV4dDogQ29udGV4dCkgPT4ge1xuXHRcdFx0Y29uc3QgdXNlckRhdGEgPSBzaW5nbGVDb250ZXh0LmdldE9iamVjdCgpIGFzIEJhY2tlbmRVc2VyO1xuXHRcdFx0Y29uc3QgdXNlciA9IHRoaXMuY3JlYXRlVXNlcih1c2VyRGF0YSwgYWN0aXZlVXNlcnMpO1xuXHRcdFx0aWYgKHVzZXIpIHtcblx0XHRcdFx0dXNlci5jb2xvciA9IENvbGxhYm9yYXRpb25VdGlscy5nZXRVc2VyQ29sb3IodXNlckRhdGEuVXNlcklELCBhY3RpdmVVc2VycywgZWRpdGluZ1VzZXJzKTtcblx0XHRcdFx0ZWRpdGluZ1VzZXJzLnB1c2godXNlcik7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRjb25zdCBzb3J0ZWRVc2VycyA9IHRoaXMuc29ydFVzZXIoZWRpdGluZ1VzZXJzKTtcblxuXHRcdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiY29sbGFib3JhdGlvbi9jdXJyZW50bHlFZGl0aW5nVXNlcnNcIiwgc29ydGVkVXNlcnMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlYWRzIHRoZSBsaXN0IG9mIHVzZXJzIGN1cnJlbnRseSBlZGl0aW5nIHRoZSBkcmFmdCAoZXhjZXB0IG1lKSBhbmQgc3RvcmVzIGl0IGluIHRoZSBpbnRlcm5hbCBtb2RlbC5cblx0ICovXG5cdHJlYWRDdXJyZW50VXNlcnMoKTogdm9pZCB7XG5cdFx0Y29uc3QgdmlldyA9IHRoaXMuY29udGFpbmluZ1ZpZXc7XG5cdFx0Y29uc3QgY3VycmVudFVzZXJzOiBVc2VyW10gPSB2aWV3LmdldE1vZGVsKFwiaW50ZXJuYWxcIikuZ2V0UHJvcGVydHkoXCIvY29sbGFib3JhdGlvbi9hY3RpdmVVc2Vyc1wiKSB8fCBbXTtcblx0XHRjb25zdCBjdXJyZW50VXNlcnNXaXRob3V0TWUgPSBjdXJyZW50VXNlcnNcblx0XHRcdC5maWx0ZXIoKHVzZXI6IFVzZXIpID0+IHVzZXIubWUgIT09IHRydWUpXG5cdFx0XHQubWFwKCh1c2VyOiBVc2VyKSA9PiB7XG5cdFx0XHRcdHJldHVybiB7IC4uLnVzZXIsIHN0YXR1czogVXNlclN0YXR1cy5DdXJyZW50bHlFZGl0aW5nIH07XG5cdFx0XHR9KTtcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsQ29udGV4dCA9IHZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRpbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcImNvbGxhYm9yYXRpb24vY3VycmVudGx5RWRpdGluZ1VzZXJzXCIsIGN1cnJlbnRVc2Vyc1dpdGhvdXRNZSk7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBzb3J0cyB0aGUgdXNlciBhY2NvcmRpbmcgdGhlIEVkaXRpbmcgU3RhdHVzLlxuXHQgKiBDdXJyZW50bHlFZGl0aW5nIC0+IENoYW5nZXNNYWRlIChTdGF0dXMgMyAtPiBTdGF0dXMgMikuXG5cdCAqIEBwYXJhbSBlZGl0aW5nVXNlcnMgVGhlIGFycmF5IG9mIFVzZXJzIHRvIHNvcnRcblx0ICogQHJldHVybnMgVGhlIHNvcnRlZCBhcnJheSBvZiBVc2Vyc1xuXHQgKi9cblx0c29ydFVzZXIoZWRpdGluZ1VzZXJzOiBVc2VyW10pOiBVc2VyW10ge1xuXHRcdGxldCBzb3J0ZWRVc2VycyA9IGVkaXRpbmdVc2Vycztcblx0XHRpZiAoZWRpdGluZ1VzZXJzLmxlbmd0aCA+IDEpIHtcblx0XHRcdC8vIFdlIGRlZmluZSBvdXIgVXNlcnMganVzdCBhYm92ZSwgU3RhdHVzIGlzIGFsd2F5cyBkZWZpbmVkXG5cdFx0XHRzb3J0ZWRVc2VycyA9IGVkaXRpbmdVc2Vycy5zb3J0KCh1c2VyQTogVXNlciwgdXNlckI6IFVzZXIpOiBudW1iZXIgPT4ge1xuXHRcdFx0XHRpZiAodXNlckEuc3RhdHVzISA8IHVzZXJCLnN0YXR1cyEpIHtcblx0XHRcdFx0XHRyZXR1cm4gMTtcblx0XHRcdFx0fSBlbHNlIGlmICh1c2VyQS5zdGF0dXMhID4gdXNlckIuc3RhdHVzISkge1xuXHRcdFx0XHRcdHJldHVybiAtMTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gMDtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRyZXR1cm4gc29ydGVkVXNlcnM7XG5cdH1cblxuXHRjcmVhdGVVc2VyKHVzZXJEYXRhOiBCYWNrZW5kVXNlciwgYWN0aXZlVXNlcnM6IFVzZXJbXSk6IFVzZXIgfCB1bmRlZmluZWQge1xuXHRcdGxldCB1c2VyU3RhdHVzOiBVc2VyU3RhdHVzO1xuXHRcdGNvbnN0IGlzQWN0aXZlID0gYWN0aXZlVXNlcnMuZmluZCgodTogVXNlcikgPT4gdS5pZCA9PT0gdXNlckRhdGEuVXNlcklEKTtcblx0XHRjb25zdCB1c2VyRGVzY3JpcHRpb24gPSB1c2VyRGF0YS5Vc2VyRGVzY3JpcHRpb24gPz8gdXNlckRhdGEuVXNlcklEO1xuXHRcdGNvbnN0IGluaXRpYWxzID0gQ29sbGFib3JhdGlvblV0aWxzLmZvcm1hdEluaXRpYWxzKHVzZXJEZXNjcmlwdGlvbik7XG5cdFx0aWYgKGlzQWN0aXZlKSB7XG5cdFx0XHR1c2VyU3RhdHVzID0gVXNlclN0YXR1cy5DdXJyZW50bHlFZGl0aW5nO1xuXHRcdH0gZWxzZSBpZiAodXNlckRhdGEuVXNlckVkaXRpbmdTdGF0ZSA9PT0gVXNlckVkaXRpbmdTdGF0ZS5JblByb2dyZXNzKSB7XG5cdFx0XHR1c2VyU3RhdHVzID0gVXNlclN0YXR1cy5DaGFuZ2VzTWFkZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gVGhpcyBjYXNlIGlzIGZvciB1c2VyIHRoYXQgYXJlIGp1c3QgaW52aXRlZCwgYnV0IGRpZG4ndCBtYWtlIGFueSBjaGFuZ2VzXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRjb25zdCB1c2VyOiBVc2VyID0ge1xuXHRcdFx0aWQ6IHVzZXJEYXRhLlVzZXJJRCxcblx0XHRcdG5hbWU6IHVzZXJEZXNjcmlwdGlvbixcblx0XHRcdHN0YXR1czogdXNlclN0YXR1cyxcblx0XHRcdGluaXRpYWxzOiBpbml0aWFsc1xuXHRcdH07XG5cdFx0cmV0dXJuIHVzZXI7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgU2F2ZSBidXR0b24uXG5cdCAqIEByZXR1cm5zIEEgYnV0dG9uXG5cdCAqL1xuXHRwcml2YXRlIGdldFNhdmVCdXR0b24oKTogQnV0dG9uIHtcblx0XHRyZXR1cm4gPEJ1dHRvbiB0ZXh0PXt0aGlzLmRpc2NhcmRSZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9ESVNDQVJEX1NBVkVcIil9IHByZXNzPXt0aGlzLnNhdmVNYW5hZ2VEaWFsb2d9IC8+O1xuXHR9XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgZm9yIHRoZSBTYXZlIGFjdGlvbiBvZiB0aGUgbWFuYWdlIGRpYWxvZy5cblx0ICpcblx0ICovXG5cdHNhdmVNYW5hZ2VEaWFsb2cgPSAoKTogdm9pZCA9PiB7XG5cdFx0dGhpcy5wcm9taXNlUmVzb2x2ZShcInNhdmVcIik7XG5cdFx0dGhpcy5tYW5hZ2VEaWFsb2cuY2xvc2UoKTtcblx0XHR0aGlzLm1hbmFnZURpYWxvZy5kZXN0cm95KCk7XG5cdH07XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIERpc2NhcmQgYnV0dG9uLlxuXHQgKiBAcmV0dXJucyBBIGJ1dHRvblxuXHQgKi9cblx0cHJpdmF0ZSBnZXREaXNjYXJkQnV0dG9uKCk6IEJ1dHRvbiB7XG5cdFx0cmV0dXJuIDxCdXR0b24gdGV4dD17dGhpcy5kaXNjYXJkUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfRElTQ0FSRF9ESVNDQVJEXCIpfSBwcmVzcz17dGhpcy5kaXNjYXJkTWFuYWdlRGlhbG9nfSAvPjtcblx0fVxuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIGZvciB0aGUgRGlzY2FyZCBhY3Rpb24gb2YgdGhlIG1hbmFnZSBkaWFsb2cuXG5cdCAqXG5cdCAqL1xuXHRwcml2YXRlIGRpc2NhcmRNYW5hZ2VEaWFsb2cgPSAoKTogdm9pZCA9PiB7XG5cdFx0dGhpcy5wcm9taXNlUmVzb2x2ZShcImRpc2NhcmRDb25maXJtZWRcIik7XG5cdFx0dGhpcy5tYW5hZ2VEaWFsb2cuY2xvc2UoKTtcblx0XHR0aGlzLm1hbmFnZURpYWxvZy5kZXN0cm95KCk7XG5cdH07XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIENhbmNlbCBidXR0b24uXG5cdCAqIEByZXR1cm5zIEEgYnV0dG9uXG5cdCAqL1xuXHRwcml2YXRlIGdldENhbmNlbEJ1dHRvbigpOiBCdXR0b24ge1xuXHRcdHJldHVybiA8QnV0dG9uIHRleHQ9e3RoaXMuZGlzY2FyZFJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0RJU0NBUkRfQ0FOQ0VMXCIpfSBwcmVzcz17dGhpcy5jYW5jZWxNYW5hZ2VEaWFsb2d9IC8+O1xuXHR9XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgZm9yIHRoZSBDYW5jZWwgYWN0aW9uIG9mIHRoZSBtYW5hZ2UgZGlhbG9nLlxuXHQgKlxuXHQgKi9cblx0cHJpdmF0ZSBjYW5jZWxNYW5hZ2VEaWFsb2cgPSAoKTogdm9pZCA9PiB7XG5cdFx0dGhpcy5wcm9taXNlUmVzb2x2ZShcImNhbmNlbFwiKTtcblx0XHR0aGlzLm1hbmFnZURpYWxvZy5jbG9zZSgpO1xuXHRcdHRoaXMubWFuYWdlRGlhbG9nLmRlc3Ryb3koKTtcblx0fTtcblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgU2F2ZSBidXR0b24uXG5cdCAqIEByZXR1cm5zIEEgYnV0dG9uXG5cdCAqL1xuXHRwcml2YXRlIGdldEtlZXBEcmFmdEJ1dHRvbigpOiBCdXR0b24ge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdHRleHQ9e3RoaXMuZGlzY2FyZFJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0RJU0NBUkRfS0VFUF9EUkFGVFwiKX1cblx0XHRcdFx0cHJlc3M9e3RoaXMua2VlcERyYWZ0TWFuYWdlRGlhbG9nfVxuXHRcdFx0XHR0eXBlPVwiRW1waGFzaXplZFwiXG5cdFx0XHQvPlxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciBmb3IgdGhlIEtlZXAgRHJhZnQgYWN0aW9uIG9mIHRoZSBtYW5hZ2UgZGlhbG9nLlxuXHQgKlxuXHQgKi9cblx0cHJpdmF0ZSBrZWVwRHJhZnRNYW5hZ2VEaWFsb2cgPSAoKTogdm9pZCA9PiB7XG5cdFx0dGhpcy5wcm9taXNlUmVzb2x2ZShcImtlZXBEcmFmdFwiKTtcblx0XHR0aGlzLm1hbmFnZURpYWxvZy5jbG9zZSgpO1xuXHRcdHRoaXMubWFuYWdlRGlhbG9nLmRlc3Ryb3koKTtcblx0fTtcblxuXHQvKipcblx0ICogUmVhZHMgdGhlIHVzZXJzLCBhbmQgb3BlbnMgdGhlIGRpYWxvZyB0byBnZXQgdGhlIHVzZXIgaW5wdXQuXG5cdCAqIEByZXR1cm5zIEEgc3RyaW5nIG9mIHRoZSBhY3Rpb24gc2VsZWN0ZWQgYnkgdGhlIHVzZXJcblx0ICovXG5cdGFzeW5jIGdldFVzZXJBY3Rpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcblx0XHRpZiAodGhpcy5hY3Rpb25Jc1NhdmUpIHtcblx0XHRcdC8vIEluIGNhc2Ugb2YgYSBTYXZlLCB3ZSBvbmx5IHNob3cgdGhlIGxpc3Qgb2YgdXNlcnMgd2hpY2ggYXJlIGN1cnJlbmx5IGVkaXRpbmcgdGhlIGRyYWZ0XG5cdFx0XHR0aGlzLnJlYWRDdXJyZW50VXNlcnMoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0YXdhaXQgdGhpcy5yZWFkSW52aXRlZFVzZXJzKCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMub3BlbigpO1xuXHR9XG5cblx0LyoqXG5cdCAqIE9wZW5zIHRoZSBkaXNjYXJkIGRyYWZ0IGZyb20gRGlzY2FyZC9DYW5jZWwgYWN0aW9uLlxuXHQgKiBAcmV0dXJucyBBIHN0cmluZyBvZiB0aGUgYWN0aW9uIHNlbGVjdGVkIGJ5IHRoZSB1c2VyXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgb3BlbigpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdGF3YWl0IENvbGxhYm9yYXRpb25EaXNjYXJkLmxvYWQoKTtcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsQ29udGV4dCA9IHRoaXMuY29udGFpbmluZ1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRjb25zdCBlZGl0aW5nVXNlcnMgPSBpbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcImNvbGxhYm9yYXRpb24vY3VycmVudGx5RWRpdGluZ1VzZXJzXCIpO1xuXHRcdGlmIChlZGl0aW5nVXNlcnMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5hY3Rpb25Jc1NhdmUgPyBcInNhdmVcIiA6IFwiZGlzY2FyZFwiO1xuXHRcdH1cblx0XHQvLyBXZSBjcmVhdGUgdGhlIGRpYWxvZyBhZnRlciByZWFkaW5nIHRoZSB1c2Vyc1xuXHRcdHRoaXMubWFuYWdlRGlhbG9nID0gdGhpcy5nZXRNYW5hZ2VEaWFsb2coKTtcblx0XHQvLyBXZSBzZXQgdXAgdGhlIGJpbmRpbmcgY29udGV4dCBvZiB0aGUgRGlhbG9nXG5cdFx0KHRoaXMubWFuYWdlRGlhbG9nLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQpLnNldFByb3BlcnR5KFwiY3VycmVudGx5RWRpdGluZ1VzZXJzXCIsIGVkaXRpbmdVc2Vycyk7XG5cdFx0dGhpcy5tYW5hZ2VEaWFsb2cub3BlbigpO1xuXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG5cdFx0XHR0aGlzLnByb21pc2VSZXNvbHZlID0gcmVzb2x2ZTtcblx0XHR9KTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQXVCcUJBLG9CQUFvQjtJQXVCeEMsU0FBQUEscUJBQVlDLElBQVksRUFBRUMsTUFBZSxFQUFFO01BNEozQztBQUNEO0FBQ0E7QUFDQTtBQUNBO01BSkMsS0FLQUMsZ0JBQWdCLEdBQUlDLFVBQXNCLElBQWE7UUFDdEQsUUFBUUEsVUFBVTtVQUNqQixLQUFLQyxVQUFVLENBQUNDLGdCQUFnQjtZQUMvQixPQUFPLElBQUksQ0FBQ0Msb0JBQW9CLENBQUNDLE9BQU8sQ0FBQyw2Q0FBNkMsQ0FBQztVQUN4RixLQUFLSCxVQUFVLENBQUNJLFdBQVc7WUFDMUIsT0FBTyxJQUFJLENBQUNGLG9CQUFvQixDQUFDQyxPQUFPLENBQUMsd0NBQXdDLENBQUM7VUFDbkYsS0FBS0gsVUFBVSxDQUFDSyxhQUFhO1lBQzVCLE9BQU8sSUFBSSxDQUFDSCxvQkFBb0IsQ0FBQ0MsT0FBTyxDQUFDLDJDQUEyQyxDQUFDO1VBQ3RGLEtBQUtILFVBQVUsQ0FBQ00sYUFBYTtVQUM3QjtZQUNDLE9BQU8sSUFBSSxDQUFDSixvQkFBb0IsQ0FBQ0MsT0FBTyxDQUFDLDJDQUEyQyxDQUFDO1FBQ3ZGO01BQ0QsQ0FBQztNQXlIRDtBQUNEO0FBQ0E7QUFDQTtNQUhDLEtBSUFJLGdCQUFnQixHQUFHLE1BQVk7UUFDOUIsSUFBSSxDQUFDQyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQ0MsWUFBWSxDQUFDQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUNELFlB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LENBQUMseUNBQXlDLENBQUU7UUFDbkZ3SSxLQUFLLEVBQUUsSUFBSSxDQUFDN0gscUJBQXNCO1FBQ2xDOEgsSUFBSSxFQUFDO01BQVksQ0FDakIsQ0FBQztJQUVKLENBQUM7SUFZRDtBQUNEO0FBQ0E7QUFDQTtJQUhDM0csTUFBQSxDQUlNNEcsYUFBYSxHQUFuQixlQUFNQSxhQUFhQSxDQUFBLEVBQW9CO01BQ3RDLElBQUksSUFBSSxDQUFDOUgsWUFBWSxFQUFFO1FBQ3RCO1FBQ0EsSUFBSSxDQUFDMkcsZ0JBQWdCLENBQUMsQ0FBQztNQUN4QixDQUFDLE1BQU07UUFDTixNQUFNLElBQUksQ0FBQ2pDLGdCQUFnQixDQUFDLENBQUM7TUFDOUI7TUFFQSxPQUFPLElBQUksQ0FBQ3FELElBQUksQ0FBQyxDQUFDO0lBQ25COztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQTdHLE1BQUEsQ0FJYTZHLElBQUksR0FBakIsZUFBYUEsSUFBSUEsQ0FBQSxFQUFvQjtNQUNwQyxNQUFNbkosb0JBQW9CLENBQUM4QixJQUFJLENBQUMsQ0FBQztNQUNqQyxNQUFNMkUsb0JBQW9CLEdBQUcsSUFBSSxDQUFDcEYsY0FBYyxDQUFDMkQsaUJBQWlCLENBQUMsVUFBVSxDQUF5QjtNQUN0RyxNQUFNQyxZQUFZLEdBQUd3QixvQkFBb0IsQ0FBQ3ZCLFdBQVcsQ0FBQyxxQ0FBcUMsQ0FBQztNQUM1RixJQUFJRCxZQUFZLENBQUNLLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDOUIsT0FBTyxJQUFJLENBQUNsRSxZQUFZLEdBQUcsTUFBTSxHQUFHLFNBQVM7TUFDOUM7TUFDQTtNQUNBLElBQUksQ0FBQ04sWUFBWSxHQUFHLElBQUksQ0FBQzBCLGVBQWUsQ0FBQyxDQUFDO01BQzFDO01BQ0MsSUFBSSxDQUFDMUIsWUFBWSxDQUFDa0UsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQTBCa0MsV0FBVyxDQUFDLHVCQUF1QixFQUFFakMsWUFBWSxDQUFDO01BQzVILElBQUksQ0FBQ25FLFlBQVksQ0FBQ3FJLElBQUksQ0FBQyxDQUFDO01BRXhCLE9BQU8sSUFBSUMsT0FBTyxDQUFFQyxPQUFPLElBQUs7UUFDL0IsSUFBSSxDQUFDeEksY0FBYyxHQUFHd0ksT0FBTztNQUM5QixDQUFDLENBQUM7SUFDSCxDQUFDO0lBQUEsT0FBQXJKLG9CQUFBO0VBQUE7RUFBQTZCLFFBQUEsR0FBQTdCLG9CQUFBO0VBQUEsT0FBQTZCLFFBQUE7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -122,6 +122,7 @@ export default class CollaborationDiscard {
|
|
|
122
122
|
<>
|
|
123
123
|
<CollaborationDiscard.GridTableColumnControl width="3em">
|
|
124
124
|
{{
|
|
125
|
+
label: <Text text={this.discardResourceModel.getText("C_COLLABORATIONDRAFT_DISCARD_TABLE_USER_AVATAR_COLUMN")} />,
|
|
125
126
|
template: (
|
|
126
127
|
<HBox alignItems="Center" justifyContent="SpaceBetween" width="100%">
|
|
127
128
|
<Avatar displaySize="XS" backgroundColor="{internal>color}" initials="{internal>initials}" />
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2026 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe/core/buildingBlocks/BuildingBlock", "sap/fe/core/controllerextensions/collaboration/CollaborationCommon", "sap/fe/core/formatters/CollaborationFormatter", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/helpers/PromiseKeeper", "sap/fe/core/helpers/TypeGuards", "sap/fe/macros/CommonHelper", "sap/m/Avatar", "sap/m/Button", "sap/m/Dialog", "sap/m/HBox", "sap/m/Label", "sap/m/MessageStrip", "sap/m/MessageToast", "sap/m/ObjectStatus", "sap/m/ResponsivePopover", "sap/m/Text", "sap/m/VBox", "sap/ui/core/Lib", "sap/ui/core/library", "sap/ui/mdc/Field", "sap/ui/mdc/ValueHelp", "sap/ui/mdc/valuehelp/Dialog", "sap/ui/mdc/valuehelp/Popover", "sap/ui/mdc/valuehelp/content/MTable", "sap/fe/base/jsx-runtime/jsx", "sap/fe/base/jsx-runtime/jsxs", "sap/fe/base/jsx-runtime/Fragment"], function (BindingToolkit, ClassSupport, BuildingBlock, CollaborationCommon, collaborationFormatter, ModelHelper, PromiseKeeper, TypeGuards, CommonHelper, Avatar, Button, Dialog, HBox, Label, MessageStrip, MessageToast, ObjectStatus, ResponsivePopover, Text, VBox, Lib, library, Field, ValueHelp, MDCDialog, MDCPopover, MTable, _jsx, _jsxs, _Fragment) {
|
|
5
|
+
sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe/core/buildingBlocks/BuildingBlock", "sap/fe/core/controllerextensions/collaboration/CollaborationCommon", "sap/fe/core/formatters/CollaborationFormatter", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/helpers/PromiseKeeper", "sap/fe/core/helpers/TypeGuards", "sap/fe/macros/CommonHelper", "sap/m/Avatar", "sap/m/Button", "sap/m/Dialog", "sap/m/HBox", "sap/m/Label", "sap/m/MessageStrip", "sap/m/MessageToast", "sap/m/ObjectStatus", "sap/m/ResponsivePopover", "sap/m/Text", "sap/m/VBox", "sap/ui/core/InvisibleText", "sap/ui/core/Lib", "sap/ui/core/library", "sap/ui/mdc/Field", "sap/ui/mdc/ValueHelp", "sap/ui/mdc/valuehelp/Dialog", "sap/ui/mdc/valuehelp/Popover", "sap/ui/mdc/valuehelp/content/MTable", "sap/fe/base/jsx-runtime/jsx", "sap/fe/base/jsx-runtime/jsxs", "sap/fe/base/jsx-runtime/Fragment"], function (BindingToolkit, ClassSupport, BuildingBlock, CollaborationCommon, collaborationFormatter, ModelHelper, PromiseKeeper, TypeGuards, CommonHelper, Avatar, Button, Dialog, HBox, Label, MessageStrip, MessageToast, ObjectStatus, ResponsivePopover, Text, VBox, InvisibleText, Lib, library, Field, ValueHelp, MDCDialog, MDCPopover, MTable, _jsx, _jsxs, _Fragment) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _dec, _dec2, _dec3, _class, _class2, _descriptor, _descriptor2;
|
|
@@ -340,6 +340,9 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
340
340
|
children: [_jsx(CollaborationDraft.GridTableColumnControl, {
|
|
341
341
|
width: CommonHelper.isDesktop() ? "10%" : "3em",
|
|
342
342
|
children: {
|
|
343
|
+
label: _jsx(Text, {
|
|
344
|
+
text: this.getTranslatedText("C_COLLABORATIONDRAFT_INVITATION_TABLE_USER_AVATAR_COLUMN")
|
|
345
|
+
}),
|
|
343
346
|
template: _jsx(HBox, {
|
|
344
347
|
alignItems: "Center",
|
|
345
348
|
justifyContent: "SpaceBetween",
|
|
@@ -380,6 +383,9 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
380
383
|
}), _jsx(CollaborationDraft.GridTableColumnControl, {
|
|
381
384
|
width: CommonHelper.isDesktop() ? "8%" : "3em",
|
|
382
385
|
children: {
|
|
386
|
+
label: _jsx(Text, {
|
|
387
|
+
text: this.getTranslatedText("C_COLLABORATIONDRAFT_INVITATION_TABLE_REMOVE_COLUMN")
|
|
388
|
+
}),
|
|
383
389
|
template: _jsx(HBox, {
|
|
384
390
|
children: _jsx(Button, {
|
|
385
391
|
icon: "sap-icon://decline",
|
|
@@ -398,6 +404,9 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
398
404
|
* @returns The control tree
|
|
399
405
|
*/;
|
|
400
406
|
_proto.getManageDialogUserTable = function getManageDialogUserTable() {
|
|
407
|
+
const tableTitle = _jsx(InvisibleText, {
|
|
408
|
+
text: this.getTranslatedText("C_COLLABORATIONDRAFT_INVITATION_TABLE_TITLE")
|
|
409
|
+
});
|
|
401
410
|
this.manageDialogUserTable = _jsx(CollaborationDraft.GridTableControl, {
|
|
402
411
|
width: "100%",
|
|
403
412
|
rows: {
|
|
@@ -406,8 +415,10 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
406
415
|
visibleRowCount: CommonHelper.isDesktop() ? "5" : "3",
|
|
407
416
|
visibleRowCountMode: "Fixed",
|
|
408
417
|
selectionMode: "None",
|
|
418
|
+
ariaLabelledBy: [tableTitle],
|
|
409
419
|
children: {
|
|
410
|
-
columns: this.getManageDialogUserTableColumns()
|
|
420
|
+
columns: this.getManageDialogUserTableColumns(),
|
|
421
|
+
dependents: tableTitle
|
|
411
422
|
}
|
|
412
423
|
});
|
|
413
424
|
return this.manageDialogUserTable;
|
|
@@ -425,7 +436,7 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
425
436
|
value: "{internal>UserID}",
|
|
426
437
|
additionalValue: "{internal>UserDescription}",
|
|
427
438
|
display: "DescriptionValue",
|
|
428
|
-
width: "
|
|
439
|
+
width: "100%",
|
|
429
440
|
required: true,
|
|
430
441
|
valueHelp: "userValueHelp",
|
|
431
442
|
placeholder: this.getTranslatedText("C_COLLABORATIONDRAFT_INVITATION_INPUT_PLACEHOLDER"),
|
|
@@ -636,4 +647,4 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
636
647
|
_exports = CollaborationDraft;
|
|
637
648
|
return _exports;
|
|
638
649
|
}, false);
|
|
639
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJVU0VSU19QQVJBTUVURVJTIiwiVVNFUl9JRF9QQVJBTUVURVIiLCJDb2xsYWJvcmF0aW9uRHJhZnQiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsInJlcXVpcmVkIiwiX2RlYzMiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2siLCJwcm9wcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJzaG93Q29sbGFib3JhdGlvblVzZXJEZXRhaWxzIiwiZXZlbnQiLCJzb3VyY2UiLCJnZXRTb3VyY2UiLCJ1c2VyRGV0YWlsc1BvcG92ZXIiLCJnZXRVc2VyRGV0YWlsc1BvcG92ZXIiLCJzZXRCaW5kaW5nQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0Iiwib3BlbkJ5IiwibWFuYWdlQ29sbGFib3JhdGlvbiIsIm1hbmFnZURpYWxvZyIsImdldE1hbmFnZURpYWxvZyIsInJlYWRJbnZpdGVkVXNlcnMiLCJvcGVuIiwiZm9ybWF0VXNlclN0YXR1cyIsInVzZXJTdGF0dXMiLCJVc2VyU3RhdHVzIiwiQ3VycmVudGx5RWRpdGluZyIsImdldFRyYW5zbGF0ZWRUZXh0IiwiQ2hhbmdlc01hZGUiLCJOb0NoYW5nZXNNYWRlIiwiTm90WWV0SW52aXRlZCIsImFkZFVzZXJGaWVsZENoYW5nZWQiLCJ1c2VySW5wdXQiLCJnZXRQYXJhbWV0ZXIiLCJ0aGVuIiwibmV3VXNlcklkIiwiaW50ZXJuYWxNb2RlbENvbnRleHQiLCJpbnZpdGVkVXNlcnMiLCJnZXRQcm9wZXJ0eSIsIm5ld1VzZXIiLCJpZCIsIm5hbWUiLCJmaW5kSW5kZXgiLCJ1c2VyIiwic2V0VmFsdWVTdGF0ZSIsInNldFZhbHVlU3RhdGVUZXh0IiwiYWRkVXNlciIsImJpbmQiLCJjYXRjaCIsImludml0ZVVzZXIiLCJ1c2VycyIsIm5ld2x5SW52aXRlZFVzZXJzIiwiYmluZGluZ0NvbnRleHQiLCJjb250ZXh0cyIsIm1hbmFnZURpYWxvZ1VzZXJUYWJsZSIsImdldEJpbmRpbmciLCJnZXRDb250ZXh0cyIsImZvckVhY2giLCJjb250ZXh0IiwicHVzaCIsIlVzZXJJRCIsIlVzZXJBY2Nlc3NSb2xlIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJzaGFyZU9iamVjdCIsInJlcXVlc3RJbnZpdGVkVXNlcnNJbkRyYWZ0IiwibmV3VXNlcnMiLCJpbnZpdGVkVXNlciIsImluY2x1ZGVzIiwibWVzc2FnZUhhbmRsZXIiLCJnZXRQYWdlQ29udHJvbGxlciIsInNob3dNZXNzYWdlRGlhbG9nIiwibGVuZ3RoIiwiTWVzc2FnZVRvYXN0Iiwic2hvdyIsImdldFNoYXJlZEl0ZW1OYW1lIiwidG9TdHJpbmciLCJjbG9zZU1hbmFnZURpYWxvZyIsImN1cnJlbnRVc2VyTGlzdCIsImFjdGl2ZVVzZXJzIiwiZ2V0TW9kZWwiLCJtZSIsIkNvbGxhYm9yYXRpb25VdGlscyIsImdldE1lIiwiZ2V0QXBwQ29tcG9uZW50IiwidXNlckNvbnRleHQiLCJ1c2VyRGF0YSIsImdldE9iamVjdCIsImlzTWUiLCJpc0FjdGl2ZSIsImZpbmQiLCJ1IiwidXNlckRlc2NyaXB0aW9uIiwiVXNlckRlc2NyaXB0aW9uIiwiaW5pdGlhbHMiLCJmb3JtYXRJbml0aWFscyIsImdldFRleHQiLCJVc2VyRWRpdGluZ1N0YXRlIiwiSW5Qcm9ncmVzcyIsInN0YXR1cyIsImNvbG9yIiwiZ2V0VXNlckNvbG9yIiwic2V0UHJvcGVydHkiLCJlIiwiY2xvc2UiLCJkZXN0cm95IiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uTWV0YWRhdGFBdmFpbGFibGUiLCJfb3duZXJDb21wb25lbnQiLCJfY29udHJvbExvYWRlZCIsIlByb21pc2VLZWVwZXIiLCJHcmlkVGFibGVDb250cm9sIiwidW5kZWZpbmVkIiwiTGliIiwibG9hZCIsImRlZmF1bHQiLCJfX3VpNV9yZXF1aXJlX2FzeW5jIiwiR3JpZFRhYmxlQ29sdW1uQ29udHJvbCIsImNvbnRleHRPYmplY3QiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwiY29udGV4dFBhdGgiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsInJlc29sdmUiLCJfanN4IiwiUmVzcG9uc2l2ZVBvcG92ZXIiLCJzaG93SGVhZGVyIiwiY2xhc3MiLCJwbGFjZW1lbnQiLCJjaGlsZHJlbiIsIl9qc3hzIiwiSEJveCIsIkF2YXRhciIsImRpc3BsYXlTaXplIiwiYmFja2dyb3VuZENvbG9yIiwiVkJveCIsIkxhYmVsIiwidGV4dCIsImFkZERlcGVuZGVudCIsIkRpYWxvZyIsInRpdGxlIiwiZ2V0SW52aXRhdGlvbkRpYWxvZ1RpdGxlRXhwQmluZGluZyIsImhvcml6b250YWxTY3JvbGxpbmciLCJ2ZXJ0aWNhbFNjcm9sbGluZyIsImNvbnRlbnRXaWR0aCIsInN0cmV0Y2giLCJDb21tb25IZWxwZXIiLCJpc0Rlc2t0b3AiLCJiZWdpbkJ1dHRvbiIsIkJ1dHRvbiIsInByZXNzIiwiZW5hYmxlZCIsInBhcnRzIiwicGF0aCIsImZvcm1hdHRlciIsImZvcm1hdEludml0ZUJ1dHRvbiIsImVuZEJ1dHRvbiIsIndpZHRoIiwiTWVzc2FnZVN0cmlwIiwic2hvd0ljb24iLCJzaG93Q2xvc2VCdXR0b24iLCJnZXRNYW5hZ2VEaWFsb2dBZGRVc2VyU2VjdGlvbiIsImdldE1hbmFnZURpYWxvZ1VzZXJUYWJsZSIsImJpbmRFbGVtZW50IiwibW9kZWwiLCJnZXRNYW5hZ2VEaWFsb2dVc2VyVGFibGVDb2x1bW5zIiwiX0ZyYWdtZW50IiwidGVtcGxhdGUiLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJsYWJlbCIsIlRleHQiLCJPYmplY3RTdGF0dXMiLCJzdGF0ZSIsImZvcm1hdFVzZXJTdGF0dXNDb2xvciIsImljb24iLCJyZW1vdmVVc2VyIiwidmlzaWJsZSIsInJvd3MiLCJ2aXNpYmxlUm93Q291bnQiLCJ2aXNpYmxlUm93Q291bnRNb2RlIiwic2VsZWN0aW9uTW9kZSIsImNvbHVtbnMiLCJGaWVsZCIsInZhbHVlIiwiYWRkaXRpb25hbFZhbHVlIiwiZGlzcGxheSIsInZhbHVlSGVscCIsInBsYWNlaG9sZGVyIiwiY2hhbmdlIiwiZGVwZW5kZW50cyIsIlZhbHVlSGVscCIsImRlbGVnYXRlIiwiZ2V0VmFsdWVIZWxwRGVsZWdhdGUiLCJ2YWxpZGF0ZUlucHV0IiwidHlwZWFoZWFkIiwiTURDUG9wb3ZlciIsIk1UYWJsZSIsImNhc2VTZW5zaXRpdmUiLCJ1c2VBc1ZhbHVlSGVscCIsImRpYWxvZyIsIk1EQ0RpYWxvZyIsIlZhbHVlU3RhdGUiLCJTdWNjZXNzIiwiV2FybmluZyIsIkluZm9ybWF0aW9uIiwibmJVc2VycyIsInNvbWUiLCJ0cmFuc2llbnQiLCJpdGVtIiwiZGVsZXRlVXNlcklEIiwiZmlsdGVyIiwicGFyYW1ldGVycyIsIiRzZWxlY3QiLCIkJGdyb3VwSWQiLCJpbnZpdGVkVXNlckxpc3QiLCJiaW5kTGlzdCIsImdldFBhdGgiLCJyZXF1ZXN0Q29udGV4dHMiLCJoZWFkZXJJbmZvIiwidGFyZ2V0RW50aXR5VHlwZSIsImFubm90YXRpb25zIiwiVUkiLCJIZWFkZXJJbmZvIiwic2hhcmVkSXRlbU5hbWUiLCJUaXRsZSIsImlzQW5ub3RhdGlvbk9mVHlwZSIsImlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uIiwiVmFsdWUiLCJUeXBlTmFtZSIsImFjdGlvbk5hbWUiLCJ0YXJnZXRFbnRpdHlTZXQiLCJDb21tb24iLCJEcmFmdFJvb3QiLCJTaGFyZUFjdGlvbiIsImFjdGlvbiIsInJlc29sdmVQYXRoIiwidXNlclBhcmFtZXRlcnMiLCJwYXJhbSIsInBheWxvYWQiLCJwcm9wZXJ0eVBhdGgiLCJxdWFsaWZpZXJzIiwidmFsdWVIZWxwUXVhbGlmaWVyIiwiaXNBY3Rpb25QYXJhbWV0ZXJEaWFsb2ciLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJwYXJhbXMiLCJ0aXRsZUV4cHJlc3Npb24iLCJmb3JtYXRSZXN1bHQiLCJjb2xsYWJvcmF0aW9uRm9ybWF0dGVyIiwiZ2V0Rm9ybWF0dGVkVGV4dCIsImNvbXBpbGVFeHByZXNzaW9uIiwiZ2V0SW52aXRlQnV0dG9uIiwic3JjIiwiX2dldE93bmVyIiwiZ2V0TWV0YU1vZGVsIiwiTW9kZWxIZWxwZXIiLCJpc0NvbGxhYm9yYXRpb25EcmFmdFN1cHBvcnRlZCIsIml0ZW1zIiwiQnVpbGRpbmdCbG9jayIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ29sbGFib3JhdGlvbkRyYWZ0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVNldCwgQWN0aW9uIGFzIFZvY2FidWxhcnlBY3Rpb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvRWRtXCI7XG5pbXBvcnQgdHlwZSB7IEVudGl0eVNldEFubm90YXRpb25zX0NvbW1vbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uX0VkbVwiO1xuaW1wb3J0IHR5cGUgeyBEYXRhRmllbGQsIERhdGFGaWVsZFR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBjb21waWxlRXhwcmVzc2lvbiwgZm9ybWF0UmVzdWx0LCBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgVGVtcGxhdGVDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL1RlbXBsYXRlQ29tcG9uZW50XCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHR5cGUgeyBCYWNrZW5kVXNlciwgVXNlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0NvbGxhYm9yYXRpb25Db21tb25cIjtcbmltcG9ydCB7XG5cdENvbGxhYm9yYXRpb25VdGlscyxcblx0VXNlckVkaXRpbmdTdGF0ZSxcblx0VXNlclN0YXR1cyxcblx0c2hhcmVPYmplY3Rcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQ29sbGFib3JhdGlvbkNvbW1vblwiO1xuaW1wb3J0IGNvbGxhYm9yYXRpb25Gb3JtYXR0ZXIgZnJvbSBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvQ29sbGFib3JhdGlvbkZvcm1hdHRlclwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBQcm9taXNlS2VlcGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1Byb21pc2VLZWVwZXJcIjtcbmltcG9ydCB7IGlzQW5ub3RhdGlvbk9mVHlwZSwgaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9UeXBlR3VhcmRzXCI7XG5pbXBvcnQgdHlwZSB7IERhdGFNb2RlbE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgQ29tbW9uSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL0NvbW1vbkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBWYWx1ZUhlbHBQYXlsb2FkIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvdmFsdWVoZWxwL1ZhbHVlTGlzdEhlbHBlclwiO1xuaW1wb3J0IEF2YXRhciBmcm9tIFwic2FwL20vQXZhdGFyXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCBEaWFsb2cgZnJvbSBcInNhcC9tL0RpYWxvZ1wiO1xuaW1wb3J0IEhCb3ggZnJvbSBcInNhcC9tL0hCb3hcIjtcbmltcG9ydCBMYWJlbCBmcm9tIFwic2FwL20vTGFiZWxcIjtcbmltcG9ydCBNZXNzYWdlU3RyaXAgZnJvbSBcInNhcC9tL01lc3NhZ2VTdHJpcFwiO1xuaW1wb3J0IE1lc3NhZ2VUb2FzdCBmcm9tIFwic2FwL20vTWVzc2FnZVRvYXN0XCI7XG5pbXBvcnQgT2JqZWN0U3RhdHVzIGZyb20gXCJzYXAvbS9PYmplY3RTdGF0dXNcIjtcbmltcG9ydCBSZXNwb25zaXZlUG9wb3ZlciBmcm9tIFwic2FwL20vUmVzcG9uc2l2ZVBvcG92ZXJcIjtcbmltcG9ydCB0eXBlIFRhYmxlIGZyb20gXCJzYXAvbS9UYWJsZVwiO1xuaW1wb3J0IFRleHQgZnJvbSBcInNhcC9tL1RleHRcIjtcbmltcG9ydCBWQm94IGZyb20gXCJzYXAvbS9WQm94XCI7XG5pbXBvcnQgdHlwZSBFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBMaWIgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IHsgVmFsdWVTdGF0ZSB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSB7IEZpZWxkJENoYW5nZUV2ZW50IH0gZnJvbSBcInNhcC91aS9tZGMvRmllbGRcIjtcbmltcG9ydCBGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9GaWVsZFwiO1xuaW1wb3J0IFZhbHVlSGVscCBmcm9tIFwic2FwL3VpL21kYy9WYWx1ZUhlbHBcIjtcbmltcG9ydCBNRENEaWFsb2cgZnJvbSBcInNhcC91aS9tZGMvdmFsdWVoZWxwL0RpYWxvZ1wiO1xuaW1wb3J0IE1EQ1BvcG92ZXIgZnJvbSBcInNhcC91aS9tZGMvdmFsdWVoZWxwL1BvcG92ZXJcIjtcbmltcG9ydCBNVGFibGUgZnJvbSBcInNhcC91aS9tZGMvdmFsdWVoZWxwL2NvbnRlbnQvTVRhYmxlXCI7XG5pbXBvcnQgdHlwZSBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBJbnRlZ2VyIGZyb20gXCJzYXAvdWkvbW9kZWwvdHlwZS9JbnRlZ2VyXCI7XG5pbXBvcnQgdHlwZSBHcmlkVGFibGVDb2x1bW4gZnJvbSBcInNhcC91aS90YWJsZS9Db2x1bW5cIjtcbmltcG9ydCB0eXBlIEdyaWRUYWJsZSBmcm9tIFwic2FwL3VpL3RhYmxlL1RhYmxlXCI7XG5cbmNvbnN0IFVTRVJTX1BBUkFNRVRFUlMgPSBcIlVzZXJzXCI7XG5jb25zdCBVU0VSX0lEX1BBUkFNRVRFUiA9IFwiVXNlcklEXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5jb21wb25lbnRzLkNvbGxhYm9yYXRpb25EcmFmdFwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29sbGFib3JhdGlvbkRyYWZ0IGV4dGVuZHMgQnVpbGRpbmdCbG9jayB7XG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIHJlcXVpcmVkOiB0cnVlIH0pXG5cdHB1YmxpYyBjb250ZXh0UGF0aCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdHB1YmxpYyBpZD86IHN0cmluZztcblxuXHRwcml2YXRlIGNvbnRleHRPYmplY3Q/OiBEYXRhTW9kZWxPYmplY3RQYXRoPEVudGl0eVNldD47XG5cblx0cHJpdmF0ZSB1c2VyRGV0YWlsc1BvcG92ZXI/OiBSZXNwb25zaXZlUG9wb3ZlcjtcblxuXHRwcml2YXRlIG1hbmFnZURpYWxvZz86IERpYWxvZztcblxuXHRwcml2YXRlIG1hbmFnZURpYWxvZ1VzZXJUYWJsZT86IFRhYmxlO1xuXG5cdHByaXZhdGUgc3RhdGljIEdyaWRUYWJsZUNvbnRyb2w6IHR5cGVvZiBHcmlkVGFibGU7XG5cblx0cHJpdmF0ZSBzdGF0aWMgR3JpZFRhYmxlQ29sdW1uQ29udHJvbDogdHlwZW9mIEdyaWRUYWJsZUNvbHVtbjtcblxuXHRwcml2YXRlIF9jb250cm9sTG9hZGVkPzogUHJvbWlzZUtlZXBlcjx2b2lkPjtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wczogUHJvcGVydGllc09mPENvbGxhYm9yYXRpb25EcmFmdD4sIG90aGVycz86IFByb3BlcnRpZXNPZjxDb2xsYWJvcmF0aW9uRHJhZnQ+KSB7XG5cdFx0c3VwZXIocHJvcHMsIG90aGVycyk7XG5cdH1cblxuXHRhc3luYyBvbk1ldGFkYXRhQXZhaWxhYmxlKF9vd25lckNvbXBvbmVudDogVGVtcGxhdGVDb21wb25lbnQpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHR0aGlzLl9jb250cm9sTG9hZGVkID0gbmV3IFByb21pc2VLZWVwZXIoKTtcblx0XHRpZiAoQ29sbGFib3JhdGlvbkRyYWZ0LkdyaWRUYWJsZUNvbnRyb2wgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0YXdhaXQgTGliLmxvYWQoeyBuYW1lOiBcInNhcC51aS50YWJsZVwiIH0pO1xuXHRcdFx0Y29uc3QgeyBkZWZhdWx0OiBHcmlkVGFibGVDb250cm9sIH0gPSBhd2FpdCBpbXBvcnQoXCJzYXAvdWkvdGFibGUvVGFibGVcIik7XG5cdFx0XHRDb2xsYWJvcmF0aW9uRHJhZnQuR3JpZFRhYmxlQ29udHJvbCA9IEdyaWRUYWJsZUNvbnRyb2w7XG5cdFx0XHRjb25zdCB7IGRlZmF1bHQ6IEdyaWRUYWJsZUNvbHVtbkNvbnRyb2wgfSA9IGF3YWl0IGltcG9ydChcInNhcC91aS90YWJsZS9Db2x1bW5cIik7XG5cdFx0XHRDb2xsYWJvcmF0aW9uRHJhZnQuR3JpZFRhYmxlQ29sdW1uQ29udHJvbCA9IEdyaWRUYWJsZUNvbHVtbkNvbnRyb2w7XG5cdFx0fVxuXHRcdHRoaXMuY29udGV4dE9iamVjdCA9IHRoaXMuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCh0aGlzLmNvbnRleHRQYXRoKTtcblx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbnRlbnQoKTtcblx0XHR0aGlzLl9jb250cm9sTG9hZGVkLnJlc29sdmUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIHRvIGNyZWF0ZSBhbmQgc2hvdyB0aGUgdXNlciBkZXRhaWxzIHBvcG92ZXIuXG5cdCAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnQgb2JqZWN0XG5cdCAqL1xuXHRzaG93Q29sbGFib3JhdGlvblVzZXJEZXRhaWxzID0gKGV2ZW50OiBFdmVudDx7fSwgQ29udHJvbD4pOiB2b2lkID0+IHtcblx0XHRjb25zdCBzb3VyY2UgPSBldmVudC5nZXRTb3VyY2UoKTtcblx0XHRpZiAoIXRoaXMudXNlckRldGFpbHNQb3BvdmVyKSB7XG5cdFx0XHR0aGlzLnVzZXJEZXRhaWxzUG9wb3ZlciA9IHRoaXMuZ2V0VXNlckRldGFpbHNQb3BvdmVyKCk7XG5cdFx0fVxuXG5cdFx0dGhpcy51c2VyRGV0YWlsc1BvcG92ZXI/LnNldEJpbmRpbmdDb250ZXh0KHNvdXJjZS5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0LCBcImludGVybmFsXCIpO1xuXHRcdHRoaXMudXNlckRldGFpbHNQb3BvdmVyPy5vcGVuQnkoc291cmNlKTtcblx0fTtcblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgdXNlciBkZXRhaWxzIHBvcG92ZXIuXG5cdCAqIEByZXR1cm5zIFRoZSBjb250cm9sIHRyZWVcblx0ICovXG5cdGdldFVzZXJEZXRhaWxzUG9wb3ZlcigpOiBSZXNwb25zaXZlUG9wb3ZlciB7XG5cdFx0Y29uc3QgdXNlckRldGFpbHNQb3BvdmVyID0gKFxuXHRcdFx0PFJlc3BvbnNpdmVQb3BvdmVyIHNob3dIZWFkZXI9e2ZhbHNlfSBjbGFzcz1cInNhcFVpQ29udGVudFBhZGRpbmdcIiBwbGFjZW1lbnQ9XCJCb3R0b21cIj5cblx0XHRcdFx0PEhCb3g+XG5cdFx0XHRcdFx0PEF2YXRhciBpbml0aWFscz1cIntpbnRlcm5hbD5pbml0aWFsc31cIiBkaXNwbGF5U2l6ZT1cIlNcIiBiYWNrZ3JvdW5kQ29sb3I9XCJ7aW50ZXJuYWw+Y29sb3J9XCIgLz5cblx0XHRcdFx0XHQ8VkJveD5cblx0XHRcdFx0XHRcdDxMYWJlbCBjbGFzcz1cInNhcFVpTWVkaXVtTWFyZ2luQmVnaW5cIiB0ZXh0PVwie2ludGVybmFsPm5hbWV9XCIgLz5cblx0XHRcdFx0XHRcdDxMYWJlbCBjbGFzcz1cInNhcFVpTWVkaXVtTWFyZ2luQmVnaW5cIiB0ZXh0PVwie2ludGVybmFsPmlkfVwiIC8+XG5cdFx0XHRcdFx0PC9WQm94PlxuXHRcdFx0XHQ8L0hCb3g+XG5cdFx0XHQ8L1Jlc3BvbnNpdmVQb3BvdmVyPlxuXHRcdCk7XG5cblx0XHR0aGlzLmFkZERlcGVuZGVudCh1c2VyRGV0YWlsc1BvcG92ZXIpO1xuXG5cdFx0cmV0dXJuIHVzZXJEZXRhaWxzUG9wb3Zlcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIHRvIGNyZWF0ZSBhbmQgb3BlbiB0aGUgbWFuYWdlIGRpYWxvZy5cblx0ICpcblx0ICovXG5cdG1hbmFnZUNvbGxhYm9yYXRpb24gPSAoKTogdm9pZCA9PiB7XG5cdFx0aWYgKCF0aGlzLm1hbmFnZURpYWxvZykge1xuXHRcdFx0dGhpcy5tYW5hZ2VEaWFsb2cgPSB0aGlzLmdldE1hbmFnZURpYWxvZygpO1xuXHRcdH1cblxuXHRcdHRoaXMucmVhZEludml0ZWRVc2VycygpO1xuXHRcdHRoaXMubWFuYWdlRGlhbG9nPy5vcGVuKCk7XG5cdH07XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIG1hbmFnZSBkaWFsb2cgdXNlZCB0byBpbnZpdGUgZnVydGhlciB1c2Vycy5cblx0ICogQHJldHVybnMgVGhlIGNvbnRyb2wgdHJlZVxuXHQgKi9cblx0Z2V0TWFuYWdlRGlhbG9nKCk6IERpYWxvZyB7XG5cdFx0Y29uc3QgbWFuYWdlRGlhbG9nID0gKFxuXHRcdFx0PERpYWxvZ1xuXHRcdFx0XHR0aXRsZT17dGhpcy5nZXRJbnZpdGF0aW9uRGlhbG9nVGl0bGVFeHBCaW5kaW5nKCl9XG5cdFx0XHRcdGhvcml6b250YWxTY3JvbGxpbmc9XCJGYWxzZVwiXG5cdFx0XHRcdHZlcnRpY2FsU2Nyb2xsaW5nPVwiRmFsc2VcIlxuXHRcdFx0XHRjb250ZW50V2lkdGg9XCIzNWVtXCJcblx0XHRcdFx0c3RyZXRjaD17Q29tbW9uSGVscGVyLmlzRGVza3RvcCgpID8gXCJmYWxzZVwiIDogXCJ0cnVlXCJ9XG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0YmVnaW5CdXR0b246IChcblx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0dGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0lOVklUQVRJT05fRElBTE9HX0NPTkZJUk1BVElPTlwiKX1cblx0XHRcdFx0XHRcdFx0cHJlc3M9e3RoaXMuaW52aXRlVXNlcn1cblx0XHRcdFx0XHRcdFx0dHlwZT1cIkVtcGhhc2l6ZWRcIlxuXHRcdFx0XHRcdFx0XHRlbmFibGVkPXt7XG5cdFx0XHRcdFx0XHRcdFx0cGFydHM6IFt7IHBhdGg6IFwiaW50ZXJuYWw+aW52aXRlZFVzZXJzL2xlbmd0aFwiIH0sIHsgcGF0aDogXCJpbnRlcm5hbD5pbnZpdGVkVXNlcnNcIiB9XSxcblx0XHRcdFx0XHRcdFx0XHRmb3JtYXR0ZXI6IHRoaXMuZm9ybWF0SW52aXRlQnV0dG9uXG5cdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0ZW5kQnV0dG9uOiAoXG5cdFx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9JTlZJVEFUSU9OX0RJQUxPR19DQU5DRUxcIil9XG5cdFx0XHRcdFx0XHRcdHByZXNzPXt0aGlzLmNsb3NlTWFuYWdlRGlhbG9nfVxuXHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdGNvbnRlbnQ6IChcblx0XHRcdFx0XHRcdDxWQm94IGNsYXNzPVwic2FwVWlTbWFsbE1hcmdpblwiPlxuXHRcdFx0XHRcdFx0XHQ8VkJveCB3aWR0aD1cIjEwMCVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8TWVzc2FnZVN0cmlwXG5cdFx0XHRcdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfSU5WSVRBVElPTl9NRVNTQUdFU1RSSVBcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlPVwiSW5mb3JtYXRpb25cIlxuXHRcdFx0XHRcdFx0XHRcdFx0c2hvd0ljb249e3RydWV9XG5cdFx0XHRcdFx0XHRcdFx0XHRzaG93Q2xvc2VCdXR0b249e2ZhbHNlfVxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJzYXBVaU1lZGl1bU1hcmdpbkJvdHRvbVwiXG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PC9WQm94PlxuXHRcdFx0XHRcdFx0XHQ8TGFiZWwgdGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0lOVklUQVRJT05fSU5QVVRfTEFCRUxcIil9IHJlcXVpcmVkPXt0cnVlfSAvPlxuXHRcdFx0XHRcdFx0XHR7dGhpcy5nZXRNYW5hZ2VEaWFsb2dBZGRVc2VyU2VjdGlvbigpfVxuXHRcdFx0XHRcdFx0XHR7dGhpcy5nZXRNYW5hZ2VEaWFsb2dVc2VyVGFibGUoKX1cblx0XHRcdFx0XHRcdDwvVkJveD5cblx0XHRcdFx0XHQpXG5cdFx0XHRcdH19XG5cdFx0XHQ8L0RpYWxvZz5cblx0XHQpO1xuXG5cdFx0dGhpcy5hZGREZXBlbmRlbnQobWFuYWdlRGlhbG9nKTtcblx0XHRtYW5hZ2VEaWFsb2cuYmluZEVsZW1lbnQoe1xuXHRcdFx0bW9kZWw6IFwiaW50ZXJuYWxcIixcblx0XHRcdHBhdGg6IFwiY29sbGFib3JhdGlvblwiXG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gbWFuYWdlRGlhbG9nO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybmluZyB0aGUgdGFibGUgY29sdW1uIHdpdGggdGhlIGxpc3Qgb2YgaW52aXRlZCB1c2Vycy5cblx0ICogQHJldHVybnMgVGhlIGNvbnRyb2wgdHJlZVxuXHQgKi9cblx0Z2V0TWFuYWdlRGlhbG9nVXNlclRhYmxlQ29sdW1ucygpOiBHcmlkVGFibGVDb2x1bW5bXSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDw+XG5cdFx0XHRcdDxDb2xsYWJvcmF0aW9uRHJhZnQuR3JpZFRhYmxlQ29sdW1uQ29udHJvbCB3aWR0aD17Q29tbW9uSGVscGVyLmlzRGVza3RvcCgpID8gXCIxMCVcIiA6IFwiM2VtXCJ9PlxuXHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHR0ZW1wbGF0ZTogKFxuXHRcdFx0XHRcdFx0XHQ8SEJveCBhbGlnbkl0ZW1zPVwiQ2VudGVyXCIganVzdGlmeUNvbnRlbnQ9XCJTcGFjZUJldHdlZW5cIj5cblx0XHRcdFx0XHRcdFx0XHQ8QXZhdGFyIGRpc3BsYXlTaXplPVwiWFNcIiBiYWNrZ3JvdW5kQ29sb3I9XCJ7aW50ZXJuYWw+Y29sb3J9XCIgaW5pdGlhbHM9XCJ7aW50ZXJuYWw+aW5pdGlhbHN9XCIgLz5cblx0XHRcdFx0XHRcdFx0PC9IQm94PlxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdH19XG5cdFx0XHRcdDwvQ29sbGFib3JhdGlvbkRyYWZ0LkdyaWRUYWJsZUNvbHVtbkNvbnRyb2w+XG5cdFx0XHRcdDxDb2xsYWJvcmF0aW9uRHJhZnQuR3JpZFRhYmxlQ29sdW1uQ29udHJvbCB3aWR0aD17Q29tbW9uSGVscGVyLmlzRGVza3RvcCgpID8gXCIzNSVcIiA6IFwiNmVtXCJ9PlxuXHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRsYWJlbDogPFRleHQgdGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0lOVklUQVRJT05fVEFCTEVfVVNFUl9DT0xVTU5cIil9IC8+LFxuXHRcdFx0XHRcdFx0dGVtcGxhdGU6IDxUZXh0IHRleHQ9XCJ7aW50ZXJuYWw+bmFtZX1cIiAvPlxuXHRcdFx0XHRcdH19XG5cdFx0XHRcdDwvQ29sbGFib3JhdGlvbkRyYWZ0LkdyaWRUYWJsZUNvbHVtbkNvbnRyb2w+XG5cdFx0XHRcdDxDb2xsYWJvcmF0aW9uRHJhZnQuR3JpZFRhYmxlQ29sdW1uQ29udHJvbCB3aWR0aD17Q29tbW9uSGVscGVyLmlzRGVza3RvcCgpID8gXCI0NiVcIiA6IFwiOWVtXCJ9PlxuXHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRsYWJlbDogPFRleHQgdGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0lOVklUQVRJT05fVEFCTEVfVVNFUl9TVEFUVVNfQ09MVU1OXCIpfSAvPixcblx0XHRcdFx0XHRcdHRlbXBsYXRlOiAoXG5cdFx0XHRcdFx0XHRcdDxPYmplY3RTdGF0dXNcblx0XHRcdFx0XHRcdFx0XHRzdGF0ZT17eyBwYXRoOiBcImludGVybmFsPnN0YXR1c1wiLCBmb3JtYXR0ZXI6IHRoaXMuZm9ybWF0VXNlclN0YXR1c0NvbG9yIH19XG5cdFx0XHRcdFx0XHRcdFx0dGV4dD17eyBwYXRoOiBcImludGVybmFsPnN0YXR1c1wiLCBmb3JtYXR0ZXI6IHRoaXMuZm9ybWF0VXNlclN0YXR1cyB9fVxuXHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdH19XG5cdFx0XHRcdDwvQ29sbGFib3JhdGlvbkRyYWZ0LkdyaWRUYWJsZUNvbHVtbkNvbnRyb2w+XG5cdFx0XHRcdDxDb2xsYWJvcmF0aW9uRHJhZnQuR3JpZFRhYmxlQ29sdW1uQ29udHJvbCB3aWR0aD17Q29tbW9uSGVscGVyLmlzRGVza3RvcCgpID8gXCI4JVwiIDogXCIzZW1cIn0+XG5cdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdHRlbXBsYXRlOiAoXG5cdFx0XHRcdFx0XHRcdDxIQm94PlxuXHRcdFx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0XHRcdGljb249XCJzYXAtaWNvbjovL2RlY2xpbmVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZT1cIlRyYW5zcGFyZW50XCJcblx0XHRcdFx0XHRcdFx0XHRcdHByZXNzPXt0aGlzLnJlbW92ZVVzZXJ9XG5cdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPVwiez0gISEke2ludGVybmFsPnRyYW5zaWVudH0gfVwiXG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PC9IQm94PlxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdH19XG5cdFx0XHRcdDwvQ29sbGFib3JhdGlvbkRyYWZ0LkdyaWRUYWJsZUNvbHVtbkNvbnRyb2w+XG5cdFx0XHQ8Lz5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIHRhYmxlIHdpdGggdGhlIGxpc3Qgb2YgaW52aXRlZCB1c2Vycy5cblx0ICogQHJldHVybnMgVGhlIGNvbnRyb2wgdHJlZVxuXHQgKi9cblx0Z2V0TWFuYWdlRGlhbG9nVXNlclRhYmxlKCk6IFRhYmxlIHwgdW5kZWZpbmVkIHtcblx0XHR0aGlzLm1hbmFnZURpYWxvZ1VzZXJUYWJsZSA9IChcblx0XHRcdDxDb2xsYWJvcmF0aW9uRHJhZnQuR3JpZFRhYmxlQ29udHJvbFxuXHRcdFx0XHR3aWR0aD1cIjEwMCVcIlxuXHRcdFx0XHRyb3dzPXt7IHBhdGg6IFwiaW50ZXJuYWw+aW52aXRlZFVzZXJzXCIgfX1cblx0XHRcdFx0dmlzaWJsZVJvd0NvdW50PXtDb21tb25IZWxwZXIuaXNEZXNrdG9wKCkgPyBcIjVcIiA6IFwiM1wifVxuXHRcdFx0XHR2aXNpYmxlUm93Q291bnRNb2RlPVwiRml4ZWRcIlxuXHRcdFx0XHRzZWxlY3Rpb25Nb2RlPVwiTm9uZVwiXG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0Y29sdW1uczogdGhpcy5nZXRNYW5hZ2VEaWFsb2dVc2VyVGFibGVDb2x1bW5zKClcblx0XHRcdFx0fX1cblx0XHRcdDwvQ29sbGFib3JhdGlvbkRyYWZ0LkdyaWRUYWJsZUNvbnRyb2w+XG5cdFx0KTtcblx0XHRyZXR1cm4gdGhpcy5tYW5hZ2VEaWFsb2dVc2VyVGFibGU7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgc2VjdGlvbiBvbiB0aGUgZGlhbG9nIHJlbGF0ZWQgdG8gdGhlIHVzZXIgZmllbGQuXG5cdCAqIEByZXR1cm5zIFRoZSBjb250cm9sIHRyZWVcblx0ICovXG5cdGdldE1hbmFnZURpYWxvZ0FkZFVzZXJTZWN0aW9uKCk6IEhCb3gge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8SEJveCBjbGFzcz1cInNhcFVpTWVkaXVtTWFyZ2luQm90dG9tXCIgd2lkdGg9XCIxMDAlXCI+XG5cdFx0XHRcdDxGaWVsZFxuXHRcdFx0XHRcdHZhbHVlPVwie2ludGVybmFsPlVzZXJJRH1cIlxuXHRcdFx0XHRcdGFkZGl0aW9uYWxWYWx1ZT1cIntpbnRlcm5hbD5Vc2VyRGVzY3JpcHRpb259XCJcblx0XHRcdFx0XHRkaXNwbGF5PVwiRGVzY3JpcHRpb25WYWx1ZVwiXG5cdFx0XHRcdFx0d2lkdGg9XCIyMGVtXCJcblx0XHRcdFx0XHRyZXF1aXJlZD17dHJ1ZX1cblx0XHRcdFx0XHR2YWx1ZUhlbHA9XCJ1c2VyVmFsdWVIZWxwXCJcblx0XHRcdFx0XHRwbGFjZWhvbGRlcj17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0lOVklUQVRJT05fSU5QVVRfUExBQ0VIT0xERVJcIil9XG5cdFx0XHRcdFx0Y2hhbmdlPXt0aGlzLmFkZFVzZXJGaWVsZENoYW5nZWR9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0ZGVwZW5kZW50czogKFxuXHRcdFx0XHRcdFx0XHQ8VmFsdWVIZWxwIGlkPVwidXNlclZhbHVlSGVscFwiIGRlbGVnYXRlPXt0aGlzLmdldFZhbHVlSGVscERlbGVnYXRlKCl9IHZhbGlkYXRlSW5wdXQ9e3RydWV9PlxuXHRcdFx0XHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlYWhlYWQ6IChcblx0XHRcdFx0XHRcdFx0XHRcdFx0PE1EQ1BvcG92ZXI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PE1UYWJsZSBjYXNlU2Vuc2l0aXZlPVwidHJ1ZVwiIHVzZUFzVmFsdWVIZWxwPVwiZmFsc2VcIiAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L01EQ1BvcG92ZXI+XG5cdFx0XHRcdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0XHRcdFx0ZGlhbG9nOiA8TURDRGlhbG9nIC8+XG5cdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0PC9WYWx1ZUhlbHA+XG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0fX1cblx0XHRcdFx0PC9GaWVsZD5cblx0XHRcdDwvSEJveD5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEZvcm1hdHRlciB0byBzZXQgdGhlIHVzZXIgc3RhdHVzIGRlcGVuZGluZyBvbiB0aGUgZWRpdGluZyBzdGF0dXMuXG5cdCAqIEBwYXJhbSB1c2VyU3RhdHVzIFRoZSBlZGl0aW5nIHN0YXR1cyBvZiB0aGUgdXNlclxuXHQgKiBAcmV0dXJucyBUaGUgdXNlciBzdGF0dXNcblx0ICovXG5cdGZvcm1hdFVzZXJTdGF0dXMgPSAodXNlclN0YXR1czogVXNlclN0YXR1cyk6IHN0cmluZyA9PiB7XG5cdFx0c3dpdGNoICh1c2VyU3RhdHVzKSB7XG5cdFx0XHRjYXNlIFVzZXJTdGF0dXMuQ3VycmVudGx5RWRpdGluZzpcblx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9VU0VSX0NVUlJFTlRMWV9FRElUSU5HXCIpO1xuXHRcdFx0Y2FzZSBVc2VyU3RhdHVzLkNoYW5nZXNNYWRlOlxuXHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX1VTRVJfQ0hBTkdFU19NQURFXCIpO1xuXHRcdFx0Y2FzZSBVc2VyU3RhdHVzLk5vQ2hhbmdlc01hZGU6XG5cdFx0XHRcdHJldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfVVNFUl9OT19DSEFOR0VTX01BREVcIik7XG5cdFx0XHRjYXNlIFVzZXJTdGF0dXMuTm90WWV0SW52aXRlZDpcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHJldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfVVNFUl9OT1RfWUVUX0lOVklURURcIik7XG5cdFx0fVxuXHR9O1xuXG5cdC8qKlxuXHQgKiBGb3JtYXR0ZXIgdG8gc2V0IHRoZSB1c2VyIGNvbG9yIGRlcGVuZGluZyBvbiB0aGUgZWRpdGluZyBzdGF0dXMuXG5cdCAqIEBwYXJhbSB1c2VyU3RhdHVzIFRoZSBlZGl0aW5nIHN0YXR1cyBvZiB0aGUgdXNlclxuXHQgKiBAcmV0dXJucyBUaGUgdXNlciBzdGF0dXMgY29sb3Jcblx0ICovXG5cdGZvcm1hdFVzZXJTdGF0dXNDb2xvcih1c2VyU3RhdHVzOiBVc2VyU3RhdHVzKTogVmFsdWVTdGF0ZSB7XG5cdFx0c3dpdGNoICh1c2VyU3RhdHVzKSB7XG5cdFx0XHRjYXNlIFVzZXJTdGF0dXMuQ3VycmVudGx5RWRpdGluZzpcblx0XHRcdFx0cmV0dXJuIFZhbHVlU3RhdGUuU3VjY2Vzcztcblx0XHRcdGNhc2UgVXNlclN0YXR1cy5DaGFuZ2VzTWFkZTpcblx0XHRcdFx0cmV0dXJuIFZhbHVlU3RhdGUuV2FybmluZztcblx0XHRcdGNhc2UgVXNlclN0YXR1cy5Ob0NoYW5nZXNNYWRlOlxuXHRcdFx0Y2FzZSBVc2VyU3RhdHVzLk5vdFlldEludml0ZWQ6XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRyZXR1cm4gVmFsdWVTdGF0ZS5JbmZvcm1hdGlvbjtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRm9ybWF0dGVyIHRvIGVuYWJsZSB0aGUgaW52aXRlIGJ1dHRvbiBkZXBlbmRpbmcgb24gdGhlIGludml0ZWQgdXNlcnMgc3RhdHVzLlxuXHQgKiBAcGFyYW0gbmJVc2VycyBOdW1iZXIgb2YgdXNlcnNcblx0ICogQHBhcmFtIGludml0ZWRVc2VycyBMaXN0IG9mIHRoZSBpbnZpdGVkIHVzZXJzXG5cdCAqIEByZXR1cm5zIFRydWUgb3IgRmFsc2Vcblx0ICovXG5cdGZvcm1hdEludml0ZUJ1dHRvbihuYlVzZXJzOiBJbnRlZ2VyIHwgdW5kZWZpbmVkLCBpbnZpdGVkVXNlcnM6IFVzZXJbXSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuXHRcdGlmICghbmJVc2Vycykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRyZXR1cm4gISFpbnZpdGVkVXNlcnM/LnNvbWUoKHVzZXIpID0+IHVzZXIuc3RhdHVzID09PSAwKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGQgdGhlIGFkZGVkIHVzZXIgdG8gdGhlIGxpc3Qgb2YgaW52aXRlZCB1c2Vycy5cblx0ICogQHBhcmFtIHVzZXJJbnB1dCBUaGUgdXNlciB0byBiZSBpbnZpdGVkXG5cdCAqIEBwYXJhbSBpbnZpdGVkVXNlcnMgVGhlIHVzZXJzIGFscmVhZHkgaW52aXRlZFxuXHQgKiBAcGFyYW0gbmV3VXNlciBUaGUgdXNlciB0byBiZSBpbnZpdGVkXG5cdCAqL1xuXHRhZGRVc2VyKHVzZXJJbnB1dDogRmllbGQsIGludml0ZWRVc2VyczogVXNlcltdLCBuZXdVc2VyOiBVc2VyKTogdm9pZCB7XG5cdFx0Y29uc3QgaW50ZXJuYWxNb2RlbENvbnRleHQgPSB1c2VySW5wdXQuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRjb25zdCBhY3RpdmVVc2VycyA9ICh1c2VySW5wdXQuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKSBhcyBKU09OTW9kZWwpLmdldFByb3BlcnR5KFwiL2NvbGxhYm9yYXRpb24vYWN0aXZlVXNlcnNcIik7XG5cdFx0bmV3VXNlci5uYW1lID0gbmV3VXNlci5uYW1lIHx8IG5ld1VzZXIuaWQ7XG5cdFx0bmV3VXNlci5pbml0aWFscyA9IENvbGxhYm9yYXRpb25VdGlscy5mb3JtYXRJbml0aWFscyhuZXdVc2VyLm5hbWUpO1xuXHRcdG5ld1VzZXIuY29sb3IgPSBDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0VXNlckNvbG9yKG5ld1VzZXIuaWQsIGFjdGl2ZVVzZXJzLCBpbnZpdGVkVXNlcnMpO1xuXHRcdG5ld1VzZXIudHJhbnNpZW50ID0gdHJ1ZTtcblx0XHRuZXdVc2VyLnN0YXR1cyA9IFVzZXJTdGF0dXMuTm90WWV0SW52aXRlZDtcblx0XHRpbnZpdGVkVXNlcnMucHVzaChuZXdVc2VyKTtcblx0XHRpbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcImludml0ZWRVc2Vyc1wiLCBpbnZpdGVkVXNlcnMpO1xuXHRcdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiVXNlcklEXCIsIFwiXCIpO1xuXHRcdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiVXNlckRlc2NyaXB0aW9uXCIsIFwiXCIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIHZhbHVlIHN0YXRlIG9mIHRoZSB1c2VyIGZpZWxkIHdoZW5ldmVyIGNoYW5nZWQuXG5cdCAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnQgb2JqZWN0IG9mIHRoZSB1c2VyIGlucHV0XG5cdCAqIEByZXR1cm5zIFByb21pc2UgdGhhdCBpcyByZXNvbHZlZCBvbmNlIHRoZSB2YWx1ZSBzdGF0ZSB3YXMgc2V0LlxuXHQgKi9cblx0YWRkVXNlckZpZWxkQ2hhbmdlZCA9IGFzeW5jIChldmVudDogRmllbGQkQ2hhbmdlRXZlbnQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRjb25zdCB1c2VySW5wdXQgPSBldmVudC5nZXRTb3VyY2UoKTtcblx0XHRyZXR1cm4gZXZlbnRcblx0XHRcdC5nZXRQYXJhbWV0ZXIoXCJwcm9taXNlXCIpXG5cdFx0XHQ/LnRoZW4oXG5cdFx0XHRcdGZ1bmN0aW9uICh0aGlzOiBDb2xsYWJvcmF0aW9uRHJhZnQsIG5ld1VzZXJJZDogc3RyaW5nKTogdm9pZCB7XG5cdFx0XHRcdFx0Y29uc3QgaW50ZXJuYWxNb2RlbENvbnRleHQgPSB1c2VySW5wdXQuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRcdFx0XHRjb25zdCBpbnZpdGVkVXNlcnM6IFVzZXJbXSA9IGludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KFwiaW52aXRlZFVzZXJzXCIpIHx8IFtdO1xuXHRcdFx0XHRcdGNvbnN0IG5ld1VzZXI6IFVzZXIgPSB7XG5cdFx0XHRcdFx0XHRpZDogaW50ZXJuYWxNb2RlbENvbnRleHQ/LmdldFByb3BlcnR5KFwiVXNlcklEXCIpLFxuXHRcdFx0XHRcdFx0bmFtZTogaW50ZXJuYWxNb2RlbENvbnRleHQ/LmdldFByb3BlcnR5KFwiVXNlckRlc2NyaXB0aW9uXCIpXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRpZiAoaW52aXRlZFVzZXJzLmZpbmRJbmRleCgodXNlcikgPT4gdXNlci5pZCA9PT0gbmV3VXNlcklkKSA+IC0xKSB7XG5cdFx0XHRcdFx0XHR1c2VySW5wdXQuc2V0VmFsdWVTdGF0ZShcIkVycm9yXCIpO1xuXHRcdFx0XHRcdFx0dXNlcklucHV0LnNldFZhbHVlU3RhdGVUZXh0KHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9JTlZJVEFUSU9OX1VTRVJfRVJST1JcIikpO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRcdFx0XHQhKFxuXHRcdFx0XHRcdFx0XHRpbnZpdGVkVXNlcnMuZmluZEluZGV4KCh1c2VyKSA9PiB1c2VyLmlkID09PSBuZXdVc2VyLmlkKSA+IC0xIHx8XG5cdFx0XHRcdFx0XHRcdChuZXdVc2VyLmlkID09PSBuZXdVc2VyLm5hbWUgJiYgbmV3VXNlci5pZCA9PT0gXCJcIilcblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdHRoaXMuYWRkVXNlcih1c2VySW5wdXQsIGludml0ZWRVc2VycywgbmV3VXNlcik7XG5cdFx0XHRcdFx0XHR1c2VySW5wdXQuc2V0VmFsdWVTdGF0ZShcIk5vbmVcIik7XG5cdFx0XHRcdFx0XHR1c2VySW5wdXQuc2V0VmFsdWVTdGF0ZVRleHQoXCJcIik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LmJpbmQodGhpcylcblx0XHRcdClcblx0XHRcdC5jYXRjaChcblx0XHRcdFx0ZnVuY3Rpb24gKHRoaXM6IENvbGxhYm9yYXRpb25EcmFmdCk6IHZvaWQge1xuXHRcdFx0XHRcdHVzZXJJbnB1dC5zZXRWYWx1ZVN0YXRlKFwiV2FybmluZ1wiKTtcblx0XHRcdFx0XHR1c2VySW5wdXQuc2V0VmFsdWVTdGF0ZVRleHQodGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0lOVklUQVRJT05fVVNFUl9OT1RfRk9VTkRcIikpO1xuXHRcdFx0XHR9LmJpbmQodGhpcylcblx0XHRcdCk7XG5cdH07XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgdG8gcmVtb3ZlIGEgdXNlciBmcm9tIHRoZSBsaXN0IG9mIGludml0ZWQgdXNlci5cblx0ICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCBvYmplY3Qgb2YgdGhlIHJlbW92ZSBidXR0b25cblx0ICovXG5cdHJlbW92ZVVzZXIoZXZlbnQ6IEV2ZW50PHt9LCBCdXR0b24+KTogdm9pZCB7XG5cdFx0Y29uc3QgaXRlbSA9IGV2ZW50LmdldFNvdXJjZSgpO1xuXHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gaXRlbT8uZ2V0QmluZGluZ0NvbnRleHQoXCJwYWdlSW50ZXJuYWxcIik7XG5cdFx0Y29uc3QgZGVsZXRlVXNlcklEID0gaXRlbT8uZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKT8uZ2V0UHJvcGVydHkoXCJpZFwiKTtcblx0XHRsZXQgaW52aXRlZFVzZXJzOiBVc2VyW10gPSBpbnRlcm5hbE1vZGVsQ29udGV4dD8uZ2V0UHJvcGVydHkoXCJjb2xsYWJvcmF0aW9uL2ludml0ZWRVc2Vyc1wiKTtcblx0XHRpbnZpdGVkVXNlcnMgPSBpbnZpdGVkVXNlcnMuZmlsdGVyKCh1c2VyKSA9PiB1c2VyLmlkICE9PSBkZWxldGVVc2VySUQpO1xuXHRcdGludGVybmFsTW9kZWxDb250ZXh0Py5zZXRQcm9wZXJ0eShcImNvbGxhYm9yYXRpb24vaW52aXRlZFVzZXJzXCIsIGludml0ZWRVc2Vycyk7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbCB0aGUgc2hhcmUgYWN0aW9uIHRvIHVwZGF0ZSB0aGUgbGlzdCBvZiBpbnZpdGVkIHVzZXJzLlxuXHQgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50IG9iamVjdCBvZiB0aGUgaW52aXRlIGJ1dHRvblxuXHQgKi9cblx0aW52aXRlVXNlciA9IGFzeW5jIChldmVudDogRXZlbnQ8e30sIEJ1dHRvbj4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRjb25zdCB1c2VyczogQmFja2VuZFVzZXJbXSA9IFtdLFxuXHRcdFx0bmV3bHlJbnZpdGVkVXNlcnM6IHN0cmluZ1tdID0gW107XG5cdFx0Y29uc3Qgc291cmNlID0gZXZlbnQuZ2V0U291cmNlKCk7XG5cdFx0Y29uc3QgYmluZGluZ0NvbnRleHQgPSBzb3VyY2UuZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBDb250ZXh0O1xuXHRcdGNvbnN0IGNvbnRleHRzID0gKHRoaXMubWFuYWdlRGlhbG9nVXNlclRhYmxlPy5nZXRCaW5kaW5nKFwicm93c1wiKSBhcyBPRGF0YUxpc3RCaW5kaW5nKS5nZXRDb250ZXh0cygpO1xuXHRcdGNvbnRleHRzLmZvckVhY2goZnVuY3Rpb24gKGNvbnRleHQpIHtcblx0XHRcdHVzZXJzLnB1c2goe1xuXHRcdFx0XHRVc2VySUQ6IGNvbnRleHQuZ2V0UHJvcGVydHkoXCJpZFwiKSxcblx0XHRcdFx0VXNlckFjY2Vzc1JvbGU6IFwiT1wiIC8vIEZvciBub3cgYWNjb3JkaW5nIHRvIFVYIGV2ZXJ5IHVzZXIgcmV0cmlldmVzIHRoZSBvd25lciByb2xlXG5cdFx0XHR9KTtcblx0XHRcdGlmIChjb250ZXh0LmdldFByb3BlcnR5KFwic3RhdHVzXCIpID09PSBVc2VyU3RhdHVzLk5vdFlldEludml0ZWQpIHtcblx0XHRcdFx0bmV3bHlJbnZpdGVkVXNlcnMucHVzaChjb250ZXh0LmdldFByb3BlcnR5KFwiaWRcIikpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dHJ5IHtcblx0XHRcdC8vIFdlIHJlcXVlc3QgdGhlIG51bWJlciBvZiBpbnZpdGVkIHVzZXJzIGFmdGVyIHRoZSBzaGFyZSBhY3Rpb24gdG8gc2VlIGhvdyBtYW55IHVzZXJzIHdlcmUgcmVhbGx5IGludml0ZWRcblx0XHRcdGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbc2hhcmVPYmplY3QoYmluZGluZ0NvbnRleHQsIHVzZXJzKSwgdGhpcy5yZXF1ZXN0SW52aXRlZFVzZXJzSW5EcmFmdCgpXSk7XG5cdFx0XHRjb25zdCBuZXdVc2VyczogQ29udGV4dFtdID0gW107XG5cdFx0XHRyZXN1bHRzWzFdLmZvckVhY2goKGludml0ZWRVc2VyKSA9PiB7XG5cdFx0XHRcdGlmIChuZXdseUludml0ZWRVc2Vycy5pbmNsdWRlcyhpbnZpdGVkVXNlci5nZXRQcm9wZXJ0eShcIlVzZXJJRFwiKSkpIHtcblx0XHRcdFx0XHRuZXdVc2Vycy5wdXNoKGludml0ZWRVc2VyKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRjb25zdCBtZXNzYWdlSGFuZGxlciA9IHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKSEubWVzc2FnZUhhbmRsZXI7XG5cdFx0XHRhd2FpdCBtZXNzYWdlSGFuZGxlci5zaG93TWVzc2FnZURpYWxvZygpO1xuXG5cdFx0XHRzd2l0Y2ggKG5ld1VzZXJzLmxlbmd0aCkge1xuXHRcdFx0XHRjYXNlIDA6XG5cdFx0XHRcdFx0TWVzc2FnZVRvYXN0LnNob3coXG5cdFx0XHRcdFx0XHR0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfSU5WSVRBVElPTl9TVUNDRVNTX1RPQVNUX05PX1VTRVJcIiwgW1xuXHRcdFx0XHRcdFx0XHR0aGlzLmdldFNoYXJlZEl0ZW1OYW1lKGJpbmRpbmdDb250ZXh0KVxuXHRcdFx0XHRcdFx0XSlcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIDE6XG5cdFx0XHRcdFx0TWVzc2FnZVRvYXN0LnNob3coXG5cdFx0XHRcdFx0XHR0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfSU5WSVRBVElPTl9TVUNDRVNTX1RPQVNUXCIsIFt0aGlzLmdldFNoYXJlZEl0ZW1OYW1lKGJpbmRpbmdDb250ZXh0KV0pXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRNZXNzYWdlVG9hc3Quc2hvdyhcblx0XHRcdFx0XHRcdHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9JTlZJVEFUSU9OX1NVQ0NFU1NfVE9BU1RfUExVUkFMXCIsIFtcblx0XHRcdFx0XHRcdFx0bmV3VXNlcnMubGVuZ3RoLnRvU3RyaW5nKCksXG5cdFx0XHRcdFx0XHRcdHRoaXMuZ2V0U2hhcmVkSXRlbU5hbWUoYmluZGluZ0NvbnRleHQpXG5cdFx0XHRcdFx0XHRdKVxuXHRcdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRNZXNzYWdlVG9hc3Quc2hvdyh0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfSU5WSVRBVElPTl9GQUlMRURfVE9BU1RcIikpO1xuXHRcdH1cblx0XHR0aGlzLmNsb3NlTWFuYWdlRGlhbG9nKCk7XG5cdH07XG5cblx0LyoqXG5cdCAqIEZldGNoZXMgdGhlIGxpc3Qgb2YgdXNlcnMgdGhhdCBhcmUgYWxyZWFkeSBpbnZpdGVkIGluIHRoZSBkcmFmdC5cblx0ICogQHJldHVybnMgUHJvbWlzZSB3aXRoIHRoZSBsaXN0IG9mIHVzZXIgY29udGV4dHMuXG5cdCAqL1xuXHRwcml2YXRlIGFzeW5jIHJlcXVlc3RJbnZpdGVkVXNlcnNJbkRyYWZ0KCk6IFByb21pc2U8Q29udGV4dFtdPiB7XG5cdFx0Y29uc3QgbW9kZWwgPSB0aGlzLmdldE1vZGVsKCk7XG5cdFx0Y29uc3QgcGFyYW1ldGVycyA9IHtcblx0XHRcdCRzZWxlY3Q6IFwiVXNlcklELFVzZXJEZXNjcmlwdGlvbixVc2VyRWRpdGluZ1N0YXRlXCIsXG5cdFx0XHQkJGdyb3VwSWQ6IFwiJGF1dG8uV29ya2Vyc1wiXG5cdFx0fTtcblx0XHRjb25zdCBpbnZpdGVkVXNlckxpc3QgPSBtb2RlbD8uYmluZExpc3QoXG5cdFx0XHRgJHt0aGlzLmdldEJpbmRpbmdDb250ZXh0KCk/LmdldFBhdGgoKX0vRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEvRHJhZnRBZG1pbmlzdHJhdGl2ZVVzZXJgLFxuXHRcdFx0dW5kZWZpbmVkLFxuXHRcdFx0W10sXG5cdFx0XHRbXSxcblx0XHRcdHBhcmFtZXRlcnNcblx0XHQpIGFzIE9EYXRhTGlzdEJpbmRpbmc7XG5cblx0XHQvLyBmb3Igbm93IHdlIHNldCBhIGxpbWl0IHRvIDEwMC4gdGhlcmUgc2hvdWxkbid0IGJlIG1vcmUgdGhhbiBhIGZld1xuXHRcdHJldHVybiBpbnZpdGVkVXNlckxpc3QucmVxdWVzdENvbnRleHRzKDAsIDEwMCk7XG5cdH1cblxuXHQvKipcblx0ICogUmVhZHMgdGhlIGN1cnJlbnRseSBpbnZpdGVkIHVzZXIgYW5kIHN0b3JlIGl0IGluIHRoZSBpbnRlcm5hbCBtb2RlbC5cblx0ICogQHJldHVybnMgUHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIG9uY2UgdGhlIHVzZXJzIGFyZSByZWFkLlxuXHQgKi9cblx0cmVhZEludml0ZWRVc2VycyA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsQ29udGV4dCA9IHRoaXMuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBjdXJyZW50VXNlckxpc3QgPSBhd2FpdCB0aGlzLnJlcXVlc3RJbnZpdGVkVXNlcnNJbkRyYWZ0KCk7XG5cdFx0XHRjb25zdCBpbnZpdGVkVXNlcnM6IFVzZXJbXSA9IFtdO1xuXHRcdFx0Y29uc3QgYWN0aXZlVXNlcnMgPSB0aGlzLmdldE1vZGVsKFwiaW50ZXJuYWxcIik/LmdldFByb3BlcnR5KFwiL2NvbGxhYm9yYXRpb24vYWN0aXZlVXNlcnNcIikgfHwgW107XG5cdFx0XHRjb25zdCBtZSA9IENvbGxhYm9yYXRpb25VdGlscy5nZXRNZSh0aGlzLmdldEFwcENvbXBvbmVudCgpISk7XG5cdFx0XHRsZXQgdXNlclN0YXR1czogVXNlclN0YXR1cztcblx0XHRcdGlmIChjdXJyZW50VXNlckxpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRjdXJyZW50VXNlckxpc3QuZm9yRWFjaCgodXNlckNvbnRleHQpID0+IHtcblx0XHRcdFx0XHRjb25zdCB1c2VyRGF0YSA9IHVzZXJDb250ZXh0LmdldE9iamVjdCgpIGFzIEJhY2tlbmRVc2VyO1xuXHRcdFx0XHRcdGNvbnN0IGlzTWU6IGJvb2xlYW4gPSBtZT8uaWQgPT09IHVzZXJEYXRhLlVzZXJJRDtcblx0XHRcdFx0XHRjb25zdCBpc0FjdGl2ZSA9IGFjdGl2ZVVzZXJzLmZpbmQoKHU6IFVzZXIpID0+IHUuaWQgPT09IHVzZXJEYXRhLlVzZXJJRCk7XG5cdFx0XHRcdFx0bGV0IHVzZXJEZXNjcmlwdGlvbiA9IHVzZXJEYXRhLlVzZXJEZXNjcmlwdGlvbiB8fCB1c2VyRGF0YS5Vc2VySUQ7XG5cdFx0XHRcdFx0Y29uc3QgaW5pdGlhbHMgPSBDb2xsYWJvcmF0aW9uVXRpbHMuZm9ybWF0SW5pdGlhbHModXNlckRlc2NyaXB0aW9uKTtcblx0XHRcdFx0XHR1c2VyRGVzY3JpcHRpb24gPSBpc01lID8gYCR7Q29sbGFib3JhdGlvblV0aWxzLmdldFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9NRVwiLCB1c2VyRGVzY3JpcHRpb24pfWAgOiB1c2VyRGVzY3JpcHRpb247XG5cdFx0XHRcdFx0aWYgKGlzQWN0aXZlKSB7XG5cdFx0XHRcdFx0XHR1c2VyU3RhdHVzID0gVXNlclN0YXR1cy5DdXJyZW50bHlFZGl0aW5nO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAodXNlckRhdGEuVXNlckVkaXRpbmdTdGF0ZSA9PT0gVXNlckVkaXRpbmdTdGF0ZS5JblByb2dyZXNzKSB7XG5cdFx0XHRcdFx0XHR1c2VyU3RhdHVzID0gVXNlclN0YXR1cy5DaGFuZ2VzTWFkZTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dXNlclN0YXR1cyA9IFVzZXJTdGF0dXMuTm9DaGFuZ2VzTWFkZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRjb25zdCB1c2VyOiBVc2VyID0ge1xuXHRcdFx0XHRcdFx0aWQ6IHVzZXJEYXRhLlVzZXJJRCxcblx0XHRcdFx0XHRcdG5hbWU6IHVzZXJEZXNjcmlwdGlvbixcblx0XHRcdFx0XHRcdHN0YXR1czogdXNlclN0YXR1cyxcblx0XHRcdFx0XHRcdGNvbG9yOiBDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0VXNlckNvbG9yKHVzZXJEYXRhLlVzZXJJRCwgYWN0aXZlVXNlcnMsIGludml0ZWRVc2VycyksXG5cdFx0XHRcdFx0XHRpbml0aWFsczogaW5pdGlhbHMsXG5cdFx0XHRcdFx0XHRtZTogaXNNZVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0aW52aXRlZFVzZXJzLnB1c2godXNlcik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly9ub3QgeWV0IHNoYXJlZCwganVzdCBhZGQgbWVcblx0XHRcdFx0aW52aXRlZFVzZXJzLnB1c2gobWUpO1xuXHRcdFx0fVxuXHRcdFx0aW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJjb2xsYWJvcmF0aW9uL1VzZXJJRFwiLCBcIlwiKTtcblx0XHRcdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiY29sbGFib3JhdGlvbi9Vc2VyRGVzY3JpcHRpb25cIiwgXCJcIik7XG5cdFx0XHRpbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcImNvbGxhYm9yYXRpb24vaW52aXRlZFVzZXJzXCIsIGludml0ZWRVc2Vycyk7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0TWVzc2FnZVRvYXN0LnNob3codGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX1JFQURJTkdfVVNFUl9GQUlMRURcIikpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcblx0ICogR2V0IHRoZSBuYW1lIG9mIHRoZSBvYmplY3QgdG8gYmUgc2hhcmVkLlxuXHQgKiBAcGFyYW0gYmluZGluZ0NvbnRleHQgVGhlIGNvbnRleHQgb2YgdGhlIHBhZ2UuXG5cdCAqIEByZXR1cm5zIFRoZSBuYW1lIG9mIHRoZSBvYmplY3QgdG8gYmUgc2hhcmVkLlxuXHQgKi9cblx0Z2V0U2hhcmVkSXRlbU5hbWUoYmluZGluZ0NvbnRleHQ6IENvbnRleHQpOiBzdHJpbmcge1xuXHRcdGNvbnN0IGhlYWRlckluZm8gPSB0aGlzLmNvbnRleHRPYmplY3Q/LnRhcmdldEVudGl0eVR5cGUuYW5ub3RhdGlvbnMuVUk/LkhlYWRlckluZm87XG5cdFx0bGV0IHNoYXJlZEl0ZW1OYW1lID0gXCJcIjtcblx0XHRjb25zdCB0aXRsZSA9IGhlYWRlckluZm8/LlRpdGxlO1xuXHRcdGlmIChcblx0XHRcdHRpdGxlICYmXG5cdFx0XHRpc0Fubm90YXRpb25PZlR5cGU8RGF0YUZpZWxkVHlwZXM+KHRpdGxlLCBbXG5cdFx0XHRcdFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZCxcblx0XHRcdFx0VUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aEFjdGlvbixcblx0XHRcdFx0VUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aEFjdGlvbkdyb3VwLFxuXHRcdFx0XHRVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoTmF2aWdhdGlvblBhdGgsXG5cdFx0XHRcdFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhJbnRlbnRCYXNlZE5hdmlnYXRpb24sXG5cdFx0XHRcdFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhVcmwsXG5cdFx0XHRcdFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhOYXZpZ2F0aW9uUGF0aFxuXHRcdFx0XSlcblx0XHQpIHtcblx0XHRcdHNoYXJlZEl0ZW1OYW1lID0gaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24odGl0bGUuVmFsdWUpID8gYmluZGluZ0NvbnRleHQuZ2V0UHJvcGVydHkodGl0bGUuVmFsdWUucGF0aCkgOiB0aXRsZS5WYWx1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIHNoYXJlZEl0ZW1OYW1lIHx8IChoZWFkZXJJbmZvPy5UeXBlTmFtZSBhcyB1bmtub3duIGFzIHN0cmluZykgfHwgXCJcIjtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgdGhlIGRlbGVnYXRlIHBheWxvYWQgZm9yIHRoZSB1c2VyIGZpZWxkIHZhbHVlIGhlbHAuXG5cdCAqIEByZXR1cm5zIFRoZSB2YWx1ZSBoZWxwIGRlbGVnYXRlIHBheWxvYWRcblx0ICovXG5cdGdldFZhbHVlSGVscERlbGVnYXRlKCk6IHsgbmFtZTogc3RyaW5nOyBwYXlsb2FkOiBWYWx1ZUhlbHBQYXlsb2FkIH0ge1xuXHRcdC8vIFRoZSBub24gbnVsbCBhc3NlcnRpb24gaXMgc2FmZSBoZXJlLCBiZWNhdXNlIHRoZSBhY3Rpb24gaXMgb25seSBhdmFpbGFibGUgaWYgdGhlIGFubm90YXRpb24gaXMgcHJlc2VudFxuXHRcdGNvbnN0IGFjdGlvbk5hbWUgPSAoXG5cdFx0XHR0aGlzLmNvbnRleHRPYmplY3Q/LnRhcmdldEVudGl0eVNldCEuYW5ub3RhdGlvbnMuQ29tbW9uIGFzIEVudGl0eVNldEFubm90YXRpb25zX0NvbW1vblxuXHRcdCkuRHJhZnRSb290IS5TaGFyZUFjdGlvbiEudG9TdHJpbmcoKTtcblx0XHQvLyBXZSBhcmUgYWxzbyBzdXJlIHRoYXQgdGhlIGFjdGlvbiBleGlzdFxuXHRcdGNvbnN0IGFjdGlvbiA9IHRoaXMuY29udGV4dE9iamVjdD8udGFyZ2V0RW50aXR5VHlwZS5yZXNvbHZlUGF0aChhY3Rpb25OYW1lKSBhcyBWb2NhYnVsYXJ5QWN0aW9uO1xuXHRcdC8vIEJ5IGRlZmluaXRpb24gdGhlIGFjdGlvbiBoYXMgYSBwYXJhbWV0ZXIgd2l0aCB0aGUgbmFtZSBcIlVzZXJzXCJcblx0XHRjb25zdCB1c2VyUGFyYW1ldGVycyA9IGFjdGlvbi5wYXJhbWV0ZXJzLmZpbmQoKHBhcmFtKSA9PiBwYXJhbS5uYW1lID09PSBVU0VSU19QQVJBTUVURVJTKSE7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0bmFtZTogXCJzYXAvZmUvbWFjcm9zL3ZhbHVlaGVscC9WYWx1ZUhlbHBEZWxlZ2F0ZVwiLFxuXHRcdFx0cGF5bG9hZDoge1xuXHRcdFx0XHRwcm9wZXJ0eVBhdGg6IGAvJHt1c2VyUGFyYW1ldGVycy50eXBlfS8ke1VTRVJfSURfUEFSQU1FVEVSfWAsXG5cdFx0XHRcdHF1YWxpZmllcnM6IHt9LFxuXHRcdFx0XHR2YWx1ZUhlbHBRdWFsaWZpZXI6IFwiXCIsXG5cdFx0XHRcdGlzQWN0aW9uUGFyYW1ldGVyRGlhbG9nOiB0cnVlXG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZSB0aGUgZXhwcmVzc2lvbiBiaW5kaW5nIG9mIHRoZSBJbnZpdGF0aW9uIGRpYWxvZy5cblx0ICogQHJldHVybnMgVGhlIGRpYWxvZyB0aXRsZSBiaW5kaW5nIGV4cHJlc3Npb25cblx0ICovXG5cdGdldEludml0YXRpb25EaWFsb2dUaXRsZUV4cEJpbmRpbmcoKTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24ge1xuXHRcdGNvbnN0IGhlYWRlckluZm8gPSB0aGlzLmNvbnRleHRPYmplY3Q/LnRhcmdldEVudGl0eVR5cGUuYW5ub3RhdGlvbnMuVUk/LkhlYWRlckluZm87XG5cdFx0Y29uc3QgdGl0bGUgPSBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oKGhlYWRlckluZm8/LlRpdGxlIGFzIERhdGFGaWVsZCB8IHVuZGVmaW5lZCk/LlZhbHVlLCBbXSwgXCJcIik7XG5cdFx0Y29uc3QgcGFyYW1zID0gW1wiQ19DT0xMQUJPUkFUSU9ORFJBRlRfSU5WSVRBVElPTl9ESUFMT0dcIiwgaGVhZGVySW5mbz8uVHlwZU5hbWUudG9TdHJpbmcoKSwgdGl0bGVdO1xuXHRcdGNvbnN0IHRpdGxlRXhwcmVzc2lvbiA9IGZvcm1hdFJlc3VsdChwYXJhbXMsIGNvbGxhYm9yYXRpb25Gb3JtYXR0ZXIuZ2V0Rm9ybWF0dGVkVGV4dCk7XG5cdFx0cmV0dXJuIGNvbXBpbGVFeHByZXNzaW9uKHRpdGxlRXhwcmVzc2lvbik7XG5cdH1cblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciB0byBjbG9zZSB0aGUgbWFuYWdlIGRpYWxvZy5cblx0ICpcblx0ICovXG5cdGNsb3NlTWFuYWdlRGlhbG9nID0gKCk6IHZvaWQgPT4ge1xuXHRcdHRoaXMubWFuYWdlRGlhbG9nPy5jbG9zZSgpO1xuXHRcdHRoaXMubWFuYWdlRGlhbG9nPy5kZXN0cm95KCk7XG5cdFx0ZGVsZXRlIHRoaXMubWFuYWdlRGlhbG9nO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBpbnZpdGUgYnV0dG9uIGlmIHRoZXJlJ3MgYSBzaGFyZSBhY3Rpb24gb24gcm9vdCBsZXZlbC5cblx0ICogQHJldHVybnMgVGhlIGNvbnRyb2wgdHJlZVxuXHQgKi9cblx0Z2V0SW52aXRlQnV0dG9uKCk6IEhCb3gge1xuXHRcdGlmICgodGhpcy5jb250ZXh0T2JqZWN0Py50YXJnZXRFbnRpdHlTZXQ/LmFubm90YXRpb25zLkNvbW1vbiBhcyBFbnRpdHlTZXRBbm5vdGF0aW9uc19Db21tb24pPy5EcmFmdFJvb3Q/LlNoYXJlQWN0aW9uKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8SEJveCB2aXNpYmxlPVwie3VpPi9pc0VkaXRhYmxlfVwiIGFsaWduSXRlbXM9XCJDZW50ZXJcIiBqdXN0aWZ5Q29udGVudD1cIlN0YXJ0XCI+XG5cdFx0XHRcdFx0PEF2YXRhciBiYWNrZ3JvdW5kQ29sb3I9XCJUaWxlSWNvblwiIHNyYz1cInNhcC1pY29uOi8vYWRkLWVtcGxveWVlXCIgZGlzcGxheVNpemU9XCJYU1wiIHByZXNzPXt0aGlzLm1hbmFnZUNvbGxhYm9yYXRpb259IC8+XG5cdFx0XHRcdDwvSEJveD5cblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiA8SEJveCAvPjtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgY29udGVudCBvZiB0aGUgY29sbGFib3JhdGlvbiBkcmFmdCBidWlsZGluZyBibG9jay5cblx0ICogQHJldHVybnMgVGhlIGNvbnRyb2wgdHJlZVxuXHQgKi9cblx0Y3JlYXRlQ29udGVudCgpOiBDb250cm9sIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAodGhpcy5fZ2V0T3duZXIoKT8uZ2V0TWV0YU1vZGVsKCkgJiYgTW9kZWxIZWxwZXIuaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQodGhpcy5fZ2V0T3duZXIoKSEuZ2V0TWV0YU1vZGVsKCkpKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8SEJveD5cblx0XHRcdFx0XHQ8SEJveFxuXHRcdFx0XHRcdFx0aXRlbXM9e3sgcGF0aDogXCJpbnRlcm5hbD4vY29sbGFib3JhdGlvbi9hY3RpdmVVc2Vyc1wiIH19XG5cdFx0XHRcdFx0XHRjbGFzcz1cInNhcFVpVGlueU1hcmdpbkJlZ2luXCJcblx0XHRcdFx0XHRcdHZpc2libGU9XCJ7PSAke3VpPi9pc0VkaXRhYmxlfSAmYW1wOyZhbXA7ICR7aW50ZXJuYWw+L2NvbGxhYm9yYXRpb24vY29ubmVjdGVkfSB9XCJcblx0XHRcdFx0XHRcdGFsaWduSXRlbXM9XCJDZW50ZXJcIlxuXHRcdFx0XHRcdFx0anVzdGlmeUNvbnRlbnQ9XCJTdGFydFwiXG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0PEF2YXRhclxuXHRcdFx0XHRcdFx0XHRpbml0aWFscz1cIntpbnRlcm5hbD5pbml0aWFsc31cIlxuXHRcdFx0XHRcdFx0XHRkaXNwbGF5U2l6ZT1cIlhTXCJcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yPVwie2ludGVybmFsPmNvbG9yfVwiXG5cdFx0XHRcdFx0XHRcdHByZXNzPXt0aGlzLnNob3dDb2xsYWJvcmF0aW9uVXNlckRldGFpbHN9XG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDwvSEJveD5cblx0XHRcdFx0XHR7dGhpcy5nZXRJbnZpdGVCdXR0b24oKX1cblx0XHRcdFx0PC9IQm94PlxuXHRcdFx0KTtcblx0XHR9XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
650
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJVU0VSU19QQVJBTUVURVJTIiwiVVNFUl9JRF9QQVJBTUVURVIiLCJDb2xsYWJvcmF0aW9uRHJhZnQiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsInJlcXVpcmVkIiwiX2RlYzMiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2siLCJwcm9wcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJzaG93Q29sbGFib3JhdGlvblVzZXJEZXRhaWxzIiwiZXZlbnQiLCJzb3VyY2UiLCJnZXRTb3VyY2UiLCJ1c2VyRGV0YWlsc1BvcG92ZXIiLCJnZXRVc2VyRGV0YWlsc1BvcG92ZXIiLCJzZXRCaW5kaW5nQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0Iiwib3BlbkJ5IiwibWFuYWdlQ29sbGFib3JhdGlvbiIsIm1hbmFnZURpYWxvZyIsImdldE1hbmFnZURpYWxvZyIsInJlYWRJbnZpdGVkVXNlcnMiLCJvcGVuIiwiZm9ybWF0VXNlclN0YXR1cyIsInVzZXJTdGF0dXMiLCJVc2VyU3RhdHVzIiwiQ3VycmVudGx5RWRpdGluZyIsImdldFRyYW5zbGF0ZWRUZXh0IiwiQ2hhbmdlc01hZGUiLCJOb0NoYW5nZXNNYWRlIiwiTm90WWV0SW52aXRlZCIsImFkZFVzZXJGaWVsZENoYW5nZWQiLCJ1c2VySW5wdXQiLCJnZXRQYXJhbWV0ZXIiLCJ0aGVuIiwibmV3VXNlcklkIiwiaW50ZXJuYWxNb2RlbENvbnRleHQiLCJpbnZpdGVkVXNlcnMiLCJnZXRQcm9wZXJ0eSIsIm5ld1VzZXIiLCJpZCIsIm5hbWUiLCJmaW5kSW5kZXgiLCJ1c2VyIiwic2V0VmFsdWVTdGF0ZSIsInNldFZhbHVlU3RhdGVUZXh0IiwiYWRkVXNlciIsImJpbmQiLCJjYXRjaCIsImludml0ZVVzZXIiLCJ1c2VycyIsIm5ld2x5SW52aXRlZFVzZXJzIiwiYmluZGluZ0NvbnRleHQiLCJjb250ZXh0cyIsIm1hbmFnZURpYWxvZ1VzZXJUYWJsZSIsImdldEJpbmRpbmciLCJnZXRDb250ZXh0cyIsImZvckVhY2giLCJjb250ZXh0IiwicHVzaCIsIlVzZXJJRCIsIlVzZXJBY2Nlc3NSb2xlIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJzaGFyZU9iamVjdCIsInJlcXVlc3RJbnZpdGVkVXNlcnNJbkRyYWZ0IiwibmV3VXNlcnMiLCJpbnZpdGVkVXNlciIsImluY2x1ZGVzIiwibWVzc2FnZUhhbmRsZXIiLCJnZXRQYWdlQ29udHJvbGxlciIsInNob3dNZXNzYWdlRGlhbG9nIiwibGVuZ3RoIiwiTWVzc2FnZVRvYXN0Iiwic2hvdyIsImdldFNoYXJlZEl0ZW1OYW1lIiwidG9TdHJpbmciLCJjbG9zZU1hbmFnZURpYWxvZyIsImN1cnJlbnRVc2VyTGlzdCIsImFjdGl2ZVVzZXJzIiwiZ2V0TW9kZWwiLCJtZSIsIkNvbGxhYm9yYXRpb25VdGlscyIsImdldE1lIiwiZ2V0QXBwQ29tcG9uZW50IiwidXNlckNvbnRleHQiLCJ1c2VyRGF0YSIsImdldE9iamVjdCIsImlzTWUiLCJpc0FjdGl2ZSIsImZpbmQiLCJ1IiwidXNlckRlc2NyaXB0aW9uIiwiVXNlckRlc2NyaXB0aW9uIiwiaW5pdGlhbHMiLCJmb3JtYXRJbml0aWFscyIsImdldFRleHQiLCJVc2VyRWRpdGluZ1N0YXRlIiwiSW5Qcm9ncmVzcyIsInN0YXR1cyIsImNvbG9yIiwiZ2V0VXNlckNvbG9yIiwic2V0UHJvcGVydHkiLCJlIiwiY2xvc2UiLCJkZXN0cm95IiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uTWV0YWRhdGFBdmFpbGFibGUiLCJfb3duZXJDb21wb25lbnQiLCJfY29udHJvbExvYWRlZCIsIlByb21pc2VLZWVwZXIiLCJHcmlkVGFibGVDb250cm9sIiwidW5kZWZpbmVkIiwiTGliIiwibG9hZCIsImRlZmF1bHQiLCJfX3VpNV9yZXF1aXJlX2FzeW5jIiwiR3JpZFRhYmxlQ29sdW1uQ29udHJvbCIsImNvbnRleHRPYmplY3QiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwiY29udGV4dFBhdGgiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsInJlc29sdmUiLCJfanN4IiwiUmVzcG9uc2l2ZVBvcG92ZXIiLCJzaG93SGVhZGVyIiwiY2xhc3MiLCJwbGFjZW1lbnQiLCJjaGlsZHJlbiIsIl9qc3hzIiwiSEJveCIsIkF2YXRhciIsImRpc3BsYXlTaXplIiwiYmFja2dyb3VuZENvbG9yIiwiVkJveCIsIkxhYmVsIiwidGV4dCIsImFkZERlcGVuZGVudCIsIkRpYWxvZyIsInRpdGxlIiwiZ2V0SW52aXRhdGlvbkRpYWxvZ1RpdGxlRXhwQmluZGluZyIsImhvcml6b250YWxTY3JvbGxpbmciLCJ2ZXJ0aWNhbFNjcm9sbGluZyIsImNvbnRlbnRXaWR0aCIsInN0cmV0Y2giLCJDb21tb25IZWxwZXIiLCJpc0Rlc2t0b3AiLCJiZWdpbkJ1dHRvbiIsIkJ1dHRvbiIsInByZXNzIiwiZW5hYmxlZCIsInBhcnRzIiwicGF0aCIsImZvcm1hdHRlciIsImZvcm1hdEludml0ZUJ1dHRvbiIsImVuZEJ1dHRvbiIsIndpZHRoIiwiTWVzc2FnZVN0cmlwIiwic2hvd0ljb24iLCJzaG93Q2xvc2VCdXR0b24iLCJnZXRNYW5hZ2VEaWFsb2dBZGRVc2VyU2VjdGlvbiIsImdldE1hbmFnZURpYWxvZ1VzZXJUYWJsZSIsImJpbmRFbGVtZW50IiwibW9kZWwiLCJnZXRNYW5hZ2VEaWFsb2dVc2VyVGFibGVDb2x1bW5zIiwiX0ZyYWdtZW50IiwibGFiZWwiLCJUZXh0IiwidGVtcGxhdGUiLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJPYmplY3RTdGF0dXMiLCJzdGF0ZSIsImZvcm1hdFVzZXJTdGF0dXNDb2xvciIsImljb24iLCJyZW1vdmVVc2VyIiwidmlzaWJsZSIsInRhYmxlVGl0bGUiLCJJbnZpc2libGVUZXh0Iiwicm93cyIsInZpc2libGVSb3dDb3VudCIsInZpc2libGVSb3dDb3VudE1vZGUiLCJzZWxlY3Rpb25Nb2RlIiwiYXJpYUxhYmVsbGVkQnkiLCJjb2x1bW5zIiwiZGVwZW5kZW50cyIsIkZpZWxkIiwidmFsdWUiLCJhZGRpdGlvbmFsVmFsdWUiLCJkaXNwbGF5IiwidmFsdWVIZWxwIiwicGxhY2Vob2xkZXIiLCJjaGFuZ2UiLCJWYWx1ZUhlbHAiLCJkZWxlZ2F0ZSIsImdldFZhbHVlSGVscERlbGVnYXRlIiwidmFsaWRhdGVJbnB1dCIsInR5cGVhaGVhZCIsIk1EQ1BvcG92ZXIiLCJNVGFibGUiLCJjYXNlU2Vuc2l0aXZlIiwidXNlQXNWYWx1ZUhlbHAiLCJkaWFsb2ciLCJNRENEaWFsb2ciLCJWYWx1ZVN0YXRlIiwiU3VjY2VzcyIsIldhcm5pbmciLCJJbmZvcm1hdGlvbiIsIm5iVXNlcnMiLCJzb21lIiwidHJhbnNpZW50IiwiaXRlbSIsImRlbGV0ZVVzZXJJRCIsImZpbHRlciIsInBhcmFtZXRlcnMiLCIkc2VsZWN0IiwiJCRncm91cElkIiwiaW52aXRlZFVzZXJMaXN0IiwiYmluZExpc3QiLCJnZXRQYXRoIiwicmVxdWVzdENvbnRleHRzIiwiaGVhZGVySW5mbyIsInRhcmdldEVudGl0eVR5cGUiLCJhbm5vdGF0aW9ucyIsIlVJIiwiSGVhZGVySW5mbyIsInNoYXJlZEl0ZW1OYW1lIiwiVGl0bGUiLCJpc0Fubm90YXRpb25PZlR5cGUiLCJpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbiIsIlZhbHVlIiwiVHlwZU5hbWUiLCJhY3Rpb25OYW1lIiwidGFyZ2V0RW50aXR5U2V0IiwiQ29tbW9uIiwiRHJhZnRSb290IiwiU2hhcmVBY3Rpb24iLCJhY3Rpb24iLCJyZXNvbHZlUGF0aCIsInVzZXJQYXJhbWV0ZXJzIiwicGFyYW0iLCJwYXlsb2FkIiwicHJvcGVydHlQYXRoIiwicXVhbGlmaWVycyIsInZhbHVlSGVscFF1YWxpZmllciIsImlzQWN0aW9uUGFyYW1ldGVyRGlhbG9nIiwiZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIiwicGFyYW1zIiwidGl0bGVFeHByZXNzaW9uIiwiZm9ybWF0UmVzdWx0IiwiY29sbGFib3JhdGlvbkZvcm1hdHRlciIsImdldEZvcm1hdHRlZFRleHQiLCJjb21waWxlRXhwcmVzc2lvbiIsImdldEludml0ZUJ1dHRvbiIsInNyYyIsIl9nZXRPd25lciIsImdldE1ldGFNb2RlbCIsIk1vZGVsSGVscGVyIiwiaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQiLCJpdGVtcyIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbGxhYm9yYXRpb25EcmFmdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbnRpdHlTZXQsIEFjdGlvbiBhcyBWb2NhYnVsYXJ5QWN0aW9uIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL0VkbVwiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHlTZXRBbm5vdGF0aW9uc19Db21tb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vbl9FZG1cIjtcbmltcG9ydCB0eXBlIHsgRGF0YUZpZWxkLCBEYXRhRmllbGRUeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IFVJQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHR5cGUgeyBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29tcGlsZUV4cHJlc3Npb24sIGZvcm1hdFJlc3VsdCwgZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnRpZXNPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIFRlbXBsYXRlQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9UZW1wbGF0ZUNvbXBvbmVudFwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2sgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCB0eXBlIHsgQmFja2VuZFVzZXIsIFVzZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5pbXBvcnQge1xuXHRDb2xsYWJvcmF0aW9uVXRpbHMsXG5cdFVzZXJFZGl0aW5nU3RhdGUsXG5cdFVzZXJTdGF0dXMsXG5cdHNoYXJlT2JqZWN0XG59IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0NvbGxhYm9yYXRpb25Db21tb25cIjtcbmltcG9ydCBjb2xsYWJvcmF0aW9uRm9ybWF0dGVyIGZyb20gXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL0NvbGxhYm9yYXRpb25Gb3JtYXR0ZXJcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgUHJvbWlzZUtlZXBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Qcm9taXNlS2VlcGVyXCI7XG5pbXBvcnQgeyBpc0Fubm90YXRpb25PZlR5cGUsIGlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvVHlwZUd1YXJkc1wiO1xuaW1wb3J0IHR5cGUgeyBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IENvbW1vbkhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9Db21tb25IZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgVmFsdWVIZWxwUGF5bG9hZCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL3ZhbHVlaGVscC9WYWx1ZUxpc3RIZWxwZXJcIjtcbmltcG9ydCBBdmF0YXIgZnJvbSBcInNhcC9tL0F2YXRhclwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRGlhbG9nIGZyb20gXCJzYXAvbS9EaWFsb2dcIjtcbmltcG9ydCBIQm94IGZyb20gXCJzYXAvbS9IQm94XCI7XG5pbXBvcnQgTGFiZWwgZnJvbSBcInNhcC9tL0xhYmVsXCI7XG5pbXBvcnQgTWVzc2FnZVN0cmlwIGZyb20gXCJzYXAvbS9NZXNzYWdlU3RyaXBcIjtcbmltcG9ydCBNZXNzYWdlVG9hc3QgZnJvbSBcInNhcC9tL01lc3NhZ2VUb2FzdFwiO1xuaW1wb3J0IE9iamVjdFN0YXR1cyBmcm9tIFwic2FwL20vT2JqZWN0U3RhdHVzXCI7XG5pbXBvcnQgUmVzcG9uc2l2ZVBvcG92ZXIgZnJvbSBcInNhcC9tL1Jlc3BvbnNpdmVQb3BvdmVyXCI7XG5pbXBvcnQgdHlwZSBUYWJsZSBmcm9tIFwic2FwL20vVGFibGVcIjtcbmltcG9ydCBUZXh0IGZyb20gXCJzYXAvbS9UZXh0XCI7XG5pbXBvcnQgVkJveCBmcm9tIFwic2FwL20vVkJveFwiO1xuaW1wb3J0IHR5cGUgRXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgSW52aXNpYmxlVGV4dCBmcm9tIFwic2FwL3VpL2NvcmUvSW52aXNpYmxlVGV4dFwiO1xuaW1wb3J0IExpYiBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgeyBWYWx1ZVN0YXRlIH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIHsgRmllbGQkQ2hhbmdlRXZlbnQgfSBmcm9tIFwic2FwL3VpL21kYy9GaWVsZFwiO1xuaW1wb3J0IEZpZWxkIGZyb20gXCJzYXAvdWkvbWRjL0ZpZWxkXCI7XG5pbXBvcnQgVmFsdWVIZWxwIGZyb20gXCJzYXAvdWkvbWRjL1ZhbHVlSGVscFwiO1xuaW1wb3J0IE1EQ0RpYWxvZyBmcm9tIFwic2FwL3VpL21kYy92YWx1ZWhlbHAvRGlhbG9nXCI7XG5pbXBvcnQgTURDUG9wb3ZlciBmcm9tIFwic2FwL3VpL21kYy92YWx1ZWhlbHAvUG9wb3ZlclwiO1xuaW1wb3J0IE1UYWJsZSBmcm9tIFwic2FwL3VpL21kYy92YWx1ZWhlbHAvY29udGVudC9NVGFibGVcIjtcbmltcG9ydCB0eXBlIEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIEludGVnZXIgZnJvbSBcInNhcC91aS9tb2RlbC90eXBlL0ludGVnZXJcIjtcbmltcG9ydCB0eXBlIEdyaWRUYWJsZUNvbHVtbiBmcm9tIFwic2FwL3VpL3RhYmxlL0NvbHVtblwiO1xuaW1wb3J0IHR5cGUgR3JpZFRhYmxlIGZyb20gXCJzYXAvdWkvdGFibGUvVGFibGVcIjtcblxuY29uc3QgVVNFUlNfUEFSQU1FVEVSUyA9IFwiVXNlcnNcIjtcbmNvbnN0IFVTRVJfSURfUEFSQU1FVEVSID0gXCJVc2VySURcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbXBvbmVudHMuQ29sbGFib3JhdGlvbkRyYWZ0XCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb2xsYWJvcmF0aW9uRHJhZnQgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrIHtcblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiwgcmVxdWlyZWQ6IHRydWUgfSlcblx0cHVibGljIGNvbnRleHRQYXRoITogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0cHVibGljIGlkPzogc3RyaW5nO1xuXG5cdHByaXZhdGUgY29udGV4dE9iamVjdD86IERhdGFNb2RlbE9iamVjdFBhdGg8RW50aXR5U2V0PjtcblxuXHRwcml2YXRlIHVzZXJEZXRhaWxzUG9wb3Zlcj86IFJlc3BvbnNpdmVQb3BvdmVyO1xuXG5cdHByaXZhdGUgbWFuYWdlRGlhbG9nPzogRGlhbG9nO1xuXG5cdHByaXZhdGUgbWFuYWdlRGlhbG9nVXNlclRhYmxlPzogVGFibGU7XG5cblx0cHJpdmF0ZSBzdGF0aWMgR3JpZFRhYmxlQ29udHJvbDogdHlwZW9mIEdyaWRUYWJsZTtcblxuXHRwcml2YXRlIHN0YXRpYyBHcmlkVGFibGVDb2x1bW5Db250cm9sOiB0eXBlb2YgR3JpZFRhYmxlQ29sdW1uO1xuXG5cdHByaXZhdGUgX2NvbnRyb2xMb2FkZWQ/OiBQcm9taXNlS2VlcGVyPHZvaWQ+O1xuXG5cdGNvbnN0cnVjdG9yKHByb3BzOiBQcm9wZXJ0aWVzT2Y8Q29sbGFib3JhdGlvbkRyYWZ0Piwgb3RoZXJzPzogUHJvcGVydGllc09mPENvbGxhYm9yYXRpb25EcmFmdD4pIHtcblx0XHRzdXBlcihwcm9wcywgb3RoZXJzKTtcblx0fVxuXG5cdGFzeW5jIG9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50OiBUZW1wbGF0ZUNvbXBvbmVudCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdHRoaXMuX2NvbnRyb2xMb2FkZWQgPSBuZXcgUHJvbWlzZUtlZXBlcigpO1xuXHRcdGlmIChDb2xsYWJvcmF0aW9uRHJhZnQuR3JpZFRhYmxlQ29udHJvbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRhd2FpdCBMaWIubG9hZCh7IG5hbWU6IFwic2FwLnVpLnRhYmxlXCIgfSk7XG5cdFx0XHRjb25zdCB7IGRlZmF1bHQ6IEdyaWRUYWJsZUNvbnRyb2wgfSA9IGF3YWl0IGltcG9ydChcInNhcC91aS90YWJsZS9UYWJsZVwiKTtcblx0XHRcdENvbGxhYm9yYXRpb25EcmFmdC5HcmlkVGFibGVDb250cm9sID0gR3JpZFRhYmxlQ29udHJvbDtcblx0XHRcdGNvbnN0IHsgZGVmYXVsdDogR3JpZFRhYmxlQ29sdW1uQ29udHJvbCB9ID0gYXdhaXQgaW1wb3J0KFwic2FwL3VpL3RhYmxlL0NvbHVtblwiKTtcblx0XHRcdENvbGxhYm9yYXRpb25EcmFmdC5HcmlkVGFibGVDb2x1bW5Db250cm9sID0gR3JpZFRhYmxlQ29sdW1uQ29udHJvbDtcblx0XHR9XG5cdFx0dGhpcy5jb250ZXh0T2JqZWN0ID0gdGhpcy5nZXREYXRhTW9kZWxPYmplY3RQYXRoKHRoaXMuY29udGV4dFBhdGgpO1xuXHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHRcdHRoaXMuX2NvbnRyb2xMb2FkZWQucmVzb2x2ZSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgdG8gY3JlYXRlIGFuZCBzaG93IHRoZSB1c2VyIGRldGFpbHMgcG9wb3Zlci5cblx0ICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCBvYmplY3Rcblx0ICovXG5cdHNob3dDb2xsYWJvcmF0aW9uVXNlckRldGFpbHMgPSAoZXZlbnQ6IEV2ZW50PHt9LCBDb250cm9sPik6IHZvaWQgPT4ge1xuXHRcdGNvbnN0IHNvdXJjZSA9IGV2ZW50LmdldFNvdXJjZSgpO1xuXHRcdGlmICghdGhpcy51c2VyRGV0YWlsc1BvcG92ZXIpIHtcblx0XHRcdHRoaXMudXNlckRldGFpbHNQb3BvdmVyID0gdGhpcy5nZXRVc2VyRGV0YWlsc1BvcG92ZXIoKTtcblx0XHR9XG5cblx0XHR0aGlzLnVzZXJEZXRhaWxzUG9wb3Zlcj8uc2V0QmluZGluZ0NvbnRleHQoc291cmNlLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQsIFwiaW50ZXJuYWxcIik7XG5cdFx0dGhpcy51c2VyRGV0YWlsc1BvcG92ZXI/Lm9wZW5CeShzb3VyY2UpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSB1c2VyIGRldGFpbHMgcG9wb3Zlci5cblx0ICogQHJldHVybnMgVGhlIGNvbnRyb2wgdHJlZVxuXHQgKi9cblx0Z2V0VXNlckRldGFpbHNQb3BvdmVyKCk6IFJlc3BvbnNpdmVQb3BvdmVyIHtcblx0XHRjb25zdCB1c2VyRGV0YWlsc1BvcG92ZXIgPSAoXG5cdFx0XHQ8UmVzcG9uc2l2ZVBvcG92ZXIgc2hvd0hlYWRlcj17ZmFsc2V9IGNsYXNzPVwic2FwVWlDb250ZW50UGFkZGluZ1wiIHBsYWNlbWVudD1cIkJvdHRvbVwiPlxuXHRcdFx0XHQ8SEJveD5cblx0XHRcdFx0XHQ8QXZhdGFyIGluaXRpYWxzPVwie2ludGVybmFsPmluaXRpYWxzfVwiIGRpc3BsYXlTaXplPVwiU1wiIGJhY2tncm91bmRDb2xvcj1cIntpbnRlcm5hbD5jb2xvcn1cIiAvPlxuXHRcdFx0XHRcdDxWQm94PlxuXHRcdFx0XHRcdFx0PExhYmVsIGNsYXNzPVwic2FwVWlNZWRpdW1NYXJnaW5CZWdpblwiIHRleHQ9XCJ7aW50ZXJuYWw+bmFtZX1cIiAvPlxuXHRcdFx0XHRcdFx0PExhYmVsIGNsYXNzPVwic2FwVWlNZWRpdW1NYXJnaW5CZWdpblwiIHRleHQ9XCJ7aW50ZXJuYWw+aWR9XCIgLz5cblx0XHRcdFx0XHQ8L1ZCb3g+XG5cdFx0XHRcdDwvSEJveD5cblx0XHRcdDwvUmVzcG9uc2l2ZVBvcG92ZXI+XG5cdFx0KTtcblxuXHRcdHRoaXMuYWRkRGVwZW5kZW50KHVzZXJEZXRhaWxzUG9wb3Zlcik7XG5cblx0XHRyZXR1cm4gdXNlckRldGFpbHNQb3BvdmVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgdG8gY3JlYXRlIGFuZCBvcGVuIHRoZSBtYW5hZ2UgZGlhbG9nLlxuXHQgKlxuXHQgKi9cblx0bWFuYWdlQ29sbGFib3JhdGlvbiA9ICgpOiB2b2lkID0+IHtcblx0XHRpZiAoIXRoaXMubWFuYWdlRGlhbG9nKSB7XG5cdFx0XHR0aGlzLm1hbmFnZURpYWxvZyA9IHRoaXMuZ2V0TWFuYWdlRGlhbG9nKCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5yZWFkSW52aXRlZFVzZXJzKCk7XG5cdFx0dGhpcy5tYW5hZ2VEaWFsb2c/Lm9wZW4oKTtcblx0fTtcblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgbWFuYWdlIGRpYWxvZyB1c2VkIHRvIGludml0ZSBmdXJ0aGVyIHVzZXJzLlxuXHQgKiBAcmV0dXJucyBUaGUgY29udHJvbCB0cmVlXG5cdCAqL1xuXHRnZXRNYW5hZ2VEaWFsb2coKTogRGlhbG9nIHtcblx0XHRjb25zdCBtYW5hZ2VEaWFsb2cgPSAoXG5cdFx0XHQ8RGlhbG9nXG5cdFx0XHRcdHRpdGxlPXt0aGlzLmdldEludml0YXRpb25EaWFsb2dUaXRsZUV4cEJpbmRpbmcoKX1cblx0XHRcdFx0aG9yaXpvbnRhbFNjcm9sbGluZz1cIkZhbHNlXCJcblx0XHRcdFx0dmVydGljYWxTY3JvbGxpbmc9XCJGYWxzZVwiXG5cdFx0XHRcdGNvbnRlbnRXaWR0aD1cIjM1ZW1cIlxuXHRcdFx0XHRzdHJldGNoPXtDb21tb25IZWxwZXIuaXNEZXNrdG9wKCkgPyBcImZhbHNlXCIgOiBcInRydWVcIn1cblx0XHRcdD5cblx0XHRcdFx0e3tcblx0XHRcdFx0XHRiZWdpbkJ1dHRvbjogKFxuXHRcdFx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfSU5WSVRBVElPTl9ESUFMT0dfQ09ORklSTUFUSU9OXCIpfVxuXHRcdFx0XHRcdFx0XHRwcmVzcz17dGhpcy5pbnZpdGVVc2VyfVxuXHRcdFx0XHRcdFx0XHR0eXBlPVwiRW1waGFzaXplZFwiXG5cdFx0XHRcdFx0XHRcdGVuYWJsZWQ9e3tcblx0XHRcdFx0XHRcdFx0XHRwYXJ0czogW3sgcGF0aDogXCJpbnRlcm5hbD5pbnZpdGVkVXNlcnMvbGVuZ3RoXCIgfSwgeyBwYXRoOiBcImludGVybmFsPmludml0ZWRVc2Vyc1wiIH1dLFxuXHRcdFx0XHRcdFx0XHRcdGZvcm1hdHRlcjogdGhpcy5mb3JtYXRJbnZpdGVCdXR0b25cblx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRlbmRCdXR0b246IChcblx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0dGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0lOVklUQVRJT05fRElBTE9HX0NBTkNFTFwiKX1cblx0XHRcdFx0XHRcdFx0cHJlc3M9e3RoaXMuY2xvc2VNYW5hZ2VEaWFsb2d9XG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0PFZCb3ggY2xhc3M9XCJzYXBVaVNtYWxsTWFyZ2luXCI+XG5cdFx0XHRcdFx0XHRcdDxWQm94IHdpZHRoPVwiMTAwJVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxNZXNzYWdlU3RyaXBcblx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9JTlZJVEFUSU9OX01FU1NBR0VTVFJJUFwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdHR5cGU9XCJJbmZvcm1hdGlvblwiXG5cdFx0XHRcdFx0XHRcdFx0XHRzaG93SWNvbj17dHJ1ZX1cblx0XHRcdFx0XHRcdFx0XHRcdHNob3dDbG9zZUJ1dHRvbj17ZmFsc2V9XG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInNhcFVpTWVkaXVtTWFyZ2luQm90dG9tXCJcblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHQ8L1ZCb3g+XG5cdFx0XHRcdFx0XHRcdDxMYWJlbCB0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfSU5WSVRBVElPTl9JTlBVVF9MQUJFTFwiKX0gcmVxdWlyZWQ9e3RydWV9IC8+XG5cdFx0XHRcdFx0XHRcdHt0aGlzLmdldE1hbmFnZURpYWxvZ0FkZFVzZXJTZWN0aW9uKCl9XG5cdFx0XHRcdFx0XHRcdHt0aGlzLmdldE1hbmFnZURpYWxvZ1VzZXJUYWJsZSgpfVxuXHRcdFx0XHRcdFx0PC9WQm94PlxuXHRcdFx0XHRcdClcblx0XHRcdFx0fX1cblx0XHRcdDwvRGlhbG9nPlxuXHRcdCk7XG5cblx0XHR0aGlzLmFkZERlcGVuZGVudChtYW5hZ2VEaWFsb2cpO1xuXHRcdG1hbmFnZURpYWxvZy5iaW5kRWxlbWVudCh7XG5cdFx0XHRtb2RlbDogXCJpbnRlcm5hbFwiLFxuXHRcdFx0cGF0aDogXCJjb2xsYWJvcmF0aW9uXCJcblx0XHR9KTtcblxuXHRcdHJldHVybiBtYW5hZ2VEaWFsb2c7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJuaW5nIHRoZSB0YWJsZSBjb2x1bW4gd2l0aCB0aGUgbGlzdCBvZiBpbnZpdGVkIHVzZXJzLlxuXHQgKiBAcmV0dXJucyBUaGUgY29udHJvbCB0cmVlXG5cdCAqL1xuXHRnZXRNYW5hZ2VEaWFsb2dVc2VyVGFibGVDb2x1bW5zKCk6IEdyaWRUYWJsZUNvbHVtbltdIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PD5cblx0XHRcdFx0PENvbGxhYm9yYXRpb25EcmFmdC5HcmlkVGFibGVDb2x1bW5Db250cm9sIHdpZHRoPXtDb21tb25IZWxwZXIuaXNEZXNrdG9wKCkgPyBcIjEwJVwiIDogXCIzZW1cIn0+XG5cdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdGxhYmVsOiA8VGV4dCB0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfSU5WSVRBVElPTl9UQUJMRV9VU0VSX0FWQVRBUl9DT0xVTU5cIil9IC8+LFxuXHRcdFx0XHRcdFx0dGVtcGxhdGU6IChcblx0XHRcdFx0XHRcdFx0PEhCb3ggYWxpZ25JdGVtcz1cIkNlbnRlclwiIGp1c3RpZnlDb250ZW50PVwiU3BhY2VCZXR3ZWVuXCI+XG5cdFx0XHRcdFx0XHRcdFx0PEF2YXRhciBkaXNwbGF5U2l6ZT1cIlhTXCIgYmFja2dyb3VuZENvbG9yPVwie2ludGVybmFsPmNvbG9yfVwiIGluaXRpYWxzPVwie2ludGVybmFsPmluaXRpYWxzfVwiIC8+XG5cdFx0XHRcdFx0XHRcdDwvSEJveD5cblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHR9fVxuXHRcdFx0XHQ8L0NvbGxhYm9yYXRpb25EcmFmdC5HcmlkVGFibGVDb2x1bW5Db250cm9sPlxuXHRcdFx0XHQ8Q29sbGFib3JhdGlvbkRyYWZ0LkdyaWRUYWJsZUNvbHVtbkNvbnRyb2wgd2lkdGg9e0NvbW1vbkhlbHBlci5pc0Rlc2t0b3AoKSA/IFwiMzUlXCIgOiBcIjZlbVwifT5cblx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0bGFiZWw6IDxUZXh0IHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9JTlZJVEFUSU9OX1RBQkxFX1VTRVJfQ09MVU1OXCIpfSAvPixcblx0XHRcdFx0XHRcdHRlbXBsYXRlOiA8VGV4dCB0ZXh0PVwie2ludGVybmFsPm5hbWV9XCIgLz5cblx0XHRcdFx0XHR9fVxuXHRcdFx0XHQ8L0NvbGxhYm9yYXRpb25EcmFmdC5HcmlkVGFibGVDb2x1bW5Db250cm9sPlxuXHRcdFx0XHQ8Q29sbGFib3JhdGlvbkRyYWZ0LkdyaWRUYWJsZUNvbHVtbkNvbnRyb2wgd2lkdGg9e0NvbW1vbkhlbHBlci5pc0Rlc2t0b3AoKSA/IFwiNDYlXCIgOiBcIjllbVwifT5cblx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0bGFiZWw6IDxUZXh0IHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9JTlZJVEFUSU9OX1RBQkxFX1VTRVJfU1RBVFVTX0NPTFVNTlwiKX0gLz4sXG5cdFx0XHRcdFx0XHR0ZW1wbGF0ZTogKFxuXHRcdFx0XHRcdFx0XHQ8T2JqZWN0U3RhdHVzXG5cdFx0XHRcdFx0XHRcdFx0c3RhdGU9e3sgcGF0aDogXCJpbnRlcm5hbD5zdGF0dXNcIiwgZm9ybWF0dGVyOiB0aGlzLmZvcm1hdFVzZXJTdGF0dXNDb2xvciB9fVxuXHRcdFx0XHRcdFx0XHRcdHRleHQ9e3sgcGF0aDogXCJpbnRlcm5hbD5zdGF0dXNcIiwgZm9ybWF0dGVyOiB0aGlzLmZvcm1hdFVzZXJTdGF0dXMgfX1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHR9fVxuXHRcdFx0XHQ8L0NvbGxhYm9yYXRpb25EcmFmdC5HcmlkVGFibGVDb2x1bW5Db250cm9sPlxuXHRcdFx0XHQ8Q29sbGFib3JhdGlvbkRyYWZ0LkdyaWRUYWJsZUNvbHVtbkNvbnRyb2wgd2lkdGg9e0NvbW1vbkhlbHBlci5pc0Rlc2t0b3AoKSA/IFwiOCVcIiA6IFwiM2VtXCJ9PlxuXHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRsYWJlbDogPFRleHQgdGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0lOVklUQVRJT05fVEFCTEVfUkVNT1ZFX0NPTFVNTlwiKX0gLz4sXG5cdFx0XHRcdFx0XHR0ZW1wbGF0ZTogKFxuXHRcdFx0XHRcdFx0XHQ8SEJveD5cblx0XHRcdFx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRcdFx0XHRpY29uPVwic2FwLWljb246Ly9kZWNsaW5lXCJcblx0XHRcdFx0XHRcdFx0XHRcdHR5cGU9XCJUcmFuc3BhcmVudFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRwcmVzcz17dGhpcy5yZW1vdmVVc2VyfVxuXHRcdFx0XHRcdFx0XHRcdFx0dmlzaWJsZT1cIns9ICEhJHtpbnRlcm5hbD50cmFuc2llbnR9IH1cIlxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdDwvSEJveD5cblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHR9fVxuXHRcdFx0XHQ8L0NvbGxhYm9yYXRpb25EcmFmdC5HcmlkVGFibGVDb2x1bW5Db250cm9sPlxuXHRcdFx0PC8+XG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSB0YWJsZSB3aXRoIHRoZSBsaXN0IG9mIGludml0ZWQgdXNlcnMuXG5cdCAqIEByZXR1cm5zIFRoZSBjb250cm9sIHRyZWVcblx0ICovXG5cdGdldE1hbmFnZURpYWxvZ1VzZXJUYWJsZSgpOiBUYWJsZSB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgdGFibGVUaXRsZSA9IChcblx0XHRcdDxJbnZpc2libGVUZXh0IHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9JTlZJVEFUSU9OX1RBQkxFX1RJVExFXCIpfSAvPlxuXHRcdCkgYXMgSW52aXNpYmxlVGV4dDtcblxuXHRcdHRoaXMubWFuYWdlRGlhbG9nVXNlclRhYmxlID0gKFxuXHRcdFx0PENvbGxhYm9yYXRpb25EcmFmdC5HcmlkVGFibGVDb250cm9sXG5cdFx0XHRcdHdpZHRoPVwiMTAwJVwiXG5cdFx0XHRcdHJvd3M9e3sgcGF0aDogXCJpbnRlcm5hbD5pbnZpdGVkVXNlcnNcIiB9fVxuXHRcdFx0XHR2aXNpYmxlUm93Q291bnQ9e0NvbW1vbkhlbHBlci5pc0Rlc2t0b3AoKSA/IFwiNVwiIDogXCIzXCJ9XG5cdFx0XHRcdHZpc2libGVSb3dDb3VudE1vZGU9XCJGaXhlZFwiXG5cdFx0XHRcdHNlbGVjdGlvbk1vZGU9XCJOb25lXCJcblx0XHRcdFx0YXJpYUxhYmVsbGVkQnk9e1t0YWJsZVRpdGxlXX1cblx0XHRcdD5cblx0XHRcdFx0e3tcblx0XHRcdFx0XHRjb2x1bW5zOiB0aGlzLmdldE1hbmFnZURpYWxvZ1VzZXJUYWJsZUNvbHVtbnMoKSxcblx0XHRcdFx0XHRkZXBlbmRlbnRzOiB0YWJsZVRpdGxlXG5cdFx0XHRcdH19XG5cdFx0XHQ8L0NvbGxhYm9yYXRpb25EcmFmdC5HcmlkVGFibGVDb250cm9sPlxuXHRcdCk7XG5cdFx0cmV0dXJuIHRoaXMubWFuYWdlRGlhbG9nVXNlclRhYmxlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIHNlY3Rpb24gb24gdGhlIGRpYWxvZyByZWxhdGVkIHRvIHRoZSB1c2VyIGZpZWxkLlxuXHQgKiBAcmV0dXJucyBUaGUgY29udHJvbCB0cmVlXG5cdCAqL1xuXHRnZXRNYW5hZ2VEaWFsb2dBZGRVc2VyU2VjdGlvbigpOiBIQm94IHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PEhCb3ggY2xhc3M9XCJzYXBVaU1lZGl1bU1hcmdpbkJvdHRvbVwiIHdpZHRoPVwiMTAwJVwiPlxuXHRcdFx0XHQ8RmllbGRcblx0XHRcdFx0XHR2YWx1ZT1cIntpbnRlcm5hbD5Vc2VySUR9XCJcblx0XHRcdFx0XHRhZGRpdGlvbmFsVmFsdWU9XCJ7aW50ZXJuYWw+VXNlckRlc2NyaXB0aW9ufVwiXG5cdFx0XHRcdFx0ZGlzcGxheT1cIkRlc2NyaXB0aW9uVmFsdWVcIlxuXHRcdFx0XHRcdHdpZHRoPVwiMTAwJVwiXG5cdFx0XHRcdFx0cmVxdWlyZWQ9e3RydWV9XG5cdFx0XHRcdFx0dmFsdWVIZWxwPVwidXNlclZhbHVlSGVscFwiXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9JTlZJVEFUSU9OX0lOUFVUX1BMQUNFSE9MREVSXCIpfVxuXHRcdFx0XHRcdGNoYW5nZT17dGhpcy5hZGRVc2VyRmllbGRDaGFuZ2VkfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdGRlcGVuZGVudHM6IChcblx0XHRcdFx0XHRcdFx0PFZhbHVlSGVscCBpZD1cInVzZXJWYWx1ZUhlbHBcIiBkZWxlZ2F0ZT17dGhpcy5nZXRWYWx1ZUhlbHBEZWxlZ2F0ZSgpfSB2YWxpZGF0ZUlucHV0PXt0cnVlfT5cblx0XHRcdFx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZWFoZWFkOiAoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxNRENQb3BvdmVyPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxNVGFibGUgY2FzZVNlbnNpdGl2ZT1cInRydWVcIiB1c2VBc1ZhbHVlSGVscD1cImZhbHNlXCIgLz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9NRENQb3BvdmVyPlxuXHRcdFx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0XHRcdGRpYWxvZzogPE1EQ0RpYWxvZyAvPlxuXHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdDwvVmFsdWVIZWxwPlxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdH19XG5cdFx0XHRcdDwvRmllbGQ+XG5cdFx0XHQ8L0hCb3g+XG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBGb3JtYXR0ZXIgdG8gc2V0IHRoZSB1c2VyIHN0YXR1cyBkZXBlbmRpbmcgb24gdGhlIGVkaXRpbmcgc3RhdHVzLlxuXHQgKiBAcGFyYW0gdXNlclN0YXR1cyBUaGUgZWRpdGluZyBzdGF0dXMgb2YgdGhlIHVzZXJcblx0ICogQHJldHVybnMgVGhlIHVzZXIgc3RhdHVzXG5cdCAqL1xuXHRmb3JtYXRVc2VyU3RhdHVzID0gKHVzZXJTdGF0dXM6IFVzZXJTdGF0dXMpOiBzdHJpbmcgPT4ge1xuXHRcdHN3aXRjaCAodXNlclN0YXR1cykge1xuXHRcdFx0Y2FzZSBVc2VyU3RhdHVzLkN1cnJlbnRseUVkaXRpbmc6XG5cdFx0XHRcdHJldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfVVNFUl9DVVJSRU5UTFlfRURJVElOR1wiKTtcblx0XHRcdGNhc2UgVXNlclN0YXR1cy5DaGFuZ2VzTWFkZTpcblx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9VU0VSX0NIQU5HRVNfTUFERVwiKTtcblx0XHRcdGNhc2UgVXNlclN0YXR1cy5Ob0NoYW5nZXNNYWRlOlxuXHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX1VTRVJfTk9fQ0hBTkdFU19NQURFXCIpO1xuXHRcdFx0Y2FzZSBVc2VyU3RhdHVzLk5vdFlldEludml0ZWQ6XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX1VTRVJfTk9UX1lFVF9JTlZJVEVEXCIpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcblx0ICogRm9ybWF0dGVyIHRvIHNldCB0aGUgdXNlciBjb2xvciBkZXBlbmRpbmcgb24gdGhlIGVkaXRpbmcgc3RhdHVzLlxuXHQgKiBAcGFyYW0gdXNlclN0YXR1cyBUaGUgZWRpdGluZyBzdGF0dXMgb2YgdGhlIHVzZXJcblx0ICogQHJldHVybnMgVGhlIHVzZXIgc3RhdHVzIGNvbG9yXG5cdCAqL1xuXHRmb3JtYXRVc2VyU3RhdHVzQ29sb3IodXNlclN0YXR1czogVXNlclN0YXR1cyk6IFZhbHVlU3RhdGUge1xuXHRcdHN3aXRjaCAodXNlclN0YXR1cykge1xuXHRcdFx0Y2FzZSBVc2VyU3RhdHVzLkN1cnJlbnRseUVkaXRpbmc6XG5cdFx0XHRcdHJldHVybiBWYWx1ZVN0YXRlLlN1Y2Nlc3M7XG5cdFx0XHRjYXNlIFVzZXJTdGF0dXMuQ2hhbmdlc01hZGU6XG5cdFx0XHRcdHJldHVybiBWYWx1ZVN0YXRlLldhcm5pbmc7XG5cdFx0XHRjYXNlIFVzZXJTdGF0dXMuTm9DaGFuZ2VzTWFkZTpcblx0XHRcdGNhc2UgVXNlclN0YXR1cy5Ob3RZZXRJbnZpdGVkOlxuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0cmV0dXJuIFZhbHVlU3RhdGUuSW5mb3JtYXRpb247XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEZvcm1hdHRlciB0byBlbmFibGUgdGhlIGludml0ZSBidXR0b24gZGVwZW5kaW5nIG9uIHRoZSBpbnZpdGVkIHVzZXJzIHN0YXR1cy5cblx0ICogQHBhcmFtIG5iVXNlcnMgTnVtYmVyIG9mIHVzZXJzXG5cdCAqIEBwYXJhbSBpbnZpdGVkVXNlcnMgTGlzdCBvZiB0aGUgaW52aXRlZCB1c2Vyc1xuXHQgKiBAcmV0dXJucyBUcnVlIG9yIEZhbHNlXG5cdCAqL1xuXHRmb3JtYXRJbnZpdGVCdXR0b24obmJVc2VyczogSW50ZWdlciB8IHVuZGVmaW5lZCwgaW52aXRlZFVzZXJzOiBVc2VyW10gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0XHRpZiAoIW5iVXNlcnMpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuICEhaW52aXRlZFVzZXJzPy5zb21lKCh1c2VyKSA9PiB1c2VyLnN0YXR1cyA9PT0gMCk7XG5cdH1cblxuXHQvKipcblx0ICogQWRkIHRoZSBhZGRlZCB1c2VyIHRvIHRoZSBsaXN0IG9mIGludml0ZWQgdXNlcnMuXG5cdCAqIEBwYXJhbSB1c2VySW5wdXQgVGhlIHVzZXIgdG8gYmUgaW52aXRlZFxuXHQgKiBAcGFyYW0gaW52aXRlZFVzZXJzIFRoZSB1c2VycyBhbHJlYWR5IGludml0ZWRcblx0ICogQHBhcmFtIG5ld1VzZXIgVGhlIHVzZXIgdG8gYmUgaW52aXRlZFxuXHQgKi9cblx0YWRkVXNlcih1c2VySW5wdXQ6IEZpZWxkLCBpbnZpdGVkVXNlcnM6IFVzZXJbXSwgbmV3VXNlcjogVXNlcik6IHZvaWQge1xuXHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdXNlcklucHV0LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0Y29uc3QgYWN0aXZlVXNlcnMgPSAodXNlcklucHV0LmdldE1vZGVsKFwiaW50ZXJuYWxcIikgYXMgSlNPTk1vZGVsKS5nZXRQcm9wZXJ0eShcIi9jb2xsYWJvcmF0aW9uL2FjdGl2ZVVzZXJzXCIpO1xuXHRcdG5ld1VzZXIubmFtZSA9IG5ld1VzZXIubmFtZSB8fCBuZXdVc2VyLmlkO1xuXHRcdG5ld1VzZXIuaW5pdGlhbHMgPSBDb2xsYWJvcmF0aW9uVXRpbHMuZm9ybWF0SW5pdGlhbHMobmV3VXNlci5uYW1lKTtcblx0XHRuZXdVc2VyLmNvbG9yID0gQ29sbGFib3JhdGlvblV0aWxzLmdldFVzZXJDb2xvcihuZXdVc2VyLmlkLCBhY3RpdmVVc2VycywgaW52aXRlZFVzZXJzKTtcblx0XHRuZXdVc2VyLnRyYW5zaWVudCA9IHRydWU7XG5cdFx0bmV3VXNlci5zdGF0dXMgPSBVc2VyU3RhdHVzLk5vdFlldEludml0ZWQ7XG5cdFx0aW52aXRlZFVzZXJzLnB1c2gobmV3VXNlcik7XG5cdFx0aW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJpbnZpdGVkVXNlcnNcIiwgaW52aXRlZFVzZXJzKTtcblx0XHRpbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcIlVzZXJJRFwiLCBcIlwiKTtcblx0XHRpbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcIlVzZXJEZXNjcmlwdGlvblwiLCBcIlwiKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSB2YWx1ZSBzdGF0ZSBvZiB0aGUgdXNlciBmaWVsZCB3aGVuZXZlciBjaGFuZ2VkLlxuXHQgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50IG9iamVjdCBvZiB0aGUgdXNlciBpbnB1dFxuXHQgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgb25jZSB0aGUgdmFsdWUgc3RhdGUgd2FzIHNldC5cblx0ICovXG5cdGFkZFVzZXJGaWVsZENoYW5nZWQgPSBhc3luYyAoZXZlbnQ6IEZpZWxkJENoYW5nZUV2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdFx0Y29uc3QgdXNlcklucHV0ID0gZXZlbnQuZ2V0U291cmNlKCk7XG5cdFx0cmV0dXJuIGV2ZW50XG5cdFx0XHQuZ2V0UGFyYW1ldGVyKFwicHJvbWlzZVwiKVxuXHRcdFx0Py50aGVuKFxuXHRcdFx0XHRmdW5jdGlvbiAodGhpczogQ29sbGFib3JhdGlvbkRyYWZ0LCBuZXdVc2VySWQ6IHN0cmluZyk6IHZvaWQge1xuXHRcdFx0XHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdXNlcklucHV0LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0XHRcdFx0Y29uc3QgaW52aXRlZFVzZXJzOiBVc2VyW10gPSBpbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcImludml0ZWRVc2Vyc1wiKSB8fCBbXTtcblx0XHRcdFx0XHRjb25zdCBuZXdVc2VyOiBVc2VyID0ge1xuXHRcdFx0XHRcdFx0aWQ6IGludGVybmFsTW9kZWxDb250ZXh0Py5nZXRQcm9wZXJ0eShcIlVzZXJJRFwiKSxcblx0XHRcdFx0XHRcdG5hbWU6IGludGVybmFsTW9kZWxDb250ZXh0Py5nZXRQcm9wZXJ0eShcIlVzZXJEZXNjcmlwdGlvblwiKVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0aWYgKGludml0ZWRVc2Vycy5maW5kSW5kZXgoKHVzZXIpID0+IHVzZXIuaWQgPT09IG5ld1VzZXJJZCkgPiAtMSkge1xuXHRcdFx0XHRcdFx0dXNlcklucHV0LnNldFZhbHVlU3RhdGUoXCJFcnJvclwiKTtcblx0XHRcdFx0XHRcdHVzZXJJbnB1dC5zZXRWYWx1ZVN0YXRlVGV4dCh0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfSU5WSVRBVElPTl9VU0VSX0VSUk9SXCIpKTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHRcdFx0IShcblx0XHRcdFx0XHRcdFx0aW52aXRlZFVzZXJzLmZpbmRJbmRleCgodXNlcikgPT4gdXNlci5pZCA9PT0gbmV3VXNlci5pZCkgPiAtMSB8fFxuXHRcdFx0XHRcdFx0XHQobmV3VXNlci5pZCA9PT0gbmV3VXNlci5uYW1lICYmIG5ld1VzZXIuaWQgPT09IFwiXCIpXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHR0aGlzLmFkZFVzZXIodXNlcklucHV0LCBpbnZpdGVkVXNlcnMsIG5ld1VzZXIpO1xuXHRcdFx0XHRcdFx0dXNlcklucHV0LnNldFZhbHVlU3RhdGUoXCJOb25lXCIpO1xuXHRcdFx0XHRcdFx0dXNlcklucHV0LnNldFZhbHVlU3RhdGVUZXh0KFwiXCIpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fS5iaW5kKHRoaXMpXG5cdFx0XHQpXG5cdFx0XHQuY2F0Y2goXG5cdFx0XHRcdGZ1bmN0aW9uICh0aGlzOiBDb2xsYWJvcmF0aW9uRHJhZnQpOiB2b2lkIHtcblx0XHRcdFx0XHR1c2VySW5wdXQuc2V0VmFsdWVTdGF0ZShcIldhcm5pbmdcIik7XG5cdFx0XHRcdFx0dXNlcklucHV0LnNldFZhbHVlU3RhdGVUZXh0KHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9JTlZJVEFUSU9OX1VTRVJfTk9UX0ZPVU5EXCIpKTtcblx0XHRcdFx0fS5iaW5kKHRoaXMpXG5cdFx0XHQpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIHRvIHJlbW92ZSBhIHVzZXIgZnJvbSB0aGUgbGlzdCBvZiBpbnZpdGVkIHVzZXIuXG5cdCAqIEBwYXJhbSBldmVudCBUaGUgZXZlbnQgb2JqZWN0IG9mIHRoZSByZW1vdmUgYnV0dG9uXG5cdCAqL1xuXHRyZW1vdmVVc2VyKGV2ZW50OiBFdmVudDx7fSwgQnV0dG9uPik6IHZvaWQge1xuXHRcdGNvbnN0IGl0ZW0gPSBldmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsQ29udGV4dCA9IGl0ZW0/LmdldEJpbmRpbmdDb250ZXh0KFwicGFnZUludGVybmFsXCIpO1xuXHRcdGNvbnN0IGRlbGV0ZVVzZXJJRCA9IGl0ZW0/LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIik/LmdldFByb3BlcnR5KFwiaWRcIik7XG5cdFx0bGV0IGludml0ZWRVc2VyczogVXNlcltdID0gaW50ZXJuYWxNb2RlbENvbnRleHQ/LmdldFByb3BlcnR5KFwiY29sbGFib3JhdGlvbi9pbnZpdGVkVXNlcnNcIik7XG5cdFx0aW52aXRlZFVzZXJzID0gaW52aXRlZFVzZXJzLmZpbHRlcigodXNlcikgPT4gdXNlci5pZCAhPT0gZGVsZXRlVXNlcklEKTtcblx0XHRpbnRlcm5hbE1vZGVsQ29udGV4dD8uc2V0UHJvcGVydHkoXCJjb2xsYWJvcmF0aW9uL2ludml0ZWRVc2Vyc1wiLCBpbnZpdGVkVXNlcnMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENhbGwgdGhlIHNoYXJlIGFjdGlvbiB0byB1cGRhdGUgdGhlIGxpc3Qgb2YgaW52aXRlZCB1c2Vycy5cblx0ICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCBvYmplY3Qgb2YgdGhlIGludml0ZSBidXR0b25cblx0ICovXG5cdGludml0ZVVzZXIgPSBhc3luYyAoZXZlbnQ6IEV2ZW50PHt9LCBCdXR0b24+KTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdFx0Y29uc3QgdXNlcnM6IEJhY2tlbmRVc2VyW10gPSBbXSxcblx0XHRcdG5ld2x5SW52aXRlZFVzZXJzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdGNvbnN0IHNvdXJjZSA9IGV2ZW50LmdldFNvdXJjZSgpO1xuXHRcdGNvbnN0IGJpbmRpbmdDb250ZXh0ID0gc291cmNlLmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dDtcblx0XHRjb25zdCBjb250ZXh0cyA9ICh0aGlzLm1hbmFnZURpYWxvZ1VzZXJUYWJsZT8uZ2V0QmluZGluZyhcInJvd3NcIikgYXMgT0RhdGFMaXN0QmluZGluZykuZ2V0Q29udGV4dHMoKTtcblx0XHRjb250ZXh0cy5mb3JFYWNoKGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cdFx0XHR1c2Vycy5wdXNoKHtcblx0XHRcdFx0VXNlcklEOiBjb250ZXh0LmdldFByb3BlcnR5KFwiaWRcIiksXG5cdFx0XHRcdFVzZXJBY2Nlc3NSb2xlOiBcIk9cIiAvLyBGb3Igbm93IGFjY29yZGluZyB0byBVWCBldmVyeSB1c2VyIHJldHJpZXZlcyB0aGUgb3duZXIgcm9sZVxuXHRcdFx0fSk7XG5cdFx0XHRpZiAoY29udGV4dC5nZXRQcm9wZXJ0eShcInN0YXR1c1wiKSA9PT0gVXNlclN0YXR1cy5Ob3RZZXRJbnZpdGVkKSB7XG5cdFx0XHRcdG5ld2x5SW52aXRlZFVzZXJzLnB1c2goY29udGV4dC5nZXRQcm9wZXJ0eShcImlkXCIpKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHRyeSB7XG5cdFx0XHQvLyBXZSByZXF1ZXN0IHRoZSBudW1iZXIgb2YgaW52aXRlZCB1c2VycyBhZnRlciB0aGUgc2hhcmUgYWN0aW9uIHRvIHNlZSBob3cgbWFueSB1c2VycyB3ZXJlIHJlYWxseSBpbnZpdGVkXG5cdFx0XHRjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoW3NoYXJlT2JqZWN0KGJpbmRpbmdDb250ZXh0LCB1c2VycyksIHRoaXMucmVxdWVzdEludml0ZWRVc2Vyc0luRHJhZnQoKV0pO1xuXHRcdFx0Y29uc3QgbmV3VXNlcnM6IENvbnRleHRbXSA9IFtdO1xuXHRcdFx0cmVzdWx0c1sxXS5mb3JFYWNoKChpbnZpdGVkVXNlcikgPT4ge1xuXHRcdFx0XHRpZiAobmV3bHlJbnZpdGVkVXNlcnMuaW5jbHVkZXMoaW52aXRlZFVzZXIuZ2V0UHJvcGVydHkoXCJVc2VySURcIikpKSB7XG5cdFx0XHRcdFx0bmV3VXNlcnMucHVzaChpbnZpdGVkVXNlcik7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0Y29uc3QgbWVzc2FnZUhhbmRsZXIgPSB0aGlzLmdldFBhZ2VDb250cm9sbGVyKCkhLm1lc3NhZ2VIYW5kbGVyO1xuXHRcdFx0YXdhaXQgbWVzc2FnZUhhbmRsZXIuc2hvd01lc3NhZ2VEaWFsb2coKTtcblxuXHRcdFx0c3dpdGNoIChuZXdVc2Vycy5sZW5ndGgpIHtcblx0XHRcdFx0Y2FzZSAwOlxuXHRcdFx0XHRcdE1lc3NhZ2VUb2FzdC5zaG93KFxuXHRcdFx0XHRcdFx0dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0lOVklUQVRJT05fU1VDQ0VTU19UT0FTVF9OT19VU0VSXCIsIFtcblx0XHRcdFx0XHRcdFx0dGhpcy5nZXRTaGFyZWRJdGVtTmFtZShiaW5kaW5nQ29udGV4dClcblx0XHRcdFx0XHRcdF0pXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSAxOlxuXHRcdFx0XHRcdE1lc3NhZ2VUb2FzdC5zaG93KFxuXHRcdFx0XHRcdFx0dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0lOVklUQVRJT05fU1VDQ0VTU19UT0FTVFwiLCBbdGhpcy5nZXRTaGFyZWRJdGVtTmFtZShiaW5kaW5nQ29udGV4dCldKVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0TWVzc2FnZVRvYXN0LnNob3coXG5cdFx0XHRcdFx0XHR0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfSU5WSVRBVElPTl9TVUNDRVNTX1RPQVNUX1BMVVJBTFwiLCBbXG5cdFx0XHRcdFx0XHRcdG5ld1VzZXJzLmxlbmd0aC50b1N0cmluZygpLFxuXHRcdFx0XHRcdFx0XHR0aGlzLmdldFNoYXJlZEl0ZW1OYW1lKGJpbmRpbmdDb250ZXh0KVxuXHRcdFx0XHRcdFx0XSlcblx0XHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2gge1xuXHRcdFx0TWVzc2FnZVRvYXN0LnNob3codGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0lOVklUQVRJT05fRkFJTEVEX1RPQVNUXCIpKTtcblx0XHR9XG5cdFx0dGhpcy5jbG9zZU1hbmFnZURpYWxvZygpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBGZXRjaGVzIHRoZSBsaXN0IG9mIHVzZXJzIHRoYXQgYXJlIGFscmVhZHkgaW52aXRlZCBpbiB0aGUgZHJhZnQuXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2l0aCB0aGUgbGlzdCBvZiB1c2VyIGNvbnRleHRzLlxuXHQgKi9cblx0cHJpdmF0ZSBhc3luYyByZXF1ZXN0SW52aXRlZFVzZXJzSW5EcmFmdCgpOiBQcm9taXNlPENvbnRleHRbXT4ge1xuXHRcdGNvbnN0IG1vZGVsID0gdGhpcy5nZXRNb2RlbCgpO1xuXHRcdGNvbnN0IHBhcmFtZXRlcnMgPSB7XG5cdFx0XHQkc2VsZWN0OiBcIlVzZXJJRCxVc2VyRGVzY3JpcHRpb24sVXNlckVkaXRpbmdTdGF0ZVwiLFxuXHRcdFx0JCRncm91cElkOiBcIiRhdXRvLldvcmtlcnNcIlxuXHRcdH07XG5cdFx0Y29uc3QgaW52aXRlZFVzZXJMaXN0ID0gbW9kZWw/LmJpbmRMaXN0KFxuXHRcdFx0YCR7dGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpPy5nZXRQYXRoKCl9L0RyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0RyYWZ0QWRtaW5pc3RyYXRpdmVVc2VyYCxcblx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdFtdLFxuXHRcdFx0W10sXG5cdFx0XHRwYXJhbWV0ZXJzXG5cdFx0KSBhcyBPRGF0YUxpc3RCaW5kaW5nO1xuXG5cdFx0Ly8gZm9yIG5vdyB3ZSBzZXQgYSBsaW1pdCB0byAxMDAuIHRoZXJlIHNob3VsZG4ndCBiZSBtb3JlIHRoYW4gYSBmZXdcblx0XHRyZXR1cm4gaW52aXRlZFVzZXJMaXN0LnJlcXVlc3RDb250ZXh0cygwLCAxMDApO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlYWRzIHRoZSBjdXJyZW50bHkgaW52aXRlZCB1c2VyIGFuZCBzdG9yZSBpdCBpbiB0aGUgaW50ZXJuYWwgbW9kZWwuXG5cdCAqIEByZXR1cm5zIFByb21pc2UgdGhhdCBpcyByZXNvbHZlZCBvbmNlIHRoZSB1c2VycyBhcmUgcmVhZC5cblx0ICovXG5cdHJlYWRJbnZpdGVkVXNlcnMgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdFx0Y29uc3QgaW50ZXJuYWxNb2RlbENvbnRleHQgPSB0aGlzLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgY3VycmVudFVzZXJMaXN0ID0gYXdhaXQgdGhpcy5yZXF1ZXN0SW52aXRlZFVzZXJzSW5EcmFmdCgpO1xuXHRcdFx0Y29uc3QgaW52aXRlZFVzZXJzOiBVc2VyW10gPSBbXTtcblx0XHRcdGNvbnN0IGFjdGl2ZVVzZXJzID0gdGhpcy5nZXRNb2RlbChcImludGVybmFsXCIpPy5nZXRQcm9wZXJ0eShcIi9jb2xsYWJvcmF0aW9uL2FjdGl2ZVVzZXJzXCIpIHx8IFtdO1xuXHRcdFx0Y29uc3QgbWUgPSBDb2xsYWJvcmF0aW9uVXRpbHMuZ2V0TWUodGhpcy5nZXRBcHBDb21wb25lbnQoKSEpO1xuXHRcdFx0bGV0IHVzZXJTdGF0dXM6IFVzZXJTdGF0dXM7XG5cdFx0XHRpZiAoY3VycmVudFVzZXJMaXN0Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0Y3VycmVudFVzZXJMaXN0LmZvckVhY2goKHVzZXJDb250ZXh0KSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgdXNlckRhdGEgPSB1c2VyQ29udGV4dC5nZXRPYmplY3QoKSBhcyBCYWNrZW5kVXNlcjtcblx0XHRcdFx0XHRjb25zdCBpc01lOiBib29sZWFuID0gbWU/LmlkID09PSB1c2VyRGF0YS5Vc2VySUQ7XG5cdFx0XHRcdFx0Y29uc3QgaXNBY3RpdmUgPSBhY3RpdmVVc2Vycy5maW5kKCh1OiBVc2VyKSA9PiB1LmlkID09PSB1c2VyRGF0YS5Vc2VySUQpO1xuXHRcdFx0XHRcdGxldCB1c2VyRGVzY3JpcHRpb24gPSB1c2VyRGF0YS5Vc2VyRGVzY3JpcHRpb24gfHwgdXNlckRhdGEuVXNlcklEO1xuXHRcdFx0XHRcdGNvbnN0IGluaXRpYWxzID0gQ29sbGFib3JhdGlvblV0aWxzLmZvcm1hdEluaXRpYWxzKHVzZXJEZXNjcmlwdGlvbik7XG5cdFx0XHRcdFx0dXNlckRlc2NyaXB0aW9uID0gaXNNZSA/IGAke0NvbGxhYm9yYXRpb25VdGlscy5nZXRUZXh0KFwiQ19DT0xMQUJPUkFUSU9ORFJBRlRfTUVcIiwgdXNlckRlc2NyaXB0aW9uKX1gIDogdXNlckRlc2NyaXB0aW9uO1xuXHRcdFx0XHRcdGlmIChpc0FjdGl2ZSkge1xuXHRcdFx0XHRcdFx0dXNlclN0YXR1cyA9IFVzZXJTdGF0dXMuQ3VycmVudGx5RWRpdGluZztcblx0XHRcdFx0XHR9IGVsc2UgaWYgKHVzZXJEYXRhLlVzZXJFZGl0aW5nU3RhdGUgPT09IFVzZXJFZGl0aW5nU3RhdGUuSW5Qcm9ncmVzcykge1xuXHRcdFx0XHRcdFx0dXNlclN0YXR1cyA9IFVzZXJTdGF0dXMuQ2hhbmdlc01hZGU7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHVzZXJTdGF0dXMgPSBVc2VyU3RhdHVzLk5vQ2hhbmdlc01hZGU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Y29uc3QgdXNlcjogVXNlciA9IHtcblx0XHRcdFx0XHRcdGlkOiB1c2VyRGF0YS5Vc2VySUQsXG5cdFx0XHRcdFx0XHRuYW1lOiB1c2VyRGVzY3JpcHRpb24sXG5cdFx0XHRcdFx0XHRzdGF0dXM6IHVzZXJTdGF0dXMsXG5cdFx0XHRcdFx0XHRjb2xvcjogQ29sbGFib3JhdGlvblV0aWxzLmdldFVzZXJDb2xvcih1c2VyRGF0YS5Vc2VySUQsIGFjdGl2ZVVzZXJzLCBpbnZpdGVkVXNlcnMpLFxuXHRcdFx0XHRcdFx0aW5pdGlhbHM6IGluaXRpYWxzLFxuXHRcdFx0XHRcdFx0bWU6IGlzTWVcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdGludml0ZWRVc2Vycy5wdXNoKHVzZXIpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vbm90IHlldCBzaGFyZWQsIGp1c3QgYWRkIG1lXG5cdFx0XHRcdGludml0ZWRVc2Vycy5wdXNoKG1lKTtcblx0XHRcdH1cblx0XHRcdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiY29sbGFib3JhdGlvbi9Vc2VySURcIiwgXCJcIik7XG5cdFx0XHRpbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcImNvbGxhYm9yYXRpb24vVXNlckRlc2NyaXB0aW9uXCIsIFwiXCIpO1xuXHRcdFx0aW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJjb2xsYWJvcmF0aW9uL2ludml0ZWRVc2Vyc1wiLCBpbnZpdGVkVXNlcnMpO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdE1lc3NhZ2VUb2FzdC5zaG93KHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0NPTExBQk9SQVRJT05EUkFGVF9SRUFESU5HX1VTRVJfRkFJTEVEXCIpKTtcblx0XHR9XG5cdH07XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgbmFtZSBvZiB0aGUgb2JqZWN0IHRvIGJlIHNoYXJlZC5cblx0ICogQHBhcmFtIGJpbmRpbmdDb250ZXh0IFRoZSBjb250ZXh0IG9mIHRoZSBwYWdlLlxuXHQgKiBAcmV0dXJucyBUaGUgbmFtZSBvZiB0aGUgb2JqZWN0IHRvIGJlIHNoYXJlZC5cblx0ICovXG5cdGdldFNoYXJlZEl0ZW1OYW1lKGJpbmRpbmdDb250ZXh0OiBDb250ZXh0KTogc3RyaW5nIHtcblx0XHRjb25zdCBoZWFkZXJJbmZvID0gdGhpcy5jb250ZXh0T2JqZWN0Py50YXJnZXRFbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5IZWFkZXJJbmZvO1xuXHRcdGxldCBzaGFyZWRJdGVtTmFtZSA9IFwiXCI7XG5cdFx0Y29uc3QgdGl0bGUgPSBoZWFkZXJJbmZvPy5UaXRsZTtcblx0XHRpZiAoXG5cdFx0XHR0aXRsZSAmJlxuXHRcdFx0aXNBbm5vdGF0aW9uT2ZUeXBlPERhdGFGaWVsZFR5cGVzPih0aXRsZSwgW1xuXHRcdFx0XHRVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGQsXG5cdFx0XHRcdFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhBY3Rpb24sXG5cdFx0XHRcdFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhBY3Rpb25Hcm91cCxcblx0XHRcdFx0VUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aE5hdmlnYXRpb25QYXRoLFxuXHRcdFx0XHRVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoSW50ZW50QmFzZWROYXZpZ2F0aW9uLFxuXHRcdFx0XHRVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoVXJsLFxuXHRcdFx0XHRVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoTmF2aWdhdGlvblBhdGhcblx0XHRcdF0pXG5cdFx0KSB7XG5cdFx0XHRzaGFyZWRJdGVtTmFtZSA9IGlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uKHRpdGxlLlZhbHVlKSA/IGJpbmRpbmdDb250ZXh0LmdldFByb3BlcnR5KHRpdGxlLlZhbHVlLnBhdGgpIDogdGl0bGUuVmFsdWU7XG5cdFx0fVxuXHRcdHJldHVybiBzaGFyZWRJdGVtTmFtZSB8fCAoaGVhZGVySW5mbz8uVHlwZU5hbWUgYXMgdW5rbm93biBhcyBzdHJpbmcpIHx8IFwiXCI7XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIHRoZSBkZWxlZ2F0ZSBwYXlsb2FkIGZvciB0aGUgdXNlciBmaWVsZCB2YWx1ZSBoZWxwLlxuXHQgKiBAcmV0dXJucyBUaGUgdmFsdWUgaGVscCBkZWxlZ2F0ZSBwYXlsb2FkXG5cdCAqL1xuXHRnZXRWYWx1ZUhlbHBEZWxlZ2F0ZSgpOiB7IG5hbWU6IHN0cmluZzsgcGF5bG9hZDogVmFsdWVIZWxwUGF5bG9hZCB9IHtcblx0XHQvLyBUaGUgbm9uIG51bGwgYXNzZXJ0aW9uIGlzIHNhZmUgaGVyZSwgYmVjYXVzZSB0aGUgYWN0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIGlmIHRoZSBhbm5vdGF0aW9uIGlzIHByZXNlbnRcblx0XHRjb25zdCBhY3Rpb25OYW1lID0gKFxuXHRcdFx0dGhpcy5jb250ZXh0T2JqZWN0Py50YXJnZXRFbnRpdHlTZXQhLmFubm90YXRpb25zLkNvbW1vbiBhcyBFbnRpdHlTZXRBbm5vdGF0aW9uc19Db21tb25cblx0XHQpLkRyYWZ0Um9vdCEuU2hhcmVBY3Rpb24hLnRvU3RyaW5nKCk7XG5cdFx0Ly8gV2UgYXJlIGFsc28gc3VyZSB0aGF0IHRoZSBhY3Rpb24gZXhpc3Rcblx0XHRjb25zdCBhY3Rpb24gPSB0aGlzLmNvbnRleHRPYmplY3Q/LnRhcmdldEVudGl0eVR5cGUucmVzb2x2ZVBhdGgoYWN0aW9uTmFtZSkgYXMgVm9jYWJ1bGFyeUFjdGlvbjtcblx0XHQvLyBCeSBkZWZpbml0aW9uIHRoZSBhY3Rpb24gaGFzIGEgcGFyYW1ldGVyIHdpdGggdGhlIG5hbWUgXCJVc2Vyc1wiXG5cdFx0Y29uc3QgdXNlclBhcmFtZXRlcnMgPSBhY3Rpb24ucGFyYW1ldGVycy5maW5kKChwYXJhbSkgPT4gcGFyYW0ubmFtZSA9PT0gVVNFUlNfUEFSQU1FVEVSUykhO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdG5hbWU6IFwic2FwL2ZlL21hY3Jvcy92YWx1ZWhlbHAvVmFsdWVIZWxwRGVsZWdhdGVcIixcblx0XHRcdHBheWxvYWQ6IHtcblx0XHRcdFx0cHJvcGVydHlQYXRoOiBgLyR7dXNlclBhcmFtZXRlcnMudHlwZX0vJHtVU0VSX0lEX1BBUkFNRVRFUn1gLFxuXHRcdFx0XHRxdWFsaWZpZXJzOiB7fSxcblx0XHRcdFx0dmFsdWVIZWxwUXVhbGlmaWVyOiBcIlwiLFxuXHRcdFx0XHRpc0FjdGlvblBhcmFtZXRlckRpYWxvZzogdHJ1ZVxuXHRcdFx0fVxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGUgdGhlIGV4cHJlc3Npb24gYmluZGluZyBvZiB0aGUgSW52aXRhdGlvbiBkaWFsb2cuXG5cdCAqIEByZXR1cm5zIFRoZSBkaWFsb2cgdGl0bGUgYmluZGluZyBleHByZXNzaW9uXG5cdCAqL1xuXHRnZXRJbnZpdGF0aW9uRGlhbG9nVGl0bGVFeHBCaW5kaW5nKCk6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHtcblx0XHRjb25zdCBoZWFkZXJJbmZvID0gdGhpcy5jb250ZXh0T2JqZWN0Py50YXJnZXRFbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5IZWFkZXJJbmZvO1xuXHRcdGNvbnN0IHRpdGxlID0gZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKChoZWFkZXJJbmZvPy5UaXRsZSBhcyBEYXRhRmllbGQgfCB1bmRlZmluZWQpPy5WYWx1ZSwgW10sIFwiXCIpO1xuXHRcdGNvbnN0IHBhcmFtcyA9IFtcIkNfQ09MTEFCT1JBVElPTkRSQUZUX0lOVklUQVRJT05fRElBTE9HXCIsIGhlYWRlckluZm8/LlR5cGVOYW1lLnRvU3RyaW5nKCksIHRpdGxlXTtcblx0XHRjb25zdCB0aXRsZUV4cHJlc3Npb24gPSBmb3JtYXRSZXN1bHQocGFyYW1zLCBjb2xsYWJvcmF0aW9uRm9ybWF0dGVyLmdldEZvcm1hdHRlZFRleHQpO1xuXHRcdHJldHVybiBjb21waWxlRXhwcmVzc2lvbih0aXRsZUV4cHJlc3Npb24pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgdG8gY2xvc2UgdGhlIG1hbmFnZSBkaWFsb2cuXG5cdCAqXG5cdCAqL1xuXHRjbG9zZU1hbmFnZURpYWxvZyA9ICgpOiB2b2lkID0+IHtcblx0XHR0aGlzLm1hbmFnZURpYWxvZz8uY2xvc2UoKTtcblx0XHR0aGlzLm1hbmFnZURpYWxvZz8uZGVzdHJveSgpO1xuXHRcdGRlbGV0ZSB0aGlzLm1hbmFnZURpYWxvZztcblx0fTtcblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgaW52aXRlIGJ1dHRvbiBpZiB0aGVyZSdzIGEgc2hhcmUgYWN0aW9uIG9uIHJvb3QgbGV2ZWwuXG5cdCAqIEByZXR1cm5zIFRoZSBjb250cm9sIHRyZWVcblx0ICovXG5cdGdldEludml0ZUJ1dHRvbigpOiBIQm94IHtcblx0XHRpZiAoKHRoaXMuY29udGV4dE9iamVjdD8udGFyZ2V0RW50aXR5U2V0Py5hbm5vdGF0aW9ucy5Db21tb24gYXMgRW50aXR5U2V0QW5ub3RhdGlvbnNfQ29tbW9uKT8uRHJhZnRSb290Py5TaGFyZUFjdGlvbikge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0PEhCb3ggdmlzaWJsZT1cInt1aT4vaXNFZGl0YWJsZX1cIiBhbGlnbkl0ZW1zPVwiQ2VudGVyXCIganVzdGlmeUNvbnRlbnQ9XCJTdGFydFwiPlxuXHRcdFx0XHRcdDxBdmF0YXIgYmFja2dyb3VuZENvbG9yPVwiVGlsZUljb25cIiBzcmM9XCJzYXAtaWNvbjovL2FkZC1lbXBsb3llZVwiIGRpc3BsYXlTaXplPVwiWFNcIiBwcmVzcz17dGhpcy5tYW5hZ2VDb2xsYWJvcmF0aW9ufSAvPlxuXHRcdFx0XHQ8L0hCb3g+XG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gPEhCb3ggLz47XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGNvbnRlbnQgb2YgdGhlIGNvbGxhYm9yYXRpb24gZHJhZnQgYnVpbGRpbmcgYmxvY2suXG5cdCAqIEByZXR1cm5zIFRoZSBjb250cm9sIHRyZWVcblx0ICovXG5cdGNyZWF0ZUNvbnRlbnQoKTogQ29udHJvbCB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHRoaXMuX2dldE93bmVyKCk/LmdldE1ldGFNb2RlbCgpICYmIE1vZGVsSGVscGVyLmlzQ29sbGFib3JhdGlvbkRyYWZ0U3VwcG9ydGVkKHRoaXMuX2dldE93bmVyKCkhLmdldE1ldGFNb2RlbCgpKSkge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0PEhCb3g+XG5cdFx0XHRcdFx0PEhCb3hcblx0XHRcdFx0XHRcdGl0ZW1zPXt7IHBhdGg6IFwiaW50ZXJuYWw+L2NvbGxhYm9yYXRpb24vYWN0aXZlVXNlcnNcIiB9fVxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJzYXBVaVRpbnlNYXJnaW5CZWdpblwiXG5cdFx0XHRcdFx0XHR2aXNpYmxlPVwiez0gJHt1aT4vaXNFZGl0YWJsZX0gJmFtcDsmYW1wOyAke2ludGVybmFsPi9jb2xsYWJvcmF0aW9uL2Nvbm5lY3RlZH0gfVwiXG5cdFx0XHRcdFx0XHRhbGlnbkl0ZW1zPVwiQ2VudGVyXCJcblx0XHRcdFx0XHRcdGp1c3RpZnlDb250ZW50PVwiU3RhcnRcIlxuXHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdDxBdmF0YXJcblx0XHRcdFx0XHRcdFx0aW5pdGlhbHM9XCJ7aW50ZXJuYWw+aW5pdGlhbHN9XCJcblx0XHRcdFx0XHRcdFx0ZGlzcGxheVNpemU9XCJYU1wiXG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmRDb2xvcj1cIntpbnRlcm5hbD5jb2xvcn1cIlxuXHRcdFx0XHRcdFx0XHRwcmVzcz17dGhpcy5zaG93Q29sbGFib3JhdGlvblVzZXJEZXRhaWxzfVxuXHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHQ8L0hCb3g+XG5cdFx0XHRcdFx0e3RoaXMuZ2V0SW52aXRlQnV0dG9uKCl9XG5cdFx0XHRcdDwvSEJveD5cblx0XHRcdCk7XG5cdFx0fVxuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF1REEsTUFBTUEsZ0JBQWdCLEdBQUcsT0FBTztFQUNoQyxNQUFNQyxpQkFBaUIsR0FBRyxRQUFRO0VBQUMsSUFHZEMsa0JBQWtCLElBQUFDLElBQUEsR0FEdENDLGNBQWMsQ0FBQywyREFBMkQsQ0FBQyxFQUFBQyxLQUFBLEdBRTFFQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFFBQVE7SUFBRUMsUUFBUSxFQUFFO0VBQUssQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHNUNILFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsRUFBQUosSUFBQSxDQUFBTyxNQUFBLElBQUFDLE9BQUEsMEJBQUFDLGNBQUE7SUFpQjdC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
|