data-structure-typed 1.50.2 → 1.50.4

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 (203) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -13
  2. package/CHANGELOG.md +1 -1
  3. package/README.md +23 -21
  4. package/README_zh-CN.md +7 -7
  5. package/SPECIFICATION.md +56 -0
  6. package/SPONSOR-zh-CN.md +90 -0
  7. package/SPONSOR.md +54 -0
  8. package/benchmark/report.html +13 -13
  9. package/benchmark/report.json +149 -155
  10. package/dist/cjs/data-structures/base/iterable-base.d.ts +6 -0
  11. package/dist/cjs/data-structures/base/iterable-base.js.map +1 -1
  12. package/dist/cjs/data-structures/binary-tree/{tree-multimap.d.ts → avl-tree-multi-map.d.ts} +43 -10
  13. package/dist/cjs/data-structures/binary-tree/{tree-multimap.js → avl-tree-multi-map.js} +50 -12
  14. package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -0
  15. package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +29 -1
  16. package/dist/cjs/data-structures/binary-tree/avl-tree.js +33 -1
  17. package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
  18. package/dist/cjs/data-structures/binary-tree/binary-indexed-tree.d.ts +22 -0
  19. package/dist/cjs/data-structures/binary-tree/binary-indexed-tree.js +22 -0
  20. package/dist/cjs/data-structures/binary-tree/binary-indexed-tree.js.map +1 -1
  21. package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +1 -1
  22. package/dist/cjs/data-structures/binary-tree/binary-tree.js +1 -1
  23. package/dist/cjs/data-structures/binary-tree/bst.d.ts +46 -13
  24. package/dist/cjs/data-structures/binary-tree/bst.js +51 -20
  25. package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
  26. package/dist/cjs/data-structures/binary-tree/index.d.ts +2 -1
  27. package/dist/cjs/data-structures/binary-tree/index.js +2 -1
  28. package/dist/cjs/data-structures/binary-tree/index.js.map +1 -1
  29. package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +54 -2
  30. package/dist/cjs/data-structures/binary-tree/rb-tree.js +90 -24
  31. package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
  32. package/dist/cjs/data-structures/binary-tree/segment-tree.d.ts +99 -6
  33. package/dist/cjs/data-structures/binary-tree/segment-tree.js +127 -10
  34. package/dist/cjs/data-structures/binary-tree/segment-tree.js.map +1 -1
  35. package/dist/cjs/data-structures/binary-tree/tree-multi-map.d.ts +200 -0
  36. package/dist/cjs/data-structures/binary-tree/tree-multi-map.js +400 -0
  37. package/dist/cjs/data-structures/binary-tree/tree-multi-map.js.map +1 -0
  38. package/dist/cjs/data-structures/graph/abstract-graph.d.ts +0 -78
  39. package/dist/cjs/data-structures/graph/abstract-graph.js +0 -189
  40. package/dist/cjs/data-structures/graph/abstract-graph.js.map +1 -1
  41. package/dist/cjs/data-structures/graph/directed-graph.d.ts +59 -0
  42. package/dist/cjs/data-structures/graph/directed-graph.js +105 -0
  43. package/dist/cjs/data-structures/graph/directed-graph.js.map +1 -1
  44. package/dist/cjs/data-structures/graph/undirected-graph.d.ts +60 -7
  45. package/dist/cjs/data-structures/graph/undirected-graph.js +126 -18
  46. package/dist/cjs/data-structures/graph/undirected-graph.js.map +1 -1
  47. package/dist/cjs/data-structures/hash/hash-map.d.ts +143 -23
  48. package/dist/cjs/data-structures/hash/hash-map.js +196 -62
  49. package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
  50. package/dist/cjs/data-structures/heap/heap.d.ts +29 -19
  51. package/dist/cjs/data-structures/heap/heap.js +29 -20
  52. package/dist/cjs/data-structures/heap/heap.js.map +1 -1
  53. package/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +71 -25
  54. package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +83 -25
  55. package/dist/cjs/data-structures/linked-list/doubly-linked-list.js.map +1 -1
  56. package/dist/cjs/data-structures/linked-list/singly-linked-list.d.ts +26 -3
  57. package/dist/cjs/data-structures/linked-list/singly-linked-list.js +34 -3
  58. package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
  59. package/dist/cjs/data-structures/linked-list/skip-linked-list.d.ts +2 -2
  60. package/dist/cjs/data-structures/linked-list/skip-linked-list.js +2 -2
  61. package/dist/cjs/data-structures/matrix/matrix.d.ts +1 -1
  62. package/dist/cjs/data-structures/matrix/matrix.js +1 -1
  63. package/dist/cjs/data-structures/priority-queue/max-priority-queue.d.ts +10 -0
  64. package/dist/cjs/data-structures/priority-queue/max-priority-queue.js +10 -0
  65. package/dist/cjs/data-structures/priority-queue/max-priority-queue.js.map +1 -1
  66. package/dist/cjs/data-structures/priority-queue/min-priority-queue.d.ts +11 -0
  67. package/dist/cjs/data-structures/priority-queue/min-priority-queue.js +11 -0
  68. package/dist/cjs/data-structures/priority-queue/min-priority-queue.js.map +1 -1
  69. package/dist/cjs/data-structures/priority-queue/priority-queue.d.ts +8 -0
  70. package/dist/cjs/data-structures/priority-queue/priority-queue.js +8 -0
  71. package/dist/cjs/data-structures/priority-queue/priority-queue.js.map +1 -1
  72. package/dist/cjs/data-structures/queue/deque.d.ts +95 -21
  73. package/dist/cjs/data-structures/queue/deque.js +100 -16
  74. package/dist/cjs/data-structures/queue/deque.js.map +1 -1
  75. package/dist/cjs/data-structures/queue/queue.d.ts +65 -45
  76. package/dist/cjs/data-structures/queue/queue.js +65 -45
  77. package/dist/cjs/data-structures/queue/queue.js.map +1 -1
  78. package/dist/cjs/data-structures/stack/stack.d.ts +36 -22
  79. package/dist/cjs/data-structures/stack/stack.js +36 -22
  80. package/dist/cjs/data-structures/stack/stack.js.map +1 -1
  81. package/dist/cjs/data-structures/tree/tree.d.ts +57 -3
  82. package/dist/cjs/data-structures/tree/tree.js +77 -11
  83. package/dist/cjs/data-structures/tree/tree.js.map +1 -1
  84. package/dist/cjs/data-structures/trie/trie.d.ts +100 -36
  85. package/dist/cjs/data-structures/trie/trie.js +115 -36
  86. package/dist/cjs/data-structures/trie/trie.js.map +1 -1
  87. package/dist/cjs/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +5 -0
  88. package/dist/cjs/types/data-structures/binary-tree/avl-tree-multi-map.js +3 -0
  89. package/dist/cjs/types/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -0
  90. package/dist/cjs/types/data-structures/binary-tree/index.d.ts +2 -1
  91. package/dist/cjs/types/data-structures/binary-tree/index.js +2 -1
  92. package/dist/cjs/types/data-structures/binary-tree/index.js.map +1 -1
  93. package/dist/cjs/types/data-structures/binary-tree/tree-multi-map.d.ts +5 -0
  94. package/dist/cjs/types/data-structures/binary-tree/{tree-multimap.js → tree-multi-map.js} +1 -1
  95. package/dist/cjs/types/data-structures/binary-tree/tree-multi-map.js.map +1 -0
  96. package/dist/mjs/data-structures/base/iterable-base.d.ts +6 -0
  97. package/dist/mjs/data-structures/binary-tree/{tree-multimap.d.ts → avl-tree-multi-map.d.ts} +43 -10
  98. package/dist/mjs/data-structures/binary-tree/{tree-multimap.js → avl-tree-multi-map.js} +46 -9
  99. package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +29 -1
  100. package/dist/mjs/data-structures/binary-tree/avl-tree.js +34 -2
  101. package/dist/mjs/data-structures/binary-tree/binary-indexed-tree.d.ts +22 -0
  102. package/dist/mjs/data-structures/binary-tree/binary-indexed-tree.js +22 -0
  103. package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +1 -1
  104. package/dist/mjs/data-structures/binary-tree/binary-tree.js +1 -1
  105. package/dist/mjs/data-structures/binary-tree/bst.d.ts +46 -13
  106. package/dist/mjs/data-structures/binary-tree/bst.js +51 -20
  107. package/dist/mjs/data-structures/binary-tree/index.d.ts +2 -1
  108. package/dist/mjs/data-structures/binary-tree/index.js +2 -1
  109. package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +54 -2
  110. package/dist/mjs/data-structures/binary-tree/rb-tree.js +91 -25
  111. package/dist/mjs/data-structures/binary-tree/segment-tree.d.ts +99 -6
  112. package/dist/mjs/data-structures/binary-tree/segment-tree.js +127 -10
  113. package/dist/mjs/data-structures/binary-tree/tree-multi-map.d.ts +200 -0
  114. package/dist/mjs/data-structures/binary-tree/tree-multi-map.js +397 -0
  115. package/dist/mjs/data-structures/graph/abstract-graph.d.ts +0 -78
  116. package/dist/mjs/data-structures/graph/abstract-graph.js +0 -188
  117. package/dist/mjs/data-structures/graph/directed-graph.d.ts +59 -0
  118. package/dist/mjs/data-structures/graph/directed-graph.js +105 -0
  119. package/dist/mjs/data-structures/graph/undirected-graph.d.ts +60 -7
  120. package/dist/mjs/data-structures/graph/undirected-graph.js +127 -19
  121. package/dist/mjs/data-structures/hash/hash-map.d.ts +143 -23
  122. package/dist/mjs/data-structures/hash/hash-map.js +204 -70
  123. package/dist/mjs/data-structures/heap/heap.d.ts +29 -19
  124. package/dist/mjs/data-structures/heap/heap.js +29 -20
  125. package/dist/mjs/data-structures/linked-list/doubly-linked-list.d.ts +71 -25
  126. package/dist/mjs/data-structures/linked-list/doubly-linked-list.js +86 -28
  127. package/dist/mjs/data-structures/linked-list/singly-linked-list.d.ts +26 -3
  128. package/dist/mjs/data-structures/linked-list/singly-linked-list.js +36 -5
  129. package/dist/mjs/data-structures/linked-list/skip-linked-list.d.ts +2 -2
  130. package/dist/mjs/data-structures/linked-list/skip-linked-list.js +2 -2
  131. package/dist/mjs/data-structures/matrix/matrix.d.ts +1 -1
  132. package/dist/mjs/data-structures/matrix/matrix.js +1 -1
  133. package/dist/mjs/data-structures/priority-queue/max-priority-queue.d.ts +10 -0
  134. package/dist/mjs/data-structures/priority-queue/max-priority-queue.js +10 -0
  135. package/dist/mjs/data-structures/priority-queue/min-priority-queue.d.ts +11 -0
  136. package/dist/mjs/data-structures/priority-queue/min-priority-queue.js +11 -0
  137. package/dist/mjs/data-structures/priority-queue/priority-queue.d.ts +8 -0
  138. package/dist/mjs/data-structures/priority-queue/priority-queue.js +8 -0
  139. package/dist/mjs/data-structures/queue/deque.d.ts +95 -21
  140. package/dist/mjs/data-structures/queue/deque.js +105 -21
  141. package/dist/mjs/data-structures/queue/queue.d.ts +65 -45
  142. package/dist/mjs/data-structures/queue/queue.js +65 -45
  143. package/dist/mjs/data-structures/stack/stack.d.ts +36 -22
  144. package/dist/mjs/data-structures/stack/stack.js +36 -22
  145. package/dist/mjs/data-structures/tree/tree.d.ts +57 -3
  146. package/dist/mjs/data-structures/tree/tree.js +80 -14
  147. package/dist/mjs/data-structures/trie/trie.d.ts +100 -36
  148. package/dist/mjs/data-structures/trie/trie.js +118 -39
  149. package/dist/mjs/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +5 -0
  150. package/dist/mjs/types/data-structures/binary-tree/index.d.ts +2 -1
  151. package/dist/mjs/types/data-structures/binary-tree/index.js +2 -1
  152. package/dist/mjs/types/data-structures/binary-tree/tree-multi-map.d.ts +5 -0
  153. package/dist/mjs/types/data-structures/binary-tree/tree-multi-map.js +1 -0
  154. package/dist/umd/data-structure-typed.js +1876 -656
  155. package/dist/umd/data-structure-typed.min.js +2 -2
  156. package/dist/umd/data-structure-typed.min.js.map +1 -1
  157. package/package.json +59 -58
  158. package/src/data-structures/base/iterable-base.ts +12 -0
  159. package/src/data-structures/binary-tree/{tree-multimap.ts → avl-tree-multi-map.ts} +59 -20
  160. package/src/data-structures/binary-tree/avl-tree.ts +37 -3
  161. package/src/data-structures/binary-tree/binary-indexed-tree.ts +22 -0
  162. package/src/data-structures/binary-tree/binary-tree.ts +1 -1
  163. package/src/data-structures/binary-tree/bst.ts +51 -19
  164. package/src/data-structures/binary-tree/index.ts +2 -1
  165. package/src/data-structures/binary-tree/rb-tree.ts +99 -28
  166. package/src/data-structures/binary-tree/segment-tree.ts +145 -11
  167. package/src/data-structures/binary-tree/tree-multi-map.ts +463 -0
  168. package/src/data-structures/graph/abstract-graph.ts +0 -211
  169. package/src/data-structures/graph/directed-graph.ts +122 -0
  170. package/src/data-structures/graph/undirected-graph.ts +143 -19
  171. package/src/data-structures/hash/hash-map.ts +228 -76
  172. package/src/data-structures/heap/heap.ts +31 -20
  173. package/src/data-structures/linked-list/doubly-linked-list.ts +96 -29
  174. package/src/data-structures/linked-list/singly-linked-list.ts +42 -6
  175. package/src/data-structures/linked-list/skip-linked-list.ts +2 -2
  176. package/src/data-structures/matrix/matrix.ts +1 -1
  177. package/src/data-structures/priority-queue/max-priority-queue.ts +10 -0
  178. package/src/data-structures/priority-queue/min-priority-queue.ts +11 -0
  179. package/src/data-structures/priority-queue/priority-queue.ts +8 -0
  180. package/src/data-structures/queue/deque.ts +118 -22
  181. package/src/data-structures/queue/queue.ts +68 -45
  182. package/src/data-structures/stack/stack.ts +39 -23
  183. package/src/data-structures/tree/tree.ts +89 -15
  184. package/src/data-structures/trie/trie.ts +131 -40
  185. package/src/types/data-structures/binary-tree/avl-tree-multi-map.ts +8 -0
  186. package/src/types/data-structures/binary-tree/index.ts +2 -1
  187. package/src/types/data-structures/binary-tree/tree-multi-map.ts +8 -0
  188. package/test/integration/index.html +2 -2
  189. package/test/performance/data-structures/graph/directed-graph.test.ts +1 -1
  190. package/test/unit/data-structures/binary-tree/{tree-multimap.test.ts → avl-tree-multi-map.test.ts} +55 -55
  191. package/test/unit/data-structures/binary-tree/overall.test.ts +24 -25
  192. package/test/unit/data-structures/binary-tree/tree-multi-map.test.ts +706 -0
  193. package/test/unit/data-structures/graph/abstract-graph.test.ts +3 -0
  194. package/test/unit/data-structures/graph/directed-graph.test.ts +189 -253
  195. package/test/unit/data-structures/graph/undirected-graph.test.ts +263 -18
  196. package/test/unit/data-structures/queue/queue.test.ts +2 -0
  197. package/test/unit/unrestricted-interconversion.test.ts +3 -3
  198. package/dist/cjs/data-structures/binary-tree/tree-multimap.js.map +0 -1
  199. package/dist/cjs/types/data-structures/binary-tree/tree-multimap.d.ts +0 -5
  200. package/dist/cjs/types/data-structures/binary-tree/tree-multimap.js.map +0 -1
  201. package/dist/mjs/types/data-structures/binary-tree/tree-multimap.d.ts +0 -5
  202. package/src/types/data-structures/binary-tree/tree-multimap.ts +0 -8
  203. /package/dist/mjs/types/data-structures/binary-tree/{tree-multimap.js → avl-tree-multi-map.js} +0 -0
