@magic-xpa/gui 4.800.0-dev480.13 → 4.800.0-dev480.133
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/bundles/magic-xpa-gui.umd.js +1057 -7516
- package/bundles/magic-xpa-gui.umd.js.map +1 -1
- package/bundles/magic-xpa-gui.umd.min.js +1 -1
- package/bundles/magic-xpa-gui.umd.min.js.map +1 -1
- package/esm2015/index.js +1 -1
- package/esm2015/magic-xpa-gui.js +1 -4
- package/esm2015/src/Commands.js +7 -114
- package/esm2015/src/Events.js +1 -517
- package/esm2015/src/EventsProcessor.js +1 -51
- package/esm2015/src/FocusManager.js +1 -13
- package/esm2015/src/GuiConstants.js +2 -11
- package/esm2015/src/GuiEnums.js +127 -130
- package/esm2015/src/GuiEnvironment.js +1 -1
- package/esm2015/src/IFlowMonitorQueue.js +1 -1
- package/esm2015/src/Manager.js +10 -148
- package/esm2015/src/UIBridge.js +1 -6
- package/esm2015/src/env/IEnvironment.js +1 -1
- package/esm2015/src/gui/ControlBase.js +1 -1
- package/esm2015/src/gui/GuiMgControl.js +1 -94
- package/esm2015/src/gui/GuiMgForm.js +1 -1
- package/esm2015/src/gui/KeyboardItem.js +5 -46
- package/esm2015/src/gui/LastFocusedVal.js +1 -5
- package/esm2015/src/gui/MgValue.js +1 -1
- package/esm2015/src/gui/PropParentInterface.js +1 -1
- package/esm2015/src/gui/low/DialogHandler.js +1 -10
- package/esm2015/src/gui/low/GuiCommand.js +1 -12
- package/esm2015/src/gui/low/GuiCommandQueue.js +1 -66
- package/esm2015/src/gui/low/GuiInteractive.js +2 -465
- package/esm2015/src/gui/low/Style.js +1 -9
- package/esm2015/src/management/RuntimeContextBase.js +9 -14
- package/esm2015/src/management/data/BlobType.js +0 -0
- package/esm2015/src/management/data/DcValues.js +8 -67
- package/esm2015/src/management/data/DcValuesBuilderBase.js +2 -37
- package/esm2015/src/management/data/FieldDef.js +1 -95
- package/esm2015/src/management/data/FieldsTable.js +2 -28
- package/esm2015/src/management/data/GuiDataViewBase.js +33 -72
- package/esm2015/src/management/data/GuiFieldBase.js +4 -39
- package/esm2015/src/management/data/IRecord.js +1 -1
- package/esm2015/src/management/data/IReferencedObject.js +1 -8
- package/esm2015/src/management/data/NUM_TYPE.js +14 -485
- package/esm2015/src/management/data/ObjectReferenceBase.js +1 -3
- package/esm2015/src/management/data/ObjectReferencesCollection.js +1 -2
- package/esm2015/src/management/data/RecordUtils.js +6 -112
- package/esm2015/src/management/data/VectorType.js +17 -252
- package/esm2015/src/management/data/VectorTypeBase.js +1 -35
- package/esm2015/src/management/events/IActionManager.js +1 -1
- package/esm2015/src/management/events/IGuiEventsManager.js +1 -1
- package/esm2015/src/management/exp/ExpressionInterface.js +4 -3
- package/esm2015/src/management/exp/GuiExpressionEvaluator.js +38 -155
- package/esm2015/src/management/gui/ControlTable.js +18 -72
- package/esm2015/src/management/gui/DisplayConvertor.js +43 -493
- package/esm2015/src/management/gui/FieldValidator.js +58 -339
- package/esm2015/src/management/gui/GuiControlPropertyAdapter.js +1 -1
- package/esm2015/src/management/gui/GuiFormPropertyAdapter.js +1 -8
- package/esm2015/src/management/gui/HebrewDate.js +3 -140
- package/esm2015/src/management/gui/Helps.js +2 -48
- package/esm2015/src/management/gui/MgControlBase.js +160 -874
- package/esm2015/src/management/gui/MgFormBase.js +68 -407
- package/esm2015/src/management/gui/PIC.js +56 -285
- package/esm2015/src/management/gui/PropDefaults.js +13 -48
- package/esm2015/src/management/gui/PropInterface.js +3 -4
- package/esm2015/src/management/gui/PropTable.js +72 -183
- package/esm2015/src/management/gui/Property.js +40 -373
- package/esm2015/src/management/gui/ValidationDetails.js +10 -52
- package/esm2015/src/management/gui/ValidationDetailsBase.js +12 -45
- package/esm2015/src/management/gui/WrongFormatException.js +1 -15
- package/esm2015/src/management/tasks/GuiDataCollection.js +1 -1
- package/esm2015/src/management/tasks/GuiTaskBase.js +38 -383
- package/esm2015/src/management/tasks/IMGDataTable.js +1 -1
- package/esm2015/src/management/tasks/ITask.js +1 -1
- package/esm2015/src/management/tasks/MgTimer.js +1 -16
- package/esm2015/src/management/tasks/TaskDefinitionId.js +1 -18
- package/esm2015/src/management/tasks/TaskDefinitionIdTableSaxHandler.js +1 -13
- package/esm2015/src/util/AuthenticationDialogHandler.js +1 -4
- package/esm2015/src/util/MemoryUtil.js +1 -41
- package/esm2015/src/util/ObjectReference.js +1 -8
- package/esm2015/src/util/ProcessLauncher.js +3 -21
- package/esm2015/src/util/UsernamePasswordCredentials.js +1 -9
- package/fesm2015/magic-xpa-gui.js +859 -7051
- package/fesm2015/magic-xpa-gui.js.map +1 -1
- package/magic-xpa-gui.d.ts +0 -3
- package/package.json +2 -2
- package/src/Commands.d.ts +1 -0
- package/src/Events.d.ts +0 -2
- package/src/GuiEnums.d.ts +127 -129
- package/src/env/IEnvironment.d.ts +3 -0
- package/src/gui/GuiMgControl.d.ts +1 -0
- package/src/gui/PropParentInterface.d.ts +1 -1
- package/src/gui/low/Style.d.ts +0 -3
- package/src/management/data/GuiDataViewBase.d.ts +4 -4
- package/src/management/data/IRecord.d.ts +1 -1
- package/src/management/exp/ExpressionInterface.d.ts +3 -0
- package/src/management/exp/GuiExpressionEvaluator.d.ts +4 -6
- package/src/management/gui/ControlTable.d.ts +1 -1
- package/src/management/gui/DisplayConvertor.d.ts +1 -1
- package/src/management/gui/GuiControlPropertyAdapter.d.ts +1 -1
- package/src/management/gui/MgControlBase.d.ts +8 -7
- package/src/management/gui/MgFormBase.d.ts +6 -6
- package/src/management/gui/PIC.d.ts +1 -0
- package/src/management/gui/PropInterface.d.ts +3 -4
- package/src/management/gui/PropTable.d.ts +4 -5
- package/src/management/gui/Property.d.ts +1 -1
- package/src/management/tasks/GuiTaskBase.d.ts +8 -14
package/esm2015/index.js
CHANGED
|
@@ -70,4 +70,4 @@ export * from "./src/util/MemoryUtil";
|
|
|
70
70
|
export * from "./src/util/ObjectReference";
|
|
71
71
|
export * from "./src/util/ProcessLauncher";
|
|
72
72
|
export * from "./src/util/UsernamePasswordCredentials";
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3NyYy9Db21tYW5kc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0V2ZW50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0V2ZW50c1Byb2Nlc3NvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0ZvY3VzTWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0d1aUNvbnN0YW50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0d1aUVudW1zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvR3VpRW52aXJvbm1lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9JRmxvd01vbml0b3JRdWV1ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL01hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9VSUJyaWRnZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2Vudi9JRW52aXJvbm1lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ndWkvQ29udHJvbEJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ndWkvR3VpTWdDb250cm9sXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZ3VpL0d1aU1nRm9ybVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2d1aS9LZXlib2FyZEl0ZW1cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ndWkvTGFzdEZvY3VzZWRWYWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ndWkvTWdWYWx1ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2d1aS9Qcm9wUGFyZW50SW50ZXJmYWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZ3VpL2xvdy9EaWFsb2dIYW5kbGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZ3VpL2xvdy9HdWlDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZ3VpL2xvdy9HdWlDb21tYW5kUXVldWVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ndWkvbG93L0d1aUludGVyYWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZ3VpL2xvdy9TdHlsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvUnVudGltZUNvbnRleHRCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9kYXRhL0Jsb2JUeXBlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9kYXRhL0RjVmFsdWVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9kYXRhL0RjVmFsdWVzQnVpbGRlckJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2RhdGEvRmllbGREZWZcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2RhdGEvRmllbGRzVGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2RhdGEvR3VpRGF0YVZpZXdCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9kYXRhL0d1aUZpZWxkQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZGF0YS9JUmVjb3JkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9kYXRhL0lSZWZlcmVuY2VkT2JqZWN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9kYXRhL05VTV9UWVBFXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9kYXRhL09iamVjdFJlZmVyZW5jZUJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2RhdGEvT2JqZWN0UmVmZXJlbmNlc0NvbGxlY3Rpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2RhdGEvUmVjb3JkVXRpbHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2RhdGEvVmVjdG9yVHlwZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZGF0YS9WZWN0b3JUeXBlQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZXZlbnRzL0lBY3Rpb25NYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9ldmVudHMvSUd1aUV2ZW50c01hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2V4cC9FeHByZXNzaW9uSW50ZXJmYWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9leHAvR3VpRXhwcmVzc2lvbkV2YWx1YXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL0NvbnRyb2xUYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL0Rpc3BsYXlDb252ZXJ0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2d1aS9GaWVsZFZhbGlkYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL0d1aUNvbnRyb2xQcm9wZXJ0eUFkYXB0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2d1aS9HdWlGb3JtUHJvcGVydHlBZGFwdGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9ndWkvSGVicmV3RGF0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL0hlbHBzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC9ndWkvTWdDb250cm9sQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL01nRm9ybUJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2d1aS9QSUNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2d1aS9Qcm9wRGVmYXVsdHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2d1aS9Qcm9wZXJ0eVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL1Byb3BJbnRlcmZhY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2d1aS9Qcm9wVGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L2d1aS9WYWxpZGF0aW9uRGV0YWlsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL1ZhbGlkYXRpb25EZXRhaWxzQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvZ3VpL1dyb25nRm9ybWF0RXhjZXB0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvbWFuYWdlbWVudC90YXNrcy9HdWlEYXRhQ29sbGVjdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvdGFza3MvR3VpVGFza0Jhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L3Rhc2tzL0lNR0RhdGFUYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL21hbmFnZW1lbnQvdGFza3MvSVRhc2tcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L3Rhc2tzL01nVGltZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L3Rhc2tzL1Rhc2tEZWZpbml0aW9uSWRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9tYW5hZ2VtZW50L3Rhc2tzL1Rhc2tEZWZpbml0aW9uSWRUYWJsZVNheEhhbmRsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy91dGlsL0F1dGhlbnRpY2F0aW9uRGlhbG9nSGFuZGxlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3V0aWwvTWVtb3J5VXRpbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3V0aWwvT2JqZWN0UmVmZXJlbmNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdXRpbC9Qcm9jZXNzTGF1bmNoZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy91dGlsL1VzZXJuYW1lUGFzc3dvcmRDcmVkZW50aWFsc1wiO1xuIl19
|
package/esm2015/magic-xpa-gui.js
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
1
|
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMteHBhLWd1aS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9tYWdpYy14cGEtZ3VpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
package/esm2015/src/Commands.js
CHANGED
|
@@ -5,35 +5,15 @@ import { GuiMgControl } from './gui/GuiMgControl';
|
|
|
5
5
|
import { CommandType } from './GuiEnums';
|
|
6
6
|
import { GuiCommandQueue } from './gui/low/GuiCommandQueue';
|
|
7
7
|
import { GuiCommand } from './gui/low/GuiCommand';
|
|
8
|
-
/// <summary>
|
|
9
|
-
/// Commands to the GUI thread.
|
|
10
|
-
/// There’re two types of commands (grouped in #regions):
|
|
11
|
-
/// 1. Commands that are executed immediately.
|
|
12
|
-
/// 2. Commands that are queued (overloaded methods ‘addAsync’) and then executed,
|
|
13
|
-
/// either synchronously (method ‘invoke’) or asynchronously (method ‘beginInvoke’).
|
|
14
|
-
/// </summary>
|
|
15
8
|
export class Commands {
|
|
16
9
|
constructor() {
|
|
17
10
|
}
|
|
18
|
-
/// <summary>
|
|
19
|
-
/// save the callback
|
|
20
|
-
/// </summary>
|
|
21
11
|
static SetResolveCallback(resolveCallback) {
|
|
22
12
|
this.resolveCallback = resolveCallback;
|
|
23
13
|
}
|
|
24
|
-
/// <summary>
|
|
25
|
-
/// resolve promise
|
|
26
|
-
/// </summary>
|
|
27
14
|
static ResolvePromise(result) {
|
|
28
15
|
this.resolveCallback(result);
|
|
29
16
|
}
|
|
30
|
-
/// <summary>
|
|
31
|
-
/// Sync call to display message box
|
|
32
|
-
/// </summary>
|
|
33
|
-
/// <param name = "title"></param>
|
|
34
|
-
/// <param name = "msg"></param>
|
|
35
|
-
/// <param name = "style"></param>
|
|
36
|
-
/// <returns></returns>
|
|
37
17
|
static messageBox(title, msg, style) {
|
|
38
18
|
return __awaiter(this, void 0, void 0, function* () {
|
|
39
19
|
let guiInteractive = new GuiInteractive();
|
|
@@ -41,124 +21,50 @@ export class Commands {
|
|
|
41
21
|
yield new Promise((resolve, reject) => {
|
|
42
22
|
this.SetResolveCallback(resolve);
|
|
43
23
|
guiInteractive.messageBox(title, msg, style);
|
|
44
|
-
// save the resolve callback on EventsManager, so that it can be resolved on closing modal window
|
|
45
24
|
}).then((res) => { returnValue = res; });
|
|
46
25
|
return returnValue;
|
|
47
26
|
});
|
|
48
27
|
}
|
|
49
|
-
/// <summary>
|
|
50
|
-
/// set title to browser
|
|
51
|
-
/// </summary>
|
|
52
|
-
/// <param name = "topMostForm"></param>
|
|
53
|
-
/// <param name = "title"></param>
|
|
54
28
|
static setTitle(topMostForm, title) {
|
|
55
29
|
let guiInteractive = new GuiInteractive();
|
|
56
30
|
guiInteractive.setTitle(topMostForm, title);
|
|
57
31
|
}
|
|
58
|
-
/// <summary>
|
|
59
|
-
/// Sync call. This methode is set TRUE\FALSE that GuiUtiles\GetValue() method will be use
|
|
60
|
-
/// this falg say if to return the : (true) suggested value or (false)the real value
|
|
61
|
-
/// this method is use for MG_ACT_CTRL_MODIFY
|
|
62
|
-
/// </summary>
|
|
63
|
-
/// <param name = "ctrl"></param>
|
|
64
|
-
/// <param name = "retSuggestedValue"></param>
|
|
65
32
|
static setGetSuggestedValueOfChoiceControlOnTagData(ctrl, line, retSuggestedValue) {
|
|
66
33
|
let guiInteractive = new GuiInteractive();
|
|
67
34
|
guiInteractive.setGetSuggestedValueOfChoiceControlOnTagData(ctrl, line, retSuggestedValue);
|
|
68
35
|
}
|
|
69
|
-
/// <summary>
|
|
70
|
-
/// Sync call to get value of the control
|
|
71
|
-
/// </summary>
|
|
72
|
-
/// <param name = "obj"></param>
|
|
73
|
-
/// <param name = "mgValue"></param>
|
|
74
|
-
/// <param name = "line"></param>
|
|
75
36
|
static getValue(obj, line) {
|
|
76
37
|
let guiInteractive = new GuiInteractive();
|
|
77
38
|
return guiInteractive.getValue(obj, line);
|
|
78
39
|
}
|
|
79
|
-
/// <summary>
|
|
80
|
-
/// Sync call to get table top index
|
|
81
|
-
/// </summary>
|
|
82
|
-
/// <param name = "tablecontrol"></param>
|
|
83
|
-
/// <returns></returns>
|
|
84
40
|
static getTopIndex(tablecontrol) {
|
|
85
41
|
let guiInteractive = new GuiInteractive();
|
|
86
42
|
return guiInteractive.getTopIndex(tablecontrol);
|
|
87
43
|
}
|
|
88
|
-
/// <summary>
|
|
89
|
-
/// Sync call to get is row editing on row index
|
|
90
|
-
/// </summary>
|
|
91
|
-
/// <param name = "tablecontrol"></param>
|
|
92
|
-
/// <returns></returns>
|
|
93
44
|
static getIsRowEditing(tablecontrol, rowIndex, isLineMode) {
|
|
94
45
|
let guiInteractive = new GuiInteractive();
|
|
95
46
|
return guiInteractive.getIsRowEditing(tablecontrol, rowIndex, isLineMode);
|
|
96
47
|
}
|
|
97
|
-
/// <summary>
|
|
98
|
-
/// Sync call to execute browser
|
|
99
|
-
/// </summary>
|
|
100
|
-
/// <param name = "browserControl"></param>
|
|
101
|
-
/// <param name = "text"></param>
|
|
102
|
-
/// <param name = "syncExec"></param>
|
|
103
|
-
/// <param name = "language"></param>
|
|
104
48
|
static browserExecute(browserControl, text, syncExec, language) {
|
|
105
49
|
let guiInteractive = new GuiInteractive();
|
|
106
50
|
return guiInteractive.browserExecute(browserControl, text, syncExec, language);
|
|
107
51
|
}
|
|
108
|
-
/// <summary>
|
|
109
|
-
/// Sync call to Directory Dialog Box
|
|
110
|
-
/// </summary>
|
|
111
|
-
/// <param name = "caption">description for the dialog window</param>
|
|
112
|
-
/// <param name = "path">initial path to browse</param>
|
|
113
|
-
/// <param name = "bShowNewFolder">should show the new folder button?</param>
|
|
114
|
-
/// <returns>directory path selected by user</returns>
|
|
115
52
|
static directoryDialogBox(caption, path, bShowNewFolder) {
|
|
116
53
|
let guiInteractive = new GuiInteractive();
|
|
117
54
|
return guiInteractive.directoryDialogBox(caption, path, bShowNewFolder);
|
|
118
55
|
}
|
|
119
|
-
/// <summary>
|
|
120
|
-
/// Sync call to File Open Dialog Box
|
|
121
|
-
/// </summary>
|
|
122
|
-
/// <param name = "title">Dialog window caption</param>
|
|
123
|
-
/// <param name = "dirName">Initial directory</param>
|
|
124
|
-
/// <param name = "fileName"></param>
|
|
125
|
-
/// <param name = "filterNames">filter string</param>
|
|
126
|
-
/// <param name = "checkExists">verify opened file exists</param>
|
|
127
|
-
/// <param name = "multiSelect">enable selecting multiple files</param>
|
|
128
|
-
/// <returns>file path selected by user</returns>
|
|
129
56
|
static fileOpenDialogBox(title, dirName, fileName, filterNames, checkExists, multiSelect) {
|
|
130
57
|
let guiInteractive = new GuiInteractive();
|
|
131
58
|
return guiInteractive.fileOpenDialogBox(title, dirName, fileName, filterNames, checkExists, multiSelect);
|
|
132
59
|
}
|
|
133
|
-
/// <summary>
|
|
134
|
-
/// Sync call to set the text to the the control
|
|
135
|
-
/// </summary>
|
|
136
|
-
/// <param name = "control"></param>
|
|
137
|
-
/// <param name = "line"></param>
|
|
138
|
-
/// <param name = "text"></param>
|
|
139
|
-
/// <returns></returns>
|
|
140
60
|
static setEditText(control, line, text) {
|
|
141
61
|
let guiInteractive = new GuiInteractive();
|
|
142
62
|
return guiInteractive.setEditText(control, line, text);
|
|
143
63
|
}
|
|
144
|
-
/// <summary>
|
|
145
|
-
/// Insert text to a text control at a given position
|
|
146
|
-
/// </summary>
|
|
147
|
-
/// <param name = "control"></param>
|
|
148
|
-
/// <param name = "line"></param>
|
|
149
|
-
/// <param name = "startPosition">where to add the text</param>
|
|
150
|
-
/// <param name = "textToInsert">the text to add</param>
|
|
151
|
-
/// <returns></returns>
|
|
152
64
|
static insertEditText(control, line, startPosition, textToInsert) {
|
|
153
65
|
let guiInteractive = new GuiInteractive();
|
|
154
66
|
return guiInteractive.insertEditText(control, line, startPosition, textToInsert);
|
|
155
67
|
}
|
|
156
|
-
/// <summary>
|
|
157
|
-
/// Sync call to get the position of the caret on the control
|
|
158
|
-
/// </summary>
|
|
159
|
-
/// <param name = "control"></param>
|
|
160
|
-
/// <param name = "line"></param>
|
|
161
|
-
/// <param name = "mgValue"></param>
|
|
162
68
|
static caretPosGet(control, line) {
|
|
163
69
|
let guiInteractive = new GuiInteractive();
|
|
164
70
|
return guiInteractive.caretPosGet(control, line);
|
|
@@ -167,21 +73,11 @@ export class Commands {
|
|
|
167
73
|
let guiInteractive = new GuiInteractive();
|
|
168
74
|
guiInteractive.RefreshPage(navigateToRootRoute, initialUrl);
|
|
169
75
|
}
|
|
170
|
-
/// <summary>
|
|
171
|
-
/// Sync call to get number of rows in the table
|
|
172
|
-
/// </summary>
|
|
173
|
-
/// <param name = "control"></param>
|
|
174
|
-
/// <returns></returns>
|
|
175
76
|
static getRowsInPage(control) {
|
|
176
77
|
let guiInteractive = new GuiInteractive();
|
|
177
78
|
let rowsInPage = guiInteractive.getRowsInPage(control);
|
|
178
79
|
return (rowsInPage === 0 ? 1 : rowsInPage);
|
|
179
80
|
}
|
|
180
|
-
/// <summary>
|
|
181
|
-
/// Get max no of rows in paginated table
|
|
182
|
-
/// </summary>
|
|
183
|
-
/// <param name = "control"></param>
|
|
184
|
-
/// <returns></returns>
|
|
185
81
|
static getMaxRowsInPaginatedTable(control) {
|
|
186
82
|
let guiInteractive = new GuiInteractive();
|
|
187
83
|
let maxRows = guiInteractive.getMaxRowsInPaginatedTable(control);
|
|
@@ -264,29 +160,26 @@ export class Commands {
|
|
|
264
160
|
guiCommand.Bool1 = setBool;
|
|
265
161
|
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
266
162
|
}
|
|
267
|
-
// adds a command to show or hide the spinner
|
|
268
163
|
static addShowSpinner(show) {
|
|
269
164
|
let guiCommand = new GuiCommand(null, CommandType.SHOW_SPINNER);
|
|
270
165
|
guiCommand.Bool1 = show;
|
|
271
166
|
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
272
167
|
}
|
|
273
|
-
// adds a command which is not related to a specific task
|
|
274
168
|
static addGlobalCommand(commandType) {
|
|
275
169
|
let guiCommand = new GuiCommand(null, commandType);
|
|
276
170
|
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
277
171
|
}
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
172
|
+
static addShowHTMLError(commandType, error) {
|
|
173
|
+
let guiCommand = new GuiCommand(null, commandType);
|
|
174
|
+
guiCommand.str = error;
|
|
175
|
+
GuiCommandQueue.getInstance().addCommand(guiCommand);
|
|
176
|
+
}
|
|
281
177
|
static beginInvoke() {
|
|
282
178
|
GuiCommandQueue.getInstance().beginInvoke();
|
|
283
179
|
}
|
|
284
|
-
/// <summary>
|
|
285
|
-
/// execute all pending commands, synchronously
|
|
286
|
-
/// </summary>
|
|
287
180
|
static invoke() {
|
|
288
181
|
GuiCommandQueue.getInstance().invoke();
|
|
289
182
|
}
|
|
290
183
|
}
|
|
291
|
-
Commands.resolveCallback = null;
|
|
292
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL0NvbW1hbmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEQsYUFBYTtBQUNiLGlDQUFpQztBQUNqQywyREFBMkQ7QUFDM0QsbURBQW1EO0FBQ25ELHVGQUF1RjtBQUN2Riw0RkFBNEY7QUFDNUYsY0FBYztBQUNkLE1BQU0sT0FBTyxRQUFRO0lBOFRuQjtJQUNBLENBQUM7SUExVEQsYUFBYTtJQUNiLHFCQUFxQjtJQUNyQixjQUFjO0lBQ2QsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGVBQWU7UUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFDekMsQ0FBQztJQUVELGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBYztRQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxhQUFhO0lBQ2Isc0NBQXNDO0lBQ3RDLGNBQWM7SUFDZCxrQ0FBa0M7SUFDbEMsZ0NBQWdDO0lBQ2hDLGtDQUFrQztJQUNsQyx1QkFBdUI7SUFDdkIsTUFBTSxDQUFPLFVBQVUsQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLEtBQWE7O1lBQy9ELElBQUksY0FBYyxHQUFtQixJQUFJLGNB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SSxFQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1RSxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUN4QixlQUFlLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCx5REFBeUQ7SUFDekQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQXdCO1FBQzlDLElBQUksVUFBVSxHQUFlLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMvRCxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxhQUFhO0lBQ2Isa0RBQWtEO0lBQ2xELGNBQWM7SUFDZCxNQUFNLENBQUMsV0FBVztRQUNoQixlQUFlLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELGFBQWE7SUFDYixpREFBaUQ7SUFDakQsY0FBYztJQUNkLE1BQU0sQ0FBQyxNQUFNO1FBQ1gsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pDLENBQUM7O0FBelRlLHdCQUFlLEdBQUcsSUFBSSxDQUFDLENBQUMsa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdCB9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHsgR3VpTWdGb3JtIH0gZnJvbSAnLi9ndWkvR3VpTWdGb3JtJztcclxuaW1wb3J0IHsgR3VpSW50ZXJhY3RpdmUgfSBmcm9tICcuL2d1aS9sb3cvR3VpSW50ZXJhY3RpdmUnO1xyXG5pbXBvcnQgeyBHdWlNZ0NvbnRyb2wgfSBmcm9tICcuL2d1aS9HdWlNZ0NvbnRyb2wnO1xyXG5pbXBvcnQgeyBDb21tYW5kVHlwZSB9IGZyb20gJy4vR3VpRW51bXMnO1xyXG5pbXBvcnQgeyBHdWlDb21tYW5kUXVldWUgfSBmcm9tICcuL2d1aS9sb3cvR3VpQ29tbWFuZFF1ZXVlJztcclxuaW1wb3J0IHsgR3VpQ29tbWFuZCB9IGZyb20gJy4vZ3VpL2xvdy9HdWlDb21tYW5kJztcclxuXHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyAgIENvbW1hbmRzIHRvIHRoZSBHVUkgdGhyZWFkLlxyXG4vLy8gICBUaGVyZeKAmXJlIHR3byB0eXBlcyBvZiBjb21tYW5kcyAoZ3JvdXBlZCBpbiAjcmVnaW9ucyk6XHJcbi8vLyAgICAgIDEuXHRDb21tYW5kcyB0aGF0IGFyZSBleGVjdXRlZCBpbW1lZGlhdGVseS5cclxuLy8vICAgICAgMi5cdENvbW1hbmRzIHRoYXQgYXJlIHF1ZXVlZCAob3ZlcmxvYWRlZCBtZXRob2RzIOKAmGFkZEFzeW5j4oCZKSBhbmQgdGhlbiBleGVjdXRlZCxcclxuLy8vICAgICAgICAgZWl0aGVyIHN5bmNocm9ub3VzbHkgKG1ldGhvZCDigJhpbnZva2XigJkpIG9yIGFzeW5jaHJvbm91c2x5IChtZXRob2Qg4oCYYmVnaW5JbnZva2XigJkpLlxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgQ29tbWFuZHMge1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgIHJlc29sdmVDYWxsYmFjayA9IG51bGw7IC8vIGNhbGxiYWNrIHRvIHJlc29sdmUgdGhlIHByb21pc2VcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBzYXZlIHRoZSBjYWxsYmFja1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc3RhdGljIFNldFJlc29sdmVDYWxsYmFjayhyZXNvbHZlQ2FsbGJhY2spIHtcclxuICAgIHRoaXMucmVzb2x2ZUNhbGxiYWNrID0gcmVzb2x2ZUNhbGxiYWNrO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyByZXNvbHZlIHByb21pc2VcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHN0YXRpYyBSZXNvbHZlUHJvbWlzZShyZXN1bHQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5yZXNvbHZlQ2FsbGJhY2socmVzdWx0KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTeW5jIGNhbGwgdG8gZGlzcGxheSBtZXNzYWdlIGJveFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0aXRsZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtc2dcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3R5bGVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIGFzeW5jIG1lc3NhZ2VCb3godGl0bGU6IHN0cmluZywgbXNnOiBzdHJpbmcsIHN0eWxlOiBudW1iZXIpOiBQcm9taXNlPG51bWJlcj4ge1xyXG4gICAgbGV0IGd1aUludGVyYWN0aXZlOiBHdWlJbnRlcmFjdGl2ZSA9IG5ldyBHdWlJbnRlcmFjdGl2ZSgpO1xyXG4gICAgbGV0IHJldHVyblZhbHVlOiBudW1iZXI7XHJcblxyXG4gICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLlNldFJlc29sdmVDYWxsYmFjayhyZXNvbHZlKTtcclxuICAgICAgZ3VpSW50ZXJhY3RpdmUubWVzc2FnZUJveCh0aXRsZSwgbXNnLCBzdHlsZSk7XHJcbiAgICAgLy8gc2F2ZSB0aGUgcmVzb2x2ZSBjYWxsYmFjayBvbiBFdmVudHNNYW5hZ2VyLCBzbyB0aGF0IGl0IGNhbiBiZSByZXNvbHZlZCBvbiBjbG9zaW5nIG1vZGFsIHdpbmRvd1xyXG4gICAgfSkudGhlbigocmVzOiBudW1iZXIpPT57cmV0dXJuVmFsdWUgPSByZXM7fSk7XHJcbiAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc2V0IHRpdGxlIHRvIGJyb3dzZXJcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidG9wTW9zdEZvcm1cIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGl0bGVcIj48L3BhcmFtPlxyXG4gIHN0YXRpYyBzZXRUaXRsZSh0b3BNb3N0Rm9ybTogR3VpTWdGb3JtLCB0aXRsZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICBndWlJbnRlcmFjdGl2ZS5zZXRUaXRsZSh0b3BNb3N0Rm9ybSwgdGl0bGUpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFN5bmMgY2FsbC4gVGhpcyBtZXRob2RlIGlzIHNldCBUUlVFXFxGQUxTRSB0aGF0IEd1aVV0aWxlc1xcR2V0VmFsdWUoKSBtZXRob2Qgd2lsbCBiZSB1c2VcclxuICAvLy8gICB0aGlzIGZhbGcgc2F5IGlmIHRvIHJldHVybiB0aGUgOiAodHJ1ZSkgc3VnZ2VzdGVkIHZhbHVlIG9yIChmYWxzZSl0aGUgcmVhbCB2YWx1ZVxyXG4gIC8vLyAgIHRoaXMgbWV0aG9kIGlzIHVzZSBmb3IgTUdfQUNUX0NUUkxfTU9ESUZZXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImN0cmxcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicmV0U3VnZ2VzdGVkVmFsdWVcIj48L3BhcmFtPlxyXG4gIHN0YXRpYyBzZXRHZXRTdWdnZXN0ZWRWYWx1ZU9mQ2hvaWNlQ29udHJvbE9uVGFnRGF0YShjdHJsOiBHdWlNZ0NvbnRyb2wsIGxpbmU6IG51bWJlciwgcmV0U3VnZ2VzdGVkVmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIGd1aUludGVyYWN0aXZlLnNldEdldFN1Z2dlc3RlZFZhbHVlT2ZDaG9pY2VDb250cm9sT25UYWdEYXRhKGN0cmwsIGxpbmUsIHJldFN1Z2dlc3RlZFZhbHVlKTtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgU3luYyBjYWxsIHRvIGdldCB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJvYmpcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibWdWYWx1ZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJsaW5lXCI+PC9wYXJhbT5cclxuICBzdGF0aWMgZ2V0VmFsdWUob2JqOiBhbnksIGxpbmU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICByZXR1cm4gZ3VpSW50ZXJhY3RpdmUuZ2V0VmFsdWUob2JqLCBsaW5lKTtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgU3luYyBjYWxsIHRvIGdldCB0YWJsZSB0b3AgaW5kZXhcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGFibGVjb250cm9sXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBnZXRUb3BJbmRleCh0YWJsZWNvbnRyb2w6IEd1aU1nQ29udHJvbCk6IG51bWJlciB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICByZXR1cm4gZ3VpSW50ZXJhY3RpdmUuZ2V0VG9wSW5kZXgodGFibGVjb250cm9sKTtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgU3luYyBjYWxsIHRvIGdldCBpcyByb3cgZWRpdGluZyBvbiByb3cgaW5kZXhcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGFibGVjb250cm9sXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBnZXRJc1Jvd0VkaXRpbmcodGFibGVjb250cm9sOiBhbnksIHJvd0luZGV4OiBudW1iZXIsIGlzTGluZU1vZGU6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIHJldHVybiBndWlJbnRlcmFjdGl2ZS5nZXRJc1Jvd0VkaXRpbmcodGFibGVjb250cm9sLCByb3dJbmRleCwgaXNMaW5lTW9kZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFN5bmMgY2FsbCB0byBleGVjdXRlIGJyb3dzZXJcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiYnJvd3NlckNvbnRyb2xcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGV4dFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzeW5jRXhlY1wiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJsYW5ndWFnZVwiPjwvcGFyYW0+XHJcbiAgc3RhdGljIGJyb3dzZXJFeGVjdXRlKGJyb3dzZXJDb250cm9sOiBHdWlNZ0NvbnRyb2wsIHRleHQ6IHN0cmluZywgc3luY0V4ZWM6IGJvb2xlYW4sIGxhbmd1YWdlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIHJldHVybiBndWlJbnRlcmFjdGl2ZS5icm93c2VyRXhlY3V0ZShicm93c2VyQ29udHJvbCwgdGV4dCwgc3luY0V4ZWMsIGxhbmd1YWdlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTeW5jIGNhbGwgdG8gRGlyZWN0b3J5IERpYWxvZyBCb3hcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY2FwdGlvblwiPmRlc2NyaXB0aW9uIGZvciB0aGUgZGlhbG9nIHdpbmRvdzwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJwYXRoXCI+aW5pdGlhbCBwYXRoIHRvIGJyb3dzZTwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJiU2hvd05ld0ZvbGRlclwiPnNob3VsZCBzaG93IHRoZSBuZXcgZm9sZGVyIGJ1dHRvbj88L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5kaXJlY3RvcnkgcGF0aCBzZWxlY3RlZCBieSB1c2VyPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBkaXJlY3RvcnlEaWFsb2dCb3goY2FwdGlvbjogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGJTaG93TmV3Rm9sZGVyOiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIHJldHVybiBndWlJbnRlcmFjdGl2ZS5kaXJlY3RvcnlEaWFsb2dCb3goY2FwdGlvbiwgcGF0aCwgYlNob3dOZXdGb2xkZXIpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFN5bmMgY2FsbCB0byBGaWxlIE9wZW4gRGlhbG9nIEJveFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0aXRsZVwiPkRpYWxvZyB3aW5kb3cgY2FwdGlvbjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJkaXJOYW1lXCI+SW5pdGlhbCBkaXJlY3Rvcnk8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZmlsZU5hbWVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZmlsdGVyTmFtZXNcIj5maWx0ZXIgc3RyaW5nPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNoZWNrRXhpc3RzXCI+dmVyaWZ5IG9wZW5lZCBmaWxlIGV4aXN0czwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtdWx0aVNlbGVjdFwiPmVuYWJsZSBzZWxlY3RpbmcgbXVsdGlwbGUgZmlsZXM8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5maWxlIHBhdGggc2VsZWN0ZWQgYnkgdXNlcjwvcmV0dXJucz5cclxuICBzdGF0aWMgZmlsZU9wZW5EaWFsb2dCb3godGl0bGU6IHN0cmluZywgZGlyTmFtZTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nLCBmaWx0ZXJOYW1lczogc3RyaW5nLCBjaGVja0V4aXN0czogYm9vbGVhbiwgbXVsdGlTZWxlY3Q6IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgbGV0IGd1aUludGVyYWN0aXZlOiBHdWlJbnRlcmFjdGl2ZSA9IG5ldyBHdWlJbnRlcmFjdGl2ZSgpO1xyXG4gICAgcmV0dXJuIGd1aUludGVyYWN0aXZlLmZpbGVPcGVuRGlhbG9nQm94KHRpdGxlLCBkaXJOYW1lLCBmaWxlTmFtZSwgZmlsdGVyTmFtZXMsIGNoZWNrRXhpc3RzLCBtdWx0aVNlbGVjdCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgU3luYyBjYWxsIHRvIHNldCB0aGUgdGV4dCB0byB0aGUgdGhlIGNvbnRyb2xcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY29udHJvbFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJsaW5lXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRleHRcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIHNldEVkaXRUZXh0KGNvbnRyb2w6IEd1aU1nQ29udHJvbCwgbGluZTogbnVtYmVyLCB0ZXh0OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIHJldHVybiBndWlJbnRlcmFjdGl2ZS5zZXRFZGl0VGV4dChjb250cm9sLCBsaW5lLCB0ZXh0KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBJbnNlcnQgdGV4dCB0byBhIHRleHQgY29udHJvbCBhdCBhIGdpdmVuIHBvc2l0aW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbnRyb2xcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibGluZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzdGFydFBvc2l0aW9uXCI+d2hlcmUgdG8gYWRkIHRoZSB0ZXh0PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRleHRUb0luc2VydFwiPnRoZSB0ZXh0IHRvIGFkZDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgaW5zZXJ0RWRpdFRleHQoY29udHJvbDogR3VpTWdDb250cm9sLCBsaW5lOiBudW1iZXIsIHN0YXJ0UG9zaXRpb246IG51bWJlciwgdGV4dFRvSW5zZXJ0OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIHJldHVybiBndWlJbnRlcmFjdGl2ZS5pbnNlcnRFZGl0VGV4dChjb250cm9sLCBsaW5lLCBzdGFydFBvc2l0aW9uLCB0ZXh0VG9JbnNlcnQpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTeW5jIGNhbGwgdG8gZ2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgY2FyZXQgb24gdGhlIGNvbnRyb2xcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY29udHJvbFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJsaW5lXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm1nVmFsdWVcIj48L3BhcmFtPlxyXG4gIHN0YXRpYyBjYXJldFBvc0dldChjb250cm9sOiBHdWlNZ0NvbnRyb2wsIGxpbmU6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICByZXR1cm4gZ3VpSW50ZXJhY3RpdmUuY2FyZXRQb3NHZXQoY29udHJvbCwgbGluZSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgYWRkUmVmcmVzaFBhZ2UobmF2aWdhdGVUb1Jvb3RSb3V0ZSA6IGJvb2xlYW4sIGluaXRpYWxVcmw6IHN0cmluZykge1xyXG4gICAgbGV0IGd1aUludGVyYWN0aXZlOiBHdWlJbnRlcmFjdGl2ZSA9IG5ldyBHdWlJbnRlcmFjdGl2ZSgpO1xyXG5cclxuICAgIGd1aUludGVyYWN0aXZlLlJlZnJlc2hQYWdlKG5hdmlnYXRlVG9Sb290Um91dGUsIGluaXRpYWxVcmwpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFN5bmMgY2FsbCB0byBnZXQgbnVtYmVyIG9mIHJvd3MgaW4gdGhlIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbnRyb2xcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIGdldFJvd3NJblBhZ2UoY29udHJvbDogR3VpTWdDb250cm9sKTogbnVtYmVyIHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIGxldCByb3dzSW5QYWdlID0gZ3VpSW50ZXJhY3RpdmUuZ2V0Um93c0luUGFnZShjb250cm9sKTtcclxuICAgIHJldHVybiAocm93c0luUGFnZSA9PT0gMCA/IDEgOiByb3dzSW5QYWdlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gR2V0IG1heCBubyBvZiByb3dzIGluIHBhZ2luYXRlZCB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjb250cm9sXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBnZXRNYXhSb3dzSW5QYWdpbmF0ZWRUYWJsZShjb250cm9sOiBHdWlNZ0NvbnRyb2wpOiBudW1iZXIge1xyXG4gICAgbGV0IGd1aUludGVyYWN0aXZlOiBHdWlJbnRlcmFjdGl2ZSA9IG5ldyBHdWlJbnRlcmFjdGl2ZSgpO1xyXG4gICAgbGV0IG1heFJvd3MgPSBndWlJbnRlcmFjdGl2ZS5nZXRNYXhSb3dzSW5QYWdpbmF0ZWRUYWJsZShjb250cm9sKTtcclxuICAgIHJldHVybiAobWF4Um93cyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgYWRkQm9vbFdpdGhMaW5lKGNvbW1hbmRUeXBlOiBDb21tYW5kVHlwZSwgb2JqOiBhbnksIGxpbmU6IG51bWJlciwgYm9vbDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgbGV0IGd1aUNvbW1hbmQ6IEd1aUNvbW1hbmQgPSBuZXcgR3VpQ29tbWFuZChvYmosIGNvbW1hbmRUeXBlKTtcclxuICAgIGd1aUNvbW1hbmQuQm9vbDEgPSBib29sO1xyXG4gICAgZ3VpQ29tbWFuZC5saW5lID0gbGluZTtcclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgYWRkTm9QYXJhbWV0ZXJzKGNvbW1hbmRUeXBlOiBDb21tYW5kVHlwZSwgb2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIGxldCBndWlDb21tYW5kOiBHdWlDb21tYW5kID0gbmV3IEd1aUNvbW1hbmQob2JqLCBjb21tYW5kVHlwZSk7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5hZGRDb21tYW5kKGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFkZFdpdGhOdW1iZXIoY29tbWFuZFR5cGU6IENvbW1hbmRUeXBlLCBvYmo6IGFueSwgbnVtOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGxldCBndWlDb21tYW5kOiBHdWlDb21tYW5kID0gbmV3IEd1aUNvbW1hbmQob2JqLCBjb21tYW5kVHlwZSk7XHJcbiAgICBndWlDb21tYW5kLm51bWJlciA9IG51bTtcclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgYWRkVmFsdWVXaXRoTGluZShjb21tYW5kVHlwZTogQ29tbWFuZFR5cGUsIG9iajogYW55LCBsaW5lOiBudW1iZXIsIHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGxldCBndWlDb21tYW5kOiBHdWlDb21tYW5kID0gbmV3IEd1aUNvbW1hbmQob2JqLCBjb21tYW5kVHlwZSk7XHJcbiAgICBndWlDb21tYW5kLnZhbHVlID0gdmFsdWU7XHJcbiAgICBndWlDb21tYW5kLmxpbmUgPSBsaW5lO1xyXG4gICAgaWYgKGNvbW1hbmRUeXBlID09PSBDb21tYW5kVHlwZS5TRVRfVkFMVUUpXHJcbiAgICB7XHJcbiAgICAgIGlmIChvYmogaW5zdGFuY2VvZiAgR3VpTWdDb250cm9sICYmIG9iai5pc0Nob2ljZUNvbnRyb2woKSlcclxuICAgICAge1xyXG4gICAgICAgIGlmKHZhbHVlIDwgMClcclxuICAgICAgICAgIGd1aUNvbW1hbmQudmFsdWUgPSAnJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgR3VpQ29tbWFuZFF1ZXVlLmdldEluc3RhbmNlKCkuYWRkQ29tbWFuZChndWlDb21tYW5kKTtcclxuICB9XHJcblxyXG5cclxuICBzdGF0aWMgYWRkT3BlcmF0aW9uV2l0aExpbmUoY29tbWFuZFR5cGU6IENvbW1hbmRUeXBlLCBvYmo6IGFueSwgbGluZTogbnVtYmVyLCBvcGVyYXRpb246IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgbGV0IGd1aUNvbW1hbmQ6IEd1aUNvbW1hbmQgPSBuZXcgR3VpQ29tbWFuZChvYmosIGNvbW1hbmRUeXBlKTtcclxuICAgIGd1aUNvbW1hbmQub2JqMSA9IHZhbHVlO1xyXG4gICAgZ3VpQ29tbWFuZC5saW5lID0gbGluZTtcclxuICAgIGd1aUNvbW1hbmQuT3BlcmF0aW9uID0gb3BlcmF0aW9uO1xyXG4gICAgR3VpQ29tbWFuZFF1ZXVlLmdldEluc3RhbmNlKCkuYWRkQ29tbWFuZChndWlDb21tYW5kKTtcclxuICB9XHJcblxyXG5cclxuICBzdGF0aWMgYWRkT3BlbnN1YmZvcm0oY29tbWFuZFR5cGU6IENvbW1hbmRUeXBlLCBvYmo6IE9iamVjdCwgY2FsbGVkVGFza1RhZzogc3RyaW5nLCBzdWJmb3JtQ29udHJvbE5hbWU6IHN0cmluZywgZm9ybU5hbWU6IHN0cmluZywgaW5wdXRDb250cm9sczogc3RyaW5nLCByb3V0ZXJQYXRoOiBzdHJpbmcsIHJvdXRlclBhcmFtczogTGlzdDxhbnk+LCBpbkRlZmF1bHRSb3V0ZXJPdXRsZXQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGxldCBndWlDb21tYW5kOiBHdWlDb21tYW5kID0gbmV3IEd1aUNvbW1hbmQob2JqLCBjb21tYW5kVHlwZSk7XHJcbiAgICBndWlDb21tYW5kLnN0ciA9IGNhbGxlZFRhc2tUYWc7XHJcbiAgICBndWlDb21tYW5kLm9iajEgPSBzdWJmb3JtQ29udHJvbE5hbWU7XHJcbiAgICBndWlDb21tYW5kLnVzZXJEcm9wRm9ybWF0ID0gZm9ybU5hbWU7XHJcbiAgICBndWlDb21tYW5kLmZpbGVOYW1lID0gaW5wdXRDb250cm9scztcclxuICAgIGd1aUNvbW1hbmQuQm9vbDEgPSBpbkRlZmF1bHRSb3V0ZXJPdXRsZXQ7XHJcbiAgICBndWlDb21tYW5kLmNvbnRleHRJRCA9IHJvdXRlclBhdGg7XHJcbiAgICBndWlDb21tYW5kLnBhcmFtcyA9IHJvdXRlclBhcmFtcztcclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgYWRkQ2xvc2VzdWJmb3JtKGNvbW1hbmRUeXBlOiBDb21tYW5kVHlwZSwgb2JqOiBPYmplY3QsIGNhbGxlZFRhc2tUYWc6IHN0cmluZywgc3ViZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcsIGZvcm1OYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxldCBndWlDb21tYW5kOiBHdWlDb21tYW5kID0gbmV3IEd1aUNvbW1hbmQob2JqLCBjb21tYW5kVHlwZSk7XHJcbiAgICBndWlDb21tYW5kLnN0ciA9IGNhbGxlZFRhc2tUYWc7XHJcbiAgICBndWlDb21tYW5kLm9iajEgPSBzdWJmb3JtQ29udHJvbE5hbWU7XHJcbiAgICBndWlDb21tYW5kLnVzZXJEcm9wRm9ybWF0ID0gZm9ybU5hbWU7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5hZGRDb21tYW5kKGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFkZE9wZW5Gb3JtKG9iajogT2JqZWN0LCBmb3JtTmFtZTogc3RyaW5nLCBoYW5kbGVyVGFza1RhZzogc3RyaW5nLCBjYWxsZWRUYXNrVGFnOiBzdHJpbmcsIGlucHV0Q29udHJvbHM6IHN0cmluZywgaXNEaWFsb2c6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGxldCBndWlDb21tYW5kOiBHdWlDb21tYW5kID0gbmV3IEd1aUNvbW1hbmQob2JqLCBDb21tYW5kVHlwZS5PUEVOX0ZPUk0pO1xyXG4gICAgZ3VpQ29tbWFuZC5UYXNrVGFnID0gaGFuZGxlclRhc2tUYWc7XHJcbiAgICBndWlDb21tYW5kLnN0ciA9IGZvcm1OYW1lO1xyXG4gICAgZ3VpQ29tbWFuZC5zdHJpbmdMaXN0ID0gbmV3IExpc3Q8c3RyaW5nPigpO1xyXG4gICAgZ3VpQ29tbWFuZC5zdHJpbmdMaXN0LnB1c2goY2FsbGVkVGFza1RhZyk7XHJcbiAgICBndWlDb21tYW5kLnN0cmluZ0xpc3QucHVzaChpbnB1dENvbnRyb2xzKTtcclxuICAgIGd1aUNvbW1hbmQuQm9vbDEgPSBpc0RpYWxvZztcclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgYWRkQ2xvc2VGb3JtKG9iajogT2JqZWN0LCBoYW5kbGVyVGFza1RhZzogc3RyaW5nLCBjYWxsZWRUYXNrVGFnOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxldCBndWlDb21tYW5kOiBHdWlDb21tYW5kID0gbmV3IEd1aUNvbW1hbmQob2JqLCBDb21tYW5kVHlwZS5DTE9TRV9GT1JNKTtcclxuICAgIGd1aUNvbW1hbmQuVGFza1RhZyA9IGhhbmRsZXJUYXNrVGFnO1xyXG4gICAgZ3VpQ29tbWFuZC5zdHIgPSBjYWxsZWRUYXNrVGFnO1xyXG4gICAgR3VpQ29tbWFuZFF1ZXVlLmdldEluc3RhbmNlKCkuYWRkQ29tbWFuZChndWlDb21tYW5kKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBhZGRDYWxsSlMoZm9ybSA6IGFueSwgZm9ybU5hbWU6IHN0cmluZywgbmFtZTogc3RyaW5nLCBhcmdzOiBBcnJheTxhbnk+KTogc3RyaW5nIHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIHJldHVybiBndWlJbnRlcmFjdGl2ZS5FeGVjdXRlQ2FsbEpTKGZvcm0gLCBmb3JtTmFtZSwgIG5hbWUsIGFyZ3MpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFkZElzTG9nZ2VkSW4oc2V0Qm9vbDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgbGV0IGd1aUNvbW1hbmQ6IEd1aUNvbW1hbmQgPSBuZXcgR3VpQ29tbWFuZChudWxsLCBDb21tYW5kVHlwZS5TRVRfSVNfTE9HR0VEX0lOKTtcclxuICAgIGd1aUNvbW1hbmQuQm9vbDEgPSBzZXRCb29sO1xyXG4gICAgR3VpQ29tbWFuZFF1ZXVlLmdldEluc3RhbmNlKCkuYWRkQ29tbWFuZChndWlDb21tYW5kKTtcclxuICB9XHJcblxyXG4gIC8vIGFkZHMgYSBjb21tYW5kIHRvIHNob3cgb3IgaGlkZSB0aGUgc3Bpbm5lclxyXG4gIHN0YXRpYyBhZGRTaG93U3Bpbm5lcihzaG93OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG51bGwsIENvbW1hbmRUeXBlLlNIT1dfU1BJTk5FUik7XHJcbiAgICBndWlDb21tYW5kLkJvb2wxID0gc2hvdztcclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICAvLyBhZGRzIGEgY29tbWFuZCB3aGljaCBpcyBub3QgcmVsYXRlZCB0byBhIHNwZWNpZmljIHRhc2tcclxuICBzdGF0aWMgYWRkR2xvYmFsQ29tbWFuZChjb21tYW5kVHlwZTogQ29tbWFuZFR5cGUpOiB2b2lkIHtcclxuICAgIGxldCBndWlDb21tYW5kOiBHdWlDb21tYW5kID0gbmV3IEd1aUNvbW1hbmQobnVsbCwgY29tbWFuZFR5cGUpO1xyXG4gICAgR3VpQ29tbWFuZFF1ZXVlLmdldEluc3RhbmNlKCkuYWRkQ29tbWFuZChndWlDb21tYW5kKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBleGVjdXRlIGFsbCBwZW5kaW5nIGNvbW1hbmRzLCBhc3luY2hyb25vdXNseVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc3RhdGljIGJlZ2luSW52b2tlKCk6IHZvaWQge1xyXG4gICAgR3VpQ29tbWFuZFF1ZXVlLmdldEluc3RhbmNlKCkuYmVnaW5JbnZva2UoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBleGVjdXRlIGFsbCBwZW5kaW5nIGNvbW1hbmRzLCBzeW5jaHJvbm91c2x5XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGF0aWMgaW52b2tlKCk6IHZvaWQge1xyXG4gICAgR3VpQ29tbWFuZFF1ZXVlLmdldEluc3RhbmNlKCkuaW52b2tlKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcbn1cclxuIl19
|
|
184
|
+
Commands.resolveCallback = null;
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL0NvbW1hbmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFVbEQsTUFBTSxPQUFPLFFBQVE7SUFxVW5CO0lBQ0EsQ0FBQztJQTlURCxNQUFNLENBQUMsa0JBQWtCLENBQUMsZUFBZTtRQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBS0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFjO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQVNELE1BQU0sQ0FBTyxVQUFVLENBQUMsS0FBYSxFQUFFLEdBQVcsRUFBRSxLQUFhOztZQUMvRCxJQUFJLGNBQWMsR0FBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUMxRCxJQUFJLFdBQW1CLENBQUM7WUFFeEIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqQyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFL0MsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMs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QUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDL0QsVUFBVSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDdkIsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBS0QsTUFBTSxDQUFDLFdBQVc7UUFDaEIsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFLRCxNQUFNLENBQUMsTUFBTTtRQUNYLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN6QyxDQUFDOztBQWhVZSx3QkFBZSxHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpc3QgfSBmcm9tICdAbWFnaWMteHBhL21zY29yZWxpYic7XHJcbmltcG9ydCB7IEd1aU1nRm9ybSB9IGZyb20gJy4vZ3VpL0d1aU1nRm9ybSc7XHJcbmltcG9ydCB7IEd1aUludGVyYWN0aXZlIH0gZnJvbSAnLi9ndWkvbG93L0d1aUludGVyYWN0aXZlJztcclxuaW1wb3J0IHsgR3VpTWdDb250cm9sIH0gZnJvbSAnLi9ndWkvR3VpTWdDb250cm9sJztcclxuaW1wb3J0IHsgQ29tbWFuZFR5cGUgfSBmcm9tICcuL0d1aUVudW1zJztcclxuaW1wb3J0IHsgR3VpQ29tbWFuZFF1ZXVlIH0gZnJvbSAnLi9ndWkvbG93L0d1aUNvbW1hbmRRdWV1ZSc7XHJcbmltcG9ydCB7IEd1aUNvbW1hbmQgfSBmcm9tICcuL2d1aS9sb3cvR3VpQ29tbWFuZCc7XHJcblxyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBDb21tYW5kcyB0byB0aGUgR1VJIHRocmVhZC5cclxuLy8vICAgVGhlcmXigJlyZSB0d28gdHlwZXMgb2YgY29tbWFuZHMgKGdyb3VwZWQgaW4gI3JlZ2lvbnMpOlxyXG4vLy8gICAgICAxLlx0Q29tbWFuZHMgdGhhdCBhcmUgZXhlY3V0ZWQgaW1tZWRpYXRlbHkuXHJcbi8vLyAgICAgIDIuXHRDb21tYW5kcyB0aGF0IGFyZSBxdWV1ZWQgKG92ZXJsb2FkZWQgbWV0aG9kcyDigJhhZGRBc3luY+KAmSkgYW5kIHRoZW4gZXhlY3V0ZWQsXHJcbi8vLyAgICAgICAgIGVpdGhlciBzeW5jaHJvbm91c2x5IChtZXRob2Qg4oCYaW52b2tl4oCZKSBvciBhc3luY2hyb25vdXNseSAobWV0aG9kIOKAmGJlZ2luSW52b2tl4oCZKS5cclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIENvbW1hbmRzIHtcclxuXHJcblxyXG4gIHByaXZhdGUgc3RhdGljICByZXNvbHZlQ2FsbGJhY2sgPSBudWxsOyAvLyBjYWxsYmFjayB0byByZXNvbHZlIHRoZSBwcm9taXNlXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gc2F2ZSB0aGUgY2FsbGJhY2tcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHN0YXRpYyBTZXRSZXNvbHZlQ2FsbGJhY2socmVzb2x2ZUNhbGxiYWNrKSB7XHJcbiAgICB0aGlzLnJlc29sdmVDYWxsYmFjayA9IHJlc29sdmVDYWxsYmFjaztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gcmVzb2x2ZSBwcm9taXNlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGF0aWMgUmVzb2x2ZVByb21pc2UocmVzdWx0OiBudW1iZXIpIHtcclxuICAgIHRoaXMucmVzb2x2ZUNhbGxiYWNrKHJlc3VsdCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgU3luYyBjYWxsIHRvIGRpc3BsYXkgbWVzc2FnZSBib3hcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGl0bGVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibXNnXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0eWxlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBhc3luYyBtZXNzYWdlQm94KHRpdGxlOiBzdHJpbmcsIG1zZzogc3RyaW5nLCBzdHlsZTogbnVtYmVyKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIGxldCByZXR1cm5WYWx1ZTogbnVtYmVyO1xyXG5cclxuICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5TZXRSZXNvbHZlQ2FsbGJhY2socmVzb2x2ZSk7XHJcbiAgICAgIGd1aUludGVyYWN0aXZlLm1lc3NhZ2VCb3godGl0bGUsIG1zZywgc3R5bGUpO1xyXG4gICAgIC8vIHNhdmUgdGhlIHJlc29sdmUgY2FsbGJhY2sgb24gRXZlbnRzTWFuYWdlciwgc28gdGhhdCBpdCBjYW4gYmUgcmVzb2x2ZWQgb24gY2xvc2luZyBtb2RhbCB3aW5kb3dcclxuICAgIH0pLnRoZW4oKHJlczogbnVtYmVyKT0+e3JldHVyblZhbHVlID0gcmVzO30pO1xyXG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCB0aXRsZSB0byBicm93c2VyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRvcE1vc3RGb3JtXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRpdGxlXCI+PC9wYXJhbT5cclxuICBzdGF0aWMgc2V0VGl0bGUodG9wTW9zdEZvcm06IEd1aU1nRm9ybSwgdGl0bGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgbGV0IGd1aUludGVyYWN0aXZlOiBHdWlJbnRlcmFjdGl2ZSA9IG5ldyBHdWlJbnRlcmFjdGl2ZSgpO1xyXG4gICAgZ3VpSW50ZXJhY3RpdmUuc2V0VGl0bGUodG9wTW9zdEZvcm0sIHRpdGxlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTeW5jIGNhbGwuIFRoaXMgbWV0aG9kZSBpcyBzZXQgVFJVRVxcRkFMU0UgdGhhdCBHdWlVdGlsZXNcXEdldFZhbHVlKCkgbWV0aG9kIHdpbGwgYmUgdXNlXHJcbiAgLy8vICAgdGhpcyBmYWxnIHNheSBpZiB0byByZXR1cm4gdGhlIDogKHRydWUpIHN1Z2dlc3RlZCB2YWx1ZSBvciAoZmFsc2UpdGhlIHJlYWwgdmFsdWVcclxuICAvLy8gICB0aGlzIG1ldGhvZCBpcyB1c2UgZm9yIE1HX0FDVF9DVFJMX01PRElGWVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjdHJsXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInJldFN1Z2dlc3RlZFZhbHVlXCI+PC9wYXJhbT5cclxuICBzdGF0aWMgc2V0R2V0U3VnZ2VzdGVkVmFsdWVPZkNob2ljZUNvbnRyb2xPblRhZ0RhdGEoY3RybDogR3VpTWdDb250cm9sLCBsaW5lOiBudW1iZXIsIHJldFN1Z2dlc3RlZFZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICBndWlJbnRlcmFjdGl2ZS5zZXRHZXRTdWdnZXN0ZWRWYWx1ZU9mQ2hvaWNlQ29udHJvbE9uVGFnRGF0YShjdHJsLCBsaW5lLCByZXRTdWdnZXN0ZWRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFN5bmMgY2FsbCB0byBnZXQgdmFsdWUgb2YgdGhlIGNvbnRyb2xcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwib2JqXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm1nVmFsdWVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibGluZVwiPjwvcGFyYW0+XHJcbiAgc3RhdGljIGdldFZhbHVlKG9iajogYW55LCBsaW5lOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IGd1aUludGVyYWN0aXZlOiBHdWlJbnRlcmFjdGl2ZSA9IG5ldyBHdWlJbnRlcmFjdGl2ZSgpO1xyXG4gICAgcmV0dXJuIGd1aUludGVyYWN0aXZlLmdldFZhbHVlKG9iaiwgbGluZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFN5bmMgY2FsbCB0byBnZXQgdGFibGUgdG9wIGluZGV4XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRhYmxlY29udHJvbFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0VG9wSW5kZXgodGFibGVjb250cm9sOiBHdWlNZ0NvbnRyb2wpOiBudW1iZXIge1xyXG4gICAgbGV0IGd1aUludGVyYWN0aXZlOiBHdWlJbnRlcmFjdGl2ZSA9IG5ldyBHdWlJbnRlcmFjdGl2ZSgpO1xyXG4gICAgcmV0dXJuIGd1aUludGVyYWN0aXZlLmdldFRvcEluZGV4KHRhYmxlY29udHJvbCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFN5bmMgY2FsbCB0byBnZXQgaXMgcm93IGVkaXRpbmcgb24gcm93IGluZGV4XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRhYmxlY29udHJvbFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0SXNSb3dFZGl0aW5nKHRhYmxlY29udHJvbDogYW55LCByb3dJbmRleDogbnVtYmVyLCBpc0xpbmVNb2RlOiBib29sZWFuKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICByZXR1cm4gZ3VpSW50ZXJhY3RpdmUuZ2V0SXNSb3dFZGl0aW5nKHRhYmxlY29udHJvbCwgcm93SW5kZXgsIGlzTGluZU1vZGUpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTeW5jIGNhbGwgdG8gZXhlY3V0ZSBicm93c2VyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImJyb3dzZXJDb250cm9sXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRleHRcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3luY0V4ZWNcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibGFuZ3VhZ2VcIj48L3BhcmFtPlxyXG4gIHN0YXRpYyBicm93c2VyRXhlY3V0ZShicm93c2VyQ29udHJvbDogR3VpTWdDb250cm9sLCB0ZXh0OiBzdHJpbmcsIHN5bmNFeGVjOiBib29sZWFuLCBsYW5ndWFnZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICByZXR1cm4gZ3VpSW50ZXJhY3RpdmUuYnJvd3NlckV4ZWN1dGUoYnJvd3NlckNvbnRyb2wsIHRleHQsIHN5bmNFeGVjLCBsYW5ndWFnZSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgU3luYyBjYWxsIHRvIERpcmVjdG9yeSBEaWFsb2cgQm94XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNhcHRpb25cIj5kZXNjcmlwdGlvbiBmb3IgdGhlIGRpYWxvZyB3aW5kb3c8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicGF0aFwiPmluaXRpYWwgcGF0aCB0byBicm93c2U8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiYlNob3dOZXdGb2xkZXJcIj5zaG91bGQgc2hvdyB0aGUgbmV3IGZvbGRlciBidXR0b24/PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+ZGlyZWN0b3J5IHBhdGggc2VsZWN0ZWQgYnkgdXNlcjwvcmV0dXJucz5cclxuICBzdGF0aWMgZGlyZWN0b3J5RGlhbG9nQm94KGNhcHRpb246IHN0cmluZywgcGF0aDogc3RyaW5nLCBiU2hvd05ld0ZvbGRlcjogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICByZXR1cm4gZ3VpSW50ZXJhY3RpdmUuZGlyZWN0b3J5RGlhbG9nQm94KGNhcHRpb24sIHBhdGgsIGJTaG93TmV3Rm9sZGVyKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTeW5jIGNhbGwgdG8gRmlsZSBPcGVuIERpYWxvZyBCb3hcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGl0bGVcIj5EaWFsb2cgd2luZG93IGNhcHRpb248L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZGlyTmFtZVwiPkluaXRpYWwgZGlyZWN0b3J5PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImZpbGVOYW1lXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImZpbHRlck5hbWVzXCI+ZmlsdGVyIHN0cmluZzwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjaGVja0V4aXN0c1wiPnZlcmlmeSBvcGVuZWQgZmlsZSBleGlzdHM8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibXVsdGlTZWxlY3RcIj5lbmFibGUgc2VsZWN0aW5nIG11bHRpcGxlIGZpbGVzPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+ZmlsZSBwYXRoIHNlbGVjdGVkIGJ5IHVzZXI8L3JldHVybnM+XHJcbiAgc3RhdGljIGZpbGVPcGVuRGlhbG9nQm94KHRpdGxlOiBzdHJpbmcsIGRpck5hbWU6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZywgZmlsdGVyTmFtZXM6IHN0cmluZywgY2hlY2tFeGlzdHM6IGJvb2xlYW4sIG11bHRpU2VsZWN0OiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIHJldHVybiBndWlJbnRlcmFjdGl2ZS5maWxlT3BlbkRpYWxvZ0JveCh0aXRsZSwgZGlyTmFtZSwgZmlsZU5hbWUsIGZpbHRlck5hbWVzLCBjaGVja0V4aXN0cywgbXVsdGlTZWxlY3QpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFN5bmMgY2FsbCB0byBzZXQgdGhlIHRleHQgdG8gdGhlIHRoZSBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbnRyb2xcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibGluZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0ZXh0XCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBzZXRFZGl0VGV4dChjb250cm9sOiBHdWlNZ0NvbnRyb2wsIGxpbmU6IG51bWJlciwgdGV4dDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICByZXR1cm4gZ3VpSW50ZXJhY3RpdmUuc2V0RWRpdFRleHQoY29udHJvbCwgbGluZSwgdGV4dCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgSW5zZXJ0IHRleHQgdG8gYSB0ZXh0IGNvbnRyb2wgYXQgYSBnaXZlbiBwb3NpdGlvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjb250cm9sXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImxpbmVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3RhcnRQb3NpdGlvblwiPndoZXJlIHRvIGFkZCB0aGUgdGV4dDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0ZXh0VG9JbnNlcnRcIj50aGUgdGV4dCB0byBhZGQ8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIGluc2VydEVkaXRUZXh0KGNvbnRyb2w6IEd1aU1nQ29udHJvbCwgbGluZTogbnVtYmVyLCBzdGFydFBvc2l0aW9uOiBudW1iZXIsIHRleHRUb0luc2VydDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICByZXR1cm4gZ3VpSW50ZXJhY3RpdmUuaW5zZXJ0RWRpdFRleHQoY29udHJvbCwgbGluZSwgc3RhcnRQb3NpdGlvbiwgdGV4dFRvSW5zZXJ0KTtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgU3luYyBjYWxsIHRvIGdldCB0aGUgcG9zaXRpb24gb2YgdGhlIGNhcmV0IG9uIHRoZSBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbnRyb2xcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibGluZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtZ1ZhbHVlXCI+PC9wYXJhbT5cclxuICBzdGF0aWMgY2FyZXRQb3NHZXQoY29udHJvbDogR3VpTWdDb250cm9sLCBsaW5lOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgbGV0IGd1aUludGVyYWN0aXZlOiBHdWlJbnRlcmFjdGl2ZSA9IG5ldyBHdWlJbnRlcmFjdGl2ZSgpO1xyXG4gICAgcmV0dXJuIGd1aUludGVyYWN0aXZlLmNhcmV0UG9zR2V0KGNvbnRyb2wsIGxpbmUpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFkZFJlZnJlc2hQYWdlKG5hdmlnYXRlVG9Sb290Um91dGUgOiBib29sZWFuLCBpbml0aWFsVXJsOiBzdHJpbmcpIHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuXHJcbiAgICBndWlJbnRlcmFjdGl2ZS5SZWZyZXNoUGFnZShuYXZpZ2F0ZVRvUm9vdFJvdXRlLCBpbml0aWFsVXJsKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTeW5jIGNhbGwgdG8gZ2V0IG51bWJlciBvZiByb3dzIGluIHRoZSB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjb250cm9sXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBnZXRSb3dzSW5QYWdlKGNvbnRyb2w6IEd1aU1nQ29udHJvbCk6IG51bWJlciB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICBsZXQgcm93c0luUGFnZSA9IGd1aUludGVyYWN0aXZlLmdldFJvd3NJblBhZ2UoY29udHJvbCk7XHJcbiAgICByZXR1cm4gKHJvd3NJblBhZ2UgPT09IDAgPyAxIDogcm93c0luUGFnZSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEdldCBtYXggbm8gb2Ygcm93cyBpbiBwYWdpbmF0ZWQgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY29udHJvbFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0TWF4Um93c0luUGFnaW5hdGVkVGFibGUoY29udHJvbDogR3VpTWdDb250cm9sKTogbnVtYmVyIHtcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIGxldCBtYXhSb3dzID0gZ3VpSW50ZXJhY3RpdmUuZ2V0TWF4Um93c0luUGFnaW5hdGVkVGFibGUoY29udHJvbCk7XHJcbiAgICByZXR1cm4gKG1heFJvd3MpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFkZEJvb2xXaXRoTGluZShjb21tYW5kVHlwZTogQ29tbWFuZFR5cGUsIG9iajogYW55LCBsaW5lOiBudW1iZXIsIGJvb2w6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGxldCBndWlDb21tYW5kOiBHdWlDb21tYW5kID0gbmV3IEd1aUNvbW1hbmQob2JqLCBjb21tYW5kVHlwZSk7XHJcbiAgICBndWlDb21tYW5kLkJvb2wxID0gYm9vbDtcclxuICAgIGd1aUNvbW1hbmQubGluZSA9IGxpbmU7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5hZGRDb21tYW5kKGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFkZE5vUGFyYW1ldGVycyhjb21tYW5kVHlwZTogQ29tbWFuZFR5cGUsIG9iajogYW55KTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG9iaiwgY29tbWFuZFR5cGUpO1xyXG4gICAgR3VpQ29tbWFuZFF1ZXVlLmdldEluc3RhbmNlKCkuYWRkQ29tbWFuZChndWlDb21tYW5kKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBhZGRXaXRoTnVtYmVyKGNvbW1hbmRUeXBlOiBDb21tYW5kVHlwZSwgb2JqOiBhbnksIG51bTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG9iaiwgY29tbWFuZFR5cGUpO1xyXG4gICAgZ3VpQ29tbWFuZC5udW1iZXIgPSBudW07XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5hZGRDb21tYW5kKGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFkZFZhbHVlV2l0aExpbmUoY29tbWFuZFR5cGU6IENvbW1hbmRUeXBlLCBvYmo6IGFueSwgbGluZTogbnVtYmVyLCB2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG9iaiwgY29tbWFuZFR5cGUpO1xyXG4gICAgZ3VpQ29tbWFuZC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgZ3VpQ29tbWFuZC5saW5lID0gbGluZTtcclxuICAgIGlmIChjb21tYW5kVHlwZSA9PT0gQ29tbWFuZFR5cGUuU0VUX1ZBTFVFKVxyXG4gICAge1xyXG4gICAgICBpZiAob2JqIGluc3RhbmNlb2YgIEd1aU1nQ29udHJvbCAmJiBvYmouaXNDaG9pY2VDb250cm9sKCkpXHJcbiAgICAgIHtcclxuICAgICAgICBpZih2YWx1ZSA8IDApXHJcbiAgICAgICAgICBndWlDb21tYW5kLnZhbHVlID0gJyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIGFkZE9wZXJhdGlvbldpdGhMaW5lKGNvbW1hbmRUeXBlOiBDb21tYW5kVHlwZSwgb2JqOiBhbnksIGxpbmU6IG51bWJlciwgb3BlcmF0aW9uOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGxldCBndWlDb21tYW5kOiBHdWlDb21tYW5kID0gbmV3IEd1aUNvbW1hbmQob2JqLCBjb21tYW5kVHlwZSk7XHJcbiAgICBndWlDb21tYW5kLm9iajEgPSB2YWx1ZTtcclxuICAgIGd1aUNvbW1hbmQubGluZSA9IGxpbmU7XHJcbiAgICBndWlDb21tYW5kLk9wZXJhdGlvbiA9IG9wZXJhdGlvbjtcclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIGFkZE9wZW5zdWJmb3JtKGNvbW1hbmRUeXBlOiBDb21tYW5kVHlwZSwgb2JqOiBPYmplY3QsIGNhbGxlZFRhc2tUYWc6IHN0cmluZywgc3ViZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcsIGZvcm1OYW1lOiBzdHJpbmcsIGlucHV0Q29udHJvbHM6IHN0cmluZywgcm91dGVyUGF0aDogc3RyaW5nLCByb3V0ZXJQYXJhbXM6IExpc3Q8YW55PiwgaW5EZWZhdWx0Um91dGVyT3V0bGV0OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG9iaiwgY29tbWFuZFR5cGUpO1xyXG4gICAgZ3VpQ29tbWFuZC5zdHIgPSBjYWxsZWRUYXNrVGFnO1xyXG4gICAgZ3VpQ29tbWFuZC5vYmoxID0gc3ViZm9ybUNvbnRyb2xOYW1lO1xyXG4gICAgZ3VpQ29tbWFuZC51c2VyRHJvcEZvcm1hdCA9IGZvcm1OYW1lO1xyXG4gICAgZ3VpQ29tbWFuZC5maWxlTmFtZSA9IGlucHV0Q29udHJvbHM7XHJcbiAgICBndWlDb21tYW5kLkJvb2wxID0gaW5EZWZhdWx0Um91dGVyT3V0bGV0O1xyXG4gICAgZ3VpQ29tbWFuZC5jb250ZXh0SUQgPSByb3V0ZXJQYXRoO1xyXG4gICAgZ3VpQ29tbWFuZC5wYXJhbXMgPSByb3V0ZXJQYXJhbXM7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5hZGRDb21tYW5kKGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFkZENsb3Nlc3ViZm9ybShjb21tYW5kVHlwZTogQ29tbWFuZFR5cGUsIG9iajogT2JqZWN0LCBjYWxsZWRUYXNrVGFnOiBzdHJpbmcsIHN1YmZvcm1Db250cm9sTmFtZTogc3RyaW5nLCBmb3JtTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG9iaiwgY29tbWFuZFR5cGUpO1xyXG4gICAgZ3VpQ29tbWFuZC5zdHIgPSBjYWxsZWRUYXNrVGFnO1xyXG4gICAgZ3VpQ29tbWFuZC5vYmoxID0gc3ViZm9ybUNvbnRyb2xOYW1lO1xyXG4gICAgZ3VpQ29tbWFuZC51c2VyRHJvcEZvcm1hdCA9IGZvcm1OYW1lO1xyXG4gICAgR3VpQ29tbWFuZFF1ZXVlLmdldEluc3RhbmNlKCkuYWRkQ29tbWFuZChndWlDb21tYW5kKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBhZGRPcGVuRm9ybShvYmo6IE9iamVjdCwgZm9ybU5hbWU6IHN0cmluZywgaGFuZGxlclRhc2tUYWc6IHN0cmluZywgY2FsbGVkVGFza1RhZzogc3RyaW5nLCBpbnB1dENvbnRyb2xzOiBzdHJpbmcsIGlzRGlhbG9nOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG9iaiwgQ29tbWFuZFR5cGUuT1BFTl9GT1JNKTtcclxuICAgIGd1aUNvbW1hbmQuVGFza1RhZyA9IGhhbmRsZXJUYXNrVGFnO1xyXG4gICAgZ3VpQ29tbWFuZC5zdHIgPSBmb3JtTmFtZTtcclxuICAgIGd1aUNvbW1hbmQuc3RyaW5nTGlzdCA9IG5ldyBMaXN0PHN0cmluZz4oKTtcclxuICAgIGd1aUNvbW1hbmQuc3RyaW5nTGlzdC5wdXNoKGNhbGxlZFRhc2tUYWcpO1xyXG4gICAgZ3VpQ29tbWFuZC5zdHJpbmdMaXN0LnB1c2goaW5wdXRDb250cm9scyk7XHJcbiAgICBndWlDb21tYW5kLkJvb2wxID0gaXNEaWFsb2c7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5hZGRDb21tYW5kKGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFkZENsb3NlRm9ybShvYmo6IE9iamVjdCwgaGFuZGxlclRhc2tUYWc6IHN0cmluZywgY2FsbGVkVGFza1RhZzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG9iaiwgQ29tbWFuZFR5cGUuQ0xPU0VfRk9STSk7XHJcbiAgICBndWlDb21tYW5kLlRhc2tUYWcgPSBoYW5kbGVyVGFza1RhZztcclxuICAgIGd1aUNvbW1hbmQuc3RyID0gY2FsbGVkVGFza1RhZztcclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgYWRkQ2FsbEpTKGZvcm0gOiBhbnksIGZvcm1OYW1lOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgYXJnczogQXJyYXk8YW55Pik6IHN0cmluZyB7XHJcbiAgICBsZXQgZ3VpSW50ZXJhY3RpdmU6IEd1aUludGVyYWN0aXZlID0gbmV3IEd1aUludGVyYWN0aXZlKCk7XHJcbiAgICByZXR1cm4gZ3VpSW50ZXJhY3RpdmUuRXhlY3V0ZUNhbGxKUyhmb3JtICwgZm9ybU5hbWUsICBuYW1lLCBhcmdzKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBhZGRJc0xvZ2dlZEluKHNldEJvb2w6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGxldCBndWlDb21tYW5kOiBHdWlDb21tYW5kID0gbmV3IEd1aUNvbW1hbmQobnVsbCwgQ29tbWFuZFR5cGUuU0VUX0lTX0xPR0dFRF9JTik7XHJcbiAgICBndWlDb21tYW5kLkJvb2wxID0gc2V0Qm9vbDtcclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICAvLyBhZGRzIGEgY29tbWFuZCB0byBzaG93IG9yIGhpZGUgdGhlIHNwaW5uZXJcclxuICBzdGF0aWMgYWRkU2hvd1NwaW5uZXIoc2hvdzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgbGV0IGd1aUNvbW1hbmQ6IEd1aUNvbW1hbmQgPSBuZXcgR3VpQ29tbWFuZChudWxsLCBDb21tYW5kVHlwZS5TSE9XX1NQSU5ORVIpO1xyXG4gICAgZ3VpQ29tbWFuZC5Cb29sMSA9IHNob3c7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5hZGRDb21tYW5kKGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgLy8gYWRkcyBhIGNvbW1hbmQgd2hpY2ggaXMgbm90IHJlbGF0ZWQgdG8gYSBzcGVjaWZpYyB0YXNrXHJcbiAgc3RhdGljIGFkZEdsb2JhbENvbW1hbmQoY29tbWFuZFR5cGU6IENvbW1hbmRUeXBlKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG51bGwsIGNvbW1hbmRUeXBlKTtcclxuICAgIEd1aUNvbW1hbmRRdWV1ZS5nZXRJbnN0YW5jZSgpLmFkZENvbW1hbmQoZ3VpQ29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICAvLyBhZGRzIGEgY29tbWFuZCB0byBkaXNwbGF5IHRoZSBIVE1MIGVycm9yIHJlY2VpdmVkIGZyb20gdGhlIHJlcXVlc2VyXHJcbiAgc3RhdGljIGFkZFNob3dIVE1MRXJyb3IoY29tbWFuZFR5cGU6IENvbW1hbmRUeXBlLCBlcnJvcjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCA9IG5ldyBHdWlDb21tYW5kKG51bGwsIGNvbW1hbmRUeXBlKTtcclxuICAgIGd1aUNvbW1hbmQuc3RyID0gZXJyb3I7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5hZGRDb21tYW5kKGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGV4ZWN1dGUgYWxsIHBlbmRpbmcgY29tbWFuZHMsIGFzeW5jaHJvbm91c2x5XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGF0aWMgYmVnaW5JbnZva2UoKTogdm9pZCB7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5iZWdpbkludm9rZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGV4ZWN1dGUgYWxsIHBlbmRpbmcgY29tbWFuZHMsIHN5bmNocm9ub3VzbHlcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHN0YXRpYyBpbnZva2UoKTogdm9pZCB7XHJcbiAgICBHdWlDb21tYW5kUXVldWUuZ2V0SW5zdGFuY2UoKS5pbnZva2UoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxufVxyXG4iXX0=
|