@magic-xpa/gui 4.800.0-dev480.21 → 4.800.0-dev480.210

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.
Files changed (105) hide show
  1. package/bundles/magic-xpa-gui.umd.js +1050 -7528
  2. package/bundles/magic-xpa-gui.umd.js.map +1 -1
  3. package/bundles/magic-xpa-gui.umd.min.js +1 -1
  4. package/bundles/magic-xpa-gui.umd.min.js.map +1 -1
  5. package/esm2015/index.js +1 -1
  6. package/esm2015/magic-xpa-gui.js +1 -4
  7. package/esm2015/src/Commands.js +11 -114
  8. package/esm2015/src/Events.js +1 -517
  9. package/esm2015/src/EventsProcessor.js +1 -51
  10. package/esm2015/src/FocusManager.js +1 -13
  11. package/esm2015/src/GuiConstants.js +2 -11
  12. package/esm2015/src/GuiEnums.js +126 -130
  13. package/esm2015/src/GuiEnvironment.js +1 -1
  14. package/esm2015/src/IFlowMonitorQueue.js +1 -1
  15. package/esm2015/src/Manager.js +10 -148
  16. package/esm2015/src/UIBridge.js +1 -6
  17. package/esm2015/src/env/IEnvironment.js +1 -1
  18. package/esm2015/src/gui/ControlBase.js +1 -1
  19. package/esm2015/src/gui/GuiMgControl.js +1 -94
  20. package/esm2015/src/gui/GuiMgForm.js +1 -1
  21. package/esm2015/src/gui/KeyboardItem.js +5 -46
  22. package/esm2015/src/gui/LastFocusedVal.js +1 -5
  23. package/esm2015/src/gui/MgValue.js +1 -1
  24. package/esm2015/src/gui/PropParentInterface.js +1 -1
  25. package/esm2015/src/gui/low/DialogHandler.js +1 -10
  26. package/esm2015/src/gui/low/GuiCommand.js +1 -12
  27. package/esm2015/src/gui/low/GuiCommandQueue.js +1 -66
  28. package/esm2015/src/gui/low/GuiInteractive.js +8 -465
  29. package/esm2015/src/gui/low/Style.js +1 -9
  30. package/esm2015/src/management/RuntimeContextBase.js +11 -14
  31. package/esm2015/src/management/data/BlobType.js +0 -0
  32. package/esm2015/src/management/data/DcValues.js +8 -67
  33. package/esm2015/src/management/data/DcValuesBuilderBase.js +2 -37
  34. package/esm2015/src/management/data/FieldDef.js +1 -95
  35. package/esm2015/src/management/data/FieldsTable.js +2 -28
  36. package/esm2015/src/management/data/GuiDataViewBase.js +33 -72
  37. package/esm2015/src/management/data/GuiFieldBase.js +4 -39
  38. package/esm2015/src/management/data/IRecord.js +1 -1
  39. package/esm2015/src/management/data/IReferencedObject.js +1 -8
  40. package/esm2015/src/management/data/NUM_TYPE.js +14 -485
  41. package/esm2015/src/management/data/ObjectReferenceBase.js +1 -3
  42. package/esm2015/src/management/data/ObjectReferencesCollection.js +1 -2
  43. package/esm2015/src/management/data/RecordUtils.js +6 -112
  44. package/esm2015/src/management/data/VectorType.js +17 -252
  45. package/esm2015/src/management/data/VectorTypeBase.js +1 -35
  46. package/esm2015/src/management/events/IActionManager.js +1 -1
  47. package/esm2015/src/management/events/IGuiEventsManager.js +1 -1
  48. package/esm2015/src/management/exp/ExpressionInterface.js +5 -3
  49. package/esm2015/src/management/exp/GuiExpressionEvaluator.js +38 -155
  50. package/esm2015/src/management/gui/ControlTable.js +18 -72
  51. package/esm2015/src/management/gui/DisplayConvertor.js +43 -493
  52. package/esm2015/src/management/gui/FieldValidator.js +58 -339
  53. package/esm2015/src/management/gui/GuiControlPropertyAdapter.js +1 -1
  54. package/esm2015/src/management/gui/GuiFormPropertyAdapter.js +1 -8
  55. package/esm2015/src/management/gui/HebrewDate.js +3 -140
  56. package/esm2015/src/management/gui/Helps.js +2 -48
  57. package/esm2015/src/management/gui/MgControlBase.js +143 -876
  58. package/esm2015/src/management/gui/MgFormBase.js +68 -407
  59. package/esm2015/src/management/gui/PIC.js +58 -285
  60. package/esm2015/src/management/gui/PropDefaults.js +13 -48
  61. package/esm2015/src/management/gui/PropInterface.js +2 -4
  62. package/esm2015/src/management/gui/PropTable.js +72 -183
  63. package/esm2015/src/management/gui/Property.js +35 -372
  64. package/esm2015/src/management/gui/ValidationDetails.js +10 -52
  65. package/esm2015/src/management/gui/ValidationDetailsBase.js +12 -45
  66. package/esm2015/src/management/gui/WrongFormatException.js +1 -15
  67. package/esm2015/src/management/tasks/GuiDataCollection.js +1 -1
  68. package/esm2015/src/management/tasks/GuiTaskBase.js +38 -383
  69. package/esm2015/src/management/tasks/IMGDataTable.js +1 -1
  70. package/esm2015/src/management/tasks/ITask.js +1 -1
  71. package/esm2015/src/management/tasks/MgTimer.js +1 -16
  72. package/esm2015/src/management/tasks/TaskDefinitionId.js +8 -18
  73. package/esm2015/src/management/tasks/TaskDefinitionIdTableSaxHandler.js +1 -13
  74. package/esm2015/src/util/AuthenticationDialogHandler.js +1 -4
  75. package/esm2015/src/util/MemoryUtil.js +1 -41
  76. package/esm2015/src/util/ObjectReference.js +1 -8
  77. package/esm2015/src/util/ProcessLauncher.js +3 -21
  78. package/esm2015/src/util/UsernamePasswordCredentials.js +1 -9
  79. package/fesm2015/magic-xpa-gui.js +857 -7052
  80. package/fesm2015/magic-xpa-gui.js.map +1 -1
  81. package/magic-xpa-gui.d.ts +0 -3
  82. package/package.json +2 -2
  83. package/src/Commands.d.ts +2 -0
  84. package/src/Events.d.ts +0 -2
  85. package/src/GuiEnums.d.ts +125 -128
  86. package/src/env/IEnvironment.d.ts +3 -0
  87. package/src/gui/PropParentInterface.d.ts +1 -1
  88. package/src/gui/low/GuiInteractive.d.ts +3 -1
  89. package/src/gui/low/Style.d.ts +0 -3
  90. package/src/management/RuntimeContextBase.d.ts +2 -0
  91. package/src/management/data/GuiDataViewBase.d.ts +4 -4
  92. package/src/management/data/IRecord.d.ts +1 -1
  93. package/src/management/exp/ExpressionInterface.d.ts +4 -0
  94. package/src/management/exp/GuiExpressionEvaluator.d.ts +4 -6
  95. package/src/management/gui/ControlTable.d.ts +1 -1
  96. package/src/management/gui/DisplayConvertor.d.ts +1 -1
  97. package/src/management/gui/GuiControlPropertyAdapter.d.ts +1 -1
  98. package/src/management/gui/MgControlBase.d.ts +7 -7
  99. package/src/management/gui/MgFormBase.d.ts +6 -6
  100. package/src/management/gui/PIC.d.ts +1 -0
  101. package/src/management/gui/PropInterface.d.ts +2 -4
  102. package/src/management/gui/PropTable.d.ts +4 -5
  103. package/src/management/gui/Property.d.ts +1 -1
  104. package/src/management/tasks/GuiTaskBase.d.ts +8 -14
  105. package/src/management/tasks/TaskDefinitionId.d.ts +1 -0
@@ -33,25 +33,18 @@ export class GuiCommand {
33
33
  return;
34
34
  }
35
35
  else if (arguments.length === 2) {
36
- // && (commandTypeOrObjOrParentObject === null || commandTypeOrObjOrParentObject.constructor === Object) && (strOrCommandTypeOrObj === null || strOrCommandTypeOrObj.constructor === Number)) {
37
36
  this.constructor_2(commandTypeOrObjOrParentObject, strOrCommandTypeOrObj);
38
37
  return;
39
38
  }
40
39
  this.constructor_3(commandTypeOrObjOrParentObject, strOrCommandTypeOrObj, cmmandType);
41
40
  }
42
- /// <summary>
43
- /// </summary>
44
41
  constructor_0(commandType) {
45
42
  this.CommandType = commandType;
46
43
  }
