bx-rest 1.5.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/CHANGELOG.md +94 -0
  2. package/README.en.md +113 -2
  3. package/README.md +114 -2
  4. package/esm2022/functions/errors.mjs +17 -5
  5. package/esm2022/functions/uniqueElementCode.mjs +24 -0
  6. package/esm2022/public-api.mjs +2 -2
  7. package/esm2022/request-navvy/bizproc.mjs +18 -9
  8. package/esm2022/request-navvy/calendar/event.mjs +1 -9
  9. package/esm2022/request-navvy/disk/operation.mjs +3 -10
  10. package/esm2022/request-navvy/socialnetwork/api/livefeed.mjs +1 -5
  11. package/esm2022/request-navvy/task/operation/elapseditem.mjs +8 -8
  12. package/esm2022/request-navvy/tasks/task.mjs +1 -119
  13. package/esm2022/rest/navvy.mjs +66 -64
  14. package/esm2022/services/base.mjs +1 -4
  15. package/esm2022/services/context.mjs +59 -0
  16. package/esm2022/services/http/HttpBX.mjs +49 -19
  17. package/esm2022/services/http/authRefresh.mjs +25 -23
  18. package/esm2022/services/http/http.mjs +14 -69
  19. package/esm2022/services/http/middleware.mjs +149 -0
  20. package/esm2022/services/http/sessionKey.mjs +16 -5
  21. package/esm2022/services/http/transport.mjs +5 -0
  22. package/esm2022/services/navvy/navvy-support.mjs +2 -15
  23. package/esm2022/services/navvy.mjs +18 -31
  24. package/esm2022/typification/rest/calendar/event/get.mjs +1 -1
  25. package/esm2022/typification/rest/tasks/task/get.mjs +1 -1
  26. package/esm2022/typification/settings.mjs +1 -1
  27. package/fesm2022/bx-rest.mjs +450 -463
  28. package/fesm2022/bx-rest.mjs.map +1 -1
  29. package/functions/errors.d.ts +9 -0
  30. package/functions/uniqueElementCode.d.ts +12 -0
  31. package/package.json +1 -1
  32. package/public-api.d.ts +2 -1
  33. package/rest/navvy.d.ts +9 -0
  34. package/services/context.d.ts +43 -0
  35. package/services/http/HttpBX.d.ts +10 -0
  36. package/services/http/authRefresh.d.ts +5 -1
  37. package/services/http/http.d.ts +12 -9
  38. package/services/http/middleware.d.ts +31 -0
  39. package/services/http/sessionKey.d.ts +10 -0
  40. package/services/http/transport.d.ts +28 -0
  41. package/services/navvy/navvy-support.d.ts +0 -10
  42. package/services/navvy.d.ts +1 -0
  43. package/typification/rest/calendar/event/get.d.ts +1 -1
  44. package/typification/settings.d.ts +34 -0
  45. package/esm2022/functions/errorHandler.mjs +0 -34
  46. package/esm2022/request/app.mjs +0 -13
  47. package/esm2022/request/bizproc/activity.mjs +0 -3
  48. package/esm2022/request/bizproc/event.mjs +0 -3
  49. package/esm2022/request/bizproc/robot.mjs +0 -3
  50. package/esm2022/request/bizproc/task.mjs +0 -3
  51. package/esm2022/request/bizproc/workflow/instance.mjs +0 -3
  52. package/esm2022/request/bizproc/workflow/template.mjs +0 -3
  53. package/esm2022/request/bizproc/workflow.mjs +0 -18
  54. package/esm2022/request/bizproc.mjs +0 -15
  55. package/esm2022/request/department.mjs +0 -26
  56. package/esm2022/request/disk/attachedObject.mjs +0 -14
  57. package/esm2022/request/disk/file.mjs +0 -18
  58. package/esm2022/request/disk/folder.mjs +0 -117
  59. package/esm2022/request/disk.mjs +0 -11
  60. package/esm2022/request/lists/element.mjs +0 -18
  61. package/esm2022/request/lists/field.mjs +0 -35
  62. package/esm2022/request/lists.mjs +0 -86
  63. package/esm2022/request/log/blogcomment.mjs +0 -3
  64. package/esm2022/request/log/blogpost.mjs +0 -18
  65. package/esm2022/request/log.mjs +0 -9
  66. package/esm2022/request/pull/application/config.mjs +0 -11
  67. package/esm2022/request/pull/channel/public.mjs +0 -18
  68. package/esm2022/request/pull/config.mjs +0 -13
  69. package/esm2022/request/pull.mjs +0 -11
  70. package/esm2022/request/server.mjs +0 -14
  71. package/esm2022/request/socialnetwork/api/contentview.mjs +0 -14
  72. package/esm2022/request/socialnetwork/api/livefeed/blogpost/important.mjs +0 -14
  73. package/esm2022/request/socialnetwork/api/livefeed/blogpost.mjs +0 -7
  74. package/esm2022/request/socialnetwork/api/livefeed.mjs +0 -7
  75. package/esm2022/request/socialnetwork/api.mjs +0 -9
  76. package/esm2022/request/socialnetwork.mjs +0 -8
  77. package/esm2022/request/sonet_group.mjs +0 -24
  78. package/esm2022/request/task/commentitem.mjs +0 -32
  79. package/esm2022/request/task/elapseditem.mjs +0 -40
  80. package/esm2022/request/task/item/userfield.mjs +0 -14
  81. package/esm2022/request/task/item.mjs +0 -7
  82. package/esm2022/request/task/planner.mjs +0 -11
  83. package/esm2022/request/task.mjs +0 -13
  84. package/esm2022/request/tasks/task/result.mjs +0 -22
  85. package/esm2022/request/tasks/task.mjs +0 -110
  86. package/esm2022/request/tasks.mjs +0 -7
  87. package/esm2022/request/user/userfield.mjs +0 -14
  88. package/esm2022/request/user.mjs +0 -40
  89. package/esm2022/rest/base.mjs +0 -39
  90. package/esm2022/services/http/HttpData.mjs +0 -77
  91. package/esm2022/services/http/base/base.mjs +0 -4
  92. package/esm2022/services/http/httpNavvy.mjs +0 -14
  93. package/esm2022/typification/base/answers.mjs +0 -438
  94. package/esm2022/typification/base/params.mjs +0 -525
  95. package/esm2022/typification/base/workpiece/methods-list.mjs +0 -2
  96. package/esm2022/typification/base/workpiece/methods.mjs +0 -2
  97. package/functions/errorHandler.d.ts +0 -10
  98. package/request/app.d.ts +0 -8
  99. package/request/bizproc/activity.d.ts +0 -2
  100. package/request/bizproc/event.d.ts +0 -2
  101. package/request/bizproc/robot.d.ts +0 -2
  102. package/request/bizproc/task.d.ts +0 -2
  103. package/request/bizproc/workflow/instance.d.ts +0 -2
  104. package/request/bizproc/workflow/template.d.ts +0 -2
  105. package/request/bizproc/workflow.d.ts +0 -13
  106. package/request/bizproc.d.ts +0 -12
  107. package/request/department.d.ts +0 -18
  108. package/request/disk/attachedObject.d.ts +0 -8
  109. package/request/disk/file.d.ts +0 -10
  110. package/request/disk/folder.d.ts +0 -96
  111. package/request/disk.d.ts +0 -8
  112. package/request/lists/element.d.ts +0 -11
  113. package/request/lists/field.d.ts +0 -11
  114. package/request/lists.d.ts +0 -31
  115. package/request/log/blogcomment.d.ts +0 -2
  116. package/request/log/blogpost.d.ts +0 -11
  117. package/request/log.d.ts +0 -6
  118. package/request/pull/application/config.d.ts +0 -5
  119. package/request/pull/channel/public.d.ts +0 -5
  120. package/request/pull/config.d.ts +0 -7
  121. package/request/pull.d.ts +0 -8
  122. package/request/server.d.ts +0 -7
  123. package/request/socialnetwork/api/contentview.d.ts +0 -6
  124. package/request/socialnetwork/api/livefeed/blogpost/important.d.ts +0 -6
  125. package/request/socialnetwork/api/livefeed/blogpost.d.ts +0 -4
  126. package/request/socialnetwork/api/livefeed.d.ts +0 -4
  127. package/request/socialnetwork/api.d.ts +0 -6
  128. package/request/socialnetwork.d.ts +0 -4
  129. package/request/sonet_group.d.ts +0 -8
  130. package/request/task/commentitem.d.ts +0 -23
  131. package/request/task/elapseditem.d.ts +0 -26
  132. package/request/task/item/userfield.d.ts +0 -6
  133. package/request/task/item.d.ts +0 -4
  134. package/request/task/planner.d.ts +0 -4
  135. package/request/task.d.ts +0 -10
  136. package/request/tasks/task/result.d.ts +0 -13
  137. package/request/tasks/task.d.ts +0 -37
  138. package/request/tasks.d.ts +0 -4
  139. package/request/user/userfield.d.ts +0 -8
  140. package/request/user.d.ts +0 -24
  141. package/rest/base.d.ts +0 -33
  142. package/services/http/HttpData.d.ts +0 -7
  143. package/services/http/base/base.d.ts +0 -7
  144. package/services/http/httpNavvy.d.ts +0 -10
  145. package/typification/base/answers.d.ts +0 -12
  146. package/typification/base/params.d.ts +0 -16
  147. package/typification/base/workpiece/methods-list.d.ts +0 -247
  148. package/typification/base/workpiece/methods.d.ts +0 -20
@@ -1,10 +1,14 @@
1
1
  import { BXRestNavvyLists } from './lists';
2
- import { forkJoin, mergeMap, of, throwError } from 'rxjs';
2
+ import { catchError, forkJoin, mergeMap, of, throwError } from 'rxjs';
3
3
  import { BXRestNavvyBizProcTask } from './bizproc/task';
4
4
  import { BXRestNavvyBXRestBizProcWorkflow } from './bizproc/workflow';
5
5
  import { BXRestNavvyBizProcActivity } from './bizproc/activity';
6
6
  import { BXRestNavvyBizProcEvent } from './bizproc/event';
7
7
  import { BXRestNavvyBizProcRobot } from './bizproc/robot';
8
+ import { BXRestApiError } from '../functions/errors';
9
+ import { uniqueElementCode } from '../functions/uniqueElementCode';
10
+ /** Сколько раз пробуем новый `ELEMENT_CODE`, если такой код в списке уже занят. */
11
+ const ELEMENT_CODE_ATTEMPTS = 3;
8
12
  /** Бизнес-процессы, задания, действия и роботы (`bizproc.*`). */
