@plait/core 0.77.3 → 0.78.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 (108) hide show
  1. package/fesm2022/plait-core.mjs.map +1 -1
  2. package/package.json +1 -3
  3. package/esm2022/constants/cursor.mjs +0 -13
  4. package/esm2022/constants/index.mjs +0 -20
  5. package/esm2022/constants/keycodes.mjs +0 -127
  6. package/esm2022/constants/selection.mjs +0 -6
  7. package/esm2022/constants/zoom.mjs +0 -4
  8. package/esm2022/context.mjs +0 -23
  9. package/esm2022/core/element/context-change.mjs +0 -13
  10. package/esm2022/core/element/context.mjs +0 -2
  11. package/esm2022/core/element/element-flavour.mjs +0 -140
  12. package/esm2022/core/element/element-ref.mjs +0 -2
  13. package/esm2022/core/list-render.mjs +0 -217
  14. package/esm2022/differs/default_iterable_differ.mjs +0 -614
  15. package/esm2022/differs/iterable_differs.mjs +0 -9
  16. package/esm2022/interfaces/board.mjs +0 -108
  17. package/esm2022/interfaces/custom-types.mjs +0 -5
  18. package/esm2022/interfaces/direction.mjs +0 -8
  19. package/esm2022/interfaces/element.mjs +0 -43
  20. package/esm2022/interfaces/group.mjs +0 -6
  21. package/esm2022/interfaces/history.mjs +0 -5
  22. package/esm2022/interfaces/index.mjs +0 -19
  23. package/esm2022/interfaces/node.mjs +0 -57
  24. package/esm2022/interfaces/operation.mjs +0 -96
  25. package/esm2022/interfaces/path-ref.mjs +0 -15
  26. package/esm2022/interfaces/path.mjs +0 -183
  27. package/esm2022/interfaces/plugin.mjs +0 -6
  28. package/esm2022/interfaces/point.mjs +0 -27
  29. package/esm2022/interfaces/pointer.mjs +0 -6
  30. package/esm2022/interfaces/rectangle-client.mjs +0 -171
  31. package/esm2022/interfaces/selection.mjs +0 -13
  32. package/esm2022/interfaces/svg-arc-command.mjs +0 -2
  33. package/esm2022/interfaces/theme.mjs +0 -49
  34. package/esm2022/interfaces/viewport.mjs +0 -7
  35. package/esm2022/plait-core.mjs +0 -5
  36. package/esm2022/plugins/create-board.mjs +0 -122
  37. package/esm2022/plugins/index.mjs +0 -11
  38. package/esm2022/plugins/with-board.mjs +0 -20
  39. package/esm2022/plugins/with-hand.mjs +0 -113
  40. package/esm2022/plugins/with-history.mjs +0 -91
  41. package/esm2022/plugins/with-hotkey.mjs +0 -96
  42. package/esm2022/plugins/with-i18n.mjs +0 -13
  43. package/esm2022/plugins/with-moving.mjs +0 -282
  44. package/esm2022/plugins/with-options.mjs +0 -13
  45. package/esm2022/plugins/with-related-fragment.mjs +0 -23
  46. package/esm2022/plugins/with-selection.mjs +0 -230
  47. package/esm2022/public-api.mjs +0 -16
  48. package/esm2022/testing/core/create-board.mjs +0 -15
  49. package/esm2022/testing/core/fake-weak-map.mjs +0 -18
  50. package/esm2022/testing/core/index.mjs +0 -3
  51. package/esm2022/testing/fake-events/event-objects.mjs +0 -131
  52. package/esm2022/testing/fake-events/index.mjs +0 -2
  53. package/esm2022/testing/index.mjs +0 -3
  54. package/esm2022/testing/test-element.mjs +0 -9
  55. package/esm2022/transforms/board.mjs +0 -137
  56. package/esm2022/transforms/element.mjs +0 -22
  57. package/esm2022/transforms/general.mjs +0 -146
  58. package/esm2022/transforms/group.mjs +0 -64
  59. package/esm2022/transforms/index.mjs +0 -17
  60. package/esm2022/transforms/node.mjs +0 -37
  61. package/esm2022/transforms/selection.mjs +0 -26
  62. package/esm2022/transforms/theme.mjs +0 -8
  63. package/esm2022/transforms/viewport.mjs +0 -8
  64. package/esm2022/transforms/z-index.mjs +0 -20
  65. package/esm2022/utils/angle.mjs +0 -164
  66. package/esm2022/utils/board.mjs +0 -18
  67. package/esm2022/utils/clipboard/clipboard.mjs +0 -40
  68. package/esm2022/utils/clipboard/common.mjs +0 -82
  69. package/esm2022/utils/clipboard/data-transfer.mjs +0 -33
  70. package/esm2022/utils/clipboard/index.mjs +0 -3
  71. package/esm2022/utils/clipboard/navigator-clipboard.mjs +0 -71
  72. package/esm2022/utils/clipboard/types.mjs +0 -13
  73. package/esm2022/utils/common.mjs +0 -79
  74. package/esm2022/utils/debug.mjs +0 -91
  75. package/esm2022/utils/dnd.mjs +0 -8
  76. package/esm2022/utils/dom/common.mjs +0 -75
  77. package/esm2022/utils/dom/environment.mjs +0 -2
  78. package/esm2022/utils/dom/foreign.mjs +0 -26
  79. package/esm2022/utils/dom/index.mjs +0 -4
  80. package/esm2022/utils/drawing/arrow.mjs +0 -23
  81. package/esm2022/utils/drawing/circle.mjs +0 -4
  82. package/esm2022/utils/drawing/line.mjs +0 -47
  83. package/esm2022/utils/drawing/rectangle.mjs +0 -36
  84. package/esm2022/utils/element.mjs +0 -90
  85. package/esm2022/utils/environment.mjs +0 -14
  86. package/esm2022/utils/fragment.mjs +0 -27
  87. package/esm2022/utils/group.mjs +0 -239
  88. package/esm2022/utils/helper.mjs +0 -68
  89. package/esm2022/utils/history.mjs +0 -96
  90. package/esm2022/utils/hotkeys.mjs +0 -109
  91. package/esm2022/utils/id-creator.mjs +0 -11
  92. package/esm2022/utils/index.mjs +0 -35
  93. package/esm2022/utils/iterable.mjs +0 -32
  94. package/esm2022/utils/math.mjs +0 -480
  95. package/esm2022/utils/mobile.mjs +0 -6
  96. package/esm2022/utils/moving-element.mjs +0 -17
  97. package/esm2022/utils/pointer.mjs +0 -13
  98. package/esm2022/utils/position.mjs +0 -9
  99. package/esm2022/utils/selected-element.mjs +0 -145
  100. package/esm2022/utils/selection.mjs +0 -151
  101. package/esm2022/utils/snap/snap-moving.mjs +0 -199
  102. package/esm2022/utils/snap/snap.mjs +0 -211
  103. package/esm2022/utils/to-image.mjs +0 -204
  104. package/esm2022/utils/to-point.mjs +0 -74
  105. package/esm2022/utils/tree.mjs +0 -22
  106. package/esm2022/utils/viewport.mjs +0 -227
  107. package/esm2022/utils/weak-maps.mjs +0 -27
  108. package/esm2022/utils/z-index.mjs +0 -166
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plait/core",
3
- "version": "0.77.3",
3
+ "version": "0.78.0",
4
4
  "peerDependencies": {
5
5
  "immer": "^10.0.3",
6
6
  "is-hotkey": "^0.2.0",
@@ -30,8 +30,6 @@
30
30
  },