@@ -820,195 +820,6 @@ class AbstractGraph extends base_1.IterableEntryBase {
820
820
  }
821
821
  return { costs, predecessor };
822
822
  }
823
- /**
824
- * Time Complexity: O(V + E) - Linear time (Tarjan's algorithm).
825
- * Space Complexity: O(V) - Linear space (Tarjan's algorithm).
826
- * Tarjan is an algorithm based on dfs,which is used to solve the connectivity problem of graphs.
827
- * Tarjan can find cycles in directed or undirected graph
828
- * Tarjan can find the articulation points and bridges(critical edgeMap) of undirected graphs in linear time,
829
- * Tarjan solve the bi-connected components of undirected graphs;
830
- * Tarjan can find the SSC(strongly connected components), articulation points, and bridges of directed graphs.
831
- * /
832
-
833
- /**
834
- * Time Complexity: O(V + E) - Linear time (Tarjan's algorithm).
835
- * Space Complexity: O(V) - Linear space (Tarjan's algorithm).
836
- *
837
- * Tarjan is an algorithm based on dfs,which is used to solve the connectivity problem of graphs.
838
- * Tarjan can find cycles in directed or undirected graph
839
- * Tarjan can find the articulation points and bridges(critical edgeMap) of undirected graphs in linear time,
840
- * Tarjan solve the bi-connected components of undirected graphs;
841
- * Tarjan can find the SSC(strongly connected components), articulation points, and bridges of directed graphs.
842
- * The `tarjan` function is used to perform various graph analysis tasks such as finding articulation points, bridges,
843
- * strongly connected components (SCCs), and cycles in a graph.
844
- * @param {boolean} [needCutVertexes] - A boolean value indicating whether or not to calculate and return the
845
- * articulation points in the graph. Articulation points are the vertexMap in a graph whose removal would increase the
846
- * number of connected components in the graph.
847
- * @param {boolean} [needBridges] - A boolean flag indicating whether the algorithm should find and return the bridges
848
- * (edgeMap whose removal would increase the number of connected components in the graph).
849
- * @param {boolean} [needSCCs] - A boolean value indicating whether the Strongly Connected Components (SCCs) of the
850
- * graph are needed. If set to true, the function will calculate and return the SCCs of the graph. If set to false, the
851
- * SCCs will not be calculated or returned.
852
- * @param {boolean} [needCycles] - A boolean flag indicating whether the algorithm should find cycles in the graph. If
853
- * set to true, the algorithm will return a map of cycles, where the keys are the low values of the SCCs and the values
854
- * are arrays of vertexMap that form cycles within the SCCs.
855
- * @returns The function `tarjan` returns an object with the following properties:
856
- */
857
- tarjan(needCutVertexes = false, needBridges = false, needSCCs = true, needCycles = false) {
858
- // !! in undirected graph we will not let child visit parent when dfs
859
- // !! articulation point(in dfs search tree not in graph): (cur !== root && cur.has(child)) && (low(child) >= dfn(cur)) || (cur === root && cur.children() >= 2)
860
- // !! bridge: low(child) > dfn(cur)
861
- const defaultConfig = false;
862
- if (needCutVertexes === undefined)
863
- needCutVertexes = defaultConfig;
864
- if (needBridges === undefined)
865
- needBridges = defaultConfig;
866
- if (needSCCs === undefined)
867
- needSCCs = defaultConfig;
868
- if (needCycles === undefined)
869
- needCycles = defaultConfig;
870
- const dfnMap = new Map();
871
- const lowMap = new Map();
872
- const vertexMap = this._vertexMap;
873
- vertexMap.forEach(v => {
874
- dfnMap.set(v, -1);
875
- lowMap.set(v, Infinity);
876
- });
877
- const [root] = vertexMap.values();
878
- const cutVertexes = [];
879
- const bridges = [];
880
- let dfn = 0;
881
- const dfs = (cur, parent) => {
882
- dfn++;
883
- dfnMap.set(cur, dfn);
884
- lowMap.set(cur, dfn);
885
- const neighbors = this.getNeighbors(cur);
886
- let childCount = 0; // child in dfs tree not child in graph
887
- for (const neighbor of neighbors) {
888
- if (neighbor !== parent) {
889
- if (dfnMap.get(neighbor) === -1) {
890
- childCount++;
891
- dfs(neighbor, cur);
892
- }
893
- const childLow = lowMap.get(neighbor);
894
- const curLow = lowMap.get(cur);
895
- // TODO after no-non-undefined-assertion not ensure the logic
896
- if (curLow !== undefined && childLow !== undefined) {
897
- lowMap.set(cur, Math.min(curLow, childLow));
898
- }
899
- const curFromMap = dfnMap.get(cur);
900
- if (childLow !== undefined && curFromMap !== undefined) {
901
- if (needCutVertexes) {
902
- if ((cur === root && childCount >= 2) || (cur !== root && childLow >= curFromMap)) {
903
- // todo not ensure the logic if (cur === root && childCount >= 2 || ((cur !== root) && (childLow >= curFromMap))) {
904
- cutVertexes.push(cur);
905
- }
906
- }
907
- if (needBridges) {
908
- if (childLow > curFromMap) {
909
- const edgeCurToNeighbor = this.getEdge(cur, neighbor);
910
- if (edgeCurToNeighbor) {
911
- bridges.push(edgeCurToNeighbor);
912
- }
913
- }
914
- }
915
- }
916
- }
917
- }
918
- };
919
- dfs(root, undefined);
920
- let SCCs = new Map();
921
- const getSCCs = () => {
922
- const SCCs = new Map();
923
- lowMap.forEach((low, vertex) => {
924
- var _a;
925
- if (!SCCs.has(low)) {
926
- SCCs.set(low, [vertex]);
927
- }
928
- else {
929
- (_a = SCCs.get(low)) === null || _a === void 0 ? void 0 : _a.push(vertex);
930
- }
931
- });
932
- return SCCs;
933
- };
934
- if (needSCCs) {
935
- SCCs = getSCCs();
936
- }
937
- const cycles = new Map();
938
- if (needCycles) {
939
- const visitedMap = new Map();
940
- const stack = [];
941
- const findCyclesDFS = (cur, parent) => {
942
- visitedMap.set(cur, true);
943
- stack.push(cur);
944
- const neighbors = this.getNeighbors(cur);
945
- for (const neighbor of neighbors) {
946
- if (!visitedMap.get(neighbor)) {
947
- findCyclesDFS(neighbor, cur);
948
- }
949
- else if (stack.includes(neighbor) && neighbor !== parent) {
950
- const cycleStartIndex = stack.indexOf(neighbor);
951
- const cycle = stack.slice(cycleStartIndex);
952
- const cycleLow = Math.min(...cycle.map(v => dfnMap.get(v) || Infinity));
953
- cycles.set(cycleLow, cycle);
954
- }
955
- }
956
- stack.pop();
957
- };
958
- vertexMap.forEach(v => {
959
- if (!visitedMap.get(v)) {
960
- findCyclesDFS(v, undefined);
961
- }
962
- });
963
- }
964
- return { dfnMap, lowMap, bridges, cutVertexes, SCCs, cycles };
965
- }
966
- /**
967
- * Time Complexity: O(V + E) - Depends on the implementation (Tarjan's algorithm).
968
- * Space Complexity: O(V) - Depends on the implementation (Tarjan's algorithm).
969
- */
970
- /**
971
- * Time Complexity: O(V + E) - Depends on the implementation (Tarjan's algorithm).
972
- * Space Complexity: O(V) - Depends on the implementation (Tarjan's algorithm).
973
- *
974
- * The function returns a map that associates each vertex object with its corresponding depth-first
975
- * number.
976
- * @returns A Map object with keys of type VO and values of type number.
977
- */
978
- getDFNMap() {
979
- return this.tarjan(false, false, false, false).dfnMap;
980
- }
981
- /**
982
- * The function returns a Map object that contains the low values of each vertex in a Tarjan
983
- * algorithm.
984
- * @returns The method `getLowMap()` is returning a `Map` object with keys of type `VO` and values of
985
- * type `number`.
986
- */
987
- getLowMap() {
988
- return this.tarjan(false, false, false, false).lowMap;
989
- }
990
- /**
991
- * The function "getCutVertexes" returns an array of cut vertexes using the Tarjan algorithm.
992
- * @returns an array of VO objects, specifically the cut vertexes.
993
- */
994
- getCutVertexes() {
995
- return this.tarjan(true, false, false, false).cutVertexes;
996
- }
997
- /**
998
- * The function "getSCCs" returns a map of strongly connected components (SCCs) using the Tarjan
999
- * algorithm.
1000
- * @returns a map where the keys are numbers and the values are arrays of VO objects.
1001
- */
1002
- getSCCs() {
1003
- return this.tarjan(false, false, true, false).SCCs;
1004
- }
1005
- /**
1006
- * The function "getBridges" returns an array of bridges using the Tarjan algorithm.
1007
- * @returns the bridges found using the Tarjan algorithm.
1008
- */
1009
- getBridges() {
1010
- return this.tarjan(false, true, false, false).bridges;
1011
- }
1012
823
  /**
1013
824
  * O(V+E+C)
1014
825
  * O(V+C)
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-graph.js","sourceRoot":"","sources":["../../../../src/data-structures/graph/abstract-graph.ts"],"names":[],"mappings":";;;AAQA,uCAAqC;AACrC,kCAA4C;AAE5C,kCAA+B;AAC/B,oCAAiC;AAEjC,MAAsB,cAAc;IAIlC;;;;;;OAMG;IACH,YAAsB,GAAc,EAAE,KAAS;QAC7C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAfD,wCAeC;AAED,MAAsB,YAAY;IAIhC;;;;;;;;OAQG;IACH,YAAsB,MAAe,EAAE,KAAS;QAC9C,IAAI,CAAC,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAA,cAAM,GAAE,CAAC;IAC5B,CAAC;IAID,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CAMF;AA7BD,oCA6BC;AAED,MAAsB,aAMpB,SAAQ,wBAA2C;IAEnD;QACE,KAAK,EAAE,CAAC;QAGA,eAAU,GAAuB,IAAI,GAAG,EAAiB,CAAC;IAFpE,CAAC;IAID,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,SAAS,CAAC,CAAqB;QACjC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACtB,CAAC;IAkCD;;;OAGG;IAEH;;;;;;;;;OASG;IACH,SAAS,CAAC,SAAoB;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;IACrD,CAAC;IAED;;;OAGG;IAEH;;;;;;;;OAQG;IACH,SAAS,CAAC,WAA2B;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;IAC9D,CAAC;IAMD;;;OAGG;IAEH,SAAS,CAAC,WAA2B,EAAE,KAAS;QAC9C,IAAI,WAAW,YAAY,cAAc,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,WAAW,CAAC,YAAiB;QAC3B,MAAM,gBAAgB,GAAG,OAAO,YAAY,CAAC;QAC7C,OAAO,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,KAAK,QAAQ,CAAC;IACxE,CAAC;IASD;;;OAGG;IAEH;;;;;;;;;OASG;IACH,kBAAkB,CAAC,SAA6B;QAC9C,MAAM,OAAO,GAAc,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAkB,EAAE,EAAkB;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC,IAAI,CAAC;IAChB,CAAC;IAMD;;;OAGG;IAEH,OAAO,CAAC,SAA8B,EAAE,IAAqB,EAAE,MAAe,EAAE,KAAS;QACvF,IAAI,SAAS,YAAY,YAAY,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,YAAY,cAAc,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3F,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACvE,IAAI,SAAS,YAAY,cAAc;oBAAE,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC;gBACnE,IAAI,IAAI,YAAY,cAAc;oBAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;gBACpD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAChE,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,QAAwB,EAAE,SAAyB,EAAE,MAAc;QAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,EAAkB,EAAE,EAAkB,EAAE,KAAK,GAAG,IAAI;QACrE,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAEpC,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAiC,EAAE,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEjD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;YAEtC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAC;YAC1C,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC5C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC;oBACpC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,gBAAgB,CAAC,IAAU;;QACzB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,GAAG,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,0CAAE,MAAM,KAAI,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAiB,CAAC,EAAkB,EAAE,EAAkB,EAAE,QAAkB;QAC1E,IAAI,QAAQ,KAAK,SAAS;YAAE,QAAQ,GAAG,KAAK,CAAC;QAE7C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACjD,IAAI,GAAG,GAAG,QAAQ,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;aAAM,CAAC;YACN,MAAM;YACN,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC;gBAC1B,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,OAAO,GAAqB,IAAI,GAAG,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,aAAK,CAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3B,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC1B,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;wBACpB,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,4CAA4C;oBAC5C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;wBACtB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;wBACzC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;4BACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAC3B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gCAC5B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACvB,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,EAAE,CAAC;YACT,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;;;;;OAkBG;IACH,iBAAiB,CAAC,EAAkB,EAAE,EAAkB,EAAE,QAAkB,EAAE,KAAK,GAAG,KAAK;;QACzF,IAAI,QAAQ,KAAK,SAAS;YAAE,QAAQ,GAAG,KAAK,CAAC;QAE7C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBACxD,IAAI,GAAG,GAAG,QAAQ,CAAC;gBACnB,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAClB,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBAClD,IAAI,aAAa,GAAG,GAAG,EAAE,CAAC;wBACxB,GAAG,GAAG,aAAa,CAAC;wBACpB,QAAQ,GAAG,KAAK,CAAC;oBACnB,CAAC;oBACD,KAAK,EAAE,CAAC;gBACV,CAAC;gBACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,MAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,0CAAE,OAAO,mCAAI,EAAE,CAAC;YAC1D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM;YACN,IAAI,OAAO,GAAS,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC;gBAAE,OAAO,EAAE,CAAC;YAErC,MAAM,GAAG,GAAG,CAAC,GAAO,EAAE,IAAQ,EAAE,QAAiB,EAAE,IAAU,EAAE,EAAE;gBAC/D,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACjB,OAAO,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;oBAC7B,OAAO;gBACT,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACzC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACpB,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBACpC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACb,CAAC;gBACH,CAAC;gBAED,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC,CAAC;YAEF,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,EAAM,EAAE,EAAE,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IAEH;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CACjB,GAAmB,EACnB,OAAmC,SAAS,EAC5C,aAAsB,KAAK,EAC3B,WAAoB,KAAK;QAEzB,IAAI,OAAO,GAAG,QAAQ,CAAC;QACvB,IAAI,OAAO,GAAmB,SAAS,CAAC;QACxC,IAAI,OAAO,GAAS,EAAE,CAAC;QACvB,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,MAAM,OAAO,GAAoB,IAAI,GAAG,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAY,IAAI,GAAG,EAAE,CAAC;QAChC,MAAM,MAAM,GAA4B,IAAI,GAAG,EAAE,CAAC,CAAC,cAAc;QACjE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,WAAW,YAAY,cAAc;gBAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAEjC,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,IAAI,GAAG,GAAG,QAAQ,CAAC;YACnB,IAAI,IAAI,GAAmB,SAAS,CAAC;YACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnB,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;wBAChB,GAAG,GAAG,KAAK,CAAC;wBACZ,IAAI,GAAG,GAAG,CAAC;oBACb,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,CAAC,IAAoB,EAAE,EAAE;YACxC,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;gBAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAE9B,IAAI,WAAW,YAAY,cAAc,EAAE,CAAC;oBAC1C,MAAM,IAAI,GAAS,CAAC,WAAW,CAAC,CAAC;oBACjC,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACrC,OAAO,MAAM,EAAE,CAAC;wBACd,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAClB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC9B,CAAC;oBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;oBAChC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;wBAAE,OAAO,GAAG,QAAQ,CAAC;oBAC3C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;YAC7B,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,UAAU,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;oBACrC,IAAI,UAAU,EAAE,CAAC;wBACf,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC;oBAChD,CAAC;oBACD,IAAI,QAAQ,EAAE,CAAC;wBACb,QAAQ,CAAC,UAAU,CAAC,CAAC;oBACvB,CAAC;oBACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;gBAC5D,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACzC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;wBACzC,IAAI,IAAI,EAAE,CAAC;4BACT,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4BACpC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;4BAC9C,6DAA6D;4BAC7D,IAAI,UAAU,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gCAC9D,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,GAAG,eAAe,EAAE,CAAC;oCAC/C,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;oCAChD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gCAC5B,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,UAAU;YACV,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACpB,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC;wBAChB,OAAO,GAAG,CAAC,CAAC;wBACZ,IAAI,QAAQ;4BAAE,OAAO,GAAG,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QAEH,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;;;OAYG;IAEH;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CACN,GAAmB,EACnB,OAAmC,SAAS,EAC5C,aAAsB,KAAK,EAC3B,WAAoB,KAAK;;QAEzB,IAAI,OAAO,GAAG,QAAQ,CAAC;QACvB,IAAI,OAAO,GAAmB,SAAS,CAAC;QACxC,IAAI,OAAO,GAAS,EAAE,CAAC;QACvB,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,MAAM,OAAO,GAAoB,IAAI,GAAG,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAY,IAAI,GAAG,EAAE,CAAC;QAChC,MAAM,MAAM,GAA4B,IAAI,GAAG,EAAE,CAAC,CAAC,cAAc;QAEjE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5D,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAEjC,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,WAAW,YAAY,cAAc;gBAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,WAAI,CAA6B,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/F,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAEvC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAEjC;;;;WAIG;QACH,MAAM,QAAQ,GAAG,CAAC,IAAoB,EAAE,EAAE;YACxC,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;gBAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,WAAW,YAAY,cAAc,EAAE,CAAC;oBAC1C,MAAM,IAAI,GAAS,CAAC,WAAW,CAAC,CAAC;oBACjC,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACrC,OAAO,MAAM,EAAE,CAAC;wBACd,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAClB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC9B,CAAC;oBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;oBAChC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;wBAAE,OAAO,GAAG,QAAQ,CAAC;oBAC3C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,CAAC;YAC9B,MAAM,GAAG,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAC;YAC/B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,UAAU,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;wBACrC,IAAI,UAAU,EAAE,CAAC;4BACf,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC;wBAChD,CAAC;wBACD,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,CAAC,UAAU,CAAC,CAAC;wBACvB,CAAC;wBACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;oBAC5D,CAAC;oBACD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;oBACzC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;wBACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACxB,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,0CAAE,MAAM,CAAC;4BACnD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gCAC/B,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gCAChD,IAAI,iBAAiB,EAAE,CAAC;oCACtB,IAAI,IAAI,GAAG,MAAM,GAAG,iBAAiB,EAAE,CAAC;wCACtC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;wCAClD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wCAC1B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC;oCACvC,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACpB,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC;wBAChB,OAAO,GAAG,CAAC,CAAC;wBACZ,IAAI,QAAQ;4BAAE,OAAO,GAAG,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,WAAW,CAAC,GAAmB,EAAE,iBAA2B,EAAE,MAAgB,EAAE,OAAiB;QAC/F,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,GAAG,KAAK,CAAC;QACzC,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,GAAG,KAAK,CAAC;QAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,MAAM,OAAO,GAAoB,IAAI,GAAG,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAgB,IAAI,GAAG,EAAE,CAAC,CAAC,cAAc;QACrD,IAAI,GAAG,GAAG,QAAQ,CAAC;QACnB,IAAI,OAAO,GAAS,EAAE,CAAC;QACvB,OAAO;QACP,IAAI,gBAAqC,CAAC;QAC1C,IAAI,iBAAiB;YAAE,gBAAgB,GAAG,KAAK,CAAC;QAChD,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QAElF,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;QAElC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;oBACpB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBACjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBACnD,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC;4BAC9D,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;4BACjC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC9B,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,OAAO,GAAmB,SAAS,CAAC;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACpB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;wBACZ,GAAG,GAAG,CAAC,CAAC;wBACR,IAAI,OAAO;4BAAE,OAAO,GAAG,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;gBAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,WAAW,YAAY,cAAc,EAAE,CAAC;oBAC1C,MAAM,IAAI,GAAS,CAAC,WAAW,CAAC,CAAC;oBACjC,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACrC,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAClB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC9B,CAAC;oBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;oBAChC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO;wBAAE,OAAO,GAAG,QAAQ,CAAC;oBAC9C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACjB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,GAAG,MAAM,GAAG,OAAO;wBAAE,gBAAgB,GAAG,IAAI,CAAC;gBAClF,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IACpE,CAAC;IAED;;;;;;;OAOG;IAEH;;;;;OAKG;IAEH;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa;;QACX,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;QAE/B,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAyB,EAAE,CAAC;QAC7C,aAAa;QAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACd,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;YAChC,CAAC;QACH,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0CAAE,MAAM,KAAI,QAAQ,CAAC;YAC3F,CAAC;QACH,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5C,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACxC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAChC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,MAAM,CACJ,kBAA2B,KAAK,EAChC,cAAuB,KAAK,EAC5B,WAAoB,IAAI,EACxB,aAAsB,KAAK;QAE3B,qEAAqE;QACrE,gKAAgK;QAChK,mCAAmC;QAEnC,MAAM,aAAa,GAAG,KAAK,CAAC;QAC5B,IAAI,eAAe,KAAK,SAAS;YAAE,eAAe,GAAG,aAAa,CAAC;QACnE,IAAI,WAAW,KAAK,SAAS;YAAE,WAAW,GAAG,aAAa,CAAC;QAC3D,IAAI,QAAQ,KAAK,SAAS;YAAE,QAAQ,GAAG,aAAa,CAAC;QACrD,IAAI,UAAU,KAAK,SAAS;YAAE,UAAU,GAAG,aAAa,CAAC;QAEzD,MAAM,MAAM,GAAoB,IAAI,GAAG,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAoB,IAAI,GAAG,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QAElC,MAAM,WAAW,GAAS,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAS,EAAE,CAAC;QACzB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,MAAM,GAAG,GAAG,CAAC,GAAO,EAAE,MAAsB,EAAE,EAAE;YAC9C,GAAG,EAAE,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAErB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,uCAAuC;YAC3D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACxB,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;wBAChC,UAAU,EAAE,CAAC;wBACb,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBACrB,CAAC;oBACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACtC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC/B,6DAA6D;oBAC7D,IAAI,MAAM,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBACnD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAC9C,CAAC;oBACD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACnC,IAAI,QAAQ,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;wBACvD,IAAI,eAAe,EAAE,CAAC;4BACpB,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,QAAQ,IAAI,UAAU,CAAC,EAAE,CAAC;gCAClF,mHAAmH;gCACnH,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACxB,CAAC;wBACH,CAAC;wBAED,IAAI,WAAW,EAAE,CAAC;4BAChB,IAAI,QAAQ,GAAG,UAAU,EAAE,CAAC;gCAC1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gCACtD,IAAI,iBAAiB,EAAE,CAAC;oCACtB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gCAClC,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAErB,IAAI,IAAI,GAAsB,IAAI,GAAG,EAAE,CAAC;QAExC,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,MAAM,IAAI,GAAsB,IAAI,GAAG,EAAE,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;;gBAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,MAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,0CAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,GAAG,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAsB,IAAI,GAAG,EAAE,CAAC;QAE5C,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,UAAU,GAAqB,IAAI,GAAG,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAS,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,CAAC,GAAO,EAAE,MAAsB,EAAE,EAAE;gBACxD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEhB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAEzC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC9B,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAC/B,CAAC;yBAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;wBAC3D,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAChD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;wBAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;wBACxE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBAED,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,CAAC,CAAC;YAEF,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvB,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAChE,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC;IACxD,CAAC;IAED;;;;;OAKG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,kBAA2B,KAAK;QACxC,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,MAAM,OAAO,GAAY,IAAI,GAAG,EAAE,CAAC;QAEnC,MAAM,GAAG,GAAG,CAAC,MAAU,EAAE,WAAwB,EAAE,OAAgB,EAAE,EAAE;YACrE,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,IACE,CAAC,CAAC,CAAC,eAAe,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;oBAC9F,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,EAC7B,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAE7B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjD,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAClD,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvB,WAAW,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,0CAA0C;QAC1C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;QAEpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YAE5C,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAS;iBAClC,CAAC;gBACJ,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,SAA2D,EAAE,OAAa;QAC/E,MAAM,QAAQ,GAAiC,EAAE,CAAC;QAClD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YAChC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;gBACrD,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC9B,CAAC;YACD,KAAK,EAAE,CAAC;QACV,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;;;OAYG;IACH,GAAG,CAAI,QAAoD,EAAE,OAAa;QACxE,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAC7D,KAAK,EAAE,CAAC;QACV,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEQ,CAAE,YAAY;QACrB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAIS,UAAU,CAAC,SAAa;QAChC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;YACb,6DAA6D;QAC/D,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAES,UAAU,CAAC,WAA2B;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;IACrD,CAAC;IAES,aAAa,CAAC,WAA2B;QACjD,OAAO,WAAW,YAAY,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;IAC/E,CAAC;CACF;AAztCD,sCAytCC"}
1
+ {"version":3,"file":"abstract-graph.js","sourceRoot":"","sources":["../../../../src/data-structures/graph/abstract-graph.ts"],"names":[],"mappings":"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"}
@@ -335,12 +335,71 @@ export declare class DirectedGraph<V = any, E = any, VO extends DirectedVertex<V
335
335
  * @return A boolean value
336
336
  */
