atr-components 0.2.239 → 0.2.241

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.
@@ -43,7 +43,7 @@ export class ToolsUtil {
43
43
  * @param pointsArr
44
44
  */
45
45
  static judgeInRec(p, pointsArr) {
46
- let px = p.x1, py = p.y1, flag = false, //穿越边框
46
+ let px = Number(p.x1), py = Number(p.y1), flag = false, //穿越边框
47
47
  inRect = false; //是否在多边形的边或者端点上
48
48
  let start = pointsArr[0];
49
49
  let end = pointsArr[pointsArr.length - 1];
@@ -57,7 +57,7 @@ export class ToolsUtil {
57
57
  return;
58
58
  }
59
59
  let endPoint = pointsArr[index + 1];
60
- const startX = item.x1, startY = item.y1, endX = endPoint.x1, endY = endPoint.y1;
60
+ const startX = Number(item.x1), startY = Number(item.y1), endX = Number(endPoint.x1), endY = Number(endPoint.y1);
61
61
  //判断点是否在端点上
62
62
  if ((px == startX && py == startY)
63
63
  || (px == endX && px == endY)) {
@@ -65,7 +65,7 @@ export class ToolsUtil {
65
65
  return;
66
66
  }
67
67
  //判断射线重合并且点在边上
68
- if ((startY == endY == py)
68
+ if ((startY == endY && endY == py)
69
69
  && ((px > endX && px < startX
70
70
  || (px < endX && px > startX)))) {
71
71
  inRect = true;
@@ -387,4 +387,4 @@ ToolsUtil.allEqual = (...array) => array.every(item => item === array[0]);
387
387
  * @param array
388
388
  */
389
389
  ToolsUtil.satisfiedFn = (callback, ...array) => array.every(callback);
390
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9vbHNVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29yZS91dGlscy9Ub29sc1V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBSXRFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLE9BQU8sU0FBUztJQWlCcEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFXO1FBQ3pCLElBQUksR0FBRyxHQUFHLDRHQUE0RyxDQUFDO1FBQ3ZILE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN6QixDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFTO1FBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDN0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNsQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuQztRQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMs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LEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUU5RTs7Ozs7R0FLRztBQUNJLHFCQUFXLEdBQUcsQ0FBQyxRQUFxQyxFQUFFLEdBQUcsS0FBWSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtqc29uLCBBdHJGb3JtT3B0LCBhdHJfc3RhdGljX2RhdGFzfSBmcm9tICcuLi9iYXNlL2F0ci1jb21tb24nO1xyXG5pbXBvcnQge2Zvcm1hdERhdGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7SHR0cEhlYWRlcnN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge1NpbXBsZUNoYW5nZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VmFsaWRhdG9yc30gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgVG9vbHNVdGlsIHtcclxuICBzdGF0aWMgZ2V0T3JnQ29kZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIC8vIHZhciBvcmdDb2RlID0gJyc7XHJcbiAgICAvLyB2YXIgaHJlZnMgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgnPycpXHJcbiAgICAvLyBpZiAoaHJlZnMubGVuZ3RoID49IDIpIHtcclxuICAgIC8vICAgdmFyIHBhcmFtU3RyID0gaHJlZnNbMV07XHJcbiAgICAvLyAgIC8v5Y+C5pWw5a2X56ym5Liy6YeM5pyJ5rKh5bimID0/LyNcclxuICAgIC8vICAgb3JnQ29kZSA9IHBhcmFtU3RyLnNwbGl0KCc9JylbMF07XHJcbiAgICAvLyAgIG9yZ0NvZGUgPSBvcmdDb2RlLnNwbGl0KCc/JylbMF07XHJcbiAgICAvLyAgIG9yZ0NvZGUgPSBvcmdDb2RlLnNwbGl0KCcvJylbMF07XHJcbiAgICAvLyAgIG9yZ0NvZGUgPSBvcmdDb2RlLnNwbGl0KCcjJylbMF07XHJcbiAgICAvLyAgIG9yZ0NvZGUgPSBvcmdDb2RlLnNwbGl0KCcvJylbMF07XHJcbiAgICAvLyB9XHJcblxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGlzQmFzZTY0KHN0cmluZzogYW55KSB7XHJcbiAgICBsZXQgcmVnID0gL15cXHMqZGF0YTooW2Etel0rXFwvW2EtejAtOS0rLl0rKDtbYS16LV0rPVthLXowLTktXSspPyk/KDtiYXNlNjQpPywoW2EtejAtOSEkJicsKCkqKzs9XFwtLl9+OkBcXC8/JVxcc10qPylcXHMqJC9pO1xyXG4gICAgcmV0dXJuIHJlZy50ZXN0KHN0cmluZylcclxuICB9XHJcblxyXG4gIHN0YXRpYyBkYXRhVVJJdG9CbG9iKGNvZGU6IGFueSkge1xyXG4gICAgY29uc3QgcGFydHMgPSBjb2RlLnNwbGl0KCc7YmFzZTY0LCcpO1xyXG4gICAgY29uc3QgY29udGVudFR5cGUgPSBwYXJ0c1swXS5zcGxpdCgnOicpWzFdO1xyXG4gICAgY29uc3QgcmF3ID0gd2luZG93LmF0b2IocGFydHNbMV0pO1xyXG4gICAgY29uc3QgcmF3TGVuZ3RoID0gcmF3Lmxlbmd0aDtcclxuICAgIGNvbnN0IHVJbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShyYXdMZW5ndGgpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByYXdMZW5ndGg7ICsraSkge1xyXG4gICAgICB1SW50OEFycmF5W2ldID0gcmF3LmNoYXJDb2RlQXQoaSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7dHlwZTogY29udGVudFR5cGV9KTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBpc051bGwodmFsOiBhbnkpIHtcclxuICAgIGlmICh2YWwgfHwgWydib29sZWFuJywgJ3N0cmluZycsICdudW1iZXInXS5zb21lKHYgPT4gdHlwZW9mIHZhbCA9PSB2KSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0Q29udHJvbHNDb25maWcoZGF0YUZyb206IGFueSwgcmVxdWlyZWRSdWxlOiBzdHJpbmdbXSkge1xyXG4gICAgbGV0IGNvbnRyb2xzQ29uZmlnOiBhbnkgPSB7fVxyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YUZyb20pIHtcclxuICAgICAgaWYgKHJlcXVpcmVkUnVsZS5zb21lKGl0ZW0gPT4gaXRlbSA9PSBrZXkpKSB7XHJcbiAgICAgICAgY29udHJvbHNDb25maWdba2V5XSA9IFtkYXRhRnJvbVtrZXldLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29udHJvbHNDb25maWdba2V5XSA9IFtkYXRhRnJvbVtrZXldXVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29udHJvbHNDb25maWc7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaHR0cFN1Y2NlcyhyZXM6IGFueSkge1xyXG4gICAgcmV0dXJuIFsnMjAwJywgJzIwMSddLnNvbWUodiA9PiByZXMuc3RhdHVzID09IHYpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKuWIpOaWreeCueaYr+WQpuWcqOWdkOagh+WMuuWfn+WGhVxyXG4gICAqIEBwYXJhbSBwIOWIpOWumueahOeCuVxyXG4gICAqIEBwYXJhbSBwb2ludHNBcnJcclxuICAgKi9cclxuICBzdGF0aWMganVkZ2VJblJlYyhwOiB7IHgxOiBhbnksIHkxOiBhbnkgfSwgcG9pbnRzQXJyOiB7IHgxOiBhbnksIHkxOiBhbnkgfVtdKSB7XHJcbiAgICBsZXQgcHggPSBwLngxLCBweSA9IHAueTEsXHJcbiAgICAgIGZsYWcgPSBmYWxzZSwvL+epv+i2iui+ueahhlxyXG4gICAgICBpblJlY3QgPSBmYWxzZTsvL+aYr+WQpuWcqOWkmui+ueW9oueahOi+ueaIluiAheerr+eCueS4ilxyXG4gICAgbGV0IHN0YXJ0ID0gcG9pbnRzQXJyWzBdO1xyXG4gICAgbGV0IGVuZCA9IHBvaW50c0Fycltwb2ludHNBcnIubGVuZ3RoIC0gMV07XHJcbiAgICAvL+WmguaenOaVsOe7hOmmluWwvuayoeacieebuOi/nizmiYvliqjmt7vliqBcclxuICAgIHBvaW50c0FyciA9IHN0YXJ0LngxICE9IGVuZC54MSB8fCBzdGFydC55MSAhPSBlbmQueTEgPyBwb2ludHNBcnIuY29uY2F0KHN0YXJ0KSA6IHBvaW50c0FycjtcclxuICAgIC8v5bCE57q/6YCJ5Y+WWeWdkOagh+S4jeWPmCx45q2j5pa55ZCRXHJcbiAgICBwb2ludHNBcnIuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgaWYgKGluZGV4ID09IHBvaW50c0Fyci5sZW5ndGggLSAxXHJcbiAgICAgICAgfHwgaW5SZWN0Ly/lnKjlpJrovrnlvaLnmoTovrnmiJbogIXnq6/ngrnkuIrop4bkuLrlnKjljLrln5/lhoVcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgICAgbGV0IGVuZFBvaW50ID0gcG9pbnRzQXJyW2luZGV4ICsgMV1cclxuICAgICAgY29uc3Qgc3RhcnRYID0gaXRlbS54MSwgc3RhcnRZID0gaXRlbS55MSxcclxuICAgICAgICBlbmRYID0gZW5kUG9pbnQueDEsIGVuZFkgPSBlbmRQb2ludC55MTtcclxuICAgICAgLy/liKTmlq3ngrnmmK/lkKblnKjnq6/ngrnkuIpcclxuICAgICAgaWYgKChweCA9PSBzdGFydFggJiYgcHkgPT0gc3RhcnRZKVxyXG4gICAgICAgIHx8IChweCA9PSBlbmRYICYmIHB4ID09IGVuZFkpKSB7XHJcbiAgICAgICAgaW5SZWN0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8v5Yik5pat5bCE57q/6YeN5ZCI5bm25LiU54K55Zyo6L655LiKXHJcbiAgICAgIGlmICgoc3RhcnRZID09IGVuZFkgPT0gcHkpXHJcbiAgICAgICAgJiYgKChweCA+IGVuZFggJiYgcHggPCBzdGFydFhcclxuICAgICAgICAgIHx8IChweCA8IGVuZFggJiYgcHggPiBzdGFydFgpKSkpIHtcclxuICAgICAgICBpblJlY3QgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKChzdGFydFkgPCBweSAmJiBlbmRZID49IHB5KVxyXG4gICAgICAgIHx8IChzdGFydFkgPj0gcHkgJiYgZW5kWSA8IHB5KSkge1xyXG5cclxuICAgICAgICAvL+axguWwhOe6v+S4jue6v+auteS6pOeCueeahHjlnZDmoIcseeWdkOagh+i/mOaYr3B5XHJcbiAgICAgICAgbGV0IHggPSBzdGFydFggKyAocHkgLSBzdGFydFkpICogKGVuZFggLSBzdGFydFgpIC8gKGVuZFkgLSBzdGFydFkpO1xyXG4gICAgICAgIC8v54K55Zyo6L655LiKXHJcbiAgICAgICAgaWYgKHggPT0gcHgpIHtcclxuICAgICAgICAgIGluUmVjdCA9IHRydWVcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy945aSn5LqOcHjmnaXkv53or4HlsITnur/mnJ3lj7NcclxuICAgICAgICBpZiAoeCA+IHB4KSB7XHJcbiAgICAgICAgICBmbGFnID0gIWZsYWdcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICByZXR1cm4gaW5SZWN0IHx8IGZsYWc7XHJcblxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRpZmZJbnB1dChjaG5nOiBTaW1wbGVDaGFuZ2UsIGFjdGlvbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgaWYgKGNobmcgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG5cclxuICAgIGxldCBjdXIgPSBKU09OLnN0cmluZ2lmeShjaG5nLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICBsZXQgcHJldiA9IEpTT04uc3RyaW5naWZ5KGNobmcucHJldmlvdXNWYWx1ZSk7XHJcbiAgICBpZiAoY3VyICE9PSBwcmV2KSB7XHJcbiAgICAgIGFjdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRpZmZJbnB1dHMoY2huZzogU2ltcGxlQ2hhbmdlW10sIGFjdGlvbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgaWYgKGNobmcgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgaWYgKGNobmcubGVuZ3RoID09IDApIHJldHVybjtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2huZy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgaXRlbSA9IGNobmdbaV07XHJcbiAgICAgIGlmIChpdGVtID09PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xyXG4gICAgICBsZXQgY3VyID0gSlNPTi5zdHJpbmdpZnkoaXRlbS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICBsZXQgcHJldiA9IEpTT04uc3RyaW5naWZ5KGl0ZW0ucHJldmlvdXNWYWx1ZSk7XHJcbiAgICAgIGlmIChjdXIgIT09IHByZXYpIHtcclxuICAgICAgICBhY3Rpb24oKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRhdGFVUkx0b0Jsb2IoZGF0YXVybDogYW55KSB7XHJcbiAgICB2YXIgYXJyID0gZGF0YXVybC5zcGxpdCgnLCcpLCBtaW1lID0gYXJyWzBdLm1hdGNoKC86KC4qPyk7LylbMV0sXHJcbiAgICAgIGJzdHIgPSBhdG9iKGFyclsxXSksIG4gPSBic3RyLmxlbmd0aCwgdThhcnIgPSBuZXcgVWludDhBcnJheShuKTtcclxuICAgIHdoaWxlIChuLS0pIHtcclxuICAgICAgdThhcnJbbl0gPSBic3RyLmNoYXJDb2RlQXQobik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IEJsb2IoW3U4YXJyXSwge3R5cGU6IG1pbWV9KTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBkYXRhVVJMdG9GaWxlKGRhdGF1cmw6IGFueSwgZmlsZW5hbWU/OiBzdHJpbmcpIHtcclxuICAgIHZhciBhcnIgPSBkYXRhdXJsLnNwbGl0KCcsJyksIG1pbWUgPSBhcnJbMF0ubWF0Y2goLzooLio/KTsvKVsxXSxcclxuICAgICAgYnN0ciA9IGF0b2IoYXJyWzFdKSwgbiA9IGJzdHIubGVuZ3RoLCB1OGFyciA9IG5ldyBVaW50OEFycmF5KG4pO1xyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRmlsZShbdThhcnJdLCAoZmlsZW5hbWUgfHwgVG9vbHNVdGlsLmdldFJhbmRvbUZpbGVOYW1lKCkpLCB7dHlwZTogbWltZX0pO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldFllc3RlcmRheShkYXk6IERhdGUpOiBEYXRlIHtcclxuXHJcbiAgICBsZXQgdGltZSA9IGRheS5nZXRUaW1lKCkgLSAxMDAwICogNjAgKiA2MCAqIDI0O1xyXG4gICAgZGF5ID0gbmV3IERhdGUodGltZSk7XHJcblxyXG4gICAgcmV0dXJuIGRheTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRUb21vcnJvd2RheShkYXk6IERhdGUpOiBEYXRlIHtcclxuICAgIGxldCB0aW1lID0gZGF5LmdldFRpbWUoKSArIDEwMDAgKiA2MCAqIDYwICogMjQ7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRpbWUpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldE5leHRNb250aChkYXk6IERhdGUpIHtcclxuICAgIGxldCBkcyA9IG5ldyBEYXRlKGRheSkuc2V0TW9udGgoZGF5LmdldE1vbnRoKCkgKyAxKTtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkcyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0VmlkZW9Db3Zlcih1cmw6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIFRvb2xzVXRpbC5nZXRPc3NVcmwodXJsKSArIFwiP3gtb3NzLXByb2Nlc3M9dmlkZW8vc25hcHNob3QsdF8xMDAwMCxtX2Zhc3RcIjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBmaXN0RGF5T2ZNb250aChkYXk6IERhdGUpIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShuZXcgRGF0ZShkYXkpLnNldERhdGUoMSkpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGxhc3REYXlPZk1vbnRoKGRheTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKFRvb2xzVXRpbC5nZXROZXh0TW9udGgoZGF5KS5zZXREYXRlKDApKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRSYW5kb21GaWxlTmFtZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIGNvbnN0IGV4cGVjdCA9IDE2O1xyXG4gICAgbGV0IHN0ciA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcclxuICAgIHdoaWxlIChzdHIubGVuZ3RoIDwgZXhwZWN0KSB7XHJcbiAgICAgIHN0ciArPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RyLnN1YnN0cmluZygwLCBleHBlY3QpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldEZpbGVFeHQgPSBmdW5jdGlvbiAoZmlsZU5hbWU6IHN0cmluZykge1xyXG4gICAgdmFyIGluZGV4ID0gZmlsZU5hbWUubGFzdEluZGV4T2YoXCIuXCIpO1xyXG4gICAgdmFyIHN1ZmZpeCA9IGZpbGVOYW1lLnN1YnN0cihpbmRleCArIDEpO1xyXG4gICAgcmV0dXJuIHN1ZmZpeDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRIdHRwT3B0aW9ucygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtpc0NvbW1vbkh0dHBIZWFkZXI6IHRydWV9XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIHJlc2V0Rm9ybVZhbHVlKG9wdDogQXRyRm9ybU9wdCwganNvbjoganNvbik6IEF0ckZvcm1PcHQge1xyXG4gICAgZm9yIChsZXQgaXRlbSBvZiBvcHQuaXRlbXMpIHtcclxuICAgICAgaXRlbS52YWx1ZSA9IFwiXCI7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGl0ZW0udmFsdWUpO1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhqc29uKSkge1xyXG4gICAgICAgIGlmIChqc29uLmhhc093blByb3BlcnR5KGtleSkgJiYganNvbltrZXldICE9IG51bGwgJiYganNvbltrZXldICE9IHVuZGVmaW5lZCAmJiBrZXkgPT0gaXRlbS5rZXkpIHtcclxuICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGUnKVxyXG4gICAgICAgICAgICBpdGVtLnZhbHVlID0gbmV3IERhdGUoanNvbltrZXldKTtcclxuICAgICAgICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PSAnZGF0ZVRpbWUnKSB7XHJcbiAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBuZXcgRGF0ZShqc29uW2tleV0pO1xyXG4gICAgICAgICAgfSBlbHNlXHJcbiAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBqc29uW2tleV1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBvcHQ7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0Rm9ybWF0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGxldCBtb250aDogc3RyaW5nIHwgbnVtYmVyID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICAgIGxldCBzdHJEYXRlOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldERhdGUoKTtcclxuXHJcbiAgICBpZiAobW9udGggPD0gOSkge1xyXG4gICAgICBtb250aCA9IFwiMFwiICsgbW9udGg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0ckRhdGUgPD0gOSkge1xyXG4gICAgICBzdHJEYXRlID0gXCIwXCIgKyBzdHJEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCkgKyBcIi1cIiArIG1vbnRoICsgXCItXCIgKyBzdHJEYXRlXHJcbiAgICAvLyArIFwiIFwiXHJcbiAgICAvLyArIGRhdGUuZ2V0SG91cnMoKSArIFwiOlwiICsgZGF0ZS5nZXRNaW51dGVzKCkgKyBcIjpcIiArIGRhdGUuZ2V0U2Vjb25kcygpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldEZvcm1hdERhdGVGdWxsKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IG1vbnRoOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgbGV0IHN0ckRhdGU6IHN0cmluZyB8IG51bWJlciA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG5cclxuICAgIGlmIChtb250aCA8PSA5KSB7XHJcbiAgICAgIG1vbnRoID0gXCIwXCIgKyBtb250aDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RyRGF0ZSA8PSA5KSB7XHJcbiAgICAgIHN0ckRhdGUgPSBcIjBcIiArIHN0ckRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKSArIFwiLVwiICsgbW9udGggKyBcIi1cIiArIHN0ckRhdGUgKyBcIiBcIiArIChkYXRlLmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0SG91cnMoKSA6IGRhdGUuZ2V0SG91cnMoKSkgKyBcIjpcIiArIChkYXRlLmdldE1pbnV0ZXMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRNaW51dGVzKCkgOiBkYXRlLmdldE1pbnV0ZXMoKSkgKyBcIjpcIiArIChkYXRlLmdldFNlY29uZHMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRTZWNvbmRzKCkgOiBkYXRlLmdldFNlY29uZHMoKSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0Rm9ybWF0RGF0ZVdpdGhvdXRTKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IG1vbnRoOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgbGV0IHN0ckRhdGU6IHN0cmluZyB8IG51bWJlciA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG4gICAgbGV0IGhvdXJzOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldEhvdXJzKCk7XHJcbiAgICBsZXQgc2Vjb25kczogc3RyaW5nIHwgbnVtYmVyID0gZGF0ZS5nZXRNaW51dGVzKCk7XHJcbiAgICBpZiAobW9udGggPD0gOSkge1xyXG4gICAgICBtb250aCA9IFwiMFwiICsgbW9udGg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0ckRhdGUgPD0gOSkge1xyXG4gICAgICBzdHJEYXRlID0gXCIwXCIgKyBzdHJEYXRlO1xyXG4gICAgfVxyXG4gICAgaWYgKGhvdXJzIDw9IDkpIHtcclxuICAgICAgaG91cnMgPSBcIjBcIiArIGhvdXJzO1xyXG4gICAgfVxyXG4gICAgaWYgKHNlY29uZHMgPD0gOSkge1xyXG4gICAgICBzZWNvbmRzID0gXCIwXCIgKyBzZWNvbmRzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKSArIFwiLVwiICsgbW9udGggKyBcIi1cIiArIHN0ckRhdGUgKyBcIiBcIiArIGhvdXJzICsgXCI6XCIgKyBzZWNvbmRzO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0Rm9ybWF0RGF0ZUhvdXIoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgbW9udGg6IHN0cmluZyB8IG51bWJlciA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XHJcbiAgICBsZXQgc3RyRGF0ZTogc3RyaW5nIHwgbnVtYmVyID0gZGF0ZS5nZXREYXRlKCk7XHJcbiAgICBsZXQgaG91cnM6IHN0cmluZyB8IG51bWJlciA9IGRhdGUuZ2V0SG91cnMoKTtcclxuICAgIGxldCBzZWNvbmRzOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldE1pbnV0ZXMoKTtcclxuICAgIGlmIChtb250aCA8PSA5KSB7XHJcbiAgICAgIG1vbnRoID0gXCIwXCIgKyBtb250aDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RyRGF0ZSA8PSA5KSB7XHJcbiAgICAgIHN0ckRhdGUgPSBcIjBcIiArIHN0ckRhdGU7XHJcbiAgICB9XHJcbiAgICBpZiAoaG91cnMgPD0gOSkge1xyXG4gICAgICBob3VycyA9IFwiMFwiICsgaG91cnM7XHJcbiAgICB9XHJcbiAgICBpZiAoc2Vjb25kcyA8PSA5KSB7XHJcbiAgICAgIHNlY29uZHMgPSBcIjBcIiArIHNlY29uZHM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpICsgXCJcIiArIG1vbnRoICsgc3RyRGF0ZSArIGhvdXJzO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldE9zc1VybCh1cmw6IHN0cmluZywgbmVlZFRpbWUgPSBmYWxzZSkge1xyXG4gICAgaWYgKCF1cmwpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICBpZiAobmVlZFRpbWUpIHtcclxuICAgICAgdXJsID0gdXJsICsgXCI/dj1cIiArIFRvb2xzVXRpbC5nZXRGb3JtYXREYXRlSG91cihuZXcgRGF0ZSgpKTtcclxuICAgIH1cclxuICAgIGlmICh1cmwuc3RhcnRzV2l0aChcImh0dHBcIikpIHtcclxuICAgICAgcmV0dXJuIHVybFxyXG4gICAgfVxyXG4gICAgbGV0IHJlc3VsdCA9IGF0cl9zdGF0aWNfZGF0YXMuT1NTX1VSTCArIHVybFxyXG5cclxuICAgIHJldHVybiByZXN1bHRcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRTdGF0aWNPc3NVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIGlmICghdXJsKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHVybC5zdGFydHNXaXRoKFwiaHR0cFwiKSkge1xyXG4gICAgICByZXR1cm4gdXJsXHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXRyX3N0YXRpY19kYXRhcy5TVEFUSUNfT1NTX1VSTCArIHVybCA7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVtb3ZlSHRtbCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC88W148Pl0rPi9nLCAnJykucmVwbGFjZSgvJm5ic3A7L2lnLCAnJylcclxuICB9XHJcblxyXG4gIHN0YXRpYyBtdWwoLi4ubnVtYmVyczogYW55KSB7XHJcbiAgICBpZiAobnVtYmVycy5sZW5ndGggPCAyKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBtID0gdGhpcy5nZXREaWdpdChudW1iZXJzKTtcclxuICAgIGxldCByZXN1bHQgPSAxO1xyXG4gICAgbnVtYmVycy5mb3JFYWNoKFxyXG4gICAgICAobnVtOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgcyA9IG51bS50b1N0cmluZygpO1xyXG4gICAgICAgIHJlc3VsdCAqPSBOdW1iZXIocy5yZXBsYWNlKFwiLlwiLCBcIlwiKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICByZXR1cm4gcmVzdWx0IC8gTWF0aC5wb3coMTAsIG0pO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldERpZ2l0KC4uLm51bWJlcnM6IGFueVtdKSB7XHJcbiAgICBsZXQgbSA9IDA7XHJcbiAgICBudW1iZXJzLmZvckVhY2goXHJcbiAgICAgIG51bSA9PiB7XHJcbiAgICAgICAgbGV0IHMgPSBudW0udG9TdHJpbmcoKTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgbSArPSBzLnNwbGl0KFwiLlwiKVsxXS5sZW5ndGhcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgcmV0dXJuIG07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZG93bmxvYWRJbWcoZGF0YTogYW55LCBmaWxlTmFtZT86IHN0cmluZywgZW5kcG9pbnQ/OiBzdHJpbmcpIHtcclxuICAgIC8vIC8vIOS4i+i9veexu+WeiyB4bHNcclxuICAgIC8vIGNvbnN0IGNvbnRlbnRUeXBlID0gJ2ltYWdlL2pwZWcnO1xyXG4gICAgLy8gLy8gY29uc3QgY29udGVudFR5cGUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnO1xyXG4gICAgLy8gLy8g5LiL6L2957G75Z6L77yaY3N2XHJcbiAgICAvLyBjb25zdCBkZWJ1ZyA9IHtoZWxsbzogXCJ3b3JsZFwifTtcclxuICAgIC8vIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbXSx7dHlwZSA6ICdpbWFnZS9qcGVnJ30pO1xyXG4gICAgLy8gY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAvL1xyXG4gICAgLy8gLy8g5omT5byA5paw56qX5Y+j5pa55byP6L+b6KGM5LiL6L29XHJcbiAgICAvLyAvLyB3aW5kb3cub3Blbih1cmwpO1xyXG4gICAgLy9cclxuICAgIC8vIC8vIOS7peWKqOaAgeWIm+W7umHmoIfnrb7ov5vooYzkuIvovb1cclxuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBhLmhyZWYgPSBkYXRhO1xyXG4gICAgLy8gYS5kb3dubG9hZCA9IGZpbGVOYW1lO1xyXG4gICAgYS5kb3dubG9hZCA9IGZpbGVOYW1lID8gZmlsZU5hbWUgOiBcIlwiICsgZW5kcG9pbnQ7XHJcbiAgICBhLmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZG93bmxvYWRYbHModXJsOiBzdHJpbmcsIHBhcmFtcz86IGFueSwpIHtcclxuICAgIGNvbnNvbGUubG9nKHBhcmFtcyk7XHJcbiAgICBpZiAocGFyYW1zKSB7XHJcbiAgICAgIHVybCArPSBcIj9cIjtcclxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocGFyYW1zKSkge1xyXG4gICAgICAgIGlmIChwYXJhbXNba2V5XSkge1xyXG4gICAgICAgICAgdXJsICs9IGtleSArIFwiPVwiICsgcGFyYW1zW2tleV0gKyBcIiYmXCJcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKHVybCk7XHJcbiAgICAvLyB3aW5kb3cub3Blbih1cmwpO1xyXG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGEuaHJlZiA9IHVybDtcclxuICAgIC8vIC8vIGEuZG93bmxvYWQgPSBmaWxlTmFtZTtcclxuICAgIC8vIGEuZG93bmxvYWQgPSBcIjMzMjEueGxzXCI7XHJcbiAgICBhLmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcGl4ZWxUb051bSh3aWR0aDogYW55KSB7XHJcbiAgICBjb25zdCByZSA9IC9weC9naTtcclxuICAgIGxldCB3aWR0aFN0ciA9IHdpZHRoLnJlcGxhY2UocmUsIFwiXCIpO1xyXG4gICAgcmV0dXJuIE51bWJlcih3aWR0aFN0cik7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgYWxsRXF1YWwgPSAoLi4uYXJyYXk6IGFueVtdKSA9PiBhcnJheS5ldmVyeShpdGVtID0+IGl0ZW0gPT09IGFycmF5WzBdKTtcclxuXHJcbiAgLyoqXHJcbiAgICogYXJyYXnmiYDmnInlj4LmlbDmu6HotrNmbuWHveaVsOi/lOWbnnRydWVcclxuICAgKiBhbGwoeCA9PiB4ID4gMSwxLDIsMyk7IC8vIHRydWVcclxuICAgKiBAcGFyYW0gY2FsbGJhY2tcclxuICAgKiBAcGFyYW0gYXJyYXlcclxuICAgKi9cclxuICBzdGF0aWMgc2F0aXNmaWVkRm4gPSAoY2FsbGJhY2s6ICguLi5hcmdzOiBhbnlbXSkgPT4gYm9vbGVhbiwgLi4uYXJyYXk6IGFueVtdKSA9PiBhcnJheS5ldmVyeShjYWxsYmFjayk7XHJcblxyXG4gIC8v5YWo6YOo5LiN56m65Li6dHJ1ZVxyXG4gIHN0YXRpYyBub3RFbXB0eSguLi5hcnI6IGFueVtdKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gYXJyLmV2ZXJ5KGl0ZW0gPT4gISFpdGVtKVxyXG4gIH1cclxuXHJcbiAgLy/ljIXlkKvnqbrkuLp0cnVlXHJcbiAgc3RhdGljIGhhc0VtcHR5KC4uLmFycjogYW55W10pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBhcnIuc29tZShpdGVtID0+ICFpdGVtKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBhbGxFbXB0eSguLi5hcnI6IGFueVtdKSB7XHJcbiAgICByZXR1cm4gYXJyLmV2ZXJ5KGl0ZW0gPT4gIWl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGVuY29kZVZhbHVlKHBhcmFtczogYW55KSB7XHJcbiAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goa2V5ID0+IHBhcmFtc1trZXldID0gZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtc1trZXldKSk7XHJcbiAgICByZXR1cm4gcGFyYW1zO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHdpbmRvd0hlaWdodCgpIHtcclxuICAgIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHdpbmRvd1dpZHRoKCkge1xyXG5cclxuICAgIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgbW9kYWxlU3R5bGUoKSB7XHJcbiAgICByZXR1cm4geydtYXhIZWlnaHQnOiBUb29sc1V0aWwud2luZG93SGVpZ2h0KCkgLSAyMDAgKyAncHgnLCAnb3ZlcmZsb3cteSc6ICdhdXRvJ307XHJcbiAgfVxyXG59XHJcbiJdfQ==
390
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9vbHNVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29yZS91dGlscy9Ub29sc1V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBSXRFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLE9BQU8sU0FBUztJQWlCcEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFXO1FBQ3pCLElBQUksR0FBRyxHQUFHLDRHQUE0RyxDQUFDO1FBQ3ZILE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN6QixDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFTO1FBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDN0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNsQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuQztRQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMs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QyxDQUFDO0lBQ3hDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQTtBQTRNTSxrQkFBUSxHQUFHLENBQUMsR0FBRyxLQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFOUU7Ozs7O0dBS0c7QUFDSSxxQkFBVyxHQUFHLENBQUMsUUFBcUMsRUFBRSxHQUFHLEtBQVksRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7anNvbiwgQXRyRm9ybU9wdCwgYXRyX3N0YXRpY19kYXRhc30gZnJvbSAnLi4vYmFzZS9hdHItY29tbW9uJztcclxuaW1wb3J0IHtmb3JtYXREYXRlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge0h0dHBIZWFkZXJzfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHtTaW1wbGVDaGFuZ2V9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1ZhbGlkYXRvcnN9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRvb2xzVXRpbCB7XHJcbiAgc3RhdGljIGdldE9yZ0NvZGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAvLyB2YXIgb3JnQ29kZSA9ICcnO1xyXG4gICAgLy8gdmFyIGhyZWZzID0gd2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKVxyXG4gICAgLy8gaWYgKGhyZWZzLmxlbmd0aCA+PSAyKSB7XHJcbiAgICAvLyAgIHZhciBwYXJhbVN0ciA9IGhyZWZzWzFdO1xyXG4gICAgLy8gICAvL+WPguaVsOWtl+espuS4sumHjOacieayoeW4piA9Py8jXHJcbiAgICAvLyAgIG9yZ0NvZGUgPSBwYXJhbVN0ci5zcGxpdCgnPScpWzBdO1xyXG4gICAgLy8gICBvcmdDb2RlID0gb3JnQ29kZS5zcGxpdCgnPycpWzBdO1xyXG4gICAgLy8gICBvcmdDb2RlID0gb3JnQ29kZS5zcGxpdCgnLycpWzBdO1xyXG4gICAgLy8gICBvcmdDb2RlID0gb3JnQ29kZS5zcGxpdCgnIycpWzBdO1xyXG4gICAgLy8gICBvcmdDb2RlID0gb3JnQ29kZS5zcGxpdCgnLycpWzBdO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIHN0YXRpYyBpc0Jhc2U2NChzdHJpbmc6IGFueSkge1xyXG4gICAgbGV0IHJlZyA9IC9eXFxzKmRhdGE6KFthLXpdK1xcL1thLXowLTktKy5dKyg7W2Etei1dKz1bYS16MC05LV0rKT8pPyg7YmFzZTY0KT8sKFthLXowLTkhJCYnLCgpKis7PVxcLS5ffjpAXFwvPyVcXHNdKj8pXFxzKiQvaTtcclxuICAgIHJldHVybiByZWcudGVzdChzdHJpbmcpXHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZGF0YVVSSXRvQmxvYihjb2RlOiBhbnkpIHtcclxuICAgIGNvbnN0IHBhcnRzID0gY29kZS5zcGxpdCgnO2Jhc2U2NCwnKTtcclxuICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gcGFydHNbMF0uc3BsaXQoJzonKVsxXTtcclxuICAgIGNvbnN0IHJhdyA9IHdpbmRvdy5hdG9iKHBhcnRzWzFdKTtcclxuICAgIGNvbnN0IHJhd0xlbmd0aCA9IHJhdy5sZW5ndGg7XHJcbiAgICBjb25zdCB1SW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkocmF3TGVuZ3RoKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmF3TGVuZ3RoOyArK2kpIHtcclxuICAgICAgdUludDhBcnJheVtpXSA9IHJhdy5jaGFyQ29kZUF0KGkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1SW50OEFycmF5XSwge3R5cGU6IGNvbnRlbnRUeXBlfSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaXNOdWxsKHZhbDogYW55KSB7XHJcbiAgICBpZiAodmFsIHx8IFsnYm9vbGVhbicsICdzdHJpbmcnLCAnbnVtYmVyJ10uc29tZSh2ID0+IHR5cGVvZiB2YWwgPT0gdikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldENvbnRyb2xzQ29uZmlnKGRhdGFGcm9tOiBhbnksIHJlcXVpcmVkUnVsZTogc3RyaW5nW10pIHtcclxuICAgIGxldCBjb250cm9sc0NvbmZpZzogYW55ID0ge31cclxuICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGFGcm9tKSB7XHJcbiAgICAgIGlmIChyZXF1aXJlZFJ1bGUuc29tZShpdGVtID0+IGl0ZW0gPT0ga2V5KSkge1xyXG4gICAgICAgIGNvbnRyb2xzQ29uZmlnW2tleV0gPSBbZGF0YUZyb21ba2V5XSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnRyb2xzQ29uZmlnW2tleV0gPSBbZGF0YUZyb21ba2V5XV1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbnRyb2xzQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGh0dHBTdWNjZXMocmVzOiBhbnkpIHtcclxuICAgIHJldHVybiBbJzIwMCcsICcyMDEnXS5zb21lKHYgPT4gcmVzLnN0YXR1cyA9PSB2KVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICrliKTmlq3ngrnmmK/lkKblnKjlnZDmoIfljLrln5/lhoVcclxuICAgKiBAcGFyYW0gcCDliKTlrprnmoTngrlcclxuICAgKiBAcGFyYW0gcG9pbnRzQXJyXHJcbiAgICovXHJcbiAgc3RhdGljIGp1ZGdlSW5SZWMocDogeyB4MTogYW55LCB5MTogYW55IH0sIHBvaW50c0FycjogeyB4MTogYW55LCB5MTogYW55IH1bXSkge1xyXG4gICAgbGV0IHB4ID0gTnVtYmVyKHAueDEpLCBweSA9IE51bWJlcihwLnkxKSxcclxuICAgICAgZmxhZyA9IGZhbHNlLC8v56m/6LaK6L655qGGXHJcbiAgICAgIGluUmVjdCA9IGZhbHNlOy8v5piv5ZCm5Zyo5aSa6L655b2i55qE6L655oiW6ICF56uv54K55LiKXHJcbiAgICBsZXQgc3RhcnQgPSBwb2ludHNBcnJbMF07XHJcbiAgICBsZXQgZW5kID0gcG9pbnRzQXJyW3BvaW50c0Fyci5sZW5ndGggLSAxXTtcclxuICAgIC8v5aaC5p6c5pWw57uE6aaW5bC+5rKh5pyJ55u46L+eLOaJi+WKqOa3u+WKoFxyXG4gICAgcG9pbnRzQXJyID0gc3RhcnQueDEgIT0gZW5kLngxIHx8IHN0YXJ0LnkxICE9IGVuZC55MSA/IHBvaW50c0Fyci5jb25jYXQoc3RhcnQpIDogcG9pbnRzQXJyO1xyXG4gICAgLy/lsITnur/pgInlj5ZZ5Z2Q5qCH5LiN5Y+YLHjmraPmlrnlkJFcclxuICAgIHBvaW50c0Fyci5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAoaW5kZXggPT0gcG9pbnRzQXJyLmxlbmd0aCAtIDFcclxuICAgICAgICB8fCBpblJlY3QvL+WcqOWkmui+ueW9oueahOi+ueaIluiAheerr+eCueS4iuinhuS4uuWcqOWMuuWfn+WGhVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICBsZXQgZW5kUG9pbnQgPSBwb2ludHNBcnJbaW5kZXggKyAxXVxyXG4gICAgICBjb25zdCBzdGFydFggPSBOdW1iZXIoaXRlbS54MSksIHN0YXJ0WSA9IE51bWJlcihpdGVtLnkxKSxcclxuICAgICAgICBlbmRYID0gTnVtYmVyKGVuZFBvaW50LngxKSwgZW5kWSA9IE51bWJlcihlbmRQb2ludC55MSk7XHJcbiAgICAgIC8v5Yik5pat54K55piv5ZCm5Zyo56uv54K55LiKXHJcbiAgICAgIGlmICgocHggPT0gc3RhcnRYICYmIHB5ID09IHN0YXJ0WSlcclxuICAgICAgICB8fCAocHggPT0gZW5kWCAmJiBweCA9PSBlbmRZKSkge1xyXG4gICAgICAgIGluUmVjdCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvL+WIpOaWreWwhOe6v+mHjeWQiOW5tuS4lOeCueWcqOi+ueS4ilxyXG4gICAgICBpZiAoKHN0YXJ0WSA9PSBlbmRZICYmIGVuZFkgPT0gcHkpXHJcbiAgICAgICAgJiYgKChweCA+IGVuZFggJiYgcHggPCBzdGFydFhcclxuICAgICAgICAgIHx8IChweCA8IGVuZFggJiYgcHggPiBzdGFydFgpKSkpIHtcclxuICAgICAgICBpblJlY3QgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKChzdGFydFkgPCBweSAmJiBlbmRZID49IHB5KVxyXG4gICAgICAgIHx8IChzdGFydFkgPj0gcHkgJiYgZW5kWSA8IHB5KSkge1xyXG5cclxuICAgICAgICAvL+axguWwhOe6v+S4jue6v+auteS6pOeCueeahHjlnZDmoIcseeWdkOagh+i/mOaYr3B5XHJcbiAgICAgICAgbGV0IHggPSBzdGFydFggKyAocHkgLSBzdGFydFkpICogKGVuZFggLSBzdGFydFgpIC8gKGVuZFkgLSBzdGFydFkpO1xyXG4gICAgICAgIC8v54K55Zyo6L655LiKXHJcbiAgICAgICAgaWYgKHggPT0gcHgpIHtcclxuICAgICAgICAgIGluUmVjdCA9IHRydWVcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy945aSn5LqOcHjmnaXkv53or4HlsITnur/mnJ3lj7NcclxuICAgICAgICBpZiAoeCA+IHB4KSB7XHJcbiAgICAgICAgICBmbGFnID0gIWZsYWdcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICByZXR1cm4gaW5SZWN0IHx8IGZsYWc7XHJcblxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRpZmZJbnB1dChjaG5nOiBTaW1wbGVDaGFuZ2UsIGFjdGlvbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgaWYgKGNobmcgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG5cclxuICAgIGxldCBjdXIgPSBKU09OLnN0cmluZ2lmeShjaG5nLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICBsZXQgcHJldiA9IEpTT04uc3RyaW5naWZ5KGNobmcucHJldmlvdXNWYWx1ZSk7XHJcbiAgICBpZiAoY3VyICE9PSBwcmV2KSB7XHJcbiAgICAgIGFjdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRpZmZJbnB1dHMoY2huZzogU2ltcGxlQ2hhbmdlW10sIGFjdGlvbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgaWYgKGNobmcgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgaWYgKGNobmcubGVuZ3RoID09IDApIHJldHVybjtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2huZy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgaXRlbSA9IGNobmdbaV07XHJcbiAgICAgIGlmIChpdGVtID09PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xyXG4gICAgICBsZXQgY3VyID0gSlNPTi5zdHJpbmdpZnkoaXRlbS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICBsZXQgcHJldiA9IEpTT04uc3RyaW5naWZ5KGl0ZW0ucHJldmlvdXNWYWx1ZSk7XHJcbiAgICAgIGlmIChjdXIgIT09IHByZXYpIHtcclxuICAgICAgICBhY3Rpb24oKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRhdGFVUkx0b0Jsb2IoZGF0YXVybDogYW55KSB7XHJcbiAgICB2YXIgYXJyID0gZGF0YXVybC5zcGxpdCgnLCcpLCBtaW1lID0gYXJyWzBdLm1hdGNoKC86KC4qPyk7LylbMV0sXHJcbiAgICAgIGJzdHIgPSBhdG9iKGFyclsxXSksIG4gPSBic3RyLmxlbmd0aCwgdThhcnIgPSBuZXcgVWludDhBcnJheShuKTtcclxuICAgIHdoaWxlIChuLS0pIHtcclxuICAgICAgdThhcnJbbl0gPSBic3RyLmNoYXJDb2RlQXQobik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IEJsb2IoW3U4YXJyXSwge3R5cGU6IG1pbWV9KTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBkYXRhVVJMdG9GaWxlKGRhdGF1cmw6IGFueSwgZmlsZW5hbWU/OiBzdHJpbmcpIHtcclxuICAgIHZhciBhcnIgPSBkYXRhdXJsLnNwbGl0KCcsJyksIG1pbWUgPSBhcnJbMF0ubWF0Y2goLzooLio/KTsvKVsxXSxcclxuICAgICAgYnN0ciA9IGF0b2IoYXJyWzFdKSwgbiA9IGJzdHIubGVuZ3RoLCB1OGFyciA9IG5ldyBVaW50OEFycmF5KG4pO1xyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRmlsZShbdThhcnJdLCAoZmlsZW5hbWUgfHwgVG9vbHNVdGlsLmdldFJhbmRvbUZpbGVOYW1lKCkpLCB7dHlwZTogbWltZX0pO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldFllc3RlcmRheShkYXk6IERhdGUpOiBEYXRlIHtcclxuXHJcbiAgICBsZXQgdGltZSA9IGRheS5nZXRUaW1lKCkgLSAxMDAwICogNjAgKiA2MCAqIDI0O1xyXG4gICAgZGF5ID0gbmV3IERhdGUodGltZSk7XHJcblxyXG4gICAgcmV0dXJuIGRheTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRUb21vcnJvd2RheShkYXk6IERhdGUpOiBEYXRlIHtcclxuICAgIGxldCB0aW1lID0gZGF5LmdldFRpbWUoKSArIDEwMDAgKiA2MCAqIDYwICogMjQ7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRpbWUpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldE5leHRNb250aChkYXk6IERhdGUpIHtcclxuICAgIGxldCBkcyA9IG5ldyBEYXRlKGRheSkuc2V0TW9udGgoZGF5LmdldE1vbnRoKCkgKyAxKTtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkcyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0VmlkZW9Db3Zlcih1cmw6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIFRvb2xzVXRpbC5nZXRPc3NVcmwodXJsKSArIFwiP3gtb3NzLXByb2Nlc3M9dmlkZW8vc25hcHNob3QsdF8xMDAwMCxtX2Zhc3RcIjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBmaXN0RGF5T2ZNb250aChkYXk6IERhdGUpIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShuZXcgRGF0ZShkYXkpLnNldERhdGUoMSkpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGxhc3REYXlPZk1vbnRoKGRheTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKFRvb2xzVXRpbC5nZXROZXh0TW9udGgoZGF5KS5zZXREYXRlKDApKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRSYW5kb21GaWxlTmFtZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIGNvbnN0IGV4cGVjdCA9IDE2O1xyXG4gICAgbGV0IHN0ciA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcclxuICAgIHdoaWxlIChzdHIubGVuZ3RoIDwgZXhwZWN0KSB7XHJcbiAgICAgIHN0ciArPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RyLnN1YnN0cmluZygwLCBleHBlY3QpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldEZpbGVFeHQgPSBmdW5jdGlvbiAoZmlsZU5hbWU6IHN0cmluZykge1xyXG4gICAgdmFyIGluZGV4ID0gZmlsZU5hbWUubGFzdEluZGV4T2YoXCIuXCIpO1xyXG4gICAgdmFyIHN1ZmZpeCA9IGZpbGVOYW1lLnN1YnN0cihpbmRleCArIDEpO1xyXG4gICAgcmV0dXJuIHN1ZmZpeDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRIdHRwT3B0aW9ucygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtpc0NvbW1vbkh0dHBIZWFkZXI6IHRydWV9XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIHJlc2V0Rm9ybVZhbHVlKG9wdDogQXRyRm9ybU9wdCwganNvbjoganNvbik6IEF0ckZvcm1PcHQge1xyXG4gICAgZm9yIChsZXQgaXRlbSBvZiBvcHQuaXRlbXMpIHtcclxuICAgICAgaXRlbS52YWx1ZSA9IFwiXCI7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGl0ZW0udmFsdWUpO1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhqc29uKSkge1xyXG4gICAgICAgIGlmIChqc29uLmhhc093blByb3BlcnR5KGtleSkgJiYganNvbltrZXldICE9IG51bGwgJiYganNvbltrZXldICE9IHVuZGVmaW5lZCAmJiBrZXkgPT0gaXRlbS5rZXkpIHtcclxuICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gJ2RhdGUnKVxyXG4gICAgICAgICAgICBpdGVtLnZhbHVlID0gbmV3IERhdGUoanNvbltrZXldKTtcclxuICAgICAgICAgIGVsc2UgaWYgKGl0ZW0udHlwZSA9PSAnZGF0ZVRpbWUnKSB7XHJcbiAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBuZXcgRGF0ZShqc29uW2tleV0pO1xyXG4gICAgICAgICAgfSBlbHNlXHJcbiAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBqc29uW2tleV1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBvcHQ7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0Rm9ybWF0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGxldCBtb250aDogc3RyaW5nIHwgbnVtYmVyID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuICAgIGxldCBzdHJEYXRlOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldERhdGUoKTtcclxuXHJcbiAgICBpZiAobW9udGggPD0gOSkge1xyXG4gICAgICBtb250aCA9IFwiMFwiICsgbW9udGg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0ckRhdGUgPD0gOSkge1xyXG4gICAgICBzdHJEYXRlID0gXCIwXCIgKyBzdHJEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCkgKyBcIi1cIiArIG1vbnRoICsgXCItXCIgKyBzdHJEYXRlXHJcbiAgICAvLyArIFwiIFwiXHJcbiAgICAvLyArIGRhdGUuZ2V0SG91cnMoKSArIFwiOlwiICsgZGF0ZS5nZXRNaW51dGVzKCkgKyBcIjpcIiArIGRhdGUuZ2V0U2Vjb25kcygpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldEZvcm1hdERhdGVGdWxsKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IG1vbnRoOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgbGV0IHN0ckRhdGU6IHN0cmluZyB8IG51bWJlciA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG5cclxuICAgIGlmIChtb250aCA8PSA5KSB7XHJcbiAgICAgIG1vbnRoID0gXCIwXCIgKyBtb250aDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RyRGF0ZSA8PSA5KSB7XHJcbiAgICAgIHN0ckRhdGUgPSBcIjBcIiArIHN0ckRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKSArIFwiLVwiICsgbW9udGggKyBcIi1cIiArIHN0ckRhdGUgKyBcIiBcIiArIChkYXRlLmdldEhvdXJzKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0SG91cnMoKSA6IGRhdGUuZ2V0SG91cnMoKSkgKyBcIjpcIiArIChkYXRlLmdldE1pbnV0ZXMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRNaW51dGVzKCkgOiBkYXRlLmdldE1pbnV0ZXMoKSkgKyBcIjpcIiArIChkYXRlLmdldFNlY29uZHMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRTZWNvbmRzKCkgOiBkYXRlLmdldFNlY29uZHMoKSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0Rm9ybWF0RGF0ZVdpdGhvdXRTKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IG1vbnRoOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgbGV0IHN0ckRhdGU6IHN0cmluZyB8IG51bWJlciA9IGRhdGUuZ2V0RGF0ZSgpO1xyXG4gICAgbGV0IGhvdXJzOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldEhvdXJzKCk7XHJcbiAgICBsZXQgc2Vjb25kczogc3RyaW5nIHwgbnVtYmVyID0gZGF0ZS5nZXRNaW51dGVzKCk7XHJcbiAgICBpZiAobW9udGggPD0gOSkge1xyXG4gICAgICBtb250aCA9IFwiMFwiICsgbW9udGg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0ckRhdGUgPD0gOSkge1xyXG4gICAgICBzdHJEYXRlID0gXCIwXCIgKyBzdHJEYXRlO1xyXG4gICAgfVxyXG4gICAgaWYgKGhvdXJzIDw9IDkpIHtcclxuICAgICAgaG91cnMgPSBcIjBcIiArIGhvdXJzO1xyXG4gICAgfVxyXG4gICAgaWYgKHNlY29uZHMgPD0gOSkge1xyXG4gICAgICBzZWNvbmRzID0gXCIwXCIgKyBzZWNvbmRzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKSArIFwiLVwiICsgbW9udGggKyBcIi1cIiArIHN0ckRhdGUgKyBcIiBcIiArIGhvdXJzICsgXCI6XCIgKyBzZWNvbmRzO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0Rm9ybWF0RGF0ZUhvdXIoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgbW9udGg6IHN0cmluZyB8IG51bWJlciA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XHJcbiAgICBsZXQgc3RyRGF0ZTogc3RyaW5nIHwgbnVtYmVyID0gZGF0ZS5nZXREYXRlKCk7XHJcbiAgICBsZXQgaG91cnM6IHN0cmluZyB8IG51bWJlciA9IGRhdGUuZ2V0SG91cnMoKTtcclxuICAgIGxldCBzZWNvbmRzOiBzdHJpbmcgfCBudW1iZXIgPSBkYXRlLmdldE1pbnV0ZXMoKTtcclxuICAgIGlmIChtb250aCA8PSA5KSB7XHJcbiAgICAgIG1vbnRoID0gXCIwXCIgKyBtb250aDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RyRGF0ZSA8PSA5KSB7XHJcbiAgICAgIHN0ckRhdGUgPSBcIjBcIiArIHN0ckRhdGU7XHJcbiAgICB9XHJcbiAgICBpZiAoaG91cnMgPD0gOSkge1xyXG4gICAgICBob3VycyA9IFwiMFwiICsgaG91cnM7XHJcbiAgICB9XHJcbiAgICBpZiAoc2Vjb25kcyA8PSA5KSB7XHJcbiAgICAgIHNlY29uZHMgPSBcIjBcIiArIHNlY29uZHM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpICsgXCJcIiArIG1vbnRoICsgc3RyRGF0ZSArIGhvdXJzO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldE9zc1VybCh1cmw6IHN0cmluZywgbmVlZFRpbWUgPSBmYWxzZSkge1xyXG4gICAgaWYgKCF1cmwpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICBpZiAobmVlZFRpbWUpIHtcclxuICAgICAgdXJsID0gdXJsICsgXCI/dj1cIiArIFRvb2xzVXRpbC5nZXRGb3JtYXREYXRlSG91cihuZXcgRGF0ZSgpKTtcclxuICAgIH1cclxuICAgIGlmICh1cmwuc3RhcnRzV2l0aChcImh0dHBcIikpIHtcclxuICAgICAgcmV0dXJuIHVybFxyXG4gICAgfVxyXG4gICAgbGV0IHJlc3VsdCA9IGF0cl9zdGF0aWNfZGF0YXMuT1NTX1VSTCArIHVybFxyXG5cclxuICAgIHJldHVybiByZXN1bHRcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRTdGF0aWNPc3NVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIGlmICghdXJsKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHVybC5zdGFydHNXaXRoKFwiaHR0cFwiKSkge1xyXG4gICAgICByZXR1cm4gdXJsXHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXRyX3N0YXRpY19kYXRhcy5TVEFUSUNfT1NTX1VSTCArIHVybCA7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVtb3ZlSHRtbCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC88W148Pl0rPi9nLCAnJykucmVwbGFjZSgvJm5ic3A7L2lnLCAnJylcclxuICB9XHJcblxyXG4gIHN0YXRpYyBtdWwoLi4ubnVtYmVyczogYW55KSB7XHJcbiAgICBpZiAobnVtYmVycy5sZW5ndGggPCAyKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBtID0gdGhpcy5nZXREaWdpdChudW1iZXJzKTtcclxuICAgIGxldCByZXN1bHQgPSAxO1xyXG4gICAgbnVtYmVycy5mb3JFYWNoKFxyXG4gICAgICAobnVtOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgcyA9IG51bS50b1N0cmluZygpO1xyXG4gICAgICAgIHJlc3VsdCAqPSBOdW1iZXIocy5yZXBsYWNlKFwiLlwiLCBcIlwiKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICByZXR1cm4gcmVzdWx0IC8gTWF0aC5wb3coMTAsIG0pO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldERpZ2l0KC4uLm51bWJlcnM6IGFueVtdKSB7XHJcbiAgICBsZXQgbSA9IDA7XHJcbiAgICBudW1iZXJzLmZvckVhY2goXHJcbiAgICAgIG51bSA9PiB7XHJcbiAgICAgICAgbGV0IHMgPSBudW0udG9TdHJpbmcoKTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgbSArPSBzLnNwbGl0KFwiLlwiKVsxXS5sZW5ndGhcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgcmV0dXJuIG07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZG93bmxvYWRJbWcoZGF0YTogYW55LCBmaWxlTmFtZT86IHN0cmluZywgZW5kcG9pbnQ/OiBzdHJpbmcpIHtcclxuICAgIC8vIC8vIOS4i+i9veexu+WeiyB4bHNcclxuICAgIC8vIGNvbnN0IGNvbnRlbnRUeXBlID0gJ2ltYWdlL2pwZWcnO1xyXG4gICAgLy8gLy8gY29uc3QgY29udGVudFR5cGUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnO1xyXG4gICAgLy8gLy8g5LiL6L2957G75Z6L77yaY3N2XHJcbiAgICAvLyBjb25zdCBkZWJ1ZyA9IHtoZWxsbzogXCJ3b3JsZFwifTtcclxuICAgIC8vIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbXSx7dHlwZSA6ICdpbWFnZS9qcGVnJ30pO1xyXG4gICAgLy8gY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAvL1xyXG4gICAgLy8gLy8g5omT5byA5paw56qX5Y+j5pa55byP6L+b6KGM5LiL6L29XHJcbiAgICAvLyAvLyB3aW5kb3cub3Blbih1cmwpO1xyXG4gICAgLy9cclxuICAgIC8vIC8vIOS7peWKqOaAgeWIm+W7umHmoIfnrb7ov5vooYzkuIvovb1cclxuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBhLmhyZWYgPSBkYXRhO1xyXG4gICAgLy8gYS5kb3dubG9hZCA9IGZpbGVOYW1lO1xyXG4gICAgYS5kb3dubG9hZCA9IGZpbGVOYW1lID8gZmlsZU5hbWUgOiBcIlwiICsgZW5kcG9pbnQ7XHJcbiAgICBhLmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZG93bmxvYWRYbHModXJsOiBzdHJpbmcsIHBhcmFtcz86IGFueSwpIHtcclxuICAgIGNvbnNvbGUubG9nKHBhcmFtcyk7XHJcbiAgICBpZiAocGFyYW1zKSB7XHJcbiAgICAgIHVybCArPSBcIj9cIjtcclxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocGFyYW1zKSkge1xyXG4gICAgICAgIGlmIChwYXJhbXNba2V5XSkge1xyXG4gICAgICAgICAgdXJsICs9IGtleSArIFwiPVwiICsgcGFyYW1zW2tleV0gKyBcIiYmXCJcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKHVybCk7XHJcbiAgICAvLyB3aW5kb3cub3Blbih1cmwpO1xyXG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGEuaHJlZiA9IHVybDtcclxuICAgIC8vIC8vIGEuZG93bmxvYWQgPSBmaWxlTmFtZTtcclxuICAgIC8vIGEuZG93bmxvYWQgPSBcIjMzMjEueGxzXCI7XHJcbiAgICBhLmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcGl4ZWxUb051bSh3aWR0aDogYW55KSB7XHJcbiAgICBjb25zdCByZSA9IC9weC9naTtcclxuICAgIGxldCB3aWR0aFN0ciA9IHdpZHRoLnJlcGxhY2UocmUsIFwiXCIpO1xyXG4gICAgcmV0dXJuIE51bWJlcih3aWR0aFN0cik7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgYWxsRXF1YWwgPSAoLi4uYXJyYXk6IGFueVtdKSA9PiBhcnJheS5ldmVyeShpdGVtID0+IGl0ZW0gPT09IGFycmF5WzBdKTtcclxuXHJcbiAgLyoqXHJcbiAgICogYXJyYXnmiYDmnInlj4LmlbDmu6HotrNmbuWHveaVsOi/lOWbnnRydWVcclxuICAgKiBhbGwoeCA9PiB4ID4gMSwxLDIsMyk7IC8vIHRydWVcclxuICAgKiBAcGFyYW0gY2FsbGJhY2tcclxuICAgKiBAcGFyYW0gYXJyYXlcclxuICAgKi9cclxuICBzdGF0aWMgc2F0aXNmaWVkRm4gPSAoY2FsbGJhY2s6ICguLi5hcmdzOiBhbnlbXSkgPT4gYm9vbGVhbiwgLi4uYXJyYXk6IGFueVtdKSA9PiBhcnJheS5ldmVyeShjYWxsYmFjayk7XHJcblxyXG4gIC8v5YWo6YOo5LiN56m65Li6dHJ1ZVxyXG4gIHN0YXRpYyBub3RFbXB0eSguLi5hcnI6IGFueVtdKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gYXJyLmV2ZXJ5KGl0ZW0gPT4gISFpdGVtKVxyXG4gIH1cclxuXHJcbiAgLy/ljIXlkKvnqbrkuLp0cnVlXHJcbiAgc3RhdGljIGhhc0VtcHR5KC4uLmFycjogYW55W10pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBhcnIuc29tZShpdGVtID0+ICFpdGVtKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBhbGxFbXB0eSguLi5hcnI6IGFueVtdKSB7XHJcbiAgICByZXR1cm4gYXJyLmV2ZXJ5KGl0ZW0gPT4gIWl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGVuY29kZVZhbHVlKHBhcmFtczogYW55KSB7XHJcbiAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goa2V5ID0+IHBhcmFtc1trZXldID0gZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtc1trZXldKSk7XHJcbiAgICByZXR1cm4gcGFyYW1zO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHdpbmRvd0hlaWdodCgpIHtcclxuICAgIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHdpbmRvd1dpZHRoKCkge1xyXG5cclxuICAgIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgbW9kYWxlU3R5bGUoKSB7XHJcbiAgICByZXR1cm4geydtYXhIZWlnaHQnOiBUb29sc1V0aWwud2luZG93SGVpZ2h0KCkgLSAyMDAgKyAncHgnLCAnb3ZlcmZsb3cteSc6ICdhdXRvJ307XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -107,10 +107,10 @@ export class ImgCanvasComponent {
107
107
  }
108
108
  }
109
109
  ImgCanvasComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImgCanvasComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
110
- ImgCanvasComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ImgCanvasComponent, selector: "app-img", inputs: { url: "url", clipArr: "clipArr", rotateNum: "rotateNum" }, outputs: { loadOver: "loadOver" }, viewQueries: [{ propertyName: "canvas1", first: true, predicate: ["canvas1"], descendants: true }], ngImport: i0, template: "<canvas #canvas1 style=\"width: 100%;height: 100%;\">\n \u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u753B\u5E03\uFF01\n</canvas>\n<ng-content></ng-content>\n", styles: [""] });
110
+ ImgCanvasComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ImgCanvasComponent, selector: "app-img", inputs: { url: "url", clipArr: "clipArr", rotateNum: "rotateNum" }, outputs: { loadOver: "loadOver" }, viewQueries: [{ propertyName: "canvas1", first: true, predicate: ["canvas1"], descendants: true }], ngImport: i0, template: "<canvas #canvas1 style=\"width: 100%;height: 100%;\" oncontextmenu=\"return false\">\n \u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u753B\u5E03\uFF01\n</canvas>\n<ng-content></ng-content>\n", styles: [""] });
111
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImgCanvasComponent, decorators: [{
112
112
  type: Component,
113
- args: [{ selector: 'app-img', template: "<canvas #canvas1 style=\"width: 100%;height: 100%;\">\n \u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u753B\u5E03\uFF01\n</canvas>\n<ng-content></ng-content>\n", styles: [""] }]
113
+ args: [{ selector: 'app-img', template: "<canvas #canvas1 style=\"width: 100%;height: 100%;\" oncontextmenu=\"return false\">\n \u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u753B\u5E03\uFF01\n</canvas>\n<ng-content></ng-content>\n", styles: [""] }]
114
114
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { url: [{
115
115
  type: Input
116
116
  }], canvas1: [{
@@ -123,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
123
123
  }], loadOver: [{
124
124
  type: Output
125
125
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLWNhbnZhcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2ltZy1jYW52YXMvaW1nLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2ltZy1jYW52YXMvaW1nLWNhbnZhcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBUW5ILE1BQU0sT0FBTyxrQkFBa0I7SUF1QjdCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFSMUMsVUFBSyxHQUFHLEdBQUcsQ0FBQztRQUNaLFdBQU0sR0FBRyxHQUFHLENBQUM7UUFHSixZQUFPLEdBQVUsRUFBRSxDQUFDO1FBQ3BCLGNBQVMsR0FBUSxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRzNELENBQUM7SUF0QkQsSUFBYSxHQUFHLENBQUMsR0FBVztRQUMxQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN4QixHQUFHLElBQUksR0FBRyxDQUFDO2FBRVo7WUFDRCxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUE7U0FDbkM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBZUQsUUFBUTtJQUVSLENBQUM7SUFFRCxhQUFh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SUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RCxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGVBQWU7UUFDYixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDakUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ2hCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNULENBQUM7O2dIQXRIVSxrQkFBa0I7b0dBQWxCLGtCQUFrQiwwUENSL0IscUtBSUE7NEZESWEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLFNBQVM7aUdBTU4sR0FBRztzQkFBZixLQUFLO2dCQVdpQyxPQUFPO3NCQUE3QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBTTVCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Nlc3Npb25TdG9yYWdlVXRpbH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvdXRpbHMvc2Vzc2lvbnN0b3JhZ2UudXRpbFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtaW1nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltZy1jYW52YXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbWctY2FudmFzLmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW1nQ2FudmFzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBzZXQgdXJsKHVybDogc3RyaW5nKSB7XG4gICAgaWYgKHVybCAmJiB1cmwuaW5kZXhPZignP3Y9JykgPCAwKSB7XG4gICAgICBpZiAodXJsLmluZGV4T2YoXCI/XCIpIDwgMCkge1xuICAgICAgICB1cmwgKz0gXCI/XCI7XG5cbiAgICAgIH1cbiAgICAgIHVybCArPSBcInY9XCIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKVxuICAgIH1cbiAgICB0aGlzLmltZ1VybCA9IHVybDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2NhbnZhczEnLCB7c3RhdGljOiBmYWxzZX0pIGNhbnZhczE6IGFueTtcbiAgY2FudmFzRG9tOiBhbnlcbiAgd2lkdGggPSA4MDA7XG4gIGhlaWdodCA9IDgwMDtcbiAgaW1nVXJsOiBhbnk7XG4gIGltZzogYW55O1xuICBASW5wdXQoKSBjbGlwQXJyOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSByb3RhdGVOdW06IGFueSA9IDA7XG4gIEBPdXRwdXQoKSBsb2FkT3ZlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICB9XG5cbiAgZ2V0Q2FudmFzRnVsbCgpIHtcbiAgICBsZXQgaW1nVyA9IHRoaXMuaW1nLndpZHRoLy/lm77niYfnmoTlrr1cbiAgICBsZXQgaW1nSCA9IHRoaXMuaW1nLmhlaWdodC8v5Zu+54mH55qE6auYXG4gICAgbGV0IGNXID0gdGhpcy53aWR0aDtcbiAgICBsZXQgY0ggPSB0aGlzLmhlaWdodDtcbiAgICBsZXQgcmF0ZVcgPSBpbWdIIC8gaW1nVy8v5q+U5L6LXG4gICAgbGV0IHJhdGVIID0gaW1nVyAvIGltZ0gvL+avlOS+i1xuICAgIGlmIChpbWdXID4gaW1nSCkge1xuICAgICAgaW1nVyA9IHRoaXMud2lkdGhcbiAgICAgIGltZ0ggPSBpbWdXICogcmF0ZVc7XG4gICAgICBpZiAoaW1nSCA+IGNIKSB7XG4gICAgICAgIGltZ0ggPSBjSFxuICAgICAgICBpbWdXID0gaW1nSCAqIHJhdGVIXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGltZ0ggPSB0aGlzLmhlaWdodFxuICAgICAgaW1nVyA9IGltZ0ggKiByYXRlSDtcbiAgICAgIGlmIChpbWdXID4gY1cpIHtcbiAgICAgICAgaW1nVyA9IGNXXG4gICAgICAgIGltZ0ggPSBpbWdXICogcmF0ZVdcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpbWdIID0gdGhpcy5jYW52YXNEb20ub2Zmc2V0SGVpZ2h0XG4gICAgLy8gaW1nVyA9IHRoaXMuY2FudmFzRG9tLm9mZnNldFdpZHRoXG4gICAgLy8gbGV0IGNhbnZhc0ggPSBpbWdIICogcmF0ZVxuICAgIC8vIGlmIChjYW52YXNIID4gdGhpcy5oZWlnaHQpIHtcbiAgICAvLyAgIGNhbnZhc0ggPSB0aGlzLmhlaWdodFxuICAgIC8vICAgcmF0ZSA9IGNhbnZhc0ggLyBpbWdIXG4gICAgLy8gICBjYW52YXNXID0gaW1nVyAqIHJhdGVcbiAgICAvLyB9XG4gICAgY29uc29sZS5sb2coXCLlm77niYflrr3pq5hcIiwgaW1nVyArIFwiO1wiICsgaW1nSClcbiAgICByZXR1cm4ge1xuICAgICAgaW1nVzogaW1nVyxcbiAgICAgIGltZ0g6IGltZ0hcbiAgICB9XG4gIH1cblxuICBpbml0SW1nKG5lZWRTZXNzaW9uID0gdHJ1ZSkge1xuICAgIHRoaXMuY2FudmFzRG9tID0gdGhpcy5jYW52YXMxLm5hdGl2ZUVsZW1lbnQ7XG4gICAgLy8gdGhpcy5jYW52YXNEb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmNhbnZhc0lkKTtcbiAgICAvL+ajgOa1i+aUr+aMgeaAp1xuICAgIGlmICghdGhpcy5jYW52YXNEb20uZ2V0Q29udGV4dCgnMmQnKSkgcmV0dXJuO1xuICAgIC8v6I635b6XIDJkIOS4iuS4i+aWh+WvueixoVxuICAgIGxldCBjb250ZXh0MSA9IHRoaXMuY2FudmFzRG9tLmdldENvbnRleHQoJzJkJyk7XG4gICAgbGV0IGltYWdlID0gdGhpcy5pbWdVcmxcbiAgICB0aGlzLmltZyA9IG5ldyBJbWFnZSgpOy8v5Yib5bu6aW1n5YWD57SgXG4gICAgdGhpcy5pbWcuc2V0QXR0cmlidXRlKCdjcm9zc09yaWdpbicsICdhbm9ueW1vdXMnKVxuICAgIHRoaXMuaW1nLnNyYyA9IHRoaXMuaW1nVXJsOy8v6K6+572u5Zu+54mH5rqQ5Zyw5Z2AXG4gICAgLy8gdGhpcy5pbWcuc3JjID0gVG9vbHNVdGlsLmdldE9zc1VybCh0aGlzLmltZ1VybCk7Ly/orr7nva7lm77niYfmupDlnLDlnYBcbiAgICB0aGlzLmltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICB0aGlzLmluaXRCYXNlKGNvbnRleHQxKVxuICAgICAgdGhpcy5sb2FkT3Zlci5lbWl0KHtjb2RlOidsb2FkT3Zlcid9KVxuICAgIH1cbiAgfVxuXG4gIGluaXRCYXNlKGNvbnRleHQxOiBhbnkpIHtcblxuICAgIGNvbnNvbGUubG9nKFwi5Zu+54mH5Yqg6L295a6M5q+VXCIsIHRoaXMuaW1nLmhlaWdodClcbiAgICBjb25zb2xlLmxvZyhcIuWbvueJh+WKoOi9veWujOavlVwiLCB0aGlzLmltZy53aWR0aClcbiAgICBjb25zdCB7aW1nVywgaW1nSH0gPSB0aGlzLmdldENhbnZhc0Z1bGwoKTtcbiAgICB0aGlzLmNhbnZhc0RvbS53aWR0aCA9IHRoaXMud2lkdGg7XG4gICAgdGhpcy5jYW52YXNEb20uaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgaWYgKHRoaXMuY2xpcEFyciAmJiB0aGlzLmNsaXBBcnIubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5nb0NsaXAoY29udGV4dDEpXG4gICAgfVxuICAgIC8vIOWPguaVsCAx77ya6KaB57uY5Yi255qEIGltZyAgIOWPguaVsCAy44CBM++8mue7mOWItueahCBpbWcg5ZyoIGNhbnZhcyDkuK3nmoTlnZDmoIcg5Y+C5pWwNCw15pivd2lkdGjvvIxoZWlnaHRcbiAgICBjb250ZXh0MS5kcmF3SW1hZ2UodGhpcy5pbWcsIDAsIDAsIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0LCk7XG4gICAgY29uc29sZS5sb2coXCLlm77niYfliqDovb3lrozmr5VcIiwgdGhpcy5jYW52YXNEb20ud2lkdGggKyBcIixcIiArIHRoaXMuY2FudmFzRG9tLmhlaWdodClcbiAgfVxuXG4gIGdvQ2xpcChjb250ZXh0OiBhbnkpIHtcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpXG4gICAgY29udGV4dC5tb3ZlVG8odGhpcy5jbGlwQXJyWzBdLngxLCB0aGlzLmNsaXBBcnJbMF0ueTEpO1xuICAgIHRoaXMuY2xpcEFyci5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGluZGV4ID4gMCkge1xuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngxLCBpdGVtLnkxKVxuICAgICAgfVxuICAgIH0pXG4gICAgY29udGV4dC5saW5lVG8odGhpcy5jbGlwQXJyWzBdLngxLCB0aGlzLmNsaXBBcnJbMF0ueTEpO1xuICAgIGNvbnRleHQuY2xpcCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ+W9k+WJjee7hOS7tuWuvemrmCcsIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodClcbiAgICAgIHRoaXMuaW5pdEltZygpXG4gICAgfSwgMzAwKVxuICB9XG5cbn1cbiIsIjxjYW52YXMgI2NhbnZhczEgc3R5bGU9XCJ3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7XCI+XG4gIOaCqOeahOa1j+iniOWZqOS4jeaUr+aMgeeUu+W4g++8gVxuPC9jYW52YXM+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLWNhbnZhcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2ltZy1jYW52YXMvaW1nLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2ltZy1jYW52YXMvaW1nLWNhbnZhcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBUW5ILE1BQU0sT0FBTyxrQkFBa0I7SUF1QjdCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFSMUMsVUFBSyxHQUFHLEdBQUcsQ0FBQztRQUNaLFdBQU0sR0FBRyxHQUFHLENBQUM7UUFHSixZQUFPLEdBQVUsRUFBRSxDQUFDO1FBQ3BCLGNBQVMsR0FBUSxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRzNELENBQUM7SUF0QkQsSUFBYSxHQUFHLENBQUMsR0FBVztRQUMxQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN4QixHQUFHLElBQUksR0FBRyxDQUFDO2FBRVo7WUFDRCxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUE7U0FDbkM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBZUQsUUFBUTtJQUVSLENBQUM7SUFFRCxhQUFh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SUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RCxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGVBQWU7UUFDYixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDakUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ2hCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNULENBQUM7O2dIQXRIVSxrQkFBa0I7b0dBQWxCLGtCQUFrQiwwUENSL0Isb01BSUE7NEZESWEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLFNBQVM7aUdBTU4sR0FBRztzQkFBZixLQUFLO2dCQVdpQyxPQUFPO3NCQUE3QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBTTVCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Nlc3Npb25TdG9yYWdlVXRpbH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvdXRpbHMvc2Vzc2lvbnN0b3JhZ2UudXRpbFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtaW1nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltZy1jYW52YXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbWctY2FudmFzLmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW1nQ2FudmFzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBzZXQgdXJsKHVybDogc3RyaW5nKSB7XG4gICAgaWYgKHVybCAmJiB1cmwuaW5kZXhPZignP3Y9JykgPCAwKSB7XG4gICAgICBpZiAodXJsLmluZGV4T2YoXCI/XCIpIDwgMCkge1xuICAgICAgICB1cmwgKz0gXCI/XCI7XG5cbiAgICAgIH1cbiAgICAgIHVybCArPSBcInY9XCIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKVxuICAgIH1cbiAgICB0aGlzLmltZ1VybCA9IHVybDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2NhbnZhczEnLCB7c3RhdGljOiBmYWxzZX0pIGNhbnZhczE6IGFueTtcbiAgY2FudmFzRG9tOiBhbnlcbiAgd2lkdGggPSA4MDA7XG4gIGhlaWdodCA9IDgwMDtcbiAgaW1nVXJsOiBhbnk7XG4gIGltZzogYW55O1xuICBASW5wdXQoKSBjbGlwQXJyOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSByb3RhdGVOdW06IGFueSA9IDA7XG4gIEBPdXRwdXQoKSBsb2FkT3ZlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICB9XG5cbiAgZ2V0Q2FudmFzRnVsbCgpIHtcbiAgICBsZXQgaW1nVyA9IHRoaXMuaW1nLndpZHRoLy/lm77niYfnmoTlrr1cbiAgICBsZXQgaW1nSCA9IHRoaXMuaW1nLmhlaWdodC8v5Zu+54mH55qE6auYXG4gICAgbGV0IGNXID0gdGhpcy53aWR0aDtcbiAgICBsZXQgY0ggPSB0aGlzLmhlaWdodDtcbiAgICBsZXQgcmF0ZVcgPSBpbWdIIC8gaW1nVy8v5q+U5L6LXG4gICAgbGV0IHJhdGVIID0gaW1nVyAvIGltZ0gvL+avlOS+i1xuICAgIGlmIChpbWdXID4gaW1nSCkge1xuICAgICAgaW1nVyA9IHRoaXMud2lkdGhcbiAgICAgIGltZ0ggPSBpbWdXICogcmF0ZVc7XG4gICAgICBpZiAoaW1nSCA+IGNIKSB7XG4gICAgICAgIGltZ0ggPSBjSFxuICAgICAgICBpbWdXID0gaW1nSCAqIHJhdGVIXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGltZ0ggPSB0aGlzLmhlaWdodFxuICAgICAgaW1nVyA9IGltZ0ggKiByYXRlSDtcbiAgICAgIGlmIChpbWdXID4gY1cpIHtcbiAgICAgICAgaW1nVyA9IGNXXG4gICAgICAgIGltZ0ggPSBpbWdXICogcmF0ZVdcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpbWdIID0gdGhpcy5jYW52YXNEb20ub2Zmc2V0SGVpZ2h0XG4gICAgLy8gaW1nVyA9IHRoaXMuY2FudmFzRG9tLm9mZnNldFdpZHRoXG4gICAgLy8gbGV0IGNhbnZhc0ggPSBpbWdIICogcmF0ZVxuICAgIC8vIGlmIChjYW52YXNIID4gdGhpcy5oZWlnaHQpIHtcbiAgICAvLyAgIGNhbnZhc0ggPSB0aGlzLmhlaWdodFxuICAgIC8vICAgcmF0ZSA9IGNhbnZhc0ggLyBpbWdIXG4gICAgLy8gICBjYW52YXNXID0gaW1nVyAqIHJhdGVcbiAgICAvLyB9XG4gICAgY29uc29sZS5sb2coXCLlm77niYflrr3pq5hcIiwgaW1nVyArIFwiO1wiICsgaW1nSClcbiAgICByZXR1cm4ge1xuICAgICAgaW1nVzogaW1nVyxcbiAgICAgIGltZ0g6IGltZ0hcbiAgICB9XG4gIH1cblxuICBpbml0SW1nKG5lZWRTZXNzaW9uID0gdHJ1ZSkge1xuICAgIHRoaXMuY2FudmFzRG9tID0gdGhpcy5jYW52YXMxLm5hdGl2ZUVsZW1lbnQ7XG4gICAgLy8gdGhpcy5jYW52YXNEb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmNhbnZhc0lkKTtcbiAgICAvL+ajgOa1i+aUr+aMgeaAp1xuICAgIGlmICghdGhpcy5jYW52YXNEb20uZ2V0Q29udGV4dCgnMmQnKSkgcmV0dXJuO1xuICAgIC8v6I635b6XIDJkIOS4iuS4i+aWh+WvueixoVxuICAgIGxldCBjb250ZXh0MSA9IHRoaXMuY2FudmFzRG9tLmdldENvbnRleHQoJzJkJyk7XG4gICAgbGV0IGltYWdlID0gdGhpcy5pbWdVcmxcbiAgICB0aGlzLmltZyA9IG5ldyBJbWFnZSgpOy8v5Yib5bu6aW1n5YWD57SgXG4gICAgdGhpcy5pbWcuc2V0QXR0cmlidXRlKCdjcm9zc09yaWdpbicsICdhbm9ueW1vdXMnKVxuICAgIHRoaXMuaW1nLnNyYyA9IHRoaXMuaW1nVXJsOy8v6K6+572u5Zu+54mH5rqQ5Zyw5Z2AXG4gICAgLy8gdGhpcy5pbWcuc3JjID0gVG9vbHNVdGlsLmdldE9zc1VybCh0aGlzLmltZ1VybCk7Ly/orr7nva7lm77niYfmupDlnLDlnYBcbiAgICB0aGlzLmltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICB0aGlzLmluaXRCYXNlKGNvbnRleHQxKVxuICAgICAgdGhpcy5sb2FkT3Zlci5lbWl0KHtjb2RlOidsb2FkT3Zlcid9KVxuICAgIH1cbiAgfVxuXG4gIGluaXRCYXNlKGNvbnRleHQxOiBhbnkpIHtcblxuICAgIGNvbnNvbGUubG9nKFwi5Zu+54mH5Yqg6L295a6M5q+VXCIsIHRoaXMuaW1nLmhlaWdodClcbiAgICBjb25zb2xlLmxvZyhcIuWbvueJh+WKoOi9veWujOavlVwiLCB0aGlzLmltZy53aWR0aClcbiAgICBjb25zdCB7aW1nVywgaW1nSH0gPSB0aGlzLmdldENhbnZhc0Z1bGwoKTtcbiAgICB0aGlzLmNhbnZhc0RvbS53aWR0aCA9IHRoaXMud2lkdGg7XG4gICAgdGhpcy5jYW52YXNEb20uaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgaWYgKHRoaXMuY2xpcEFyciAmJiB0aGlzLmNsaXBBcnIubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5nb0NsaXAoY29udGV4dDEpXG4gICAgfVxuICAgIC8vIOWPguaVsCAx77ya6KaB57uY5Yi255qEIGltZyAgIOWPguaVsCAy44CBM++8mue7mOWItueahCBpbWcg5ZyoIGNhbnZhcyDkuK3nmoTlnZDmoIcg5Y+C5pWwNCw15pivd2lkdGjvvIxoZWlnaHRcbiAgICBjb250ZXh0MS5kcmF3SW1hZ2UodGhpcy5pbWcsIDAsIDAsIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0LCk7XG4gICAgY29uc29sZS5sb2coXCLlm77niYfliqDovb3lrozmr5VcIiwgdGhpcy5jYW52YXNEb20ud2lkdGggKyBcIixcIiArIHRoaXMuY2FudmFzRG9tLmhlaWdodClcbiAgfVxuXG4gIGdvQ2xpcChjb250ZXh0OiBhbnkpIHtcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpXG4gICAgY29udGV4dC5tb3ZlVG8odGhpcy5jbGlwQXJyWzBdLngxLCB0aGlzLmNsaXBBcnJbMF0ueTEpO1xuICAgIHRoaXMuY2xpcEFyci5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGluZGV4ID4gMCkge1xuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngxLCBpdGVtLnkxKVxuICAgICAgfVxuICAgIH0pXG4gICAgY29udGV4dC5saW5lVG8odGhpcy5jbGlwQXJyWzBdLngxLCB0aGlzLmNsaXBBcnJbMF0ueTEpO1xuICAgIGNvbnRleHQuY2xpcCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ+W9k+WJjee7hOS7tuWuvemrmCcsIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodClcbiAgICAgIHRoaXMuaW5pdEltZygpXG4gICAgfSwgMzAwKVxuICB9XG5cbn1cbiIsIjxjYW52YXMgI2NhbnZhczEgc3R5bGU9XCJ3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7XCIgb25jb250ZXh0bWVudT1cInJldHVybiBmYWxzZVwiPlxuICDmgqjnmoTmtY/op4jlmajkuI3mlK/mjIHnlLvluIPvvIFcbjwvY2FudmFzPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
@@ -217,7 +217,7 @@ class ToolsUtil {
217
217
  * @param pointsArr
218
218
  */
219
219
  static judgeInRec(p, pointsArr) {
220
- let px = p.x1, py = p.y1, flag = false, //穿越边框
220
+ let px = Number(p.x1), py = Number(p.y1), flag = false, //穿越边框
221
221
  inRect = false; //是否在多边形的边或者端点上
222
222
  let start = pointsArr[0];
223
223
  let end = pointsArr[pointsArr.length - 1];
@@ -231,7 +231,7 @@ class ToolsUtil {
231
231
  return;
232
232
  }
233
233
  let endPoint = pointsArr[index + 1];
234
- const startX = item.x1, startY = item.y1, endX = endPoint.x1, endY = endPoint.y1;
234
+ const startX = Number(item.x1), startY = Number(item.y1), endX = Number(endPoint.x1), endY = Number(endPoint.y1);
235
235
  //判断点是否在端点上
236
236
  if ((px == startX && py == startY)
237
237
  || (px == endX && px == endY)) {
@@ -239,7 +239,7 @@ class ToolsUtil {
239
239
  return;
240
240
  }
241
241
  //判断射线重合并且点在边上
242
- if ((startY == endY == py)
242
+ if ((startY == endY && endY == py)
243
243
  && ((px > endX && px < startX
244
244
  || (px < endX && px > startX)))) {
245
245
  inRect = true;
@@ -4886,10 +4886,10 @@ class ImgCanvasComponent {
4886
4886
  }
4887
4887
  }
4888
4888
  ImgCanvasComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImgCanvasComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
4889
- ImgCanvasComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ImgCanvasComponent, selector: "app-img", inputs: { url: "url", clipArr: "clipArr", rotateNum: "rotateNum" }, outputs: { loadOver: "loadOver" }, viewQueries: [{ propertyName: "canvas1", first: true, predicate: ["canvas1"], descendants: true }], ngImport: i0, template: "<canvas #canvas1 style=\"width: 100%;height: 100%;\">\n \u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u753B\u5E03\uFF01\n</canvas>\n<ng-content></ng-content>\n", styles: [""] });
4889
+ ImgCanvasComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ImgCanvasComponent, selector: "app-img", inputs: { url: "url", clipArr: "clipArr", rotateNum: "rotateNum" }, outputs: { loadOver: "loadOver" }, viewQueries: [{ propertyName: "canvas1", first: true, predicate: ["canvas1"], descendants: true }], ngImport: i0, template: "<canvas #canvas1 style=\"width: 100%;height: 100%;\" oncontextmenu=\"return false\">\n \u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u753B\u5E03\uFF01\n</canvas>\n<ng-content></ng-content>\n", styles: [""] });
4890
4890
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImgCanvasComponent, decorators: [{
4891
4891
  type: Component,
4892
- args: [{ selector: 'app-img', template: "<canvas #canvas1 style=\"width: 100%;height: 100%;\">\n \u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u753B\u5E03\uFF01\n</canvas>\n<ng-content></ng-content>\n", styles: [""] }]
4892
+ args: [{ selector: 'app-img', template: "<canvas #canvas1 style=\"width: 100%;height: 100%;\" oncontextmenu=\"return false\">\n \u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u753B\u5E03\uFF01\n</canvas>\n<ng-content></ng-content>\n", styles: [""] }]
4893
4893
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { url: [{
4894
4894
  type: Input
4895
4895
  }], canvas1: [{