9
13
  export class BXRestNavvyBizProc {
10
14
  constructor() {
@@ -37,18 +41,23 @@ export class BXRestNavvyBizProc {
37
41
  if (value === null || value === undefined || (typeof value === 'string' && value.trim() === '')) {
38
42
  parametersElement['DATE_CREATE'] = new Date();
39
43
  }
40
- return this.BXRestNavvyLists.element.add({
44
+ // ELEMENT_CODE обязателен и должен быть уникальным в списке. Занятые коды
45
+ // знает только портал, поэтому на совпадение создаём новый код и повторяем.
46
+ // throwOnApiError: иначе ошибка в ответе 2xx пришла бы как undefined.
47
+ const addElement = (attempt) => this.BXRestNavvyLists.element.add({
41
48
  IBLOCK_TYPE_ID: 'bitrix_processes',
42
49
  IBLOCK_ID: id,
43
- ELEMENT_CODE: 'trace_studio_' + Date.now() + '_' + Math.random(),
44
- // тут должно быть уникально значение (генерация уникальных значений на фронте лол),
45
- // как ещё уникальнее сделать я просто не знаю
46
- // это поле обязательно без него не работает
50
+ ELEMENT_CODE: uniqueElementCode(),
47
51
  FIELDS: {
48
52
  NAME: String(parametersElement['NAME']),
49
53
  ...parametersElement
50
54
  }
51
- }).res().pipe(mergeMap(v => {
55
+ }).res({ throwOnApiError: true }).pipe(catchError((error) => (attempt < ELEMENT_CODE_ATTEMPTS
56
+ && error instanceof BXRestApiError
57
+ && error.error === 'ERROR_ELEMENT_ALREADY_EXISTS')
58
+ ? addElement(attempt + 1)
59
+ : throwError(() => error)));
60
+ return addElement(1).pipe(mergeMap(v => {
52
61
  if (v) {
53
62
  if (Object.keys(parametersBizProc).length && templateIDs.length) {
54
63
  let request = [];
@@ -65,8 +74,8 @@ export class BXRestNavvyBizProc {
65
74
  return of(true);
66
75
  }
67
76
  }
68
- return throwError(() => new Error('Не удалось запустить бизнес процесс'));
77
+ return throwError(() => new Error('Could not start the business process: the list element was not created'));
69
78
  }));
70
79
  }
71
80
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml6cHJvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvYml6cHJvYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUV6RCxpRUFBaUU7QUFDakUsTUFBTSxPQUFPLGtCQUFrQjtJQUEvQjtRQUNFLGdDQUFnQztRQUNoQixTQUFJLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFBO1FBQ25ELCtDQUErQztRQUMvQixhQUFRLEdBQUcsSUFBSSxnQ0FBZ0MsRUFBRSxDQUFBO1FBQ2pFLGlFQUFpRTtRQUNqRCxhQUFRLEdBQUcsSUFBSSwwQkFBMEIsRUFBRSxDQUFBO1FBQzNELDhDQUE4QztRQUM5QixVQUFLLEdBQUcsSUFBSSx1QkFBdUIsRUFBRSxDQUFBO1FBQ3JELCtDQUErQztRQUMvQixVQUFLLEdBQUcsSUFBSSx1QkFBdUIsRUFBRSxDQUFBO1FBQ3BDLHFCQUFnQixHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQTtJQTRENUQsQ0FBQztJQTFEQzs7Ozs7Ozs7O09BU0c7SUFDSCxxQkFBcUIsQ0FDbkIsRUFBVSxFQUNWLGlCQUFnRCxFQUNoRCxpQkFBeUMsRUFDekMsY0FBd0IsRUFBRTtRQUUxQiwwREFBMEQ7UUFDMUQsK0NBQStDO1FBQy9DLE1BQU0sS0FBSyxHQUFRLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ25ELElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hHLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7UUFDL0MsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQ3BDO1lBQ0UsY0FBYyxFQUFFLGtCQUFrQjtZQUNsQyxTQUFTLEVBQUUsRUFBRTtZQUNiLFlBQVksRUFBRSxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hFLG9GQUFvRjtZQUNwRiw4Q0FBOEM7WUFDOUMsNENBQTRDO1lBQzVDLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2QyxHQUFHLGlCQUFpQjthQUNyQjtTQUNGLENBQ0YsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ1YsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDTixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNoRSxJQUFJLE9BQU8sR0FBa0MsRUFBRSxDQUFBO29CQUMvQyxLQUFLLElBQUksVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO3dCQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUM5Qjs0QkFDRSxXQUFXLEVBQUUsVUFBVTs0QkFDdkIsV0FBVyxFQUFFLENBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDcEQsVUFBVSxFQUFFLGlCQUFpQjt5QkFDOUIsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7b0JBQ2IsQ0FBQztvQkFDRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtnQkFDMUIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUNqQixDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUMsQ0FBQTtRQUMzRSxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQlhSZXN0TmF2dnlMaXN0cyB9IGZyb20gJy4vbGlzdHMnXHJcbmltcG9ydCB7IGZvcmtKb2luLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eUJpelByb2NUYXNrIH0gZnJvbSAnLi9iaXpwcm9jL3Rhc2snXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5QlhSZXN0Qml6UHJvY1dvcmtmbG93IH0gZnJvbSAnLi9iaXpwcm9jL3dvcmtmbG93J1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eUJpelByb2NBY3Rpdml0eSB9IGZyb20gJy4vYml6cHJvYy9hY3Rpdml0eSdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlCaXpQcm9jRXZlbnQgfSBmcm9tICcuL2JpenByb2MvZXZlbnQnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5Qml6UHJvY1JvYm90IH0gZnJvbSAnLi9iaXpwcm9jL3JvYm90J1xyXG5cclxuLyoqINCR0LjQt9C90LXRgS3Qv9GA0L7RhtC10YHRgdGLLCDQt9Cw0LTQsNC90LjRjywg0LTQtdC50YHRgtCy0LjRjyDQuCDRgNC+0LHQvtGC0YsgKGBiaXpwcm9jLipgKS4gKi9cclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5Qml6UHJvYyB7XHJcbiAgLyoqINCX0LDQtNCw0L3QuNGPINCx0LjQt9C90LXRgS3Qv9GA0L7RhtC10YHRgdC+0LIuICovXHJcbiAgcHVibGljIHJlYWRvbmx5IHRhc2sgPSBuZXcgQlhSZXN0TmF2dnlCaXpQcm9jVGFzaygpXHJcbiAgLyoqINCX0LDQv9GD0YnQtdC90L3Ri9C1INCx0LjQt9C90LXRgS3Qv9GA0L7RhtC10YHRgdGLINC4INC40YUg0YjQsNCx0LvQvtC90YsuICovXHJcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93ID0gbmV3IEJYUmVzdE5hdnZ5QlhSZXN0Qml6UHJvY1dvcmtmbG93KClcclxuICAvKiog0JTQtdC50YHRgtCy0LjRjyDQsdC40LfQvdC10YEt0L/RgNC+0YbQtdGB0YHQvtCyLCDQt9Cw0YDQtdCz0LjRgdGC0YDQuNGA0L7QstCw0L3QvdGL0LUg0L/RgNC40LvQvtC20LXQvdC40LXQvC4gKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZpdHkgPSBuZXcgQlhSZXN0TmF2dnlCaXpQcm9jQWN0aXZpdHkoKVxyXG4gIC8qKiDQoNC+0LHQvtGC0YssINC30LDRgNC10LPQuNGB0YLRgNC40YDQvtCy0LDQvdC90YvQtSDQv9GA0LjQu9C+0LbQtdC90LjQtdC8LiAqL1xyXG4gIHB1YmxpYyByZWFkb25seSByb2JvdCA9IG5ldyBCWFJlc3ROYXZ2eUJpelByb2NSb2JvdCgpXHJcbiAgLyoqINCS0L7Qt9Cy0YDQsNGCINGA0LXQt9GD0LvRjNGC0LDRgtC+0LIg0LTQtdC50YHRgtCy0LjRj9C8INC4INGA0L7QsdC+0YLQsNC8LiAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBldmVudCA9IG5ldyBCWFJlc3ROYXZ2eUJpelByb2NFdmVudCgpXHJcbiAgcHJpdmF0ZSByZWFkb25seSBCWFJlc3ROYXZ2eUxpc3RzID0gbmV3IEJYUmVzdE5hdnZ5TGlzdHMoKVxyXG5cclxuICAvKipcclxuICAgKiDQnNC10YLQvtC0INC/0L4g0LfQsNC/0YPRgdC60YMg0LHQuNC30L3QtdGBINC/0YDQvtGG0LXRgdGB0L7QsiDQuNC3INC70LXQvdGC0YtcclxuICAgKiBUT0RPOiDQv9GA0L7QtNGD0LzQsNGC0Ywg0YDQsNCx0L7RgtGDINGBINGC0LDQutC40LzQuCDQvNC10YLQvtC00LDQvNC4LdC40YHQutC70Y7Rh9C10L3QuNGP0LzQuFxyXG4gICAqXHJcbiAgICogdGVtcGxhdGVJRHMgLSBpZCDQsdC40LfQvdC10YEg0L/RgNC+0YbQtdGB0YHQvtCyINC60L7RgtC+0YDRi9C1INGF0L7RgtC40Lwg0L/RgNC40L3Rg9C00LjRgtC10LvRjNC90L4g0LfQsNC/0YPRgdGC0LjRgtGMXHJcbiAgICogQHBhcmFtIGlkXHJcbiAgICogQHBhcmFtIHBhcmFtZXRlcnNFbGVtZW50XHJcbiAgICogQHBhcmFtIHBhcmFtZXRlcnNCaXpQcm9jXHJcbiAgICogQHBhcmFtIHRlbXBsYXRlSURzXHJcbiAgICovXHJcbiAgc3RhcnRQcm9jRm9ybU5ld3NGZWVkKFxyXG4gICAgaWQ6IG51bWJlcixcclxuICAgIHBhcmFtZXRlcnNFbGVtZW50OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBEYXRlPixcclxuICAgIHBhcmFtZXRlcnNCaXpQcm9jOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxyXG4gICAgdGVtcGxhdGVJRHM6IG51bWJlcltdID0gW11cclxuICApIHtcclxuICAgIC8vINCd0LUg0L/QvtC90LjQvNCw0Y4g0L/QvtGH0LXQvNGDIERBVEVfQ1JFQVRFINGD0LrQsNC30YvQstCw0LXRgtGB0Y8g0L3QtSDQvdCwINGB0LXRgNCy0LXRgNC1XHJcbiAgICAvLyDQvdC+INC10YHQu9C4INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDQvdC1INGD0LrQsNC30LDQuywg0L3QsNC00L4g0YPQutCw0LfQsNGC0YxcclxuICAgIGNvbnN0IHZhbHVlOiBhbnkgPSBwYXJhbWV0ZXJzRWxlbWVudFsnREFURV9DUkVBVEUnXVxyXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpID09PSAnJykpIHtcclxuICAgICAgcGFyYW1ldGVyc0VsZW1lbnRbJ0RBVEVfQ1JFQVRFJ10gPSBuZXcgRGF0ZSgpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuQlhSZXN0TmF2dnlMaXN0cy5lbGVtZW50LmFkZChcclxuICAgICAgICB7XHJcbiAgICAgICAgICBJQkxPQ0tfVFlQRV9JRDogJ2JpdHJpeF9wcm9jZXNzZXMnLFxyXG4gICAgICAgICAgSUJMT0NLX0lEOiBpZCxcclxuICAgICAgICAgIEVMRU1FTlRfQ09ERTogJ3RyYWNlX3N0dWRpb18nICsgRGF0ZS5ub3coKSArICdfJyArIE1hdGgucmFuZG9tKCksXHJcbiAgICAgICAgICAvLyDRgtGD0YIg0LTQvtC70LbQvdC+INCx0YvRgtGMINGD0L3QuNC60LDQu9GM0L3QviDQt9C90LDRh9C10L3QuNC1ICjQs9C10L3QtdGA0LDRhtC40Y8g0YPQvdC40LrQsNC70YzQvdGL0YUg0LfQvdCw0YfQtdC90LjQuSDQvdCwINGE0YDQvtC90YLQtSDQu9C+0LspLFxyXG4gICAgICAgICAgLy8g0LrQsNC6INC10YnRkSDRg9C90LjQutCw0LvRjNC90LXQtSDRgdC00LXQu9Cw0YLRjCDRjyDQv9GA0L7RgdGC0L4g0L3QtSDQt9C90LDRjlxyXG4gICAgICAgICAgLy8g0Y3RgtC+INC/0L7Qu9C1INC+0LHRj9C30LDRgtC10LvRjNC90L4g0LHQtdC3INC90LXQs9C+INC90LUg0YDQsNCx0L7RgtCw0LXRglxyXG4gICAgICAgICAgRklFTERTOiB7XHJcbiAgICAgICAgICAgIE5BTUU6IFN0cmluZyhwYXJhbWV0ZXJzRWxlbWVudFsnTkFNRSddKSxcclxuICAgICAgICAgICAgLi4ucGFyYW1ldGVyc0VsZW1lbnRcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICkucmVzKCkucGlwZShcclxuICAgICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhwYXJhbWV0ZXJzQml6UHJvYykubGVuZ3RoICYmIHRlbXBsYXRlSURzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIGxldCByZXF1ZXN0OiBPYnNlcnZhYmxlPGFueSB8IHVuZGVmaW5lZD5bXSA9IFtdXHJcbiAgICAgICAgICAgICAgZm9yIChsZXQgdGVtcGxhdGVJRCBvZiB0ZW1wbGF0ZUlEcykge1xyXG4gICAgICAgICAgICAgICAgcmVxdWVzdC5wdXNoKHRoaXMud29ya2Zsb3cuc3RhcnQoXHJcbiAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBURU1QTEFURV9JRDogdGVtcGxhdGVJRCxcclxuICAgICAgICAgICAgICAgICAgICBET0NVTUVOVF9JRDogWydsaXN0cycsICdCaXpwcm9jRG9jdW1lbnQnLCBTdHJpbmcodildLFxyXG4gICAgICAgICAgICAgICAgICAgIFBBUkFNRVRFUlM6IHBhcmFtZXRlcnNCaXpQcm9jXHJcbiAgICAgICAgICAgICAgICAgIH0pLnJlcygpKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gZm9ya0pvaW4ocmVxdWVzdClcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQndC1INGD0LTQsNC70L7RgdGMINC30LDQv9GD0YHRgtC40YLRjCDQsdC40LfQvdC10YEg0L/RgNC+0YbQtdGB0YEnKSlcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG59XHJcbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml6cHJvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvYml6cHJvYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDakYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBRWxFLG1GQUFtRjtBQUNuRixNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQTtBQUUvQixpRUFBaUU7QUFDakUsTUFBTSxPQUFPLGtCQUFrQjtJQUEvQjtRQUNFLGdDQUFnQztRQUNoQixTQUFJLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFBO1FBQ25ELCtDQUErQztRQUMvQixhQUFRLEdBQUcsSUFBSSxnQ0FBZ0MsRUFBRSxDQUFBO1FBQ2pFLGlFQUFpRTtRQUNqRCxhQUFRLEdBQUcsSUFBSSwwQkFBMEIsRUFBRSxDQUFBO1FBQzNELDhDQUE4QztRQUM5QixVQUFLLEdBQUcsSUFBSSx1QkFBdUIsRUFBRSxDQUFBO1FBQ3JELCtDQUErQztRQUMvQixVQUFLLEdBQUcsSUFBSSx1QkFBdUIsRUFBRSxDQUFBO1FBQ3BDLHFCQUFnQixHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQTtJQXFFNUQsQ0FBQztJQW5FQzs7Ozs7Ozs7O09BU0c7SUFDSCxxQkFBcUIsQ0FDbkIsRUFBVSxFQUNWLGlCQUFnRCxFQUNoRCxpQkFBeUMsRUFDekMsY0FBd0IsRUFBRTtRQUUxQiwwREFBMEQ7UUFDMUQsK0NBQStDO1FBQy9DLE1BQU0sS0FBSyxHQUFRLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ25ELElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hHLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7UUFDL0MsQ0FBQztRQUVELDBFQUEwRTtRQUMxRSw0RUFBNEU7UUFDNUUsc0VBQXNFO1FBQ3RFLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBZSxFQUFrQyxFQUFFLENBQ3JFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ2hDLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsU0FBUyxFQUFFLEVBQUU7WUFDYixZQUFZLEVBQUUsaUJBQWlCLEVBQUU7WUFDakMsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZDLEdBQUcsaUJBQWlCO2FBQ3JCO1NBQ0YsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDcEMsVUFBVSxDQUFDLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FDNUIsQ0FBQyxPQUFPLEdBQUcscUJBQXFCO2VBQzNCLEtBQUssWUFBWSxjQUFjO2VBQy9CLEtBQUssQ0FBQyxLQUFLLEtBQUssOEJBQThCLENBQUM7WUFDbEQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQzVCLENBQ0YsQ0FBQTtRQUVILE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckIsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDTixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNoRSxJQUFJLE9BQU8sR0FBa0MsRUFBRSxDQUFBO29CQUMvQyxLQUFLLElBQUksVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO3dCQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUM5Qjs0QkFDRSxXQUFXLEVBQUUsVUFBVTs0QkFDdkIsV0FBVyxFQUFFLENBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDcEQsVUFBVSxFQUFFLGlCQUFpQjt5QkFDOUIsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7b0JBQ2IsQ0FBQztvQkFDRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtnQkFDMUIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUNqQixDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLHdFQUF3RSxDQUFDLENBQUMsQ0FBQTtRQUM5RyxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQlhSZXN0TmF2dnlMaXN0cyB9IGZyb20gJy4vbGlzdHMnXHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZvcmtKb2luLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eUJpelByb2NUYXNrIH0gZnJvbSAnLi9iaXpwcm9jL3Rhc2snXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5QlhSZXN0Qml6UHJvY1dvcmtmbG93IH0gZnJvbSAnLi9iaXpwcm9jL3dvcmtmbG93J1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eUJpelByb2NBY3Rpdml0eSB9IGZyb20gJy4vYml6cHJvYy9hY3Rpdml0eSdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlCaXpQcm9jRXZlbnQgfSBmcm9tICcuL2JpenByb2MvZXZlbnQnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5Qml6UHJvY1JvYm90IH0gZnJvbSAnLi9iaXpwcm9jL3JvYm90J1xyXG5pbXBvcnQgeyBCWFJlc3RBcGlFcnJvciB9IGZyb20gJy4uL2Z1bmN0aW9ucy9lcnJvcnMnXHJcbmltcG9ydCB7IHVuaXF1ZUVsZW1lbnRDb2RlIH0gZnJvbSAnLi4vZnVuY3Rpb25zL3VuaXF1ZUVsZW1lbnRDb2RlJ1xyXG5cclxuLyoqINCh0LrQvtC70YzQutC+INGA0LDQtyDQv9GA0L7QsdGD0LXQvCDQvdC+0LLRi9C5IGBFTEVNRU5UX0NPREVgLCDQtdGB0LvQuCDRgtCw0LrQvtC5INC60L7QtCDQsiDRgdC/0LjRgdC60LUg0YPQttC1INC30LDQvdGP0YIuICovXHJcbmNvbnN0IEVMRU1FTlRfQ09ERV9BVFRFTVBUUyA9IDNcclxuXHJcbi8qKiDQkdC40LfQvdC10YEt0L/RgNC+0YbQtdGB0YHRiywg0LfQsNC00LDQvdC40Y8sINC00LXQudGB0YLQstC40Y8g0Lgg0YDQvtCx0L7RgtGLIChgYml6cHJvYy4qYCkuICovXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eUJpelByb2Mge1xyXG4gIC8qKiDQl9Cw0LTQsNC90LjRjyDQsdC40LfQvdC10YEt0L/RgNC+0YbQtdGB0YHQvtCyLiAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB0YXNrID0gbmV3IEJYUmVzdE5hdnZ5Qml6UHJvY1Rhc2soKVxyXG4gIC8qKiDQl9Cw0L/Rg9GJ0LXQvdC90YvQtSDQsdC40LfQvdC10YEt0L/RgNC+0YbQtdGB0YHRiyDQuCDQuNGFINGI0LDQsdC70L7QvdGLLiAqL1xyXG4gIHB1YmxpYyByZWFkb25seSB3b3JrZmxvdyA9IG5ldyBCWFJlc3ROYXZ2eUJYUmVzdEJpelByb2NXb3JrZmxvdygpXHJcbiAgLyoqINCU0LXQudGB0YLQstC40Y8g0LHQuNC30L3QtdGBLdC/0YDQvtGG0LXRgdGB0L7Qsiwg0LfQsNGA0LXQs9C40YHRgtGA0LjRgNC+0LLQsNC90L3Ri9C1INC/0YDQuNC70L7QttC10L3QuNC10LwuICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGFjdGl2aXR5ID0gbmV3IEJYUmVzdE5hdnZ5Qml6UHJvY0FjdGl2aXR5KClcclxuICAvKiog0KDQvtCx0L7RgtGLLCDQt9Cw0YDQtdCz0LjRgdGC0YDQuNGA0L7QstCw0L3QvdGL0LUg0L/RgNC40LvQvtC20LXQvdC40LXQvC4gKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgcm9ib3QgPSBuZXcgQlhSZXN0TmF2dnlCaXpQcm9jUm9ib3QoKVxyXG4gIC8qKiDQktC+0LfQstGA0LDRgiDRgNC10LfRg9C70YzRgtCw0YLQvtCyINC00LXQudGB0YLQstC40Y/QvCDQuCDRgNC+0LHQvtGC0LDQvC4gKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnQgPSBuZXcgQlhSZXN0TmF2dnlCaXpQcm9jRXZlbnQoKVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgQlhSZXN0TmF2dnlMaXN0cyA9IG5ldyBCWFJlc3ROYXZ2eUxpc3RzKClcclxuXHJcbiAgLyoqXHJcbiAgICog0JzQtdGC0L7QtCDQv9C+INC30LDQv9GD0YHQutGDINCx0LjQt9C90LXRgSDQv9GA0L7RhtC10YHRgdC+0LIg0LjQtyDQu9C10L3RgtGLXHJcbiAgICogVE9ETzog0L/RgNC+0LTRg9C80LDRgtGMINGA0LDQsdC+0YLRgyDRgSDRgtCw0LrQuNC80Lgg0LzQtdGC0L7QtNCw0LzQuC3QuNGB0LrQu9GO0YfQtdC90LjRj9C80LhcclxuICAgKlxyXG4gICAqIHRlbXBsYXRlSURzIC0gaWQg0LHQuNC30L3QtdGBINC/0YDQvtGG0LXRgdGB0L7QsiDQutC+0YLQvtGA0YvQtSDRhdC+0YLQuNC8INC/0YDQuNC90YPQtNC40YLQtdC70YzQvdC+INC30LDQv9GD0YHRgtC40YLRjFxyXG4gICAqIEBwYXJhbSBpZFxyXG4gICAqIEBwYXJhbSBwYXJhbWV0ZXJzRWxlbWVudFxyXG4gICAqIEBwYXJhbSBwYXJhbWV0ZXJzQml6UHJvY1xyXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZUlEc1xyXG4gICAqL1xyXG4gIHN0YXJ0UHJvY0Zvcm1OZXdzRmVlZChcclxuICAgIGlkOiBudW1iZXIsXHJcbiAgICBwYXJhbWV0ZXJzRWxlbWVudDogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgRGF0ZT4sXHJcbiAgICBwYXJhbWV0ZXJzQml6UHJvYzogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcclxuICAgIHRlbXBsYXRlSURzOiBudW1iZXJbXSA9IFtdXHJcbiAgKSB7XHJcbiAgICAvLyDQndC1INC/0L7QvdC40LzQsNGOINC/0L7Rh9C10LzRgyBEQVRFX0NSRUFURSDRg9C60LDQt9GL0LLQsNC10YLRgdGPINC90LUg0L3QsCDRgdC10YDQstC10YDQtVxyXG4gICAgLy8g0L3QviDQtdGB0LvQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0L3QtSDRg9C60LDQt9Cw0LssINC90LDQtNC+INGD0LrQsNC30LDRgtGMXHJcbiAgICBjb25zdCB2YWx1ZTogYW55ID0gcGFyYW1ldGVyc0VsZW1lbnRbJ0RBVEVfQ1JFQVRFJ11cclxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSA9PT0gJycpKSB7XHJcbiAgICAgIHBhcmFtZXRlcnNFbGVtZW50WydEQVRFX0NSRUFURSddID0gbmV3IERhdGUoKVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEVMRU1FTlRfQ09ERSDQvtCx0Y/Qt9Cw0YLQtdC70LXQvSDQuCDQtNC+0LvQttC10L0g0LHRi9GC0Ywg0YPQvdC40LrQsNC70YzQvdGL0Lwg0LIg0YHQv9C40YHQutC1LiDQl9Cw0L3Rj9GC0YvQtSDQutC+0LTRi1xyXG4gICAgLy8g0LfQvdCw0LXRgiDRgtC+0LvRjNC60L4g0L/QvtGA0YLQsNC7LCDQv9C+0Y3RgtC+0LzRgyDQvdCwINGB0L7QstC/0LDQtNC10L3QuNC1INGB0L7Qt9C00LDRkdC8INC90L7QstGL0Lkg0LrQvtC0INC4INC/0L7QstGC0L7RgNGP0LXQvC5cclxuICAgIC8vIHRocm93T25BcGlFcnJvcjog0LjQvdCw0YfQtSDQvtGI0LjQsdC60LAg0LIg0L7RgtCy0LXRgtC1IDJ4eCDQv9GA0LjRiNC70LAg0LHRiyDQutCw0LogdW5kZWZpbmVkLlxyXG4gICAgY29uc3QgYWRkRWxlbWVudCA9IChhdHRlbXB0OiBudW1iZXIpOiBPYnNlcnZhYmxlPG51bWJlciB8IHVuZGVmaW5lZD4gPT5cclxuICAgICAgdGhpcy5CWFJlc3ROYXZ2eUxpc3RzLmVsZW1lbnQuYWRkKHtcclxuICAgICAgICBJQkxPQ0tfVFlQRV9JRDogJ2JpdHJpeF9wcm9jZXNzZXMnLFxyXG4gICAgICAgIElCTE9DS19JRDogaWQsXHJcbiAgICAgICAgRUxFTUVOVF9DT0RFOiB1bmlxdWVFbGVtZW50Q29kZSgpLFxyXG4gICAgICAgIEZJRUxEUzoge1xyXG4gICAgICAgICAgTkFNRTogU3RyaW5nKHBhcmFtZXRlcnNFbGVtZW50WydOQU1FJ10pLFxyXG4gICAgICAgICAgLi4ucGFyYW1ldGVyc0VsZW1lbnRcclxuICAgICAgICB9XHJcbiAgICAgIH0pLnJlcyh7IHRocm93T25BcGlFcnJvcjogdHJ1ZSB9KS5waXBlKFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PlxyXG4gICAgICAgICAgKGF0dGVtcHQgPCBFTEVNRU5UX0NPREVfQVRURU1QVFNcclxuICAgICAgICAgICAgJiYgZXJyb3IgaW5zdGFuY2VvZiBCWFJlc3RBcGlFcnJvclxyXG4gICAgICAgICAgICAmJiBlcnJvci5lcnJvciA9PT0gJ0VSUk9SX0VMRU1FTlRfQUxSRUFEWV9FWElTVFMnKVxyXG4gICAgICAgICAgICA/IGFkZEVsZW1lbnQoYXR0ZW1wdCArIDEpXHJcbiAgICAgICAgICAgIDogdGhyb3dFcnJvcigoKSA9PiBlcnJvcilcclxuICAgICAgICApXHJcbiAgICAgIClcclxuXHJcbiAgICByZXR1cm4gYWRkRWxlbWVudCgxKS5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYpIHtcclxuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKHBhcmFtZXRlcnNCaXpQcm9jKS5sZW5ndGggJiYgdGVtcGxhdGVJRHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHJlcXVlc3Q6IE9ic2VydmFibGU8YW55IHwgdW5kZWZpbmVkPltdID0gW11cclxuICAgICAgICAgICAgICBmb3IgKGxldCB0ZW1wbGF0ZUlEIG9mIHRlbXBsYXRlSURzKSB7XHJcbiAgICAgICAgICAgICAgICByZXF1ZXN0LnB1c2godGhpcy53b3JrZmxvdy5zdGFydChcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIFRFTVBMQVRFX0lEOiB0ZW1wbGF0ZUlELFxyXG4gICAgICAgICAgICAgICAgICAgIERPQ1VNRU5UX0lEOiBbJ2xpc3RzJywgJ0JpenByb2NEb2N1bWVudCcsIFN0cmluZyh2KV0sXHJcbiAgICAgICAgICAgICAgICAgICAgUEFSQU1FVEVSUzogcGFyYW1ldGVyc0JpelByb2NcclxuICAgICAgICAgICAgICAgICAgfSkucmVzKCkpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJldHVybiBmb3JrSm9pbihyZXF1ZXN0KVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiBvZih0cnVlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBzdGFydCB0aGUgYnVzaW5lc3MgcHJvY2VzczogdGhlIGxpc3QgZWxlbWVudCB3YXMgbm90IGNyZWF0ZWQnKSlcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -19,14 +19,6 @@ export class BXRestNavvyRestCalendarEvent {
19
19
  update: [$calendar, $event, $update],
20
20
  };
21
21
  this.Navvy = new Navvy();
22
- // /** Возвращает список событий календаря, всегда весь список, паганации в методе нет да и не нужна */
23
- // get(param: iBXRestCalendarEventGetParam) {
24
- // return this.Navvy.simple(
25
- // this.url.get,
26
- // param,
27
- // BXRestMapCalendarEvent.get
28
- // )
29
- // }
30
22
  this.get = Object.assign(
31
23
  /**
32
24
  * Возвращает список событий календаря, всегда весь список, паганации в методе нет да и не нужна.
@@ -63,4 +55,4 @@ export class BXRestNavvyRestCalendarEvent {
63
55
  return this.Navvy.simple(this.url.getById, param, (raw) => BXRestMapCalendarEvent.getById(raw, dateTimeFormat));
64
56
  }
65
57
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L2NhbGVuZGFyL2V2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFVMUcsTUFBTSxPQUFPLDRCQUE0QjtJQUF6QztRQUVVLFFBQUcsR0FBRztZQUVaLDhCQUE4QjtZQUM5QixHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztZQUU5QixzQkFBc0I7WUFDdEIsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7WUFFcEMsMENBQTBDO1lBQzFDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFFNUMsa0VBQWtFO2dCQUNsRSxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUM7YUFDN0MsQ0FBQztZQUVGLHNFQUFzRTtZQUN0RSxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQztZQUV2Qyx1Q0FBdUM7WUFDdkMsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7U0FDckMsQ0FBQTtRQUVnQixVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtRQWtCcEMsdUdBQXVHO1FBQ3ZHLDZDQUE2QztRQUM3Qyw4QkFBOEI7UUFDOUIsb0JBQW9CO1FBQ3BCLGFBQWE7UUFDYixpQ0FBaUM7UUFDakMsTUFBTTtRQUNOLElBQUk7UUFFSixRQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU07UUFDakI7Ozs7OztXQU1HO1FBQ0gsQ0FBQyxLQUFtQyxFQUFFLGNBQXVCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUNqRixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFDWixLQUFLLEVBQ0wsQ0FBQyxHQUFzRCxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUM1RyxFQUNEO1lBQ0Usc0RBQXNEO1lBQ3RELE9BQU8sRUFBRSxDQUFDLEtBQTBDLEVBQUUsY0FBdUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ2pHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFDcEIsS0FBSyxFQUNMLENBQUMsR0FBc0QsRUFBRSxFQUFFLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FDNUc7U0FDRixDQUNGLENBQUM7SUF3QkosQ0FBQztJQXRFQyxvQ0FBb0M7SUFDcEMsR0FBRyxDQUFDLEtBQW1DO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUNaLEtBQUssQ0FDTixDQUFBO0lBQ0gsQ0FBQztJQUVELG9DQUFvQztJQUNwQyxNQUFNLENBQUMsS0FBc0M7UUFDM0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQ2YsS0FBSyxDQUNOLENBQUE7SUFDSCxDQUFDO0lBa0NELHFDQUFxQztJQUNyQyxNQUFNLENBQUMsS0FBc0M7UUFDM0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQ2YsS0FBSyxDQUNOLENBQUE7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsT0FBTyxDQUFDLEtBQXVDLEVBQUUsY0FBdUI7UUFDdEUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQ2hCLEtBQUssRUFDTCxDQUFDLEdBQTBELEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQ3BILENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgTmF2dnkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uYXZ2eSdcclxuaW1wb3J0IHsgQlhSZXN0TWFwQ2FsZW5kYXJFdmVudCB9IGZyb20gJy4uLy4uL21hcC9jYWxlbmRhci9ldmVudCdcclxuaW1wb3J0IHsgJGFkZCwgJGNhbGVuZGFyLCAkZGVsZXRlLCAkZXZlbnQsICRnZXQsICRuZWFyZXN0LCAkdXBkYXRlIH0gZnJvbSAnLi4vLi4vY29uc3RzL3BhcnQtbmFtZS1tZXRob2RzJ1xyXG5pbXBvcnQge1xyXG4gIGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0QnlJZFBhcmFtLFxyXG4gIGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0UGFyYW0sXHJcbiAgaUJYUmVzdENhbGVuZGFyRXZlbnRBZGRQYXJhbSxcclxuICBpQlhSZXN0Q2FsZW5kYXJFdmVudFVwZGF0ZVBhcmFtLFxyXG4gIGlCWFJlc3RDYWxlbmRhckV2ZW50RGVsZXRlUGFyYW0sXHJcbiAgaUJYUmVzdENhbGVuZGFyRXZlbnRHZXROZWFyZXN0UGFyYW1cclxufSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9jYWxlbmRhcidcclxuXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eVJlc3RDYWxlbmRhckV2ZW50IHtcclxuXHJcbiAgcHJpdmF0ZSB1cmwgPSB7XHJcblxyXG4gICAgLyoqINCU0L7QsdCw0LLQu9GP0LXRgiDQvdC+0LLQvtC1INGB0L7QsdGL0YLQuNC1ICovXHJcbiAgICBhZGQ6IFskY2FsZW5kYXIsICRldmVudCwgJGFkZF0sXHJcblxyXG4gICAgLyoqINCj0LTQsNC70Y/QtdGCINGB0L7QsdGL0YLQuNC1ICovXHJcbiAgICBkZWxldGU6IFskY2FsZW5kYXIsICRldmVudCwgJGRlbGV0ZV0sXHJcblxyXG4gICAgLyoqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDRgdC+0LHRi9GC0LjQuSDQutCw0LvQtdC90LTQsNGA0Y8gKi9cclxuICAgIGdldDogT2JqZWN0LmFzc2lnbihbJGNhbGVuZGFyLCAkZXZlbnQsICRnZXRdLCB7XHJcblxyXG4gICAgICAvKiog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INCx0YPQtNGD0YnQuNGFINGB0L7QsdGL0YLQuNC5INC00LvRjyDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyAqL1xyXG4gICAgICBuZWFyZXN0OiBbJGNhbGVuZGFyLCAkZXZlbnQsICRnZXQsICRuZWFyZXN0XSxcclxuICAgIH0pLFxyXG5cclxuICAgIC8qKiDQnNC10YLQvtC0INC/0L7Qu9GD0YfQsNC10YIg0LjQvdGE0L7RgNC80LDRhtC40Y4g0L4g0YHQvtCx0YvRgtC40Lgg0LrQsNC70LXQvdC00LDRgNGPINC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgyAqL1xyXG4gICAgZ2V0QnlJZDogWyRjYWxlbmRhciwgJGV2ZW50LCAnZ2V0QnlJZCddLFxyXG5cclxuICAgIC8qKiDQoNC10LTQsNC60YLQuNGA0YPQtdGCINGB0YPRidC10YHRgtCy0YPRjtGJ0LXQtSDRgdC+0LHRi9GC0LjQtSAqL1xyXG4gICAgdXBkYXRlOiBbJGNhbGVuZGFyLCAkZXZlbnQsICR1cGRhdGVdLFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBOYXZ2eSA9IG5ldyBOYXZ2eSgpXHJcblxyXG4gIC8qKiDQlNC+0LHQsNCy0LvRj9C10YIg0YHQvtCx0YvRgtC40LUg0LIg0LrQsNC70LXQvdC00LDRgNGMICovXHJcbiAgYWRkKHBhcmFtOiBpQlhSZXN0Q2FsZW5kYXJFdmVudEFkZFBhcmFtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8bnVtYmVyLCBudW1iZXIsIGlCWFJlc3RDYWxlbmRhckV2ZW50QWRkUGFyYW0+KFxyXG4gICAgICB0aGlzLnVybC5hZGQsXHJcbiAgICAgIHBhcmFtXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKiog0JTQvtCx0LDQstC70Y/QtdGCINGB0L7QsdGL0YLQuNC1INCyINC60LDQu9C10L3QtNCw0YDRjCAqL1xyXG4gIGRlbGV0ZShwYXJhbTogaUJYUmVzdENhbGVuZGFyRXZlbnREZWxldGVQYXJhbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPGJvb2xlYW4sIGJvb2xlYW4sIGlCWFJlc3RDYWxlbmRhckV2ZW50RGVsZXRlUGFyYW0+KFxyXG4gICAgICB0aGlzLnVybC5kZWxldGUsXHJcbiAgICAgIHBhcmFtXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvLyAvKiog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INGB0L7QsdGL0YLQuNC5INC60LDQu9C10L3QtNCw0YDRjywg0LLRgdC10LPQtNCwINCy0LXRgdGMINGB0L/QuNGB0L7Quiwg0L/QsNCz0LDQvdCw0YbQuNC4INCyINC80LXRgtC+0LTQtSDQvdC10YIg0LTQsCDQuCDQvdC1INC90YPQttC90LAgKi9cclxuICAvLyBnZXQocGFyYW06IGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0UGFyYW0pIHtcclxuICAvLyAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZShcclxuICAvLyAgICAgdGhpcy51cmwuZ2V0LFxyXG4gIC8vICAgICBwYXJhbSxcclxuICAvLyAgICAgQlhSZXN0TWFwQ2FsZW5kYXJFdmVudC5nZXRcclxuICAvLyAgIClcclxuICAvLyB9XHJcblxyXG4gIGdldCA9IE9iamVjdC5hc3NpZ24oXHJcbiAgICAvKipcclxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDRgdC+0LHRi9GC0LjQuSDQutCw0LvQtdC90LTQsNGA0Y8sINCy0YHQtdCz0LTQsCDQstC10YHRjCDRgdC/0LjRgdC+0LosINC/0LDQs9Cw0L3QsNGG0LjQuCDQsiDQvNC10YLQvtC00LUg0L3QtdGCINC00LAg0Lgg0L3QtSDQvdGD0LbQvdCwLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBwYXJhbVxyXG4gICAgICogQHBhcmFtIGRhdGVUaW1lRm9ybWF0INCk0L7RgNC80LDRgiDQv9C+0LvQtdC5INGBINC00LDRgtC+0Lkg0Lgg0LLRgNC10LzQtdC90LXQvCDQsiDQvtGC0LLQtdGC0LUgKNGB0LwuIHtAbGluayBCWFJlc3RNYXBDYWxlbmRhckV2ZW50LmdldH0pLlxyXG4gICAgICogICDQn9C10YDQtdC00LDQstCw0LnRgtC1INGP0LLQvdC+LCDQtdGB0LvQuCDRhNC+0YDQvNCw0YIg0LTQsNGCINC90LAg0L/QvtGA0YLQsNC70LUg0L7RgtC70LjRh9Cw0LXRgtGB0Y8g0L7RgiDQt9C90LDRh9C10L3QuNGPINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxyXG4gICAgICovXHJcbiAgICAocGFyYW06IGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0UGFyYW0sIGRhdGVUaW1lRm9ybWF0Pzogc3RyaW5nKSA9PiB0aGlzLk5hdnZ5LnNpbXBsZShcclxuICAgICAgdGhpcy51cmwuZ2V0LFxyXG4gICAgICBwYXJhbSxcclxuICAgICAgKHJhdz86IFBhcmFtZXRlcnM8dHlwZW9mIEJYUmVzdE1hcENhbGVuZGFyRXZlbnQuZ2V0PlswXSkgPT4gQlhSZXN0TWFwQ2FsZW5kYXJFdmVudC5nZXQocmF3LCBkYXRlVGltZUZvcm1hdClcclxuICAgICksXHJcbiAgICB7XHJcbiAgICAgIC8qKiDQnNC10YLQvtC0INC/0L7Qu9GD0YfQsNC10YIg0YHQv9C40YHQvtC6INCx0YPQtNGD0YnQuNGFINGB0L7QsdGL0YLQuNC5LiBAc2VlIGdldCAqL1xyXG4gICAgICBuZWFyZXN0OiAocGFyYW06IGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0TmVhcmVzdFBhcmFtLCBkYXRlVGltZUZvcm1hdD86IHN0cmluZykgPT4gdGhpcy5OYXZ2eS5zaW1wbGUoXHJcbiAgICAgICAgdGhpcy51cmwuZ2V0Lm5lYXJlc3QsXHJcbiAgICAgICAgcGFyYW0sXHJcbiAgICAgICAgKHJhdz86IFBhcmFtZXRlcnM8dHlwZW9mIEJYUmVzdE1hcENhbGVuZGFyRXZlbnQuZ2V0PlswXSkgPT4gQlhSZXN0TWFwQ2FsZW5kYXJFdmVudC5nZXQocmF3LCBkYXRlVGltZUZvcm1hdClcclxuICAgICAgKSxcclxuICAgIH1cclxuICApO1xyXG5cclxuICAvKiog0J7QsdC90L7QstC70LXQvdC40LUg0YHQvtCx0YvRgtC40LUg0LIg0LrQsNC70LXQvdC00LDRgNGMICovXHJcbiAgdXBkYXRlKHBhcmFtOiBpQlhSZXN0Q2FsZW5kYXJFdmVudFVwZGF0ZVBhcmFtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8bnVtYmVyLCBudW1iZXIsIGlCWFJlc3RDYWxlbmRhckV2ZW50VXBkYXRlUGFyYW0+KFxyXG4gICAgICB0aGlzLnVybC51cGRhdGUsXHJcbiAgICAgIHBhcmFtXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQnNC10YLQvtC0INC/0L7Qu9GD0YfQsNC10YIg0LjQvdGE0L7RgNC80LDRhtC40Y4g0L4g0YHQvtCx0YvRgtC40Lgg0LrQsNC70LXQvdC00LDRgNGPINC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqIEBwYXJhbSBkYXRlVGltZUZvcm1hdCDQpNC+0YDQvNCw0YIg0L/QvtC70LXQuSDRgSDQtNCw0YLQvtC5INC4INCy0YDQtdC80LXQvdC10Lwg0LIg0L7RgtCy0LXRgtC1ICjRgdC8LiB7QGxpbmsgQlhSZXN0TWFwQ2FsZW5kYXJFdmVudC5nZXRCeUlkfSkuXHJcbiAgICogICDQn9C10YDQtdC00LDQstCw0LnRgtC1INGP0LLQvdC+LCDQtdGB0LvQuCDRhNC+0YDQvNCw0YIg0LTQsNGCINC90LAg0L/QvtGA0YLQsNC70LUg0L7RgtC70LjRh9Cw0LXRgtGB0Y8g0L7RgiDQt9C90LDRh9C10L3QuNGPINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxyXG4gICAqL1xyXG4gIGdldEJ5SWQocGFyYW06IGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0QnlJZFBhcmFtLCBkYXRlVGltZUZvcm1hdD86IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKFxyXG4gICAgICB0aGlzLnVybC5nZXRCeUlkLFxyXG4gICAgICBwYXJhbSxcclxuICAgICAgKHJhdz86IFBhcmFtZXRlcnM8dHlwZW9mIEJYUmVzdE1hcENhbGVuZGFyRXZlbnQuZ2V0QnlJZD5bMF0pID0+IEJYUmVzdE1hcENhbGVuZGFyRXZlbnQuZ2V0QnlJZChyYXcsIGRhdGVUaW1lRm9ybWF0KVxyXG4gICAgKVxyXG4gIH1cclxufVxyXG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L2NhbGVuZGFyL2V2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFVMUcsTUFBTSxPQUFPLDRCQUE0QjtJQUF6QztRQUVVLFFBQUcsR0FBRztZQUVaLDhCQUE4QjtZQUM5QixHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztZQUU5QixzQkFBc0I7WUFDdEIsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7WUFFcEMsMENBQTBDO1lBQzFDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFFNUMsa0VBQWtFO2dCQUNsRSxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUM7YUFDN0MsQ0FBQztZQUVGLHNFQUFzRTtZQUN0RSxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQztZQUV2Qyx1Q0FBdUM7WUFDdkMsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7U0FDckMsQ0FBQTtRQUVnQixVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtRQWtCcEMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNO1FBQ2pCOzs7Ozs7V0FNRztRQUNILENBQUMsS0FBbUMsRUFBRSxjQUF1QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDakYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQ1osS0FBSyxFQUNMLENBQUMsR0FBc0QsRUFBRSxFQUFFLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FDNUcsRUFDRDtZQUNFLHNEQUFzRDtZQUN0RCxPQUFPLEVBQUUsQ0FBQyxLQUEwQyxFQUFFLGNBQXVCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUNqRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQ3BCLEtBQUssRUFDTCxDQUFDLEdBQXNELEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQzVHO1NBQ0YsQ0FDRixDQUFDO0lBd0JKLENBQUM7SUE3REMsb0NBQW9DO0lBQ3BDLEdBQUcsQ0FBQyxLQUFtQztRQUNyQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFDWixLQUFLLENBQ04sQ0FBQTtJQUNILENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsTUFBTSxDQUFDLEtBQXNDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUNmLEtBQUssQ0FDTixDQUFBO0lBQ0gsQ0FBQztJQXlCRCxxQ0FBcUM7SUFDckMsTUFBTSxDQUFDLEtBQXNDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUNmLEtBQUssQ0FDTixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FBQyxLQUF1QyxFQUFFLGNBQXVCO1FBQ3RFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUNoQixLQUFLLEVBQ0wsQ0FBQyxHQUEwRCxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUNwSCxDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2dnknXHJcbmltcG9ydCB7IEJYUmVzdE1hcENhbGVuZGFyRXZlbnQgfSBmcm9tICcuLi8uLi9tYXAvY2FsZW5kYXIvZXZlbnQnXHJcbmltcG9ydCB7ICRhZGQsICRjYWxlbmRhciwgJGRlbGV0ZSwgJGV2ZW50LCAkZ2V0LCAkbmVhcmVzdCwgJHVwZGF0ZSB9IGZyb20gJy4uLy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0aG9kcydcclxuaW1wb3J0IHtcclxuICBpQlhSZXN0Q2FsZW5kYXJFdmVudEdldEJ5SWRQYXJhbSxcclxuICBpQlhSZXN0Q2FsZW5kYXJFdmVudEdldFBhcmFtLFxyXG4gIGlCWFJlc3RDYWxlbmRhckV2ZW50QWRkUGFyYW0sXHJcbiAgaUJYUmVzdENhbGVuZGFyRXZlbnRVcGRhdGVQYXJhbSxcclxuICBpQlhSZXN0Q2FsZW5kYXJFdmVudERlbGV0ZVBhcmFtLFxyXG4gIGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0TmVhcmVzdFBhcmFtXHJcbn0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvY2FsZW5kYXInXHJcblxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlSZXN0Q2FsZW5kYXJFdmVudCB7XHJcblxyXG4gIHByaXZhdGUgdXJsID0ge1xyXG5cclxuICAgIC8qKiDQlNC+0LHQsNCy0LvRj9C10YIg0L3QvtCy0L7QtSDRgdC+0LHRi9GC0LjQtSAqL1xyXG4gICAgYWRkOiBbJGNhbGVuZGFyLCAkZXZlbnQsICRhZGRdLFxyXG5cclxuICAgIC8qKiDQo9C00LDQu9GP0LXRgiDRgdC+0LHRi9GC0LjQtSAqL1xyXG4gICAgZGVsZXRlOiBbJGNhbGVuZGFyLCAkZXZlbnQsICRkZWxldGVdLFxyXG5cclxuICAgIC8qKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC/0LjRgdC+0Log0YHQvtCx0YvRgtC40Lkg0LrQsNC70LXQvdC00LDRgNGPICovXHJcbiAgICBnZXQ6IE9iamVjdC5hc3NpZ24oWyRjYWxlbmRhciwgJGV2ZW50LCAkZ2V0XSwge1xyXG5cclxuICAgICAgLyoqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDQsdGD0LTRg9GJ0LjRhSDRgdC+0LHRi9GC0LjQuSDQtNC70Y8g0YLQtdC60YPRidC10LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8gKi9cclxuICAgICAgbmVhcmVzdDogWyRjYWxlbmRhciwgJGV2ZW50LCAkZ2V0LCAkbmVhcmVzdF0sXHJcbiAgICB9KSxcclxuXHJcbiAgICAvKiog0JzQtdGC0L7QtCDQv9C+0LvRg9GH0LDQtdGCINC40L3RhNC+0YDQvNCw0YbQuNGOINC+INGB0L7QsdGL0YLQuNC4INC60LDQu9C10L3QtNCw0YDRjyDQv9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMgKi9cclxuICAgIGdldEJ5SWQ6IFskY2FsZW5kYXIsICRldmVudCwgJ2dldEJ5SWQnXSxcclxuXHJcbiAgICAvKiog0KDQtdC00LDQutGC0LjRgNGD0LXRgiDRgdGD0YnQtdGB0YLQstGD0Y7RidC10LUg0YHQvtCx0YvRgtC40LUgKi9cclxuICAgIHVwZGF0ZTogWyRjYWxlbmRhciwgJGV2ZW50LCAkdXBkYXRlXSxcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTmF2dnkgPSBuZXcgTmF2dnkoKVxyXG5cclxuICAvKiog0JTQvtCx0LDQstC70Y/QtdGCINGB0L7QsdGL0YLQuNC1INCyINC60LDQu9C10L3QtNCw0YDRjCAqL1xyXG4gIGFkZChwYXJhbTogaUJYUmVzdENhbGVuZGFyRXZlbnRBZGRQYXJhbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPG51bWJlciwgbnVtYmVyLCBpQlhSZXN0Q2FsZW5kYXJFdmVudEFkZFBhcmFtPihcclxuICAgICAgdGhpcy51cmwuYWRkLFxyXG4gICAgICBwYXJhbVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqINCU0L7QsdCw0LLQu9GP0LXRgiDRgdC+0LHRi9GC0LjQtSDQsiDQutCw0LvQtdC90LTQsNGA0YwgKi9cclxuICBkZWxldGUocGFyYW06IGlCWFJlc3RDYWxlbmRhckV2ZW50RGVsZXRlUGFyYW0pIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxib29sZWFuLCBib29sZWFuLCBpQlhSZXN0Q2FsZW5kYXJFdmVudERlbGV0ZVBhcmFtPihcclxuICAgICAgdGhpcy51cmwuZGVsZXRlLFxyXG4gICAgICBwYXJhbVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0ID0gT2JqZWN0LmFzc2lnbihcclxuICAgIC8qKlxyXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INGB0L7QsdGL0YLQuNC5INC60LDQu9C10L3QtNCw0YDRjywg0LLRgdC10LPQtNCwINCy0LXRgdGMINGB0L/QuNGB0L7Quiwg0L/QsNCz0LDQvdCw0YbQuNC4INCyINC80LXRgtC+0LTQtSDQvdC10YIg0LTQsCDQuCDQvdC1INC90YPQttC90LAuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHBhcmFtXHJcbiAgICAgKiBAcGFyYW0gZGF0ZVRpbWVGb3JtYXQg0KTQvtGA0LzQsNGCINC/0L7Qu9C10Lkg0YEg0LTQsNGC0L7QuSDQuCDQstGA0LXQvNC10L3QtdC8INCyINC+0YLQstC10YLQtSAo0YHQvC4ge0BsaW5rIEJYUmVzdE1hcENhbGVuZGFyRXZlbnQuZ2V0fSkuXHJcbiAgICAgKiAgINCf0LXRgNC10LTQsNCy0LDQudGC0LUg0Y/QstC90L4sINC10YHQu9C4INGE0L7RgNC80LDRgiDQtNCw0YIg0L3QsCDQv9C+0YDRgtCw0LvQtSDQvtGC0LvQuNGH0LDQtdGC0YHRjyDQvtGCINC30L3QsNGH0LXQvdC40Y8g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXHJcbiAgICAgKi9cclxuICAgIChwYXJhbTogaUJYUmVzdENhbGVuZGFyRXZlbnRHZXRQYXJhbSwgZGF0ZVRpbWVGb3JtYXQ/OiBzdHJpbmcpID0+IHRoaXMuTmF2dnkuc2ltcGxlKFxyXG4gICAgICB0aGlzLnVybC5nZXQsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICAocmF3PzogUGFyYW1ldGVyczx0eXBlb2YgQlhSZXN0TWFwQ2FsZW5kYXJFdmVudC5nZXQ+WzBdKSA9PiBCWFJlc3RNYXBDYWxlbmRhckV2ZW50LmdldChyYXcsIGRhdGVUaW1lRm9ybWF0KVxyXG4gICAgKSxcclxuICAgIHtcclxuICAgICAgLyoqINCc0LXRgtC+0LQg0L/QvtC70YPRh9Cw0LXRgiDRgdC/0LjRgdC+0Log0LHRg9C00YPRidC40YUg0YHQvtCx0YvRgtC40LkuIEBzZWUgZ2V0ICovXHJcbiAgICAgIG5lYXJlc3Q6IChwYXJhbTogaUJYUmVzdENhbGVuZGFyRXZlbnRHZXROZWFyZXN0UGFyYW0sIGRhdGVUaW1lRm9ybWF0Pzogc3RyaW5nKSA9PiB0aGlzLk5hdnZ5LnNpbXBsZShcclxuICAgICAgICB0aGlzLnVybC5nZXQubmVhcmVzdCxcclxuICAgICAgICBwYXJhbSxcclxuICAgICAgICAocmF3PzogUGFyYW1ldGVyczx0eXBlb2YgQlhSZXN0TWFwQ2FsZW5kYXJFdmVudC5nZXQ+WzBdKSA9PiBCWFJlc3RNYXBDYWxlbmRhckV2ZW50LmdldChyYXcsIGRhdGVUaW1lRm9ybWF0KVxyXG4gICAgICApLFxyXG4gICAgfVxyXG4gICk7XHJcblxyXG4gIC8qKiDQntCx0L3QvtCy0LvQtdC90LjQtSDRgdC+0LHRi9GC0LjQtSDQsiDQutCw0LvQtdC90LTQsNGA0YwgKi9cclxuICB1cGRhdGUocGFyYW06IGlCWFJlc3RDYWxlbmRhckV2ZW50VXBkYXRlUGFyYW0pIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxudW1iZXIsIG51bWJlciwgaUJYUmVzdENhbGVuZGFyRXZlbnRVcGRhdGVQYXJhbT4oXHJcbiAgICAgIHRoaXMudXJsLnVwZGF0ZSxcclxuICAgICAgcGFyYW1cclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCc0LXRgtC+0LQg0L/QvtC70YPRh9Cw0LXRgiDQuNC90YTQvtGA0LzQsNGG0LjRjiDQviDRgdC+0LHRi9GC0LjQuCDQutCw0LvQtdC90LTQsNGA0Y8g0L/QviDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICogQHBhcmFtIGRhdGVUaW1lRm9ybWF0INCk0L7RgNC80LDRgiDQv9C+0LvQtdC5INGBINC00LDRgtC+0Lkg0Lgg0LLRgNC10LzQtdC90LXQvCDQsiDQvtGC0LLQtdGC0LUgKNGB0LwuIHtAbGluayBCWFJlc3RNYXBDYWxlbmRhckV2ZW50LmdldEJ5SWR9KS5cclxuICAgKiAgINCf0LXRgNC10LTQsNCy0LDQudGC0LUg0Y/QstC90L4sINC10YHQu9C4INGE0L7RgNC80LDRgiDQtNCw0YIg0L3QsCDQv9C+0YDRgtCw0LvQtSDQvtGC0LvQuNGH0LDQtdGC0YHRjyDQvtGCINC30L3QsNGH0LXQvdC40Y8g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXHJcbiAgICovXHJcbiAgZ2V0QnlJZChwYXJhbTogaUJYUmVzdENhbGVuZGFyRXZlbnRHZXRCeUlkUGFyYW0sIGRhdGVUaW1lRm9ybWF0Pzogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoXHJcbiAgICAgIHRoaXMudXJsLmdldEJ5SWQsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICAocmF3PzogUGFyYW1ldGVyczx0eXBlb2YgQlhSZXN0TWFwQ2FsZW5kYXJFdmVudC5nZXRCeUlkPlswXSkgPT4gQlhSZXN0TWFwQ2FsZW5kYXJFdmVudC5nZXRCeUlkKHJhdywgZGF0ZVRpbWVGb3JtYXQpXHJcbiAgICApXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -31,7 +31,7 @@ export class BXRestNavvyDiskOperation {
31
31
  generateUniqueName: true
32
32
  }).res();
33
33
  }
34
- return throwError(() => new Error('Отсутствует общее хранилище для приложения'));
34
+ return throwError(() => new Error('Could not get the app storage'));
35
35
  }));
36
36
  }
37
37
  /**
@@ -49,13 +49,6 @@ export class BXRestNavvyDiskOperation {
49
49
  * Возвращает список папок и файлов в общем хранилище приложения.
50
50
  */
51
51
  getRootFoldersApp() {
52
- // return this.BXDiskFolder$.pipe(
53
- // take(1),
54
- // mergeMap(
55
- // saveData => {
56
- // if (saveData.content.root.app) {
57
- // return of(saveData.content.root.app)
58
- // }
59
52
  return this.storage.getForApp().res().pipe(mergeMap(v => {
60
53
  if (v && v.ID) {
61
54
  return this.storage.getChildren({ id: v.ID }).res();
@@ -81,9 +74,9 @@ export class BXRestNavvyDiskOperation {
81
74
  if (v && v.ID) {
82
75
  return this.storage.addFolder({ id: v.ID, data: { NAME: folderName } }).res();
83
76
  }
84
- return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'));
77
+ return throwError(() => new Error('Could not get the app storage'));
85
78
  }));
86
79
  }));
87
80
  }
88
81
  }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvcmVxdWVzdC1uYXZ2eS9kaXNrL29wZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDbEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFckMsTUFBTSxPQUFPLHdCQUF3QjtJQUFyQztRQUVFOztXQUVHO1FBQ2EsV0FBTSxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQTtRQUNwRDs7V0FFRztRQUNhLFNBQUksR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUE7UUFDL0IsWUFBTyxHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQTtJQTZGekQsQ0FBQztJQTNGQyx3QkFBd0I7SUFDeEI7O09BRUc7SUFDSCxtQkFBbUIsQ0FBQyxJQUduQjtRQUNDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ3RDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQixJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQzVCO29CQUNFLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRTtvQkFDakIsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDO29CQUNsQyxJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLElBQUksQ0FB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aXNrRm9sZGVyIH0gZnJvbSAnLi9mb2xkZXInXHJcbmltcG9ydCB7IG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RGlza0ZpbGUgfSBmcm9tICcuL2ZpbGUnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RGlza1N0b3JhZ2UgfSBmcm9tICcuL3N0b3JhZ2UnXHJcbmltcG9ydCB7IG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcclxuXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eURpc2tPcGVyYXRpb24ge1xyXG5cclxuICAvKipcbiAgICog0J/QsNC/0LrQuCDQvdCwINCU0LjRgdC60LUgKGBkaXNrLmZvbGRlci4qYCkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZm9sZGVyID0gbmV3IEJYUmVzdE5hdnZ5RGlza0ZvbGRlcigpXHJcbiAgLyoqXG4gICAqINCk0LDQudC70Ysg0L3QsCDQlNC40YHQutC1IChgZGlzay5maWxlLipgKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkaXNrID0gbmV3IEJYUmVzdE5hdnZ5RGlza0ZpbGUoKVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZSA9IG5ldyBCWFJlc3ROYXZ2eURpc2tTdG9yYWdlKClcclxuXHJcbiAgLy8g0LTQsNC90L3Ri9C1INGE0LDQudC70LAg0LIgYmFzZTY0XHJcbiAgLyoqXG4gICAqINCX0LDQs9GA0YPQttCw0LXRgiDRhNCw0LnQuyAo0LIgYmFzZTY0KSDQsiDQvtCx0YnQtdC1INGF0YDQsNC90LjQu9C40YnQtSDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICovXG4gIGxvYWRGaWxlSW5BcHBGb2xkZXIoZmlsZToge1xyXG4gICAgbmFtZTogc3RyaW5nLFxyXG4gICAgdmFsOiBzdHJpbmdcclxuICB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlLmdldEZvckFwcCgpLnJlcygpLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAoaW5mb0ZvbGRlciA9PiB7XHJcbiAgICAgICAgICBpZiAoaW5mb0ZvbGRlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLnVwbG9hZEZpbGUoXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWQ6IGluZm9Gb2xkZXIuSUQsXHJcbiAgICAgICAgICAgICAgICBmaWxlQ29udGVudDogW2ZpbGUubmFtZSwgZmlsZS52YWxdLFxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICBOQU1FOiBmaWxlLm5hbWVcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBnZW5lcmF0ZVVuaXF1ZU5hbWU6IHRydWVcclxuICAgICAgICAgICAgICB9KS5yZXMoKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPQtdGCINC+0LHRidC10LUg0YXRgNCw0L3QuNC70LjRidC1INC00LvRjyDQv9GA0LjQu9C+0LbQtdC90LjRjycpKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxuICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC+0LTQtdGA0LbQuNC80L7QtSDQutC+0YDQvdC10LLQvtC5INC/0LDQv9C60Lgg0L/RgNC40LvQvtC20LXQvdC40Y8sINGB0L7Qt9C00LDQstCw0Y8g0LXRkSDQv9GA0Lgg0L7RgtGB0YPRgtGB0YLQstC40LguXG4gICAqL1xuICBnZXRPZkNyZWF0ZVJvb3RDb250ZW50Rm9sZGVyQXBwKGZvbGRlck5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0T2ZDcmVhdGVSb290Rm9sZGVyQXBwKGZvbGRlck5hbWUpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gICAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5mb2xkZXIuZ2V0Q2hpbGRyZW4oe2lkOiB2LklEfSkucmVzKClcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgfSlcclxuICAgIClcclxuXHJcbiAgfVxyXG5cclxuICAvKipcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INC/0LDQv9C+0Log0Lgg0YTQsNC50LvQvtCyINCyINC+0LHRidC10Lwg0YXRgNCw0L3QuNC70LjRidC1INC/0YDQuNC70L7QttC10L3QuNGPLlxuICAgKi9cbiAgZ2V0Um9vdEZvbGRlcnNBcHAoKSB7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5CWERpc2tGb2xkZXIkLnBpcGUoXHJcbiAgICAvLyAgIHRha2UoMSksXHJcbiAgICAvLyAgIG1lcmdlTWFwKFxyXG4gICAgLy8gICAgIHNhdmVEYXRhID0+IHtcclxuICAgIC8vICAgICAgIGlmIChzYXZlRGF0YS5jb250ZW50LnJvb3QuYXBwKSB7XHJcbiAgICAvLyAgICAgICAgIHJldHVybiBvZihzYXZlRGF0YS5jb250ZW50LnJvb3QuYXBwKVxyXG4gICAgLy8gICAgICAgfVxyXG5cclxuXHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlLmdldEZvckFwcCgpLnJlcygpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gICAgICAgIGlmICh2ICYmIHYuSUQpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuZ2V0Q2hpbGRyZW4oe2lkOiB2LklEfSkucmVzKClcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCf0L7Qu9GD0YfQsNGC0Ywg0LjQu9C4INGB0L7Qt9C00LDRgtGMINC/0LDQv9C60YMsINC10YHQu9C4INC10ZEg0L3QtdGCLCDRgSDQvtC/0YDQtdC00LXQu9C10L3QvdGL0Lwg0LjQvNC10L3QtdC8INC00LvRjyDQv9GA0LjQu9C+0LbQtdC90LjRj1xyXG4gICAqIEBwYXJhbSBmb2xkZXJOYW1lXHJcbiAgICovXHJcbiAgZ2V0T2ZDcmVhdGVSb290Rm9sZGVyQXBwKGZvbGRlck5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Um9vdEZvbGRlcnNBcHAoKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICBpZiAodikge1xyXG4gICAgICAgICAgaWYgKHYuZm9sZGVyLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBsZXQgZmluZCA9IHYuZm9sZGVyLmZpbmQoaSA9PiBpLk5BTUUgPT09IGZvbGRlck5hbWUpXHJcbiAgICAgICAgICAgIGlmIChmaW5kKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKGZpbmQpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5nZXRGb3JBcHAoKS5yZXMoKS5waXBlKFxyXG4gICAgICAgICAgbWVyZ2VNYXAodiA9PiB7XHJcbiAgICAgICAgICAgIGlmICh2ICYmIHYuSUQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLmFkZEZvbGRlcih7aWQ6IHYuSUQsIGRhdGE6IHtOQU1FOiBmb2xkZXJOYW1lfX0pLnJlcygpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0LTQvtCx0LDQstC70LXQvdC40LUg0LfQsNC/0LjRgdC4INC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCcpKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgICApKVxyXG4gIH1cclxuXHJcbn1cclxuIl19
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvcmVxdWVzdC1uYXZ2eS9kaXNrL29wZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDbEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFckMsTUFBTSxPQUFPLHdCQUF3QjtJQUFyQztRQUVFOztXQUVHO1FBQ2EsV0FBTSxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQTtRQUNwRDs7V0FFRztRQUNhLFNBQUksR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUE7UUFDL0IsWUFBTyxHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQTtJQW9GekQsQ0FBQztJQWxGQyx3QkFBd0I7SUFDeEI7O09BRUc7SUFDSCxtQkFBbUIsQ0FBQyxJQUduQjtRQUNDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ3RDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQixJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQzVCO29CQUNFLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRTtvQkFDakIsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDO29CQUNsQyxJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO3FCQUNoQjtvQkFDRCxrQkFBa0IsRUFBRSxJQUFJO2lCQUN6QixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUE7WUFDWixDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFBO1FBQ3JFLENBQUMsQ0FBQyxDQUNILENBQUE7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCwrQkFBK0IsQ0FBQyxVQUFrQjtRQUNoRCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQ25ELFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUNsRCxDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDdEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUVILENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ3hDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFBO1lBQ25ELENBQUM7WUFDRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN0QixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILHdCQUF3QixDQUFDLFVBQWtCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsSUFBSSxDQUNsQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDWCxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNOLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFBO29CQUNwRCxJQUFJLElBQUksRUFBRSxDQUFDO3dCQUNULE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO29CQUNqQixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDeEMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtnQkFDM0UsQ0FBQztnQkFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUE7WUFDckUsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNELENBQUMsQ0FDRixDQUFDLENBQUE7SUFDTixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCWFJlc3ROYXZ2eURpc2tGb2xkZXIgfSBmcm9tICcuL2ZvbGRlcidcclxuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlEaXNrRmlsZSB9IGZyb20gJy4vZmlsZSdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlEaXNrU3RvcmFnZSB9IGZyb20gJy4vc3RvcmFnZSdcclxuaW1wb3J0IHsgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xyXG5cclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5RGlza09wZXJhdGlvbiB7XHJcblxyXG4gIC8qKlxyXG4gICAqINCf0LDQv9C60Lgg0L3QsCDQlNC40YHQutC1IChgZGlzay5mb2xkZXIuKmApLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBmb2xkZXIgPSBuZXcgQlhSZXN0TmF2dnlEaXNrRm9sZGVyKClcclxuICAvKipcclxuICAgKiDQpNCw0LnQu9GLINC90LAg0JTQuNGB0LrQtSAoYGRpc2suZmlsZS4qYCkuXHJcbiAgICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGRpc2sgPSBuZXcgQlhSZXN0TmF2dnlEaXNrRmlsZSgpXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlID0gbmV3IEJYUmVzdE5hdnZ5RGlza1N0b3JhZ2UoKVxyXG5cclxuICAvLyDQtNCw0L3QvdGL0LUg0YTQsNC50LvQsCDQsiBiYXNlNjRcclxuICAvKipcclxuICAgKiDQl9Cw0LPRgNGD0LbQsNC10YIg0YTQsNC50LsgKNCyIGJhc2U2NCkg0LIg0L7QsdGJ0LXQtSDRhdGA0LDQvdC40LvQuNGJ0LUg0L/RgNC40LvQvtC20LXQvdC40Y8uXHJcbiAgICovXHJcbiAgbG9hZEZpbGVJbkFwcEZvbGRlcihmaWxlOiB7XHJcbiAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICB2YWw6IHN0cmluZ1xyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuZ2V0Rm9yQXBwKCkucmVzKCkucGlwZShcclxuICAgICAgICBtZXJnZU1hcChpbmZvRm9sZGVyID0+IHtcclxuICAgICAgICAgIGlmIChpbmZvRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2UudXBsb2FkRmlsZShcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZDogaW5mb0ZvbGRlci5JRCxcclxuICAgICAgICAgICAgICAgIGZpbGVDb250ZW50OiBbZmlsZS5uYW1lLCBmaWxlLnZhbF0sXHJcbiAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgIE5BTUU6IGZpbGUubmFtZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGdlbmVyYXRlVW5pcXVlTmFtZTogdHJ1ZVxyXG4gICAgICAgICAgICAgIH0pLnJlcygpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBnZXQgdGhlIGFwcCBzdG9yYWdlJykpXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQvtC00LXRgNC20LjQvNC+0LUg0LrQvtGA0L3QtdCy0L7QuSDQv9Cw0L/QutC4INC/0YDQuNC70L7QttC10L3QuNGPLCDRgdC+0LfQtNCw0LLQsNGPINC10ZEg0L/RgNC4INC+0YLRgdGD0YLRgdGC0LLQuNC4LlxyXG4gICAqL1xyXG4gIGdldE9mQ3JlYXRlUm9vdENvbnRlbnRGb2xkZXJBcHAoZm9sZGVyTmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRPZkNyZWF0ZVJvb3RGb2xkZXJBcHAoZm9sZGVyTmFtZSkucGlwZShcclxuICAgICAgbWVyZ2VNYXAodiA9PiB7XHJcbiAgICAgICAgaWYgKHYpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmZvbGRlci5nZXRDaGlsZHJlbih7aWQ6IHYuSUR9KS5yZXMoKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG5cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDQv9Cw0L/QvtC6INC4INGE0LDQudC70L7QsiDQsiDQvtCx0YnQtdC8INGF0YDQsNC90LjQu9C40YnQtSDQv9GA0LjQu9C+0LbQtdC90LjRjy5cclxuICAgKi9cclxuICBnZXRSb290Rm9sZGVyc0FwcCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuZ2V0Rm9yQXBwKCkucmVzKCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAodiA9PiB7XHJcbiAgICAgICAgaWYgKHYgJiYgdi5JRCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5nZXRDaGlsZHJlbih7aWQ6IHYuSUR9KS5yZXMoKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0J/QvtC70YPRh9Cw0YLRjCDQuNC70Lgg0YHQvtC30LTQsNGC0Ywg0L/QsNC/0LrRgywg0LXRgdC70Lgg0LXRkSDQvdC10YIsINGBINC+0L/RgNC10LTQtdC70LXQvdC90YvQvCDQuNC80LXQvdC10Lwg0LTQu9GPINC/0YDQuNC70L7QttC10L3QuNGPXHJcbiAgICogQHBhcmFtIGZvbGRlck5hbWVcclxuICAgKi9cclxuICBnZXRPZkNyZWF0ZVJvb3RGb2xkZXJBcHAoZm9sZGVyTmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRSb290Rm9sZGVyc0FwcCgpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gICAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgICBpZiAodi5mb2xkZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGxldCBmaW5kID0gdi5mb2xkZXIuZmluZChpID0+IGkuTkFNRSA9PT0gZm9sZGVyTmFtZSlcclxuICAgICAgICAgICAgaWYgKGZpbmQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gb2YoZmluZClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLmdldEZvckFwcCgpLnJlcygpLnBpcGUoXHJcbiAgICAgICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICAgICAgaWYgKHYgJiYgdi5JRCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuYWRkRm9sZGVyKHtpZDogdi5JRCwgZGF0YToge05BTUU6IGZvbGRlck5hbWV9fSkucmVzKClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBnZXQgdGhlIGFwcCBzdG9yYWdlJykpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgICkpXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -1,14 +1,10 @@
1
1
  import { BXRestNavvySocialNetWorkApiLiveFeedBlogPost } from './livefeed/blogpost';
2
- // import { Navvy } from '../../../services/navvy'
3
- // import { BXRestSocialNetWorkApiLiveFeed } from '../../../request/socialnetwork/api/livefeed'
4
2
  export class BXRestNavvySocialNetWorkApiLiveFeed {
5
3
  constructor() {
6
- // private readonly contentView = new BXRestSocialNetWorkApiLiveFeed)
7
- // private readonly Navvy = new Navvy(this.contentView, null)
8
4
  /**
9
5
  * Сообщения Ленты новостей в социальной сети (`socialnetwork.api.liveFeed.blogPost.*`).
10
6
  */
11
7
  this.blogPost = new BXRestNavvySocialNetWorkApiLiveFeedBlogPost();
12
8
  }
13
9
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZWZlZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3NvY2lhbG5ldHdvcmsvYXBpL2xpdmVmZWVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ2pGLGtEQUFrRDtBQUNsRCwrRkFBK0Y7QUFFL0YsTUFBTSxPQUFPLG1DQUFtQztJQUFoRDtRQUNFLHFFQUFxRTtRQUNyRSw2REFBNkQ7UUFFN0Q7O1dBRUc7UUFDYSxhQUFRLEdBQUcsSUFBSSwyQ0FBMkMsRUFBRSxDQUFBO0lBQzlFLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJYUmVzdE5hdnZ5U29jaWFsTmV0V29ya0FwaUxpdmVGZWVkQmxvZ1Bvc3QgfSBmcm9tICcuL2xpdmVmZWVkL2Jsb2dwb3N0J1xyXG4vLyBpbXBvcnQgeyBOYXZ2eSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdnZ5J1xyXG4vLyBpbXBvcnQgeyBCWFJlc3RTb2NpYWxOZXRXb3JrQXBpTGl2ZUZlZWQgfSBmcm9tICcuLi8uLi8uLi9yZXF1ZXN0L3NvY2lhbG5ldHdvcmsvYXBpL2xpdmVmZWVkJ1xyXG5cclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5U29jaWFsTmV0V29ya0FwaUxpdmVGZWVkIHtcclxuICAvLyBwcml2YXRlIHJlYWRvbmx5IGNvbnRlbnRWaWV3ID0gbmV3IEJYUmVzdFNvY2lhbE5ldFdvcmtBcGlMaXZlRmVlZClcclxuICAvLyBwcml2YXRlIHJlYWRvbmx5IE5hdnZ5ID0gbmV3IE5hdnZ5KHRoaXMuY29udGVudFZpZXcsIG51bGwpXHJcblxyXG4gIC8qKlxuICAgKiDQodC+0L7QsdGJ0LXQvdC40Y8g0JvQtdC90YLRiyDQvdC+0LLQvtGB0YLQtdC5INCyINGB0L7RhtC40LDQu9GM0L3QvtC5INGB0LXRgtC4IChgc29jaWFsbmV0d29yay5hcGkubGl2ZUZlZWQuYmxvZ1Bvc3QuKmApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJsb2dQb3N0ID0gbmV3IEJYUmVzdE5hdnZ5U29jaWFsTmV0V29ya0FwaUxpdmVGZWVkQmxvZ1Bvc3QoKVxyXG59Il19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZWZlZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3NvY2lhbG5ldHdvcmsvYXBpL2xpdmVmZWVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRWpGLE1BQU0sT0FBTyxtQ0FBbUM7SUFBaEQ7UUFDRTs7V0FFRztRQUNhLGFBQVEsR0FBRyxJQUFJLDJDQUEyQyxFQUFFLENBQUE7SUFDOUUsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQlhSZXN0TmF2dnlTb2NpYWxOZXRXb3JrQXBpTGl2ZUZlZWRCbG9nUG9zdCB9IGZyb20gJy4vbGl2ZWZlZWQvYmxvZ3Bvc3QnXHJcblxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlTb2NpYWxOZXRXb3JrQXBpTGl2ZUZlZWQge1xyXG4gIC8qKlxuICAgKiDQodC+0L7QsdGJ0LXQvdC40Y8g0JvQtdC90YLRiyDQvdC+0LLQvtGB0YLQtdC5INCyINGB0L7RhtC40LDQu9GM0L3QvtC5INGB0LXRgtC4IChgc29jaWFsbmV0d29yay5hcGkubGl2ZUZlZWQuYmxvZ1Bvc3QuKmApLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJsb2dQb3N0ID0gbmV3IEJYUmVzdE5hdnZ5U29jaWFsTmV0V29ya0FwaUxpdmVGZWVkQmxvZ1Bvc3QoKVxyXG59Il19
@@ -190,12 +190,12 @@ export class BXRestNavvyOperationElapsedItem {
190
190
  return this.BXRestNavvyElapsedItem.add(param).res();
191
191
  }
192
192
  else {
193
- return throwError(() => new Error('Отсутствуют права на добавление записи затраченного времени'));
193
+ return throwError(() => new Error('No permission to add an elapsed time record to the task'));
194
194
  }
195
195
  }));
196
196
  }
197
197
  else {
198
- return throwError(() => new Error('Отсутствуют права на чтение задачи'));
198
+ return throwError(() => new Error('No permission to read the task'));
199
199
  }
200
200
  }));
201
201
  }
@@ -212,10 +212,10 @@ export class BXRestNavvyOperationElapsedItem {
212
212
  if (allowed) {
213
213
  return this.BXRestNavvyElapsedItem.update(param).res();
214
214
  }
215
- return throwError(() => new Error('Отсутствуют права на изменение записи затраченного времени'));
215
+ return throwError(() => new Error('No permission to update the elapsed time record'));
216
216
  }));
217
217
  }
218
- return throwError(() => new Error('Отсутствуют права на чтение задачи'));
218
+ return throwError(() => new Error('No permission to read the task'));
219
219
  }));
220
220
  }
221
221
  /**
@@ -243,7 +243,7 @@ export class BXRestNavvyOperationElapsedItem {
243
243
  if (canRead) {
244
244
  return this.BXRestNavvyElapsedItem.isActionAllowed(param).res();
245
245
  }
246
- return throwError(() => new Error('Отсутствуют права на чтение задачи'));
246
+ return throwError(() => new Error('No permission to read the task'));
247
247
  }));
248
248
  }
249
249
  /**
@@ -259,12 +259,12 @@ export class BXRestNavvyOperationElapsedItem {
259
259
  return this.BXRestNavvyElapsedItem.delete(param).res();
260
260
  }
261
261
  else {
262
- return throwError(() => new Error('Отсутствуют права на удаление записи затраченного времени'));
262
+ return throwError(() => new Error('No permission to delete the elapsed time record'));
263
263
  }
264
264
  }));
265
265
  }
266
266
  else {
267
- return throwError(() => new Error('Отсутствуют права на чтение задачи'));
267
+ return throwError(() => new Error('No permission to read the task'));
268
268
  }
269
269
  }));
270
270
  }
@@ -279,4 +279,4 @@ export class BXRestNavvyOperationElapsedItem {
279
279
  });
280
280
  }
281
281
  }
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svb3BlcmF0aW9uL2VsYXBzZWRpdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3ZILE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDMUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzlDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBSXhFLE1BQU0sT0FBTywrQkFBK0I7SUFPMUMsWUFBb0Isc0JBQThDO1FBQTlDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFMakQsU0FBSSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUE7UUFDM0IsYUFBUSxHQUFHLElBQUksOEJBQThCLEVBQUUsQ0FBQTtRQUMvQyxvQkFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUE7UUFDdkMscUJBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFBO0lBRzFELENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxRQUFrQixFQUFFLFNBQWUsRUFBRSxPQUFhO1FBQzlELE1BQU0sS0FB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S0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUMxRCxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ2pCLElBQUksT0FBTyxFQUFFLENBQUM7d0JBQ1osT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFBO29CQUN4RCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQyxDQUFBO29CQUNqRyxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDUCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFBO1lBQzFFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZUFBZSxDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQ3BELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FDekI7WUFDRSxNQUFNLEVBQUUsTUFBTTtZQUNkLE1BQU0sRUFBRSxNQUFNO1lBQ2QsUUFBUSxFQUFFLENBQUM7U0FDWixDQUFDLENBQUE7SUFDTixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0LFxyXG4gIGlCWFJlc3RUYXNrRWxhcHNlZEl0ZW1IdHRwLFxyXG4gIGlCWFJlc3RQYXJhbVRhc2tHZXRBY2Nlc3MsXHJcbiAgaUJYUmVzdFRhc2tHZXRBY2Nlc3MsXHJcbiAgaUlzQWN0aW9uQWxsb3dlZFBhcmFtLFxyXG4gIGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtLFxyXG4gIGlCWFJlc3RQYXJhbVVwZGF0ZUVsYXBzZWRpdGVtLFxyXG4gIGlCWFJlc3RQYXJhbURlbEVsYXBzZWRpdGVtXHJcbn0gZnJvbSAnLi4vLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzaydcclxuaW1wb3J0IHsgSHR0cEJYU2VydmljZXMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odHRwL0h0dHBCWCdcclxuaW1wb3J0IHsgJGVsYXBzZWRpdGVtLCAkZ2V0YWNjZXNzLCAkZ2V0bGlzdCwgJGlzYWN0aW9uYWxsb3dlZCwgJHRhc2ssICR0YXNrcyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0aG9kcydcclxuaW1wb3J0IHsgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IEJYUmVzdE1hcFRhc2tFbGFwc2VkSXRlbSB9IGZyb20gJy4uLy4uLy4uL21hcC90YXNrL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBtZXJnZU1hcCwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVVzZXIgfSBmcm9tICcuLi8uLi91c2VyJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVRhc2tzIH0gZnJvbSAnLi4vLi4vdGFza3MnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RGVsZWdhdGVFbGFwc2VkSXRlbSB9IGZyb20gJy4uL2RlbGVnYXRlL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBpQlhSZXN0VXNlciB9IGZyb20gJy4uLy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXInXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0gfSBmcm9tICcuLi9lbGFwc2VkaXRlbSdcclxuXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eU9wZXJhdGlvbkVsYXBzZWRJdGVtIHtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gbmV3IEh0dHBCWFNlcnZpY2VzKClcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlbGVnYXRlID0gbmV3IEJYUmVzdE5hdnZ5RGVsZWdhdGVFbGFwc2VkSXRlbSgpXHJcbiAgcHJpdmF0ZSByZWFkb25seSBCWFJlc3ROYXZ2eVVzZXIgPSBuZXcgQlhSZXN0TmF2dnlVc2VyKClcclxuICBwcml2YXRlIHJlYWRvbmx5IEJYUmVzdE5hdnZ5VGFza3MgPSBuZXcgQlhSZXN0TmF2dnlUYXNrcygpXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgQlhSZXN0TmF2dnlFbGFwc2VkSXRlbTogQlhSZXN0TmF2dnlFbGFwc2VkSXRlbSkge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LfQsNC/0LjRgdC4INC+INC30LDRgtGA0LDRh9C10L3QvdC+0Lwg0LLRgNC10LzQtdC90Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10Lkg0LfQsCDQv9C10YDQuNC+0LQuXHJcbiAgICovXHJcbiAgZ2V0QnlJbnRlcnZhbChpZHNVc2VyczogbnVtYmVyW10sIGRhdGVTdGFydDogRGF0ZSwgZGF0ZUVuZDogRGF0ZSkge1xyXG4gICAgY29uc3QgcGFyYW06IGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0ID0ge1xyXG4gICAgICBPUkRFUjoge1xyXG4gICAgICAgIElEOiAnREVTQydcclxuICAgICAgfSxcclxuICAgICAgRklMVEVSOiB7XHJcbiAgICAgICAgVVNFUl9JRDogaWRzVXNlcnMsXHJcbiAgICAgICAgJz49Q1JFQVRFRF9EQVRFJzogZGF0ZVN0YXJ0LnRvTG9jYWxlU3RyaW5nKCdydS1SdScsIHtcclxuICAgICAgICAgIHRpbWVab25lTmFtZTogJ3Nob3J0J1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgICc8PUNSRUFURURfREFURSc6IGRhdGVFbmQudG9Mb2NhbGVTdHJpbmcoJ3J1LVJ1Jywge1xyXG4gICAgICAgICAgdGltZVpvbmVOYW1lOiAnc2hvcnQnXHJcbiAgICAgICAgfSksXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmRlbGVnYXRlLmdldExpc3QocGFyYW0pXHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiDQodC00LXQu9Cw0YLRjCDQvdC+0YDQvNCw0LvRjNC90L5cclxuICAvKipcclxuICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC/0LjRgdC+0Log0LfQsNC/0LjRgdC10Lkg0L4g0LfQsNGC0YDQsNGH0LXQvdC90L7QvCDQstGA0LXQvNC10L3QuCDQv9C+INC30LDQtNCw0YfQtS5cclxuICAgKi9cclxuICBnZXRMaXN0QnlJRFRhc2soaWRzOiBudW1iZXJbXSkge1xyXG4gICAgLy8g0J/Rg9GB0YLQvtC5IGJhdGNoINC30LDQstC10YDRiNCw0LXRgtGB0Y8g0LHQtdC3INC30L3QsNGH0LXQvdC40Y8sINC4INCy0YvQt9GL0LLQsNGO0YnQuNC5INC60L7QtCDQv9C+0LvRg9GH0LjQuyDQsdGLIEVtcHR5RXJyb3JcclxuICAgIGlmICghaWRzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gb2YoW10pXHJcbiAgICB9XHJcbiAgICAvLyDQoNCw0LHQvtGC0LDQtdGCINGC0L7Qu9GM0LrQviDQv9C+0YLQvtC80YMg0YfRgtC+IFwiblBhZ2VTaXplOiA5OTk5OVwiXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmJyYW5jaDxpQlhSZXN0UGFyYW1FbGFwc2VkaXRlbUdldCwgaUJYUmVzdFRhc2tFbGFwc2VkSXRlbUh0dHA+XHJcbiAgICAoXHJcbiAgICAgIGlkcy5tYXAoaSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIG5hbWU6IHRoaXMuaHR0cC5nZXROYW1lTWV0aG9kKFskdGFzaywgJGVsYXBzZWRpdGVtLCAkZ2V0bGlzdF0pLFxyXG4gICAgICAgICAgcGFyYW06IHtcclxuICAgICAgICAgICAgVEFTS0lEOiBpLFxyXG4gICAgICAgICAgICBQQVJBTVM6IHtcclxuICAgICAgICAgICAgICBOQVZfUEFSQU1TOiB7XHJcbiAgICAgICAgICAgICAgICBuUGFnZVNpemU6IDk5OTk5LFxyXG4gICAgICAgICAgICAgICAgaU51bVBhZ2U6IDFcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICBpZiAodiAmJiB2Lmxlbmd0aCkge1xyXG4gICAgICAgICAgY29uc3QgcmVzID0gdGhpcy5odHRwLm1hcEJyYW5jaFJlc3VsdFdpdGhvdXRLZXkodilcclxuICAgICAgICAgIHJldHVybiBCWFJlc3RNYXBUYXNrRWxhcHNlZEl0ZW0uZ2V0TGlzdChyZXMpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCf0YDQvtCy0LXRgNGP0LXRgiDQv9GA0LDQstC+INC90LAg0LTQvtCx0LDQstC70LXQvdC40LUg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4INGB0YDQsNC30YMg0L/QviDQvdC10YHQutC+0LvRjNC60LjQvCDQt9Cw0LTQsNGH0LDQvC5cclxuICAgKi9cclxuICBjaGVja1Blcm1pc3Npb25BZGRFbGFwc2VkVGltZVRvVGFza0Fycih0YXNrczogbnVtYmVyW10sIHVzZXJDdXJyZW50OiBpQlhSZXN0VXNlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCkge1xyXG4gICAgLy8g0KPQsdC40YDQsNC10Lwg0LTRg9Cx0LvQuCwg0YfRgtC+0LHRiyDQvdC1INC/0YDQvtCy0LXRgNGP0YLRjCDQv9GA0LDQstCwINC/0L4g0L7QtNC90L7QuSDQt9Cw0LTQsNGH0LUg0L3QtdGB0LrQvtC70YzQutC+INGA0LDQty5cclxuICAgIGNvbnN0IGlkcyA9IFsuLi5uZXcgU2V0KHRhc2tzLmZpbHRlcihpID0+ICEhaSkpXVxyXG4gICAgLy8g0JXRgdC70Lgg0YLQtdC60YPRidC40Lkg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GMINC90LUg0L/QtdGA0LXQtNCw0L0g0YHQvdCw0YDRg9C20LgsINC30LDQv9GA0LDRiNC40LLQsNC10Lwg0LXQs9C+INC+0LTQuNC9INGA0LDQtyDQvdCwINCy0LXRgdGMINC90LDQsdC+0YAg0LfQsNC00LDRhy5cclxuICAgIGNvbnN0IHVzZXIkID0gdXNlckN1cnJlbnQgPyBvZih1c2VyQ3VycmVudCkgOiB0aGlzLkJYUmVzdE5hdnZ5VXNlci5jdXJyZW50KCkucmVzKClcclxuXHJcbiAgICAvLyDQodGC0LDRgNGL0LkgYmF0Y2gg0YfQtdGA0LXQtyB0YXNrLmVsYXBzZWRpdGVtLmlzYWN0aW9uYWxsb3dlZC5cclxuICAgIC8vINCS0YvQt9GL0LLQsNC10Lwg0LXQs9C+INC90LjQttC1INGC0L7Qu9GM0LrQviDQtNC70Y8g0LfQsNC00LDRhywg0L/QviDQutC+0YLQvtGA0YvQvCBnZXRhY2Nlc3Mg0L3QtSDQstC10YDQvdGD0LsgRUxBUFNFRFRJTUUuQURELlxyXG4gICAgY29uc3QgbG9hZE1pc3NpbmdCeUFjdGlvbkFsbG93ZWQgPSAobWlzc2luZ0lkczogbnVtYmVyW10sIHJlc29sdmVkOiB7IGlkOiBudW1iZXIsIHZhbHVlOiBib29sZWFuIH1bXSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmJyYW5jaDxpSXNBY3Rpb25BbGxvd2VkUGFyYW0sIGJvb2xlYW4+KFxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIC4uLm1pc3NpbmdJZHMubWFwKGkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgW2ldOiB7XHJcbiAgICAgICAgICAgICAgbmFtZTogdGhpcy5odHRwLmdldE5hbWVNZXRob2QoWyR0YXNrLCAkZWxhcHNlZGl0ZW0sICRpc2FjdGlvbmFsbG93ZWRdKSxcclxuICAgICAgICAgICAgICBwYXJhbToge1xyXG4gICAgICAgICAgICAgICAgVEFTS0lEOiBpLFxyXG4gICAgICAgICAgICAgICAgSVRFTUlEOiAxLFxyXG4gICAgICAgICAgICAgICAgQUNUSU9OSUQ6IDFcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICAgICAgKS5waXBlKFxyXG4gICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgIGlmICh2ICYmIHYubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlczogUmVjb3JkPG51bWJlciwgYm9vbGVhbj4gPSB0aGlzLmh0dHAubWFwQnJhbmNoUmVzdWx0KHYpXHJcbiAgICAgICAgICAgIGNvbnN0IGxvYWRlZCA9IE9iamVjdC5lbnRyaWVzKHJlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4ge2lkOiBOdW1iZXIoa2V5KSwgdmFsdWV9XHJcbiAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICByZXR1cm4gWy4uLnJlc29sdmVkLCAuLi5sb2FkZWRdXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWlkcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIG9mKFtdKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB1c2VyJC5waXBlKFxyXG4gICAgICB0YWtlKDEpLFxyXG4gICAgICBtZXJnZU1hcChzZWxmID0+IHtcclxuICAgICAgICBpZiAoIXNlbGYpIHtcclxuICAgICAgICAgIC8vINCh0YLRgNCw0YXQvtCy0L7Rh9C90LDRjyDQstC10YLQutCwOiDQtdGB0LvQuCB1c2VyLmN1cnJlbnQg0L3QtSDQstC10YDQvdGD0LvRgdGPLCBnZXRhY2Nlc3Mg0LLRi9C30LLQsNGC0Ywg0L3QtdC70YzQt9GPLlxyXG4gICAgICAgICAgcmV0dXJuIGxvYWRNaXNzaW5nQnlBY3Rpb25BbGxvd2VkKGlkcywgW10pXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDQntGB0L3QvtCy0L3QvtC5INC/0YPRgtGMOiDQvtC00L3QuNC8IGJhdGNoLdC30LDQv9GA0L7RgdC+0Lwg0L/QvtC70YPRh9Cw0LXQvCDQv9GA0LDQstCwIEVMQVBTRURUSU1FLkFERCDQv9C+INCy0YHQtdC8INC30LDQtNCw0YfQsNC8LlxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuYnJhbmNoPGlCWFJlc3RQYXJhbVRhc2tHZXRBY2Nlc3MsIGlCWFJlc3RUYXNrR2V0QWNjZXNzPihcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oe30sIC4uLmlkcy5tYXAoaWQgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIFtpZF06IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuaHR0cC5nZXROYW1lTWV0aG9kKFskdGFza3MsICR0YXNrLCAkZ2V0YWNjZXNzXSksXHJcbiAgICAgICAgICAgICAgICBwYXJhbToge1xyXG4gICAgICAgICAgICAgICAgICBpZCxcclxuICAgICAgICAgICAgICAgICAgdXNlcnM6IFtzZWxmLklEXVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSkpXHJcbiAgICAgICAgKS5waXBlKFxyXG4gICAgICAgICAgbWVyZ2VNYXAodiA9PiB7XHJcbiAgICAgICAgICAgIGlmICh2ICYmIHYubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcmVzID0gdGhpcy5odHRwLm1hcEJyYW5jaFJlc3VsdDxpQlhSZXN0VGFza0dldEFjY2Vzcz4odilcclxuICAgICAgICAgICAgICBjb25zdCBwZXJtaXNzaW9ucyA9IGlkcy5tYXAoaWQgPT4gKHtcclxuICAgICAgICAgICAgICAgIGlkLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHJlc1tpZF0/LmFsbG93ZWRBY3Rpb25zPy5bc2VsZi5JRF0/LlsnRUxBUFNFRFRJTUUuQUREJ11cclxuICAgICAgICAgICAgICB9KSlcclxuXHJcbiAgICAgICAgICAgICAgLy8gZ2V0YWNjZXNzINC80L7QttC10YIg0LLQtdGA0L3Rg9GC0YwgdHJ1ZSDQuNC70LggZmFsc2UgLSDQvtCx0LAg0LfQvdCw0YfQtdC90LjRjyDRgdGH0LjRgtCw0LXQvCDQs9C+0YLQvtCy0YvQvCDQvtGC0LLQtdGC0L7QvC5cclxuICAgICAgICAgICAgICAvLyDQkiDRgdGC0LDRgNGL0LkgaXNhY3Rpb25hbGxvd2VkINC+0YLQv9GA0LDQstC70Y/QtdC8INGC0L7Qu9GM0LrQviDQt9Cw0LTQsNGH0Lgg0LHQtdC3INGP0LLQvdC+0LPQviBFTEFQU0VEVElNRS5BREQuXHJcbiAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBwZXJtaXNzaW9ucy5maWx0ZXIoaSA9PiBpLnZhbHVlICE9PSB1bmRlZmluZWQpIGFzIHsgaWQ6IG51bWJlciwgdmFsdWU6IGJvb2xlYW4gfVtdXHJcbiAgICAgICAgICAgICAgY29uc3QgbWlzc2luZ0lkcyA9IHBlcm1pc3Npb25zLmZpbHRlcihpID0+IGkudmFsdWUgPT09IHVuZGVmaW5lZCkubWFwKGkgPT4gaS5pZClcclxuXHJcbiAgICAgICAgICAgICAgaWYgKG1pc3NpbmdJZHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9hZE1pc3NpbmdCeUFjdGlvbkFsbG93ZWQobWlzc2luZ0lkcywgcmVzb2x2ZWQpXHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICByZXR1cm4gb2YocGVybWlzc2lvbnMpXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vINCV0YHQu9C4IGJhdGNoIGdldGFjY2VzcyDQvdC1INCy0LXRgNC90YPQu9GB0Y8sINGB0L7RhdGA0LDQvdGP0LXQvCDQv9C+0LLQtdC00LXQvdC40LUg0YHRgtCw0YDQvtCz0L4gZmFsbGJhY2suXHJcbiAgICAgICAgICAgIHJldHVybiBsb2FkTWlzc2luZ0J5QWN0aW9uQWxsb3dlZChpZHMsIFtdKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqINCf0YDQvtCy0LXRgNC60LAg0L3QsCDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC00L7QsdCw0LLQu9C10L3QuNC1INC30LDQv9C40YHQuCDRgtGA0LXQutCwINCyINGC0LDRgdC60YNcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZFRhc2tcclxuICAgKiBAcGFyYW0gdXNlckN1cnJlbnRcclxuICAgKi9cclxuICBjaGVja1Blcm1pc3Npb25BZGRFbGFwc2VkVGltZVRvVGFzayhpZFRhc2s6IG51bWJlciwgdXNlckN1cnJlbnQ6IGlCWFJlc3RVc2VyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gKCh1c2VyQ3VycmVudCkgPyBvZih1c2VyQ3VycmVudCkgOiB0aGlzLkJYUmVzdE5hdnZ5VXNlci5jdXJyZW50KCkucmVzKCkpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKHNlbGYgPT4ge1xyXG4gICAgICAgIGlmIChzZWxmKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eVRhc2tzLnRhc2suZ2V0QWNjZXNzKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaWQ6IGlkVGFzayxcclxuICAgICAgICAgICAgICB1c2VyczogW3NlbGYuSURdXHJcbiAgICAgICAgICAgIH0pLnJlcygpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gKHYgJiYgdltzZWxmLklEXSkgPyB2W3NlbGYuSURdWydFTEFQU0VEVElNRS5BREQnXSA6IGZhbHNlXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0J/RgNC+0LLQtdGA0LrQsCDQvdCwINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0L/RgNC+0YfRgtC10L3QuNGPINGC0LDQutGB0LrQuFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkVGFza1xyXG4gICAqIEBwYXJhbSB1c2VyQ3VycmVudFxyXG4gICAqL1xyXG4gIGNoZWNrUGVybWlzc2lvblJlYWRUYXNrKGlkVGFzazogbnVtYmVyLCB1c2VyQ3VycmVudDogaUJYUmVzdFVzZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpIHtcclxuICAgIHJldHVybiAoKHVzZXJDdXJyZW50KSA/IG9mKHVzZXJDdXJyZW50KSA6IHRoaXMuQlhSZXN0TmF2dnlVc2VyLmN1cnJlbnQoKS5yZXMoKSkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoc2VsZiA9PiB7XHJcbiAgICAgICAgaWYgKHNlbGYpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5VGFza3MudGFzay5nZXRBY2Nlc3MoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBpZDogaWRUYXNrLFxyXG4gICAgICAgICAgICAgIHVzZXJzOiBbc2VsZi5JRF1cclxuICAgICAgICAgICAgfSkucmVzKCkucGlwZShcclxuICAgICAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiAodiAmJiB2W3NlbGYuSURdKSA/ICEhdltzZWxmLklEXSA6IGZhbHNlIC8vINC+0YLQtNC10LvRjNC90L7Qs9C+INGE0LvQsNCz0LAg0L3QsCDRh9GC0LXQvdC40LUg0L3QtdGCLCDQstGL0YXQvtC00LjRgiDRh9GC0L4g0LXRgdC70Lgg0L/RgNCw0LLQsCDQvtGC0LTQsNC70LjRgdGMINGC0L4g0Lgg0L/RgNCw0LLQsCDQtdGB0YLRjFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCX0LDQutC+0L3Rh9C10L3QvdGL0Lkg0LzQtdGC0L7QtCDQtNC+0LHQsNCy0LvQtdC90LjRjyDQt9Cw0L/QuNGB0Lgg0YEg0L/RgNC10LTQstCw0YDQuNGC0LXQu9GM0L3QvtC5INC/0YDQvtCy0LXRgNC60L7QuSDQv9GA0LDQslxyXG4gICAqXHJcbiAgICogVE9ETzog0LTQvtCx0LDQstC40YLRjCDRgdC+0YXRgNCw0L3QtdC90LjQtSDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+INC/0YDQvtCy0LXRgNC10L3QvdGL0YUg0LfQsNC/0LjRgdC10LlcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBhZGQocGFyYW06IGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja1Blcm1pc3Npb25SZWFkVGFzayhwYXJhbS5UQVNLSUQpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKGFsbG93ZWRSZWFkVGFzayA9PiB7XHJcbiAgICAgICAgaWYgKGFsbG93ZWRSZWFkVGFzaykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tQZXJtaXNzaW9uQWRkRWxhcHNlZFRpbWVUb1Rhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0TmF2dnlFbGFwc2VkSXRlbS5hZGQocGFyYW0pLnJlcygpXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC90LAg0LTQvtCx0LDQstC70LXQvdC40LUg0LfQsNC/0LjRgdC4INC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCcpKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC90LAg0YfRgtC10L3QuNC1INC30LDQtNCw0YfQuCcpKVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQl9Cw0LrQvtC90YfQtdC90L3Ri9C5INC80LXRgtC+0LQg0L7QsdC90L7QstC70LXQvdC40Y8g0LfQsNC/0LjRgdC4INGBINC/0YDQtdC00LLQsNGA0LjRgtC10LvRjNC90L7QuSDQv9GA0L7QstC10YDQutC+0Lkg0L/RgNCw0LJcclxuICAgKlxyXG4gICAqIFRPRE86INC00L7QsdCw0LLQuNGC0Ywg0YHQvtGF0YDQsNC90LXQvdC40LUg0L/RgNC10LTQstCw0YDQuNGC0LXQu9GM0L3QviDQv9GA0L7QstC10YDQtdC90L3Ri9GFINC30LDQv9C40YHQtdC5XHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgdXBkYXRlKHBhcmFtOiBpQlhSZXN0UGFyYW1VcGRhdGVFbGFwc2VkaXRlbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCgoYWxsb3dlZFJlYWRUYXNrKSA9PiB7XHJcbiAgICAgICAgaWYgKGFsbG93ZWRSZWFkVGFzaykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaXNBbGxvd2VkTW9kaWZ5KHBhcmFtLlRBU0tJRCwgcGFyYW0uSVRFTUlEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0TmF2dnlFbGFwc2VkSXRlbS51cGRhdGUocGFyYW0pLnJlcygpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC90LAg0LjQt9C80LXQvdC10L3QuNC1INC30LDQv9C40YHQuCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LgnKSlcclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC90LAg0YfRgtC10L3QuNC1INC30LDQtNCw0YfQuCcpKVxyXG4gICAgICB9KSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCf0YDQvtCy0LXRgNGP0LXRgiDQv9GA0LDQstC+INC90LAg0LjQt9C80LXQvdC10L3QuNC1INC30LDQv9C40YHQuCDQviDQt9Cw0YLRgNCw0YfQtdC90L3QvtC8INCy0YDQtdC80LXQvdC4LlxyXG4gICAqL1xyXG4gIGlzQWxsb3dlZE1vZGlmeShpZFRhc2s6IG51bWJlciwgaWRJdGVtOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0uaXNBY3Rpb25BbGxvd2VkKHtcclxuICAgICAgVEFTS0lEOiBpZFRhc2ssXHJcbiAgICAgIElURU1JRDogaWRJdGVtLFxyXG4gICAgICBBQ1RJT05JRDogMlxyXG4gICAgfSkucmVzKClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGlzQWN0aW9uQWxsb3dlZCDRgSDRhNC40LrRgdC+0Lwg0L3QsCDQv9GA0L7QstC10YDQutGDINCy0L7Qt9C80L7QttC90L7RgdGC0Lgg0YfRgtC10L3QuNGPINC30LDQtNCw0YfQuCDQt9Cw0L/QuNGB0LhcclxuICAgKiAo0LHQtdC3INC/0YDQvtCy0LXRgNC60Lgg0LTQsNGR0YIg0L7RiNC40LHQutGDKVxyXG4gICAqXHJcbiAgICogaWRBY3Rpb246XHJcbiAgICogMSAtIEFDVElPTl9FTEFQU0VEX1RJTUVfQUREXHJcbiAgICogMiAtIEFDVElPTl9FTEFQU0VEX1RJTUVfTU9ESUZZXHJcbiAgICogMyAtIEFDVElPTl9FTEFQU0VEX1RJTUVfUkVNT1ZFXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgaXNBY3Rpb25BbGxvd2VkKHBhcmFtOiBpSXNBY3Rpb25BbGxvd2VkUGFyYW0pIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrUGVybWlzc2lvblJlYWRUYXNrKHBhcmFtLlRBU0tJRCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoY2FuUmVhZCA9PiB7XHJcbiAgICAgICAgaWYgKGNhblJlYWQpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0uaXNBY3Rpb25BbGxvd2VkKHBhcmFtKS5yZXMoKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiDQn9C+0LvQvdC+0YbQtdC90L3Ri9C5INC80LXRgtC+0LQg0YPQtNCw0LvQtdC90LjRj1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgZGVsKHBhcmFtOiBpQlhSZXN0UGFyYW1EZWxFbGFwc2VkaXRlbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChhbGxvd2VkUmVhZFRhc2sgPT4ge1xyXG4gICAgICAgIGlmIChhbGxvd2VkUmVhZFRhc2spIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmlzQWxsb3dlZFJlbW92ZShwYXJhbS5UQVNLSUQsIHBhcmFtLklURU1JRCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoYWxsb3dlZCA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGFsbG93ZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0uZGVsZXRlKHBhcmFtKS5yZXMoKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGD0LTQsNC70LXQvdC40LUg0LfQsNC/0LjRgdC4INC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCcpKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC90LAg0YfRgtC10L3QuNC1INC30LDQtNCw0YfQuCcpKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCf0YDQvtCy0LXRgNGP0LXRgiDQv9GA0LDQstC+INC90LAg0YPQtNCw0LvQtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0L4g0LfQsNGC0YDQsNGH0LXQvdC90L7QvCDQstGA0LXQvNC10L3QuC5cclxuICAgKi9cclxuICBwcml2YXRlIGlzQWxsb3dlZFJlbW92ZShpZFRhc2s6IG51bWJlciwgaWRJdGVtOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmlzQWN0aW9uQWxsb3dlZChcclxuICAgICAge1xyXG4gICAgICAgIFRBU0tJRDogaWRUYXNrLFxyXG4gICAgICAgIElURU1JRDogaWRJdGVtLFxyXG4gICAgICAgIEFDVElPTklEOiAzXHJcbiAgICAgIH0pXHJcbiAgfVxyXG59XHJcbiJdfQ==
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svb3BlcmF0aW9uL2VsYXBzZWRpdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3ZILE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDMUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzlDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBSXhFLE1BQU0sT0FBTywrQkFBK0I7SUFPMUMsWUFBb0Isc0JBQThDO1FBQTlDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFMakQsU0FBSSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUE7UUFDM0IsYUFBUSxHQUFHLElBQUksOEJBQThCLEVBQUUsQ0FBQTtRQUMvQyxvQkFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUE7UUFDdkMscUJBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFBO0lBRzFELENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxRQUFrQixFQUFFLFNBQWUsRUFBRSxPQUFhO1FBQzlELE1BQU0sS0FB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S0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUMxRCxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ2pCLElBQUksT0FBTyxFQUFFLENBQUM7d0JBQ1osT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFBO29CQUN4RCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQyxDQUFBO29CQUN2RixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDUCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFBO1lBQ3RFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZUFBZSxDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQ3BELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FDekI7WUFDRSxNQUFNLEVBQUUsTUFBTTtZQUNkLE1BQU0sRUFBRSxNQUFNO1lBQ2QsUUFBUSxFQUFFLENBQUM7U0FDWixDQUFDLENBQUE7SUFDTixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0LFxyXG4gIGlCWFJlc3RUYXNrRWxhcHNlZEl0ZW1IdHRwLFxyXG4gIGlCWFJlc3RQYXJhbVRhc2tHZXRBY2Nlc3MsXHJcbiAgaUJYUmVzdFRhc2tHZXRBY2Nlc3MsXHJcbiAgaUlzQWN0aW9uQWxsb3dlZFBhcmFtLFxyXG4gIGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtLFxyXG4gIGlCWFJlc3RQYXJhbVVwZGF0ZUVsYXBzZWRpdGVtLFxyXG4gIGlCWFJlc3RQYXJhbURlbEVsYXBzZWRpdGVtXHJcbn0gZnJvbSAnLi4vLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzaydcclxuaW1wb3J0IHsgSHR0cEJYU2VydmljZXMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odHRwL0h0dHBCWCdcclxuaW1wb3J0IHsgJGVsYXBzZWRpdGVtLCAkZ2V0YWNjZXNzLCAkZ2V0bGlzdCwgJGlzYWN0aW9uYWxsb3dlZCwgJHRhc2ssICR0YXNrcyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0aG9kcydcclxuaW1wb3J0IHsgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IEJYUmVzdE1hcFRhc2tFbGFwc2VkSXRlbSB9IGZyb20gJy4uLy4uLy4uL21hcC90YXNrL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBtZXJnZU1hcCwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVVzZXIgfSBmcm9tICcuLi8uLi91c2VyJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVRhc2tzIH0gZnJvbSAnLi4vLi4vdGFza3MnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RGVsZWdhdGVFbGFwc2VkSXRlbSB9IGZyb20gJy4uL2RlbGVnYXRlL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBpQlhSZXN0VXNlciB9IGZyb20gJy4uLy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXInXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0gfSBmcm9tICcuLi9lbGFwc2VkaXRlbSdcclxuXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eU9wZXJhdGlvbkVsYXBzZWRJdGVtIHtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gbmV3IEh0dHBCWFNlcnZpY2VzKClcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlbGVnYXRlID0gbmV3IEJYUmVzdE5hdnZ5RGVsZWdhdGVFbGFwc2VkSXRlbSgpXHJcbiAgcHJpdmF0ZSByZWFkb25seSBCWFJlc3ROYXZ2eVVzZXIgPSBuZXcgQlhSZXN0TmF2dnlVc2VyKClcclxuICBwcml2YXRlIHJlYWRvbmx5IEJYUmVzdE5hdnZ5VGFza3MgPSBuZXcgQlhSZXN0TmF2dnlUYXNrcygpXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgQlhSZXN0TmF2dnlFbGFwc2VkSXRlbTogQlhSZXN0TmF2dnlFbGFwc2VkSXRlbSkge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LfQsNC/0LjRgdC4INC+INC30LDRgtGA0LDRh9C10L3QvdC+0Lwg0LLRgNC10LzQtdC90Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10Lkg0LfQsCDQv9C10YDQuNC+0LQuXHJcbiAgICovXHJcbiAgZ2V0QnlJbnRlcnZhbChpZHNVc2VyczogbnVtYmVyW10sIGRhdGVTdGFydDogRGF0ZSwgZGF0ZUVuZDogRGF0ZSkge1xyXG4gICAgY29uc3QgcGFyYW06IGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0ID0ge1xyXG4gICAgICBPUkRFUjoge1xyXG4gICAgICAgIElEOiAnREVTQydcclxuICAgICAgfSxcclxuICAgICAgRklMVEVSOiB7XHJcbiAgICAgICAgVVNFUl9JRDogaWRzVXNlcnMsXHJcbiAgICAgICAgJz49Q1JFQVRFRF9EQVRFJzogZGF0ZVN0YXJ0LnRvTG9jYWxlU3RyaW5nKCdydS1SdScsIHtcclxuICAgICAgICAgIHRpbWVab25lTmFtZTogJ3Nob3J0J1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgICc8PUNSRUFURURfREFURSc6IGRhdGVFbmQudG9Mb2NhbGVTdHJpbmcoJ3J1LVJ1Jywge1xyXG4gICAgICAgICAgdGltZVpvbmVOYW1lOiAnc2hvcnQnXHJcbiAgICAgICAgfSksXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmRlbGVnYXRlLmdldExpc3QocGFyYW0pXHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiDQodC00LXQu9Cw0YLRjCDQvdC+0YDQvNCw0LvRjNC90L5cclxuICAvKipcclxuICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC/0LjRgdC+0Log0LfQsNC/0LjRgdC10Lkg0L4g0LfQsNGC0YDQsNGH0LXQvdC90L7QvCDQstGA0LXQvNC10L3QuCDQv9C+INC30LDQtNCw0YfQtS5cclxuICAgKi9cclxuICBnZXRMaXN0QnlJRFRhc2soaWRzOiBudW1iZXJbXSkge1xyXG4gICAgLy8g0J/Rg9GB0YLQvtC5IGJhdGNoINC30LDQstC10YDRiNCw0LXRgtGB0Y8g0LHQtdC3INC30L3QsNGH0LXQvdC40Y8sINC4INCy0YvQt9GL0LLQsNGO0YnQuNC5INC60L7QtCDQv9C+0LvRg9GH0LjQuyDQsdGLIEVtcHR5RXJyb3JcclxuICAgIGlmICghaWRzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gb2YoW10pXHJcbiAgICB9XHJcbiAgICAvLyDQoNCw0LHQvtGC0LDQtdGCINGC0L7Qu9GM0LrQviDQv9C+0YLQvtC80YMg0YfRgtC+IFwiblBhZ2VTaXplOiA5OTk5OVwiXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmJyYW5jaDxpQlhSZXN0UGFyYW1FbGFwc2VkaXRlbUdldCwgaUJYUmVzdFRhc2tFbGFwc2VkSXRlbUh0dHA+XHJcbiAgICAoXHJcbiAgICAgIGlkcy5tYXAoaSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIG5hbWU6IHRoaXMuaHR0cC5nZXROYW1lTWV0aG9kKFskdGFzaywgJGVsYXBzZWRpdGVtLCAkZ2V0bGlzdF0pLFxyXG4gICAgICAgICAgcGFyYW06IHtcclxuICAgICAgICAgICAgVEFTS0lEOiBpLFxyXG4gICAgICAgICAgICBQQVJBTVM6IHtcclxuICAgICAgICAgICAgICBOQVZfUEFSQU1TOiB7XHJcbiAgICAgICAgICAgICAgICBuUGFnZVNpemU6IDk5OTk5LFxyXG4gICAgICAgICAgICAgICAgaU51bVBhZ2U6IDFcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICBpZiAodiAmJiB2Lmxlbmd0aCkge1xyXG4gICAgICAgICAgY29uc3QgcmVzID0gdGhpcy5odHRwLm1hcEJyYW5jaFJlc3VsdFdpdGhvdXRLZXkodilcclxuICAgICAgICAgIHJldHVybiBCWFJlc3RNYXBUYXNrRWxhcHNlZEl0ZW0uZ2V0TGlzdChyZXMpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCf0YDQvtCy0LXRgNGP0LXRgiDQv9GA0LDQstC+INC90LAg0LTQvtCx0LDQstC70LXQvdC40LUg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4INGB0YDQsNC30YMg0L/QviDQvdC10YHQutC+0LvRjNC60LjQvCDQt9Cw0LTQsNGH0LDQvC5cclxuICAgKi9cclxuICBjaGVja1Blcm1pc3Npb25BZGRFbGFwc2VkVGltZVRvVGFza0Fycih0YXNrczogbnVtYmVyW10sIHVzZXJDdXJyZW50OiBpQlhSZXN0VXNlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCkge1xyXG4gICAgLy8g0KPQsdC40YDQsNC10Lwg0LTRg9Cx0LvQuCwg0YfRgtC+0LHRiyDQvdC1INC/0YDQvtCy0LXRgNGP0YLRjCDQv9GA0LDQstCwINC/0L4g0L7QtNC90L7QuSDQt9Cw0LTQsNGH0LUg0L3QtdGB0LrQvtC70YzQutC+INGA0LDQty5cclxuICAgIGNvbnN0IGlkcyA9IFsuLi5uZXcgU2V0KHRhc2tzLmZpbHRlcihpID0+ICEhaSkpXVxyXG4gICAgLy8g0JXRgdC70Lgg0YLQtdC60YPRidC40Lkg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GMINC90LUg0L/QtdGA0LXQtNCw0L0g0YHQvdCw0YDRg9C20LgsINC30LDQv9GA0LDRiNC40LLQsNC10Lwg0LXQs9C+INC+0LTQuNC9INGA0LDQtyDQvdCwINCy0LXRgdGMINC90LDQsdC+0YAg0LfQsNC00LDRhy5cclxuICAgIGNvbnN0IHVzZXIkID0gdXNlckN1cnJlbnQgPyBvZih1c2VyQ3VycmVudCkgOiB0aGlzLkJYUmVzdE5hdnZ5VXNlci5jdXJyZW50KCkucmVzKClcclxuXHJcbiAgICAvLyDQodGC0LDRgNGL0LkgYmF0Y2gg0YfQtdGA0LXQtyB0YXNrLmVsYXBzZWRpdGVtLmlzYWN0aW9uYWxsb3dlZC5cclxuICAgIC8vINCS0YvQt9GL0LLQsNC10Lwg0LXQs9C+INC90LjQttC1INGC0L7Qu9GM0LrQviDQtNC70Y8g0LfQsNC00LDRhywg0L/QviDQutC+0YLQvtGA0YvQvCBnZXRhY2Nlc3Mg0L3QtSDQstC10YDQvdGD0LsgRUxBUFNFRFRJTUUuQURELlxyXG4gICAgY29uc3QgbG9hZE1pc3NpbmdCeUFjdGlvbkFsbG93ZWQgPSAobWlzc2luZ0lkczogbnVtYmVyW10sIHJlc29sdmVkOiB7IGlkOiBudW1iZXIsIHZhbHVlOiBib29sZWFuIH1bXSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmJyYW5jaDxpSXNBY3Rpb25BbGxvd2VkUGFyYW0sIGJvb2xlYW4+KFxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIC4uLm1pc3NpbmdJZHMubWFwKGkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgW2ldOiB7XHJcbiAgICAgICAgICAgICAgbmFtZTogdGhpcy5odHRwLmdldE5hbWVNZXRob2QoWyR0YXNrLCAkZWxhcHNlZGl0ZW0sICRpc2FjdGlvbmFsbG93ZWRdKSxcclxuICAgICAgICAgICAgICBwYXJhbToge1xyXG4gICAgICAgICAgICAgICAgVEFTS0lEOiBpLFxyXG4gICAgICAgICAgICAgICAgSVRFTUlEOiAxLFxyXG4gICAgICAgICAgICAgICAgQUNUSU9OSUQ6IDFcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICAgICAgKS5waXBlKFxyXG4gICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgIGlmICh2ICYmIHYubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlczogUmVjb3JkPG51bWJlciwgYm9vbGVhbj4gPSB0aGlzLmh0dHAubWFwQnJhbmNoUmVzdWx0KHYpXHJcbiAgICAgICAgICAgIGNvbnN0IGxvYWRlZCA9IE9iamVjdC5lbnRyaWVzKHJlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4ge2lkOiBOdW1iZXIoa2V5KSwgdmFsdWV9XHJcbiAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICByZXR1cm4gWy4uLnJlc29sdmVkLCAuLi5sb2FkZWRdXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWlkcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIG9mKFtdKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB1c2VyJC5waXBlKFxyXG4gICAgICB0YWtlKDEpLFxyXG4gICAgICBtZXJnZU1hcChzZWxmID0+IHtcclxuICAgICAgICBpZiAoIXNlbGYpIHtcclxuICAgICAgICAgIC8vINCh0YLRgNCw0YXQvtCy0L7Rh9C90LDRjyDQstC10YLQutCwOiDQtdGB0LvQuCB1c2VyLmN1cnJlbnQg0L3QtSDQstC10YDQvdGD0LvRgdGPLCBnZXRhY2Nlc3Mg0LLRi9C30LLQsNGC0Ywg0L3QtdC70YzQt9GPLlxyXG4gICAgICAgICAgcmV0dXJuIGxvYWRNaXNzaW5nQnlBY3Rpb25BbGxvd2VkKGlkcywgW10pXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDQntGB0L3QvtCy0L3QvtC5INC/0YPRgtGMOiDQvtC00L3QuNC8IGJhdGNoLdC30LDQv9GA0L7RgdC+0Lwg0L/QvtC70YPRh9Cw0LXQvCDQv9GA0LDQstCwIEVMQVBTRURUSU1FLkFERCDQv9C+INCy0YHQtdC8INC30LDQtNCw0YfQsNC8LlxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuYnJhbmNoPGlCWFJlc3RQYXJhbVRhc2tHZXRBY2Nlc3MsIGlCWFJlc3RUYXNrR2V0QWNjZXNzPihcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oe30sIC4uLmlkcy5tYXAoaWQgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIFtpZF06IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuaHR0cC5nZXROYW1lTWV0aG9kKFskdGFza3MsICR0YXNrLCAkZ2V0YWNjZXNzXSksXHJcbiAgICAgICAgICAgICAgICBwYXJhbToge1xyXG4gICAgICAgICAgICAgICAgICBpZCxcclxuICAgICAgICAgICAgICAgICAgdXNlcnM6IFtzZWxmLklEXVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSkpXHJcbiAgICAgICAgKS5waXBlKFxyXG4gICAgICAgICAgbWVyZ2VNYXAodiA9PiB7XHJcbiAgICAgICAgICAgIGlmICh2ICYmIHYubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcmVzID0gdGhpcy5odHRwLm1hcEJyYW5jaFJlc3VsdDxpQlhSZXN0VGFza0dldEFjY2Vzcz4odilcclxuICAgICAgICAgICAgICBjb25zdCBwZXJtaXNzaW9ucyA9IGlkcy5tYXAoaWQgPT4gKHtcclxuICAgICAgICAgICAgICAgIGlkLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHJlc1tpZF0/LmFsbG93ZWRBY3Rpb25zPy5bc2VsZi5JRF0/LlsnRUxBUFNFRFRJTUUuQUREJ11cclxuICAgICAgICAgICAgICB9KSlcclxuXHJcbiAgICAgICAgICAgICAgLy8gZ2V0YWNjZXNzINC80L7QttC10YIg0LLQtdGA0L3Rg9GC0YwgdHJ1ZSDQuNC70LggZmFsc2UgLSDQvtCx0LAg0LfQvdCw0YfQtdC90LjRjyDRgdGH0LjRgtCw0LXQvCDQs9C+0YLQvtCy0YvQvCDQvtGC0LLQtdGC0L7QvC5cclxuICAgICAgICAgICAgICAvLyDQkiDRgdGC0LDRgNGL0LkgaXNhY3Rpb25hbGxvd2VkINC+0YLQv9GA0LDQstC70Y/QtdC8INGC0L7Qu9GM0LrQviDQt9Cw0LTQsNGH0Lgg0LHQtdC3INGP0LLQvdC+0LPQviBFTEFQU0VEVElNRS5BREQuXHJcbiAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBwZXJtaXNzaW9ucy5maWx0ZXIoaSA9PiBpLnZhbHVlICE9PSB1bmRlZmluZWQpIGFzIHsgaWQ6IG51bWJlciwgdmFsdWU6IGJvb2xlYW4gfVtdXHJcbiAgICAgICAgICAgICAgY29uc3QgbWlzc2luZ0lkcyA9IHBlcm1pc3Npb25zLmZpbHRlcihpID0+IGkudmFsdWUgPT09IHVuZGVmaW5lZCkubWFwKGkgPT4gaS5pZClcclxuXHJcbiAgICAgICAgICAgICAgaWYgKG1pc3NpbmdJZHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9hZE1pc3NpbmdCeUFjdGlvbkFsbG93ZWQobWlzc2luZ0lkcywgcmVzb2x2ZWQpXHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICByZXR1cm4gb2YocGVybWlzc2lvbnMpXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vINCV0YHQu9C4IGJhdGNoIGdldGFjY2VzcyDQvdC1INCy0LXRgNC90YPQu9GB0Y8sINGB0L7RhdGA0LDQvdGP0LXQvCDQv9C+0LLQtdC00LXQvdC40LUg0YHRgtCw0YDQvtCz0L4gZmFsbGJhY2suXHJcbiAgICAgICAgICAgIHJldHVybiBsb2FkTWlzc2luZ0J5QWN0aW9uQWxsb3dlZChpZHMsIFtdKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqINCf0YDQvtCy0LXRgNC60LAg0L3QsCDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC00L7QsdCw0LLQu9C10L3QuNC1INC30LDQv9C40YHQuCDRgtGA0LXQutCwINCyINGC0LDRgdC60YNcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZFRhc2tcclxuICAgKiBAcGFyYW0gdXNlckN1cnJlbnRcclxuICAgKi9cclxuICBjaGVja1Blcm1pc3Npb25BZGRFbGFwc2VkVGltZVRvVGFzayhpZFRhc2s6IG51bWJlciwgdXNlckN1cnJlbnQ6IGlCWFJlc3RVc2VyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gKCh1c2VyQ3VycmVudCkgPyBvZih1c2VyQ3VycmVudCkgOiB0aGlzLkJYUmVzdE5hdnZ5VXNlci5jdXJyZW50KCkucmVzKCkpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKHNlbGYgPT4ge1xyXG4gICAgICAgIGlmIChzZWxmKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eVRhc2tzLnRhc2suZ2V0QWNjZXNzKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaWQ6IGlkVGFzayxcclxuICAgICAgICAgICAgICB1c2VyczogW3NlbGYuSURdXHJcbiAgICAgICAgICAgIH0pLnJlcygpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gKHYgJiYgdltzZWxmLklEXSkgPyB2W3NlbGYuSURdWydFTEFQU0VEVElNRS5BREQnXSA6IGZhbHNlXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0J/RgNC+0LLQtdGA0LrQsCDQvdCwINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0L/RgNC+0YfRgtC10L3QuNGPINGC0LDQutGB0LrQuFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkVGFza1xyXG4gICAqIEBwYXJhbSB1c2VyQ3VycmVudFxyXG4gICAqL1xyXG4gIGNoZWNrUGVybWlzc2lvblJlYWRUYXNrKGlkVGFzazogbnVtYmVyLCB1c2VyQ3VycmVudDogaUJYUmVzdFVzZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpIHtcclxuICAgIHJldHVybiAoKHVzZXJDdXJyZW50KSA/IG9mKHVzZXJDdXJyZW50KSA6IHRoaXMuQlhSZXN0TmF2dnlVc2VyLmN1cnJlbnQoKS5yZXMoKSkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoc2VsZiA9PiB7XHJcbiAgICAgICAgaWYgKHNlbGYpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5VGFza3MudGFzay5nZXRBY2Nlc3MoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBpZDogaWRUYXNrLFxyXG4gICAgICAgICAgICAgIHVzZXJzOiBbc2VsZi5JRF1cclxuICAgICAgICAgICAgfSkucmVzKCkucGlwZShcclxuICAgICAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiAodiAmJiB2W3NlbGYuSURdKSA/ICEhdltzZWxmLklEXSA6IGZhbHNlIC8vINC+0YLQtNC10LvRjNC90L7Qs9C+INGE0LvQsNCz0LAg0L3QsCDRh9GC0LXQvdC40LUg0L3QtdGCLCDQstGL0YXQvtC00LjRgiDRh9GC0L4g0LXRgdC70Lgg0L/RgNCw0LLQsCDQvtGC0LTQsNC70LjRgdGMINGC0L4g0Lgg0L/RgNCw0LLQsCDQtdGB0YLRjFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCX0LDQutC+0L3Rh9C10L3QvdGL0Lkg0LzQtdGC0L7QtCDQtNC+0LHQsNCy0LvQtdC90LjRjyDQt9Cw0L/QuNGB0Lgg0YEg0L/RgNC10LTQstCw0YDQuNGC0LXQu9GM0L3QvtC5INC/0YDQvtCy0LXRgNC60L7QuSDQv9GA0LDQslxyXG4gICAqXHJcbiAgICogVE9ETzog0LTQvtCx0LDQstC40YLRjCDRgdC+0YXRgNCw0L3QtdC90LjQtSDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+INC/0YDQvtCy0LXRgNC10L3QvdGL0YUg0LfQsNC/0LjRgdC10LlcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBhZGQocGFyYW06IGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja1Blcm1pc3Npb25SZWFkVGFzayhwYXJhbS5UQVNLSUQpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKGFsbG93ZWRSZWFkVGFzayA9PiB7XHJcbiAgICAgICAgaWYgKGFsbG93ZWRSZWFkVGFzaykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tQZXJtaXNzaW9uQWRkRWxhcHNlZFRpbWVUb1Rhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0TmF2dnlFbGFwc2VkSXRlbS5hZGQocGFyYW0pLnJlcygpXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTm8gcGVybWlzc2lvbiB0byBhZGQgYW4gZWxhcHNlZCB0aW1lIHJlY29yZCB0byB0aGUgdGFzaycpKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTm8gcGVybWlzc2lvbiB0byByZWFkIHRoZSB0YXNrJykpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCX0LDQutC+0L3Rh9C10L3QvdGL0Lkg0LzQtdGC0L7QtCDQvtCx0L3QvtCy0LvQtdC90LjRjyDQt9Cw0L/QuNGB0Lgg0YEg0L/RgNC10LTQstCw0YDQuNGC0LXQu9GM0L3QvtC5INC/0YDQvtCy0LXRgNC60L7QuSDQv9GA0LDQslxyXG4gICAqXHJcbiAgICogVE9ETzog0LTQvtCx0LDQstC40YLRjCDRgdC+0YXRgNCw0L3QtdC90LjQtSDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+INC/0YDQvtCy0LXRgNC10L3QvdGL0YUg0LfQsNC/0LjRgdC10LlcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICB1cGRhdGUocGFyYW06IGlCWFJlc3RQYXJhbVVwZGF0ZUVsYXBzZWRpdGVtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja1Blcm1pc3Npb25SZWFkVGFzayhwYXJhbS5UQVNLSUQpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKChhbGxvd2VkUmVhZFRhc2spID0+IHtcclxuICAgICAgICBpZiAoYWxsb3dlZFJlYWRUYXNrKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5pc0FsbG93ZWRNb2RpZnkocGFyYW0uVEFTS0lELCBwYXJhbS5JVEVNSUQpLnBpcGUoXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKGFsbG93ZWQgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChhbGxvd2VkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eUVsYXBzZWRJdGVtLnVwZGF0ZShwYXJhbSkucmVzKClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdObyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSB0aGUgZWxhcHNlZCB0aW1lIHJlY29yZCcpKVxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdObyBwZXJtaXNzaW9uIHRvIHJlYWQgdGhlIHRhc2snKSlcclxuICAgICAgfSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQn9GA0L7QstC10YDRj9C10YIg0L/RgNCw0LLQviDQvdCwINC40LfQvNC10L3QtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0L4g0LfQsNGC0YDQsNGH0LXQvdC90L7QvCDQstGA0LXQvNC10L3QuC5cclxuICAgKi9cclxuICBpc0FsbG93ZWRNb2RpZnkoaWRUYXNrOiBudW1iZXIsIGlkSXRlbTogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eUVsYXBzZWRJdGVtLmlzQWN0aW9uQWxsb3dlZCh7XHJcbiAgICAgIFRBU0tJRDogaWRUYXNrLFxyXG4gICAgICBJVEVNSUQ6IGlkSXRlbSxcclxuICAgICAgQUNUSU9OSUQ6IDJcclxuICAgIH0pLnJlcygpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBpc0FjdGlvbkFsbG93ZWQg0YEg0YTQuNC60YHQvtC8INC90LAg0L/RgNC+0LLQtdGA0LrRgyDQstC+0LfQvNC+0LbQvdC+0YHRgtC4INGH0YLQtdC90LjRjyDQt9Cw0LTQsNGH0Lgg0LfQsNC/0LjRgdC4XHJcbiAgICogKNCx0LXQtyDQv9GA0L7QstC10YDQutC4INC00LDRkdGCINC+0YjQuNCx0LrRgylcclxuICAgKlxyXG4gICAqIGlkQWN0aW9uOlxyXG4gICAqIDEgLSBBQ1RJT05fRUxBUFNFRF9USU1FX0FERFxyXG4gICAqIDIgLSBBQ1RJT05fRUxBUFNFRF9USU1FX01PRElGWVxyXG4gICAqIDMgLSBBQ1RJT05fRUxBUFNFRF9USU1FX1JFTU9WRVxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGlzQWN0aW9uQWxsb3dlZChwYXJhbTogaUlzQWN0aW9uQWxsb3dlZFBhcmFtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja1Blcm1pc3Npb25SZWFkVGFzayhwYXJhbS5UQVNLSUQpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKGNhblJlYWQgPT4ge1xyXG4gICAgICAgIGlmIChjYW5SZWFkKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eUVsYXBzZWRJdGVtLmlzQWN0aW9uQWxsb3dlZChwYXJhbSkucmVzKClcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdObyBwZXJtaXNzaW9uIHRvIHJlYWQgdGhlIHRhc2snKSlcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiDQn9C+0LvQvdC+0YbQtdC90L3Ri9C5INC80LXRgtC+0LQg0YPQtNCw0LvQtdC90LjRj1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgZGVsKHBhcmFtOiBpQlhSZXN0UGFyYW1EZWxFbGFwc2VkaXRlbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChhbGxvd2VkUmVhZFRhc2sgPT4ge1xyXG4gICAgICAgIGlmIChhbGxvd2VkUmVhZFRhc2spIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmlzQWxsb3dlZFJlbW92ZShwYXJhbS5UQVNLSUQsIHBhcmFtLklURU1JRCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoYWxsb3dlZCA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGFsbG93ZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0uZGVsZXRlKHBhcmFtKS5yZXMoKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ05vIHBlcm1pc3Npb24gdG8gZGVsZXRlIHRoZSBlbGFwc2VkIHRpbWUgcmVjb3JkJykpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdObyBwZXJtaXNzaW9uIHRvIHJlYWQgdGhlIHRhc2snKSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQn9GA0L7QstC10YDRj9C10YIg0L/RgNCw0LLQviDQvdCwINGD0LTQsNC70LXQvdC40LUg0LfQsNC/0LjRgdC4INC+INC30LDRgtGA0LDRh9C10L3QvdC+0Lwg0LLRgNC10LzQtdC90LguXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc0FsbG93ZWRSZW1vdmUoaWRUYXNrOiBudW1iZXIsIGlkSXRlbTogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0FjdGlvbkFsbG93ZWQoXHJcbiAgICAgIHtcclxuICAgICAgICBUQVNLSUQ6IGlkVGFzayxcclxuICAgICAgICBJVEVNSUQ6IGlkSXRlbSxcclxuICAgICAgICBBQ1RJT05JRDogM1xyXG4gICAgICB9KVxyXG4gIH1cclxufVxyXG4iXX0=