31
31
  ".": {
32
32
  "types": "./index.d.ts",
33
- "esm2022": "./esm2022/plait-core.mjs",
34
- "esm": "./esm2022/plait-core.mjs",
35
33
  "default": "./fesm2022/plait-core.mjs"
36
34
  }
37
35
  },
@@ -1,13 +0,0 @@
1
- export var ResizeCursorClass;
2
- (function (ResizeCursorClass) {
3
- ResizeCursorClass["ew"] = "ew-resize";
4
- ResizeCursorClass["ns"] = "ns-resize";
5
- ResizeCursorClass["nesw"] = "nesw-resize";
6
- ResizeCursorClass["nwse"] = "nwse-resize";
7
- })(ResizeCursorClass || (ResizeCursorClass = {}));
8
- export var CursorClass;
9
- (function (CursorClass) {
10
- CursorClass["crosshair"] = "crosshair";
11
- })(CursorClass || (CursorClass = {}));
12
- export const RESIZE_CURSORS = [ResizeCursorClass.ns, ResizeCursorClass.nesw, ResizeCursorClass.ew, ResizeCursorClass.nwse];
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Vyc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvY29uc3RhbnRzL2N1cnNvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxpQkFLWDtBQUxELFdBQVksaUJBQWlCO0lBQ3pCLHFDQUFnQixDQUFBO0lBQ2hCLHFDQUFnQixDQUFBO0lBQ2hCLHlDQUFvQixDQUFBO0lBQ3BCLHlDQUFvQixDQUFBO0FBQ3hCLENBQUMsRUFMVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBSzVCO0FBRUQsTUFBTSxDQUFOLElBQVksV0FFWDtBQUZELFdBQVksV0FBVztJQUNuQixzQ0FBdUIsQ0FBQTtBQUMzQixDQUFDLEVBRlcsV0FBVyxLQUFYLFdBQVcsUUFFdEI7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFJlc2l6ZUN1cnNvckNsYXNzIHtcbiAgICBldyA9ICdldy1yZXNpemUnLFxuICAgIG5zID0gJ25zLXJlc2l6ZScsXG4gICAgbmVzdyA9ICduZXN3LXJlc2l6ZScsXG4gICAgbndzZSA9ICdud3NlLXJlc2l6ZSdcbn1cblxuZXhwb3J0IGVudW0gQ3Vyc29yQ2xhc3Mge1xuICAgIGNyb3NzaGFpciA9ICdjcm9zc2hhaXInXG59XG5cbmV4cG9ydCBjb25zdCBSRVNJWkVfQ1VSU09SUyA9IFtSZXNpemVDdXJzb3JDbGFzcy5ucywgUmVzaXplQ3Vyc29yQ2xhc3MubmVzdywgUmVzaXplQ3Vyc29yQ2xhc3MuZXcsIFJlc2l6ZUN1cnNvckNsYXNzLm53c2VdO1xuIl19
@@ -1,20 +0,0 @@
1
- export * from './keycodes';
2
- export * from './cursor';
3
- export * from './selection';
4
- export * from './zoom';
5
- export const HOST_CLASS_NAME = 'plait-board-container';
6
- export const ACTIVE_MOVING_CLASS_NAME = 'active-with-moving';
7
- export const ROTATE_HANDLE_CLASS_NAME = 'rotate-handle';
8
- export const RESIZE_HANDLE_CLASS_NAME = 'resize-handle';
9
- export const SCROLL_BAR_WIDTH = 20;
10
- export const MAX_RADIUS = 16;
11
- export const POINTER_BUTTON = {
12
- MAIN: 0,
13
- WHEEL: 1,
14
- SECONDARY: 2,
15
- TOUCH: -1
16
- };
17
- export const PRESS_AND_MOVE_BUFFER = 3;
18
- export const DRAG_SELECTION_PRESS_AND_MOVE_BUFFER = 10;
19
- export const HIT_DISTANCE_BUFFER = 5;
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxRQUFRLENBQUM7QUFFdkIsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLHVCQUF1QixDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLG9CQUFvQixDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLGVBQWUsQ0FBQztBQUV4RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxlQUFlLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0FBRW5DLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzFCLElBQUksRUFBRSxDQUFDO0lBQ1AsS0FBSyxFQUFFLENBQUM7SUFDUixTQUFTLEVBQUUsQ0FBQztJQUNaLEtBQUssRUFBRSxDQUFDLENBQUM7Q0FDSCxDQUFDO0FBRVgsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLEVBQUUsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2tleWNvZGVzJztcbmV4cG9ydCAqIGZyb20gJy4vY3Vyc29yJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vem9vbSc7XG5cbmV4cG9ydCBjb25zdCBIT1NUX0NMQVNTX05BTUUgPSAncGxhaXQtYm9hcmQtY29udGFpbmVyJztcblxuZXhwb3J0IGNvbnN0IEFDVElWRV9NT1ZJTkdfQ0xBU1NfTkFNRSA9ICdhY3RpdmUtd2l0aC1tb3ZpbmcnO1xuXG5leHBvcnQgY29uc3QgUk9UQVRFX0hBTkRMRV9DTEFTU19OQU1FID0gJ3JvdGF0ZS1oYW5kbGUnO1xuXG5leHBvcnQgY29uc3QgUkVTSVpFX0hBTkRMRV9DTEFTU19OQU1FID0gJ3Jlc2l6ZS1oYW5kbGUnO1xuXG5leHBvcnQgY29uc3QgU0NST0xMX0JBUl9XSURUSCA9IDIwO1xuXG5leHBvcnQgY29uc3QgTUFYX1JBRElVUyA9IDE2O1xuXG5leHBvcnQgY29uc3QgUE9JTlRFUl9CVVRUT04gPSB7XG4gICAgTUFJTjogMCxcbiAgICBXSEVFTDogMSxcbiAgICBTRUNPTkRBUlk6IDIsXG4gICAgVE9VQ0g6IC0xXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgUFJFU1NfQU5EX01PVkVfQlVGRkVSID0gMztcblxuZXhwb3J0IGNvbnN0IERSQUdfU0VMRUNUSU9OX1BSRVNTX0FORF9NT1ZFX0JVRkZFUiA9IDEwO1xuXG5leHBvcnQgY29uc3QgSElUX0RJU1RBTkNFX0JVRkZFUiA9IDU7XG4iXX0=
@@ -1,127 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export const MAC_ENTER = 3;
9
- export const BACKSPACE = 8;
10
- export const TAB = 9;
11
- export const NUM_CENTER = 12;
12
- export const ENTER = 13;
13
- export const SHIFT = 16;
14
- export const CONTROL = 17;
15
- export const ALT = 18;
16
- export const PAUSE = 19;
17
- export const CAPS_LOCK = 20;
18
- export const ESCAPE = 27;
19
- export const SPACE = 32;
20
- export const PAGE_UP = 33;
21
- export const PAGE_DOWN = 34;
22
- export const END = 35;
23
- export const HOME = 36;
24
- export const LEFT_ARROW = 37;
25
- export const UP_ARROW = 38;
26
- export const RIGHT_ARROW = 39;
27
- export const DOWN_ARROW = 40;
28
- export const PLUS_SIGN = 43;
29
- export const PRINT_SCREEN = 44;
30
- export const INSERT = 45;
31
- export const DELETE = 46;
32
- export const ZERO = 48;
33
- export const ONE = 49;
34
- export const TWO = 50;
35
- export const THREE = 51;
36
- export const FOUR = 52;
37
- export const FIVE = 53;
38
- export const SIX = 54;
39
- export const SEVEN = 55;
40
- export const EIGHT = 56;
41
- export const NINE = 57;
42
- export const FF_SEMICOLON = 59; // Firefox (Gecko) fires this for semicolon instead of 186
43
- export const FF_EQUALS = 61; // Firefox (Gecko) fires this for equals instead of 187
44
- export const QUESTION_MARK = 63;
45
- export const AT_SIGN = 64;
46
- export const A = 65;
47
- export const B = 66;
48
- export const C = 67;
49
- export const D = 68;
50
- export const E = 69;
51
- export const F = 70;
52
- export const G = 71;
53
- export const H = 72;
54
- export const I = 73;
55
- export const J = 74;
56
- export const K = 75;
57
- export const L = 76;
58
- export const M = 77;
59
- export const N = 78;
60
- export const O = 79;
61
- export const P = 80;
62
- export const Q = 81;
63
- export const R = 82;
64
- export const S = 83;
65
- export const T = 84;
66
- export const U = 85;
67
- export const V = 86;
68
- export const W = 87;
69
- export const X = 88;
70
- export const Y = 89;
71
- export const Z = 90;
72
- export const META = 91; // WIN_KEY_LEFT
73
- export const MAC_WK_CMD_LEFT = 91;
74
- export const MAC_WK_CMD_RIGHT = 93;
75
- export const CONTEXT_MENU = 93;
76
- export const NUMPAD_ZERO = 96;
77
- export const NUMPAD_ONE = 97;
78
- export const NUMPAD_TWO = 98;
79
- export const NUMPAD_THREE = 99;
80
- export const NUMPAD_FOUR = 100;
81
- export const NUMPAD_FIVE = 101;
82
- export const NUMPAD_SIX = 102;
83
- export const NUMPAD_SEVEN = 103;
84
- export const NUMPAD_EIGHT = 104;
85
- export const NUMPAD_NINE = 105;
86
- export const NUMPAD_MULTIPLY = 106;
87
- export const NUMPAD_PLUS = 107;
88
- export const NUMPAD_MINUS = 109;
89
- export const NUMPAD_PERIOD = 110;
90
- export const NUMPAD_DIVIDE = 111;
91
- export const F1 = 112;
92
- export const F2 = 113;
93
- export const F3 = 114;
94
- export const F4 = 115;
95
- export const F5 = 116;
96
- export const F6 = 117;
97
- export const F7 = 118;
98
- export const F8 = 119;
99
- export const F9 = 120;
100
- export const F10 = 121;
101
- export const F11 = 122;
102
- export const F12 = 123;
103
- export const NUM_LOCK = 144;
104
- export const SCROLL_LOCK = 145;
105
- export const FIRST_MEDIA = 166;
106
- export const FF_MINUS = 173;
107
- export const MUTE = 173; // Firefox (Gecko) fires 181 for MUTE
108
- export const VOLUME_DOWN = 174; // Firefox (Gecko) fires 182 for VOLUME_DOWN
109
- export const VOLUME_UP = 175; // Firefox (Gecko) fires 183 for VOLUME_UP
110
- export const FF_MUTE = 181;
111
- export const FF_VOLUME_DOWN = 182;
112
- export const LAST_MEDIA = 183;
113
- export const FF_VOLUME_UP = 183;
114
- export const SEMICOLON = 186; // Firefox (Gecko) fires 59 for SEMICOLON
115
- export const EQUALS = 187; // Firefox (Gecko) fires 61 for EQUALS
116
- export const COMMA = 188;
117
- export const DASH = 189; // Firefox (Gecko) fires 173 for DASH/MINUS
118
- export const PERIOD = 190;
119
- export const SLASH = 191;
120
- export const APOSTROPHE = 192;
121
- export const TILDE = 192;
122
- export const OPEN_SQUARE_BRACKET = 219;
123
- export const BACKSLASH = 220;
124
- export const CLOSE_SQUARE_BRACKET = 221;
125
- export const SINGLE_QUOTE = 222;
126
- export const MAC_META = 224;
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9jb25zdGFudHMva2V5Y29kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztBQUMzQixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDckIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUM3QixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDeEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUMxQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDeEIsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztBQUM1QixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ3pCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDeEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUMxQixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBQzVCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUN2QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7QUFDM0IsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztBQUM5QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFDNUIsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ3pCLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDekIsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUN2QixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUN4QixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ3ZCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7QUFDdkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDeEIsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUN2QixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsMERBQTBEO0FBQzFGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyx1REFBdUQ7QUFDcEYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsZUFBZTtBQUN2QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztBQUNuQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDOUIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUM3QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7QUFDL0IsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUM7QUFDOUIsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDO0FBQ2hDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFDL0IsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQztBQUNuQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDdkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUN2QixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ3ZCLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDNUIsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDNUIsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLHFDQUFxQztBQUM5RCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLENBQUMsNENBQTRDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQywwQ0FBMEM7QUFDeEUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUMzQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUM7QUFDOUIsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUMseUNBQXlDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxzQ0FBc0M7QUFDakUsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUN6QixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsMkNBQTJDO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUM7QUFDMUIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUN6QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDO0FBQzlCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7QUFDekIsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFDN0IsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgY29uc3QgTUFDX0VOVEVSID0gMztcbmV4cG9ydCBjb25zdCBCQUNLU1BBQ0UgPSA4O1xuZXhwb3J0IGNvbnN0IFRBQiA9IDk7XG5leHBvcnQgY29uc3QgTlVNX0NFTlRFUiA9IDEyO1xuZXhwb3J0IGNvbnN0IEVOVEVSID0gMTM7XG5leHBvcnQgY29uc3QgU0hJRlQgPSAxNjtcbmV4cG9ydCBjb25zdCBDT05UUk9MID0gMTc7XG5leHBvcnQgY29uc3QgQUxUID0gMTg7XG5leHBvcnQgY29uc3QgUEFVU0UgPSAxOTtcbmV4cG9ydCBjb25zdCBDQVBTX0xPQ0sgPSAyMDtcbmV4cG9ydCBjb25zdCBFU0NBUEUgPSAyNztcbmV4cG9ydCBjb25zdCBTUEFDRSA9IDMyO1xuZXhwb3J0IGNvbnN0IFBBR0VfVVAgPSAzMztcbmV4cG9ydCBjb25zdCBQQUdFX0RPV04gPSAzNDtcbmV4cG9ydCBjb25zdCBFTkQgPSAzNTtcbmV4cG9ydCBjb25zdCBIT01FID0gMzY7XG5leHBvcnQgY29uc3QgTEVGVF9BUlJPVyA9IDM3O1xuZXhwb3J0IGNvbnN0IFVQX0FSUk9XID0gMzg7XG5leHBvcnQgY29uc3QgUklHSFRfQVJST1cgPSAzOTtcbmV4cG9ydCBjb25zdCBET1dOX0FSUk9XID0gNDA7XG5leHBvcnQgY29uc3QgUExVU19TSUdOID0gNDM7XG5leHBvcnQgY29uc3QgUFJJTlRfU0NSRUVOID0gNDQ7XG5leHBvcnQgY29uc3QgSU5TRVJUID0gNDU7XG5leHBvcnQgY29uc3QgREVMRVRFID0gNDY7XG5leHBvcnQgY29uc3QgWkVSTyA9IDQ4O1xuZXhwb3J0IGNvbnN0IE9ORSA9IDQ5O1xuZXhwb3J0IGNvbnN0IFRXTyA9IDUwO1xuZXhwb3J0IGNvbnN0IFRIUkVFID0gNTE7XG5leHBvcnQgY29uc3QgRk9VUiA9IDUyO1xuZXhwb3J0IGNvbnN0IEZJVkUgPSA1MztcbmV4cG9ydCBjb25zdCBTSVggPSA1NDtcbmV4cG9ydCBjb25zdCBTRVZFTiA9IDU1O1xuZXhwb3J0IGNvbnN0IEVJR0hUID0gNTY7XG5leHBvcnQgY29uc3QgTklORSA9IDU3O1xuZXhwb3J0IGNvbnN0IEZGX1NFTUlDT0xPTiA9IDU5OyAvLyBGaXJlZm94IChHZWNrbykgZmlyZXMgdGhpcyBmb3Igc2VtaWNvbG9uIGluc3RlYWQgb2YgMTg2XG5leHBvcnQgY29uc3QgRkZfRVFVQUxTID0gNjE7IC8vIEZpcmVmb3ggKEdlY2tvKSBmaXJlcyB0aGlzIGZvciBlcXVhbHMgaW5zdGVhZCBvZiAxODdcbmV4cG9ydCBjb25zdCBRVUVTVElPTl9NQVJLID0gNjM7XG5leHBvcnQgY29uc3QgQVRfU0lHTiA9IDY0O1xuZXhwb3J0IGNvbnN0IEEgPSA2NTtcbmV4cG9ydCBjb25zdCBCID0gNjY7XG5leHBvcnQgY29uc3QgQyA9IDY3O1xuZXhwb3J0IGNvbnN0IEQgPSA2ODtcbmV4cG9ydCBjb25zdCBFID0gNjk7XG5leHBvcnQgY29uc3QgRiA9IDcwO1xuZXhwb3J0IGNvbnN0IEcgPSA3MTtcbmV4cG9ydCBjb25zdCBIID0gNzI7XG5leHBvcnQgY29uc3QgSSA9IDczO1xuZXhwb3J0IGNvbnN0IEogPSA3NDtcbmV4cG9ydCBjb25zdCBLID0gNzU7XG5leHBvcnQgY29uc3QgTCA9IDc2O1xuZXhwb3J0IGNvbnN0IE0gPSA3NztcbmV4cG9ydCBjb25zdCBOID0gNzg7XG5leHBvcnQgY29uc3QgTyA9IDc5O1xuZXhwb3J0IGNvbnN0IFAgPSA4MDtcbmV4cG9ydCBjb25zdCBRID0gODE7XG5leHBvcnQgY29uc3QgUiA9IDgyO1xuZXhwb3J0IGNvbnN0IFMgPSA4MztcbmV4cG9ydCBjb25zdCBUID0gODQ7XG5leHBvcnQgY29uc3QgVSA9IDg1O1xuZXhwb3J0IGNvbnN0IFYgPSA4NjtcbmV4cG9ydCBjb25zdCBXID0gODc7XG5leHBvcnQgY29uc3QgWCA9IDg4O1xuZXhwb3J0IGNvbnN0IFkgPSA4OTtcbmV4cG9ydCBjb25zdCBaID0gOTA7XG5leHBvcnQgY29uc3QgTUVUQSA9IDkxOyAvLyBXSU5fS0VZX0xFRlRcbmV4cG9ydCBjb25zdCBNQUNfV0tfQ01EX0xFRlQgPSA5MTtcbmV4cG9ydCBjb25zdCBNQUNfV0tfQ01EX1JJR0hUID0gOTM7XG5leHBvcnQgY29uc3QgQ09OVEVYVF9NRU5VID0gOTM7XG5leHBvcnQgY29uc3QgTlVNUEFEX1pFUk8gPSA5NjtcbmV4cG9ydCBjb25zdCBOVU1QQURfT05FID0gOTc7XG5leHBvcnQgY29uc3QgTlVNUEFEX1RXTyA9IDk4O1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9USFJFRSA9IDk5O1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9GT1VSID0gMTAwO1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9GSVZFID0gMTAxO1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9TSVggPSAxMDI7XG5leHBvcnQgY29uc3QgTlVNUEFEX1NFVkVOID0gMTAzO1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9FSUdIVCA9IDEwNDtcbmV4cG9ydCBjb25zdCBOVU1QQURfTklORSA9IDEwNTtcbmV4cG9ydCBjb25zdCBOVU1QQURfTVVMVElQTFkgPSAxMDY7XG5leHBvcnQgY29uc3QgTlVNUEFEX1BMVVMgPSAxMDc7XG5leHBvcnQgY29uc3QgTlVNUEFEX01JTlVTID0gMTA5O1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9QRVJJT0QgPSAxMTA7XG5leHBvcnQgY29uc3QgTlVNUEFEX0RJVklERSA9IDExMTtcbmV4cG9ydCBjb25zdCBGMSA9IDExMjtcbmV4cG9ydCBjb25zdCBGMiA9IDExMztcbmV4cG9ydCBjb25zdCBGMyA9IDExNDtcbmV4cG9ydCBjb25zdCBGNCA9IDExNTtcbmV4cG9ydCBjb25zdCBGNSA9IDExNjtcbmV4cG9ydCBjb25zdCBGNiA9IDExNztcbmV4cG9ydCBjb25zdCBGNyA9IDExODtcbmV4cG9ydCBjb25zdCBGOCA9IDExOTtcbmV4cG9ydCBjb25zdCBGOSA9IDEyMDtcbmV4cG9ydCBjb25zdCBGMTAgPSAxMjE7XG5leHBvcnQgY29uc3QgRjExID0gMTIyO1xuZXhwb3J0IGNvbnN0IEYxMiA9IDEyMztcbmV4cG9ydCBjb25zdCBOVU1fTE9DSyA9IDE0NDtcbmV4cG9ydCBjb25zdCBTQ1JPTExfTE9DSyA9IDE0NTtcbmV4cG9ydCBjb25zdCBGSVJTVF9NRURJQSA9IDE2NjtcbmV4cG9ydCBjb25zdCBGRl9NSU5VUyA9IDE3MztcbmV4cG9ydCBjb25zdCBNVVRFID0gMTczOyAvLyBGaXJlZm94IChHZWNrbykgZmlyZXMgMTgxIGZvciBNVVRFXG5leHBvcnQgY29uc3QgVk9MVU1FX0RPV04gPSAxNzQ7IC8vIEZpcmVmb3ggKEdlY2tvKSBmaXJlcyAxODIgZm9yIFZPTFVNRV9ET1dOXG5leHBvcnQgY29uc3QgVk9MVU1FX1VQID0gMTc1OyAvLyBGaXJlZm94IChHZWNrbykgZmlyZXMgMTgzIGZvciBWT0xVTUVfVVBcbmV4cG9ydCBjb25zdCBGRl9NVVRFID0gMTgxO1xuZXhwb3J0IGNvbnN0IEZGX1ZPTFVNRV9ET1dOID0gMTgyO1xuZXhwb3J0IGNvbnN0IExBU1RfTUVESUEgPSAxODM7XG5leHBvcnQgY29uc3QgRkZfVk9MVU1FX1VQID0gMTgzO1xuZXhwb3J0IGNvbnN0IFNFTUlDT0xPTiA9IDE4NjsgLy8gRmlyZWZveCAoR2Vja28pIGZpcmVzIDU5IGZvciBTRU1JQ09MT05cbmV4cG9ydCBjb25zdCBFUVVBTFMgPSAxODc7IC8vIEZpcmVmb3ggKEdlY2tvKSBmaXJlcyA2MSBmb3IgRVFVQUxTXG5leHBvcnQgY29uc3QgQ09NTUEgPSAxODg7XG5leHBvcnQgY29uc3QgREFTSCA9IDE4OTsgLy8gRmlyZWZveCAoR2Vja28pIGZpcmVzIDE3MyBmb3IgREFTSC9NSU5VU1xuZXhwb3J0IGNvbnN0IFBFUklPRCA9IDE5MDtcbmV4cG9ydCBjb25zdCBTTEFTSCA9IDE5MTtcbmV4cG9ydCBjb25zdCBBUE9TVFJPUEhFID0gMTkyO1xuZXhwb3J0IGNvbnN0IFRJTERFID0gMTkyO1xuZXhwb3J0IGNvbnN0IE9QRU5fU1FVQVJFX0JSQUNLRVQgPSAyMTk7XG5leHBvcnQgY29uc3QgQkFDS1NMQVNIID0gMjIwO1xuZXhwb3J0IGNvbnN0IENMT1NFX1NRVUFSRV9CUkFDS0VUID0gMjIxO1xuZXhwb3J0IGNvbnN0IFNJTkdMRV9RVU9URSA9IDIyMjtcbmV4cG9ydCBjb25zdCBNQUNfTUVUQSA9IDIyNDtcbiJdfQ==
@@ -1,6 +0,0 @@
1
- export const ATTACHED_ELEMENT_CLASS_NAME = 'plait-board-attached';
2
- export const ACTIVE_STROKE_WIDTH = 1;
3
- export const SNAPPING_STROKE_WIDTH = 2;
4
- export const SELECTION_RECTANGLE_CLASS_NAME = 'selection-rectangle';
5
- export const SELECTION_RECTANGLE_BOUNDING_CLASS_NAME = 'selection-rectangle-bounding';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvY29uc3RhbnRzL3NlbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxzQkFBc0IsQ0FBQztBQUVsRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLHFCQUFxQixDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLHVDQUF1QyxHQUFHLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFUVEFDSEVEX0VMRU1FTlRfQ0xBU1NfTkFNRSA9ICdwbGFpdC1ib2FyZC1hdHRhY2hlZCc7XG5cbmV4cG9ydCBjb25zdCBBQ1RJVkVfU1RST0tFX1dJRFRIID0gMTtcblxuZXhwb3J0IGNvbnN0IFNOQVBQSU5HX1NUUk9LRV9XSURUSCA9IDI7XG5cbmV4cG9ydCBjb25zdCBTRUxFQ1RJT05fUkVDVEFOR0xFX0NMQVNTX05BTUUgPSAnc2VsZWN0aW9uLXJlY3RhbmdsZSc7XG5cbmV4cG9ydCBjb25zdCBTRUxFQ1RJT05fUkVDVEFOR0xFX0JPVU5ESU5HX0NMQVNTX05BTUUgPSAnc2VsZWN0aW9uLXJlY3RhbmdsZS1ib3VuZGluZyc7XG4iXX0=
@@ -1,4 +0,0 @@
1
- export const ZOOM_STEP = 0.1;
2
- export const MIN_ZOOM = 0.1;
3
- export const MAX_ZOOM = 4;
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2NvbnN0YW50cy96b29tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFDN0IsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztBQUM1QixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFpPT01fU1RFUCA9IDAuMTtcbmV4cG9ydCBjb25zdCBNSU5fWk9PTSA9IDAuMTtcbmV4cG9ydCBjb25zdCBNQVhfWk9PTSA9IDQ7XG4iXX0=
@@ -1,23 +0,0 @@
1
- import { Subject } from 'rxjs';
2
- export class PlaitBoardContext {
3
- constructor() {
4
- this._stable = new Subject();
5
- this.uploadingFiles = [];
6
- }
7
- getUploadingFile(url) {
8
- return this.uploadingFiles.find(file => file.url === url);
9
- }
10
- setUploadingFile(file) {
11
- return this.uploadingFiles.push(file);
12
- }
13
- removeUploadingFile(fileEntry) {
14
- this.uploadingFiles = this.uploadingFiles.filter(file => file.url !== fileEntry.url);
15
- }
16
- onStable() {
17
- return this._stable.asObservable();
18
- }
19
- nextStable() {
20
- this._stable.next('');
21
- }
22
- }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixNQUFNLE9BQU8saUJBQWlCO0lBQTlCO1FBQ1ksWUFBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFeEIsbUJBQWMsR0FBaUIsRUFBRSxDQUFDO0lBcUI5QyxDQUFDO0lBbkJHLGdCQUFnQixDQUFDLEdBQVc7UUFDeEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQWdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELG1CQUFtQixDQUFDLFNBQXFCO1FBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEltYWdlRW50cnkgfSBmcm9tICcuL2ludGVyZmFjZXMvZWxlbWVudCc7XG5cbmV4cG9ydCBjbGFzcyBQbGFpdEJvYXJkQ29udGV4dCB7XG4gICAgcHJpdmF0ZSBfc3RhYmxlID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHByaXZhdGUgdXBsb2FkaW5nRmlsZXM6IEltYWdlRW50cnlbXSA9IFtdO1xuXG4gICAgZ2V0VXBsb2FkaW5nRmlsZSh1cmw6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRpbmdGaWxlcy5maW5kKGZpbGUgPT4gZmlsZS51cmwgPT09IHVybCk7XG4gICAgfVxuXG4gICAgc2V0VXBsb2FkaW5nRmlsZShmaWxlOiBJbWFnZUVudHJ5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwbG9hZGluZ0ZpbGVzLnB1c2goZmlsZSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlVXBsb2FkaW5nRmlsZShmaWxlRW50cnk6IEltYWdlRW50cnkpIHtcbiAgICAgICAgdGhpcy51cGxvYWRpbmdGaWxlcyA9IHRoaXMudXBsb2FkaW5nRmlsZXMuZmlsdGVyKGZpbGUgPT4gZmlsZS51cmwgIT09IGZpbGVFbnRyeS51cmwpO1xuICAgIH1cblxuICAgIG9uU3RhYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RhYmxlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIG5leHRTdGFibGUoKSB7XG4gICAgICAgIHRoaXMuX3N0YWJsZS5uZXh0KCcnKTtcbiAgICB9XG59XG4iXX0=
@@ -1,13 +0,0 @@
1
- export function hasBeforeContextChange(value) {
2
- if (value.beforeContextChange) {
3
- return true;
4
- }
5
- return false;
6
- }
7
- export function hasOnContextChanged(value) {
8
- if (value.onContextChanged) {
9
- return true;
10
- }
11
- return false;
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1jaGFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9jb3JlL2VsZW1lbnQvY29udGV4dC1jaGFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsTUFBTSxVQUFVLHNCQUFzQixDQUNsQyxLQUFVO0lBRVYsSUFBSSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FDL0IsS0FBVTtJQUVWLElBQUksS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJlZm9yZUNvbnRleHRDaGFuZ2U8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudCwgSyBleHRlbmRzIFBsYWl0Qm9hcmQgPSBQbGFpdEJvYXJkPiB7XG4gICAgYmVmb3JlQ29udGV4dENoYW5nZTogKHZhbHVlOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFQ+KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uQ29udGV4dENoYW5nZWQ8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudCwgSyBleHRlbmRzIFBsYWl0Qm9hcmQgPSBQbGFpdEJvYXJkPiB7XG4gICAgb25Db250ZXh0Q2hhbmdlZDogKHZhbHVlOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFQsIEs+LCBwcmV2aW91czogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxULCBLPikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0JlZm9yZUNvbnRleHRDaGFuZ2U8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudCwgSyBleHRlbmRzIFBsYWl0Qm9hcmQgPSBQbGFpdEJvYXJkPihcbiAgICB2YWx1ZTogYW55XG4pOiB2YWx1ZSBpcyBCZWZvcmVDb250ZXh0Q2hhbmdlPFQsIEs+IHtcbiAgICBpZiAodmFsdWUuYmVmb3JlQ29udGV4dENoYW5nZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzT25Db250ZXh0Q2hhbmdlZDxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50LCBLIGV4dGVuZHMgUGxhaXRCb2FyZCA9IFBsYWl0Qm9hcmQ+KFxuICAgIHZhbHVlOiBhbnlcbik6IHZhbHVlIGlzIE9uQ29udGV4dENoYW5nZWQ8VCwgSz4ge1xuICAgIGlmICh2YWx1ZS5vbkNvbnRleHRDaGFuZ2VkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2NvcmUvZWxlbWVudC9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQsIEsgZXh0ZW5kcyBQbGFpdEJvYXJkID0gUGxhaXRCb2FyZD4ge1xuICAgIGVsZW1lbnQ6IFQ7XG4gICAgcGFyZW50OiBUIHwgSztcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICBib2FyZDogSztcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIGhhc1RoZW1lQ2hhbmdlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdENoaWxkcmVuQ29udGV4dDxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50LCBLIGV4dGVuZHMgUGxhaXRCb2FyZCA9IFBsYWl0Qm9hcmQ+IHtcbiAgICBib2FyZDogSztcbiAgICBwYXJlbnRHOiBTVkdHRWxlbWVudDtcbiAgICBwYXJlbnQ6IFQgfCBLO1xufVxuIl19
@@ -1,140 +0,0 @@
1
- /**
2
- * 基于 element-flavour 实现元素的绘制,取代 Angular 组件
3
- */
4
- import { PlaitBoard, PlaitElement, PlaitNode } from '../../interfaces';
5
- import { removeSelectedElement } from '../../utils/selected-element';
6
- import { createG } from '../../utils/dom/common';
7
- import { hasBeforeContextChange, hasOnContextChanged } from './context-change';
8
- import { ListRender } from '../list-render';
9
- import { ELEMENT_TO_REF, NODE_TO_CONTAINER_G, NODE_TO_G } from '../../utils/weak-maps';
10
- import { getElementMap } from '../../utils/element';
11
- export class ElementFlavour {
12
- get hasChildren() {
13
- return !!this.element.children;
14
- }
15
- set context(value) {
16
- if (hasBeforeContextChange(this)) {
17
- this.beforeContextChange(value);
18
- }
19
- const previousContext = this._context;
20
- this._context = value;
21
- if (this.initialized) {
22
- const elementG = this.getElementG();
23
- const containerG = this.getContainerG();
24
- NODE_TO_G.set(this.element, elementG);
25
- NODE_TO_CONTAINER_G.set(this.element, containerG);
26
- getElementMap(this.board).set(this.element.id, this.element);
27
- ELEMENT_TO_REF.set(this.element, this.ref);
28
- this.updateListRender();
29
- if (hasOnContextChanged(this)) {
30
- this.onContextChanged(value, previousContext);
31
- }
32
- }
33
- else {
34
- if (PlaitElement.isRootElement(this.element) && this.hasChildren) {
35
- this._g = createG();
36
- this._containerG = createG();
37
- this._containerG.append(this._g);
38
- }
39
- else {
40
- this._g = createG();
41
- this._containerG = this._g;
42
- }
43
- NODE_TO_G.set(this.element, this._g);
44
- NODE_TO_CONTAINER_G.set(this.element, this._containerG);
45
- ELEMENT_TO_REF.set(this.element, this.ref);
46
- getElementMap(this.board).set(this.element.id, this.element);
47
- }
48
- }
49
- get context() {
50
- return this._context;
51
- }
52
- get element() {
53
- return this.context && this.context.element;
54
- }
55
- get board() {
56
- return this.context && this.context.board;
57
- }
58
- get selected() {
59
- return this.context && this.context.selected;
60
- }
61
- getContainerG() {
62
- return this._containerG;
63
- }
64
- getElementG() {
65
- return this._g;
66
- }
67
- constructor(ref) {
68
- this.ref = ref;
69
- this.initialized = false;
70
- }
71
- initialize() {
72
- if (this.element.type) {
73
- this.getContainerG().setAttribute(`plait-${this.element.type}`, 'true');
74
- }
75
- if (this.hasChildren) {
76
- if (PlaitElement.isRootElement(this.element)) {
77
- this._rootContainerG = this._containerG;
78
- }
79
- else {
80
- const path = PlaitBoard.findPath(this.board, this.element);
81
- const rootNode = PlaitNode.get(this.board, path.slice(0, 1));
82
- this._rootContainerG = PlaitElement.getContainerG(rootNode, { suppressThrow: false });
83
- }
84
- }
85
- this.getContainerG().setAttribute('plait-data-id', this.element.id);
86
- this.initialized = true;
87
- }
88
- initializeListRender() {
89
- if (this.hasChildren) {
90
- this.listRender = new ListRender(this.board);
91
- if (this.board.isExpanded(this.element)) {
92
- this.listRender.initialize(this.element.children, this.initializeChildrenContext());
93
- }
94
- }
95
- }
96
- getRef() {
97
- return this.ref;
98
- }
99
- updateListRender() {
100
- if (this.hasChildren) {
101
- if (!this.listRender) {
102
- throw new Error('incorrectly initialize list render');
103
- }
104
- if (this.board.isExpanded(this.element)) {
105
- this.listRender.update(this.element.children, this.initializeChildrenContext());
106
- }
107
- else {
108
- if (this.listRender.initialized) {
109
- this.listRender.destroy();
110
- }
111
- }
112
- }
113
- }
114
- initializeChildrenContext() {
115
- if (!this._rootContainerG) {
116
- throw new Error('can not resolve root container g');
117
- }
118
- return {
119
- board: this.board,
120
- parent: this.element,
121
- parentG: this._rootContainerG
122
- };
123
- }
124
- destroy() {
125
- if (NODE_TO_G.get(this.element) === this._g) {
126
- NODE_TO_G.delete(this.element);
127
- }
128
- getElementMap(this.board).delete(this.element.id);
129
- if (NODE_TO_CONTAINER_G.get(this.element) === this._containerG) {
130
- NODE_TO_CONTAINER_G.delete(this.element);
131
- }
132
- if (ELEMENT_TO_REF.get(this.element) === this.ref) {
133
- ELEMENT_TO_REF.set(this.element, this.ref);
134
- }
135
- removeSelectedElement(this.board, this.element);
136
- this.getContainerG().remove();
137
- this.listRender?.destroy();
138
- }
139
- }
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1mbGF2b3VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvY29yZS9lbGVtZW50L2VsZW1lbnQtZmxhdm91ci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQXdCLFlBQVksRUFBRSxTQUFTLEVBQTZCLE1BQU0sa0JBQWtCLENBQUM7QUFDeEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxNQUFNLE9BQU8sY0FBYztJQWlCdkIsSUFBSSxXQUFXO1FBQ1gsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEtBQXNDO1FBQzlDLElBQUksc0JBQXNCLENBQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDdEMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDbEQsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdELGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsSUFBSSxtQkFBbUIsQ0FBSSxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUMvRCxJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMvQixDQUFDO1lBQ0QsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDakQsQ0FBQztJQUlELGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFlBQW9CLEdBQU07UUFBTixRQUFHLEdBQUgsR0FBRyxDQUFHO1FBbkUxQixnQkFBVyxHQUFHLEtBQUssQ0FBQztJQW1FUyxDQUFDO0lBRTlCLFVBQVU7UUFDTixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQzVDLENBQUM7aUJBQU0sQ0FBQztnQkFDSixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMzRCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzFGLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRU0sb0JBQW9CO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUM7WUFDekYsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTTtRQUNULE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztZQUMxRCxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFTLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQztZQUNyRixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM5QixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRU8seUJBQXlCO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPO1lBQ0gsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNwQixPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWU7U0FDaEMsQ0FBQztJQUNOLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM3RCxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNoRCxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMvQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIOWfuuS6jiBlbGVtZW50LWZsYXZvdXIg5a6e546w5YWD57Sg55qE57uY5Yi277yM5Y+W5LujIEFuZ3VsYXIg57uE5Lu2XG4gKi9cblxuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRDaGlsZHJlbkNvbnRleHQsIFBsYWl0RWxlbWVudCwgUGxhaXROb2RlLCBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyByZW1vdmVTZWxlY3RlZEVsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscy9zZWxlY3RlZC1lbGVtZW50JztcbmltcG9ydCB7IGNyZWF0ZUcgfSBmcm9tICcuLi8uLi91dGlscy9kb20vY29tbW9uJztcbmltcG9ydCB7IGhhc0JlZm9yZUNvbnRleHRDaGFuZ2UsIGhhc09uQ29udGV4dENoYW5nZWQgfSBmcm9tICcuL2NvbnRleHQtY2hhbmdlJztcbmltcG9ydCB7IExpc3RSZW5kZXIgfSBmcm9tICcuLi9saXN0LXJlbmRlcic7XG5pbXBvcnQgeyBFTEVNRU5UX1RPX1JFRiwgTk9ERV9UT19DT05UQUlORVJfRywgTk9ERV9UT19HIH0gZnJvbSAnLi4vLi4vdXRpbHMvd2Vhay1tYXBzJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudFJlZiB9IGZyb20gJy4vZWxlbWVudC1yZWYnO1xuaW1wb3J0IHsgZ2V0RWxlbWVudE1hcCB9IGZyb20gJy4uLy4uL3V0aWxzL2VsZW1lbnQnO1xuXG5leHBvcnQgY2xhc3MgRWxlbWVudEZsYXZvdXI8XG4gICAgVCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudCxcbiAgICBLIGV4dGVuZHMgUGxhaXRCb2FyZCA9IFBsYWl0Qm9hcmQsXG4gICAgUiBleHRlbmRzIFBsYWl0RWxlbWVudFJlZiA9IFBsYWl0RWxlbWVudFJlZlxuPiB7XG4gICAgcHJpdmF0ZSBfZyE6IFNWR0dFbGVtZW50O1xuXG4gICAgcHJpdmF0ZSBfY29udGFpbmVyRyE6IFNWR0dFbGVtZW50O1xuXG4gICAgLy8gY2hpbGRyZW4gZWxlbWVudHMncyByZW5kZXIgbmVlZCByb290Q29udGFpbmVyR1xuICAgIC8vIHRoZSB2YWx1ZSBvZiByb290Q29udGFpbmVyRyBjb21lIGZyb20gdGhlIGNvbnRhaW5lckcgb2Ygcm9vdCBlbGVtZW50XG4gICAgcHJpdmF0ZSBfcm9vdENvbnRhaW5lckc/OiBTVkdHRWxlbWVudDtcblxuICAgIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgX2NvbnRleHQhOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFQsIEs+O1xuXG4gICAgZ2V0IGhhc0NoaWxkcmVuKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLmVsZW1lbnQuY2hpbGRyZW47XG4gICAgfVxuXG4gICAgc2V0IGNvbnRleHQodmFsdWU6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8VCwgSz4pIHtcbiAgICAgICAgaWYgKGhhc0JlZm9yZUNvbnRleHRDaGFuZ2U8VCwgSz4odGhpcykpIHtcbiAgICAgICAgICAgIHRoaXMuYmVmb3JlQ29udGV4dENoYW5nZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJldmlvdXNDb250ZXh0ID0gdGhpcy5fY29udGV4dDtcbiAgICAgICAgdGhpcy5fY29udGV4dCA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudEcgPSB0aGlzLmdldEVsZW1lbnRHKCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJHID0gdGhpcy5nZXRDb250YWluZXJHKCk7XG4gICAgICAgICAgICBOT0RFX1RPX0cuc2V0KHRoaXMuZWxlbWVudCwgZWxlbWVudEcpO1xuICAgICAgICAgICAgTk9ERV9UT19DT05UQUlORVJfRy5zZXQodGhpcy5lbGVtZW50LCBjb250YWluZXJHKTtcbiAgICAgICAgICAgIGdldEVsZW1lbnRNYXAodGhpcy5ib2FyZCkuc2V0KHRoaXMuZWxlbWVudC5pZCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgIEVMRU1FTlRfVE9fUkVGLnNldCh0aGlzLmVsZW1lbnQsIHRoaXMucmVmKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTGlzdFJlbmRlcigpO1xuICAgICAgICAgICAgaWYgKGhhc09uQ29udGV4dENoYW5nZWQ8VD4odGhpcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ29udGV4dENoYW5nZWQodmFsdWUsIHByZXZpb3VzQ29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoUGxhaXRFbGVtZW50LmlzUm9vdEVsZW1lbnQodGhpcy5lbGVtZW50KSAmJiB0aGlzLmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZyA9IGNyZWF0ZUcoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250YWluZXJHID0gY3JlYXRlRygpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5lckcuYXBwZW5kKHRoaXMuX2cpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9nID0gY3JlYXRlRygpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5lckcgPSB0aGlzLl9nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgTk9ERV9UT19HLnNldCh0aGlzLmVsZW1lbnQsIHRoaXMuX2cpO1xuICAgICAgICAgICAgTk9ERV9UT19DT05UQUlORVJfRy5zZXQodGhpcy5lbGVtZW50LCB0aGlzLl9jb250YWluZXJHKTtcbiAgICAgICAgICAgIEVMRU1FTlRfVE9fUkVGLnNldCh0aGlzLmVsZW1lbnQsIHRoaXMucmVmKTtcbiAgICAgICAgICAgIGdldEVsZW1lbnRNYXAodGhpcy5ib2FyZCkuc2V0KHRoaXMuZWxlbWVudC5pZCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjb250ZXh0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcbiAgICB9XG5cbiAgICBnZXQgZWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dCAmJiB0aGlzLmNvbnRleHQuZWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgYm9hcmQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0LmJvYXJkO1xuICAgIH1cblxuICAgIGdldCBzZWxlY3RlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dCAmJiB0aGlzLmNvbnRleHQuc2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgbGlzdFJlbmRlcj86IExpc3RSZW5kZXI7XG5cbiAgICBnZXRDb250YWluZXJHKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGFpbmVyRztcbiAgICB9XG5cbiAgICBnZXRFbGVtZW50RygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2c7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IFIpIHt9XG5cbiAgICBpbml0aWFsaXplKCkge1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50LnR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0Q29udGFpbmVyRygpLnNldEF0dHJpYnV0ZShgcGxhaXQtJHt0aGlzLmVsZW1lbnQudHlwZX1gLCAndHJ1ZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAoUGxhaXRFbGVtZW50LmlzUm9vdEVsZW1lbnQodGhpcy5lbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Jvb3RDb250YWluZXJHID0gdGhpcy5fY29udGFpbmVyRztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCByb290Tm9kZSA9IFBsYWl0Tm9kZS5nZXQodGhpcy5ib2FyZCwgcGF0aC5zbGljZSgwLCAxKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcm9vdENvbnRhaW5lckcgPSBQbGFpdEVsZW1lbnQuZ2V0Q29udGFpbmVyRyhyb290Tm9kZSwgeyBzdXBwcmVzc1Rocm93OiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdldENvbnRhaW5lckcoKS5zZXRBdHRyaWJ1dGUoJ3BsYWl0LWRhdGEtaWQnLCB0aGlzLmVsZW1lbnQuaWQpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdGlhbGl6ZUxpc3RSZW5kZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RSZW5kZXIgPSBuZXcgTGlzdFJlbmRlcih0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmJvYXJkLmlzRXhwYW5kZWQodGhpcy5lbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdFJlbmRlci5pbml0aWFsaXplKHRoaXMuZWxlbWVudC5jaGlsZHJlbiEsIHRoaXMuaW5pdGlhbGl6ZUNoaWxkcmVuQ29udGV4dCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSZWYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUxpc3RSZW5kZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMubGlzdFJlbmRlcikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignaW5jb3JyZWN0bHkgaW5pdGlhbGl6ZSBsaXN0IHJlbmRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuYm9hcmQuaXNFeHBhbmRlZCh0aGlzLmVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0UmVuZGVyLnVwZGF0ZSh0aGlzLmVsZW1lbnQuY2hpbGRyZW4hLCB0aGlzLmluaXRpYWxpemVDaGlsZHJlbkNvbnRleHQoKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpc3RSZW5kZXIuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0UmVuZGVyLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVDaGlsZHJlbkNvbnRleHQoKTogUGxhaXRDaGlsZHJlbkNvbnRleHQge1xuICAgICAgICBpZiAoIXRoaXMuX3Jvb3RDb250YWluZXJHKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhbiBub3QgcmVzb2x2ZSByb290IGNvbnRhaW5lciBnJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGJvYXJkOiB0aGlzLmJvYXJkLFxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICBwYXJlbnRHOiB0aGlzLl9yb290Q29udGFpbmVyR1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIGlmIChOT0RFX1RPX0cuZ2V0KHRoaXMuZWxlbWVudCkgPT09IHRoaXMuX2cpIHtcbiAgICAgICAgICAgIE5PREVfVE9fRy5kZWxldGUodGhpcy5lbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBnZXRFbGVtZW50TWFwKHRoaXMuYm9hcmQpLmRlbGV0ZSh0aGlzLmVsZW1lbnQuaWQpO1xuICAgICAgICBpZiAoTk9ERV9UT19DT05UQUlORVJfRy5nZXQodGhpcy5lbGVtZW50KSA9PT0gdGhpcy5fY29udGFpbmVyRykge1xuICAgICAgICAgICAgTk9ERV9UT19DT05UQUlORVJfRy5kZWxldGUodGhpcy5lbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoRUxFTUVOVF9UT19SRUYuZ2V0KHRoaXMuZWxlbWVudCkgPT09IHRoaXMucmVmKSB7XG4gICAgICAgICAgICBFTEVNRU5UX1RPX1JFRi5zZXQodGhpcy5lbGVtZW50LCB0aGlzLnJlZik7XG4gICAgICAgIH1cbiAgICAgICAgcmVtb3ZlU2VsZWN0ZWRFbGVtZW50KHRoaXMuYm9hcmQsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHRoaXMuZ2V0Q29udGFpbmVyRygpLnJlbW92ZSgpO1xuICAgICAgICB0aGlzLmxpc3RSZW5kZXI/LmRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9jb3JlL2VsZW1lbnQvZWxlbWVudC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogc3RvcmUgdGhlIGluc3RhbmNlIHJlZiBmb3IgZWxlbWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0RWxlbWVudFJlZiB7XG59XG5cbiJdfQ==