@annalib/anna-core 31.4.13 → 31.4.14

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.
@@ -12,18 +12,13 @@ export class AnnaNumberFormatService {
12
12
  return value.toString() + unit;
13
13
  // return (Math.Round(value, digitsToRoundDecimalPoint, MidpointRounding.AwayFromZero) + unit);
14
14
  }
15
- static GetRoundedValueWithUnitsAndDollarSymbol(inputValue, digitsToRoundDecimalPoint = 2) {
16
- if (inputValue === 0)
17
- return "-";
18
- const result = AnnaNumberFormatService.GetValueInUnits(Math.abs(inputValue));
19
- let value = result[0];
20
- const unit = result[1];
15
+ static GetRoundedValuesWithoutUnits(inputValue, digitsToRoundDecimalPoint = 2) {
16
+ let value = inputValue;
21
17
  value = +(+value).toFixed(digitsToRoundDecimalPoint);
22
18
  if (inputValue < 0) {
23
19
  value *= -1;
24
20
  }
25
- const dollarSymbol = value < 0 ? "-$" : "$";
26
- return dollarSymbol + value.toString() + unit;
21
+ return value.toLocaleString("en-IN");
27
22
  }
28
23
  static GetRoundedImpressionsWithUnits(inputValue, digitsToRoundDecimalPoint = 0) {
29
24
  const result = this.GetValueInUnits(Math.abs(inputValue));
@@ -69,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
69
64
  providedIn: "root",
70
65
  }]