47
- /// <summary></summary>
48
- /// <param name = "commandType"></param>
49
- /// <param name = "str"></param>
50
44
  constructor_1(commandType, str) {
51
45
  this.constructor_0(commandType);
52
46
  this.str = str;
53
47
  }
54
- /// <summary></summary>
55
48
  constructor_2(obj, commandType) {
56
49
  this.constructor_0(commandType);
57
50
  this.obj = obj;
@@ -62,10 +55,6 @@ export class GuiCommand {
62
55
  else if (obj === null)
63
56
  this.TaskTag = "0";
64
57
  }
65
- /// <summary>
66
- /// this is my comment
67
- /// </summary>
68
- /// <param name = "parentObject">the parent object of the object</param>
69
58
  constructor_3(parentObject, obj, cmmandType) {
70
59
  this.constructor_2(obj, cmmandType);
71
60
  this.parentObject = parentObject;
@@ -74,4 +63,4 @@ export class GuiCommand {
74
63
  return "{" + this.CommandType + "}";
75
64
  }
76
65
  }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpQ29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9zcmMvZ3VpL2xvdy9HdWlDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxNQUFNLE9BQU8sVUFBVTtJQWdDckIsWUFBWSw4QkFBbUMsRUFBRSxxQkFBMkIsRUFBRSxVQUF3QjtRQS9CdEcsWUFBTyxHQUFXLElBQUksQ0FBQztRQUV2QixnQkFBVyxHQUFnQixDQUFDLENBQUM7UUFDN0IsWUFBTyxHQUFRLElBQUksQ0FBQztRQUNwQixVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQU0sR0FBYyxJQUFJLENBQUM7UUFDekIsYUFBUSxHQUFXLElBQUksQ0FBQztRQUN4QixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsU0FBSSxHQUFXLENBQUMsQ0FBQztRQUNqQixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLFFBQUcsR0FBUSxJQUFJLENBQUM7UUFDaEIsaUJBQVksR0FBUSxJQUFJLENBQUM7UUFDekIsU0FBSSxHQUFRLElBQUksQ0FBQztRQUNqQixRQUFHLEdBQVcsSUFBSSxDQUFDO1FBQ25CLFVBQUssR0FBUSxJQUFJLENBQUM7UUFDbEIsZUFBVSxHQUFpQixJQUFJLENBQUM7UUFDaEMsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLE1BQUMsR0FBVyxDQUFDLENBQUM7UUFDZCxNQUFDLEdBQVcsQ0FBQyxDQUFDO1FBQ2QsbUJBQWMsR0FBVyxJQUFJLENBQUM7UUFDOUIsY0FBUyxHQUFXLElBQUksQ0FBQztRQVV2QixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsOEJBQThCLEtBQUssSUFBSSxJQUFJLDhCQUE4QixDQUFDLFdBQVcsS0FBSyxNQUFNLENBQUMsRUFBRTtZQUNoSSxJQUFJLENBQUMsYUFBYSxDQUFDLDhCQUE4QixDQUFDLENBQUM7WUFDbkQsT0FBTztTQUNSO1FBQ0QsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLDhCQUE4QixLQUFLLElBQUksSUFBSSw4QkFBOEIsQ0FBQyxXQUFXLEtBQUssTUFBTSxDQUFDO2VBQzNILENBQUMscUJBQXFCLEtBQUssSUFBSSxJQUFJLHFCQUFxQixDQUFDLFdBQVcsS0FBSyxNQUFNLENBQUMsRUFBRTtZQUNyRixJQUFJLENBQUMsYUFBYSxDQUFDLDhCQUE4QixFQUFFLHFCQUFxQixDQUFDLENBQUM7WUFDMUUsT0FBTztTQUNSO2FBQU0sSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNqQywrTEFBK0w7WUFDL0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1lBQzFFLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsOEJBQThCLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELGFBQWE7SUFDYixjQUFjO0lBQ04sYUFBYSxDQUFDLFdBQXdCO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsd0NBQXdDO0lBQ3hDLGdDQUFnQztJQUN4QixhQUFhLENBQUMsV0FBd0IsRUFBRSxHQUFXO1FBQ3pELElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVELHVCQUF1QjtJQUNmLGFBQWEsQ0FBQyxHQUFRLEVBQUUsV0FBd0I7UUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLEdBQUcsWUFBWSxXQUFXLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBaUIsSUFBSSxDQUFDLEdBQUksQ0FBQyxVQUFVLENBQUM7WUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBaUIsSUFBSSxDQUFDLEdBQUksQ0FBQyxPQUFPLENBQUM7U0FDaEQ7YUFDSSxJQUFHLEdBQUcsS0FBSyxJQUFJO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxhQUFhO0lBQ2Isd0JBQXdCO0lBQ3hCLGNBQWM7SUFDZCx3RUFBd0U7SUFDaEUsYUFBYSxDQUFDLFlBQWlCLEVBQUUsR0FBUSxFQUFFLFVBQXVCO1FBQ3hFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFHRCxRQUFRO1FBQ04sT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDdEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tYW5kVHlwZX0gZnJvbSBcIi4uLy4uL0d1aUVudW1zXCI7XHJcbmltcG9ydCB7Q29udHJvbEJhc2V9IGZyb20gXCIuLi9Db250cm9sQmFzZVwiO1xyXG5pbXBvcnQge0xpc3R9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEd1aUNvbW1hbmQge1xyXG4gIFRhc2tUYWc6IHN0cmluZyA9IG51bGw7XHJcbiAgT3BlcmF0aW9uOiBzdHJpbmc7XHJcbiAgQ29tbWFuZFR5cGU6IENvbW1hbmRUeXBlID0gMDtcclxuICBvcHRpb25zOiBhbnkgPSBudWxsO1xyXG4gIEJvb2wxOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcGFyYW1zOiBMaXN0PGFueT4gPSBudWxsO1xyXG4gIGZpbGVOYW1lOiBzdHJpbmcgPSBudWxsO1xyXG4gIGhlaWdodDogbnVtYmVyID0gMDtcclxuICBsYXllcjogbnVtYmVyID0gMDtcclxuICBsaW5lOiBudW1iZXIgPSAwO1xyXG4gIG51bWJlcjogbnVtYmVyID0gMDtcclxuICBvYmo6IGFueSA9IG51bGw7XHJcbiAgcGFyZW50T2JqZWN0OiBhbnkgPSBudWxsO1xyXG4gIG9iajE6IGFueSA9IG51bGw7XHJcbiAgc3RyOiBzdHJpbmcgPSBudWxsO1xyXG4gIHZhbHVlOiBhbnkgPSBudWxsO1xyXG4gIHN0cmluZ0xpc3Q6IExpc3Q8c3RyaW5nPiA9IG51bGw7XHJcbiAgc3R5bGU6IG51bWJlciA9IDA7XHJcbiAgd2lkdGg6IG51bWJlciA9IDA7XHJcbiAgeDogbnVtYmVyID0gMDtcclxuICB5OiBudW1iZXIgPSAwO1xyXG4gIHVzZXJEcm9wRm9ybWF0OiBzdHJpbmcgPSBudWxsO1xyXG4gIGNvbnRleHRJRDogc3RyaW5nID0gJ1xcMCc7XHJcblxyXG5cclxuICBwdWJsaWMgQ3RybE5hbWU6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoY29tbWFuZFR5cGU6IENvbW1hbmRUeXBlKTtcclxuICBjb25zdHJ1Y3Rvcihjb21tYW5kVHlwZTogQ29tbWFuZFR5cGUsIHN0cjogc3RyaW5nKTtcclxuICBjb25zdHJ1Y3RvcihvYmo6IGFueSwgY29tbWFuZFR5cGU6IENvbW1hbmRUeXBlKTtcclxuICBjb25zdHJ1Y3RvcihwYXJlbnRPYmplY3Q6IGFueSwgb2JqOiBhbnksIGNtbWFuZFR5cGU6IENvbW1hbmRUeXBlKTtcclxuICBjb25zdHJ1Y3Rvcihjb21tYW5kVHlwZU9yT2JqT3JQYXJlbnRPYmplY3Q6IGFueSwgc3RyT3JDb21tYW5kVHlwZU9yT2JqPzogYW55LCBjbW1hbmRUeXBlPzogQ29tbWFuZFR5cGUpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxICYmIChjb21tYW5kVHlwZU9yT2JqT3JQYXJlbnRPYmplY3QgPT09IG51bGwgfHwgY29tbWFuZFR5cGVPck9iak9yUGFyZW50T2JqZWN0LmNvbnN0cnVjdG9yID09PSBOdW1iZXIpKSB7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMChjb21tYW5kVHlwZU9yT2JqT3JQYXJlbnRPYmplY3QpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMiAmJiAoY29tbWFuZFR5cGVPck9iak9yUGFyZW50T2JqZWN0ID09PSBudWxsIHx8IGNvbW1hbmRUeXBlT3JPYmpPclBhcmVudE9iamVjdC5jb25zdHJ1Y3RvciA9PT0gTnVtYmVyKVxyXG4gICAgICAmJiAoc3RyT3JDb21tYW5kVHlwZU9yT2JqID09PSBudWxsIHx8IHN0ck9yQ29tbWFuZFR5cGVPck9iai5jb25zdHJ1Y3RvciA9PT0gU3RyaW5nKSkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzEoY29tbWFuZFR5cGVPck9iak9yUGFyZW50T2JqZWN0LCBzdHJPckNvbW1hbmRUeXBlT3JPYmopO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcclxuICAgICAgLy8gJiYgKGNvbW1hbmRUeXBlT3JPYmpPclBhcmVudE9iamVjdCA9PT0gbnVsbCB8fCBjb21tYW5kVHlwZU9yT2JqT3JQYXJlbnRPYmplY3QuY29uc3RydWN0b3IgPT09IE9iamVjdCkgJiYgKHN0ck9yQ29tbWFuZFR5cGVPck9iaiA9PT0gbnVsbCB8fCBzdHJPckNvbW1hbmRUeXBlT3JPYmouY29uc3RydWN0b3IgPT09IE51bWJlcikpIHtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8yKGNvbW1hbmRUeXBlT3JPYmpPclBhcmVudE9iamVjdCwgc3RyT3JDb21tYW5kVHlwZU9yT2JqKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25zdHJ1Y3Rvcl8zKGNvbW1hbmRUeXBlT3JPYmpPclBhcmVudE9iamVjdCwgc3RyT3JDb21tYW5kVHlwZU9yT2JqLCBjbW1hbmRUeXBlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMChjb21tYW5kVHlwZTogQ29tbWFuZFR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMuQ29tbWFuZFR5cGUgPSBjb21tYW5kVHlwZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT48L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjb21tYW5kVHlwZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzdHJcIj48L3BhcmFtPlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMShjb21tYW5kVHlwZTogQ29tbWFuZFR5cGUsIHN0cjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnN0cnVjdG9yXzAoY29tbWFuZFR5cGUpO1xyXG4gICAgdGhpcy5zdHIgPSBzdHI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+PC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMihvYmo6IGFueSwgY29tbWFuZFR5cGU6IENvbW1hbmRUeXBlKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnN0cnVjdG9yXzAoY29tbWFuZFR5cGUpO1xyXG4gICAgdGhpcy5vYmogPSBvYmo7XHJcbiAgICBpZiAodGhpcy5vYmogaW5zdGFuY2VvZiBDb250cm9sQmFzZSkge1xyXG4gICAgICB0aGlzLkN0cmxOYW1lID0gKDxDb250cm9sQmFzZT50aGlzLm9iaikuVW5pcXVlTmFtZTtcclxuICAgICAgdGhpcy5UYXNrVGFnID0gKDxDb250cm9sQmFzZT50aGlzLm9iaikuVGFza1RhZztcclxuICAgIH1cclxuICAgIGVsc2UgaWYob2JqID09PSBudWxsKVxyXG4gICAgICB0aGlzLlRhc2tUYWcgPSBcIjBcIjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICB0aGlzIGlzIG15IGNvbW1lbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicGFyZW50T2JqZWN0XCI+dGhlIHBhcmVudCBvYmplY3Qgb2YgdGhlIG9iamVjdDwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8zKHBhcmVudE9iamVjdDogYW55LCBvYmo6IGFueSwgY21tYW5kVHlwZTogQ29tbWFuZFR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uc3RydWN0b3JfMihvYmosIGNtbWFuZFR5cGUpO1xyXG4gICAgdGhpcy5wYXJlbnRPYmplY3QgPSBwYXJlbnRPYmplY3Q7XHJcbiAgfVxyXG5cclxuXHJcbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBcIntcIiArIHRoaXMuQ29tbWFuZFR5cGUgKyBcIn1cIjtcclxuICB9XHJcbn1cclxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpQ29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9zcmMvZ3VpL2xvdy9HdWlDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxNQUFNLE9BQU8sVUFBVTtJQWdDckIsWUFBWSw4QkFBbUMsRUFBRSxxQkFBMkIsRUFBRSxVQUF3QjtRQS9CdEcsWUFBTyxHQUFXLElBQUksQ0FBQztRQUV2QixnQkFBVyxHQUFnQixDQUFDLENBQUM7UUFDN0IsWUFBTyxHQUFRLElBQUksQ0FBQztRQUNwQixVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQU0sR0FBYyxJQUFJLENBQUM7UUFDekIsYUFBUSxHQUFXLElBQUksQ0FBQztRQUN4QixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsU0FBSSxHQUFXLENBQUMsQ0FBQztRQUNqQixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLFFBQUcsR0FBUSxJQUFJLENBQUM7UUFDaEIsaUJBQVksR0FBUSxJQUFJLENBQUM7UUFDekIsU0FBSSxHQUFRLElBQUksQ0FBQztRQUNqQixRQUFHLEdBQVcsSUFBSSxDQUFDO1FBQ25CLFVBQUssR0FBUSxJQUFJLENBQUM7UUFDbEIsZUFBVSxHQUFpQixJQUFJLENBQUM7UUFDaEMsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLE1BQUMsR0FBVyxDQUFDLENBQUM7UUFDZCxNQUFDLEdBQVcsQ0FBQyxDQUFDO1FBQ2QsbUJBQWMsR0FBVyxJQUFJLENBQUM7UUFDOUIsY0FBUyxHQUFXLElBQUksQ0FBQztRQVV2QixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsOEJBQThCLEtBQUssSUFBSSxJQUFJLDhCQUE4QixDQUFDLFdBQVcsS0FBSyxNQUFNLENBQUMsRUFBRTtZQUNoSSxJQUFJLENBQUMsYUFBYSxDQUFDLDhCQUE4QixDQUFDLENBQUM7WUFDbkQsT0FBTztTQUNSO1FBQ0QsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLDhCQUE4QixLQUFLLElBQUksSUFBSSw4QkFBOEIsQ0FBQyxXQUFXLEtBQUssTUFBTSxDQUFDO2VBQzNILENBQUMscUJBQXFCLEtBQUssSUFBSSxJQUFJLHFCQUFxQixDQUFDLFdBQVcsS0FBSyxNQUFNLENBQUMsRUFBRTtZQUNyRixJQUFJLENBQUMsYUFBYSxDQUFDLDhCQUE4QixFQUFFLHFCQUFxQixDQUFDLENBQUM7WUFDMUUsT0FBTztTQUNSO2FBQU0sSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUVqQyxJQUFJLENBQUMsYUFBYSxDQUFDLDhCQUE4QixFQUFFLHFCQUFxQixDQUFDLENBQUM7WUFDMUUsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsRUFBRSxxQkFBcUIsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBSU8sYUFBYSxDQUFDLFdBQXdCO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFLTyxhQUFhLENBQUMsV0FBd0IsRUFBRSxHQUFXO1FBQ3pELElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUdPLGFBQWEsQ0FBQyxHQUFRLEVBQUUsV0FBd0I7UUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLEdBQUcsWUFBWSxXQUFXLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBaUIsSUFBSSxDQUFDLEdBQUksQ0FBQyxVQUFVLENBQUM7WUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBaUIsSUFBSSxDQUFDLEdBQUksQ0FBQyxPQUFPLENBQUM7U0FDaEQ7YUFDSSxJQUFHLEdBQUcsS0FBSyxJQUFJO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ3ZCLENBQUM7SUFNTyxhQUFhLENBQUMsWUFBaUIsRUFBRSxHQUFRLEVBQUUsVUFBdUI7UUFDeEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUdELFFBQVE7UUFDTixPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1hbmRUeXBlfSBmcm9tIFwiLi4vLi4vR3VpRW51bXNcIjtcclxuaW1wb3J0IHtDb250cm9sQmFzZX0gZnJvbSBcIi4uL0NvbnRyb2xCYXNlXCI7XHJcbmltcG9ydCB7TGlzdH0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgR3VpQ29tbWFuZCB7XHJcbiAgVGFza1RhZzogc3RyaW5nID0gbnVsbDtcclxuICBPcGVyYXRpb246IHN0cmluZztcclxuICBDb21tYW5kVHlwZTogQ29tbWFuZFR5cGUgPSAwO1xyXG4gIG9wdGlvbnM6IGFueSA9IG51bGw7XHJcbiAgQm9vbDE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwYXJhbXM6IExpc3Q8YW55PiA9IG51bGw7XHJcbiAgZmlsZU5hbWU6IHN0cmluZyA9IG51bGw7XHJcbiAgaGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gIGxheWVyOiBudW1iZXIgPSAwO1xyXG4gIGxpbmU6IG51bWJlciA9IDA7XHJcbiAgbnVtYmVyOiBudW1iZXIgPSAwO1xyXG4gIG9iajogYW55ID0gbnVsbDtcclxuICBwYXJlbnRPYmplY3Q6IGFueSA9IG51bGw7XHJcbiAgb2JqMTogYW55ID0gbnVsbDtcclxuICBzdHI6IHN0cmluZyA9IG51bGw7XHJcbiAgdmFsdWU6IGFueSA9IG51bGw7XHJcbiAgc3RyaW5nTGlzdDogTGlzdDxzdHJpbmc+ID0gbnVsbDtcclxuICBzdHlsZTogbnVtYmVyID0gMDtcclxuICB3aWR0aDogbnVtYmVyID0gMDtcclxuICB4OiBudW1iZXIgPSAwO1xyXG4gIHk6IG51bWJlciA9IDA7XHJcbiAgdXNlckRyb3BGb3JtYXQ6IHN0cmluZyA9IG51bGw7XHJcbiAgY29udGV4dElEOiBzdHJpbmcgPSAnXFwwJztcclxuXHJcblxyXG4gIHB1YmxpYyBDdHJsTmFtZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihjb21tYW5kVHlwZTogQ29tbWFuZFR5cGUpO1xyXG4gIGNvbnN0cnVjdG9yKGNvbW1hbmRUeXBlOiBDb21tYW5kVHlwZSwgc3RyOiBzdHJpbmcpO1xyXG4gIGNvbnN0cnVjdG9yKG9iajogYW55LCBjb21tYW5kVHlwZTogQ29tbWFuZFR5cGUpO1xyXG4gIGNvbnN0cnVjdG9yKHBhcmVudE9iamVjdDogYW55LCBvYmo6IGFueSwgY21tYW5kVHlwZTogQ29tbWFuZFR5cGUpO1xyXG4gIGNvbnN0cnVjdG9yKGNvbW1hbmRUeXBlT3JPYmpPclBhcmVudE9iamVjdDogYW55LCBzdHJPckNvbW1hbmRUeXBlT3JPYmo/OiBhbnksIGNtbWFuZFR5cGU/OiBDb21tYW5kVHlwZSkge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEgJiYgKGNvbW1hbmRUeXBlT3JPYmpPclBhcmVudE9iamVjdCA9PT0gbnVsbCB8fCBjb21tYW5kVHlwZU9yT2JqT3JQYXJlbnRPYmplY3QuY29uc3RydWN0b3IgPT09IE51bWJlcikpIHtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8wKGNvbW1hbmRUeXBlT3JPYmpPclBhcmVudE9iamVjdCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyICYmIChjb21tYW5kVHlwZU9yT2JqT3JQYXJlbnRPYmplY3QgPT09IG51bGwgfHwgY29tbWFuZFR5cGVPck9iak9yUGFyZW50T2JqZWN0LmNvbnN0cnVjdG9yID09PSBOdW1iZXIpXHJcbiAgICAgICYmIChzdHJPckNvbW1hbmRUeXBlT3JPYmogPT09IG51bGwgfHwgc3RyT3JDb21tYW5kVHlwZU9yT2JqLmNvbnN0cnVjdG9yID09PSBTdHJpbmcpKSB7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMShjb21tYW5kVHlwZU9yT2JqT3JQYXJlbnRPYmplY3QsIHN0ck9yQ29tbWFuZFR5cGVPck9iaik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikge1xyXG4gICAgICAvLyAmJiAoY29tbWFuZFR5cGVPck9iak9yUGFyZW50T2JqZWN0ID09PSBudWxsIHx8IGNvbW1hbmRUeXBlT3JPYmpPclBhcmVudE9iamVjdC5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0KSAmJiAoc3RyT3JDb21tYW5kVHlwZU9yT2JqID09PSBudWxsIHx8IHN0ck9yQ29tbWFuZFR5cGVPck9iai5jb25zdHJ1Y3RvciA9PT0gTnVtYmVyKSkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzIoY29tbWFuZFR5cGVPck9iak9yUGFyZW50T2JqZWN0LCBzdHJPckNvbW1hbmRUeXBlT3JPYmopO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnN0cnVjdG9yXzMoY29tbWFuZFR5cGVPck9iak9yUGFyZW50T2JqZWN0LCBzdHJPckNvbW1hbmRUeXBlT3JPYmosIGNtbWFuZFR5cGUpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8wKGNvbW1hbmRUeXBlOiBDb21tYW5kVHlwZSk6IHZvaWQge1xyXG4gICAgdGhpcy5Db21tYW5kVHlwZSA9IGNvbW1hbmRUeXBlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5Pjwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNvbW1hbmRUeXBlXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0clwiPjwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8xKGNvbW1hbmRUeXBlOiBDb21tYW5kVHlwZSwgc3RyOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uc3RydWN0b3JfMChjb21tYW5kVHlwZSk7XHJcbiAgICB0aGlzLnN0ciA9IHN0cjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT48L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8yKG9iajogYW55LCBjb21tYW5kVHlwZTogQ29tbWFuZFR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uc3RydWN0b3JfMChjb21tYW5kVHlwZSk7XHJcbiAgICB0aGlzLm9iaiA9IG9iajtcclxuICAgIGlmICh0aGlzLm9iaiBpbnN0YW5jZW9mIENvbnRyb2xCYXNlKSB7XHJcbiAgICAgIHRoaXMuQ3RybE5hbWUgPSAoPENvbnRyb2xCYXNlPnRoaXMub2JqKS5VbmlxdWVOYW1lO1xyXG4gICAgICB0aGlzLlRhc2tUYWcgPSAoPENvbnRyb2xCYXNlPnRoaXMub2JqKS5UYXNrVGFnO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZihvYmogPT09IG51bGwpXHJcbiAgICAgIHRoaXMuVGFza1RhZyA9IFwiMFwiO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHRoaXMgaXMgbXkgY29tbWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJwYXJlbnRPYmplY3RcIj50aGUgcGFyZW50IG9iamVjdCBvZiB0aGUgb2JqZWN0PC9wYXJhbT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzMocGFyZW50T2JqZWN0OiBhbnksIG9iajogYW55LCBjbW1hbmRUeXBlOiBDb21tYW5kVHlwZSk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25zdHJ1Y3Rvcl8yKG9iaiwgY21tYW5kVHlwZSk7XHJcbiAgICB0aGlzLnBhcmVudE9iamVjdCA9IHBhcmVudE9iamVjdDtcclxuICB9XHJcblxyXG5cclxuICB0b1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFwie1wiICsgdGhpcy5Db21tYW5kVHlwZSArIFwifVwiO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,92 +1,27 @@
1
- /// <summary>
2
- /// <summary>
3
- /// Gui command queue
4
- /// </summary>
5
1
  import { UIBridge } from "../../UIBridge";
6
2
  export class GuiCommandQueue {
7
- /// <summary>
8
- /// basis Constructor
9
- /// </summary>
10
3
  constructor() {
11
4
  this._commandsQueue = null;
12
5
  this._executingGuiCommands = false;
13
6
  this.init();
14
7
  }
15
- /// <summary>
16
- /// end inner class GuiCommand
17
- /// </summary>
18
- /// <summary>singleton</summary>
19
- /// <returns> reference to GuiCommandQueue object</returns>
20
8
  static getInstance() {
21
9
  if (GuiCommandQueue._instance === null)
22
10
  GuiCommandQueue._instance = new GuiCommandQueue();
23
11
  return GuiCommandQueue._instance;
24
12
  }
25
- /// <summary>Constructor</summary>
26
13
  init() {
27
14
  this._commandsQueue = new Array();
28
15
  }
29
16
  addCommand(guiCommand) {
30
17
  this.put(guiCommand);
31
18
  }
32
- /// <summary>
33
- /// Adds a command to the queue. If there are already enough commands in the queue then
34
- /// it will wait till the queue is emptied bu Gui thread.
35
- /// </summary>
36
- /// <param name="guiCommand"></param>
37
19
  put(guiCommand) {
38
- // const QUEUE_SIZE_THRESHOLD: number = 1200; // a threshold above which commands will not be inserted to the queue until the queue will be empty.
39
- // const MAX_SLEEP_DURATION: number = 4;// duration, in ms, between checking that the queue is empty.
40
- //
41
- // // If worker thread wants to add a command and there are too many commands in the queue pending
42
- // // to be processed by Gui thread then suspend current thread till the commands are over. If we keep
43
- // // on adding commands to the queue and Gui thread enters Run(), then sometimes (specially in cases of
44
- // // batch tasks) Gui thread remains in Run() for a long time and hence it is unable to process user
45
- // // interactions (as described in QCR#722145)
46
- // // Before entering the loop confirm that the command is NOT being added by Gui thread itself and Gui
47
- // // thread is already processing the commands. This is to ensure that the commands will be processed by
48
- // // Gui thread. If Gui thread is not processing commands, then it will never process it again as it is
49
- // // the worker thread that invokes Gui thread for processing commands
50
- // // Also, suspend worker thread from adding new commands to the queue till SHOW_FORM for modal window
51
- // // is processed. Problem occurs if SHOW_FORM is followed by few more commands and then a call to
52
- // // GuiInteractive that depends on the earlier commands. In such cases, GuiInteractive will not process
53
- // // commands between SHOW_FORM and interactive command because GuiThreadIsAvailableToProcessCommands
54
- // // was set to false before opening the dialog.
55
- // if (((this._commandsQueue.Size() > QUEUE_SIZE_THRESHOLD ) || this._modalShowFormCommandPresentInQueue)) {
56
- // let sleepDuration: number = MAX_SLEEP_DURATION;
57
- // do {
58
- // // get current size of the queue and wait for some time
59
- // const size: number = this._commandsQueue.Size();
60
- // //System.Threading.Thread.Sleep(sleepDuration);
61
- // const newSize: number = this._commandsQueue.Size();
62
- //
63
- // // while current thread was sleeping, gui thread should have processed some commands.
64
- // // get average duration required by gui thread for processing a command and estimate new duration for remaining commands.
65
- // if (size > newSize) {
66
- // let averageDurationPerCommand: number = sleepDuration / (size - newSize);
67
- // let newSleepDuration: number = <number>(newSize * averageDurationPerCommand);
68
- // if (newSleepDuration > 0)
69
- // sleepDuration = Math.min(MAX_SLEEP_DURATION, newSleepDuration);
70
- // }
71
- // }
72
- // while (this._commandsQueue.Size() > 0);
73
20
  this._commandsQueue.push(guiCommand);
74
- // if (guiCommand.CommandType === CommandType.REFRESH_TABLE && guiCommand.Bool3) {
75
- // let mgControl: MgControlBase = <MgControlBase>(guiCommand.obj);
76
- // mgControl.refreshTableCommandCount++;
77
- // }
78
- // else if (guiCommand.IsModalShowFormCommand())
79
- // this._modalShowFormCommandPresentInQueue = true;
80
21
  }
81
- /// <summary>
82
- /// execute all pending commands, asynchronously
83
- /// </summary>
84
22
  beginInvoke() {
85
23
  this.invoke();
86
24
  }
87
- /// <summary>
88
- /// execute all pending commands, synchronously
89
- /// </summary>
90
25
  invoke() {
91
26
  if (!this._executingGuiCommands) {
92
27
  this._executingGuiCommands = true;
@@ -97,4 +32,4 @@ export class GuiCommandQueue {
97
32
  }
98
33
  }
99
34
  GuiCommandQueue._instance = null;
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpQ29tbWFuZFF1ZXVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9ndWkvbG93L0d1aUNvbW1hbmRRdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxhQUFhO0FBQ2IsYUFBYTtBQUNiLHVCQUF1QjtBQUN2QixjQUFjO0FBQ2QsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3hDLE1BQU0sT0FBTyxlQUFlO0lBTTFCLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsY0FBYztJQUNkO1FBTlEsbUJBQWMsR0FBc0IsSUFBSSxDQUFDO1FBQ3pDLDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQU03QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsYUFBYTtJQUNiLGdDQUFnQztJQUNoQyxjQUFjO0lBQ2QsZ0NBQWdDO0lBQ2hDLDJEQUEyRDtJQUMzRCxNQUFNLENBQUMsV0FBVztRQUNoQixJQUFJLGVBQWUsQ0FBQyxTQUFTLEtBQUssSUFBSTtZQUNwQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEQsT0FBTyxlQUFlLENBQUMsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsSUFBSTtRQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxLQUFLLEVBQWMsQ0FBQztJQUNoRCxDQUFDO0lBR0QsVUFBVSxDQUFDLFVBQXNCO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELGFBQWE7SUFDYix1RkFBdUY7SUFDdkYseURBQXlEO0lBQ3pELGNBQWM7SUFDZCxxQ0FBcUM7SUFDN0IsR0FBRyxDQUFDLFVBQXNCO1FBQ2hDLGtKQUFrSjtRQUNsSixxR0FBcUc7UUFDckcsRUFBRTtRQUNGLGtHQUFrRztRQUNsRyxzR0FBc0c7UUFDdEcsd0dBQXdHO1FBQ3hHLHFHQUFxRztRQUNyRywrQ0FBK0M7UUFDL0MsdUdBQXVHO1FBQ3ZHLHlHQUF5RztRQUN6Ryx3R0FBd0c7UUFDeEcsdUVBQXVFO1FBQ3ZFLHVHQUF1RztRQUN2RyxtR0FBbUc7UUFDbkcsMEdBQTBHO1FBQzFHLHNHQUFzRztRQUN0RyxpREFBaUQ7UUFDakQsNEdBQTRHO1FBQzVHLG9EQUFvRDtRQUNwRCxTQUFTO1FBQ1QsOERBQThEO1FBQzlELHVEQUF1RDtRQUN2RCxzREFBc0Q7UUFDdEQsMERBQTBEO1FBQzFELEVBQUU7UUFDRiw0RkFBNEY7UUFDNUYsZ0lBQWdJO1FBQ2hJLDRCQUE0QjtRQUM1QixrRkFBa0Y7UUFDbEYsc0ZBQXNGO1FBQ3RGLGtDQUFrQztRQUNsQywwRUFBMEU7UUFDMUUsUUFBUTtRQUNSLE1BQU07UUFDTiw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckMsa0ZBQWtGO1FBQ2xGLG9FQUFvRTtRQUNwRSwwQ0FBMEM7UUFDMUMsSUFBSTtRQUNKLGdEQUFnRDtRQUNoRCxxREFBcUQ7SUFDdkQsQ0FBQztJQUVELGFBQWE7SUFDYixrREFBa0Q7SUFDbEQsY0FBYztJQUNkLFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFFaEIsQ0FBQztJQUVELGFBQWE7SUFDYixpREFBaUQ7SUFDakQsY0FBYztJQUNkLE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQy9CLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7WUFDbEMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7U0FDcEM7SUFDSCxDQUFDOztBQXRHYyx5QkFBUyxHQUFvQixJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHN1bW1hcnk+XHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vICAgR3VpIGNvbW1hbmQgcXVldWVcclxuLy8vIDwvc3VtbWFyeT5cclxuaW1wb3J0IHtVSUJyaWRnZX0gZnJvbSBcIi4uLy4uL1VJQnJpZGdlXCI7XHJcbmltcG9ydCB7R3VpQ29tbWFuZH0gZnJvbSBcIi4vR3VpQ29tbWFuZFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEd1aUNvbW1hbmRRdWV1ZSB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBHdWlDb21tYW5kUXVldWUgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIF9jb21tYW5kc1F1ZXVlOiBBcnJheTxHdWlDb21tYW5kPiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfZXhlY3V0aW5nR3VpQ29tbWFuZHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGJhc2lzIENvbnN0cnVjdG9yXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGVuZCBpbm5lciBjbGFzcyBHdWlDb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHN1bW1hcnk+c2luZ2xldG9uPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gcmVmZXJlbmNlIHRvIEd1aUNvbW1hbmRRdWV1ZSBvYmplY3Q8L3JldHVybnM+XHJcbiAgc3RhdGljIGdldEluc3RhbmNlKCk6IEd1aUNvbW1hbmRRdWV1ZSB7XHJcbiAgICBpZiAoR3VpQ29tbWFuZFF1ZXVlLl9pbnN0YW5jZSA9PT0gbnVsbClcclxuICAgICAgR3VpQ29tbWFuZFF1ZXVlLl9pbnN0YW5jZSA9IG5ldyBHdWlDb21tYW5kUXVldWUoKTtcclxuICAgIHJldHVybiBHdWlDb21tYW5kUXVldWUuX2luc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PkNvbnN0cnVjdG9yPC9zdW1tYXJ5PlxyXG4gIGluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb21tYW5kc1F1ZXVlID0gbmV3IEFycmF5PEd1aUNvbW1hbmQ+KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgYWRkQ29tbWFuZChndWlDb21tYW5kOiBHdWlDb21tYW5kKTogdm9pZCB7XHJcbiAgICB0aGlzLnB1dChndWlDb21tYW5kKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQWRkcyBhIGNvbW1hbmQgdG8gdGhlIHF1ZXVlLiBJZiB0aGVyZSBhcmUgYWxyZWFkeSBlbm91Z2ggY29tbWFuZHMgaW4gdGhlIHF1ZXVlIHRoZW5cclxuICAvLy8gaXQgd2lsbCB3YWl0IHRpbGwgdGhlIHF1ZXVlIGlzIGVtcHRpZWQgYnUgR3VpIHRocmVhZC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImd1aUNvbW1hbmRcIj48L3BhcmFtPlxyXG4gIHByaXZhdGUgcHV0KGd1aUNvbW1hbmQ6IEd1aUNvbW1hbmQpOiB2b2lkIHtcclxuICAgIC8vIGNvbnN0IFFVRVVFX1NJWkVfVEhSRVNIT0xEOiBudW1iZXIgPSAxMjAwOyAvLyBhIHRocmVzaG9sZCBhYm92ZSB3aGljaCBjb21tYW5kcyB3aWxsIG5vdCBiZSBpbnNlcnRlZCB0byB0aGUgcXVldWUgdW50aWwgdGhlIHF1ZXVlIHdpbGwgYmUgZW1wdHkuXHJcbiAgICAvLyBjb25zdCBNQVhfU0xFRVBfRFVSQVRJT046IG51bWJlciA9IDQ7Ly8gZHVyYXRpb24sIGluIG1zLCBiZXR3ZWVuIGNoZWNraW5nIHRoYXQgdGhlIHF1ZXVlIGlzIGVtcHR5LlxyXG4gICAgLy9cclxuICAgIC8vIC8vIElmIHdvcmtlciB0aHJlYWQgd2FudHMgdG8gYWRkIGEgY29tbWFuZCBhbmQgdGhlcmUgYXJlIHRvbyBtYW55IGNvbW1hbmRzIGluIHRoZSBxdWV1ZSBwZW5kaW5nXHJcbiAgICAvLyAvLyB0byBiZSBwcm9jZXNzZWQgYnkgR3VpIHRocmVhZCB0aGVuIHN1c3BlbmQgY3VycmVudCB0aHJlYWQgdGlsbCB0aGUgY29tbWFuZHMgYXJlIG92ZXIuIElmIHdlIGtlZXBcclxuICAgIC8vIC8vIG9uIGFkZGluZyBjb21tYW5kcyB0byB0aGUgcXVldWUgYW5kIEd1aSB0aHJlYWQgZW50ZXJzIFJ1bigpLCB0aGVuIHNvbWV0aW1lcyAoc3BlY2lhbGx5IGluIGNhc2VzIG9mXHJcbiAgICAvLyAvLyBiYXRjaCB0YXNrcykgR3VpIHRocmVhZCByZW1haW5zIGluIFJ1bigpIGZvciBhIGxvbmcgdGltZSBhbmQgaGVuY2UgaXQgaXMgdW5hYmxlIHRvIHByb2Nlc3MgdXNlclxyXG4gICAgLy8gLy8gaW50ZXJhY3Rpb25zIChhcyBkZXNjcmliZWQgaW4gUUNSIzcyMjE0NSlcclxuICAgIC8vIC8vIEJlZm9yZSBlbnRlcmluZyB0aGUgbG9vcCBjb25maXJtIHRoYXQgdGhlIGNvbW1hbmQgaXMgTk9UIGJlaW5nIGFkZGVkIGJ5IEd1aSB0aHJlYWQgaXRzZWxmIGFuZCBHdWlcclxuICAgIC8vIC8vIHRocmVhZCBpcyBhbHJlYWR5IHByb2Nlc3NpbmcgdGhlIGNvbW1hbmRzLiBUaGlzIGlzIHRvIGVuc3VyZSB0aGF0IHRoZSBjb21tYW5kcyB3aWxsIGJlIHByb2Nlc3NlZCBieVxyXG4gICAgLy8gLy8gR3VpIHRocmVhZC4gSWYgR3VpIHRocmVhZCBpcyBub3QgcHJvY2Vzc2luZyBjb21tYW5kcywgdGhlbiBpdCB3aWxsIG5ldmVyIHByb2Nlc3MgaXQgYWdhaW4gYXMgaXQgaXNcclxuICAgIC8vIC8vIHRoZSB3b3JrZXIgdGhyZWFkIHRoYXQgaW52b2tlcyBHdWkgdGhyZWFkIGZvciBwcm9jZXNzaW5nIGNvbW1hbmRzXHJcbiAgICAvLyAvLyBBbHNvLCBzdXNwZW5kIHdvcmtlciB0aHJlYWQgZnJvbSBhZGRpbmcgbmV3IGNvbW1hbmRzIHRvIHRoZSBxdWV1ZSB0aWxsIFNIT1dfRk9STSBmb3IgbW9kYWwgd2luZG93XHJcbiAgICAvLyAvLyBpcyBwcm9jZXNzZWQuIFByb2JsZW0gb2NjdXJzIGlmIFNIT1dfRk9STSBpcyBmb2xsb3dlZCBieSBmZXcgbW9yZSBjb21tYW5kcyBhbmQgdGhlbiBhIGNhbGwgdG9cclxuICAgIC8vIC8vIEd1aUludGVyYWN0aXZlICB0aGF0IGRlcGVuZHMgb24gdGhlIGVhcmxpZXIgY29tbWFuZHMuIEluIHN1Y2ggY2FzZXMsIEd1aUludGVyYWN0aXZlIHdpbGwgbm90IHByb2Nlc3NcclxuICAgIC8vIC8vIGNvbW1hbmRzIGJldHdlZW4gU0hPV19GT1JNIGFuZCBpbnRlcmFjdGl2ZSBjb21tYW5kIGJlY2F1c2UgR3VpVGhyZWFkSXNBdmFpbGFibGVUb1Byb2Nlc3NDb21tYW5kc1xyXG4gICAgLy8gLy8gd2FzIHNldCB0byBmYWxzZSBiZWZvcmUgb3BlbmluZyB0aGUgZGlhbG9nLlxyXG4gICAgLy8gaWYgKCgodGhpcy5fY29tbWFuZHNRdWV1ZS5TaXplKCkgPiBRVUVVRV9TSVpFX1RIUkVTSE9MRCApIHx8IHRoaXMuX21vZGFsU2hvd0Zvcm1Db21tYW5kUHJlc2VudEluUXVldWUpKSB7XHJcbiAgICAvLyAgIGxldCBzbGVlcER1cmF0aW9uOiBudW1iZXIgPSBNQVhfU0xFRVBfRFVSQVRJT047XHJcbiAgICAvLyAgIGRvIHtcclxuICAgIC8vICAgICAvLyBnZXQgY3VycmVudCBzaXplIG9mIHRoZSBxdWV1ZSBhbmQgd2FpdCBmb3Igc29tZSB0aW1lXHJcbiAgICAvLyAgICAgY29uc3Qgc2l6ZTogbnVtYmVyID0gdGhpcy5fY29tbWFuZHNRdWV1ZS5TaXplKCk7XHJcbiAgICAvLyAgICAgLy9TeXN0ZW0uVGhyZWFkaW5nLlRocmVhZC5TbGVlcChzbGVlcER1cmF0aW9uKTtcclxuICAgIC8vICAgICBjb25zdCBuZXdTaXplOiBudW1iZXIgPSB0aGlzLl9jb21tYW5kc1F1ZXVlLlNpemUoKTtcclxuICAgIC8vXHJcbiAgICAvLyAgICAgLy8gd2hpbGUgY3VycmVudCB0aHJlYWQgd2FzIHNsZWVwaW5nLCBndWkgdGhyZWFkIHNob3VsZCBoYXZlIHByb2Nlc3NlZCBzb21lIGNvbW1hbmRzLlxyXG4gICAgLy8gICAgIC8vIGdldCBhdmVyYWdlIGR1cmF0aW9uIHJlcXVpcmVkIGJ5IGd1aSB0aHJlYWQgZm9yIHByb2Nlc3NpbmcgYSBjb21tYW5kIGFuZCBlc3RpbWF0ZSBuZXcgZHVyYXRpb24gZm9yIHJlbWFpbmluZyBjb21tYW5kcy5cclxuICAgIC8vICAgICBpZiAoc2l6ZSA+IG5ld1NpemUpIHtcclxuICAgIC8vICAgICAgIGxldCBhdmVyYWdlRHVyYXRpb25QZXJDb21tYW5kOiBudW1iZXIgPSBzbGVlcER1cmF0aW9uIC8gKHNpemUgLSBuZXdTaXplKTtcclxuICAgIC8vICAgICAgIGxldCBuZXdTbGVlcER1cmF0aW9uOiBudW1iZXIgPSA8bnVtYmVyPihuZXdTaXplICogYXZlcmFnZUR1cmF0aW9uUGVyQ29tbWFuZCk7XHJcbiAgICAvLyAgICAgICBpZiAobmV3U2xlZXBEdXJhdGlvbiA+IDApXHJcbiAgICAvLyAgICAgICAgIHNsZWVwRHVyYXRpb24gPSBNYXRoLm1pbihNQVhfU0xFRVBfRFVSQVRJT04sIG5ld1NsZWVwRHVyYXRpb24pO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG4gICAgLy8gICB3aGlsZSAodGhpcy5fY29tbWFuZHNRdWV1ZS5TaXplKCkgPiAwKTtcclxuICAgIHRoaXMuX2NvbW1hbmRzUXVldWUucHVzaChndWlDb21tYW5kKTtcclxuXHJcbiAgICAvLyBpZiAoZ3VpQ29tbWFuZC5Db21tYW5kVHlwZSA9PT0gQ29tbWFuZFR5cGUuUkVGUkVTSF9UQUJMRSAmJiBndWlDb21tYW5kLkJvb2wzKSB7XHJcbiAgICAvLyAgIGxldCBtZ0NvbnRyb2w6IE1nQ29udHJvbEJhc2UgPSA8TWdDb250cm9sQmFzZT4oZ3VpQ29tbWFuZC5vYmopO1xyXG4gICAgLy8gICBtZ0NvbnRyb2wucmVmcmVzaFRhYmxlQ29tbWFuZENvdW50Kys7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBlbHNlIGlmIChndWlDb21tYW5kLklzTW9kYWxTaG93Rm9ybUNvbW1hbmQoKSlcclxuICAgIC8vICAgdGhpcy5fbW9kYWxTaG93Rm9ybUNvbW1hbmRQcmVzZW50SW5RdWV1ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZXhlY3V0ZSBhbGwgcGVuZGluZyBjb21tYW5kcywgYXN5bmNocm9ub3VzbHlcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGJlZ2luSW52b2tlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnZva2UoKTtcclxuXHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZXhlY3V0ZSBhbGwgcGVuZGluZyBjb21tYW5kcywgc3luY2hyb25vdXNseVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgaW52b2tlKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9leGVjdXRpbmdHdWlDb21tYW5kcykge1xyXG4gICAgICB0aGlzLl9leGVjdXRpbmdHdWlDb21tYW5kcyA9IHRydWU7XHJcbiAgICAgIFVJQnJpZGdlLmdldEluc3RhbmNlKCkuZXhlY3V0ZUNvbW1hbmRzKHRoaXMuX2NvbW1hbmRzUXVldWUpO1xyXG4gICAgICB0aGlzLl9jb21tYW5kc1F1ZXVlLmxlbmd0aCA9IDA7XHJcbiAgICAgIHRoaXMuX2V4ZWN1dGluZ0d1aUNvbW1hbmRzID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpQ29tbWFuZFF1ZXVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9ndWkvbG93L0d1aUNvbW1hbmRRdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEMsTUFBTSxPQUFPLGVBQWU7SUFTMUI7UUFOUSxtQkFBYyxHQUFzQixJQUFJLENBQUM7UUFDekMsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBTTdDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFPRCxNQUFNLENBQUMsV0FBVztRQUNoQixJQUFJLGVBQWUsQ0FBQyxTQUFTLEtBQUssSUFBSTtZQUNwQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEQsT0FBTyxlQUFlLENBQUMsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFHRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLEtBQUssRUFBYyxDQUFDO0lBQ2hELENBQUM7SUFHRCxVQUFVLENBQUMsVUFBc0I7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBT08sR0FBRyxDQUFDLFVBQXNCO1FBb0NoQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQVF2QyxDQUFDO0lBS0QsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUVoQixDQUFDO0lBS0QsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztZQUNsQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztTQUNwQztJQUNILENBQUM7O0FBdEdjLHlCQUFTLEdBQW9CLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8c3VtbWFyeT5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBHdWkgY29tbWFuZCBxdWV1ZVxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5pbXBvcnQge1VJQnJpZGdlfSBmcm9tIFwiLi4vLi4vVUlCcmlkZ2VcIjtcclxuaW1wb3J0IHtHdWlDb21tYW5kfSBmcm9tIFwiLi9HdWlDb21tYW5kXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgR3VpQ29tbWFuZFF1ZXVlIHtcclxuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IEd1aUNvbW1hbmRRdWV1ZSA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgX2NvbW1hbmRzUXVldWU6IEFycmF5PEd1aUNvbW1hbmQ+ID0gbnVsbDtcclxuICBwcml2YXRlIF9leGVjdXRpbmdHdWlDb21tYW5kczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYmFzaXMgQ29uc3RydWN0b3JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZW5kIGlubmVyIGNsYXNzIEd1aUNvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8c3VtbWFyeT5zaW5nbGV0b248L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiByZWZlcmVuY2UgdG8gR3VpQ29tbWFuZFF1ZXVlIG9iamVjdDwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0SW5zdGFuY2UoKTogR3VpQ29tbWFuZFF1ZXVlIHtcclxuICAgIGlmIChHdWlDb21tYW5kUXVldWUuX2luc3RhbmNlID09PSBudWxsKVxyXG4gICAgICBHdWlDb21tYW5kUXVldWUuX2luc3RhbmNlID0gbmV3IEd1aUNvbW1hbmRRdWV1ZSgpO1xyXG4gICAgcmV0dXJuIEd1aUNvbW1hbmRRdWV1ZS5faW5zdGFuY2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+Q29uc3RydWN0b3I8L3N1bW1hcnk+XHJcbiAgaW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NvbW1hbmRzUXVldWUgPSBuZXcgQXJyYXk8R3VpQ29tbWFuZD4oKTtcclxuICB9XHJcblxyXG5cclxuICBhZGRDb21tYW5kKGd1aUNvbW1hbmQ6IEd1aUNvbW1hbmQpOiB2b2lkIHtcclxuICAgIHRoaXMucHV0KGd1aUNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBBZGRzIGEgY29tbWFuZCB0byB0aGUgcXVldWUuIElmIHRoZXJlIGFyZSBhbHJlYWR5IGVub3VnaCBjb21tYW5kcyBpbiB0aGUgcXVldWUgdGhlblxyXG4gIC8vLyBpdCB3aWxsIHdhaXQgdGlsbCB0aGUgcXVldWUgaXMgZW1wdGllZCBidSBHdWkgdGhyZWFkLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiZ3VpQ29tbWFuZFwiPjwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBwdXQoZ3VpQ29tbWFuZDogR3VpQ29tbWFuZCk6IHZvaWQge1xyXG4gICAgLy8gY29uc3QgUVVFVUVfU0laRV9USFJFU0hPTEQ6IG51bWJlciA9IDEyMDA7IC8vIGEgdGhyZXNob2xkIGFib3ZlIHdoaWNoIGNvbW1hbmRzIHdpbGwgbm90IGJlIGluc2VydGVkIHRvIHRoZSBxdWV1ZSB1bnRpbCB0aGUgcXVldWUgd2lsbCBiZSBlbXB0eS5cclxuICAgIC8vIGNvbnN0IE1BWF9TTEVFUF9EVVJBVElPTjogbnVtYmVyID0gNDsvLyBkdXJhdGlvbiwgaW4gbXMsIGJldHdlZW4gY2hlY2tpbmcgdGhhdCB0aGUgcXVldWUgaXMgZW1wdHkuXHJcbiAgICAvL1xyXG4gICAgLy8gLy8gSWYgd29ya2VyIHRocmVhZCB3YW50cyB0byBhZGQgYSBjb21tYW5kIGFuZCB0aGVyZSBhcmUgdG9vIG1hbnkgY29tbWFuZHMgaW4gdGhlIHF1ZXVlIHBlbmRpbmdcclxuICAgIC8vIC8vIHRvIGJlIHByb2Nlc3NlZCBieSBHdWkgdGhyZWFkIHRoZW4gc3VzcGVuZCBjdXJyZW50IHRocmVhZCB0aWxsIHRoZSBjb21tYW5kcyBhcmUgb3Zlci4gSWYgd2Uga2VlcFxyXG4gICAgLy8gLy8gb24gYWRkaW5nIGNvbW1hbmRzIHRvIHRoZSBxdWV1ZSBhbmQgR3VpIHRocmVhZCBlbnRlcnMgUnVuKCksIHRoZW4gc29tZXRpbWVzIChzcGVjaWFsbHkgaW4gY2FzZXMgb2ZcclxuICAgIC8vIC8vIGJhdGNoIHRhc2tzKSBHdWkgdGhyZWFkIHJlbWFpbnMgaW4gUnVuKCkgZm9yIGEgbG9uZyB0aW1lIGFuZCBoZW5jZSBpdCBpcyB1bmFibGUgdG8gcHJvY2VzcyB1c2VyXHJcbiAgICAvLyAvLyBpbnRlcmFjdGlvbnMgKGFzIGRlc2NyaWJlZCBpbiBRQ1IjNzIyMTQ1KVxyXG4gICAgLy8gLy8gQmVmb3JlIGVudGVyaW5nIHRoZSBsb29wIGNvbmZpcm0gdGhhdCB0aGUgY29tbWFuZCBpcyBOT1QgYmVpbmcgYWRkZWQgYnkgR3VpIHRocmVhZCBpdHNlbGYgYW5kIEd1aVxyXG4gICAgLy8gLy8gdGhyZWFkIGlzIGFscmVhZHkgcHJvY2Vzc2luZyB0aGUgY29tbWFuZHMuIFRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbW1hbmRzIHdpbGwgYmUgcHJvY2Vzc2VkIGJ5XHJcbiAgICAvLyAvLyBHdWkgdGhyZWFkLiBJZiBHdWkgdGhyZWFkIGlzIG5vdCBwcm9jZXNzaW5nIGNvbW1hbmRzLCB0aGVuIGl0IHdpbGwgbmV2ZXIgcHJvY2VzcyBpdCBhZ2FpbiBhcyBpdCBpc1xyXG4gICAgLy8gLy8gdGhlIHdvcmtlciB0aHJlYWQgdGhhdCBpbnZva2VzIEd1aSB0aHJlYWQgZm9yIHByb2Nlc3NpbmcgY29tbWFuZHNcclxuICAgIC8vIC8vIEFsc28sIHN1c3BlbmQgd29ya2VyIHRocmVhZCBmcm9tIGFkZGluZyBuZXcgY29tbWFuZHMgdG8gdGhlIHF1ZXVlIHRpbGwgU0hPV19GT1JNIGZvciBtb2RhbCB3aW5kb3dcclxuICAgIC8vIC8vIGlzIHByb2Nlc3NlZC4gUHJvYmxlbSBvY2N1cnMgaWYgU0hPV19GT1JNIGlzIGZvbGxvd2VkIGJ5IGZldyBtb3JlIGNvbW1hbmRzIGFuZCB0aGVuIGEgY2FsbCB0b1xyXG4gICAgLy8gLy8gR3VpSW50ZXJhY3RpdmUgIHRoYXQgZGVwZW5kcyBvbiB0aGUgZWFybGllciBjb21tYW5kcy4gSW4gc3VjaCBjYXNlcywgR3VpSW50ZXJhY3RpdmUgd2lsbCBub3QgcHJvY2Vzc1xyXG4gICAgLy8gLy8gY29tbWFuZHMgYmV0d2VlbiBTSE9XX0ZPUk0gYW5kIGludGVyYWN0aXZlIGNvbW1hbmQgYmVjYXVzZSBHdWlUaHJlYWRJc0F2YWlsYWJsZVRvUHJvY2Vzc0NvbW1hbmRzXHJcbiAgICAvLyAvLyB3YXMgc2V0IHRvIGZhbHNlIGJlZm9yZSBvcGVuaW5nIHRoZSBkaWFsb2cuXHJcbiAgICAvLyBpZiAoKCh0aGlzLl9jb21tYW5kc1F1ZXVlLlNpemUoKSA+IFFVRVVFX1NJWkVfVEhSRVNIT0xEICkgfHwgdGhpcy5fbW9kYWxTaG93Rm9ybUNvbW1hbmRQcmVzZW50SW5RdWV1ZSkpIHtcclxuICAgIC8vICAgbGV0IHNsZWVwRHVyYXRpb246IG51bWJlciA9IE1BWF9TTEVFUF9EVVJBVElPTjtcclxuICAgIC8vICAgZG8ge1xyXG4gICAgLy8gICAgIC8vIGdldCBjdXJyZW50IHNpemUgb2YgdGhlIHF1ZXVlIGFuZCB3YWl0IGZvciBzb21lIHRpbWVcclxuICAgIC8vICAgICBjb25zdCBzaXplOiBudW1iZXIgPSB0aGlzLl9jb21tYW5kc1F1ZXVlLlNpemUoKTtcclxuICAgIC8vICAgICAvL1N5c3RlbS5UaHJlYWRpbmcuVGhyZWFkLlNsZWVwKHNsZWVwRHVyYXRpb24pO1xyXG4gICAgLy8gICAgIGNvbnN0IG5ld1NpemU6IG51bWJlciA9IHRoaXMuX2NvbW1hbmRzUXVldWUuU2l6ZSgpO1xyXG4gICAgLy9cclxuICAgIC8vICAgICAvLyB3aGlsZSBjdXJyZW50IHRocmVhZCB3YXMgc2xlZXBpbmcsIGd1aSB0aHJlYWQgc2hvdWxkIGhhdmUgcHJvY2Vzc2VkIHNvbWUgY29tbWFuZHMuXHJcbiAgICAvLyAgICAgLy8gZ2V0IGF2ZXJhZ2UgZHVyYXRpb24gcmVxdWlyZWQgYnkgZ3VpIHRocmVhZCBmb3IgcHJvY2Vzc2luZyBhIGNvbW1hbmQgYW5kIGVzdGltYXRlIG5ldyBkdXJhdGlvbiBmb3IgcmVtYWluaW5nIGNvbW1hbmRzLlxyXG4gICAgLy8gICAgIGlmIChzaXplID4gbmV3U2l6ZSkge1xyXG4gICAgLy8gICAgICAgbGV0IGF2ZXJhZ2VEdXJhdGlvblBlckNvbW1hbmQ6IG51bWJlciA9IHNsZWVwRHVyYXRpb24gLyAoc2l6ZSAtIG5ld1NpemUpO1xyXG4gICAgLy8gICAgICAgbGV0IG5ld1NsZWVwRHVyYXRpb246IG51bWJlciA9IDxudW1iZXI+KG5ld1NpemUgKiBhdmVyYWdlRHVyYXRpb25QZXJDb21tYW5kKTtcclxuICAgIC8vICAgICAgIGlmIChuZXdTbGVlcER1cmF0aW9uID4gMClcclxuICAgIC8vICAgICAgICAgc2xlZXBEdXJhdGlvbiA9IE1hdGgubWluKE1BWF9TTEVFUF9EVVJBVElPTiwgbmV3U2xlZXBEdXJhdGlvbik7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIHdoaWxlICh0aGlzLl9jb21tYW5kc1F1ZXVlLlNpemUoKSA+IDApO1xyXG4gICAgdGhpcy5fY29tbWFuZHNRdWV1ZS5wdXNoKGd1aUNvbW1hbmQpO1xyXG5cclxuICAgIC8vIGlmIChndWlDb21tYW5kLkNvbW1hbmRUeXBlID09PSBDb21tYW5kVHlwZS5SRUZSRVNIX1RBQkxFICYmIGd1aUNvbW1hbmQuQm9vbDMpIHtcclxuICAgIC8vICAgbGV0IG1nQ29udHJvbDogTWdDb250cm9sQmFzZSA9IDxNZ0NvbnRyb2xCYXNlPihndWlDb21tYW5kLm9iaik7XHJcbiAgICAvLyAgIG1nQ29udHJvbC5yZWZyZXNoVGFibGVDb21tYW5kQ291bnQrKztcclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2UgaWYgKGd1aUNvbW1hbmQuSXNNb2RhbFNob3dGb3JtQ29tbWFuZCgpKVxyXG4gICAgLy8gICB0aGlzLl9tb2RhbFNob3dGb3JtQ29tbWFuZFByZXNlbnRJblF1ZXVlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBleGVjdXRlIGFsbCBwZW5kaW5nIGNvbW1hbmRzLCBhc3luY2hyb25vdXNseVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgYmVnaW5JbnZva2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmludm9rZSgpO1xyXG5cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBleGVjdXRlIGFsbCBwZW5kaW5nIGNvbW1hbmRzLCBzeW5jaHJvbm91c2x5XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpbnZva2UoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2V4ZWN1dGluZ0d1aUNvbW1hbmRzKSB7XHJcbiAgICAgIHRoaXMuX2V4ZWN1dGluZ0d1aUNvbW1hbmRzID0gdHJ1ZTtcclxuICAgICAgVUlCcmlkZ2UuZ2V0SW5zdGFuY2UoKS5leGVjdXRlQ29tbWFuZHModGhpcy5fY29tbWFuZHNRdWV1ZSk7XHJcbiAgICAgIHRoaXMuX2NvbW1hbmRzUXVldWUubGVuZ3RoID0gMDtcclxuICAgICAgdGhpcy5fZXhlY3V0aW5nR3VpQ29tbWFuZHMgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuIl19