occam-directed-graphs 3.0.34 → 3.0.36

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.
@@ -8,15 +8,14 @@ Object.defineProperty(exports, "default", {
8
8
  return DirectedGraph;
9
9
  }
10
10
  });
11
- var _occamKahn = require("occam-kahn");
12
11
  var _necessary = require("necessary");
13
- var _occamPearceKelly = require("occam-pearce-kelly");
14
- var _edge = /*#__PURE__*/ _interopRequireDefault(require("./edge"));
15
- var _cycle = /*#__PURE__*/ _interopRequireDefault(require("./cycle"));
16
- var _partialCycle = /*#__PURE__*/ _interopRequireDefault(require("./partialCycle"));
12
+ var _edge = /*#__PURE__*/ _interop_require_default(require("./edge"));
13
+ var _cycle = /*#__PURE__*/ _interop_require_default(require("./cycle"));
14
+ var _partialCycle = /*#__PURE__*/ _interop_require_default(require("./partialCycle"));
15
+ var _directedAcyclicGraph = /*#__PURE__*/ _interop_require_default(require("./directedAcyclicGraph"));
17
16
  var _vertex = require("./utilities/vertex");
18
17
  var _edge1 = require("./utilities/edge");
19
- function _classCallCheck(instance, Constructor) {
18
+ function _class_call_check(instance, Constructor) {
20
19
  if (!(instance instanceof Constructor)) {
21
20
  throw new TypeError("Cannot call a class as a function");
22
21
  }
@@ -30,12 +29,12 @@ function _defineProperties(target, props) {
30
29
  Object.defineProperty(target, descriptor.key, descriptor);
31
30
  }
32
31
  }
33
- function _createClass(Constructor, protoProps, staticProps) {
32
+ function _create_class(Constructor, protoProps, staticProps) {
34
33
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
35
34
  if (staticProps) _defineProperties(Constructor, staticProps);
36
35
  return Constructor;
37
36
  }
38
- function _interopRequireDefault(obj) {
37
+ function _interop_require_default(obj) {
39
38
  return obj && obj.__esModule ? obj : {
40
39
  default: obj
41
40
  };
@@ -43,11 +42,11 @@ function _interopRequireDefault(obj) {
43
42
  var first = _necessary.arrayUtilities.first, filter = _necessary.arrayUtilities.filter;
44
43
  var DirectedGraph = /*#__PURE__*/ function() {
45
44
  function DirectedGraph(cyclicEdges, directedAcyclicGraph) {
46
- _classCallCheck(this, DirectedGraph);
45
+ _class_call_check(this, DirectedGraph);
47
46
  this.cyclicEdges = cyclicEdges;
48
47
  this.directedAcyclicGraph = directedAcyclicGraph;
49
48
  }
50
- _createClass(DirectedGraph, [
49
+ _create_class(DirectedGraph, [
51
50
  {
52
51
  key: "getCyclicEdges",
53
52
  value: function getCyclicEdges() {
@@ -319,7 +318,7 @@ var DirectedGraph = /*#__PURE__*/ function() {
319
318
  {
320
319
  key: "removeAllEdgesAndVertices",
321
320
  value: function removeAllEdgesAndVertices() {
322
- this.directedAcyclicGraph = _occamPearceKelly.DirectedAcyclicGraph.fromNothing();
321
+ this.directedAcyclicGraph = _directedAcyclicGraph.default.fromNothing();
323
322
  this.cyclicEdges = [];
324
323
  }
325
324
  },
@@ -345,32 +344,7 @@ var DirectedGraph = /*#__PURE__*/ function() {
345
344
  {
346
345
  key: "fromNothing",
347
346
  value: function fromNothing() {
348
- var cyclicEdges = [], directedAcyclicGraph = _occamPearceKelly.DirectedAcyclicGraph.fromNothing(), directedGraph = new DirectedGraph(cyclicEdges, directedAcyclicGraph);
349
- return directedGraph;
350
- }
351
- },
352
- {
353
- key: "fromVertexLiterals",
354
- value: function fromVertexLiterals(vertexLiterals) {
355
- var vertexNames = (0, _vertex.vertexNamesFromVertexLiterals)(vertexLiterals), edges = (0, _edge1.edgesFromVertexLiterals)(vertexLiterals), directedGraph = DirectedGraph.fromVertexNamesAndEdges(vertexNames, edges);
356
- return directedGraph;
357
- }
358
- },
359
- {
360
- key: "fromVertexNamesAndEdges",
361
- value: function fromVertexNamesAndEdges(vertexNames, edges) {
362
- var directedGraph;
363
- var graph = _occamKahn.Graph.fromVertexNamesAndEdges(vertexNames, edges), cyclesPresent = graph.areCyclesPresent();
364
- if (cyclesPresent) {
365
- var cyclicEdges = [], directedAcyclicGraph = _occamPearceKelly.DirectedAcyclicGraph.fromVertexNames(vertexNames);
366
- directedGraph = new DirectedGraph(cyclicEdges, directedAcyclicGraph);
367
- edges.forEach(function(edge) {
368
- return directedGraph.addEdge(edge);
369
- });
370
- } else {
371
- var orderedVertices = graph.getOrderedVertices(), cyclicEdges1 = [], directedAcyclicGraph1 = _occamPearceKelly.DirectedAcyclicGraph.fromOrderedVertices(orderedVertices);
372
- directedGraph = new DirectedGraph(cyclicEdges1, directedAcyclicGraph1);
373
- }
347
+ var cyclicEdges = [], directedAcyclicGraph = _directedAcyclicGraph.default.fromNothing(), directedGraph = new DirectedGraph(cyclicEdges, directedAcyclicGraph);
374
348
  return directedGraph;
375
349
  }
376
350
  }
@@ -378,4 +352,4 @@ var DirectedGraph = /*#__PURE__*/ function() {
378
352
  return DirectedGraph;
379
353
  }();
380
354
 
381
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kaXJlY3RlZEdyYXBoLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBHcmFwaCB9IGZyb20gXCJvY2NhbS1rYWhuXCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IERpcmVjdGVkQWN5Y2xpY0dyYXBoIH0gZnJvbSBcIm9jY2FtLXBlYXJjZS1rZWxseVwiO1xuXG5pbXBvcnQgRWRnZSBmcm9tIFwiLi9lZGdlXCI7XG5pbXBvcnQgQ3ljbGUgZnJvbSBcIi4vY3ljbGVcIjtcbmltcG9ydCBQYXJ0aWFsQ3ljbGUgZnJvbSBcIi4vcGFydGlhbEN5Y2xlXCI7XG5cbmltcG9ydCB7IHZlcnRleE5hbWVzRnJvbVZlcnRleExpdGVyYWxzLCBmb3J3YXJkc0RlcHRoRmlyc3RTZWFyY2ggfSBmcm9tIFwiLi91dGlsaXRpZXMvdmVydGV4XCI7XG5pbXBvcnQgeyBlZGdlc0Zyb21WZXJ0ZXhMaXRlcmFscywgY2hlY2tFZGdlc0luY2x1ZGVzRWRnZSwgcmVtb3ZlRWRnZUZyb21FZGdlcywgZWRnZXNCeVNvdXJjZVZlcnRleE5hbWUsIGVkZ2VzQnlUYXJnZXRWZXJ0ZXhOYW1lIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2VkZ2VcIjtcblxuY29uc3QgeyBmaXJzdCwgZmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGlyZWN0ZWRHcmFwaCB7XG4gIGNvbnN0cnVjdG9yKGN5Y2xpY0VkZ2VzLCBkaXJlY3RlZEFjeWNsaWNHcmFwaCkge1xuICAgIHRoaXMuY3ljbGljRWRnZXMgPSBjeWNsaWNFZGdlcztcblxuICAgIHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGggPSBkaXJlY3RlZEFjeWNsaWNHcmFwaDtcbiAgfVxuXG4gIGdldEN5Y2xpY0VkZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLmN5Y2xpY0VkZ2VzO1xuICB9XG5cbiAgZ2V0RGlyZWN0ZWRBY3ljbGljR3JhcGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGg7XG4gIH1cblxuICBnZXRWZXJ0ZXhOYW1lcygpIHsgcmV0dXJuIHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGguZ2V0VmVydGV4TmFtZXMoKTsgfVxuXG4gIGdldE9yZGVyZWRWZXJ0ZXhOYW1lcygpIHsgcmV0dXJuIHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGguZ2V0T3JkZXJlZFZlcnRleE5hbWVzKCk7IH1cblxuICBhZGRWZXJ0ZXhCeVZlcnRleE5hbWUodmVydGV4TmFtZSkgeyB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmFkZFZlcnRleEJ5VmVydGV4TmFtZSh2ZXJ0ZXhOYW1lKTsgfVxuXG4gIGlzRWRnZVByZXNlbnRCeVZlcnRleE5hbWVzKHNvdXJjZVZlcnRleE5hbWUsIHRhcmdldFZlcnRleE5hbWUpIHsgcmV0dXJuIHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGguaXNFZGdlUHJlc2VudEJ5VmVydGV4TmFtZXMoc291cmNlVmVydGV4TmFtZSwgdGFyZ2V0VmVydGV4TmFtZSk7IH1cblxuICBpc1ZlcnRleFByZXNlbnRCeVZlcnRleE5hbWUodmVydGV4TmFtZSkgeyByZXR1cm4gdGhpcy5kaXJlY3RlZEFjeWNsaWNHcmFwaC5pc1ZlcnRleFByZXNlbnRCeVZlcnRleE5hbWUodmVydGV4TmFtZSk7IH1cblxuICBnZXRTdWNjZXNzb3JWZXJ0ZXhOYW1lc0J5VmVydGV4TmFtZSh2ZXJ0ZXhOYW1lKSB7IHJldHVybiB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmdldFN1Y2Nlc3NvclZlcnRleE5hbWVzQnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpOyB9XG5cbiAgZ2V0UHJlZGVjZXNzb3JWZXJ0ZXhOYW1lc0J5VmVydGV4TmFtZSh2ZXJ0ZXhOYW1lKSB7IHJldHVybiB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmdldFByZWRlY2Vzc29yVmVydGV4TmFtZXNCeVZlcnRleE5hbWUodmVydGV4TmFtZSk7IH1cblxuICBnZXRJbW1lZGlhdGVQcmVkZWNlc3NvclZlcnRleE5hbWVzQnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUsIGluY2x1ZGVDeWNsaWNFZGdlcyA9IGZhbHNlKSB7XG4gICAgY29uc3QgaW1tZWRpYXRlUHJlZGVjZXNzb3JWZXJ0ZXhOYW1lcyA9IHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGguZ2V0SW1tZWRpYXRlUHJlZGVjZXNzb3JWZXJ0ZXhOYW1lc0J5VmVydGV4TmFtZSh2ZXJ0ZXhOYW1lKTtcblxuICAgIGlmIChpbmNsdWRlQ3ljbGljRWRnZXMpIHtcbiAgICAgIHRoaXMuY3ljbGljRWRnZXMuZm9yRWFjaCgoY3ljbGljRWRnZSkgPT4ge1xuICAgICAgICBjb25zdCBjeWNsaWNFZGdlVGFyZ2V0VmVydGV4TmFtZSA9IGN5Y2xpY0VkZ2UuZ2V0VGFyZ2V0VmVydGV4TmFtZSgpO1xuXG4gICAgICAgIGlmIChjeWNsaWNFZGdlVGFyZ2V0VmVydGV4TmFtZSA9PT0gdmVydGV4TmFtZSkge1xuICAgICAgICAgIGNvbnN0IGN5Y2xpY0VkZ2VTb3VyY2VWZXJ0ZXhOYW1lID0gY3ljbGljRWRnZS5nZXRTb3VyY2VWZXJ0ZXhOYW1lKCksXG4gICAgICAgICAgICAgICAgaW1tZWRpYXRlUHJlZGVjZXNzb3JWZXJ0ZXhOYW1lID0gY3ljbGljRWRnZVNvdXJjZVZlcnRleE5hbWU7ICAvLy9cblxuICAgICAgICAgIGltbWVkaWF0ZVByZWRlY2Vzc29yVmVydGV4TmFtZXMucHVzaChpbW1lZGlhdGVQcmVkZWNlc3NvclZlcnRleE5hbWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW1tZWRpYXRlUHJlZGVjZXNzb3JWZXJ0ZXhOYW1lcztcbiAgfVxuXG4gIGdldEltbWVkaWF0ZVN1Y2Nlc3NvclZlcnRleE5hbWVzQnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUsIGluY2x1ZGVDeWNsaWNFZGdlcyA9IGZhbHNlKSB7XG4gICAgY29uc3QgaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4TmFtZXMgPSB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmdldEltbWVkaWF0ZVN1Y2Nlc3NvclZlcnRleE5hbWVzQnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpO1xuXG4gICAgaWYgKGluY2x1ZGVDeWNsaWNFZGdlcykge1xuICAgICAgdGhpcy5jeWNsaWNFZGdlcy5mb3JFYWNoKChjeWNsaWNFZGdlKSA9PiB7XG4gICAgICAgIGNvbnN0IGN5Y2xpY0VkZ2VTb3VyY2VWZXJ0ZXhOYW1lID0gY3ljbGljRWRnZS5nZXRTb3VyY2VWZXJ0ZXhOYW1lKCk7XG5cbiAgICAgICAgaWYgKGN5Y2xpY0VkZ2VTb3VyY2VWZXJ0ZXhOYW1lID09PSB2ZXJ0ZXhOYW1lKSB7XG4gICAgICAgICAgY29uc3QgY3ljbGljRWRnZVRhcmdldFZlcnRleE5hbWUgPSBjeWNsaWNFZGdlLmdldFRhcmdldFZlcnRleE5hbWUoKSxcbiAgICAgICAgICAgICAgICBpbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXhOYW1lID0gY3ljbGljRWRnZVRhcmdldFZlcnRleE5hbWU7ICAvLy9cblxuICAgICAgICAgIGltbWVkaWF0ZVN1Y2Nlc3NvclZlcnRleE5hbWVzLnB1c2goaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4TmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBpbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXhOYW1lcztcbiAgfVxuXG4gIGFyZUN5Y2xlc1ByZXNlbnRCeVZlcnRleE5hbWUodmVydGV4TmFtZSkge1xuICAgIGxldCBjeWNsZXNQcmVzZW50ID0gZmFsc2U7XG5cbiAgICBjb25zdCB2ZXJ0ZXhQcmVzZW50ID0gdGhpcy5kaXJlY3RlZEFjeWNsaWNHcmFwaC5pc1ZlcnRleFByZXNlbnRCeVZlcnRleE5hbWUodmVydGV4TmFtZSk7XG5cbiAgICBpZiAodmVydGV4UHJlc2VudCkge1xuICAgICAgY29uc3QgZmlyc3RDeWNsZSA9IHRoaXMuZ2V0Rmlyc3RDeWNsZUJ5VmVydGV4TmFtZSh2ZXJ0ZXhOYW1lKTtcblxuICAgICAgY3ljbGVzUHJlc2VudCA9IChmaXJzdEN5Y2xlICE9PSBudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3ljbGVzUHJlc2VudDtcbiAgfVxuXG4gIGdldEZpcnN0Q3ljbGVCeVZlcnRleE5hbWUodmVydGV4TmFtZSkge1xuICAgIGxldCBmaXJzdEN5Y2xlID0gbnVsbDtcbiAgICBcbiAgICBjb25zdCB2ZXJ0ZXggPSB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmdldFZlcnRleEJ5VmVydGV4TmFtZSh2ZXJ0ZXhOYW1lKSxcbiAgICAgICAgICBjeWNsaWNFZGdlcyA9IHRoaXMuY3ljbGljRWRnZXMuc2xpY2UoKSwgLy8vXG4gICAgICAgICAgcGFydGlhbEN5Y2xlcyA9IFtdLFxuICAgICAgICAgIGN5Y2xlcyA9IFtdO1xuXG4gICAgZm9yd2FyZHNEZXB0aEZpcnN0U2VhcmNoKHZlcnRleCwgKHZpc2l0ZWRWZXJ0ZXgsIGdldFByZWRlY2Vzc29yVmVydGljZXMpID0+IHtcbiAgICAgIGNvbnN0IHZpc2l0ZWRWZXJ0ZXhOYW1lID0gdmlzaXRlZFZlcnRleC5nZXROYW1lKCksXG4gICAgICAgICAgICBzb3VyY2VWZXJ0ZXhOYW1lID0gdmlzaXRlZFZlcnRleE5hbWU7IC8vL1xuXG4gICAgICBmaWx0ZXIoY3ljbGljRWRnZXMsIChjeWNsaWNFZGdlKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hdGNoZXMgPSBjeWNsaWNFZGdlLm1hdGNoU291cmNlVmVydGV4TmFtZShzb3VyY2VWZXJ0ZXhOYW1lKTtcblxuICAgICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICAgIGNvbnN0IHByZWRlY2Vzc29yVmVydGljZXMgPSBnZXRQcmVkZWNlc3NvclZlcnRpY2VzKCksXG4gICAgICAgICAgICAgICAgcGFydGlhbEN5Y2xlID0gIFBhcnRpYWxDeWNsZS5mcm9tQ3ljbGljRWRnZUFuZFByZWRlY2Vzc29yVmVydGljZXMoY3ljbGljRWRnZSwgcHJlZGVjZXNzb3JWZXJ0aWNlcyk7XG4gICAgICAgICAgXG4gICAgICAgICAgcGFydGlhbEN5Y2xlcy5wdXNoKHBhcnRpYWxDeWNsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBjeWNsaWNFZGdlc0xlbmd0aCA9IGN5Y2xpY0VkZ2VzLmxlbmd0aCxcbiAgICAgICAgICAgIHRlcm1pbmF0ZSA9IChjeWNsaWNFZGdlc0xlbmd0aCA9PT0gMCk7XG5cbiAgICAgIHJldHVybiB0ZXJtaW5hdGU7XG4gICAgfSk7XG5cbiAgICBwYXJ0aWFsQ3ljbGVzLnNvbWUoKHBhcnRpYWxDeWNsZSkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0VmVydGV4TmFtZSA9IHBhcnRpYWxDeWNsZS5nZXRUYXJnZXRWZXJ0ZXhOYW1lKCksXG4gICAgICAgICAgICB0YXJnZXRWZXJ0ZXggPSB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmdldFZlcnRleEJ5VmVydGV4TmFtZSh0YXJnZXRWZXJ0ZXhOYW1lKTtcblxuICAgICAgZm9yd2FyZHNEZXB0aEZpcnN0U2VhcmNoKHRhcmdldFZlcnRleCwgKHZpc2l0ZWRWZXJ0ZXgsIGdldFByZWRlY2Vzc29yVmVydGljZXMpID0+IHtcbiAgICAgICAgY29uc3QgdmlzaXRlZFZlcnRleE5hbWUgPSB2aXNpdGVkVmVydGV4LmdldE5hbWUoKTtcblxuICAgICAgICBpZiAodmlzaXRlZFZlcnRleE5hbWUgPT09IHZlcnRleE5hbWUpIHtcbiAgICAgICAgICBjb25zdCBwcmVkZWNlc3NvclZlcnRpY2VzID0gZ2V0UHJlZGVjZXNzb3JWZXJ0aWNlcygpLFxuICAgICAgICAgICAgICAgIHN1Y2Nlc3NvclZlcnRpY2VzID0gcHJlZGVjZXNzb3JWZXJ0aWNlcywgIC8vL1xuICAgICAgICAgICAgICAgIGN5Y2xlID0gQ3ljbGUuZnJvbVZlcnRleE5hbWVQYXJ0aWFsQ3ljbGVBbmRTdWNjZXNzb3JWZXJ0aWNlcyh2ZXJ0ZXhOYW1lLCBwYXJ0aWFsQ3ljbGUsIHN1Y2Nlc3NvclZlcnRpY2VzKTtcblxuICAgICAgICAgIGN5Y2xlcy5wdXNoKGN5Y2xlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGN5Y2xlc0xlbmd0aCA9IGN5Y2xlcy5sZW5ndGgsXG4gICAgICAgICAgICAgIHRlcm1pbmF0ZSA9IChjeWNsZXNMZW5ndGggPiAwKTtcblxuICAgICAgICByZXR1cm4gdGVybWluYXRlO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBjeWNsZXNMZW5ndGggPSBjeWNsZXMubGVuZ3RoO1xuICAgIFxuICAgIGlmIChjeWNsZXNMZW5ndGggPiAwKSB7XG4gICAgICBmaXJzdEN5Y2xlID0gZmlyc3QoY3ljbGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlyc3RDeWNsZTtcbiAgfVxuXG4gIGdldEZpcnN0Q3ljbGUoKSB7XG4gICAgY29uc3QgZmlyc3RDeWNsaWNFZGdlID0gZmlyc3QodGhpcy5jeWNsaWNFZGdlcyksXG4gICAgICAgICAgY3ljbGljRWRnZSA9IGZpcnN0Q3ljbGljRWRnZSwgLy8vXG4gICAgICAgICAgc291cmNlVmVydGV4TmFtZSA9IGN5Y2xpY0VkZ2UuZ2V0U291cmNlVmVydGV4TmFtZSgpLFxuICAgICAgICAgIHZlcnRleE5hbWUgPSBzb3VyY2VWZXJ0ZXhOYW1lLCAgLy8vXG4gICAgICAgICAgZmlyc3RDeWNsZSA9IHRoaXMuZ2V0Rmlyc3RDeWNsZUJ5VmVydGV4TmFtZSh2ZXJ0ZXhOYW1lKTtcblxuICAgIHJldHVybiBmaXJzdEN5Y2xlO1xuICB9XG5cbiAgYXJlQ3ljbGVzUHJlc2VudCgpIHtcbiAgICBjb25zdCBjeWNsaWNFZGdlc0xlbmd0aCA9IHRoaXMuY3ljbGljRWRnZXMubGVuZ3RoLFxuICAgICAgICAgIGN5Y2xlc1ByZXNlbnQgPSAoY3ljbGljRWRnZXNMZW5ndGggPiAwKTtcblxuICAgIHJldHVybiBjeWNsZXNQcmVzZW50O1xuICB9XG5cbiAgYWRkVmVydGljZXNCeVZlcnRleE5hbWVzKHZlcnRleE5hbWVzKSB7XG4gICAgdmVydGV4TmFtZXMuZm9yRWFjaCgodmVydGV4TmFtZSkgPT4gdGhpcy5hZGRWZXJ0ZXhCeVZlcnRleE5hbWUodmVydGV4TmFtZSkpO1xuICB9XG5cbiAgcmVtb3ZlVmVydGV4QnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpIHtcbiAgICB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLnJlbW92ZVZlcnRleEJ5VmVydGV4TmFtZSh2ZXJ0ZXhOYW1lKTtcblxuICAgIHRoaXMuZmlsdGVyQ3ljbGljRWRnZXMoKTtcbiAgfVxuXG4gIHJlbW92ZVZlcnRpY2VzQnlWZXJ0ZXhOYW1lcyh2ZXJ0ZXhOYW1lcykge1xuICAgIHZlcnRleE5hbWVzLmZvckVhY2goKHZlcnRleE5hbWUpID0+IHRoaXMucmVtb3ZlVmVydGV4QnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpKTtcbiAgfVxuXG4gIGFkZEVkZ2UoZWRnZSkge1xuICAgIGNvbnN0IHN1Y2Nlc3MgPSB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmFkZEVkZ2UoZWRnZSk7XG4gICAgXG4gICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICBjb25zdCBjeWNsaWNFZGdlc0luY2x1ZGVzRWRnZSA9IGNoZWNrRWRnZXNJbmNsdWRlc0VkZ2UoZWRnZSwgdGhpcy5jeWNsaWNFZGdlcyk7XG5cbiAgICAgIGlmICghY3ljbGljRWRnZXNJbmNsdWRlc0VkZ2UpIHtcbiAgICAgICAgY29uc3QgY3ljbGljRWRnZSA9IGVkZ2U7ICAvLy9cblxuICAgICAgICB0aGlzLmN5Y2xpY0VkZ2VzLnB1c2goY3ljbGljRWRnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBhZGRFZGdlcyhlZGdlcykge1xuICAgIGVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IHRoaXMuYWRkRWRnZShlZGdlKSk7XG4gIH1cblxuICByZW1vdmVFZGdlKGVkZ2UsIHJlbW92ZVN0cmFuZGVkVmVydGljZXMgPSBmYWxzZSkge1xuICAgIGNvbnN0IGN5Y2xpY0VkZ2VzSW5jbHVkZXNFZGdlID0gY2hlY2tFZGdlc0luY2x1ZGVzRWRnZShlZGdlLCB0aGlzLmN5Y2xpY0VkZ2VzKSxcbiAgICAgICAgICBlZGdlUHJlc2VudCA9IHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGguaXNFZGdlUHJlc2VudChlZGdlKSxcbiAgICAgICAgICBlZGdlQ3ljbGljID0gY3ljbGljRWRnZXNJbmNsdWRlc0VkZ2U7IC8vL1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKGVkZ2VDeWNsaWMpIHtcbiAgICAgIGNvbnN0IGN5Y2xpY0VkZ2UgPSBlZGdlOyAgLy8vXG5cbiAgICAgIHJlbW92ZUVkZ2VGcm9tRWRnZXMoY3ljbGljRWRnZSwgdGhpcy5jeWNsaWNFZGdlcyk7XG4gICAgfSBlbHNlIGlmIChlZGdlUHJlc2VudCkge1xuICAgICAgdGhpcy5kaXJlY3RlZEFjeWNsaWNHcmFwaC5yZW1vdmVFZGdlKGVkZ2UpO1xuXG4gICAgICBpZiAocmVtb3ZlU3RyYW5kZWRWZXJ0aWNlcykge1xuICAgICAgICBjb25zdCBzb3VyY2VWZXJ0ZXhOYW1lID0gZWRnZS5nZXRTb3VyY2VWZXJ0ZXhOYW1lKCksXG4gICAgICAgICAgICAgIHRhcmdldFZlcnRleE5hbWUgPSBlZGdlLmdldFRhcmdldFZlcnRleE5hbWUoKSxcbiAgICAgICAgICAgICAgc291cmNlVmVydGV4ID0gdGhpcy5kaXJlY3RlZEFjeWNsaWNHcmFwaC5nZXRWZXJ0ZXhCeVZlcnRleE5hbWUoc291cmNlVmVydGV4TmFtZSksXG4gICAgICAgICAgICAgIHRhcmdldFZlcnRleCA9IHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGguZ2V0VmVydGV4QnlWZXJ0ZXhOYW1lKHRhcmdldFZlcnRleE5hbWUpLFxuICAgICAgICAgICAgICBzb3VyY2VWZXJ0ZXhTdHJhbmRlZCA9IHNvdXJjZVZlcnRleC5pc1N0cmFuZGVkKCksXG4gICAgICAgICAgICAgIHRhcmdldFZlcnRleFN0cmFuZGVkID0gdGFyZ2V0VmVydGV4LmlzU3RyYW5kZWQoKTtcblxuICAgICAgICBpZiAoc291cmNlVmVydGV4U3RyYW5kZWQpIHtcbiAgICAgICAgICB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLnJlbW92ZVZlcnRleEJ5VmVydGV4TmFtZShzb3VyY2VWZXJ0ZXhOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0YXJnZXRWZXJ0ZXhTdHJhbmRlZCkge1xuICAgICAgICAgIHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGgucmVtb3ZlVmVydGV4QnlWZXJ0ZXhOYW1lKHRhcmdldFZlcnRleE5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5maWx0ZXJDeWNsaWNFZGdlcygpO1xuICB9XG5cbiAgcmVtb3ZlRWRnZXMoZWRnZXMsIHJlbW92ZVN0cmFuZGVkVmVydGljZXMgPSBmYWxzZSkge1xuICAgIGVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IHRoaXMucmVtb3ZlRWRnZShlZGdlLCByZW1vdmVTdHJhbmRlZFZlcnRpY2VzKSk7XG4gIH1cblxuICBhZGRFZGdlQnlWZXJ0ZXhOYW1lcyhzb3VyY2VWZXJ0ZXhOYW1lLCB0YXJnZXRWZXJ0ZXhOYW1lKSB7XG4gICAgY29uc3QgZWRnZSA9IEVkZ2UuZnJvbVNvdXJjZVZlcnRleE5hbWVBbmRUYXJnZXRWZXJ0ZXhOYW1lKHNvdXJjZVZlcnRleE5hbWUsIHRhcmdldFZlcnRleE5hbWUpO1xuXG4gICAgdGhpcy5hZGRFZGdlKGVkZ2UpO1xuICB9XG5cbiAgcmVtb3ZlRWRnZUJ5VmVydGV4TmFtZXMoc291cmNlVmVydGV4TmFtZSwgdGFyZ2V0VmVydGV4TmFtZSwgcmVtb3ZlU3RyYW5kZWRWZXJ0aWNlcyA9IGZhbHNlKSB7XG4gICAgY29uc3QgZWRnZSA9IEVkZ2UuZnJvbVNvdXJjZVZlcnRleE5hbWVBbmRUYXJnZXRWZXJ0ZXhOYW1lKHNvdXJjZVZlcnRleE5hbWUsIHRhcmdldFZlcnRleE5hbWUpO1xuXG4gICAgdGhpcy5yZW1vdmVFZGdlKGVkZ2UsIHJlbW92ZVN0cmFuZGVkVmVydGljZXMpO1xuICB9XG5cbiAgcmVtb3ZlRWRnZXNCeVRhcmdldFZlcnRleE5hbWUodGFyZ2V0VmVydGV4TmFtZSwgcmVtb3ZlU3RyYW5kZWRWZXJ0aWNlcyA9IGZhbHNlKSB7XG4gICAgY29uc3QgY3ljbGljRWRnZXMgPSBlZGdlc0J5VGFyZ2V0VmVydGV4TmFtZSh0YXJnZXRWZXJ0ZXhOYW1lLCB0aGlzLmN5Y2xpY0VkZ2VzKSxcbiAgICAgICAgICBlZGdlcyA9IHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGguZ2V0RWRnZXNCeVRhcmdldFZlcnRleE5hbWUodGFyZ2V0VmVydGV4TmFtZSk7XG5cbiAgICB0aGlzLnJlbW92ZUVkZ2VzKGN5Y2xpY0VkZ2VzLCByZW1vdmVTdHJhbmRlZFZlcnRpY2VzKTtcblxuICAgIHRoaXMucmVtb3ZlRWRnZXMoZWRnZXMsIHJlbW92ZVN0cmFuZGVkVmVydGljZXMpO1xuICB9XG5cbiAgcmVtb3ZlRWRnZXNCeVNvdXJjZVZlcnRleE5hbWUoc291cmNlVmVydGV4TmFtZSwgcmVtb3ZlU3RyYW5kZWRWZXJ0aWNlcyA9IGZhbHNlKSB7XG4gICAgY29uc3QgY3ljbGljRWRnZXMgPSBlZGdlc0J5U291cmNlVmVydGV4TmFtZShzb3VyY2VWZXJ0ZXhOYW1lLCB0aGlzLmN5Y2xpY0VkZ2VzKSxcbiAgICAgICAgICBlZGdlcyA9IHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGguZ2V0RWRnZXNCeVNvdXJjZVZlcnRleE5hbWUoc291cmNlVmVydGV4TmFtZSk7XG5cbiAgICB0aGlzLnJlbW92ZUVkZ2VzKGN5Y2xpY0VkZ2VzLCByZW1vdmVTdHJhbmRlZFZlcnRpY2VzKTtcblxuICAgIHRoaXMucmVtb3ZlRWRnZXMoZWRnZXMsIHJlbW92ZVN0cmFuZGVkVmVydGljZXMpO1xuICB9XG5cbiAgcmVtb3ZlQWxsRWRnZXNBbmRWZXJ0aWNlcygpIHtcbiAgICB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoID0gRGlyZWN0ZWRBY3ljbGljR3JhcGguZnJvbU5vdGhpbmcoKTtcblxuICAgIHRoaXMuY3ljbGljRWRnZXMgPSBbXTtcbiAgfVxuXG4gIGZpbHRlckN5Y2xpY0VkZ2VzKCkge1xuICAgIGZpbHRlcih0aGlzLmN5Y2xpY0VkZ2VzLCAoY3ljbGljRWRnZSkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlVmVydGV4TmFtZSA9IGN5Y2xpY0VkZ2UuZ2V0U291cmNlVmVydGV4TmFtZSgpLFxuICAgICAgICAgICAgdGFyZ2V0VmVydGV4TmFtZSA9IGN5Y2xpY0VkZ2UuZ2V0VGFyZ2V0VmVydGV4TmFtZSgpLFxuICAgICAgICAgICAgc291cmNlVmVydGV4UHJlc2VudCA9IHRoaXMuaXNWZXJ0ZXhQcmVzZW50QnlWZXJ0ZXhOYW1lKHNvdXJjZVZlcnRleE5hbWUpLFxuICAgICAgICAgICAgdGFyZ2V0VmVydGV4UHJlc2VudCA9IHRoaXMuaXNWZXJ0ZXhQcmVzZW50QnlWZXJ0ZXhOYW1lKHRhcmdldFZlcnRleE5hbWUpO1xuXG4gICAgICBpZiAoc291cmNlVmVydGV4UHJlc2VudCAmJiB0YXJnZXRWZXJ0ZXhQcmVzZW50KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZmlsdGVyKHRoaXMuY3ljbGljRWRnZXMsIChjeWNsaWNFZGdlKSA9PiB7XG4gICAgICBjb25zdCBlZGdlID0gY3ljbGljRWRnZSwgIC8vL1xuICAgICAgICAgICAgc3VjY2VzcyA9IHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGguYWRkRWRnZShlZGdlKTtcblxuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IGN5Y2xpY0VkZ2VzID0gW10sXG4gICAgICAgICAgZGlyZWN0ZWRBY3ljbGljR3JhcGggPSBEaXJlY3RlZEFjeWNsaWNHcmFwaC5mcm9tTm90aGluZygpLFxuICAgICAgICAgIGRpcmVjdGVkR3JhcGggPSBuZXcgRGlyZWN0ZWRHcmFwaChjeWNsaWNFZGdlcywgZGlyZWN0ZWRBY3ljbGljR3JhcGgpO1xuICAgIFxuICAgIHJldHVybiBkaXJlY3RlZEdyYXBoOyAgICBcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmVydGV4TGl0ZXJhbHModmVydGV4TGl0ZXJhbHMpIHtcbiAgICBjb25zdCB2ZXJ0ZXhOYW1lcyA9IHZlcnRleE5hbWVzRnJvbVZlcnRleExpdGVyYWxzKHZlcnRleExpdGVyYWxzKSxcbiAgICAgICAgICBlZGdlcyA9IGVkZ2VzRnJvbVZlcnRleExpdGVyYWxzKHZlcnRleExpdGVyYWxzKSxcbiAgICAgICAgICBkaXJlY3RlZEdyYXBoID0gRGlyZWN0ZWRHcmFwaC5mcm9tVmVydGV4TmFtZXNBbmRFZGdlcyh2ZXJ0ZXhOYW1lcywgZWRnZXMpO1xuXG4gICAgcmV0dXJuIGRpcmVjdGVkR3JhcGg7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZlcnRleE5hbWVzQW5kRWRnZXModmVydGV4TmFtZXMsIGVkZ2VzKSB7XG4gICAgbGV0IGRpcmVjdGVkR3JhcGg7XG5cbiAgICBjb25zdCBncmFwaCA9IEdyYXBoLmZyb21WZXJ0ZXhOYW1lc0FuZEVkZ2VzKHZlcnRleE5hbWVzLCBlZGdlcyksXG4gICAgICAgICAgY3ljbGVzUHJlc2VudCA9IGdyYXBoLmFyZUN5Y2xlc1ByZXNlbnQoKTtcblxuICAgIGlmIChjeWNsZXNQcmVzZW50KSB7XG4gICAgICBjb25zdCBjeWNsaWNFZGdlcyA9IFtdLFxuICAgICAgICAgICAgZGlyZWN0ZWRBY3ljbGljR3JhcGggPSBEaXJlY3RlZEFjeWNsaWNHcmFwaC5mcm9tVmVydGV4TmFtZXModmVydGV4TmFtZXMpO1xuXG4gICAgICBkaXJlY3RlZEdyYXBoID0gbmV3IERpcmVjdGVkR3JhcGgoY3ljbGljRWRnZXMsIGRpcmVjdGVkQWN5Y2xpY0dyYXBoKTtcblxuICAgICAgZWRnZXMuZm9yRWFjaCgoZWRnZSkgPT4gZGlyZWN0ZWRHcmFwaC5hZGRFZGdlKGVkZ2UpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb3JkZXJlZFZlcnRpY2VzID0gZ3JhcGguZ2V0T3JkZXJlZFZlcnRpY2VzKCksXG4gICAgICAgICAgICBjeWNsaWNFZGdlcyA9IFtdLFxuICAgICAgICAgICAgZGlyZWN0ZWRBY3ljbGljR3JhcGggPSBEaXJlY3RlZEFjeWNsaWNHcmFwaC5mcm9tT3JkZXJlZFZlcnRpY2VzKG9yZGVyZWRWZXJ0aWNlcyk7XG5cbiAgICAgIGRpcmVjdGVkR3JhcGggPSBuZXcgRGlyZWN0ZWRHcmFwaChjeWNsaWNFZGdlcywgZGlyZWN0ZWRBY3ljbGljR3JhcGgpO1xuICAgIH1cblxuICAgIHJldHVybiBkaXJlY3RlZEdyYXBoO1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkRpcmVjdGVkR3JhcGgiLCJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwiZmlsdGVyIiwiY3ljbGljRWRnZXMiLCJkaXJlY3RlZEFjeWNsaWNHcmFwaCIsImdldEN5Y2xpY0VkZ2VzIiwiZ2V0RGlyZWN0ZWRBY3ljbGljR3JhcGgiLCJnZXRWZXJ0ZXhOYW1lcyIsImdldE9yZGVyZWRWZXJ0ZXhOYW1lcyIsImFkZFZlcnRleEJ5VmVydGV4TmFtZSIsInZlcnRleE5hbWUiLCJpc0VkZ2VQcmVzZW50QnlWZXJ0ZXhOYW1lcyIsInNvdXJjZVZlcnRleE5hbWUiLCJ0YXJnZXRWZXJ0ZXhOYW1lIiwiaXNWZXJ0ZXhQcmVzZW50QnlWZXJ0ZXhOYW1lIiwiZ2V0U3VjY2Vzc29yVmVydGV4TmFtZXNCeVZlcnRleE5hbWUiLCJnZXRQcmVkZWNlc3NvclZlcnRleE5hbWVzQnlWZXJ0ZXhOYW1lIiwiZ2V0SW1tZWRpYXRlUHJlZGVjZXNzb3JWZXJ0ZXhOYW1lc0J5VmVydGV4TmFtZSIsImluY2x1ZGVDeWNsaWNFZGdlcyIsImltbWVkaWF0ZVByZWRlY2Vzc29yVmVydGV4TmFtZXMiLCJmb3JFYWNoIiwiY3ljbGljRWRnZSIsImN5Y2xpY0VkZ2VUYXJnZXRWZXJ0ZXhOYW1lIiwiZ2V0VGFyZ2V0VmVydGV4TmFtZSIsImN5Y2xpY0VkZ2VTb3VyY2VWZXJ0ZXhOYW1lIiwiZ2V0U291cmNlVmVydGV4TmFtZSIsImltbWVkaWF0ZVByZWRlY2Vzc29yVmVydGV4TmFtZSIsInB1c2giLCJnZXRJbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXhOYW1lc0J5VmVydGV4TmFtZSIsImltbWVkaWF0ZVN1Y2Nlc3NvclZlcnRleE5hbWVzIiwiaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4TmFtZSIsImFyZUN5Y2xlc1ByZXNlbnRCeVZlcnRleE5hbWUiLCJjeWNsZXNQcmVzZW50IiwidmVydGV4UHJlc2VudCIsImZpcnN0Q3ljbGUiLCJnZXRGaXJzdEN5Y2xlQnlWZXJ0ZXhOYW1lIiwidmVydGV4IiwiZ2V0VmVydGV4QnlWZXJ0ZXhOYW1lIiwic2xpY2UiLCJwYXJ0aWFsQ3ljbGVzIiwiY3ljbGVzIiwiZm9yd2FyZHNEZXB0aEZpcnN0U2VhcmNoIiwidmlzaXRlZFZlcnRleCIsImdldFByZWRlY2Vzc29yVmVydGljZXMiLCJ2aXNpdGVkVmVydGV4TmFtZSIsImdldE5hbWUiLCJtYXRjaGVzIiwibWF0Y2hTb3VyY2VWZXJ0ZXhOYW1lIiwicHJlZGVjZXNzb3JWZXJ0aWNlcyIsInBhcnRpYWxDeWNsZSIsIlBhcnRpYWxDeWNsZSIsImZyb21DeWNsaWNFZGdlQW5kUHJlZGVjZXNzb3JWZXJ0aWNlcyIsImN5Y2xpY0VkZ2VzTGVuZ3RoIiwibGVuZ3RoIiwidGVybWluYXRlIiwic29tZSIsInRhcmdldFZlcnRleCIsInN1Y2Nlc3NvclZlcnRpY2VzIiwiY3ljbGUiLCJDeWNsZSIsImZyb21WZXJ0ZXhOYW1lUGFydGlhbEN5Y2xlQW5kU3VjY2Vzc29yVmVydGljZXMiLCJjeWNsZXNMZW5ndGgiLCJnZXRGaXJzdEN5Y2xlIiwiZmlyc3RDeWNsaWNFZGdlIiwiYXJlQ3ljbGVzUHJlc2VudCIsImFkZFZlcnRpY2VzQnlWZXJ0ZXhOYW1lcyIsInZlcnRleE5hbWVzIiwicmVtb3ZlVmVydGV4QnlWZXJ0ZXhOYW1lIiwiZmlsdGVyQ3ljbGljRWRnZXMiLCJyZW1vdmVWZXJ0aWNlc0J5VmVydGV4TmFtZXMiLCJhZGRFZGdlIiwiZWRnZSIsInN1Y2Nlc3MiLCJjeWNsaWNFZGdlc0luY2x1ZGVzRWRnZSIsImNoZWNrRWRnZXNJbmNsdWRlc0VkZ2UiLCJhZGRFZGdlcyIsImVkZ2VzIiwicmVtb3ZlRWRnZSIsInJlbW92ZVN0cmFuZGVkVmVydGljZXMiLCJlZGdlUHJlc2VudCIsImlzRWRnZVByZXNlbnQiLCJlZGdlQ3ljbGljIiwicmVtb3ZlRWRnZUZyb21FZGdlcyIsInNvdXJjZVZlcnRleCIsInNvdXJjZVZlcnRleFN0cmFuZGVkIiwiaXNTdHJhbmRlZCIsInRhcmdldFZlcnRleFN0cmFuZGVkIiwicmVtb3ZlRWRnZXMiLCJhZGRFZGdlQnlWZXJ0ZXhOYW1lcyIsIkVkZ2UiLCJmcm9tU291cmNlVmVydGV4TmFtZUFuZFRhcmdldFZlcnRleE5hbWUiLCJyZW1vdmVFZGdlQnlWZXJ0ZXhOYW1lcyIsInJlbW92ZUVkZ2VzQnlUYXJnZXRWZXJ0ZXhOYW1lIiwiZWRnZXNCeVRhcmdldFZlcnRleE5hbWUiLCJnZXRFZGdlc0J5VGFyZ2V0VmVydGV4TmFtZSIsInJlbW92ZUVkZ2VzQnlTb3VyY2VWZXJ0ZXhOYW1lIiwiZWRnZXNCeVNvdXJjZVZlcnRleE5hbWUiLCJnZXRFZGdlc0J5U291cmNlVmVydGV4TmFtZSIsInJlbW92ZUFsbEVkZ2VzQW5kVmVydGljZXMiLCJEaXJlY3RlZEFjeWNsaWNHcmFwaCIsImZyb21Ob3RoaW5nIiwic291cmNlVmVydGV4UHJlc2VudCIsInRhcmdldFZlcnRleFByZXNlbnQiLCJkaXJlY3RlZEdyYXBoIiwiZnJvbVZlcnRleExpdGVyYWxzIiwidmVydGV4TGl0ZXJhbHMiLCJ2ZXJ0ZXhOYW1lc0Zyb21WZXJ0ZXhMaXRlcmFscyIsImVkZ2VzRnJvbVZlcnRleExpdGVyYWxzIiwiZnJvbVZlcnRleE5hbWVzQW5kRWRnZXMiLCJncmFwaCIsIkdyYXBoIiwiZnJvbVZlcnRleE5hbWVzIiwib3JkZXJlZFZlcnRpY2VzIiwiZ2V0T3JkZXJlZFZlcnRpY2VzIiwiZnJvbU9yZGVyZWRWZXJ0aWNlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFlcUJBOzs7eUJBYkM7eUJBQ1M7Z0NBQ007eURBRXBCOzBEQUNDO2lFQUNPO3NCQUUrQztxQkFDK0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdkksSUFBUUMsUUFBa0JDLHlCQUFjLENBQWhDRCxPQUFPRSxTQUFXRCx5QkFBYyxDQUF6QkM7QUFFQSxJQUFBLEFBQU1ILDhCQUFOO2FBQU1BLGNBQ1BJLFdBQVcsRUFBRUMsb0JBQW9COzhCQUQxQkw7UUFFakIsSUFBSSxDQUFDSSxXQUFXLEdBQUdBO1FBRW5CLElBQUksQ0FBQ0Msb0JBQW9CLEdBQUdBOztpQkFKWEw7O1lBT25CTSxLQUFBQTttQkFBQUEsU0FBQUEsaUJBQWlCO2dCQUNmLE9BQU8sSUFBSSxDQUFDRixXQUFXO1lBQ3pCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLDBCQUEwQjtnQkFDeEIsT0FBTyxJQUFJLENBQUNGLG9CQUFvQjtZQUNsQzs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxpQkFBaUI7Z0JBQUUsT0FBTyxJQUFJLENBQUNILG9CQUFvQixDQUFDRyxjQUFjO1lBQUk7OztZQUV0RUMsS0FBQUE7bUJBQUFBLFNBQUFBLHdCQUF3QjtnQkFBRSxPQUFPLElBQUksQ0FBQ0osb0JBQW9CLENBQUNJLHFCQUFxQjtZQUFJOzs7WUFFcEZDLEtBQUFBO21CQUFBQSxTQUFBQSxzQkFBc0JDLFVBQVUsRUFBRTtnQkFBRSxJQUFJLENBQUNOLG9CQUFvQixDQUFDSyxxQkFBcUIsQ0FBQ0M7WUFBYTs7O1lBRWpHQyxLQUFBQTttQkFBQUEsU0FBQUEsMkJBQTJCQyxnQkFBZ0IsRUFBRUMsZ0JBQWdCLEVBQUU7Z0JBQUUsT0FBTyxJQUFJLENBQUNULG9CQUFvQixDQUFDTywwQkFBMEIsQ0FBQ0Msa0JBQWtCQztZQUFtQjs7O1lBRWxLQyxLQUFBQTttQkFBQUEsU0FBQUEs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
355
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kaXJlY3RlZEdyYXBoLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IEVkZ2UgZnJvbSBcIi4vZWRnZVwiO1xuaW1wb3J0IEN5Y2xlIGZyb20gXCIuL2N5Y2xlXCI7XG5pbXBvcnQgUGFydGlhbEN5Y2xlIGZyb20gXCIuL3BhcnRpYWxDeWNsZVwiO1xuaW1wb3J0IERpcmVjdGVkQWN5Y2xpY0dyYXBoIGZyb20gXCIuL2RpcmVjdGVkQWN5Y2xpY0dyYXBoXCI7XG5cbmltcG9ydCB7IGZvcndhcmRzRGVwdGhGaXJzdFNlYXJjaCB9IGZyb20gXCIuL3V0aWxpdGllcy92ZXJ0ZXhcIjtcbmltcG9ydCB7IGNoZWNrRWRnZXNJbmNsdWRlc0VkZ2UsIHJlbW92ZUVkZ2VGcm9tRWRnZXMsIGVkZ2VzQnlTb3VyY2VWZXJ0ZXhOYW1lLCBlZGdlc0J5VGFyZ2V0VmVydGV4TmFtZSB9IGZyb20gXCIuL3V0aWxpdGllcy9lZGdlXCI7XG5cbmNvbnN0IHsgZmlyc3QsIGZpbHRlciB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERpcmVjdGVkR3JhcGgge1xuICBjb25zdHJ1Y3RvcihjeWNsaWNFZGdlcywgZGlyZWN0ZWRBY3ljbGljR3JhcGgpIHtcbiAgICB0aGlzLmN5Y2xpY0VkZ2VzID0gY3ljbGljRWRnZXM7XG5cbiAgICB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoID0gZGlyZWN0ZWRBY3ljbGljR3JhcGg7XG4gIH1cblxuICBnZXRDeWNsaWNFZGdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5jeWNsaWNFZGdlcztcbiAgfVxuXG4gIGdldERpcmVjdGVkQWN5Y2xpY0dyYXBoKCkge1xuICAgIHJldHVybiB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoO1xuICB9XG5cbiAgZ2V0VmVydGV4TmFtZXMoKSB7IHJldHVybiB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmdldFZlcnRleE5hbWVzKCk7IH1cblxuICBnZXRPcmRlcmVkVmVydGV4TmFtZXMoKSB7IHJldHVybiB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmdldE9yZGVyZWRWZXJ0ZXhOYW1lcygpOyB9XG5cbiAgYWRkVmVydGV4QnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpIHsgdGhpcy5kaXJlY3RlZEFjeWNsaWNHcmFwaC5hZGRWZXJ0ZXhCeVZlcnRleE5hbWUodmVydGV4TmFtZSk7IH1cblxuICBpc0VkZ2VQcmVzZW50QnlWZXJ0ZXhOYW1lcyhzb3VyY2VWZXJ0ZXhOYW1lLCB0YXJnZXRWZXJ0ZXhOYW1lKSB7IHJldHVybiB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmlzRWRnZVByZXNlbnRCeVZlcnRleE5hbWVzKHNvdXJjZVZlcnRleE5hbWUsIHRhcmdldFZlcnRleE5hbWUpOyB9XG5cbiAgaXNWZXJ0ZXhQcmVzZW50QnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpIHsgcmV0dXJuIHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGguaXNWZXJ0ZXhQcmVzZW50QnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpOyB9XG5cbiAgZ2V0U3VjY2Vzc29yVmVydGV4TmFtZXNCeVZlcnRleE5hbWUodmVydGV4TmFtZSkgeyByZXR1cm4gdGhpcy5kaXJlY3RlZEFjeWNsaWNHcmFwaC5nZXRTdWNjZXNzb3JWZXJ0ZXhOYW1lc0J5VmVydGV4TmFtZSh2ZXJ0ZXhOYW1lKTsgfVxuXG4gIGdldFByZWRlY2Vzc29yVmVydGV4TmFtZXNCeVZlcnRleE5hbWUodmVydGV4TmFtZSkgeyByZXR1cm4gdGhpcy5kaXJlY3RlZEFjeWNsaWNHcmFwaC5nZXRQcmVkZWNlc3NvclZlcnRleE5hbWVzQnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpOyB9XG5cbiAgZ2V0SW1tZWRpYXRlUHJlZGVjZXNzb3JWZXJ0ZXhOYW1lc0J5VmVydGV4TmFtZSh2ZXJ0ZXhOYW1lLCBpbmNsdWRlQ3ljbGljRWRnZXMgPSBmYWxzZSkge1xuICAgIGNvbnN0IGltbWVkaWF0ZVByZWRlY2Vzc29yVmVydGV4TmFtZXMgPSB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmdldEltbWVkaWF0ZVByZWRlY2Vzc29yVmVydGV4TmFtZXNCeVZlcnRleE5hbWUodmVydGV4TmFtZSk7XG5cbiAgICBpZiAoaW5jbHVkZUN5Y2xpY0VkZ2VzKSB7XG4gICAgICB0aGlzLmN5Y2xpY0VkZ2VzLmZvckVhY2goKGN5Y2xpY0VkZ2UpID0+IHtcbiAgICAgICAgY29uc3QgY3ljbGljRWRnZVRhcmdldFZlcnRleE5hbWUgPSBjeWNsaWNFZGdlLmdldFRhcmdldFZlcnRleE5hbWUoKTtcblxuICAgICAgICBpZiAoY3ljbGljRWRnZVRhcmdldFZlcnRleE5hbWUgPT09IHZlcnRleE5hbWUpIHtcbiAgICAgICAgICBjb25zdCBjeWNsaWNFZGdlU291cmNlVmVydGV4TmFtZSA9IGN5Y2xpY0VkZ2UuZ2V0U291cmNlVmVydGV4TmFtZSgpLFxuICAgICAgICAgICAgICAgIGltbWVkaWF0ZVByZWRlY2Vzc29yVmVydGV4TmFtZSA9IGN5Y2xpY0VkZ2VTb3VyY2VWZXJ0ZXhOYW1lOyAgLy8vXG5cbiAgICAgICAgICBpbW1lZGlhdGVQcmVkZWNlc3NvclZlcnRleE5hbWVzLnB1c2goaW1tZWRpYXRlUHJlZGVjZXNzb3JWZXJ0ZXhOYW1lKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGltbWVkaWF0ZVByZWRlY2Vzc29yVmVydGV4TmFtZXM7XG4gIH1cblxuICBnZXRJbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXhOYW1lc0J5VmVydGV4TmFtZSh2ZXJ0ZXhOYW1lLCBpbmNsdWRlQ3ljbGljRWRnZXMgPSBmYWxzZSkge1xuICAgIGNvbnN0IGltbWVkaWF0ZVN1Y2Nlc3NvclZlcnRleE5hbWVzID0gdGhpcy5kaXJlY3RlZEFjeWNsaWNHcmFwaC5nZXRJbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXhOYW1lc0J5VmVydGV4TmFtZSh2ZXJ0ZXhOYW1lKTtcblxuICAgIGlmIChpbmNsdWRlQ3ljbGljRWRnZXMpIHtcbiAgICAgIHRoaXMuY3ljbGljRWRnZXMuZm9yRWFjaCgoY3ljbGljRWRnZSkgPT4ge1xuICAgICAgICBjb25zdCBjeWNsaWNFZGdlU291cmNlVmVydGV4TmFtZSA9IGN5Y2xpY0VkZ2UuZ2V0U291cmNlVmVydGV4TmFtZSgpO1xuXG4gICAgICAgIGlmIChjeWNsaWNFZGdlU291cmNlVmVydGV4TmFtZSA9PT0gdmVydGV4TmFtZSkge1xuICAgICAgICAgIGNvbnN0IGN5Y2xpY0VkZ2VUYXJnZXRWZXJ0ZXhOYW1lID0gY3ljbGljRWRnZS5nZXRUYXJnZXRWZXJ0ZXhOYW1lKCksXG4gICAgICAgICAgICAgICAgaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4TmFtZSA9IGN5Y2xpY0VkZ2VUYXJnZXRWZXJ0ZXhOYW1lOyAgLy8vXG5cbiAgICAgICAgICBpbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXhOYW1lcy5wdXNoKGltbWVkaWF0ZVN1Y2Nlc3NvclZlcnRleE5hbWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4TmFtZXM7XG4gIH1cblxuICBhcmVDeWNsZXNQcmVzZW50QnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpIHtcbiAgICBsZXQgY3ljbGVzUHJlc2VudCA9IGZhbHNlO1xuXG4gICAgY29uc3QgdmVydGV4UHJlc2VudCA9IHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGguaXNWZXJ0ZXhQcmVzZW50QnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpO1xuXG4gICAgaWYgKHZlcnRleFByZXNlbnQpIHtcbiAgICAgIGNvbnN0IGZpcnN0Q3ljbGUgPSB0aGlzLmdldEZpcnN0Q3ljbGVCeVZlcnRleE5hbWUodmVydGV4TmFtZSk7XG5cbiAgICAgIGN5Y2xlc1ByZXNlbnQgPSAoZmlyc3RDeWNsZSAhPT0gbnVsbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGN5Y2xlc1ByZXNlbnQ7XG4gIH1cblxuICBnZXRGaXJzdEN5Y2xlQnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpIHtcbiAgICBsZXQgZmlyc3RDeWNsZSA9IG51bGw7XG4gICAgXG4gICAgY29uc3QgdmVydGV4ID0gdGhpcy5kaXJlY3RlZEFjeWNsaWNHcmFwaC5nZXRWZXJ0ZXhCeVZlcnRleE5hbWUodmVydGV4TmFtZSksXG4gICAgICAgICAgY3ljbGljRWRnZXMgPSB0aGlzLmN5Y2xpY0VkZ2VzLnNsaWNlKCksIC8vL1xuICAgICAgICAgIHBhcnRpYWxDeWNsZXMgPSBbXSxcbiAgICAgICAgICBjeWNsZXMgPSBbXTtcblxuICAgIGZvcndhcmRzRGVwdGhGaXJzdFNlYXJjaCh2ZXJ0ZXgsICh2aXNpdGVkVmVydGV4LCBnZXRQcmVkZWNlc3NvclZlcnRpY2VzKSA9PiB7XG4gICAgICBjb25zdCB2aXNpdGVkVmVydGV4TmFtZSA9IHZpc2l0ZWRWZXJ0ZXguZ2V0TmFtZSgpLFxuICAgICAgICAgICAgc291cmNlVmVydGV4TmFtZSA9IHZpc2l0ZWRWZXJ0ZXhOYW1lOyAvLy9cblxuICAgICAgZmlsdGVyKGN5Y2xpY0VkZ2VzLCAoY3ljbGljRWRnZSkgPT4ge1xuICAgICAgICBjb25zdCBtYXRjaGVzID0gY3ljbGljRWRnZS5tYXRjaFNvdXJjZVZlcnRleE5hbWUoc291cmNlVmVydGV4TmFtZSk7XG5cbiAgICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgICBjb25zdCBwcmVkZWNlc3NvclZlcnRpY2VzID0gZ2V0UHJlZGVjZXNzb3JWZXJ0aWNlcygpLFxuICAgICAgICAgICAgICAgIHBhcnRpYWxDeWNsZSA9ICBQYXJ0aWFsQ3ljbGUuZnJvbUN5Y2xpY0VkZ2VBbmRQcmVkZWNlc3NvclZlcnRpY2VzKGN5Y2xpY0VkZ2UsIHByZWRlY2Vzc29yVmVydGljZXMpO1xuICAgICAgICAgIFxuICAgICAgICAgIHBhcnRpYWxDeWNsZXMucHVzaChwYXJ0aWFsQ3ljbGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgY3ljbGljRWRnZXNMZW5ndGggPSBjeWNsaWNFZGdlcy5sZW5ndGgsXG4gICAgICAgICAgICB0ZXJtaW5hdGUgPSAoY3ljbGljRWRnZXNMZW5ndGggPT09IDApO1xuXG4gICAgICByZXR1cm4gdGVybWluYXRlO1xuICAgIH0pO1xuXG4gICAgcGFydGlhbEN5Y2xlcy5zb21lKChwYXJ0aWFsQ3ljbGUpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldFZlcnRleE5hbWUgPSBwYXJ0aWFsQ3ljbGUuZ2V0VGFyZ2V0VmVydGV4TmFtZSgpLFxuICAgICAgICAgICAgdGFyZ2V0VmVydGV4ID0gdGhpcy5kaXJlY3RlZEFjeWNsaWNHcmFwaC5nZXRWZXJ0ZXhCeVZlcnRleE5hbWUodGFyZ2V0VmVydGV4TmFtZSk7XG5cbiAgICAgIGZvcndhcmRzRGVwdGhGaXJzdFNlYXJjaCh0YXJnZXRWZXJ0ZXgsICh2aXNpdGVkVmVydGV4LCBnZXRQcmVkZWNlc3NvclZlcnRpY2VzKSA9PiB7XG4gICAgICAgIGNvbnN0IHZpc2l0ZWRWZXJ0ZXhOYW1lID0gdmlzaXRlZFZlcnRleC5nZXROYW1lKCk7XG5cbiAgICAgICAgaWYgKHZpc2l0ZWRWZXJ0ZXhOYW1lID09PSB2ZXJ0ZXhOYW1lKSB7XG4gICAgICAgICAgY29uc3QgcHJlZGVjZXNzb3JWZXJ0aWNlcyA9IGdldFByZWRlY2Vzc29yVmVydGljZXMoKSxcbiAgICAgICAgICAgICAgICBzdWNjZXNzb3JWZXJ0aWNlcyA9IHByZWRlY2Vzc29yVmVydGljZXMsICAvLy9cbiAgICAgICAgICAgICAgICBjeWNsZSA9IEN5Y2xlLmZyb21WZXJ0ZXhOYW1lUGFydGlhbEN5Y2xlQW5kU3VjY2Vzc29yVmVydGljZXModmVydGV4TmFtZSwgcGFydGlhbEN5Y2xlLCBzdWNjZXNzb3JWZXJ0aWNlcyk7XG5cbiAgICAgICAgICBjeWNsZXMucHVzaChjeWNsZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjeWNsZXNMZW5ndGggPSBjeWNsZXMubGVuZ3RoLFxuICAgICAgICAgICAgICB0ZXJtaW5hdGUgPSAoY3ljbGVzTGVuZ3RoID4gMCk7XG5cbiAgICAgICAgcmV0dXJuIHRlcm1pbmF0ZTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY29uc3QgY3ljbGVzTGVuZ3RoID0gY3ljbGVzLmxlbmd0aDtcbiAgICBcbiAgICBpZiAoY3ljbGVzTGVuZ3RoID4gMCkge1xuICAgICAgZmlyc3RDeWNsZSA9IGZpcnN0KGN5Y2xlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpcnN0Q3ljbGU7XG4gIH1cblxuICBnZXRGaXJzdEN5Y2xlKCkge1xuICAgIGNvbnN0IGZpcnN0Q3ljbGljRWRnZSA9IGZpcnN0KHRoaXMuY3ljbGljRWRnZXMpLFxuICAgICAgICAgIGN5Y2xpY0VkZ2UgPSBmaXJzdEN5Y2xpY0VkZ2UsIC8vL1xuICAgICAgICAgIHNvdXJjZVZlcnRleE5hbWUgPSBjeWNsaWNFZGdlLmdldFNvdXJjZVZlcnRleE5hbWUoKSxcbiAgICAgICAgICB2ZXJ0ZXhOYW1lID0gc291cmNlVmVydGV4TmFtZSwgIC8vL1xuICAgICAgICAgIGZpcnN0Q3ljbGUgPSB0aGlzLmdldEZpcnN0Q3ljbGVCeVZlcnRleE5hbWUodmVydGV4TmFtZSk7XG5cbiAgICByZXR1cm4gZmlyc3RDeWNsZTtcbiAgfVxuXG4gIGFyZUN5Y2xlc1ByZXNlbnQoKSB7XG4gICAgY29uc3QgY3ljbGljRWRnZXNMZW5ndGggPSB0aGlzLmN5Y2xpY0VkZ2VzLmxlbmd0aCxcbiAgICAgICAgICBjeWNsZXNQcmVzZW50ID0gKGN5Y2xpY0VkZ2VzTGVuZ3RoID4gMCk7XG5cbiAgICByZXR1cm4gY3ljbGVzUHJlc2VudDtcbiAgfVxuXG4gIGFkZFZlcnRpY2VzQnlWZXJ0ZXhOYW1lcyh2ZXJ0ZXhOYW1lcykge1xuICAgIHZlcnRleE5hbWVzLmZvckVhY2goKHZlcnRleE5hbWUpID0+IHRoaXMuYWRkVmVydGV4QnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpKTtcbiAgfVxuXG4gIHJlbW92ZVZlcnRleEJ5VmVydGV4TmFtZSh2ZXJ0ZXhOYW1lKSB7XG4gICAgdGhpcy5kaXJlY3RlZEFjeWNsaWNHcmFwaC5yZW1vdmVWZXJ0ZXhCeVZlcnRleE5hbWUodmVydGV4TmFtZSk7XG5cbiAgICB0aGlzLmZpbHRlckN5Y2xpY0VkZ2VzKCk7XG4gIH1cblxuICByZW1vdmVWZXJ0aWNlc0J5VmVydGV4TmFtZXModmVydGV4TmFtZXMpIHtcbiAgICB2ZXJ0ZXhOYW1lcy5mb3JFYWNoKCh2ZXJ0ZXhOYW1lKSA9PiB0aGlzLnJlbW92ZVZlcnRleEJ5VmVydGV4TmFtZSh2ZXJ0ZXhOYW1lKSk7XG4gIH1cblxuICBhZGRFZGdlKGVkZ2UpIHtcbiAgICBjb25zdCBzdWNjZXNzID0gdGhpcy5kaXJlY3RlZEFjeWNsaWNHcmFwaC5hZGRFZGdlKGVkZ2UpO1xuICAgIFxuICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgY29uc3QgY3ljbGljRWRnZXNJbmNsdWRlc0VkZ2UgPSBjaGVja0VkZ2VzSW5jbHVkZXNFZGdlKGVkZ2UsIHRoaXMuY3ljbGljRWRnZXMpO1xuXG4gICAgICBpZiAoIWN5Y2xpY0VkZ2VzSW5jbHVkZXNFZGdlKSB7XG4gICAgICAgIGNvbnN0IGN5Y2xpY0VkZ2UgPSBlZGdlOyAgLy8vXG5cbiAgICAgICAgdGhpcy5jeWNsaWNFZGdlcy5wdXNoKGN5Y2xpY0VkZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgYWRkRWRnZXMoZWRnZXMpIHtcbiAgICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB0aGlzLmFkZEVkZ2UoZWRnZSkpO1xuICB9XG5cbiAgcmVtb3ZlRWRnZShlZGdlLCByZW1vdmVTdHJhbmRlZFZlcnRpY2VzID0gZmFsc2UpIHtcbiAgICBjb25zdCBjeWNsaWNFZGdlc0luY2x1ZGVzRWRnZSA9IGNoZWNrRWRnZXNJbmNsdWRlc0VkZ2UoZWRnZSwgdGhpcy5jeWNsaWNFZGdlcyksXG4gICAgICAgICAgZWRnZVByZXNlbnQgPSB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmlzRWRnZVByZXNlbnQoZWRnZSksXG4gICAgICAgICAgZWRnZUN5Y2xpYyA9IGN5Y2xpY0VkZ2VzSW5jbHVkZXNFZGdlOyAvLy9cblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmIChlZGdlQ3ljbGljKSB7XG4gICAgICBjb25zdCBjeWNsaWNFZGdlID0gZWRnZTsgIC8vL1xuXG4gICAgICByZW1vdmVFZGdlRnJvbUVkZ2VzKGN5Y2xpY0VkZ2UsIHRoaXMuY3ljbGljRWRnZXMpO1xuICAgIH0gZWxzZSBpZiAoZWRnZVByZXNlbnQpIHtcbiAgICAgIHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGgucmVtb3ZlRWRnZShlZGdlKTtcblxuICAgICAgaWYgKHJlbW92ZVN0cmFuZGVkVmVydGljZXMpIHtcbiAgICAgICAgY29uc3Qgc291cmNlVmVydGV4TmFtZSA9IGVkZ2UuZ2V0U291cmNlVmVydGV4TmFtZSgpLFxuICAgICAgICAgICAgICB0YXJnZXRWZXJ0ZXhOYW1lID0gZWRnZS5nZXRUYXJnZXRWZXJ0ZXhOYW1lKCksXG4gICAgICAgICAgICAgIHNvdXJjZVZlcnRleCA9IHRoaXMuZGlyZWN0ZWRBY3ljbGljR3JhcGguZ2V0VmVydGV4QnlWZXJ0ZXhOYW1lKHNvdXJjZVZlcnRleE5hbWUpLFxuICAgICAgICAgICAgICB0YXJnZXRWZXJ0ZXggPSB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmdldFZlcnRleEJ5VmVydGV4TmFtZSh0YXJnZXRWZXJ0ZXhOYW1lKSxcbiAgICAgICAgICAgICAgc291cmNlVmVydGV4U3RyYW5kZWQgPSBzb3VyY2VWZXJ0ZXguaXNTdHJhbmRlZCgpLFxuICAgICAgICAgICAgICB0YXJnZXRWZXJ0ZXhTdHJhbmRlZCA9IHRhcmdldFZlcnRleC5pc1N0cmFuZGVkKCk7XG5cbiAgICAgICAgaWYgKHNvdXJjZVZlcnRleFN0cmFuZGVkKSB7XG4gICAgICAgICAgdGhpcy5kaXJlY3RlZEFjeWNsaWNHcmFwaC5yZW1vdmVWZXJ0ZXhCeVZlcnRleE5hbWUoc291cmNlVmVydGV4TmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFyZ2V0VmVydGV4U3RyYW5kZWQpIHtcbiAgICAgICAgICB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLnJlbW92ZVZlcnRleEJ5VmVydGV4TmFtZSh0YXJnZXRWZXJ0ZXhOYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyQ3ljbGljRWRnZXMoKTtcbiAgfVxuXG4gIHJlbW92ZUVkZ2VzKGVkZ2VzLCByZW1vdmVTdHJhbmRlZFZlcnRpY2VzID0gZmFsc2UpIHtcbiAgICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB0aGlzLnJlbW92ZUVkZ2UoZWRnZSwgcmVtb3ZlU3RyYW5kZWRWZXJ0aWNlcykpO1xuICB9XG5cbiAgYWRkRWRnZUJ5VmVydGV4TmFtZXMoc291cmNlVmVydGV4TmFtZSwgdGFyZ2V0VmVydGV4TmFtZSkge1xuICAgIGNvbnN0IGVkZ2UgPSBFZGdlLmZyb21Tb3VyY2VWZXJ0ZXhOYW1lQW5kVGFyZ2V0VmVydGV4TmFtZShzb3VyY2VWZXJ0ZXhOYW1lLCB0YXJnZXRWZXJ0ZXhOYW1lKTtcblxuICAgIHRoaXMuYWRkRWRnZShlZGdlKTtcbiAgfVxuXG4gIHJlbW92ZUVkZ2VCeVZlcnRleE5hbWVzKHNvdXJjZVZlcnRleE5hbWUsIHRhcmdldFZlcnRleE5hbWUsIHJlbW92ZVN0cmFuZGVkVmVydGljZXMgPSBmYWxzZSkge1xuICAgIGNvbnN0IGVkZ2UgPSBFZGdlLmZyb21Tb3VyY2VWZXJ0ZXhOYW1lQW5kVGFyZ2V0VmVydGV4TmFtZShzb3VyY2VWZXJ0ZXhOYW1lLCB0YXJnZXRWZXJ0ZXhOYW1lKTtcblxuICAgIHRoaXMucmVtb3ZlRWRnZShlZGdlLCByZW1vdmVTdHJhbmRlZFZlcnRpY2VzKTtcbiAgfVxuXG4gIHJlbW92ZUVkZ2VzQnlUYXJnZXRWZXJ0ZXhOYW1lKHRhcmdldFZlcnRleE5hbWUsIHJlbW92ZVN0cmFuZGVkVmVydGljZXMgPSBmYWxzZSkge1xuICAgIGNvbnN0IGN5Y2xpY0VkZ2VzID0gZWRnZXNCeVRhcmdldFZlcnRleE5hbWUodGFyZ2V0VmVydGV4TmFtZSwgdGhpcy5jeWNsaWNFZGdlcyksXG4gICAgICAgICAgZWRnZXMgPSB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmdldEVkZ2VzQnlUYXJnZXRWZXJ0ZXhOYW1lKHRhcmdldFZlcnRleE5hbWUpO1xuXG4gICAgdGhpcy5yZW1vdmVFZGdlcyhjeWNsaWNFZGdlcywgcmVtb3ZlU3RyYW5kZWRWZXJ0aWNlcyk7XG5cbiAgICB0aGlzLnJlbW92ZUVkZ2VzKGVkZ2VzLCByZW1vdmVTdHJhbmRlZFZlcnRpY2VzKTtcbiAgfVxuXG4gIHJlbW92ZUVkZ2VzQnlTb3VyY2VWZXJ0ZXhOYW1lKHNvdXJjZVZlcnRleE5hbWUsIHJlbW92ZVN0cmFuZGVkVmVydGljZXMgPSBmYWxzZSkge1xuICAgIGNvbnN0IGN5Y2xpY0VkZ2VzID0gZWRnZXNCeVNvdXJjZVZlcnRleE5hbWUoc291cmNlVmVydGV4TmFtZSwgdGhpcy5jeWNsaWNFZGdlcyksXG4gICAgICAgICAgZWRnZXMgPSB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmdldEVkZ2VzQnlTb3VyY2VWZXJ0ZXhOYW1lKHNvdXJjZVZlcnRleE5hbWUpO1xuXG4gICAgdGhpcy5yZW1vdmVFZGdlcyhjeWNsaWNFZGdlcywgcmVtb3ZlU3RyYW5kZWRWZXJ0aWNlcyk7XG5cbiAgICB0aGlzLnJlbW92ZUVkZ2VzKGVkZ2VzLCByZW1vdmVTdHJhbmRlZFZlcnRpY2VzKTtcbiAgfVxuXG4gIHJlbW92ZUFsbEVkZ2VzQW5kVmVydGljZXMoKSB7XG4gICAgdGhpcy5kaXJlY3RlZEFjeWNsaWNHcmFwaCA9IERpcmVjdGVkQWN5Y2xpY0dyYXBoLmZyb21Ob3RoaW5nKCk7XG5cbiAgICB0aGlzLmN5Y2xpY0VkZ2VzID0gW107XG4gIH1cblxuICBmaWx0ZXJDeWNsaWNFZGdlcygpIHtcbiAgICBmaWx0ZXIodGhpcy5jeWNsaWNFZGdlcywgKGN5Y2xpY0VkZ2UpID0+IHtcbiAgICAgIGNvbnN0IHNvdXJjZVZlcnRleE5hbWUgPSBjeWNsaWNFZGdlLmdldFNvdXJjZVZlcnRleE5hbWUoKSxcbiAgICAgICAgICAgIHRhcmdldFZlcnRleE5hbWUgPSBjeWNsaWNFZGdlLmdldFRhcmdldFZlcnRleE5hbWUoKSxcbiAgICAgICAgICAgIHNvdXJjZVZlcnRleFByZXNlbnQgPSB0aGlzLmlzVmVydGV4UHJlc2VudEJ5VmVydGV4TmFtZShzb3VyY2VWZXJ0ZXhOYW1lKSxcbiAgICAgICAgICAgIHRhcmdldFZlcnRleFByZXNlbnQgPSB0aGlzLmlzVmVydGV4UHJlc2VudEJ5VmVydGV4TmFtZSh0YXJnZXRWZXJ0ZXhOYW1lKTtcblxuICAgICAgaWYgKHNvdXJjZVZlcnRleFByZXNlbnQgJiYgdGFyZ2V0VmVydGV4UHJlc2VudCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGZpbHRlcih0aGlzLmN5Y2xpY0VkZ2VzLCAoY3ljbGljRWRnZSkgPT4ge1xuICAgICAgY29uc3QgZWRnZSA9IGN5Y2xpY0VkZ2UsICAvLy9cbiAgICAgICAgICAgIHN1Y2Nlc3MgPSB0aGlzLmRpcmVjdGVkQWN5Y2xpY0dyYXBoLmFkZEVkZ2UoZWRnZSk7XG5cbiAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBjeWNsaWNFZGdlcyA9IFtdLFxuICAgICAgICAgIGRpcmVjdGVkQWN5Y2xpY0dyYXBoID0gRGlyZWN0ZWRBY3ljbGljR3JhcGguZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBkaXJlY3RlZEdyYXBoID0gbmV3IERpcmVjdGVkR3JhcGgoY3ljbGljRWRnZXMsIGRpcmVjdGVkQWN5Y2xpY0dyYXBoKTtcbiAgICBcbiAgICByZXR1cm4gZGlyZWN0ZWRHcmFwaDsgICAgXG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiRGlyZWN0ZWRHcmFwaCIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJmaWx0ZXIiLCJjeWNsaWNFZGdlcyIsImRpcmVjdGVkQWN5Y2xpY0dyYXBoIiwiZ2V0Q3ljbGljRWRnZXMiLCJnZXREaXJlY3RlZEFjeWNsaWNHcmFwaCIsImdldFZlcnRleE5hbWVzIiwiZ2V0T3JkZXJlZFZlcnRleE5hbWVzIiwiYWRkVmVydGV4QnlWZXJ0ZXhOYW1lIiwidmVydGV4TmFtZSIsImlzRWRnZVByZXNlbnRCeVZlcnRleE5hbWVzIiwic291cmNlVmVydGV4TmFtZSIsInRhcmdldFZlcnRleE5hbWUiLCJpc1ZlcnRleFByZXNlbnRCeVZlcnRleE5hbWUiLCJnZXRTdWNjZXNzb3JWZXJ0ZXhOYW1lc0J5VmVydGV4TmFtZSIsImdldFByZWRlY2Vzc29yVmVydGV4TmFtZXNCeVZlcnRleE5hbWUiLCJnZXRJbW1lZGlhdGVQcmVkZWNlc3NvclZlcnRleE5hbWVzQnlWZXJ0ZXhOYW1lIiwiaW5jbHVkZUN5Y2xpY0VkZ2VzIiwiaW1tZWRpYXRlUHJlZGVjZXNzb3JWZXJ0ZXhOYW1lcyIsImZvckVhY2giLCJjeWNsaWNFZGdlIiwiY3ljbGljRWRnZVRhcmdldFZlcnRleE5hbWUiLCJnZXRUYXJnZXRWZXJ0ZXhOYW1lIiwiY3ljbGljRWRnZVNvdXJjZVZlcnRleE5hbWUiLCJnZXRTb3VyY2VWZXJ0ZXhOYW1lIiwiaW1tZWRpYXRlUHJlZGVjZXNzb3JWZXJ0ZXhOYW1lIiwicHVzaCIsImdldEltbWVkaWF0ZVN1Y2Nlc3NvclZlcnRleE5hbWVzQnlWZXJ0ZXhOYW1lIiwiaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4TmFtZXMiLCJpbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXhOYW1lIiwiYXJlQ3ljbGVzUHJlc2VudEJ5VmVydGV4TmFtZSIsImN5Y2xlc1ByZXNlbnQiLCJ2ZXJ0ZXhQcmVzZW50IiwiZmlyc3RDeWNsZSIsImdldEZpcnN0Q3ljbGVCeVZlcnRleE5hbWUiLCJ2ZXJ0ZXgiLCJnZXRWZXJ0ZXhCeVZlcnRleE5hbWUiLCJzbGljZSIsInBhcnRpYWxDeWNsZXMiLCJjeWNsZXMiLCJmb3J3YXJkc0RlcHRoRmlyc3RTZWFyY2giLCJ2aXNpdGVkVmVydGV4IiwiZ2V0UHJlZGVjZXNzb3JWZXJ0aWNlcyIsInZpc2l0ZWRWZXJ0ZXhOYW1lIiwiZ2V0TmFtZSIsIm1hdGNoZXMiLCJtYXRjaFNvdXJjZVZlcnRleE5hbWUiLCJwcmVkZWNlc3NvclZlcnRpY2VzIiwicGFydGlhbEN5Y2xlIiwiUGFydGlhbEN5Y2xlIiwiZnJvbUN5Y2xpY0VkZ2VBbmRQcmVkZWNlc3NvclZlcnRpY2VzIiwiY3ljbGljRWRnZXNMZW5ndGgiLCJsZW5ndGgiLCJ0ZXJtaW5hdGUiLCJzb21lIiwidGFyZ2V0VmVydGV4Iiwic3VjY2Vzc29yVmVydGljZXMiLCJjeWNsZSIsIkN5Y2xlIiwiZnJvbVZlcnRleE5hbWVQYXJ0aWFsQ3ljbGVBbmRTdWNjZXNzb3JWZXJ0aWNlcyIsImN5Y2xlc0xlbmd0aCIsImdldEZpcnN0Q3ljbGUiLCJmaXJzdEN5Y2xpY0VkZ2UiLCJhcmVDeWNsZXNQcmVzZW50IiwiYWRkVmVydGljZXNCeVZlcnRleE5hbWVzIiwidmVydGV4TmFtZXMiLCJyZW1vdmVWZXJ0ZXhCeVZlcnRleE5hbWUiLCJmaWx0ZXJDeWNsaWNFZGdlcyIsInJlbW92ZVZlcnRpY2VzQnlWZXJ0ZXhOYW1lcyIsImFkZEVkZ2UiLCJlZGdlIiwic3VjY2VzcyIsImN5Y2xpY0VkZ2VzSW5jbHVkZXNFZGdlIiwiY2hlY2tFZGdlc0luY2x1ZGVzRWRnZSIsImFkZEVkZ2VzIiwiZWRnZXMiLCJyZW1vdmVFZGdlIiwicmVtb3ZlU3RyYW5kZWRWZXJ0aWNlcyIsImVkZ2VQcmVzZW50IiwiaXNFZGdlUHJlc2VudCIsImVkZ2VDeWNsaWMiLCJyZW1vdmVFZGdlRnJvbUVkZ2VzIiwic291cmNlVmVydGV4Iiwic291cmNlVmVydGV4U3RyYW5kZWQiLCJpc1N0cmFuZGVkIiwidGFyZ2V0VmVydGV4U3RyYW5kZWQiLCJyZW1vdmVFZGdlcyIsImFkZEVkZ2VCeVZlcnRleE5hbWVzIiwiRWRnZSIsImZyb21Tb3VyY2VWZXJ0ZXhOYW1lQW5kVGFyZ2V0VmVydGV4TmFtZSIsInJlbW92ZUVkZ2VCeVZlcnRleE5hbWVzIiwicmVtb3ZlRWRnZXNCeVRhcmdldFZlcnRleE5hbWUiLCJlZGdlc0J5VGFyZ2V0VmVydGV4TmFtZSIsImdldEVkZ2VzQnlUYXJnZXRWZXJ0ZXhOYW1lIiwicmVtb3ZlRWRnZXNCeVNvdXJjZVZlcnRleE5hbWUiLCJlZGdlc0J5U291cmNlVmVydGV4TmFtZSIsImdldEVkZ2VzQnlTb3VyY2VWZXJ0ZXhOYW1lIiwicmVtb3ZlQWxsRWRnZXNBbmRWZXJ0aWNlcyIsIkRpcmVjdGVkQWN5Y2xpY0dyYXBoIiwiZnJvbU5vdGhpbmciLCJzb3VyY2VWZXJ0ZXhQcmVzZW50IiwidGFyZ2V0VmVydGV4UHJlc2VudCIsImRpcmVjdGVkR3JhcGgiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBY3FCQTs7O3lCQVpVOzJEQUVkOzREQUNDO21FQUNPOzJFQUNRO3NCQUVRO3FCQUNxRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU5RyxJQUFRQyxRQUFrQkMsMEJBQWxCRCxPQUFPRSxTQUFXRCwwQkFBWEM7QUFFQSxJQUFBLEFBQU1ILDhCQUFOO2FBQU1BLGNBQ1BJLFdBQVcsRUFBRUMsb0JBQW9CO2dDQUQxQkw7UUFFakIsSUFBSSxDQUFDSSxjQUFjQTtRQUVuQixJQUFJLENBQUNDLHVCQUF1QkE7O2tCQUpYTDs7WUFPbkJNLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0Y7WUFDZDs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0Y7WUFDZDs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFBbUIsT0FBTyxJQUFJLENBQUNILHFCQUFxQkc7WUFBa0I7OztZQUV0RUMsS0FBQUE7bUJBQUFBLFNBQUFB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
package/lib/edge.js CHANGED
@@ -5,10 +5,92 @@ Object.defineProperty(exports, "__esModule", {
5
5
  Object.defineProperty(exports, "default", {
6
6
  enumerable: true,
7
7
  get: function() {
8
- return _default;
8
+ return Edge;
9
9
  }
10
10
  });
11
- var _occamPearceKelly = require("occam-pearce-kelly");
12
- var _default = _occamPearceKelly.Edge;
11
+ function _class_call_check(instance, Constructor) {
12
+ if (!(instance instanceof Constructor)) {
13
+ throw new TypeError("Cannot call a class as a function");
14
+ }
15
+ }
16
+ function _defineProperties(target, props) {
17
+ for(var i = 0; i < props.length; i++){
18
+ var descriptor = props[i];
19
+ descriptor.enumerable = descriptor.enumerable || false;
20
+ descriptor.configurable = true;
21
+ if ("value" in descriptor) descriptor.writable = true;
22
+ Object.defineProperty(target, descriptor.key, descriptor);
23
+ }
24
+ }
25
+ function _create_class(Constructor, protoProps, staticProps) {
26
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
+ if (staticProps) _defineProperties(Constructor, staticProps);
28
+ return Constructor;
29
+ }
30
+ var Edge = /*#__PURE__*/ function() {
31
+ function Edge(sourceVertexName, targetVertexName) {
32
+ _class_call_check(this, Edge);
33
+ this.sourceVertexName = sourceVertexName;
34
+ this.targetVertexName = targetVertexName;
35
+ }
36
+ _create_class(Edge, [
37
+ {
38
+ key: "getSourceVertexName",
39
+ value: function getSourceVertexName() {
40
+ return this.sourceVertexName;
41
+ }
42
+ },
43
+ {
44
+ key: "getTargetVertexName",
45
+ value: function getTargetVertexName() {
46
+ return this.targetVertexName;
47
+ }
48
+ },
49
+ {
50
+ key: "match",
51
+ value: function match(edge) {
52
+ var sourceVertexName = edge.getSourceVertexName(), targetVertexName = edge.getTargetVertexName(), matches = this.sourceVertexName === sourceVertexName && this.targetVertexName === targetVertexName;
53
+ return matches;
54
+ }
55
+ },
56
+ {
57
+ key: "matchVertexName",
58
+ value: function matchVertexName(vertexName) {
59
+ var matches = this.sourceVertexName === vertexName || this.targetVertexName === vertexName;
60
+ return matches;
61
+ }
62
+ },
63
+ {
64
+ key: "matchSourceVertexName",
65
+ value: function matchSourceVertexName(sourceVertexName) {
66
+ var matches = this.sourceVertexName === sourceVertexName;
67
+ return matches;
68
+ }
69
+ },
70
+ {
71
+ key: "matchTargetVertexName",
72
+ value: function matchTargetVertexName(targetVertexName) {
73
+ var matches = this.targetVertexName === targetVertexName;
74
+ return matches;
75
+ }
76
+ },
77
+ {
78
+ key: "matchVertexNames",
79
+ value: function matchVertexNames(sourceVertexName, targetVertexName) {
80
+ var matches = this.sourceVertexName === sourceVertexName && this.targetVertexName === targetVertexName;
81
+ return matches;
82
+ }
83
+ }
84
+ ], [
85
+ {
86
+ key: "fromSourceVertexNameAndTargetVertexName",
87
+ value: function fromSourceVertexNameAndTargetVertexName(sourceVertexName, targetVertexName) {
88
+ var edge = new Edge(sourceVertexName, targetVertexName);
89
+ return edge;
90
+ }
91
+ }
92
+ ]);
93
+ return Edge;
94
+ }();
13
95
 
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lZGdlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFZGdlIH0gZnJvbSBcIm9jY2FtLXBlYXJjZS1rZWxseVwiO1xuXG5leHBvcnQgZGVmYXVsdCBFZGdlO1xuIl0sIm5hbWVzIjpbIkVkZ2UiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBQTs7O2dDQUZxQjtJQUVyQixXQUFlQSxzQkFBSSJ9
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lZGdlLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFZGdlIHtcbiAgY29uc3RydWN0b3Ioc291cmNlVmVydGV4TmFtZSwgdGFyZ2V0VmVydGV4TmFtZSkge1xuICAgIHRoaXMuc291cmNlVmVydGV4TmFtZSA9IHNvdXJjZVZlcnRleE5hbWU7XG4gICAgdGhpcy50YXJnZXRWZXJ0ZXhOYW1lID0gdGFyZ2V0VmVydGV4TmFtZTtcbiAgfVxuICBcbiAgZ2V0U291cmNlVmVydGV4TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zb3VyY2VWZXJ0ZXhOYW1lO1xuICB9XG4gIFxuICBnZXRUYXJnZXRWZXJ0ZXhOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnRhcmdldFZlcnRleE5hbWU7XG4gIH1cbiAgXG4gIG1hdGNoKGVkZ2UpIHtcbiAgICBjb25zdCBzb3VyY2VWZXJ0ZXhOYW1lID0gZWRnZS5nZXRTb3VyY2VWZXJ0ZXhOYW1lKCksXG4gICAgICAgICAgdGFyZ2V0VmVydGV4TmFtZSA9IGVkZ2UuZ2V0VGFyZ2V0VmVydGV4TmFtZSgpLFxuICAgICAgICAgIG1hdGNoZXMgPSAoKHRoaXMuc291cmNlVmVydGV4TmFtZSA9PT0gc291cmNlVmVydGV4TmFtZSkgJiYgKHRoaXMudGFyZ2V0VmVydGV4TmFtZSA9PT0gdGFyZ2V0VmVydGV4TmFtZSkpO1xuICAgIFxuICAgIHJldHVybiBtYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpIHtcbiAgICBjb25zdCBtYXRjaGVzID0gKCh0aGlzLnNvdXJjZVZlcnRleE5hbWUgPT09IHZlcnRleE5hbWUpIHx8ICh0aGlzLnRhcmdldFZlcnRleE5hbWUgPT09IHZlcnRleE5hbWUpKTtcblxuICAgIHJldHVybiBtYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hTb3VyY2VWZXJ0ZXhOYW1lKHNvdXJjZVZlcnRleE5hbWUpIHtcbiAgICBjb25zdCBtYXRjaGVzID0gKHRoaXMuc291cmNlVmVydGV4TmFtZSA9PT0gc291cmNlVmVydGV4TmFtZSk7XG5cbiAgICByZXR1cm4gbWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoVGFyZ2V0VmVydGV4TmFtZSh0YXJnZXRWZXJ0ZXhOYW1lKSB7XG4gICAgY29uc3QgbWF0Y2hlcyA9ICh0aGlzLnRhcmdldFZlcnRleE5hbWUgPT09IHRhcmdldFZlcnRleE5hbWUpO1xuXG4gICAgcmV0dXJuIG1hdGNoZXM7XG4gIH1cblxuICBtYXRjaFZlcnRleE5hbWVzKHNvdXJjZVZlcnRleE5hbWUsIHRhcmdldFZlcnRleE5hbWUpIHtcbiAgICBjb25zdCBtYXRjaGVzID0gKCh0aGlzLnNvdXJjZVZlcnRleE5hbWUgPT09IHNvdXJjZVZlcnRleE5hbWUpICYmICh0aGlzLnRhcmdldFZlcnRleE5hbWUgPT09IHRhcmdldFZlcnRleE5hbWUpKTtcbiAgICBcbiAgICByZXR1cm4gbWF0Y2hlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU291cmNlVmVydGV4TmFtZUFuZFRhcmdldFZlcnRleE5hbWUoc291cmNlVmVydGV4TmFtZSwgdGFyZ2V0VmVydGV4TmFtZSkge1xuICAgIGNvbnN0IGVkZ2UgPSBuZXcgRWRnZShzb3VyY2VWZXJ0ZXhOYW1lLCB0YXJnZXRWZXJ0ZXhOYW1lKTtcblxuICAgIHJldHVybiBlZGdlO1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkVkZ2UiLCJzb3VyY2VWZXJ0ZXhOYW1lIiwidGFyZ2V0VmVydGV4TmFtZSIsImdldFNvdXJjZVZlcnRleE5hbWUiLCJnZXRUYXJnZXRWZXJ0ZXhOYW1lIiwibWF0Y2giLCJlZGdlIiwibWF0Y2hlcyIsIm1hdGNoVmVydGV4TmFtZSIsInZlcnRleE5hbWUiLCJtYXRjaFNvdXJjZVZlcnRleE5hbWUiLCJtYXRjaFRhcmdldFZlcnRleE5hbWUiLCJtYXRjaFZlcnRleE5hbWVzIiwiZnJvbVNvdXJjZVZlcnRleE5hbWVBbmRUYXJnZXRWZXJ0ZXhOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUVxQkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTixJQUFBLEFBQU1BLHFCQUFOO2FBQU1BLEtBQ1BDLGdCQUFnQixFQUFFQyxnQkFBZ0I7Z0NBRDNCRjtRQUVqQixJQUFJLENBQUNDLG1CQUFtQkE7UUFDeEIsSUFBSSxDQUFDQyxtQkFBbUJBOztrQkFIUEY7O1lBTW5CRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGO1lBQ2Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGO1lBQ2Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsTUFBTUMsSUFBSTtnQkFDUixJQUFNTCxtQkFBbUJLLEtBQUtILHVCQUN4QkQsbUJBQW1CSSxLQUFLRix1QkFDeEJHLFVBQVcsQUFBQyxJQUFJLENBQUNOLHFCQUFxQkEsb0JBQXNCLElBQUksQ0FBQ0MscUJBQXFCQTtnQkFFNUYsT0FBT0s7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxnQkFBZ0JDLFVBQVU7Z0JBQ3hCLElBQU1GLFVBQVcsQUFBQyxJQUFJLENBQUNOLHFCQUFxQlEsY0FBZ0IsSUFBSSxDQUFDUCxxQkFBcUJPO2dCQUV0RixPQUFPRjtZQUNUOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLHNCQUFzQlQsZ0JBQWdCO2dCQUNwQyxJQUFNTSxVQUFXLElBQUksQ0FBQ04scUJBQXFCQTtnQkFFM0MsT0FBT007WUFDVDs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSxzQkFBc0JULGdCQUFnQjtnQkFDcEMsSUFBTUssVUFBVyxJQUFJLENBQUNMLHFCQUFxQkE7Z0JBRTNDLE9BQU9LO1lBQ1Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsaUJBQWlCWCxnQkFBZ0IsRUFBRUMsZ0JBQWdCO2dCQUNqRCxJQUFNSyxVQUFXLEFBQUMsSUFBSSxDQUFDTixxQkFBcUJBLG9CQUFzQixJQUFJLENBQUNDLHFCQUFxQkE7Z0JBRTVGLE9BQU9LO1lBQ1Q7Ozs7WUFFT00sS0FBQUE7bUJBQVAsU0FBT0Esd0NBQXdDWixnQkFBZ0IsRUFBRUMsZ0JBQWdCO2dCQUMvRSxJQUFNSSxPQUFPLElBL0NJTixLQStDS0Msa0JBQWtCQztnQkFFeEMsT0FBT0k7WUFDVDs7O1dBbERtQk4ifQ==
package/lib/example.js CHANGED
@@ -18,4 +18,4 @@ directedGraph.addEdgeByVertexNames("./occam-lexers", "./with-style");
18
18
  directedGraph.removeVertexByVertexName("./occam-lexers");
19
19
  debugger;
20
20
 
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9leGFtcGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBEaXJlY3RlZEdyYXBoIH0gZnJvbSBcIi4vaW5kZXhcIjsgIC8vL1xuXG5jb25zdCBkaXJlY3RlZEdyYXBoID0gRGlyZWN0ZWRHcmFwaC5mcm9tTm90aGluZygpO1xuXG5kaXJlY3RlZEdyYXBoLmFkZFZlcnRpY2VzQnlWZXJ0ZXhOYW1lcyhbXG4gIFwiLi9lYXN5LWxheW91dFwiLFxuICBcIi4vZWFzeS13aXRoLXN0eWxlXCIsXG4gIFwiLi9vY2NhbS1sZXhlcnNcIixcbiAgXCIuL3dpdGgtc3R5bGVcIlxuXSk7XG5cbmRpcmVjdGVkR3JhcGguYWRkRWRnZUJ5VmVydGV4TmFtZXMoXCIuL2Vhc3ktd2l0aC1zdHlsZVwiLCBcIi4vZWFzeS1sYXlvdXRcIik7XG5kaXJlY3RlZEdyYXBoLmFkZEVkZ2VCeVZlcnRleE5hbWVzKFwiLi93aXRoLXN0eWxlXCIsIFwiLi9lYXN5LXdpdGgtc3R5bGVcIik7XG5kaXJlY3RlZEdyYXBoLmFkZEVkZ2VCeVZlcnRleE5hbWVzKFwiLi9lYXN5LWxheW91dFwiLCBcIi4vb2NjYW0tbGV4ZXJzXCIpO1xuZGlyZWN0ZWRHcmFwaC5hZGRFZGdlQnlWZXJ0ZXhOYW1lcyhcIi4vZWFzeS13aXRoLXN0eWxlXCIsIFwiLi9lYXN5LWxheW91dFwiKTtcbmRpcmVjdGVkR3JhcGguYWRkRWRnZUJ5VmVydGV4TmFtZXMoXCIuL29jY2FtLWxleGVyc1wiLCBcIi4vd2l0aC1zdHlsZVwiKTtcblxuZGlyZWN0ZWRHcmFwaC5yZW1vdmVWZXJ0ZXhCeVZlcnRleE5hbWUoXCIuL29jY2FtLWxleGVyc1wiKTtcblxuZGVidWdnZXJcbiJdLCJuYW1lcyI6WyJkaXJlY3RlZEdyYXBoIiwiRGlyZWN0ZWRHcmFwaCIsImZyb21Ob3RoaW5nIiwiYWRkVmVydGljZXNCeVZlcnRleE5hbWVzIiwiYWRkRWRnZUJ5VmVydGV4TmFtZXMiLCJyZW1vdmVWZXJ0ZXhCeVZlcnRleE5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7O3FCQUU4QjtBQUU5QixJQUFNQSxnQkFBZ0JDLG9CQUFhLENBQUNDLFdBQVc7QUFFL0NGLGNBQWNHLHdCQUF3QixDQUFDO0lBQ3JDO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFREgsY0FBY0ksb0JBQW9CLENBQUMscUJBQXFCO0FBQ3hESixjQUFjSSxvQkFBb0IsQ0FBQyxnQkFBZ0I7QUFDbkRKLGNBQWNJLG9CQUFvQixDQUFDLGlCQUFpQjtBQUNwREosY0FBY0ksb0JBQW9CLENBQUMscUJBQXFCO0FBQ3hESixjQUFjSSxvQkFBb0IsQ0FBQyxrQkFBa0I7QUFFckRKLGNBQWNLLHdCQUF3QixDQUFDO0FBRXZDLFFBQVEifQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9leGFtcGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBEaXJlY3RlZEdyYXBoIH0gZnJvbSBcIi4vaW5kZXhcIjsgIC8vL1xuXG5jb25zdCBkaXJlY3RlZEdyYXBoID0gRGlyZWN0ZWRHcmFwaC5mcm9tTm90aGluZygpO1xuXG5kaXJlY3RlZEdyYXBoLmFkZFZlcnRpY2VzQnlWZXJ0ZXhOYW1lcyhbXG4gIFwiLi9lYXN5LWxheW91dFwiLFxuICBcIi4vZWFzeS13aXRoLXN0eWxlXCIsXG4gIFwiLi9vY2NhbS1sZXhlcnNcIixcbiAgXCIuL3dpdGgtc3R5bGVcIlxuXSk7XG5cbmRpcmVjdGVkR3JhcGguYWRkRWRnZUJ5VmVydGV4TmFtZXMoXCIuL2Vhc3ktd2l0aC1zdHlsZVwiLCBcIi4vZWFzeS1sYXlvdXRcIik7XG5kaXJlY3RlZEdyYXBoLmFkZEVkZ2VCeVZlcnRleE5hbWVzKFwiLi93aXRoLXN0eWxlXCIsIFwiLi9lYXN5LXdpdGgtc3R5bGVcIik7XG5kaXJlY3RlZEdyYXBoLmFkZEVkZ2VCeVZlcnRleE5hbWVzKFwiLi9lYXN5LWxheW91dFwiLCBcIi4vb2NjYW0tbGV4ZXJzXCIpO1xuZGlyZWN0ZWRHcmFwaC5hZGRFZGdlQnlWZXJ0ZXhOYW1lcyhcIi4vZWFzeS13aXRoLXN0eWxlXCIsIFwiLi9lYXN5LWxheW91dFwiKTtcbmRpcmVjdGVkR3JhcGguYWRkRWRnZUJ5VmVydGV4TmFtZXMoXCIuL29jY2FtLWxleGVyc1wiLCBcIi4vd2l0aC1zdHlsZVwiKTtcblxuZGlyZWN0ZWRHcmFwaC5yZW1vdmVWZXJ0ZXhCeVZlcnRleE5hbWUoXCIuL29jY2FtLWxleGVyc1wiKTtcblxuZGVidWdnZXJcbiJdLCJuYW1lcyI6WyJkaXJlY3RlZEdyYXBoIiwiRGlyZWN0ZWRHcmFwaCIsImZyb21Ob3RoaW5nIiwiYWRkVmVydGljZXNCeVZlcnRleE5hbWVzIiwiYWRkRWRnZUJ5VmVydGV4TmFtZXMiLCJyZW1vdmVWZXJ0ZXhCeVZlcnRleE5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7O3FCQUU4QjtBQUU5QixJQUFNQSxnQkFBZ0JDLHFCQUFjQztBQUVwQ0YsY0FBY0cseUJBQXlCO0lBQ3JDO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFREgsY0FBY0kscUJBQXFCLHFCQUFxQjtBQUN4REosY0FBY0kscUJBQXFCLGdCQUFnQjtBQUNuREosY0FBY0kscUJBQXFCLGlCQUFpQjtBQUNwREosY0FBY0kscUJBQXFCLHFCQUFxQjtBQUN4REosY0FBY0kscUJBQXFCLGtCQUFrQjtBQUVyREosY0FBY0sseUJBQXlCO0FBRXZDLFFBQVEifQ==
package/lib/index.js CHANGED
@@ -16,12 +16,12 @@ _export(exports, {
16
16
  return _directedGraph.default;
17
17
  }
18
18
  });
19
- var _edge = /*#__PURE__*/ _interopRequireDefault(require("./edge"));
20
- var _directedGraph = /*#__PURE__*/ _interopRequireDefault(require("./directedGraph"));
21
- function _interopRequireDefault(obj) {
19
+ var _edge = /*#__PURE__*/ _interop_require_default(require("./edge"));
20
+ var _directedGraph = /*#__PURE__*/ _interop_require_default(require("./directedGraph"));
21
+ function _interop_require_default(obj) {
22
22
  return obj && obj.__esModule ? obj : {
23
23
  default: obj
24
24
  };
25
25
  }
26
26
 
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBFZGdlIH0gZnJvbSBcIi4vZWRnZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaXJlY3RlZEdyYXBoIH0gZnJvbSBcIi4vZGlyZWN0ZWRHcmFwaFwiO1xuIl0sIm5hbWVzIjpbIkVkZ2UiLCJEaXJlY3RlZEdyYXBoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFb0JBLElBQUk7ZUFBSkEsYUFBSTs7SUFDSkMsYUFBYTtlQUFiQSxzQkFBYTs7O3lEQUREO2tFQUNTIn0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBFZGdlIH0gZnJvbSBcIi4vZWRnZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaXJlY3RlZEdyYXBoIH0gZnJvbSBcIi4vZGlyZWN0ZWRHcmFwaFwiO1xuIl0sIm5hbWVzIjpbIkVkZ2UiLCJEaXJlY3RlZEdyYXBoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFb0JBLElBQUk7ZUFBSkE7O0lBQ0FDLGFBQWE7ZUFBYkE7OzsyREFEWTtvRUFDUyJ9
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _necessary = require("necessary");
12
- function _classCallCheck(instance, Constructor) {
12
+ function _class_call_check(instance, Constructor) {
13
13
  if (!(instance instanceof Constructor)) {
14
14
  throw new TypeError("Cannot call a class as a function");
15
15
  }
@@ -23,7 +23,7 @@ function _defineProperties(target, props) {
23
23
  Object.defineProperty(target, descriptor.key, descriptor);
24
24
  }
25
25
  }
26
- function _createClass(Constructor, protoProps, staticProps) {
26
+ function _create_class(Constructor, protoProps, staticProps) {
27
27
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
28
28
  if (staticProps) _defineProperties(Constructor, staticProps);
29
29
  return Constructor;
@@ -31,11 +31,11 @@ function _createClass(Constructor, protoProps, staticProps) {
31
31
  var first = _necessary.arrayUtilities.first;
32
32
  var PartialCycle = /*#__PURE__*/ function() {
33
33
  function PartialCycle(predecessorVertices, cyclicEdge) {
34
- _classCallCheck(this, PartialCycle);
34
+ _class_call_check(this, PartialCycle);
35
35
  this.predecessorVertices = predecessorVertices;
36
36
  this.cyclicEdge = cyclicEdge;
37
37
  }
38
- _createClass(PartialCycle, [
38
+ _create_class(PartialCycle, [
39
39
  {
40
40
  key: "getPredecessorVertices",
41
41
  value: function getPredecessorVertices() {
@@ -99,4 +99,4 @@ var PartialCycle = /*#__PURE__*/ function() {
99
99
  return PartialCycle;
100
100
  }();
101
101
 
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJ0aWFsQ3ljbGUuanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFydGlhbEN5Y2xlIHtcbiAgY29uc3RydWN0b3IocHJlZGVjZXNzb3JWZXJ0aWNlcywgY3ljbGljRWRnZSkge1xuICAgIHRoaXMucHJlZGVjZXNzb3JWZXJ0aWNlcyA9IHByZWRlY2Vzc29yVmVydGljZXM7XG4gICAgdGhpcy5jeWNsaWNFZGdlID0gY3ljbGljRWRnZTtcbiAgfVxuICBcbiAgZ2V0UHJlZGVjZXNzb3JWZXJ0aWNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWNlc3NvclZlcnRpY2VzO1xuICB9XG5cbiAgZ2V0Q3ljbGljRWRnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jeWNsaWNFZGdlO1xuICB9XG5cbiAgZ2V0VGFyZ2V0VmVydGV4TmFtZSgpIHtcbiAgICBjb25zdCBjeWNsaWNFZGdlVGFyZ2V0VmVydGV4TmFtZSA9IHRoaXMuY3ljbGljRWRnZS5nZXRUYXJnZXRWZXJ0ZXhOYW1lKCksXG4gICAgICAgICAgdGFyZ2V0VmVydGV4TmFtZSA9IGN5Y2xpY0VkZ2VUYXJnZXRWZXJ0ZXhOYW1lOyAgLy8vXG4gICAgXG4gICAgcmV0dXJuIHRhcmdldFZlcnRleE5hbWU7XG4gIH1cbiAgXG4gIGdldFByZWRlY2Vzc29yVmVydGV4TmFtZXMoKSB7XG4gICAgY29uc3QgcHJlZGVjZXNzb3JWZXJ0ZXhOYW1lcyA9IHRoaXMucHJlZGVjZXNzb3JWZXJ0aWNlcy5tYXAoKHByZWRlY2Vzc29yVmVydGV4KSA9PiB7XG4gICAgICBjb25zdCBwcmVkZWNlc3NvclZlcnRleE5hbWUgPSBwcmVkZWNlc3NvclZlcnRleC5nZXROYW1lKCk7XG5cbiAgICAgIHJldHVybiBwcmVkZWNlc3NvclZlcnRleE5hbWU7XG4gICAgfSk7XG4gICAgXG4gICAgcmV0dXJuIHByZWRlY2Vzc29yVmVydGV4TmFtZXM7XG4gIH1cbiAgXG4gIGdldEN5Y2xpY0VkZ2VTb3VyY2VWZXJ0ZXhOYW1lKCkge1xuICAgIGNvbnN0IGN5Y2xpY0VkZ2VTb3VyY2VWZXJ0ZXhOYW1lID0gdGhpcy5jeWNsaWNFZGdlLmdldFNvdXJjZVZlcnRleE5hbWUoKTtcbiAgICBcbiAgICByZXR1cm4gY3ljbGljRWRnZVNvdXJjZVZlcnRleE5hbWU7XG4gIH1cbiAgXG4gIGdldEN5Y2xpY0VkZ2VUYXJnZXRWZXJ0ZXhOYW1lKCkge1xuICAgIGNvbnN0IGN5Y2xpY0VkZ2VUYXJnZXRWZXJ0ZXhOYW1lID0gdGhpcy5jeWNsaWNFZGdlLmdldFRhcmdldFZlcnRleE5hbWUoKTtcbiAgICBcbiAgICByZXR1cm4gY3ljbGljRWRnZVRhcmdldFZlcnRleE5hbWU7XG4gIH1cbiAgXG4gIHN0YXRpYyBmcm9tQ3ljbGljRWRnZUFuZFByZWRlY2Vzc29yVmVydGljZXMoY3ljbGljRWRnZSwgcHJlZGVjZXNzb3JWZXJ0aWNlcykge1xuICAgIHByZWRlY2Vzc29yVmVydGljZXMgPSBwcmVkZWNlc3NvclZlcnRpY2VzLnNsaWNlKCk7ICAvLy9cbiAgICBcbiAgICBjb25zdCBwcmVkZWNlc3NvclZlcnRpY2VzTGVuZ3RoID0gcHJlZGVjZXNzb3JWZXJ0aWNlcy5sZW5ndGg7XG5cbiAgICBpZiAocHJlZGVjZXNzb3JWZXJ0aWNlc0xlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpcnN0UHJlZGVjZXNzb3JWZXJ0ZXggPSBmaXJzdChwcmVkZWNlc3NvclZlcnRpY2VzKSxcbiAgICAgICAgICAgIGZpcnN0UHJlZGVjZXNzb3JWZXJ0ZXhOYW1lID0gZmlyc3RQcmVkZWNlc3NvclZlcnRleC5nZXROYW1lKCksXG4gICAgICAgICAgICBjeWNsaWNFZGdlVGFyZ2V0VmVydGV4TmFtZSA9IGN5Y2xpY0VkZ2UuZ2V0VGFyZ2V0VmVydGV4TmFtZSgpO1xuXG4gICAgICBpZiAoZmlyc3RQcmVkZWNlc3NvclZlcnRleE5hbWUgPT09IGN5Y2xpY0VkZ2VUYXJnZXRWZXJ0ZXhOYW1lKSB7XG4gICAgICAgIHByZWRlY2Vzc29yVmVydGljZXMuc2hpZnQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwYXJ0aWFsQ3ljbGUgPSBuZXcgUGFydGlhbEN5Y2xlKHByZWRlY2Vzc29yVmVydGljZXMsIGN5Y2xpY0VkZ2UpO1xuICAgIFxuICAgIHJldHVybiBwYXJ0aWFsQ3ljbGU7XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiUGFydGlhbEN5Y2xlIiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsInByZWRlY2Vzc29yVmVydGljZXMiLCJjeWNsaWNFZGdlIiwiZ2V0UHJlZGVjZXNzb3JWZXJ0aWNlcyIsImdldEN5Y2xpY0VkZ2UiLCJnZXRUYXJnZXRWZXJ0ZXhOYW1lIiwiY3ljbGljRWRnZVRhcmdldFZlcnRleE5hbWUiLCJ0YXJnZXRWZXJ0ZXhOYW1lIiwiZ2V0UHJlZGVjZXNzb3JWZXJ0ZXhOYW1lcyIsInByZWRlY2Vzc29yVmVydGV4TmFtZXMiLCJtYXAiLCJwcmVkZWNlc3NvclZlcnRleCIsInByZWRlY2Vzc29yVmVydGV4TmFtZSIsImdldE5hbWUiLCJnZXRDeWNsaWNFZGdlU291cmNlVmVydGV4TmFtZSIsImN5Y2xpY0VkZ2VTb3VyY2VWZXJ0ZXhOYW1lIiwiZ2V0U291cmNlVmVydGV4TmFtZSIsImdldEN5Y2xpY0VkZ2VUYXJnZXRWZXJ0ZXhOYW1lIiwiZnJvbUN5Y2xpY0VkZ2VBbmRQcmVkZWNlc3NvclZlcnRpY2VzIiwic2xpY2UiLCJwcmVkZWNlc3NvclZlcnRpY2VzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RQcmVkZWNlc3NvclZlcnRleCIsImZpcnN0UHJlZGVjZXNzb3JWZXJ0ZXhOYW1lIiwic2hpZnQiLCJwYXJ0aWFsQ3ljbGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBTXFCQTs7O3lCQUpVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUvQixJQUFNLEFBQUVDLFFBQVVDLHlCQUFjLENBQXhCRDtBQUVPLElBQUEsQUFBTUQsNkJBQU47YUFBTUEsYUFDUEcsbUJBQW1CLEVBQUVDLFVBQVU7OEJBRHhCSjtRQUVqQixJQUFJLENBQUNHLG1CQUFtQixHQUFHQTtRQUMzQixJQUFJLENBQUNDLFVBQVUsR0FBR0E7O2lCQUhESjs7WUFNbkJLLEtBQUFBO21CQUFBQSxTQUFBQSx5QkFBeUI7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDRixtQkFBbUI7WUFDakM7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsZ0JBQWdCO2dCQUNkLE9BQU8sSUFBSSxDQUFDRixVQUFVO1lBQ3hCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLHNCQUFzQjtnQkFDcEIsSUFBTUMsNkJBQTZCLElBQUksQ0FBQ0osVUFBVSxDQUFDRyxtQkFBbUIsSUFDaEVFLG1CQUFtQkQsNEJBQTZCLEdBQUc7Z0JBRXpELE9BQU9DO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsNEJBQTRCO2dCQUMxQixJQUFNQyx5QkFBeUIsSUFBSSxDQUFDUixtQkFBbUIsQ0FBQ1MsR0FBRyxDQUFDLFNBQUNDLG1CQUFzQjtvQkFDakYsSUFBTUMsd0JBQXdCRCxrQkFBa0JFLE9BQU87b0JBRXZELE9BQU9EO2dCQUNUO2dCQUVBLE9BQU9IO1lBQ1Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsZ0NBQWdDO2dCQUM5QixJQUFNQyw2QkFBNkIsSUFBSSxDQUFDYixVQUFVLENBQUNjLG1CQUFtQjtnQkFFdEUsT0FBT0Q7WUFDVDs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxnQ0FBZ0M7Z0JBQzlCLElBQU1YLDZCQUE2QixJQUFJLENBQUNKLFVBQVUsQ0FBQ0csbUJBQW1CO2dCQUV0RSxPQUFPQztZQUNUOzs7O1lBRU9ZLEtBQUFBO21CQUFQLFNBQU9BLHFDQUFxQ2hCLFVBQVUsRUFBRUQsbUJBQW1CLEVBQUU7Z0JBQzNFQSxzQkFBc0JBLG9CQUFvQmtCLEtBQUssSUFBSyxHQUFHO2dCQUV2RCxJQUFNQyw0QkFBNEJuQixvQkFBb0JvQixNQUFNO2dCQUU1RCxJQUFJRCw0QkFBNEIsR0FBRztvQkFDakMsSUFBTUUseUJBQXlCdkIsTUFBTUUsc0JBQy9Cc0IsNkJBQTZCRCx1QkFBdUJULE9BQU8sSUFDM0RQLDZCQUE2QkosV0FBV0csbUJBQW1CO29CQUVqRSxJQUFJa0IsK0JBQStCakIsNEJBQTRCO3dCQUM3REwsb0JBQW9CdUIsS0FBSztvQkFDM0IsQ0FBQztnQkFDSCxDQUFDO2dCQUVELElBQU1DLGVBQWUsSUExREozQixhQTBEcUJHLHFCQUFxQkM7Z0JBRTNELE9BQU91QjtZQUNUOzs7V0E3RG1CM0IifQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJ0aWFsQ3ljbGUuanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFydGlhbEN5Y2xlIHtcbiAgY29uc3RydWN0b3IocHJlZGVjZXNzb3JWZXJ0aWNlcywgY3ljbGljRWRnZSkge1xuICAgIHRoaXMucHJlZGVjZXNzb3JWZXJ0aWNlcyA9IHByZWRlY2Vzc29yVmVydGljZXM7XG4gICAgdGhpcy5jeWNsaWNFZGdlID0gY3ljbGljRWRnZTtcbiAgfVxuICBcbiAgZ2V0UHJlZGVjZXNzb3JWZXJ0aWNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWNlc3NvclZlcnRpY2VzO1xuICB9XG5cbiAgZ2V0Q3ljbGljRWRnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jeWNsaWNFZGdlO1xuICB9XG5cbiAgZ2V0VGFyZ2V0VmVydGV4TmFtZSgpIHtcbiAgICBjb25zdCBjeWNsaWNFZGdlVGFyZ2V0VmVydGV4TmFtZSA9IHRoaXMuY3ljbGljRWRnZS5nZXRUYXJnZXRWZXJ0ZXhOYW1lKCksXG4gICAgICAgICAgdGFyZ2V0VmVydGV4TmFtZSA9IGN5Y2xpY0VkZ2VUYXJnZXRWZXJ0ZXhOYW1lOyAgLy8vXG4gICAgXG4gICAgcmV0dXJuIHRhcmdldFZlcnRleE5hbWU7XG4gIH1cbiAgXG4gIGdldFByZWRlY2Vzc29yVmVydGV4TmFtZXMoKSB7XG4gICAgY29uc3QgcHJlZGVjZXNzb3JWZXJ0ZXhOYW1lcyA9IHRoaXMucHJlZGVjZXNzb3JWZXJ0aWNlcy5tYXAoKHByZWRlY2Vzc29yVmVydGV4KSA9PiB7XG4gICAgICBjb25zdCBwcmVkZWNlc3NvclZlcnRleE5hbWUgPSBwcmVkZWNlc3NvclZlcnRleC5nZXROYW1lKCk7XG5cbiAgICAgIHJldHVybiBwcmVkZWNlc3NvclZlcnRleE5hbWU7XG4gICAgfSk7XG4gICAgXG4gICAgcmV0dXJuIHByZWRlY2Vzc29yVmVydGV4TmFtZXM7XG4gIH1cbiAgXG4gIGdldEN5Y2xpY0VkZ2VTb3VyY2VWZXJ0ZXhOYW1lKCkge1xuICAgIGNvbnN0IGN5Y2xpY0VkZ2VTb3VyY2VWZXJ0ZXhOYW1lID0gdGhpcy5jeWNsaWNFZGdlLmdldFNvdXJjZVZlcnRleE5hbWUoKTtcbiAgICBcbiAgICByZXR1cm4gY3ljbGljRWRnZVNvdXJjZVZlcnRleE5hbWU7XG4gIH1cbiAgXG4gIGdldEN5Y2xpY0VkZ2VUYXJnZXRWZXJ0ZXhOYW1lKCkge1xuICAgIGNvbnN0IGN5Y2xpY0VkZ2VUYXJnZXRWZXJ0ZXhOYW1lID0gdGhpcy5jeWNsaWNFZGdlLmdldFRhcmdldFZlcnRleE5hbWUoKTtcbiAgICBcbiAgICByZXR1cm4gY3ljbGljRWRnZVRhcmdldFZlcnRleE5hbWU7XG4gIH1cbiAgXG4gIHN0YXRpYyBmcm9tQ3ljbGljRWRnZUFuZFByZWRlY2Vzc29yVmVydGljZXMoY3ljbGljRWRnZSwgcHJlZGVjZXNzb3JWZXJ0aWNlcykge1xuICAgIHByZWRlY2Vzc29yVmVydGljZXMgPSBwcmVkZWNlc3NvclZlcnRpY2VzLnNsaWNlKCk7ICAvLy9cbiAgICBcbiAgICBjb25zdCBwcmVkZWNlc3NvclZlcnRpY2VzTGVuZ3RoID0gcHJlZGVjZXNzb3JWZXJ0aWNlcy5sZW5ndGg7XG5cbiAgICBpZiAocHJlZGVjZXNzb3JWZXJ0aWNlc0xlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpcnN0UHJlZGVjZXNzb3JWZXJ0ZXggPSBmaXJzdChwcmVkZWNlc3NvclZlcnRpY2VzKSxcbiAgICAgICAgICAgIGZpcnN0UHJlZGVjZXNzb3JWZXJ0ZXhOYW1lID0gZmlyc3RQcmVkZWNlc3NvclZlcnRleC5nZXROYW1lKCksXG4gICAgICAgICAgICBjeWNsaWNFZGdlVGFyZ2V0VmVydGV4TmFtZSA9IGN5Y2xpY0VkZ2UuZ2V0VGFyZ2V0VmVydGV4TmFtZSgpO1xuXG4gICAgICBpZiAoZmlyc3RQcmVkZWNlc3NvclZlcnRleE5hbWUgPT09IGN5Y2xpY0VkZ2VUYXJnZXRWZXJ0ZXhOYW1lKSB7XG4gICAgICAgIHByZWRlY2Vzc29yVmVydGljZXMuc2hpZnQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwYXJ0aWFsQ3ljbGUgPSBuZXcgUGFydGlhbEN5Y2xlKHByZWRlY2Vzc29yVmVydGljZXMsIGN5Y2xpY0VkZ2UpO1xuICAgIFxuICAgIHJldHVybiBwYXJ0aWFsQ3ljbGU7XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiUGFydGlhbEN5Y2xlIiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsInByZWRlY2Vzc29yVmVydGljZXMiLCJjeWNsaWNFZGdlIiwiZ2V0UHJlZGVjZXNzb3JWZXJ0aWNlcyIsImdldEN5Y2xpY0VkZ2UiLCJnZXRUYXJnZXRWZXJ0ZXhOYW1lIiwiY3ljbGljRWRnZVRhcmdldFZlcnRleE5hbWUiLCJ0YXJnZXRWZXJ0ZXhOYW1lIiwiZ2V0UHJlZGVjZXNzb3JWZXJ0ZXhOYW1lcyIsInByZWRlY2Vzc29yVmVydGV4TmFtZXMiLCJtYXAiLCJwcmVkZWNlc3NvclZlcnRleCIsInByZWRlY2Vzc29yVmVydGV4TmFtZSIsImdldE5hbWUiLCJnZXRDeWNsaWNFZGdlU291cmNlVmVydGV4TmFtZSIsImN5Y2xpY0VkZ2VTb3VyY2VWZXJ0ZXhOYW1lIiwiZ2V0U291cmNlVmVydGV4TmFtZSIsImdldEN5Y2xpY0VkZ2VUYXJnZXRWZXJ0ZXhOYW1lIiwiZnJvbUN5Y2xpY0VkZ2VBbmRQcmVkZWNlc3NvclZlcnRpY2VzIiwic2xpY2UiLCJwcmVkZWNlc3NvclZlcnRpY2VzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RQcmVkZWNlc3NvclZlcnRleCIsImZpcnN0UHJlZGVjZXNzb3JWZXJ0ZXhOYW1lIiwic2hpZnQiLCJwYXJ0aWFsQ3ljbGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBTXFCQTs7O3lCQUpVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUvQixJQUFNLEFBQUVDLFFBQVVDLDBCQUFWRDtBQUVPLElBQUEsQUFBTUQsNkJBQU47YUFBTUEsYUFDUEcsbUJBQW1CLEVBQUVDLFVBQVU7Z0NBRHhCSjtRQUVqQixJQUFJLENBQUNHLHNCQUFzQkE7UUFDM0IsSUFBSSxDQUFDQyxhQUFhQTs7a0JBSERKOztZQU1uQkssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRjtZQUNkOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRjtZQUNkOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLDZCQUE2QixJQUFJLENBQUNKLFdBQVdHLHVCQUM3Q0UsbUJBQW1CRCw0QkFBNkIsR0FBRztnQkFFekQsT0FBT0M7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyx5QkFBeUIsSUFBSSxDQUFDUixvQkFBb0JTLElBQUksU0FBQ0M7b0JBQzNELElBQU1DLHdCQUF3QkQsa0JBQWtCRTtvQkFFaEQsT0FBT0Q7Z0JBQ1Q7Z0JBRUEsT0FBT0g7WUFDVDs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyw2QkFBNkIsSUFBSSxDQUFDYixXQUFXYztnQkFFbkQsT0FBT0Q7WUFDVDs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNWCw2QkFBNkIsSUFBSSxDQUFDSixXQUFXRztnQkFFbkQsT0FBT0M7WUFDVDs7OztZQUVPWSxLQUFBQTttQkFBUCxTQUFPQSxxQ0FBcUNoQixVQUFVLEVBQUVELG1CQUFtQjtnQkFDekVBLHNCQUFzQkEsb0JBQW9Ca0IsU0FBVSxHQUFHO2dCQUV2RCxJQUFNQyw0QkFBNEJuQixvQkFBb0JvQjtnQkFFdEQsSUFBSUQsNEJBQTRCLEdBQUc7b0JBQ2pDLElBQU1FLHlCQUF5QnZCLE1BQU1FLHNCQUMvQnNCLDZCQUE2QkQsdUJBQXVCVCxXQUNwRFAsNkJBQTZCSixXQUFXRztvQkFFOUMsSUFBSWtCLCtCQUErQmpCLDRCQUE0Qjt3QkFDN0RMLG9CQUFvQnVCO29CQUN0QjtnQkFDRjtnQkFFQSxJQUFNQyxlQUFlLElBMURKM0IsYUEwRHFCRyxxQkFBcUJDO2dCQUUzRCxPQUFPdUI7WUFDVDs7O1dBN0RtQjNCIn0=
@@ -9,9 +9,6 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- edgesFromVertexLiterals: function() {
13
- return edgesFromVertexLiterals;
14
- },
15
12
  checkEdgesIncludesEdge: function() {
16
13
  return checkEdgesIncludesEdge;
17
14
  },
@@ -28,17 +25,6 @@ _export(exports, {
28
25
  var _necessary = require("necessary");
29
26
  var prune = _necessary.arrayUtilities.prune;
30
27
  var remove = prune; ///
31
- function edgesFromVertexLiterals(vertexLiterals) {
32
- var edges = [];
33
- vertexLiterals.forEach(function(vertexLiteral) {
34
- var firstVertexLiteralElement = first(vertexLiteral), secondVertexLiteralElement = second(vertexLiteral), ancestorVertexNames = secondVertexLiteralElement, vertexName = firstVertexLiteralElement; ///
35
- ancestorVertexNames.forEach(function(ancestorVertexName) {
36
- var sourceVertexName = ancestorVertexName, targetVertexName = vertexName, edge = new Edge(sourceVertexName, targetVertexName);
37
- edges.push(edge);
38
- });
39
- });
40
- return edges;
41
- }
42
28
  function checkEdgesIncludesEdge(edge, edges) {
43
29
  var edge1 = edge, edgesIncludesEdge = edges.some(function(edge) {
44
30
  var edge2 = edge, matches = edge1.match(edge2);
@@ -76,4 +62,4 @@ function edgesByTargetVertexName(targetVertexName, edges) {
76
62
  return edges;
77
63
  }
78
64
 
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZWRnZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgcHJ1bmUgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5jb25zdCByZW1vdmUgPSBwcnVuZTsgIC8vL1xuXG5leHBvcnQgZnVuY3Rpb24gZWRnZXNGcm9tVmVydGV4TGl0ZXJhbHModmVydGV4TGl0ZXJhbHMpIHtcbiAgY29uc3QgZWRnZXMgPSBbXTtcblxuICB2ZXJ0ZXhMaXRlcmFscy5mb3JFYWNoKCh2ZXJ0ZXhMaXRlcmFsKSA9PiB7XG4gICAgY29uc3QgZmlyc3RWZXJ0ZXhMaXRlcmFsRWxlbWVudCA9IGZpcnN0KHZlcnRleExpdGVyYWwpLFxuICAgICAgICAgIHNlY29uZFZlcnRleExpdGVyYWxFbGVtZW50ID0gc2Vjb25kKHZlcnRleExpdGVyYWwpLFxuICAgICAgICAgIGFuY2VzdG9yVmVydGV4TmFtZXMgPSBzZWNvbmRWZXJ0ZXhMaXRlcmFsRWxlbWVudCwgLy8vXG4gICAgICAgICAgdmVydGV4TmFtZSA9IGZpcnN0VmVydGV4TGl0ZXJhbEVsZW1lbnQ7IC8vL1xuXG4gICAgYW5jZXN0b3JWZXJ0ZXhOYW1lcy5mb3JFYWNoKChhbmNlc3RvclZlcnRleE5hbWUpID0+IHtcbiAgICAgIGNvbnN0IHNvdXJjZVZlcnRleE5hbWUgPSBhbmNlc3RvclZlcnRleE5hbWUsIC8vL1xuICAgICAgICAgICAgdGFyZ2V0VmVydGV4TmFtZSA9IHZlcnRleE5hbWUsICAvLy9cbiAgICAgICAgICAgIGVkZ2UgPSBuZXcgRWRnZShzb3VyY2VWZXJ0ZXhOYW1lLCB0YXJnZXRWZXJ0ZXhOYW1lKTtcblxuICAgICAgZWRnZXMucHVzaChlZGdlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIGVkZ2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tFZGdlc0luY2x1ZGVzRWRnZShlZGdlLCBlZGdlcykge1xuICBjb25zdCBlZGdlMSA9IGVkZ2UsIC8vL1xuICAgICAgICBlZGdlc0luY2x1ZGVzRWRnZSA9IGVkZ2VzLnNvbWUoKGVkZ2UpID0+IHtcbiAgICAgICAgICBjb25zdCBlZGdlMiA9IGVkZ2UsIC8vL1xuICAgICAgICAgICAgICAgIG1hdGNoZXMgPSBlZGdlMS5tYXRjaChlZGdlMik7XG5cbiAgICAgICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICByZXR1cm4gZWRnZXNJbmNsdWRlc0VkZ2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVFZGdlRnJvbUVkZ2VzKGVkZ2UsIGVkZ2VzKSB7XG4gIGNvbnN0IGVkZ2UxID0gZWRnZTsgLy8vXG5cbiAgcmVtb3ZlKGVkZ2VzLCAoZWRnZSkgPT4ge1xuICAgIGNvbnN0IGVkZ2UyID0gZWRnZSwgLy8vXG4gICAgICAgICAgbWF0Y2hlcyA9IGVkZ2UxLm1hdGNoKGVkZ2UyKTtcblxuICAgIGlmICghbWF0Y2hlcykgeyAvLy9cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlZGdlc0J5U291cmNlVmVydGV4TmFtZShzb3VyY2VWZXJ0ZXhOYW1lLCBlZGdlcykge1xuICBlZGdlcyA9IGVkZ2VzLmZpbHRlcigoZWRnZSkgPT4geyAgLy8vXG4gICAgY29uc3QgbWF0Y2hlcyA9IGVkZ2UubWF0Y2hTb3VyY2VWZXJ0ZXhOYW1lKHNvdXJjZVZlcnRleE5hbWUpO1xuXG4gICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGVkZ2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZWRnZXNCeVRhcmdldFZlcnRleE5hbWUodGFyZ2V0VmVydGV4TmFtZSwgZWRnZXMpIHtcbiAgZWRnZXMgPSBlZGdlcy5maWx0ZXIoKGVkZ2UpID0+IHsgIC8vL1xuICAgIGNvbnN0IG1hdGNoZXMgPSBlZGdlLm1hdGNoVGFyZ2V0VmVydGV4TmFtZSh0YXJnZXRWZXJ0ZXhOYW1lKTtcblxuICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBlZGdlcztcbn1cbiJdLCJuYW1lcyI6WyJlZGdlc0Zyb21WZXJ0ZXhMaXRlcmFscyIsImNoZWNrRWRnZXNJbmNsdWRlc0VkZ2UiLCJyZW1vdmVFZGdlRnJvbUVkZ2VzIiwiZWRnZXNCeVNvdXJjZVZlcnRleE5hbWUiLCJlZGdlc0J5VGFyZ2V0VmVydGV4TmFtZSIsInBydW5lIiwiYXJyYXlVdGlsaXRpZXMiLCJyZW1vdmUiLCJ2ZXJ0ZXhMaXRlcmFscyIsImVkZ2VzIiwiZm9yRWFjaCIsInZlcnRleExpdGVyYWwiLCJmaXJzdFZlcnRleExpdGVyYWxFbGVtZW50IiwiZmlyc3QiLCJzZWNvbmRWZXJ0ZXhMaXRlcmFsRWxlbWVudCIsInNlY29uZCIsImFuY2VzdG9yVmVydGV4TmFtZXMiLCJ2ZXJ0ZXhOYW1lIiwiYW5jZXN0b3JWZXJ0ZXhOYW1lIiwic291cmNlVmVydGV4TmFtZSIsInRhcmdldFZlcnRleE5hbWUiLCJlZGdlIiwiRWRnZSIsInB1c2giLCJlZGdlMSIsImVkZ2VzSW5jbHVkZXNFZGdlIiwic29tZSIsImVkZ2UyIiwibWF0Y2hlcyIsIm1hdGNoIiwiZmlsdGVyIiwibWF0Y2hTb3VyY2VWZXJ0ZXhOYW1lIiwibWF0Y2hUYXJnZXRWZXJ0ZXhOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFRZ0JBLHVCQUF1QjtlQUF2QkE7O0lBcUJBQyxzQkFBc0I7ZUFBdEJBOztJQWNBQyxtQkFBbUI7ZUFBbkJBOztJQWFBQyx1QkFBdUI7ZUFBdkJBOztJQVlBQyx1QkFBdUI7ZUFBdkJBOzs7eUJBbEVlO0FBRS9CLElBQU0sQUFBRUMsUUFBVUMseUJBQWMsQ0FBeEJEO0FBRVIsSUFBTUUsU0FBU0YsT0FBUSxHQUFHO0FBRW5CLFNBQVNMLHdCQUF3QlEsY0FBYyxFQUFFO0lBQ3RELElBQU1DLFFBQVEsRUFBRTtJQUVoQkQsZUFBZUUsT0FBTyxDQUFDLFNBQUNDLGVBQWtCO1FBQ3hDLElBQU1DLDRCQUE0QkMsTUFBTUYsZ0JBQ2xDRyw2QkFBNkJDLE9BQU9KLGdCQUNwQ0ssc0JBQXNCRiw0QkFDdEJHLGFBQWFMLDJCQUEyQixHQUFHO1FBRWpESSxvQkFBb0JOLE9BQU8sQ0FBQyxTQUFDUSxvQkFBdUI7WUFDbEQsSUFBTUMsbUJBQW1CRCxvQkFDbkJFLG1CQUFtQkgsWUFDbkJJLE9BQU8sSUFBSUMsS0FBS0gsa0JBQWtCQztZQUV4Q1gsTUFBTWMsSUFBSSxDQUFDRjtRQUNiO0lBQ0Y7SUFFQSxPQUFPWjtBQUNUO0FBRU8sU0FBU1IsdUJBQXVCb0IsSUFBSSxFQUFFWixLQUFLLEVBQUU7SUFDbEQsSUFBTWUsUUFBUUgsTUFDUkksb0JBQW9CaEIsTUFBTWlCLElBQUksQ0FBQyxTQUFDTCxNQUFTO1FBQ3ZDLElBQU1NLFFBQVFOLE1BQ1JPLFVBQVVKLE1BQU1LLEtBQUssQ0FBQ0Y7UUFFNUIsSUFBSUMsU0FBUztZQUNYLE9BQU8sSUFBSTtRQUNiLENBQUM7SUFDSDtJQUVOLE9BQU9IO0FBQ1Q7QUFFTyxTQUFTdkIsb0JBQW9CbUIsSUFBSSxFQUFFWixLQUFLLEVBQUU7SUFDL0MsSUFBTWUsUUFBUUgsTUFBTSxHQUFHO0lBRXZCZCxPQUFPRSxPQUFPLFNBQUNZLE1BQVM7UUFDdEIsSUFBTU0sUUFBUU4sTUFDUk8sVUFBVUosTUFBTUssS0FBSyxDQUFDRjtRQUU1QixJQUFJLENBQUNDLFNBQVM7WUFDWixPQUFPLElBQUk7UUFDYixDQUFDO0lBQ0g7QUFDRjtBQUVPLFNBQVN6Qix3QkFBd0JnQixnQkFBZ0IsRUFBRVYsS0FBSyxFQUFFO0lBQy9EQSxRQUFRQSxNQUFNcUIsTUFBTSxDQUFDLFNBQUNULE1BQVM7UUFDN0IsSUFBTU8sVUFBVVAsS0FBS1UscUJBQXFCLENBQUNaO1FBRTNDLElBQUlTLFNBQVM7WUFDWCxPQUFPLElBQUk7UUFDYixDQUFDO0lBQ0g7SUFFQSxPQUFPbkI7QUFDVDtBQUVPLFNBQVNMLHdCQUF3QmdCLGdCQUFnQixFQUFFWCxLQUFLLEVBQUU7SUFDL0RBLFFBQVFBLE1BQU1xQixNQUFNLENBQUMsU0FBQ1QsTUFBUztRQUM3QixJQUFNTyxVQUFVUCxLQUFLVyxxQkFBcUIsQ0FBQ1o7UUFFM0MsSUFBSVEsU0FBUztZQUNYLE9BQU8sSUFBSTtRQUNiLENBQUM7SUFDSDtJQUVBLE9BQU9uQjtBQUNUIn0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZWRnZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgcHJ1bmUgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5jb25zdCByZW1vdmUgPSBwcnVuZTsgIC8vL1xuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tFZGdlc0luY2x1ZGVzRWRnZShlZGdlLCBlZGdlcykge1xuICBjb25zdCBlZGdlMSA9IGVkZ2UsIC8vL1xuICAgICAgICBlZGdlc0luY2x1ZGVzRWRnZSA9IGVkZ2VzLnNvbWUoKGVkZ2UpID0+IHtcbiAgICAgICAgICBjb25zdCBlZGdlMiA9IGVkZ2UsIC8vL1xuICAgICAgICAgICAgICAgIG1hdGNoZXMgPSBlZGdlMS5tYXRjaChlZGdlMik7XG5cbiAgICAgICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICByZXR1cm4gZWRnZXNJbmNsdWRlc0VkZ2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVFZGdlRnJvbUVkZ2VzKGVkZ2UsIGVkZ2VzKSB7XG4gIGNvbnN0IGVkZ2UxID0gZWRnZTsgLy8vXG5cbiAgcmVtb3ZlKGVkZ2VzLCAoZWRnZSkgPT4ge1xuICAgIGNvbnN0IGVkZ2UyID0gZWRnZSwgLy8vXG4gICAgICAgICAgbWF0Y2hlcyA9IGVkZ2UxLm1hdGNoKGVkZ2UyKTtcblxuICAgIGlmICghbWF0Y2hlcykgeyAvLy9cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlZGdlc0J5U291cmNlVmVydGV4TmFtZShzb3VyY2VWZXJ0ZXhOYW1lLCBlZGdlcykge1xuICBlZGdlcyA9IGVkZ2VzLmZpbHRlcigoZWRnZSkgPT4geyAgLy8vXG4gICAgY29uc3QgbWF0Y2hlcyA9IGVkZ2UubWF0Y2hTb3VyY2VWZXJ0ZXhOYW1lKHNvdXJjZVZlcnRleE5hbWUpO1xuXG4gICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGVkZ2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZWRnZXNCeVRhcmdldFZlcnRleE5hbWUodGFyZ2V0VmVydGV4TmFtZSwgZWRnZXMpIHtcbiAgZWRnZXMgPSBlZGdlcy5maWx0ZXIoKGVkZ2UpID0+IHsgIC8vL1xuICAgIGNvbnN0IG1hdGNoZXMgPSBlZGdlLm1hdGNoVGFyZ2V0VmVydGV4TmFtZSh0YXJnZXRWZXJ0ZXhOYW1lKTtcblxuICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBlZGdlcztcbn1cbiJdLCJuYW1lcyI6WyJjaGVja0VkZ2VzSW5jbHVkZXNFZGdlIiwicmVtb3ZlRWRnZUZyb21FZGdlcyIsImVkZ2VzQnlTb3VyY2VWZXJ0ZXhOYW1lIiwiZWRnZXNCeVRhcmdldFZlcnRleE5hbWUiLCJwcnVuZSIsImFycmF5VXRpbGl0aWVzIiwicmVtb3ZlIiwiZWRnZSIsImVkZ2VzIiwiZWRnZTEiLCJlZGdlc0luY2x1ZGVzRWRnZSIsInNvbWUiLCJlZGdlMiIsIm1hdGNoZXMiLCJtYXRjaCIsInNvdXJjZVZlcnRleE5hbWUiLCJmaWx0ZXIiLCJtYXRjaFNvdXJjZVZlcnRleE5hbWUiLCJ0YXJnZXRWZXJ0ZXhOYW1lIiwibWF0Y2hUYXJnZXRWZXJ0ZXhOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFRZ0JBLHNCQUFzQjtlQUF0QkE7O0lBY0FDLG1CQUFtQjtlQUFuQkE7O0lBYUFDLHVCQUF1QjtlQUF2QkE7O0lBWUFDLHVCQUF1QjtlQUF2QkE7Ozt5QkE3Q2U7QUFFL0IsSUFBTSxBQUFFQyxRQUFVQywwQkFBVkQ7QUFFUixJQUFNRSxTQUFTRixPQUFRLEdBQUc7QUFFbkIsU0FBU0osdUJBQXVCTyxJQUFJLEVBQUVDLEtBQUs7SUFDaEQsSUFBTUMsUUFBUUYsTUFDUkcsb0JBQW9CRixNQUFNRyxLQUFLLFNBQUNKO1FBQzlCLElBQU1LLFFBQVFMLE1BQ1JNLFVBQVVKLE1BQU1LLE1BQU1GO1FBRTVCLElBQUlDLFNBQVM7WUFDWCxPQUFPO1FBQ1Q7SUFDRjtJQUVOLE9BQU9IO0FBQ1Q7QUFFTyxTQUFTVCxvQkFBb0JNLElBQUksRUFBRUMsS0FBSztJQUM3QyxJQUFNQyxRQUFRRixNQUFNLEdBQUc7SUFFdkJELE9BQU9FLE9BQU8sU0FBQ0Q7UUFDYixJQUFNSyxRQUFRTCxNQUNSTSxVQUFVSixNQUFNSyxNQUFNRjtRQUU1QixJQUFJLENBQUNDLFNBQVM7WUFDWixPQUFPO1FBQ1Q7SUFDRjtBQUNGO0FBRU8sU0FBU1gsd0JBQXdCYSxnQkFBZ0IsRUFBRVAsS0FBSztJQUM3REEsUUFBUUEsTUFBTVEsT0FBTyxTQUFDVDtRQUNwQixJQUFNTSxVQUFVTixLQUFLVSxzQkFBc0JGO1FBRTNDLElBQUlGLFNBQVM7WUFDWCxPQUFPO1FBQ1Q7SUFDRjtJQUVBLE9BQU9MO0FBQ1Q7QUFFTyxTQUFTTCx3QkFBd0JlLGdCQUFnQixFQUFFVixLQUFLO0lBQzdEQSxRQUFRQSxNQUFNUSxPQUFPLFNBQUNUO1FBQ3BCLElBQU1NLFVBQVVOLEtBQUtZLHNCQUFzQkQ7UUFFM0MsSUFBSUwsU0FBUztZQUNYLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT0w7QUFDVCJ9
@@ -9,8 +9,8 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- vertexNamesFromVertexLiterals: function() {
13
- return vertexNamesFromVertexLiterals;
12
+ orderVertices: function() {
13
+ return orderVertices;
14
14
  },
15
15
  vertexNamesFromVertices: function() {
16
16
  return vertexNamesFromVertices;
@@ -19,25 +19,19 @@ _export(exports, {
19
19
  return forwardsDepthFirstSearch;
20
20
  }
21
21
  });
22
- var _necessary = require("necessary");
23
- var first = _necessary.arrayUtilities.first, second = _necessary.arrayUtilities.second;
24
- function vertexNamesFromVertexLiterals(vertexLiterals) {
25
- var vertexNameMap = {};
26
- vertexLiterals.forEach(function(vertexLiteral) {
27
- var firstVertexLiteralElement = first(vertexLiteral), vertexName = firstVertexLiteralElement, vertexExists = vertexNameMap.hasOwnProperty(vertexName);
28
- if (!vertexExists) {
29
- vertexNameMap[vertexName] = vertexName;
22
+ function orderVertices(vertices) {
23
+ vertices.sort(function(firstVertex, secondVertex) {
24
+ var firstVertexIndex = firstVertex.getIndex(), secondVertexIndex = secondVertex.getIndex();
25
+ if (false) {
26
+ ///
27
+ } else if (firstVertexIndex < secondVertexIndex) {
28
+ return -1;
29
+ } else if (firstVertexIndex > secondVertexIndex) {
30
+ return +1;
30
31
  }
31
- var secondVertexLiteralElement = second(vertexLiteral), ancestorVertexNames = secondVertexLiteralElement; ///
32
- ancestorVertexNames.forEach(function(ancestorVertexName) {
33
- var ancestorVertexExists = vertexNameMap.hasOwnProperty(ancestorVertexName);
34
- if (!ancestorVertexExists) {
35
- vertexNameMap[ancestorVertexName] = ancestorVertexName;
36
- }
37
- });
38
32
  });
39
- var vertexNameMapKeys = Object.keys(vertexNameMap), vertexNames = vertexNameMapKeys; ///
40
- return vertexNames;
33
+ var orderedVertices = vertices; ///
34
+ return orderedVertices;
41
35
  }
42
36
  function vertexNamesFromVertices(vertices) {
43
37
  var vertexNames = vertices.map(function(vertex) {
@@ -83,4 +77,4 @@ function retrieveForwardsVisitedVertices(vertex, callback, getPredecessorVertice
83
77
  return terminate;
84
78
  }
85
79
 
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmVydGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBmaXJzdCwgc2Vjb25kIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHZlcnRleE5hbWVzRnJvbVZlcnRleExpdGVyYWxzKHZlcnRleExpdGVyYWxzKSB7XG4gIGNvbnN0IHZlcnRleE5hbWVNYXAgPSB7fTtcblxuICB2ZXJ0ZXhMaXRlcmFscy5mb3JFYWNoKCh2ZXJ0ZXhMaXRlcmFsKSA9PiB7XG4gICAgY29uc3QgZmlyc3RWZXJ0ZXhMaXRlcmFsRWxlbWVudCA9IGZpcnN0KHZlcnRleExpdGVyYWwpLFxuICAgICAgICAgIHZlcnRleE5hbWUgPSBmaXJzdFZlcnRleExpdGVyYWxFbGVtZW50LCAvLy9cbiAgICAgICAgICB2ZXJ0ZXhFeGlzdHMgPSB2ZXJ0ZXhOYW1lTWFwLmhhc093blByb3BlcnR5KHZlcnRleE5hbWUpO1xuXG4gICAgaWYgKCF2ZXJ0ZXhFeGlzdHMpIHtcbiAgICAgIHZlcnRleE5hbWVNYXBbdmVydGV4TmFtZV0gPSB2ZXJ0ZXhOYW1lO1xuICAgIH1cblxuICAgICAgY29uc3Qgc2Vjb25kVmVydGV4TGl0ZXJhbEVsZW1lbnQgPSBzZWNvbmQodmVydGV4TGl0ZXJhbCksXG4gICAgICAgICAgICBhbmNlc3RvclZlcnRleE5hbWVzID0gc2Vjb25kVmVydGV4TGl0ZXJhbEVsZW1lbnQ7IC8vL1xuXG4gICAgYW5jZXN0b3JWZXJ0ZXhOYW1lcy5mb3JFYWNoKChhbmNlc3RvclZlcnRleE5hbWUpID0+IHtcbiAgICAgIGNvbnN0IGFuY2VzdG9yVmVydGV4RXhpc3RzID0gdmVydGV4TmFtZU1hcC5oYXNPd25Qcm9wZXJ0eShhbmNlc3RvclZlcnRleE5hbWUpO1xuXG4gICAgICBpZiAoIWFuY2VzdG9yVmVydGV4RXhpc3RzKSB7XG4gICAgICAgIHZlcnRleE5hbWVNYXBbYW5jZXN0b3JWZXJ0ZXhOYW1lXSA9IGFuY2VzdG9yVmVydGV4TmFtZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgdmVydGV4TmFtZU1hcEtleXMgPSBPYmplY3Qua2V5cyh2ZXJ0ZXhOYW1lTWFwKSxcbiAgICAgICAgdmVydGV4TmFtZXMgPSB2ZXJ0ZXhOYW1lTWFwS2V5czsgIC8vL1xuXG4gIHJldHVybiB2ZXJ0ZXhOYW1lcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcnRleE5hbWVzRnJvbVZlcnRpY2VzKHZlcnRpY2VzKSB7XG4gIGNvbnN0IHZlcnRleE5hbWVzID0gdmVydGljZXMubWFwKCh2ZXJ0ZXgpID0+IHtcbiAgICBjb25zdCB2ZXJ0ZXhOYW1lID0gdmVydGV4LmdldE5hbWUoKTtcblxuICAgIHJldHVybiB2ZXJ0ZXhOYW1lO1xuICB9KTtcblxuICByZXR1cm4gdmVydGV4TmFtZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0RlcHRoRmlyc3RTZWFyY2godmVydGV4LCBjYWxsYmFjaykge1xuICBjb25zdCB2aXNpdGVkVmVydGljZXMgPSBbXTtcblxuICByZXRyaWV2ZUZvcndhcmRzVmlzaXRlZFZlcnRpY2VzKHZlcnRleCwgKHZpc2l0ZWRWZXJ0ZXgsIGdldFByZWRlY2Vzc29yVmVydGljZXMpID0+IHtcbiAgICBjb25zdCB0ZXJtaW5hdGUgPSBjYWxsYmFjayh2aXNpdGVkVmVydGV4LCBnZXRQcmVkZWNlc3NvclZlcnRpY2VzKTsgIC8vL1xuXG4gICAgdmlzaXRlZFZlcnRpY2VzLnB1c2godmlzaXRlZFZlcnRleCk7XG5cbiAgICByZXR1cm4gdGVybWluYXRlO1xuICB9LCBnZXRQcmVkZWNlc3NvclZlcnRpY2VzKTtcblxuICB2aXNpdGVkVmVydGljZXMuZm9yRWFjaCgodmlzaXRlZFZlcnRleCkgPT4gdmlzaXRlZFZlcnRleC5yZXNldFZpc2l0ZWQoKSk7XG5cbiAgcmV0dXJuIHZpc2l0ZWRWZXJ0aWNlcztcblxuICBmdW5jdGlvbiBnZXRQcmVkZWNlc3NvclZlcnRpY2VzKCkge1xuICAgIGNvbnN0IHByZWRlY2Vzc29yVmVydGljZXMgPSBbXTtcbiAgICBcbiAgICByZXR1cm4gcHJlZGVjZXNzb3JWZXJ0aWNlcztcbiAgfVxufVxuXG5mdW5jdGlvbiByZXRyaWV2ZUZvcndhcmRzVmlzaXRlZFZlcnRpY2VzKHZlcnRleCwgY2FsbGJhY2ssIGdldFByZWRlY2Vzc29yVmVydGljZXMpIHtcbiAgbGV0IHRlcm1pbmF0ZSA9IGZhbHNlO1xuXG4gIGlmICh2ZXJ0ZXgudmlzaXRlZCA9PT0gZmFsc2UpIHtcbiAgICB2ZXJ0ZXgudmlzaXRlZCA9IHRydWU7XG5cbiAgICBjb25zdCB2aXNpdGVkVmVydGV4ID0gdmVydGV4OyAgLy8vXG5cbiAgICB0ZXJtaW5hdGUgPSBjYWxsYmFjayh2aXNpdGVkVmVydGV4LCBnZXRQcmVkZWNlc3NvclZlcnRpY2VzKTtcblxuICAgIGlmICh0ZXJtaW5hdGUgIT09IHRydWUpIHtcbiAgICAgIHZpc2l0ZWRWZXJ0ZXguc29tZUltbWVkaWF0ZVN1Y2Nlc3NvclZlcnRleCgoaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4KSA9PiB7XG4gICAgICAgIHRlcm1pbmF0ZSA9IHJldHJpZXZlRm9yd2FyZHNWaXNpdGVkVmVydGljZXMoaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4LCBjYWxsYmFjaywgKCkgPT4ge1xuICAgICAgICAgIGxldCBwcmVkZWNlc3NvclZlcnRpY2VzID0gZ2V0UHJlZGVjZXNzb3JWZXJ0aWNlcygpO1xuXG4gICAgICAgICAgY29uc3QgaW1tZWRpYXRlUHJlZGVjZXNzb3JWZXJ0ZXggPSB2ZXJ0ZXgsICAvLy9cbiAgICAgICAgICAgICAgICBwcmVkZWNlc3NvclZlcnRleCA9IGltbWVkaWF0ZVByZWRlY2Vzc29yVmVydGV4OyAvLy9cblxuICAgICAgICAgIHByZWRlY2Vzc29yVmVydGljZXMgPSBwcmVkZWNlc3NvclZlcnRpY2VzLmNvbmNhdChwcmVkZWNlc3NvclZlcnRleCk7XG5cbiAgICAgICAgICByZXR1cm4gcHJlZGVjZXNzb3JWZXJ0aWNlcztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRlcm1pbmF0ZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0ZXJtaW5hdGU7XG59XG4iXSwibmFtZXMiOlsidmVydGV4TmFtZXNGcm9tVmVydGV4TGl0ZXJhbHMiLCJ2ZXJ0ZXhOYW1lc0Zyb21WZXJ0aWNlcyIsImZvcndhcmRzRGVwdGhGaXJzdFNlYXJjaCIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJzZWNvbmQiLCJ2ZXJ0ZXhMaXRlcmFscyIsInZlcnRleE5hbWVNYXAiLCJmb3JFYWNoIiwidmVydGV4TGl0ZXJhbCIsImZpcnN0VmVydGV4TGl0ZXJhbEVsZW1lbnQiLCJ2ZXJ0ZXhOYW1lIiwidmVydGV4RXhpc3RzIiwiaGFzT3duUHJvcGVydHkiLCJzZWNvbmRWZXJ0ZXhMaXRlcmFsRWxlbWVudCIsImFuY2VzdG9yVmVydGV4TmFtZXMiLCJhbmNlc3RvclZlcnRleE5hbWUiLCJhbmNlc3RvclZlcnRleEV4aXN0cyIsInZlcnRleE5hbWVNYXBLZXlzIiwiT2JqZWN0Iiwia2V5cyIsInZlcnRleE5hbWVzIiwidmVydGljZXMiLCJtYXAiLCJ2ZXJ0ZXgiLCJnZXROYW1lIiwiY2FsbGJhY2siLCJnZXRQcmVkZWNlc3NvclZlcnRpY2VzIiwicHJlZGVjZXNzb3JWZXJ0aWNlcyIsInZpc2l0ZWRWZXJ0aWNlcyIsInJldHJpZXZlRm9yd2FyZHNWaXNpdGVkVmVydGljZXMiLCJ2aXNpdGVkVmVydGV4IiwidGVybWluYXRlIiwicHVzaCIsInJlc2V0VmlzaXRlZCIsInZpc2l0ZWQiLCJzb21lSW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4IiwiaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4IiwiaW1tZWRpYXRlUHJlZGVjZXNzb3JWZXJ0ZXgiLCJwcmVkZWNlc3NvclZlcnRleCIsImNvbmNhdCJdLCJtYXBwaW5ncyI6IkFBQUE7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
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmVydGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gb3JkZXJWZXJ0aWNlcyh2ZXJ0aWNlcykgeyAgLy8vXG4gIHZlcnRpY2VzLnNvcnQoKGZpcnN0VmVydGV4LCBzZWNvbmRWZXJ0ZXgpID0+IHtcbiAgICBjb25zdCBmaXJzdFZlcnRleEluZGV4ID0gZmlyc3RWZXJ0ZXguZ2V0SW5kZXgoKSxcbiAgICAgICAgICBzZWNvbmRWZXJ0ZXhJbmRleCA9IHNlY29uZFZlcnRleC5nZXRJbmRleCgpO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKGZpcnN0VmVydGV4SW5kZXggPCBzZWNvbmRWZXJ0ZXhJbmRleCkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH0gZWxzZSAgaWYgKGZpcnN0VmVydGV4SW5kZXggPiBzZWNvbmRWZXJ0ZXhJbmRleCkge1xuICAgICAgcmV0dXJuICsxO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3Qgb3JkZXJlZFZlcnRpY2VzID0gdmVydGljZXM7ICAvLy9cblxuICByZXR1cm4gb3JkZXJlZFZlcnRpY2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmVydGV4TmFtZXNGcm9tVmVydGljZXModmVydGljZXMpIHtcbiAgY29uc3QgdmVydGV4TmFtZXMgPSB2ZXJ0aWNlcy5tYXAoKHZlcnRleCkgPT4ge1xuICAgIGNvbnN0IHZlcnRleE5hbWUgPSB2ZXJ0ZXguZ2V0TmFtZSgpO1xuXG4gICAgcmV0dXJuIHZlcnRleE5hbWU7XG4gIH0pO1xuXG4gIHJldHVybiB2ZXJ0ZXhOYW1lcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRzRGVwdGhGaXJzdFNlYXJjaCh2ZXJ0ZXgsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHZpc2l0ZWRWZXJ0aWNlcyA9IFtdO1xuXG4gIHJldHJpZXZlRm9yd2FyZHNWaXNpdGVkVmVydGljZXModmVydGV4LCAodmlzaXRlZFZlcnRleCwgZ2V0UHJlZGVjZXNzb3JWZXJ0aWNlcykgPT4ge1xuICAgIGNvbnN0IHRlcm1pbmF0ZSA9IGNhbGxiYWNrKHZpc2l0ZWRWZXJ0ZXgsIGdldFByZWRlY2Vzc29yVmVydGljZXMpOyAgLy8vXG5cbiAgICB2aXNpdGVkVmVydGljZXMucHVzaCh2aXNpdGVkVmVydGV4KTtcblxuICAgIHJldHVybiB0ZXJtaW5hdGU7XG4gIH0sIGdldFByZWRlY2Vzc29yVmVydGljZXMpO1xuXG4gIHZpc2l0ZWRWZXJ0aWNlcy5mb3JFYWNoKCh2aXNpdGVkVmVydGV4KSA9PiB2aXNpdGVkVmVydGV4LnJlc2V0VmlzaXRlZCgpKTtcblxuICByZXR1cm4gdmlzaXRlZFZlcnRpY2VzO1xuXG4gIGZ1bmN0aW9uIGdldFByZWRlY2Vzc29yVmVydGljZXMoKSB7XG4gICAgY29uc3QgcHJlZGVjZXNzb3JWZXJ0aWNlcyA9IFtdO1xuICAgIFxuICAgIHJldHVybiBwcmVkZWNlc3NvclZlcnRpY2VzO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJldHJpZXZlRm9yd2FyZHNWaXNpdGVkVmVydGljZXModmVydGV4LCBjYWxsYmFjaywgZ2V0UHJlZGVjZXNzb3JWZXJ0aWNlcykge1xuICBsZXQgdGVybWluYXRlID0gZmFsc2U7XG5cbiAgaWYgKHZlcnRleC52aXNpdGVkID09PSBmYWxzZSkge1xuICAgIHZlcnRleC52aXNpdGVkID0gdHJ1ZTtcblxuICAgIGNvbnN0IHZpc2l0ZWRWZXJ0ZXggPSB2ZXJ0ZXg7ICAvLy9cblxuICAgIHRlcm1pbmF0ZSA9IGNhbGxiYWNrKHZpc2l0ZWRWZXJ0ZXgsIGdldFByZWRlY2Vzc29yVmVydGljZXMpO1xuXG4gICAgaWYgKHRlcm1pbmF0ZSAhPT0gdHJ1ZSkge1xuICAgICAgdmlzaXRlZFZlcnRleC5zb21lSW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4KChpbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXgpID0+IHtcbiAgICAgICAgdGVybWluYXRlID0gcmV0cmlldmVGb3J3YXJkc1Zpc2l0ZWRWZXJ0aWNlcyhpbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXgsIGNhbGxiYWNrLCAoKSA9PiB7XG4gICAgICAgICAgbGV0IHByZWRlY2Vzc29yVmVydGljZXMgPSBnZXRQcmVkZWNlc3NvclZlcnRpY2VzKCk7XG5cbiAgICAgICAgICBjb25zdCBpbW1lZGlhdGVQcmVkZWNlc3NvclZlcnRleCA9IHZlcnRleCwgIC8vL1xuICAgICAgICAgICAgICAgIHByZWRlY2Vzc29yVmVydGV4ID0gaW1tZWRpYXRlUHJlZGVjZXNzb3JWZXJ0ZXg7IC8vL1xuXG4gICAgICAgICAgcHJlZGVjZXNzb3JWZXJ0aWNlcyA9IHByZWRlY2Vzc29yVmVydGljZXMuY29uY2F0KHByZWRlY2Vzc29yVmVydGV4KTtcblxuICAgICAgICAgIHJldHVybiBwcmVkZWNlc3NvclZlcnRpY2VzO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGVybWluYXRlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRlcm1pbmF0ZTtcbn1cbiJdLCJuYW1lcyI6WyJvcmRlclZlcnRpY2VzIiwidmVydGV4TmFtZXNGcm9tVmVydGljZXMiLCJmb3J3YXJkc0RlcHRoRmlyc3RTZWFyY2giLCJ2ZXJ0aWNlcyIsInNvcnQiLCJmaXJzdFZlcnRleCIsInNlY29uZFZlcnRleCIsImZpcnN0VmVydGV4SW5kZXgiLCJnZXRJbmRleCIsInNlY29uZFZlcnRleEluZGV4Iiwib3JkZXJlZFZlcnRpY2VzIiwidmVydGV4TmFtZXMiLCJtYXAiLCJ2ZXJ0ZXgiLCJ2ZXJ0ZXhOYW1lIiwiZ2V0TmFtZSIsImNhbGxiYWNrIiwiZ2V0UHJlZGVjZXNzb3JWZXJ0aWNlcyIsInByZWRlY2Vzc29yVmVydGljZXMiLCJ2aXNpdGVkVmVydGljZXMiLCJyZXRyaWV2ZUZvcndhcmRzVmlzaXRlZFZlcnRpY2VzIiwidmlzaXRlZFZlcnRleCIsInRlcm1pbmF0ZSIsInB1c2giLCJmb3JFYWNoIiwicmVzZXRWaXNpdGVkIiwidmlzaXRlZCIsInNvbWVJbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXgiLCJpbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXgiLCJpbW1lZGlhdGVQcmVkZWNlc3NvclZlcnRleCIsInByZWRlY2Vzc29yVmVydGV4IiwiY29uY2F0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFZ0JBLGFBQWE7ZUFBYkE7O0lBbUJBQyx1QkFBdUI7ZUFBdkJBOztJQVVBQyx3QkFBd0I7ZUFBeEJBOzs7QUE3QlQsU0FBU0YsY0FBY0csUUFBUTtJQUNwQ0EsU0FBU0MsS0FBSyxTQUFDQyxhQUFhQztRQUMxQixJQUFNQyxtQkFBbUJGLFlBQVlHLFlBQy9CQyxvQkFBb0JILGFBQWFFO1FBRXZDLElBQUksT0FBTztRQUNULEdBQUc7UUFDTCxPQUFPLElBQUlELG1CQUFtQkUsbUJBQW1CO1lBQy9DLE9BQU8sQ0FBQztRQUNWLE9BQVEsSUFBSUYsbUJBQW1CRSxtQkFBbUI7WUFDaEQsT0FBTyxDQUFDO1FBQ1Y7SUFDRjtJQUVBLElBQU1DLGtCQUFrQlAsVUFBVyxHQUFHO0lBRXRDLE9BQU9PO0FBQ1Q7QUFFTyxTQUFTVCx3QkFBd0JFLFFBQVE7SUFDOUMsSUFBTVEsY0FBY1IsU0FBU1MsSUFBSSxTQUFDQztRQUNoQyxJQUFNQyxhQUFhRCxPQUFPRTtRQUUxQixPQUFPRDtJQUNUO0lBRUEsT0FBT0g7QUFDVDtBQUVPLFNBQVNULHlCQUF5QlcsTUFBTSxFQUFFRyxRQUFRO1FBZTlDQyx5QkFBVCxTQUFTQTtRQUNQLElBQU1DLHNCQUFzQixFQUFFO1FBRTlCLE9BQU9BO0lBQ1Q7SUFsQkEsSUFBTUMsa0JBQWtCLEVBQUU7SUFFMUJDLGdDQUFnQ1AsUUFBUSxTQUFDUSxlQUFlSjtRQUN0RCxJQUFNSyxZQUFZTixTQUFTSyxlQUFlSix5QkFBMEIsR0FBRztRQUV2RUUsZ0JBQWdCSSxLQUFLRjtRQUVyQixPQUFPQztJQUNULEdBQUdMO0lBRUhFLGdCQUFnQkssUUFBUSxTQUFDSDtlQUFrQkEsY0FBY0k7O0lBRXpELE9BQU9OO0FBT1Q7QUFFQSxTQUFTQyxnQ0FBZ0NQLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxzQkFBc0I7SUFDL0UsSUFBSUssWUFBWTtJQUVoQixJQUFJVCxPQUFPYSxZQUFZLE9BQU87UUFDNUJiLE9BQU9hLFVBQVU7UUFFakIsSUFBTUwsZ0JBQWdCUixRQUFTLEdBQUc7UUFFbENTLFlBQVlOLFNBQVNLLGVBQWVKO1FBRXBDLElBQUlLLGNBQWMsTUFBTTtZQUN0QkQsY0FBY00sNkJBQTZCLFNBQUNDO2dCQUMxQ04sWUFBWUYsZ0NBQWdDUSwwQkFBMEJaLFVBQVU7b0JBQzlFLElBQUlFLHNCQUFzQkQ7b0JBRTFCLElBQU1ZLDZCQUE2QmhCLFFBQzdCaUIsb0JBQW9CRCw0QkFBNEIsR0FBRztvQkFFekRYLHNCQUFzQkEsb0JBQW9CYSxPQUFPRDtvQkFFakQsT0FBT1o7Z0JBQ1Q7Z0JBRUEsT0FBT0k7WUFDVDtRQUNGO0lBQ0Y7SUFFQSxPQUFPQTtBQUNUIn0=