71
66
  }] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1udW1iZXItZm9ybWF0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLW51bWJlci1mb3JtYXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxVQUFrQixFQUFFLHlCQUF5QixHQUFHLENBQUM7UUFDcEYsTUFBTSxNQUFNLEdBQUcsdUJBQXVCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM3RSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZCLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNyRCxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMvQixpR0FBaUc7SUFDckcsQ0FBQztJQUVNLE1BQU0sQ0FBQyx1Q0FBdUMsQ0FBQyxVQUFrQixFQUFFLHlCQUF5QixHQUFHLENBQUM7UUFDbkcsSUFBSSxVQUFVLEtBQUssQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxD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OlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFOdW1iZXJGb3JtYXRTZXJ2aWNlIHtcclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0Um91bmRlZFZhbHVlV2l0aFVuaXRzKGlucHV0VmFsdWU6IG51bWJlciwgZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludCA9IDIpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBBbm5hTnVtYmVyRm9ybWF0U2VydmljZS5HZXRWYWx1ZUluVW5pdHMoTWF0aC5hYnMoaW5wdXRWYWx1ZSkpO1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IHJlc3VsdFswXTtcclxuICAgICAgICBjb25zdCB1bml0ID0gcmVzdWx0WzFdO1xyXG5cclxuICAgICAgICB2YWx1ZSA9ICsoK3ZhbHVlKS50b0ZpeGVkKGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQpO1xyXG4gICAgICAgIGlmIChpbnB1dFZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICB2YWx1ZSAqPSAtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCkgKyB1bml0O1xyXG4gICAgICAgIC8vICAgcmV0dXJuIChNYXRoLlJvdW5kKHZhbHVlLCBkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50LCBNaWRwb2ludFJvdW5kaW5nLkF3YXlGcm9tWmVybykgKyB1bml0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldFJvdW5kZWRWYWx1ZVdpdGhVbml0c0FuZERvbGxhclN5bWJvbChpbnB1dFZhbHVlOiBudW1iZXIsIGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQgPSAyKSB7XHJcbiAgICAgICAgaWYgKGlucHV0VmFsdWUgPT09IDApIHJldHVybiBcIi1cIjtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBBbm5hTnVtYmVyRm9ybWF0U2VydmljZS5HZXRWYWx1ZUluVW5pdHMoTWF0aC5hYnMoaW5wdXRWYWx1ZSkpO1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IHJlc3VsdFswXTtcclxuICAgICAgICBjb25zdCB1bml0ID0gcmVzdWx0WzFdO1xyXG5cclxuICAgICAgICB2YWx1ZSA9ICsoK3ZhbHVlKS50b0ZpeGVkKGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQpO1xyXG4gICAgICAgIGlmIChpbnB1dFZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICB2YWx1ZSAqPSAtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZG9sbGFyU3ltYm9sID0gdmFsdWUgPCAwID8gXCItJFwiIDogXCIkXCI7XHJcbiAgICAgICAgcmV0dXJuIGRvbGxhclN5bWJvbCArIHZhbHVlLnRvU3RyaW5nKCkgKyB1bml0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0Um91bmRlZEltcHJlc3Npb25zV2l0aFVuaXRzKGlucHV0VmFsdWU6IG51bWJlciwgZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludDogbnVtYmVyID0gMCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuR2V0VmFsdWVJblVuaXRzKE1hdGguYWJzKGlucHV0VmFsdWUpKTtcclxuICAgICAgICBsZXQgdmFsdWUgPSByZXN1bHRbMF07XHJcbiAgICAgICAgY29uc3QgdW5pdCA9IHJlc3VsdFsxXTtcclxuXHJcbiAgICAgICAgdmFsdWUgPSArdmFsdWU7XHJcbiAgICAgICAgaWYgKGlucHV0VmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgIHZhbHVlICo9IC0xO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGRpZ2l0VG9Sb3VuZE9mZiA9IGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQ7XHJcbiAgICAgICAgaWYgKGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQgPT09IDAgJiYgKHVuaXQgPT09IFwiTVwiIHx8IHVuaXQgPT09IFwiQlwiIHx8IHVuaXQgPT09IFwiS1wiKSkge1xyXG4gICAgICAgICAgICBkaWdpdFRvUm91bmRPZmYgPSAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgPyB2YWx1ZS50b1N0cmluZygpICsgdW5pdCA6IHZhbHVlLnRvRml4ZWQoZGlnaXRUb1JvdW5kT2ZmKSArIHVuaXQ7XHJcbiAgICAgICAgLy8gcmV0dXJuIChNYXRoLnJvdW5kKHZhbHVlLCBkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50LCBNaWRwb2ludFJvdW5kaW5nLkF3YXlGcm9tWmVybykgKyB1bml0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldFZhbHVlSW5Vbml0cyhpbnB1dFZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgdW5pdCA9IFwiXCI7XHJcbiAgICAgICAgbGV0IHVwZGF0ZWRJbnB1dFZhbHVlID0gaW5wdXRWYWx1ZTtcclxuICAgICAgICBjb25zdCB0aG91c2FuZCA9IDEwMDA7XHJcbiAgICAgICAgY29uc3QgbWlsbGlvbiA9IDEwMDAwMDA7XHJcbiAgICAgICAgY29uc3QgYmlsbGlvbiA9IDEwMDAwMDAwMDA7XHJcblxyXG4gICAgICAgIGlmIChpbnB1dFZhbHVlID49IHRob3VzYW5kICYmIGlucHV0VmFsdWUgPCBtaWxsaW9uKSB7XHJcbiAgICAgICAgICAgIHVwZGF0ZWRJbnB1dFZhbHVlID0gaW5wdXRWYWx1ZSAvIHRob3VzYW5kO1xyXG4gICAgICAgICAgICB1bml0ID0gXCJLXCI7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpbnB1dFZhbHVlID49IG1pbGxpb24gJiYgaW5wdXRWYWx1ZSA8IGJpbGxpb24pIHtcclxuICAgICAgICAgICAgdXBkYXRlZElucHV0VmFsdWUgPSBpbnB1dFZhbHVlIC8gbWlsbGlvbjtcclxuICAgICAgICAgICAgdW5pdCA9IFwiTVwiO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaW5wdXRWYWx1ZSA+PSBiaWxsaW9uKSB7XHJcbiAgICAgICAgICAgIHVwZGF0ZWRJbnB1dFZhbHVlID0gaW5wdXRWYWx1ZSAvIGJpbGxpb247XHJcbiAgICAgICAgICAgIHVuaXQgPSBcIkJcIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBbdXBkYXRlZElucHV0VmFsdWUsIHVuaXRdO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1udW1iZXItZm9ybWF0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLW51bWJlci1mb3JtYXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxVQUFrQixFQUFFLHlCQUF5QixHQUFHLENBQUM7UUFDcEYsTUFBTSxNQUFNLEdBQUcsdUJBQXVCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM3RSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZCLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNyRCxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMvQixpR0FBaUc7SUFDckcsQ0FBQztJQUNNLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxVQUFrQixFQUFFLHlCQUF5QixHQUFHLENBQUM7UUFDeEYsSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBQ3ZCLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNyRCxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sTUFBTSxDQUFDLDhCQUE4QixDQUFDLFVBQWtCLEVBQUUsNEJBQW9DLENBQUM7UUFDbEcsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDMUQsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2QixLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDZixJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUVELElBQUksZUFBZSxHQUFHLHlCQUF5QixDQUFDO1FBQ2hELElBQUkseUJBQXlCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BGLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDakcsK0ZBQStGO0lBQ25HLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLFVBQWtCO1FBQzVDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNkLElBQUksaUJBQWlCLEdBQUcsVUFBVSxDQUFDO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQztRQUN0QixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDeEIsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDO1FBRTNCLElBQUksVUFBVSxJQUFJLFFBQVEsSUFBSSxVQUFVLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDakQsaUJBQWlCLEdBQUcsVUFBVSxHQUFHLFFBQVEsQ0FBQztZQUMxQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ2YsQ0FBQzthQUFNLElBQUksVUFBVSxJQUFJLE9BQU8sSUFBSSxVQUFVLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDdkQsaUJBQWlCLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQztZQUN6QyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ2YsQ0FBQzthQUFNLElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQy9CLGlCQUFpQixHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUM7WUFDekMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQzsrR0EzRFEsdUJBQXVCO21IQUF2Qix1QkFBdUIsY0FGcEIsTUFBTTs7NEZBRVQsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hTnVtYmVyRm9ybWF0U2VydmljZSB7XHJcbiAgICBwdWJsaWMgc3RhdGljIEdldFJvdW5kZWRWYWx1ZVdpdGhVbml0cyhpbnB1dFZhbHVlOiBudW1iZXIsIGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQgPSAyKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gQW5uYU51bWJlckZvcm1hdFNlcnZpY2UuR2V0VmFsdWVJblVuaXRzKE1hdGguYWJzKGlucHV0VmFsdWUpKTtcclxuICAgICAgICBsZXQgdmFsdWUgPSByZXN1bHRbMF07XHJcbiAgICAgICAgY29uc3QgdW5pdCA9IHJlc3VsdFsxXTtcclxuXHJcbiAgICAgICAgdmFsdWUgPSArKCt2YWx1ZSkudG9GaXhlZChkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50KTtcclxuICAgICAgICBpZiAoaW5wdXRWYWx1ZSA8IDApIHtcclxuICAgICAgICAgICAgdmFsdWUgKj0gLTE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpICsgdW5pdDtcclxuICAgICAgICAvLyAgIHJldHVybiAoTWF0aC5Sb3VuZCh2YWx1ZSwgZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludCwgTWlkcG9pbnRSb3VuZGluZy5Bd2F5RnJvbVplcm8pICsgdW5pdCk7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc3RhdGljIEdldFJvdW5kZWRWYWx1ZXNXaXRob3V0VW5pdHMoaW5wdXRWYWx1ZTogbnVtYmVyLCBkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50ID0gMikge1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IGlucHV0VmFsdWU7XHJcbiAgICAgICAgdmFsdWUgPSArKCt2YWx1ZSkudG9GaXhlZChkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50KTtcclxuICAgICAgICBpZiAoaW5wdXRWYWx1ZSA8IDApIHtcclxuICAgICAgICAgICAgdmFsdWUgKj0gLTE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB2YWx1ZS50b0xvY2FsZVN0cmluZyhcImVuLUlOXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0Um91bmRlZEltcHJlc3Npb25zV2l0aFVuaXRzKGlucHV0VmFsdWU6IG51bWJlciwgZGlnaXRzVG9Sb3VuZERlY2ltYWxQb2ludDogbnVtYmVyID0gMCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuR2V0VmFsdWVJblVuaXRzKE1hdGguYWJzKGlucHV0VmFsdWUpKTtcclxuICAgICAgICBsZXQgdmFsdWUgPSByZXN1bHRbMF07XHJcbiAgICAgICAgY29uc3QgdW5pdCA9IHJlc3VsdFsxXTtcclxuXHJcbiAgICAgICAgdmFsdWUgPSArdmFsdWU7XHJcbiAgICAgICAgaWYgKGlucHV0VmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgIHZhbHVlICo9IC0xO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGRpZ2l0VG9Sb3VuZE9mZiA9IGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQ7XHJcbiAgICAgICAgaWYgKGRpZ2l0c1RvUm91bmREZWNpbWFsUG9pbnQgPT09IDAgJiYgKHVuaXQgPT09IFwiTVwiIHx8IHVuaXQgPT09IFwiQlwiIHx8IHVuaXQgPT09IFwiS1wiKSkge1xyXG4gICAgICAgICAgICBkaWdpdFRvUm91bmRPZmYgPSAyO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgPyB2YWx1ZS50b1N0cmluZygpICsgdW5pdCA6IHZhbHVlLnRvRml4ZWQoZGlnaXRUb1JvdW5kT2ZmKSArIHVuaXQ7XHJcbiAgICAgICAgLy8gcmV0dXJuIChNYXRoLnJvdW5kKHZhbHVlLCBkaWdpdHNUb1JvdW5kRGVjaW1hbFBvaW50LCBNaWRwb2ludFJvdW5kaW5nLkF3YXlGcm9tWmVybykgKyB1bml0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldFZhbHVlSW5Vbml0cyhpbnB1dFZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgdW5pdCA9IFwiXCI7XHJcbiAgICAgICAgbGV0IHVwZGF0ZWRJbnB1dFZhbHVlID0gaW5wdXRWYWx1ZTtcclxuICAgICAgICBjb25zdCB0aG91c2FuZCA9IDEwMDA7XHJcbiAgICAgICAgY29uc3QgbWlsbGlvbiA9IDEwMDAwMDA7XHJcbiAgICAgICAgY29uc3QgYmlsbGlvbiA9IDEwMDAwMDAwMDA7XHJcblxyXG4gICAgICAgIGlmIChpbnB1dFZhbHVlID49IHRob3VzYW5kICYmIGlucHV0VmFsdWUgPCBtaWxsaW9uKSB7XHJcbiAgICAgICAgICAgIHVwZGF0ZWRJbnB1dFZhbHVlID0gaW5wdXRWYWx1ZSAvIHRob3VzYW5kO1xyXG4gICAgICAgICAgICB1bml0ID0gXCJLXCI7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpbnB1dFZhbHVlID49IG1pbGxpb24gJiYgaW5wdXRWYWx1ZSA8IGJpbGxpb24pIHtcclxuICAgICAgICAgICAgdXBkYXRlZElucHV0VmFsdWUgPSBpbnB1dFZhbHVlIC8gbWlsbGlvbjtcclxuICAgICAgICAgICAgdW5pdCA9IFwiTVwiO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaW5wdXRWYWx1ZSA+PSBiaWxsaW9uKSB7XHJcbiAgICAgICAgICAgIHVwZGF0ZWRJbnB1dFZhbHVlID0gaW5wdXRWYWx1ZSAvIGJpbGxpb247XHJcbiAgICAgICAgICAgIHVuaXQgPSBcIkJcIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBbdXBkYXRlZElucHV0VmFsdWUsIHVuaXRdO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==