337
337
  isEmpty(): boolean;
338
+ /**
339
+ * Time Complexity: O(1)
340
+ * Space Complexity: O(1)
341
+ */
342
+ /**
343
+ * Time Complexity: O(1)
344
+ * Space Complexity: O(1)
345
+ *
346
+ * The clear function resets the vertex map, in-edge map, and out-edge map.
347
+ */
348
+ clear(): void;
338
349
  /**
339
350
  * The clone function creates a new DirectedGraph object with the same vertices and edges as the original.
340
351
  *
341
352
  * @return A new instance of the directedgraph class
342
353
  */
343
354
  clone(): DirectedGraph<V, E, VO, EO>;
355
+ /**
356
+ * Time Complexity: O(V + E)
357
+ * Space Complexity: O(V)
358
+ * Tarjan is an algorithm based on dfs,which is used to solve the connectivity problem of graphs.
359
+ * Tarjan can find the SSC(strongly connected components), articulation points, and bridges of directed graphs.
360
+ */
361
+ /**
362
+ * Time Complexity: O(V + E)
363
+ * Space Complexity: O(V)
364
+ * Tarjan is an algorithm based on dfs,which is used to solve the connectivity problem of graphs.
365
+ * Tarjan can find the SSC(strongly connected components), articulation points, and bridges of directed graphs.
366
+ *
367
+ * The function `tarjan` implements the Tarjan's algorithm to find strongly connected components in a
368
+ * graph.
369
+ * @returns The function `tarjan()` returns an object with three properties: `dfnMap`, `lowMap`, and
370
+ * `SCCs`.
371
+ */
372
+ tarjan(): {
373
+ dfnMap: Map<VO, number>;
374
+ lowMap: Map<VO, number>;
375
+ SCCs: Map<number, VO[]>;
376
+ };
377
+ /**
378
+ * Time Complexity: O(V + E) - Depends on the implementation (Tarjan's algorithm).
379
+ * Space Complexity: O(V) - Depends on the implementation (Tarjan's algorithm).
380
+ */
381
+ /**
382
+ * Time Complexity: O(V + E) - Depends on the implementation (Tarjan's algorithm).
383
+ * Space Complexity: O(V) - Depends on the implementation (Tarjan's algorithm).
384
+ *
385
+ * The function returns a map that associates each vertex object with its corresponding depth-first
386
+ * number.
387
+ * @returns A Map object with keys of type VO and values of type number.
388
+ */
389
+ getDFNMap(): Map<VO, number>;
390
+ /**
391
+ * The function returns a Map object that contains the low values of each vertex in a Tarjan
392
+ * algorithm.
393
+ * @returns The method `getLowMap()` is returning a `Map` object with keys of type `VO` and values of
394
+ * type `number`.
395
+ */
396
+ getLowMap(): Map<VO, number>;
397
+ /**
398
+ * The function "getSCCs" returns a map of strongly connected components (SCCs) using the Tarjan
399
+ * algorithm.
400
+ * @returns a map where the keys are numbers and the values are arrays of VO objects.
401
+ */
402
+ getSCCs(): Map<number, VO[]>;
344
403
  /**
345
404
  * Time Complexity: O(1)
346
405
  * Space Complexity: O(1)
@@ -541,6 +541,21 @@ class DirectedGraph extends abstract_graph_1.AbstractGraph {
541
541
  isEmpty() {
542
542
  return this.vertexMap.size === 0 && this.inEdgeMap.size === 0 && this.outEdgeMap.size === 0;
543
543
  }
544
+ /**
545
+ * Time Complexity: O(1)
546
+ * Space Complexity: O(1)
547
+ */
548
+ /**
549
+ * Time Complexity: O(1)
550
+ * Space Complexity: O(1)
551
+ *
552
+ * The clear function resets the vertex map, in-edge map, and out-edge map.
553
+ */
554
+ clear() {
555
+ this._vertexMap = new Map();
556
+ this._inEdgeMap = new Map();
557
+ this._outEdgeMap = new Map();
558
+ }
544
559
  /**
545
560
  * The clone function creates a new DirectedGraph object with the same vertices and edges as the original.
546
561
  *
@@ -553,6 +568,96 @@ class DirectedGraph extends abstract_graph_1.AbstractGraph {
553
568
  cloned.outEdgeMap = new Map(this.outEdgeMap);
554
569
  return cloned;
555
570
  }
571
+ /**
572
+ * Time Complexity: O(V + E)
573
+ * Space Complexity: O(V)
574
+ * Tarjan is an algorithm based on dfs,which is used to solve the connectivity problem of graphs.
575
+ * Tarjan can find the SSC(strongly connected components), articulation points, and bridges of directed graphs.
576
+ */
577
+ /**
578
+ * Time Complexity: O(V + E)
579
+ * Space Complexity: O(V)
580
+ * Tarjan is an algorithm based on dfs,which is used to solve the connectivity problem of graphs.
581
+ * Tarjan can find the SSC(strongly connected components), articulation points, and bridges of directed graphs.
582
+ *
583
+ * The function `tarjan` implements the Tarjan's algorithm to find strongly connected components in a
584
+ * graph.
585
+ * @returns The function `tarjan()` returns an object with three properties: `dfnMap`, `lowMap`, and
586
+ * `SCCs`.
587
+ */
588
+ tarjan() {
589
+ const dfnMap = new Map();
590
+ const lowMap = new Map();
591
+ const SCCs = new Map();
592
+ let time = 0;
593
+ const stack = [];
594
+ const inStack = new Set();
595
+ const dfs = (vertex) => {
596
+ dfnMap.set(vertex, time);
597
+ lowMap.set(vertex, time);
598
+ time++;
599
+ stack.push(vertex);
600
+ inStack.add(vertex);
601
+ const neighbors = this.getNeighbors(vertex);
602
+ for (const neighbor of neighbors) {
603
+ if (!dfnMap.has(neighbor)) {
604
+ dfs(neighbor);
605
+ lowMap.set(vertex, Math.min(lowMap.get(vertex), lowMap.get(neighbor)));
606
+ }
607
+ else if (inStack.has(neighbor)) {
608
+ lowMap.set(vertex, Math.min(lowMap.get(vertex), dfnMap.get(neighbor)));
609
+ }
610
+ }
611
+ if (dfnMap.get(vertex) === lowMap.get(vertex)) {
612
+ const SCC = [];
613
+ let poppedVertex;
614
+ do {
615
+ poppedVertex = stack.pop();
616
+ inStack.delete(poppedVertex);
617
+ SCC.push(poppedVertex);
618
+ } while (poppedVertex !== vertex);
619
+ SCCs.set(SCCs.size, SCC);
620
+ }
621
+ };
622
+ for (const vertex of this.vertexMap.values()) {
623
+ if (!dfnMap.has(vertex)) {
624
+ dfs(vertex);
625
+ }
626
+ }
627
+ return { dfnMap, lowMap, SCCs };
628
+ }
629
+ /**
630
+ * Time Complexity: O(V + E) - Depends on the implementation (Tarjan's algorithm).
631
+ * Space Complexity: O(V) - Depends on the implementation (Tarjan's algorithm).
632
+ */
633
+ /**
634
+ * Time Complexity: O(V + E) - Depends on the implementation (Tarjan's algorithm).
635
+ * Space Complexity: O(V) - Depends on the implementation (Tarjan's algorithm).
636
+ *
637
+ * The function returns a map that associates each vertex object with its corresponding depth-first
638
+ * number.
639
+ * @returns A Map object with keys of type VO and values of type number.
640
+ */
641
+ getDFNMap() {
642
+ return this.tarjan().dfnMap;
643
+ }
644
+ /**
645
+ * The function returns a Map object that contains the low values of each vertex in a Tarjan
646
+ * algorithm.
647
+ * @returns The method `getLowMap()` is returning a `Map` object with keys of type `VO` and values of
648
+ * type `number`.
649
+ */
650
+ getLowMap() {
651
+ return this.tarjan().lowMap;
652
+ }
653
+ /**
654
+ * The function "getSCCs" returns a map of strongly connected components (SCCs) using the Tarjan
655
+ * algorithm.
656
+ * @returns a map where the keys are numbers and the values are arrays of VO objects.
657
+ */
658
+ getSCCs() {
659
+ return this.tarjan().SCCs;
660
+ }
556
661
  /**
557
662
  * Time Complexity: O(1)
558
663
  * Space Complexity: O(1)
@@ -1 +1 @@
1
- {"version":3,"file":"directed-graph.js","sourceRoot":"","sources":["../../../../src/data-structures/graph/directed-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directed-graph.js","sourceRoot":"","sources":["../../../../src/data-structures/graph/directed-graph.ts"],"names":[],"mappings":"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"}