react-native-chart-kit 6.12.2 → 6.12.3

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.
package/README.md CHANGED
@@ -1,11 +1,7 @@
1
- If you're looking to **build a website or a cross-platform mobile app** – we will be happy to help you! Send a note to clients@ui1.io and we will be in touch with you shortly.
2
-
3
1
  ![Chart Kit](https://i.imgur.com/Idp4WIX.jpg)
4
2
 
5
3
  [📲See example app](https://github.com/indiespirit/react-native-chart-kit-example)
6
4
 
7
- To try the examples in Expo, please change `main` to `./node_modules/expo/AppEntry.js` in `package.json` before starting things with `expo run`. You'll need to have `expo-cli` installed via `npm install -g expo-cli`.
8
-
9
5
  # React Native Chart Kit Documentation
10
6
 
11
7
  ## Import components
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractChart.d.ts","sourceRoot":"","sources":["../src/AbstractChart.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC;CAC9D;AAED,MAAM,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAEpC,eAAO,MAAM,kCAAkC,OAAO,CAAC;AAIvD,cAAM,aAAa,CACjB,MAAM,SAAS,kBAAkB,EACjC,MAAM,SAAS,kBAAkB,CACjC,SAAQ,SAAS,CAAC,kBAAkB,GAAG,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAC3E,OAAO,CAAC,OAAO,CAAiB;IAEhC,SAAS,CAAC,YAAY,GAAI,OAAM,MAAM,EAAO,cAE3C;IAEF,SAAS,CAAC,aAAa,GAAI,IAAI,MAAM,YAEnC;IAEF,SAAS,CAAC,cAAc,GAAI,IAAI,MAAM,YAEpC;IAEF,UAAU,GAAI,MAAM,MAAM,EAAE,YAqB1B;IAEF,cAAc,GAAI,MAAM,MAAM,EAAE,EAAE,QAAQ,MAAM,YAgB9C;IAEF,UAAU,GAAI,KAAK,MAAM,EAAE,MAAM,MAAM,EAAE,EAAE,QAAQ,MAAM,YAyBvD;IAEF,0BAA0B;;;;;IAU1B,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAajB,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYzB,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAY3B,qBAAqB,GAAG,WAAM,mBAwB5B;IAEF,oBAAoB,GAAG,WAAM,iBAkB3B;IAEF,sBAAsB,GACpB,QAAQ,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,mBA4D9D;IAEF,oBAAoB,GAAI,wJAWrB,IAAI,CACL,mBAAmB,EACjB,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,cAAc,GACd,YAAY,GACZ,kBAAkB,GAClB,YAAY,GACZ,uBAAuB,GACvB,cAAc,GACd,gCAAgC,CACnC,mBA8CC;IAEF,mBAAmB,GAAI,mFAOpB,IAAI,CACL,IAAI,CACF,mBAAmB,EACjB,MAAM,GACN,OAAO,GACP,QAAQ,GACR,cAAc,GACd,YAAY,GACZ,gCAAgC,CACnC,EACD,MAAM,CACP,GAAG;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,mBAuBpB;IAEF,kBAAkB,GAAI,sEAKnB,IAAI,CACL,mBAAmB,EACnB,QAAQ,GAAG,cAAc,GAAG,YAAY,GAAG,gCAAgC,CAC5E,iBASC;IAEF,UAAU,GACR,QAAQ,IAAI,CACV,SAAS,CACP,mBAAmB,EACjB,+BAA+B,GAC/B,6BAA6B,GAC7B,oBAAoB,GACpB,2BAA2B,GAC3B,wBAAwB,GACxB,+BAA+B,GAC/B,8BAA8B,GAC9B,sBAAsB,GACtB,6BAA6B,GAC7B,4BAA4B,CAC/B,EACC,OAAO,GACP,QAAQ,GACR,wBAAwB,GACxB,sBAAsB,GACtB,2BAA2B,GAC3B,MAAM,GACN,+BAA+B,GAC/B,6BAA6B,GAC7B,oBAAoB,GACpB,2BAA2B,GAC3B,wBAAwB,GACxB,+BAA+B,GAC/B,8BAA8B,GAC9B,sBAAsB,GACtB,6BAA6B,GAC7B,4BAA4B,CAC/B,iBAuID;CACH;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"AbstractChart.d.ts","sourceRoot":"","sources":["../src/AbstractChart.tsx"],"names":[],"mappings":"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"}
@@ -146,7 +146,7 @@ var AbstractChart = /** @class */ (function (_super) {
146
146
  : height * verticalLabelsHeightPercentage -
147
147
  (basePosition / count) * i +
148
148
  paddingTop;
149
- return (<Text rotation={horizontalLabelRotation} origin={"".concat(x, ", ").concat(y)} key={"horizontal-label-".concat(i, "-").concat(yLabel)} x={x} textAnchor="end" y={y} {..._this.getPropsForLabels()} {..._this.getPropsForHorizontalLabels()}>
149
+ return (<Text transform={"rotate(".concat(horizontalLabelRotation, ", ").concat(x, ", ").concat(y, ")")} key={"horizontal-label-".concat(i, "-").concat(yLabel)} x={x} textAnchor="end" y={y} {..._this.getPropsForLabels()} {..._this.getPropsForHorizontalLabels()}>
150
150
  {yLabel}
151
151
  </Text>);
152
152
  });
@@ -171,7 +171,7 @@ var AbstractChart = /** @class */ (function (_super) {
171
171
  paddingTop +
172
172
  fontSize * 2 +
173
173
  xLabelsOffset;
174
- return (<Text origin={"".concat(x, ", ").concat(y)} rotation={verticalLabelRotation} key={"vertical-label-".concat(i, "-").concat(label)} x={x} y={y} textAnchor={verticalLabelRotation === 0 ? "middle" : "start"} {..._this.getPropsForLabels()} {..._this.getPropsForVerticalLabels()}>
174
+ return (<Text transform={"rotate(".concat(verticalLabelRotation, ", ").concat(x, ", ").concat(y, ")")} key={"vertical-label-".concat(i, "-").concat(label)} x={x} y={y} textAnchor={verticalLabelRotation === 0 ? "middle" : "start"} {..._this.getPropsForLabels()} {..._this.getPropsForVerticalLabels()}>
175
175
  {"".concat(formatXLabel(label)).concat(xAxisLabel)}
176
176
  </Text>);
177
177
  });
@@ -258,4 +258,4 @@ var AbstractChart = /** @class */ (function (_super) {
258
258
  return AbstractChart;
259
259
  }(Component));
260
260
  export default AbstractChart;
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RDaGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9BYnN0cmFjdENoYXJ0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFxQzFFLE1BQU0sQ0FBQyxJQUFNLGtDQUFrQyxHQUFHLElBQUksQ0FBQztBQUV2RCxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFFcEI7SUFHVSxpQ0FBbUU7SUFIN0U7O1FBSVUsYUFBTyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBRXRCLGtCQUFZLEdBQUcsVUFBQyxJQUFtQjtZQUFuQixxQkFBQSxFQUFBLFNBQW1CO1lBQzNDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQTVDLENBQTRDLENBQUMsQ0FBQztRQUM1RSxDQUFDLENBQUM7UUFFUSxtQkFBYSxHQUFHLFVBQUMsRUFBVTtZQUNuQyxPQUFPLG9CQUFhLEtBQUksQ0FBQyxPQUFPLGNBQUksRUFBRSxDQUFFLENBQUM7UUFDM0MsQ0FBQyxDQUFDO1FBRVEsb0JBQWMsR0FBRyxVQUFDLEVBQVU7WUFDcEMsT0FBTyxlQUFRLEtBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQUcsQ0FBQztRQUMzQyxDQUFDLENBQUM7UUFFRixnQkFBVSxHQUFHLFVBQUMsSUFBYztZQUMxQixJQUFNLE1BQU0sR0FBRyxLQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXZDLElBQUksTUFBTSxDQUFDLE1BQU0s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RUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQ2xCLGNBQWMsRUFDakI7SUFDSixDQUFDO0lBRUQsaURBQXlCLEdBQXpCO1FBQ1EsSUFBQSxLQUlGLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUh4Qiw4QkFBMkIsRUFBM0Isc0JBQXNCLG1CQUFHLEVBQUUsS0FBQSxFQUMzQixLQUFLLFdBQUEsRUFDTCxrQkFBa0IsRUFBbEIsVUFBVSxtQkFBRyxLQUFLLEtBQ00sQ0FBQztRQUMzQixrQkFDRSxJQUFJLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUNsQixzQkFBc0IsRUFDekI7SUFDSixDQUFDO0lBRUQsbURBQTJCLEdBQTNCO1FBQ1EsSUFBQSxLQUlGLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUh4QixnQ0FBNkIsRUFBN0Isd0JBQXdCLG1CQUFHLEVBQUUsS0FBQSxFQUM3QixLQUFLLFdBQUEsRUFDTCxrQkFBa0IsRUFBbEIsVUFBVSxtQkFBRyxLQUFLLEtBQ00sQ0FBQztRQUMzQixrQkFDRSxJQUFJLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUNsQix3QkFBd0IsRUFDM0I7SUFDSixDQUFDO0lBMlpILG9CQUFDO0FBQUQsQ0FBQyxBQTloQkQsQ0FHVSxTQUFTLEdBMmhCbEI7QUFFRCxlQUFlLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IERlZnMsIExpbmUsIExpbmVhckdyYWRpZW50LCBTdG9wLCBUZXh0IH0gZnJvbSBcInJlYWN0LW5hdGl2ZS1zdmdcIjtcblxuaW1wb3J0IHsgQ2hhcnRDb25maWcsIERhdGFzZXQsIFBhcnRpYWxCeSB9IGZyb20gXCIuL0hlbHBlclR5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWJzdHJhY3RDaGFydFByb3BzIHtcbiAgZnJvbVplcm8/OiBib29sZWFuO1xuICBmcm9tTnVtYmVyPzogbnVtYmVyO1xuICBjaGFydENvbmZpZz86IEFic3RyYWN0Q2hhcnRDb25maWc7XG4gIHlBeGlzTGFiZWw/OiBzdHJpbmc7XG4gIHlBeGlzU3VmZml4Pzogc3RyaW5nO1xuICB5TGFiZWxzT2Zmc2V0PzogbnVtYmVyO1xuICB5QXhpc0ludGVydmFsPzogbnVtYmVyO1xuICB4QXhpc0xhYmVsPzogc3RyaW5nO1xuICB4TGFiZWxzT2Zmc2V0PzogbnVtYmVyO1xuICBoaWRlUG9pbnRzQXRJbmRleD86IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFic3RyYWN0Q2hhcnRDb25maWcgZXh0ZW5kcyBDaGFydENvbmZpZyB7XG4gIGNvdW50PzogbnVtYmVyO1xuICBkYXRhPzogRGF0YXNldFtdO1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICBwYWRkaW5nVG9wPzogbnVtYmVyO1xuICBwYWRkaW5nUmlnaHQ/OiBudW1iZXI7XG4gIGhvcml6b250YWxMYWJlbFJvdGF0aW9uPzogbnVtYmVyO1xuICBmb3JtYXRZTGFiZWw/OiAoeUxhYmVsOiBzdHJpbmcpID0+IHN0cmluZztcbiAgbGFiZWxzPzogc3RyaW5nW107XG4gIGhvcml6b250YWxPZmZzZXQ/OiBudW1iZXI7XG4gIHN0YWNrZWRCYXI/OiBib29sZWFuO1xuICB2ZXJ0aWNhbExhYmVsUm90YXRpb24/OiBudW1iZXI7XG4gIGZvcm1hdFhMYWJlbD86ICh4TGFiZWw6IHN0cmluZykgPT4gc3RyaW5nO1xuICB2ZXJ0aWNhbExhYmVsc0hlaWdodFBlcmNlbnRhZ2U/OiBudW1iZXI7XG4gIGZvcm1hdFRvcEJhclZhbHVlPzogKHRvcEJhclZhbHVlOiBudW1iZXIpID0+IHN0cmluZyB8IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgQWJzdHJhY3RDaGFydFN0YXRlID0ge307XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1hfTEFCRUxTX0hFSUdIVF9QRVJDRU5UQUdFID0gMC43NTtcblxubGV0IG5leHRDaGFydElkID0gMDtcblxuY2xhc3MgQWJzdHJhY3RDaGFydDxcbiAgSVByb3BzIGV4dGVuZHMgQWJzdHJhY3RDaGFydFByb3BzLFxuICBJU3RhdGUgZXh0ZW5kcyBBYnN0cmFjdENoYXJ0U3RhdGVcbj4gZXh0ZW5kcyBDb21wb25lbnQ8QWJzdHJhY3RDaGFydFByb3BzICYgSVByb3BzLCBBYnN0cmFjdENoYXJ0U3RhdGUgJiBJU3RhdGU+IHtcbiAgcHJpdmF0ZSBjaGFydElkID0gbmV4dENoYXJ0SWQrKztcblxuICBwcm90ZWN0ZWQgZ2V0VmFsaWREYXRhID0gKGRhdGE6IG51bWJlcltdID0gW10pID0+IHtcbiAgICByZXR1cm4gZGF0YS5maWx0ZXIodmFsdWUgPT4gdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiICYmIGlzRmluaXRlKHZhbHVlKSk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGdldEdyYWRpZW50SWQgPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBgY2hhcnQta2l0LSR7dGhpcy5jaGFydElkfS0ke2lkfWA7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGdldEdyYWRpZW50VXJsID0gKGlkOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gYHVybCgjJHt0aGlzLmdldEdyYWRpZW50SWQoaWQpfSlgO1xuICB9O1xuXG4gIGNhbGNTY2FsZXIgPSAoZGF0YTogbnVtYmVyW10pID0+IHtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldFZhbGlkRGF0YShkYXRhKTtcblxuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5mcm9tWmVybyAmJiB0aGlzLnByb3BzLmZyb21OdW1iZXIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIE1hdGgubWF4KC4uLnZhbHVlcywgdGhpcy5wcm9wcy5mcm9tTnVtYmVyKSAtIE1hdGgubWluKC4uLnZhbHVlcywgMCkgfHwgMVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMuZnJvbVplcm8pIHtcbiAgICAgIHJldHVybiBNYXRoLm1heCguLi52YWx1ZXMsIDApIC0gTWF0aC5taW4oLi4udmFsdWVzLCAwKSB8fCAxO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy5mcm9tTnVtYmVyKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBNYXRoLm1heCguLi52YWx1ZXMsIHRoaXMucHJvcHMuZnJvbU51bWJlcikgLVxuICAgICAgICAgIE1hdGgubWluKC4uLnZhbHVlcywgdGhpcy5wcm9wcy5mcm9tTnVtYmVyKSB8fCAxXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gTWF0aC5tYXgoLi4udmFsdWVzKSAtIE1hdGgubWluKC4uLnZhbHVlcykgfHwgMTtcbiAgICB9XG4gIH07XG5cbiAgY2FsY0Jhc2VIZWlnaHQgPSAoZGF0YTogbnVtYmVyW10sIGhlaWdodDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5nZXRWYWxpZERhdGEoZGF0YSk7XG5cbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGhlaWdodDtcbiAgICB9XG5cbiAgICBjb25zdCBtaW4gPSBNYXRoLm1pbiguLi52YWx1ZXMpO1xuICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KC4uLnZhbHVlcyk7XG4gICAgaWYgKG1pbiA+PSAwICYmIG1heCA+PSAwKSB7XG4gICAgICByZXR1cm4gaGVpZ2h0O1xuICAgIH0gZWxzZSBpZiAobWluIDwgMCAmJiBtYXggPD0gMCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSBlbHNlIGlmIChtaW4gPCAwICYmIG1heCA+IDApIHtcbiAgICAgIHJldHVybiAoaGVpZ2h0ICogbWF4KSAvIHRoaXMuY2FsY1NjYWxlcih2YWx1ZXMpO1xuICAgIH1cbiAgfTtcblxuICBjYWxjSGVpZ2h0ID0gKHZhbDogbnVtYmVyLCBkYXRhOiBudW1iZXJbXSwgaGVpZ2h0OiBudW1iZXIpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbCAhPT0gXCJudW1iZXJcIiB8fCAhaXNGaW5pdGUodmFsKSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5nZXRWYWxpZERhdGEoZGF0YSk7XG5cbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3QgbWF4ID0gTWF0aC5tYXgoLi4udmFsdWVzKTtcbiAgICBjb25zdCBtaW4gPSBNYXRoLm1pbiguLi52YWx1ZXMpO1xuXG4gICAgaWYgKG1pbiA8IDAgJiYgbWF4ID4gMCkge1xuICAgICAgcmV0dXJuIGhlaWdodCAqICh2YWwgLyB0aGlzLmNhbGNTY2FsZXIodmFsdWVzKSk7XG4gICAgfSBlbHNlIGlmIChtaW4gPj0gMCAmJiBtYXggPj0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuZnJvbVplcm9cbiAgICAgICAgPyBoZWlnaHQgKiAodmFsIC8gdGhpcy5jYWxjU2NhbGVyKHZhbHVlcykpXG4gICAgICAgIDogaGVpZ2h0ICogKCh2YWwgLSBtaW4pIC8gdGhpcy5jYWxjU2NhbGVyKHZhbHVlcykpO1xuICAgIH0gZWxzZSBpZiAobWluIDwgMCAmJiBtYXggPD0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuZnJvbVplcm9cbiAgICAgICAgPyBoZWlnaHQgKiAodmFsIC8gdGhpcy5jYWxjU2NhbGVyKHZhbHVlcykpXG4gICAgICAgIDogaGVpZ2h0ICogKCh2YWwgLSBtYXgpIC8gdGhpcy5jYWxjU2NhbGVyKHZhbHVlcykpO1xuICAgIH1cbiAgfTtcblxuICBnZXRQcm9wc0ZvckJhY2tncm91bmRMaW5lcygpIHtcbiAgICBjb25zdCB7IHByb3BzRm9yQmFja2dyb3VuZExpbmVzID0ge30gfSA9IHRoaXMucHJvcHMuY2hhcnRDb25maWc7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0cm9rZTogdGhpcy5wcm9wcy5jaGFydENvbmZpZy5jb2xvcigwLjIpLFxuICAgICAgc3Ryb2tlRGFzaGFycmF5OiBcIjUsIDEwXCIsXG4gICAgICBzdHJva2VXaWR0aDogMSxcbiAgICAgIC4uLnByb3BzRm9yQmFja2dyb3VuZExpbmVzXG4gICAgfTtcbiAgfVxuXG4gIGdldFByb3BzRm9yTGFiZWxzKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHByb3BzRm9yTGFiZWxzID0ge30sXG4gICAgICBjb2xvcixcbiAgICAgIGxhYmVsQ29sb3IgPSBjb2xvclxuICAgIH0gPSB0aGlzLnByb3BzLmNoYXJ0Q29uZmlnO1xuICAgIHJldHVybiB7XG4gICAgICBmb250U2l6ZTogMTIsXG4gICAgICBmaWxsOiBsYWJlbENvbG9yKDAuOCksXG4gICAgICAuLi5wcm9wc0ZvckxhYmVsc1xuICAgIH07XG4gIH1cblxuICBnZXRQcm9wc0ZvclZlcnRpY2FsTGFiZWxzKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHByb3BzRm9yVmVydGljYWxMYWJlbHMgPSB7fSxcbiAgICAgIGNvbG9yLFxuICAgICAgbGFiZWxDb2xvciA9IGNvbG9yXG4gICAgfSA9IHRoaXMucHJvcHMuY2hhcnRDb25maWc7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGw6IGxhYmVsQ29sb3IoMC44KSxcbiAgICAgIC4uLnByb3BzRm9yVmVydGljYWxMYWJlbHNcbiAgICB9O1xuICB9XG5cbiAgZ2V0UHJvcHNGb3JIb3Jpem9udGFsTGFiZWxzKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHByb3BzRm9ySG9yaXpvbnRhbExhYmVscyA9IHt9LFxuICAgICAgY29sb3IsXG4gICAgICBsYWJlbENvbG9yID0gY29sb3JcbiAgICB9ID0gdGhpcy5wcm9wcy5jaGFydENvbmZpZztcbiAgICByZXR1cm4ge1xuICAgICAgZmlsbDogbGFiZWxDb2xvcigwLjgpLFxuICAgICAgLi4ucHJvcHNGb3JIb3Jpem9udGFsTGFiZWxzXG4gICAgfTtcbiAgfVxuXG4gIHJlbmRlckhvcml6b250YWxMaW5lcyA9IGNvbmZpZyA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgY291bnQsXG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIHBhZGRpbmdUb3AsXG4gICAgICBwYWRkaW5nUmlnaHQsXG4gICAgICB2ZXJ0aWNhbExhYmVsc0hlaWdodFBlcmNlbnRhZ2UgPSBERUZBVUxUX1hfTEFCRUxTX0hFSUdIVF9QRVJDRU5UQUdFXG4gICAgfSA9IGNvbmZpZztcbiAgICBjb25zdCBiYXNlUG9zaXRpb24gPSBoZWlnaHQgKiB2ZXJ0aWNhbExhYmVsc0hlaWdodFBlcmNlbnRhZ2U7XG5cbiAgICByZXR1cm4gWy4uLm5ldyBBcnJheShjb3VudCArIDEpXS5tYXAoKF8sIGkpID0+IHtcbiAgICAgIGNvbnN0IHkgPSAoYmFzZVBvc2l0aW9uIC8gY291bnQpICogaSArIHBhZGRpbmdUb3A7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TGluZVxuICAgICAgICAgIGtleT17YGhvcml6b250YWwtbGluZS0ke2l9YH1cbiAgICAgICAgICB4MT17cGFkZGluZ1JpZ2h0fVxuICAgICAgICAgIHkxPXt5fVxuICAgICAgICAgIHgyPXt3aWR0aH1cbiAgICAgICAgICB5Mj17eX1cbiAgICAgICAgICB7Li4udGhpcy5nZXRQcm9wc0ZvckJhY2tncm91bmRMaW5lcygpfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9KTtcbiAgfTtcblxuICByZW5kZXJIb3Jpem9udGFsTGluZSA9IGNvbmZpZyA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICBwYWRkaW5nVG9wLFxuICAgICAgcGFkZGluZ1JpZ2h0LFxuICAgICAgdmVydGljYWxMYWJlbHNIZWlnaHRQZXJjZW50YWdlID0gREVGQVVMVF9YX0xBQkVMU19IRUlHSFRfUEVSQ0VOVEFHRVxuICAgIH0gPSBjb25maWc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxMaW5lXG4gICAgICAgIGtleT1cImhvcml6b250YWwtbGluZVwiXG4gICAgICAgIHgxPXtwYWRkaW5nUmlnaHR9XG4gICAgICAgIHkxPXtoZWlnaHQgKiB2ZXJ0aWNhbExhYmVsc0hlaWdodFBlcmNlbnRhZ2UgKyBwYWRkaW5nVG9wfVxuICAgICAgICB4Mj17d2lkdGh9XG4gICAgICAgIHkyPXtoZWlnaHQgKiB2ZXJ0aWNhbExhYmVsc0hlaWdodFBlcmNlbnRhZ2UgKyBwYWRkaW5nVG9wfVxuICAgICAgICB7Li4udGhpcy5nZXRQcm9wc0ZvckJhY2tncm91bmRMaW5lcygpfVxuICAgICAgLz5cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlckhvcml6b250YWxMYWJlbHMgPSAoXG4gICAgY29uZmlnOiBPbWl0PEFic3RyYWN0Q2hhcnRDb25maWcsIFwiZGF0YVwiPiAmIHsgZGF0YTogbnVtYmVyW10gfVxuICApID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBjb3VudCxcbiAgICAgIGRhdGEsXG4gICAgICBoZWlnaHQsXG4gICAgICBwYWRkaW5nVG9wLFxuICAgICAgcGFkZGluZ1JpZ2h0LFxuICAgICAgaG9yaXpvbnRhbExhYmVsUm90YXRpb24gPSAwLFxuICAgICAgZGVjaW1hbFBsYWNlcyA9IDIsXG4gICAgICBmb3JtYXRZTGFiZWwgPSAoeUxhYmVsOiBzdHJpbmcpID0+IHlMYWJlbCxcbiAgICAgIHZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZSA9IERFRkFVTFRfWF9MQUJFTFNfSEVJR0hUX1BFUkNFTlRBR0VcbiAgICB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZ2V0VmFsaWREYXRhKGRhdGEpO1xuICAgIGNvbnN0IGxhYmVsRGF0YSA9IHZhbHVlcy5sZW5ndGggPT09IDAgPyBbMF0gOiB2YWx1ZXM7XG5cbiAgICBjb25zdCB7XG4gICAgICB5QXhpc0xhYmVsID0gXCJcIixcbiAgICAgIHlBeGlzU3VmZml4ID0gXCJcIixcbiAgICAgIHlMYWJlbHNPZmZzZXQgPSAxMlxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIHJldHVybiBuZXcgQXJyYXkoY291bnQgPT09IDEgPyAxIDogY291bnQgKyAxKS5maWxsKDEpLm1hcCgoXywgaSkgPT4ge1xuICAgICAgbGV0IHlMYWJlbCA9IFN0cmluZyhpICogY291bnQpO1xuXG4gICAgICBpZiAoY291bnQgPT09IDEpIHtcbiAgICAgICAgeUxhYmVsID0gYCR7eUF4aXNMYWJlbH0ke2Zvcm1hdFlMYWJlbChcbiAgICAgICAgICBsYWJlbERhdGFbMF0udG9GaXhlZChkZWNpbWFsUGxhY2VzKVxuICAgICAgICApfSR7eUF4aXNTdWZmaXh9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5wcm9wcy5mcm9tWmVyb1xuICAgICAgICAgID8gKHRoaXMuY2FsY1NjYWxlcihsYWJlbERhdGEpIC8gY291bnQpICogaSArIE1hdGgubWluKC4uLmxhYmVsRGF0YSwgMClcbiAgICAgICAgICA6ICh0aGlzLmNhbGNTY2FsZXIobGFiZWxEYXRhKSAvIGNvdW50KSAqIGkgKyBNYXRoLm1pbiguLi5sYWJlbERhdGEpO1xuICAgICAgICB5TGFiZWwgPSBgJHt5QXhpc0xhYmVsfSR7Zm9ybWF0WUxhYmVsKFxuICAgICAgICAgIGxhYmVsLnRvRml4ZWQoZGVjaW1hbFBsYWNlcylcbiAgICAgICAgKX0ke3lBeGlzU3VmZml4fWA7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJhc2VQb3NpdGlvbiA9IGhlaWdodCAqIHZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZTtcbiAgICAgIGNvbnN0IHggPSBwYWRkaW5nUmlnaHQgLSB5TGFiZWxzT2Zmc2V0O1xuICAgICAgY29uc3QgeSA9XG4gICAgICAgIGNvdW50ID09PSAxICYmIHRoaXMucHJvcHMuZnJvbVplcm9cbiAgICAgICAgICA/IHBhZGRpbmdUb3AgKyA0XG4gICAgICAgICAgOiBoZWlnaHQgKiB2ZXJ0aWNhbExhYmVsc0hlaWdodFBlcmNlbnRhZ2UgLVxuICAgICAgICAgICAgKGJhc2VQb3NpdGlvbiAvIGNvdW50KSAqIGkgK1xuICAgICAgICAgICAgcGFkZGluZ1RvcDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxUZXh0XG4gICAgICAgICAgcm90YXRpb249e2hvcml6b250YWxMYWJlbFJvdGF0aW9ufVxuICAgICAgICAgIG9yaWdpbj17YCR7eH0sICR7eX1gfVxuICAgICAgICAgIGtleT17YGhvcml6b250YWwtbGFiZWwtJHtpfS0ke3lMYWJlbH1gfVxuICAgICAgICAgIHg9e3h9XG4gICAgICAgICAgdGV4dEFuY2hvcj1cImVuZFwiXG4gICAgICAgICAgeT17eX1cbiAgICAgICAgICB7Li4udGhpcy5nZXRQcm9wc0ZvckxhYmVscygpfVxuICAgICAgICAgIHsuLi50aGlzLmdldFByb3BzRm9ySG9yaXpvbnRhbExhYmVscygpfVxuICAgICAgICA+XG4gICAgICAgICAge3lMYWJlbH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgKTtcbiAgICB9KTtcbiAgfTtcblxuICByZW5kZXJWZXJ0aWNhbExhYmVscyA9ICh7XG4gICAgbGFiZWxzID0gW10sXG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIHBhZGRpbmdSaWdodCxcbiAgICBwYWRkaW5nVG9wLFxuICAgIGhvcml6b250YWxPZmZzZXQgPSAwLFxuICAgIHN0YWNrZWRCYXIgPSBmYWxzZSxcbiAgICB2ZXJ0aWNhbExhYmVsUm90YXRpb24gPSAwLFxuICAgIGZvcm1hdFhMYWJlbCA9IHhMYWJlbCA9PiB4TGFiZWwsXG4gICAgdmVydGljYWxMYWJlbHNIZWlnaHRQZXJjZW50YWdlID0gREVGQVVMVF9YX0xBQkVMU19IRUlHSFRfUEVSQ0VOVEFHRVxuICB9OiBQaWNrPFxuICAgIEFic3RyYWN0Q2hhcnRDb25maWcsXG4gICAgfCBcImxhYmVsc1wiXG4gICAgfCBcIndpZHRoXCJcbiAgICB8IFwiaGVpZ2h0XCJcbiAgICB8IFwicGFkZGluZ1JpZ2h0XCJcbiAgICB8IFwicGFkZGluZ1RvcFwiXG4gICAgfCBcImhvcml6b250YWxPZmZzZXRcIlxuICAgIHwgXCJzdGFja2VkQmFyXCJcbiAgICB8IFwidmVydGljYWxMYWJlbFJvdGF0aW9uXCJcbiAgICB8IFwiZm9ybWF0WExhYmVsXCJcbiAgICB8IFwidmVydGljYWxMYWJlbHNIZWlnaHRQZXJjZW50YWdlXCJcbiAgPikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHhBeGlzTGFiZWwgPSBcIlwiLFxuICAgICAgeExhYmVsc09mZnNldCA9IDAsXG4gICAgICBoaWRlUG9pbnRzQXRJbmRleCA9IFtdXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBmb250U2l6ZSA9IDEyO1xuXG4gICAgbGV0IGZhYyA9IDE7XG4gICAgaWYgKHN0YWNrZWRCYXIpIHtcbiAgICAgIGZhYyA9IDAuNzE7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhYmVscy5tYXAoKGxhYmVsLCBpKSA9PiB7XG4gICAgICBpZiAoaGlkZVBvaW50c0F0SW5kZXguaW5jbHVkZXMoaSkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHggPVxuICAgICAgICAoKCh3aWR0aCAtIHBhZGRpbmdSaWdodCkgLyBsYWJlbHMubGVuZ3RoKSAqIGkgK1xuICAgICAgICAgIHBhZGRpbmdSaWdodCArXG4gICAgICAgICAgaG9yaXpvbnRhbE9mZnNldCkgKlxuICAgICAgICBmYWM7XG5cbiAgICAgIGNvbnN0IHkgPVxuICAgICAgICBoZWlnaHQgKiB2ZXJ0aWNhbExhYmVsc0hlaWdodFBlcmNlbnRhZ2UgK1xuICAgICAgICBwYWRkaW5nVG9wICtcbiAgICAgICAgZm9udFNpemUgKiAyICtcbiAgICAgICAgeExhYmVsc09mZnNldDtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRleHRcbiAgICAgICAgICBvcmlnaW49e2Ake3h9LCAke3l9YH1cbiAgICAgICAgICByb3RhdGlvbj17dmVydGljYWxMYWJlbFJvdGF0aW9ufVxuICAgICAgICAgIGtleT17YHZlcnRpY2FsLWxhYmVsLSR7aX0tJHtsYWJlbH1gfVxuICAgICAgICAgIHg9e3h9XG4gICAgICAgICAgeT17eX1cbiAgICAgICAgICB0ZXh0QW5jaG9yPXt2ZXJ0aWNhbExhYmVsUm90YXRpb24gPT09IDAgPyBcIm1pZGRsZVwiIDogXCJzdGFydFwifVxuICAgICAgICAgIHsuLi50aGlzLmdldFByb3BzRm9yTGFiZWxzKCl9XG4gICAgICAgICAgey4uLnRoaXMuZ2V0UHJvcHNGb3JWZXJ0aWNhbExhYmVscygpfVxuICAgICAgICA+XG4gICAgICAgICAge2Ake2Zvcm1hdFhMYWJlbChsYWJlbCl9JHt4QXhpc0xhYmVsfWB9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICk7XG4gICAgfSk7XG4gIH07XG5cbiAgcmVuZGVyVmVydGljYWxMaW5lcyA9ICh7XG4gICAgZGF0YSxcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgcGFkZGluZ1RvcCxcbiAgICBwYWRkaW5nUmlnaHQsXG4gICAgdmVydGljYWxMYWJlbHNIZWlnaHRQZXJjZW50YWdlID0gREVGQVVMVF9YX0xBQkVMU19IRUlHSFRfUEVSQ0VOVEFHRVxuICB9OiBPbWl0PFxuICAgIFBpY2s8XG4gICAgICBBYnN0cmFjdENoYXJ0Q29uZmlnLFxuICAgICAgfCBcImRhdGFcIlxuICAgICAgfCBcIndpZHRoXCJcbiAgICAgIHwgXCJoZWlnaHRcIlxuICAgICAgfCBcInBhZGRpbmdSaWdodFwiXG4gICAgICB8IFwicGFkZGluZ1RvcFwiXG4gICAgICB8IFwidmVydGljYWxMYWJlbHNIZWlnaHRQZXJjZW50YWdlXCJcbiAgICA+LFxuICAgIFwiZGF0YVwiXG4gID4gJiB7IGRhdGE6IG51bWJlcltdIH0pID0+IHtcbiAgICBjb25zdCB7IHlBeGlzSW50ZXJ2YWwgPSAxIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIFsuLi5uZXcgQXJyYXkoTWF0aC5jZWlsKGRhdGEubGVuZ3RoIC8geUF4aXNJbnRlcnZhbCkpXS5tYXAoXG4gICAgICAoXywgaSkgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxMaW5lXG4gICAgICAgICAgICBrZXk9e2B2ZXJ0aWNhbC1saW5lLSR7aX1gfVxuICAgICAgICAgICAgeDE9e01hdGguZmxvb3IoXG4gICAgICAgICAgICAgICgod2lkdGggLSBwYWRkaW5nUmlnaHQpIC8gKGRhdGEubGVuZ3RoIC8geUF4aXNJbnRlcnZhbCkpICogaSArXG4gICAgICAgICAgICAgICAgcGFkZGluZ1JpZ2h0XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgeTE9ezB9XG4gICAgICAgICAgICB4Mj17TWF0aC5mbG9vcihcbiAgICAgICAgICAgICAgKCh3aWR0aCAtIHBhZGRpbmdSaWdodCkgLyAoZGF0YS5sZW5ndGggLyB5QXhpc0ludGVydmFsKSkgKiBpICtcbiAgICAgICAgICAgICAgICBwYWRkaW5nUmlnaHRcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB5Mj17aGVpZ2h0ICogdmVydGljYWxMYWJlbHNIZWlnaHRQZXJjZW50YWdlICsgcGFkZGluZ1RvcH1cbiAgICAgICAgICAgIHsuLi50aGlzLmdldFByb3BzRm9yQmFja2dyb3VuZExpbmVzKCl9XG4gICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclZlcnRpY2FsTGluZSA9ICh7XG4gICAgaGVpZ2h0LFxuICAgIHBhZGRpbmdUb3AsXG4gICAgcGFkZGluZ1JpZ2h0LFxuICAgIHZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZSA9IERFRkFVTFRfWF9MQUJFTFNfSEVJR0hUX1BFUkNFTlRBR0VcbiAgfTogUGljazxcbiAgICBBYnN0cmFjdENoYXJ0Q29uZmlnLFxuICAgIFwiaGVpZ2h0XCIgfCBcInBhZGRpbmdSaWdodFwiIHwgXCJwYWRkaW5nVG9wXCIgfCBcInZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZVwiXG4gID4pID0+IChcbiAgICA8TGluZVxuICAgICAga2V5PVwidmVydGljYWwtbGluZVwiXG4gICAgICB4MT17TWF0aC5mbG9vcihwYWRkaW5nUmlnaHQpfVxuICAgICAgeTE9ezB9XG4gICAgICB4Mj17TWF0aC5mbG9vcihwYWRkaW5nUmlnaHQpfVxuICAgICAgeTI9e2hlaWdodCAqIHZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZSArIHBhZGRpbmdUb3B9XG4gICAgICB7Li4udGhpcy5nZXRQcm9wc0ZvckJhY2tncm91bmRMaW5lcygpfVxuICAgIC8+XG4gICk7XG5cbiAgcmVuZGVyRGVmcyA9IChcbiAgICBjb25maWc6IFBpY2s8XG4gICAgICBQYXJ0aWFsQnk8XG4gICAgICAgIEFic3RyYWN0Q2hhcnRDb25maWcsXG4gICAgICAgIHwgXCJiYWNrZ3JvdW5kR3JhZGllbnRGcm9tT3BhY2l0eVwiXG4gICAgICAgIHwgXCJiYWNrZ3JvdW5kR3JhZGllbnRUb09wYWNpdHlcIlxuICAgICAgICB8IFwiZmlsbFNoYWRvd0dyYWRpZW50XCJcbiAgICAgICAgfCBcImZpbGxTaGFkb3dHcmFkaWVudE9wYWNpdHlcIlxuICAgICAgICB8IFwiZmlsbFNoYWRvd0dyYWRpZW50RnJvbVwiXG4gICAgICAgIHwgXCJmaWxsU2hhZG93R3JhZGllbnRGcm9tT3BhY2l0eVwiXG4gICAgICAgIHwgXCJmaWxsU2hhZG93R3JhZGllbnRGcm9tT2Zmc2V0XCJcbiAgICAgICAgfCBcImZpbGxTaGFkb3dHcmFkaWVudFRvXCJcbiAgICAgICAgfCBcImZpbGxTaGFkb3dHcmFkaWVudFRvT3BhY2l0eVwiXG4gICAgICAgIHwgXCJmaWxsU2hhZG93R3JhZGllbnRUb09mZnNldFwiXG4gICAgICA+LFxuICAgICAgfCBcIndpZHRoXCJcbiAgICAgIHwgXCJoZWlnaHRcIlxuICAgICAgfCBcImJhY2tncm91bmRHcmFkaWVudEZyb21cIlxuICAgICAgfCBcImJhY2tncm91bmRHcmFkaWVudFRvXCJcbiAgICAgIHwgXCJ1c2VTaGFkb3dDb2xvckZyb21EYXRhc2V0XCJcbiAgICAgIHwgXCJkYXRhXCJcbiAgICAgIHwgXCJiYWNrZ3JvdW5kR3JhZGllbnRGcm9tT3BhY2l0eVwiXG4gICAgICB8IFwiYmFja2dyb3VuZEdyYWRpZW50VG9PcGFjaXR5XCJcbiAgICAgIHwgXCJmaWxsU2hhZG93R3JhZGllbnRcIlxuICAgICAgfCBcImZpbGxTaGFkb3dHcmFkaWVudE9wYWNpdHlcIlxuICAgICAgfCBcImZpbGxTaGFkb3dHcmFkaWVudEZyb21cIlxuICAgICAgfCBcImZpbGxTaGFkb3dHcmFkaWVudEZyb21PcGFjaXR5XCJcbiAgICAgIHwgXCJmaWxsU2hhZG93R3JhZGllbnRGcm9tT2Zmc2V0XCJcbiAgICAgIHwgXCJmaWxsU2hhZG93R3JhZGllbnRUb1wiXG4gICAgICB8IFwiZmlsbFNoYWRvd0dyYWRpZW50VG9PcGFjaXR5XCJcbiAgICAgIHwgXCJmaWxsU2hhZG93R3JhZGllbnRUb09mZnNldFwiXG4gICAgPlxuICApID0+IHtcbiAgICBjb25zdCB7XG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIGJhY2tncm91bmRHcmFkaWVudEZyb20sXG4gICAgICBiYWNrZ3JvdW5kR3JhZGllbnRUbyxcbiAgICAgIHVzZVNoYWRvd0NvbG9yRnJvbURhdGFzZXQsXG4gICAgICBkYXRhXG4gICAgfSA9IGNvbmZpZztcblxuICAgIGNvbnN0IGZyb21PcGFjaXR5ID0gY29uZmlnLmhhc093blByb3BlcnR5KFwiYmFja2dyb3VuZEdyYWRpZW50RnJvbU9wYWNpdHlcIilcbiAgICAgID8gY29uZmlnLmJhY2tncm91bmRHcmFkaWVudEZyb21PcGFjaXR5XG4gICAgICA6IDEuMDtcbiAgICBjb25zdCB0b09wYWNpdHkgPSBjb25maWcuaGFzT3duUHJvcGVydHkoXCJiYWNrZ3JvdW5kR3JhZGllbnRUb09wYWNpdHlcIilcbiAgICAgID8gY29uZmlnLmJhY2tncm91bmRHcmFkaWVudFRvT3BhY2l0eVxuICAgICAgOiAxLjA7XG5cbiAgICBjb25zdCBmaWxsU2hhZG93R3JhZGllbnQgPSBjb25maWcuaGFzT3duUHJvcGVydHkoXCJmaWxsU2hhZG93R3JhZGllbnRcIilcbiAgICAgID8gY29uZmlnLmZpbGxTaGFkb3dHcmFkaWVudFxuICAgICAgOiB0aGlzLnByb3BzLmNoYXJ0Q29uZmlnLmNvbG9yKDEuMCk7XG5cbiAgICBjb25zdCBmaWxsU2hhZG93R3JhZGllbnRPcGFjaXR5ID0gY29uZmlnLmhhc093blByb3BlcnR5KFxuICAgICAgXCJmaWxsU2hhZG93R3JhZGllbnRPcGFjaXR5XCJcbiAgICApXG4gICAgICA/IGNvbmZpZy5maWxsU2hhZG93R3JhZGllbnRPcGFjaXR5XG4gICAgICA6IDAuMTtcblxuICAgIGNvbnN0IGZpbGxTaGFkb3dHcmFkaWVudEZyb20gPSBjb25maWcuaGFzT3duUHJvcGVydHkoXG4gICAgICBcImZpbGxTaGFkb3dHcmFkaWVudEZyb21cIlxuICAgIClcbiAgICAgID8gY29uZmlnLmZpbGxTaGFkb3dHcmFkaWVudEZyb21cbiAgICAgIDogZmlsbFNoYWRvd0dyYWRpZW50O1xuXG4gICAgY29uc3QgZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9wYWNpdHkgPSBjb25maWcuaGFzT3duUHJvcGVydHkoXG4gICAgICBcImZpbGxTaGFkb3dHcmFkaWVudEZyb21PcGFjaXR5XCJcbiAgICApXG4gICAgICA/IGNvbmZpZy5maWxsU2hhZG93R3JhZGllbnRGcm9tT3BhY2l0eVxuICAgICAgOiBmaWxsU2hhZG93R3JhZGllbnRPcGFjaXR5O1xuXG4gICAgY29uc3QgZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9mZnNldCA9IGNvbmZpZy5oYXNPd25Qcm9wZXJ0eShcbiAgICAgIFwiZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9mZnNldFwiXG4gICAgKVxuICAgICAgPyBjb25maWcuZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9mZnNldFxuICAgICAgOiAwO1xuXG4gICAgY29uc3QgZmlsbFNoYWRvd0dyYWRpZW50VG8gPSBjb25maWcuaGFzT3duUHJvcGVydHkoXCJmaWxsU2hhZG93R3JhZGllbnRUb1wiKVxuICAgICAgPyBjb25maWcuZmlsbFNoYWRvd0dyYWRpZW50VG9cbiAgICAgIDogdGhpcy5wcm9wcy5jaGFydENvbmZpZy5jb2xvcigxLjApO1xuXG4gICAgY29uc3QgZmlsbFNoYWRvd0dyYWRpZW50VG9PcGFjaXR5ID0gY29uZmlnLmhhc093blByb3BlcnR5KFxuICAgICAgXCJmaWxsU2hhZG93R3JhZGllbnRUb09wYWNpdHlcIlxuICAgIClcbiAgICAgID8gY29uZmlnLmZpbGxTaGFkb3dHcmFkaWVudFRvT3BhY2l0eVxuICAgICAgOiAwLjE7XG5cbiAgICBjb25zdCBmaWxsU2hhZG93R3JhZGllbnRUb09mZnNldCA9IGNvbmZpZy5oYXNPd25Qcm9wZXJ0eShcbiAgICAgIFwiZmlsbFNoYWRvd0dyYWRpZW50VG9PZmZzZXRcIlxuICAgIClcbiAgICAgID8gY29uZmlnLmZpbGxTaGFkb3dHcmFkaWVudFRvT2Zmc2V0XG4gICAgICA6IDE7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERlZnM+XG4gICAgICAgIDxMaW5lYXJHcmFkaWVudFxuICAgICAgICAgIGlkPXt0aGlzLmdldEdyYWRpZW50SWQoXCJiYWNrZ3JvdW5kR3JhZGllbnRcIil9XG4gICAgICAgICAgeDE9ezB9XG4gICAgICAgICAgeTE9e2hlaWdodH1cbiAgICAgICAgICB4Mj17d2lkdGh9XG4gICAgICAgICAgeTI9ezB9XG4gICAgICAgICAgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdG9wXG4gICAgICAgICAgICBvZmZzZXQ9XCIwXCJcbiAgICAgICAgICAgIHN0b3BDb2xvcj17YmFja2dyb3VuZEdyYWRpZW50RnJvbX1cbiAgICAgICAgICAgIHN0b3BPcGFjaXR5PXtmcm9tT3BhY2l0eX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdG9wXG4gICAgICAgICAgICBvZmZzZXQ9XCIxXCJcbiAgICAgICAgICAgIHN0b3BDb2xvcj17YmFja2dyb3VuZEdyYWRpZW50VG99XG4gICAgICAgICAgICBzdG9wT3BhY2l0eT17dG9PcGFjaXR5fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvTGluZWFyR3JhZGllbnQ+XG4gICAgICAgIHt1c2VTaGFkb3dDb2xvckZyb21EYXRhc2V0ICYmIGRhdGEgPyAoXG4gICAgICAgICAgZGF0YS5tYXAoKGRhdGFzZXQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8TGluZWFyR3JhZGllbnRcbiAgICAgICAgICAgICAgaWQ9e3RoaXMuZ2V0R3JhZGllbnRJZChgZmlsbFNoYWRvd0dyYWRpZW50RnJvbV8ke2luZGV4fWApfVxuICAgICAgICAgICAgICBrZXk9e2Ake2luZGV4fWB9XG4gICAgICAgICAgICAgIHgxPXswfVxuICAgICAgICAgICAgICB5MT17MH1cbiAgICAgICAgICAgICAgeDI9ezB9XG4gICAgICAgICAgICAgIHkyPXtoZWlnaHR9XG4gICAgICAgICAgICAgIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdG9wXG4gICAgICAgICAgICAgICAgb2Zmc2V0PXtmaWxsU2hhZG93R3JhZGllbnRGcm9tT2Zmc2V0fVxuICAgICAgICAgICAgICAgIHN0b3BDb2xvcj17XG4gICAgICAgICAgICAgICAgICBkYXRhc2V0LmNvbG9yID8gZGF0YXNldC5jb2xvcigxLjApIDogZmlsbFNoYWRvd0dyYWRpZW50RnJvbVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdG9wT3BhY2l0eT17ZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9wYWNpdHl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxTdG9wXG4gICAgICAgICAgICAgICAgb2Zmc2V0PXtmaWxsU2hhZG93R3JhZGllbnRUb09mZnNldH1cbiAgICAgICAgICAgICAgICBzdG9wQ29sb3I9e1xuICAgICAgICAgICAgICAgICAgZGF0YXNldC5jb2xvclxuICAgICAgICAgICAgICAgICAgICA/IGRhdGFzZXQuY29sb3IoZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9wYWNpdHkpXG4gICAgICAgICAgICAgICAgICAgIDogZmlsbFNoYWRvd0dyYWRpZW50RnJvbVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdG9wT3BhY2l0eT17ZmlsbFNoYWRvd0dyYWRpZW50VG9PcGFjaXR5IHx8IDB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0xpbmVhckdyYWRpZW50PlxuICAgICAgICAgICkpXG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPExpbmVhckdyYWRpZW50XG4gICAgICAgICAgICBpZD17dGhpcy5nZXRHcmFkaWVudElkKFwiZmlsbFNoYWRvd0dyYWRpZW50RnJvbVwiKX1cbiAgICAgICAgICAgIHgxPXswfVxuICAgICAgICAgICAgeTE9ezB9XG4gICAgICAgICAgICB4Mj17MH1cbiAgICAgICAgICAgIHkyPXtoZWlnaHR9XG4gICAgICAgICAgICBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdG9wXG4gICAgICAgICAgICAgIG9mZnNldD17ZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9mZnNldH1cbiAgICAgICAgICAgICAgc3RvcENvbG9yPXtmaWxsU2hhZG93R3JhZGllbnRGcm9tfVxuICAgICAgICAgICAgICBzdG9wT3BhY2l0eT17ZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9wYWNpdHl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFN0b3BcbiAgICAgICAgICAgICAgb2Zmc2V0PXtmaWxsU2hhZG93R3JhZGllbnRUb09mZnNldH1cbiAgICAgICAgICAgICAgc3RvcENvbG9yPXtmaWxsU2hhZG93R3JhZGllbnRUbyB8fCBmaWxsU2hhZG93R3JhZGllbnRGcm9tfVxuICAgICAgICAgICAgICBzdG9wT3BhY2l0eT17ZmlsbFNoYWRvd0dyYWRpZW50VG9PcGFjaXR5IHx8IDB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTGluZWFyR3JhZGllbnQ+XG4gICAgICAgICl9XG4gICAgICA8L0RlZnM+XG4gICAgKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQWJzdHJhY3RDaGFydDtcbiJdfQ==
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RDaGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9BYnN0cmFjdENoYXJ0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFxQzFFLE1BQU0sQ0FBQyxJQUFNLGtDQUFrQyxHQUFHLElBQUksQ0FBQztBQUV2RCxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFFcEI7SUFHVSxpQ0FBbUU7SUFIN0U7O1FBSVUsYUFBTyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBRXRCLGtCQUFZLEdBQUcsVUFBQyxJQUFtQjtZQUFuQixxQkFBQSxFQUFBLFNBQW1CO1lBQzNDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQTVDLENBQTRDLENBQUMsQ0FBQztRQUM1RSxDQUFDLENBQUM7UUFFUSxtQkFBYSxHQUFHLFVBQUMsRUFBVTtZQUNuQyxPQUFPLG9CQUFhLEtBQUksQ0FBQyxPQUFPLGNBQUksRUFBRSxDQUFFLENBQUM7UUFDM0MsQ0FBQyxDQUFDO1FBRVEsb0JBQWMsR0FBRyxVQUFDLEVBQVU7WUFDcEMsT0FBTyxlQUFRLEtBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLE1BQUcsQ0FBQztRQUMzQyxDQUFDLENBQUM7UUFFRixnQkFBVSxHQUFHLFVBQUMsSUFBYztZQUMxQixJQUFNLE1BQU0sR0FBRyxLQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXZDLElBQUksTUFBTSxDQUFDLE1BQU0s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QjtJQUNKLENBQUM7SUFFRCxpREFBeUIsR0FBekI7UUFDUSxJQUFBLEtBSUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBSHhCLDhCQUEyQixFQUEzQixzQkFBc0IsbUJBQUcsRUFBRSxLQUFBLEVBQzNCLEtBQUssV0FBQSxFQUNMLGtCQUFrQixFQUFsQixVQUFVLG1CQUFHLEtBQUssS0FDTSxDQUFDO1FBQzNCLGtCQUNFLElBQUksRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQ2xCLHNCQUFzQixFQUN6QjtJQUNKLENBQUM7SUFFRCxtREFBMkIsR0FBM0I7UUFDUSxJQUFBLEtBSUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBSHhCLGdDQUE2QixFQUE3Qix3QkFBd0IsbUJBQUcsRUFBRSxLQUFBLEVBQzdCLEtBQUssV0FBQSxFQUNMLGtCQUFrQixFQUFsQixVQUFVLG1CQUFHLEtBQUssS0FDTSxDQUFDO1FBQzNCLGtCQUNFLElBQUksRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQ2xCLHdCQUF3QixFQUMzQjtJQUNKLENBQUM7SUF5Wkgsb0JBQUM7QUFBRCxDQUFDLEFBNWhCRCxDQUdVLFNBQVMsR0F5aEJsQjtBQUVELGVBQWUsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgRGVmcywgTGluZSwgTGluZWFyR3JhZGllbnQsIFN0b3AsIFRleHQgfSBmcm9tIFwicmVhY3QtbmF0aXZlLXN2Z1wiO1xuXG5pbXBvcnQgeyBDaGFydENvbmZpZywgRGF0YXNldCwgUGFydGlhbEJ5IH0gZnJvbSBcIi4vSGVscGVyVHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBYnN0cmFjdENoYXJ0UHJvcHMge1xuICBmcm9tWmVybz86IGJvb2xlYW47XG4gIGZyb21OdW1iZXI/OiBudW1iZXI7XG4gIGNoYXJ0Q29uZmlnPzogQWJzdHJhY3RDaGFydENvbmZpZztcbiAgeUF4aXNMYWJlbD86IHN0cmluZztcbiAgeUF4aXNTdWZmaXg/OiBzdHJpbmc7XG4gIHlMYWJlbHNPZmZzZXQ/OiBudW1iZXI7XG4gIHlBeGlzSW50ZXJ2YWw/OiBudW1iZXI7XG4gIHhBeGlzTGFiZWw/OiBzdHJpbmc7XG4gIHhMYWJlbHNPZmZzZXQ/OiBudW1iZXI7XG4gIGhpZGVQb2ludHNBdEluZGV4PzogbnVtYmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWJzdHJhY3RDaGFydENvbmZpZyBleHRlbmRzIENoYXJ0Q29uZmlnIHtcbiAgY291bnQ/OiBudW1iZXI7XG4gIGRhdGE/OiBEYXRhc2V0W107XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIHBhZGRpbmdUb3A/OiBudW1iZXI7XG4gIHBhZGRpbmdSaWdodD86IG51bWJlcjtcbiAgaG9yaXpvbnRhbExhYmVsUm90YXRpb24/OiBudW1iZXI7XG4gIGZvcm1hdFlMYWJlbD86ICh5TGFiZWw6IHN0cmluZykgPT4gc3RyaW5nO1xuICBsYWJlbHM/OiBzdHJpbmdbXTtcbiAgaG9yaXpvbnRhbE9mZnNldD86IG51bWJlcjtcbiAgc3RhY2tlZEJhcj86IGJvb2xlYW47XG4gIHZlcnRpY2FsTGFiZWxSb3RhdGlvbj86IG51bWJlcjtcbiAgZm9ybWF0WExhYmVsPzogKHhMYWJlbDogc3RyaW5nKSA9PiBzdHJpbmc7XG4gIHZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZT86IG51bWJlcjtcbiAgZm9ybWF0VG9wQmFyVmFsdWU/OiAodG9wQmFyVmFsdWU6IG51bWJlcikgPT4gc3RyaW5nIHwgbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBBYnN0cmFjdENoYXJ0U3RhdGUgPSB7fTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfWF9MQUJFTFNfSEVJR0hUX1BFUkNFTlRBR0UgPSAwLjc1O1xuXG5sZXQgbmV4dENoYXJ0SWQgPSAwO1xuXG5jbGFzcyBBYnN0cmFjdENoYXJ0PFxuICBJUHJvcHMgZXh0ZW5kcyBBYnN0cmFjdENoYXJ0UHJvcHMsXG4gIElTdGF0ZSBleHRlbmRzIEFic3RyYWN0Q2hhcnRTdGF0ZVxuPiBleHRlbmRzIENvbXBvbmVudDxBYnN0cmFjdENoYXJ0UHJvcHMgJiBJUHJvcHMsIEFic3RyYWN0Q2hhcnRTdGF0ZSAmIElTdGF0ZT4ge1xuICBwcml2YXRlIGNoYXJ0SWQgPSBuZXh0Q2hhcnRJZCsrO1xuXG4gIHByb3RlY3RlZCBnZXRWYWxpZERhdGEgPSAoZGF0YTogbnVtYmVyW10gPSBbXSkgPT4ge1xuICAgIHJldHVybiBkYXRhLmZpbHRlcih2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgJiYgaXNGaW5pdGUodmFsdWUpKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZ2V0R3JhZGllbnRJZCA9IChpZDogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIGBjaGFydC1raXQtJHt0aGlzLmNoYXJ0SWR9LSR7aWR9YDtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZ2V0R3JhZGllbnRVcmwgPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBgdXJsKCMke3RoaXMuZ2V0R3JhZGllbnRJZChpZCl9KWA7XG4gIH07XG5cbiAgY2FsY1NjYWxlciA9IChkYXRhOiBudW1iZXJbXSkgPT4ge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZ2V0VmFsaWREYXRhKGRhdGEpO1xuXG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmZyb21aZXJvICYmIHRoaXMucHJvcHMuZnJvbU51bWJlcikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgTWF0aC5tYXgoLi4udmFsdWVzLCB0aGlzLnByb3BzLmZyb21OdW1iZXIpIC0gTWF0aC5taW4oLi4udmFsdWVzLCAwKSB8fCAxXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy5mcm9tWmVybykge1xuICAgICAgcmV0dXJuIE1hdGgubWF4KC4uLnZhbHVlcywgMCkgLSBNYXRoLm1pbiguLi52YWx1ZXMsIDApIHx8IDE7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLmZyb21OdW1iZXIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIE1hdGgubWF4KC4uLnZhbHVlcywgdGhpcy5wcm9wcy5mcm9tTnVtYmVyKSAtXG4gICAgICAgICAgTWF0aC5taW4oLi4udmFsdWVzLCB0aGlzLnByb3BzLmZyb21OdW1iZXIpIHx8IDFcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBNYXRoLm1heCguLi52YWx1ZXMpIC0gTWF0aC5taW4oLi4udmFsdWVzKSB8fCAxO1xuICAgIH1cbiAgfTtcblxuICBjYWxjQmFzZUhlaWdodCA9IChkYXRhOiBudW1iZXJbXSwgaGVpZ2h0OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldFZhbGlkRGF0YShkYXRhKTtcblxuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gaGVpZ2h0O1xuICAgIH1cblxuICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKC4uLnZhbHVlcyk7XG4gICAgY29uc3QgbWF4ID0gTWF0aC5tYXgoLi4udmFsdWVzKTtcbiAgICBpZiAobWluID49IDAgJiYgbWF4ID49IDApIHtcbiAgICAgIHJldHVybiBoZWlnaHQ7XG4gICAgfSBlbHNlIGlmIChtaW4gPCAwICYmIG1heCA8PSAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9IGVsc2UgaWYgKG1pbiA8IDAgJiYgbWF4ID4gMCkge1xuICAgICAgcmV0dXJuIChoZWlnaHQgKiBtYXgpIC8gdGhpcy5jYWxjU2NhbGVyKHZhbHVlcyk7XG4gICAgfVxuICB9O1xuXG4gIGNhbGNIZWlnaHQgPSAodmFsOiBudW1iZXIsIGRhdGE6IG51bWJlcltdLCBoZWlnaHQ6IG51bWJlcikgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsICE9PSBcIm51bWJlclwiIHx8ICFpc0Zpbml0ZSh2YWwpKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldFZhbGlkRGF0YShkYXRhKTtcblxuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb25zdCBtYXggPSBNYXRoLm1heCguLi52YWx1ZXMpO1xuICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKC4uLnZhbHVlcyk7XG5cbiAgICBpZiAobWluIDwgMCAmJiBtYXggPiAwKSB7XG4gICAgICByZXR1cm4gaGVpZ2h0ICogKHZhbCAvIHRoaXMuY2FsY1NjYWxlcih2YWx1ZXMpKTtcbiAgICB9IGVsc2UgaWYgKG1pbiA+PSAwICYmIG1heCA+PSAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5mcm9tWmVyb1xuICAgICAgICA/IGhlaWdodCAqICh2YWwgLyB0aGlzLmNhbGNTY2FsZXIodmFsdWVzKSlcbiAgICAgICAgOiBoZWlnaHQgKiAoKHZhbCAtIG1pbikgLyB0aGlzLmNhbGNTY2FsZXIodmFsdWVzKSk7XG4gICAgfSBlbHNlIGlmIChtaW4gPCAwICYmIG1heCA8PSAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5mcm9tWmVyb1xuICAgICAgICA/IGhlaWdodCAqICh2YWwgLyB0aGlzLmNhbGNTY2FsZXIodmFsdWVzKSlcbiAgICAgICAgOiBoZWlnaHQgKiAoKHZhbCAtIG1heCkgLyB0aGlzLmNhbGNTY2FsZXIodmFsdWVzKSk7XG4gICAgfVxuICB9O1xuXG4gIGdldFByb3BzRm9yQmFja2dyb3VuZExpbmVzKCkge1xuICAgIGNvbnN0IHsgcHJvcHNGb3JCYWNrZ3JvdW5kTGluZXMgPSB7fSB9ID0gdGhpcy5wcm9wcy5jaGFydENvbmZpZztcbiAgICByZXR1cm4ge1xuICAgICAgc3Ryb2tlOiB0aGlzLnByb3BzLmNoYXJ0Q29uZmlnLmNvbG9yKDAuMiksXG4gICAgICBzdHJva2VEYXNoYXJyYXk6IFwiNSwgMTBcIixcbiAgICAgIHN0cm9rZVdpZHRoOiAxLFxuICAgICAgLi4ucHJvcHNGb3JCYWNrZ3JvdW5kTGluZXNcbiAgICB9O1xuICB9XG5cbiAgZ2V0UHJvcHNGb3JMYWJlbHMoKSB7XG4gICAgY29uc3Qge1xuICAgICAgcHJvcHNGb3JMYWJlbHMgPSB7fSxcbiAgICAgIGNvbG9yLFxuICAgICAgbGFiZWxDb2xvciA9IGNvbG9yXG4gICAgfSA9IHRoaXMucHJvcHMuY2hhcnRDb25maWc7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZvbnRTaXplOiAxMixcbiAgICAgIGZpbGw6IGxhYmVsQ29sb3IoMC44KSxcbiAgICAgIC4uLnByb3BzRm9yTGFiZWxzXG4gICAgfTtcbiAgfVxuXG4gIGdldFByb3BzRm9yVmVydGljYWxMYWJlbHMoKSB7XG4gICAgY29uc3Qge1xuICAgICAgcHJvcHNGb3JWZXJ0aWNhbExhYmVscyA9IHt9LFxuICAgICAgY29sb3IsXG4gICAgICBsYWJlbENvbG9yID0gY29sb3JcbiAgICB9ID0gdGhpcy5wcm9wcy5jaGFydENvbmZpZztcbiAgICByZXR1cm4ge1xuICAgICAgZmlsbDogbGFiZWxDb2xvcigwLjgpLFxuICAgICAgLi4ucHJvcHNGb3JWZXJ0aWNhbExhYmVsc1xuICAgIH07XG4gIH1cblxuICBnZXRQcm9wc0Zvckhvcml6b250YWxMYWJlbHMoKSB7XG4gICAgY29uc3Qge1xuICAgICAgcHJvcHNGb3JIb3Jpem9udGFsTGFiZWxzID0ge30sXG4gICAgICBjb2xvcixcbiAgICAgIGxhYmVsQ29sb3IgPSBjb2xvclxuICAgIH0gPSB0aGlzLnByb3BzLmNoYXJ0Q29uZmlnO1xuICAgIHJldHVybiB7XG4gICAgICBmaWxsOiBsYWJlbENvbG9yKDAuOCksXG4gICAgICAuLi5wcm9wc0Zvckhvcml6b250YWxMYWJlbHNcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVySG9yaXpvbnRhbExpbmVzID0gY29uZmlnID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBjb3VudCxcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgICAgcGFkZGluZ1RvcCxcbiAgICAgIHBhZGRpbmdSaWdodCxcbiAgICAgIHZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZSA9IERFRkFVTFRfWF9MQUJFTFNfSEVJR0hUX1BFUkNFTlRBR0VcbiAgICB9ID0gY29uZmlnO1xuICAgIGNvbnN0IGJhc2VQb3NpdGlvbiA9IGhlaWdodCAqIHZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZTtcblxuICAgIHJldHVybiBbLi4ubmV3IEFycmF5KGNvdW50ICsgMSldLm1hcCgoXywgaSkgPT4ge1xuICAgICAgY29uc3QgeSA9IChiYXNlUG9zaXRpb24gLyBjb3VudCkgKiBpICsgcGFkZGluZ1RvcDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxMaW5lXG4gICAgICAgICAga2V5PXtgaG9yaXpvbnRhbC1saW5lLSR7aX1gfVxuICAgICAgICAgIHgxPXtwYWRkaW5nUmlnaHR9XG4gICAgICAgICAgeTE9e3l9XG4gICAgICAgICAgeDI9e3dpZHRofVxuICAgICAgICAgIHkyPXt5fVxuICAgICAgICAgIHsuLi50aGlzLmdldFByb3BzRm9yQmFja2dyb3VuZExpbmVzKCl9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH0pO1xuICB9O1xuXG4gIHJlbmRlckhvcml6b250YWxMaW5lID0gY29uZmlnID0+IHtcbiAgICBjb25zdCB7XG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIHBhZGRpbmdUb3AsXG4gICAgICBwYWRkaW5nUmlnaHQsXG4gICAgICB2ZXJ0aWNhbExhYmVsc0hlaWdodFBlcmNlbnRhZ2UgPSBERUZBVUxUX1hfTEFCRUxTX0hFSUdIVF9QRVJDRU5UQUdFXG4gICAgfSA9IGNvbmZpZztcbiAgICByZXR1cm4gKFxuICAgICAgPExpbmVcbiAgICAgICAga2V5PVwiaG9yaXpvbnRhbC1saW5lXCJcbiAgICAgICAgeDE9e3BhZGRpbmdSaWdodH1cbiAgICAgICAgeTE9e2hlaWdodCAqIHZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZSArIHBhZGRpbmdUb3B9XG4gICAgICAgIHgyPXt3aWR0aH1cbiAgICAgICAgeTI9e2hlaWdodCAqIHZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZSArIHBhZGRpbmdUb3B9XG4gICAgICAgIHsuLi50aGlzLmdldFByb3BzRm9yQmFja2dyb3VuZExpbmVzKCl9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVySG9yaXpvbnRhbExhYmVscyA9IChcbiAgICBjb25maWc6IE9taXQ8QWJzdHJhY3RDaGFydENvbmZpZywgXCJkYXRhXCI+ICYgeyBkYXRhOiBudW1iZXJbXSB9XG4gICkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGNvdW50LFxuICAgICAgZGF0YSxcbiAgICAgIGhlaWdodCxcbiAgICAgIHBhZGRpbmdUb3AsXG4gICAgICBwYWRkaW5nUmlnaHQsXG4gICAgICBob3Jpem9udGFsTGFiZWxSb3RhdGlvbiA9IDAsXG4gICAgICBkZWNpbWFsUGxhY2VzID0gMixcbiAgICAgIGZvcm1hdFlMYWJlbCA9ICh5TGFiZWw6IHN0cmluZykgPT4geUxhYmVsLFxuICAgICAgdmVydGljYWxMYWJlbHNIZWlnaHRQZXJjZW50YWdlID0gREVGQVVMVF9YX0xBQkVMU19IRUlHSFRfUEVSQ0VOVEFHRVxuICAgIH0gPSBjb25maWc7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5nZXRWYWxpZERhdGEoZGF0YSk7XG4gICAgY29uc3QgbGFiZWxEYXRhID0gdmFsdWVzLmxlbmd0aCA9PT0gMCA/IFswXSA6IHZhbHVlcztcblxuICAgIGNvbnN0IHtcbiAgICAgIHlBeGlzTGFiZWwgPSBcIlwiLFxuICAgICAgeUF4aXNTdWZmaXggPSBcIlwiLFxuICAgICAgeUxhYmVsc09mZnNldCA9IDEyXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIG5ldyBBcnJheShjb3VudCA9PT0gMSA/IDEgOiBjb3VudCArIDEpLmZpbGwoMSkubWFwKChfLCBpKSA9PiB7XG4gICAgICBsZXQgeUxhYmVsID0gU3RyaW5nKGkgKiBjb3VudCk7XG5cbiAgICAgIGlmIChjb3VudCA9PT0gMSkge1xuICAgICAgICB5TGFiZWwgPSBgJHt5QXhpc0xhYmVsfSR7Zm9ybWF0WUxhYmVsKFxuICAgICAgICAgIGxhYmVsRGF0YVswXS50b0ZpeGVkKGRlY2ltYWxQbGFjZXMpXG4gICAgICAgICl9JHt5QXhpc1N1ZmZpeH1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLnByb3BzLmZyb21aZXJvXG4gICAgICAgICAgPyAodGhpcy5jYWxjU2NhbGVyKGxhYmVsRGF0YSkgLyBjb3VudCkgKiBpICsgTWF0aC5taW4oLi4ubGFiZWxEYXRhLCAwKVxuICAgICAgICAgIDogKHRoaXMuY2FsY1NjYWxlcihsYWJlbERhdGEpIC8gY291bnQpICogaSArIE1hdGgubWluKC4uLmxhYmVsRGF0YSk7XG4gICAgICAgIHlMYWJlbCA9IGAke3lBeGlzTGFiZWx9JHtmb3JtYXRZTGFiZWwoXG4gICAgICAgICAgbGFiZWwudG9GaXhlZChkZWNpbWFsUGxhY2VzKVxuICAgICAgICApfSR7eUF4aXNTdWZmaXh9YDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYmFzZVBvc2l0aW9uID0gaGVpZ2h0ICogdmVydGljYWxMYWJlbHNIZWlnaHRQZXJjZW50YWdlO1xuICAgICAgY29uc3QgeCA9IHBhZGRpbmdSaWdodCAtIHlMYWJlbHNPZmZzZXQ7XG4gICAgICBjb25zdCB5ID1cbiAgICAgICAgY291bnQgPT09IDEgJiYgdGhpcy5wcm9wcy5mcm9tWmVyb1xuICAgICAgICAgID8gcGFkZGluZ1RvcCArIDRcbiAgICAgICAgICA6IGhlaWdodCAqIHZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZSAtXG4gICAgICAgICAgICAoYmFzZVBvc2l0aW9uIC8gY291bnQpICogaSArXG4gICAgICAgICAgICBwYWRkaW5nVG9wO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRleHRcbiAgICAgICAgICB0cmFuc2Zvcm09e2Byb3RhdGUoJHtob3Jpem9udGFsTGFiZWxSb3RhdGlvbn0sICR7eH0sICR7eX0pYH1cbiAgICAgICAgICBrZXk9e2Bob3Jpem9udGFsLWxhYmVsLSR7aX0tJHt5TGFiZWx9YH1cbiAgICAgICAgICB4PXt4fVxuICAgICAgICAgIHRleHRBbmNob3I9XCJlbmRcIlxuICAgICAgICAgIHk9e3l9XG4gICAgICAgICAgey4uLnRoaXMuZ2V0UHJvcHNGb3JMYWJlbHMoKX1cbiAgICAgICAgICB7Li4udGhpcy5nZXRQcm9wc0Zvckhvcml6b250YWxMYWJlbHMoKX1cbiAgICAgICAgPlxuICAgICAgICAgIHt5TGFiZWx9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICk7XG4gICAgfSk7XG4gIH07XG5cbiAgcmVuZGVyVmVydGljYWxMYWJlbHMgPSAoe1xuICAgIGxhYmVscyA9IFtdLFxuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICBwYWRkaW5nUmlnaHQsXG4gICAgcGFkZGluZ1RvcCxcbiAgICBob3Jpem9udGFsT2Zmc2V0ID0gMCxcbiAgICBzdGFja2VkQmFyID0gZmFsc2UsXG4gICAgdmVydGljYWxMYWJlbFJvdGF0aW9uID0gMCxcbiAgICBmb3JtYXRYTGFiZWwgPSB4TGFiZWwgPT4geExhYmVsLFxuICAgIHZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZSA9IERFRkFVTFRfWF9MQUJFTFNfSEVJR0hUX1BFUkNFTlRBR0VcbiAgfTogUGljazxcbiAgICBBYnN0cmFjdENoYXJ0Q29uZmlnLFxuICAgIHwgXCJsYWJlbHNcIlxuICAgIHwgXCJ3aWR0aFwiXG4gICAgfCBcImhlaWdodFwiXG4gICAgfCBcInBhZGRpbmdSaWdodFwiXG4gICAgfCBcInBhZGRpbmdUb3BcIlxuICAgIHwgXCJob3Jpem9udGFsT2Zmc2V0XCJcbiAgICB8IFwic3RhY2tlZEJhclwiXG4gICAgfCBcInZlcnRpY2FsTGFiZWxSb3RhdGlvblwiXG4gICAgfCBcImZvcm1hdFhMYWJlbFwiXG4gICAgfCBcInZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZVwiXG4gID4pID0+IHtcbiAgICBjb25zdCB7XG4gICAgICB4QXhpc0xhYmVsID0gXCJcIixcbiAgICAgIHhMYWJlbHNPZmZzZXQgPSAwLFxuICAgICAgaGlkZVBvaW50c0F0SW5kZXggPSBbXVxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgZm9udFNpemUgPSAxMjtcblxuICAgIGxldCBmYWMgPSAxO1xuICAgIGlmIChzdGFja2VkQmFyKSB7XG4gICAgICBmYWMgPSAwLjcxO1xuICAgIH1cblxuICAgIHJldHVybiBsYWJlbHMubWFwKChsYWJlbCwgaSkgPT4ge1xuICAgICAgaWYgKGhpZGVQb2ludHNBdEluZGV4LmluY2x1ZGVzKGkpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB4ID1cbiAgICAgICAgKCgod2lkdGggLSBwYWRkaW5nUmlnaHQpIC8gbGFiZWxzLmxlbmd0aCkgKiBpICtcbiAgICAgICAgICBwYWRkaW5nUmlnaHQgK1xuICAgICAgICAgIGhvcml6b250YWxPZmZzZXQpICpcbiAgICAgICAgZmFjO1xuXG4gICAgICBjb25zdCB5ID1cbiAgICAgICAgaGVpZ2h0ICogdmVydGljYWxMYWJlbHNIZWlnaHRQZXJjZW50YWdlICtcbiAgICAgICAgcGFkZGluZ1RvcCArXG4gICAgICAgIGZvbnRTaXplICogMiArXG4gICAgICAgIHhMYWJlbHNPZmZzZXQ7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxUZXh0XG4gICAgICAgICAgdHJhbnNmb3JtPXtgcm90YXRlKCR7dmVydGljYWxMYWJlbFJvdGF0aW9ufSwgJHt4fSwgJHt5fSlgfVxuICAgICAgICAgIGtleT17YHZlcnRpY2FsLWxhYmVsLSR7aX0tJHtsYWJlbH1gfVxuICAgICAgICAgIHg9e3h9XG4gICAgICAgICAgeT17eX1cbiAgICAgICAgICB0ZXh0QW5jaG9yPXt2ZXJ0aWNhbExhYmVsUm90YXRpb24gPT09IDAgPyBcIm1pZGRsZVwiIDogXCJzdGFydFwifVxuICAgICAgICAgIHsuLi50aGlzLmdldFByb3BzRm9yTGFiZWxzKCl9XG4gICAgICAgICAgey4uLnRoaXMuZ2V0UHJvcHNGb3JWZXJ0aWNhbExhYmVscygpfVxuICAgICAgICA+XG4gICAgICAgICAge2Ake2Zvcm1hdFhMYWJlbChsYWJlbCl9JHt4QXhpc0xhYmVsfWB9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICk7XG4gICAgfSk7XG4gIH07XG5cbiAgcmVuZGVyVmVydGljYWxMaW5lcyA9ICh7XG4gICAgZGF0YSxcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgcGFkZGluZ1RvcCxcbiAgICBwYWRkaW5nUmlnaHQsXG4gICAgdmVydGljYWxMYWJlbHNIZWlnaHRQZXJjZW50YWdlID0gREVGQVVMVF9YX0xBQkVMU19IRUlHSFRfUEVSQ0VOVEFHRVxuICB9OiBPbWl0PFxuICAgIFBpY2s8XG4gICAgICBBYnN0cmFjdENoYXJ0Q29uZmlnLFxuICAgICAgfCBcImRhdGFcIlxuICAgICAgfCBcIndpZHRoXCJcbiAgICAgIHwgXCJoZWlnaHRcIlxuICAgICAgfCBcInBhZGRpbmdSaWdodFwiXG4gICAgICB8IFwicGFkZGluZ1RvcFwiXG4gICAgICB8IFwidmVydGljYWxMYWJlbHNIZWlnaHRQZXJjZW50YWdlXCJcbiAgICA+LFxuICAgIFwiZGF0YVwiXG4gID4gJiB7IGRhdGE6IG51bWJlcltdIH0pID0+IHtcbiAgICBjb25zdCB7IHlBeGlzSW50ZXJ2YWwgPSAxIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIFsuLi5uZXcgQXJyYXkoTWF0aC5jZWlsKGRhdGEubGVuZ3RoIC8geUF4aXNJbnRlcnZhbCkpXS5tYXAoXG4gICAgICAoXywgaSkgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxMaW5lXG4gICAgICAgICAgICBrZXk9e2B2ZXJ0aWNhbC1saW5lLSR7aX1gfVxuICAgICAgICAgICAgeDE9e01hdGguZmxvb3IoXG4gICAgICAgICAgICAgICgod2lkdGggLSBwYWRkaW5nUmlnaHQpIC8gKGRhdGEubGVuZ3RoIC8geUF4aXNJbnRlcnZhbCkpICogaSArXG4gICAgICAgICAgICAgICAgcGFkZGluZ1JpZ2h0XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgeTE9ezB9XG4gICAgICAgICAgICB4Mj17TWF0aC5mbG9vcihcbiAgICAgICAgICAgICAgKCh3aWR0aCAtIHBhZGRpbmdSaWdodCkgLyAoZGF0YS5sZW5ndGggLyB5QXhpc0ludGVydmFsKSkgKiBpICtcbiAgICAgICAgICAgICAgICBwYWRkaW5nUmlnaHRcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB5Mj17aGVpZ2h0ICogdmVydGljYWxMYWJlbHNIZWlnaHRQZXJjZW50YWdlICsgcGFkZGluZ1RvcH1cbiAgICAgICAgICAgIHsuLi50aGlzLmdldFByb3BzRm9yQmFja2dyb3VuZExpbmVzKCl9XG4gICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICApO1xuICB9O1xuXG4gIHJlbmRlclZlcnRpY2FsTGluZSA9ICh7XG4gICAgaGVpZ2h0LFxuICAgIHBhZGRpbmdUb3AsXG4gICAgcGFkZGluZ1JpZ2h0LFxuICAgIHZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZSA9IERFRkFVTFRfWF9MQUJFTFNfSEVJR0hUX1BFUkNFTlRBR0VcbiAgfTogUGljazxcbiAgICBBYnN0cmFjdENoYXJ0Q29uZmlnLFxuICAgIFwiaGVpZ2h0XCIgfCBcInBhZGRpbmdSaWdodFwiIHwgXCJwYWRkaW5nVG9wXCIgfCBcInZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZVwiXG4gID4pID0+IChcbiAgICA8TGluZVxuICAgICAga2V5PVwidmVydGljYWwtbGluZVwiXG4gICAgICB4MT17TWF0aC5mbG9vcihwYWRkaW5nUmlnaHQpfVxuICAgICAgeTE9ezB9XG4gICAgICB4Mj17TWF0aC5mbG9vcihwYWRkaW5nUmlnaHQpfVxuICAgICAgeTI9e2hlaWdodCAqIHZlcnRpY2FsTGFiZWxzSGVpZ2h0UGVyY2VudGFnZSArIHBhZGRpbmdUb3B9XG4gICAgICB7Li4udGhpcy5nZXRQcm9wc0ZvckJhY2tncm91bmRMaW5lcygpfVxuICAgIC8+XG4gICk7XG5cbiAgcmVuZGVyRGVmcyA9IChcbiAgICBjb25maWc6IFBpY2s8XG4gICAgICBQYXJ0aWFsQnk8XG4gICAgICAgIEFic3RyYWN0Q2hhcnRDb25maWcsXG4gICAgICAgIHwgXCJiYWNrZ3JvdW5kR3JhZGllbnRGcm9tT3BhY2l0eVwiXG4gICAgICAgIHwgXCJiYWNrZ3JvdW5kR3JhZGllbnRUb09wYWNpdHlcIlxuICAgICAgICB8IFwiZmlsbFNoYWRvd0dyYWRpZW50XCJcbiAgICAgICAgfCBcImZpbGxTaGFkb3dHcmFkaWVudE9wYWNpdHlcIlxuICAgICAgICB8IFwiZmlsbFNoYWRvd0dyYWRpZW50RnJvbVwiXG4gICAgICAgIHwgXCJmaWxsU2hhZG93R3JhZGllbnRGcm9tT3BhY2l0eVwiXG4gICAgICAgIHwgXCJmaWxsU2hhZG93R3JhZGllbnRGcm9tT2Zmc2V0XCJcbiAgICAgICAgfCBcImZpbGxTaGFkb3dHcmFkaWVudFRvXCJcbiAgICAgICAgfCBcImZpbGxTaGFkb3dHcmFkaWVudFRvT3BhY2l0eVwiXG4gICAgICAgIHwgXCJmaWxsU2hhZG93R3JhZGllbnRUb09mZnNldFwiXG4gICAgICA+LFxuICAgICAgfCBcIndpZHRoXCJcbiAgICAgIHwgXCJoZWlnaHRcIlxuICAgICAgfCBcImJhY2tncm91bmRHcmFkaWVudEZyb21cIlxuICAgICAgfCBcImJhY2tncm91bmRHcmFkaWVudFRvXCJcbiAgICAgIHwgXCJ1c2VTaGFkb3dDb2xvckZyb21EYXRhc2V0XCJcbiAgICAgIHwgXCJkYXRhXCJcbiAgICAgIHwgXCJiYWNrZ3JvdW5kR3JhZGllbnRGcm9tT3BhY2l0eVwiXG4gICAgICB8IFwiYmFja2dyb3VuZEdyYWRpZW50VG9PcGFjaXR5XCJcbiAgICAgIHwgXCJmaWxsU2hhZG93R3JhZGllbnRcIlxuICAgICAgfCBcImZpbGxTaGFkb3dHcmFkaWVudE9wYWNpdHlcIlxuICAgICAgfCBcImZpbGxTaGFkb3dHcmFkaWVudEZyb21cIlxuICAgICAgfCBcImZpbGxTaGFkb3dHcmFkaWVudEZyb21PcGFjaXR5XCJcbiAgICAgIHwgXCJmaWxsU2hhZG93R3JhZGllbnRGcm9tT2Zmc2V0XCJcbiAgICAgIHwgXCJmaWxsU2hhZG93R3JhZGllbnRUb1wiXG4gICAgICB8IFwiZmlsbFNoYWRvd0dyYWRpZW50VG9PcGFjaXR5XCJcbiAgICAgIHwgXCJmaWxsU2hhZG93R3JhZGllbnRUb09mZnNldFwiXG4gICAgPlxuICApID0+IHtcbiAgICBjb25zdCB7XG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIGJhY2tncm91bmRHcmFkaWVudEZyb20sXG4gICAgICBiYWNrZ3JvdW5kR3JhZGllbnRUbyxcbiAgICAgIHVzZVNoYWRvd0NvbG9yRnJvbURhdGFzZXQsXG4gICAgICBkYXRhXG4gICAgfSA9IGNvbmZpZztcblxuICAgIGNvbnN0IGZyb21PcGFjaXR5ID0gY29uZmlnLmhhc093blByb3BlcnR5KFwiYmFja2dyb3VuZEdyYWRpZW50RnJvbU9wYWNpdHlcIilcbiAgICAgID8gY29uZmlnLmJhY2tncm91bmRHcmFkaWVudEZyb21PcGFjaXR5XG4gICAgICA6IDEuMDtcbiAgICBjb25zdCB0b09wYWNpdHkgPSBjb25maWcuaGFzT3duUHJvcGVydHkoXCJiYWNrZ3JvdW5kR3JhZGllbnRUb09wYWNpdHlcIilcbiAgICAgID8gY29uZmlnLmJhY2tncm91bmRHcmFkaWVudFRvT3BhY2l0eVxuICAgICAgOiAxLjA7XG5cbiAgICBjb25zdCBmaWxsU2hhZG93R3JhZGllbnQgPSBjb25maWcuaGFzT3duUHJvcGVydHkoXCJmaWxsU2hhZG93R3JhZGllbnRcIilcbiAgICAgID8gY29uZmlnLmZpbGxTaGFkb3dHcmFkaWVudFxuICAgICAgOiB0aGlzLnByb3BzLmNoYXJ0Q29uZmlnLmNvbG9yKDEuMCk7XG5cbiAgICBjb25zdCBmaWxsU2hhZG93R3JhZGllbnRPcGFjaXR5ID0gY29uZmlnLmhhc093blByb3BlcnR5KFxuICAgICAgXCJmaWxsU2hhZG93R3JhZGllbnRPcGFjaXR5XCJcbiAgICApXG4gICAgICA/IGNvbmZpZy5maWxsU2hhZG93R3JhZGllbnRPcGFjaXR5XG4gICAgICA6IDAuMTtcblxuICAgIGNvbnN0IGZpbGxTaGFkb3dHcmFkaWVudEZyb20gPSBjb25maWcuaGFzT3duUHJvcGVydHkoXG4gICAgICBcImZpbGxTaGFkb3dHcmFkaWVudEZyb21cIlxuICAgIClcbiAgICAgID8gY29uZmlnLmZpbGxTaGFkb3dHcmFkaWVudEZyb21cbiAgICAgIDogZmlsbFNoYWRvd0dyYWRpZW50O1xuXG4gICAgY29uc3QgZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9wYWNpdHkgPSBjb25maWcuaGFzT3duUHJvcGVydHkoXG4gICAgICBcImZpbGxTaGFkb3dHcmFkaWVudEZyb21PcGFjaXR5XCJcbiAgICApXG4gICAgICA/IGNvbmZpZy5maWxsU2hhZG93R3JhZGllbnRGcm9tT3BhY2l0eVxuICAgICAgOiBmaWxsU2hhZG93R3JhZGllbnRPcGFjaXR5O1xuXG4gICAgY29uc3QgZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9mZnNldCA9IGNvbmZpZy5oYXNPd25Qcm9wZXJ0eShcbiAgICAgIFwiZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9mZnNldFwiXG4gICAgKVxuICAgICAgPyBjb25maWcuZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9mZnNldFxuICAgICAgOiAwO1xuXG4gICAgY29uc3QgZmlsbFNoYWRvd0dyYWRpZW50VG8gPSBjb25maWcuaGFzT3duUHJvcGVydHkoXCJmaWxsU2hhZG93R3JhZGllbnRUb1wiKVxuICAgICAgPyBjb25maWcuZmlsbFNoYWRvd0dyYWRpZW50VG9cbiAgICAgIDogdGhpcy5wcm9wcy5jaGFydENvbmZpZy5jb2xvcigxLjApO1xuXG4gICAgY29uc3QgZmlsbFNoYWRvd0dyYWRpZW50VG9PcGFjaXR5ID0gY29uZmlnLmhhc093blByb3BlcnR5KFxuICAgICAgXCJmaWxsU2hhZG93R3JhZGllbnRUb09wYWNpdHlcIlxuICAgIClcbiAgICAgID8gY29uZmlnLmZpbGxTaGFkb3dHcmFkaWVudFRvT3BhY2l0eVxuICAgICAgOiAwLjE7XG5cbiAgICBjb25zdCBmaWxsU2hhZG93R3JhZGllbnRUb09mZnNldCA9IGNvbmZpZy5oYXNPd25Qcm9wZXJ0eShcbiAgICAgIFwiZmlsbFNoYWRvd0dyYWRpZW50VG9PZmZzZXRcIlxuICAgIClcbiAgICAgID8gY29uZmlnLmZpbGxTaGFkb3dHcmFkaWVudFRvT2Zmc2V0XG4gICAgICA6IDE7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERlZnM+XG4gICAgICAgIDxMaW5lYXJHcmFkaWVudFxuICAgICAgICAgIGlkPXt0aGlzLmdldEdyYWRpZW50SWQoXCJiYWNrZ3JvdW5kR3JhZGllbnRcIil9XG4gICAgICAgICAgeDE9ezB9XG4gICAgICAgICAgeTE9e2hlaWdodH1cbiAgICAgICAgICB4Mj17d2lkdGh9XG4gICAgICAgICAgeTI9ezB9XG4gICAgICAgICAgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdG9wXG4gICAgICAgICAgICBvZmZzZXQ9XCIwXCJcbiAgICAgICAgICAgIHN0b3BDb2xvcj17YmFja2dyb3VuZEdyYWRpZW50RnJvbX1cbiAgICAgICAgICAgIHN0b3BPcGFjaXR5PXtmcm9tT3BhY2l0eX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdG9wXG4gICAgICAgICAgICBvZmZzZXQ9XCIxXCJcbiAgICAgICAgICAgIHN0b3BDb2xvcj17YmFja2dyb3VuZEdyYWRpZW50VG99XG4gICAgICAgICAgICBzdG9wT3BhY2l0eT17dG9PcGFjaXR5fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvTGluZWFyR3JhZGllbnQ+XG4gICAgICAgIHt1c2VTaGFkb3dDb2xvckZyb21EYXRhc2V0ICYmIGRhdGEgPyAoXG4gICAgICAgICAgZGF0YS5tYXAoKGRhdGFzZXQsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8TGluZWFyR3JhZGllbnRcbiAgICAgICAgICAgICAgaWQ9e3RoaXMuZ2V0R3JhZGllbnRJZChgZmlsbFNoYWRvd0dyYWRpZW50RnJvbV8ke2luZGV4fWApfVxuICAgICAgICAgICAgICBrZXk9e2Ake2luZGV4fWB9XG4gICAgICAgICAgICAgIHgxPXswfVxuICAgICAgICAgICAgICB5MT17MH1cbiAgICAgICAgICAgICAgeDI9ezB9XG4gICAgICAgICAgICAgIHkyPXtoZWlnaHR9XG4gICAgICAgICAgICAgIGdyYWRpZW50VW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdG9wXG4gICAgICAgICAgICAgICAgb2Zmc2V0PXtmaWxsU2hhZG93R3JhZGllbnRGcm9tT2Zmc2V0fVxuICAgICAgICAgICAgICAgIHN0b3BDb2xvcj17XG4gICAgICAgICAgICAgICAgICBkYXRhc2V0LmNvbG9yID8gZGF0YXNldC5jb2xvcigxLjApIDogZmlsbFNoYWRvd0dyYWRpZW50RnJvbVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdG9wT3BhY2l0eT17ZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9wYWNpdHl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxTdG9wXG4gICAgICAgICAgICAgICAgb2Zmc2V0PXtmaWxsU2hhZG93R3JhZGllbnRUb09mZnNldH1cbiAgICAgICAgICAgICAgICBzdG9wQ29sb3I9e1xuICAgICAgICAgICAgICAgICAgZGF0YXNldC5jb2xvclxuICAgICAgICAgICAgICAgICAgICA/IGRhdGFzZXQuY29sb3IoZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9wYWNpdHkpXG4gICAgICAgICAgICAgICAgICAgIDogZmlsbFNoYWRvd0dyYWRpZW50RnJvbVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdG9wT3BhY2l0eT17ZmlsbFNoYWRvd0dyYWRpZW50VG9PcGFjaXR5IHx8IDB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0xpbmVhckdyYWRpZW50PlxuICAgICAgICAgICkpXG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPExpbmVhckdyYWRpZW50XG4gICAgICAgICAgICBpZD17dGhpcy5nZXRHcmFkaWVudElkKFwiZmlsbFNoYWRvd0dyYWRpZW50RnJvbVwiKX1cbiAgICAgICAgICAgIHgxPXswfVxuICAgICAgICAgICAgeTE9ezB9XG4gICAgICAgICAgICB4Mj17MH1cbiAgICAgICAgICAgIHkyPXtoZWlnaHR9XG4gICAgICAgICAgICBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxTdG9wXG4gICAgICAgICAgICAgIG9mZnNldD17ZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9mZnNldH1cbiAgICAgICAgICAgICAgc3RvcENvbG9yPXtmaWxsU2hhZG93R3JhZGllbnRGcm9tfVxuICAgICAgICAgICAgICBzdG9wT3BhY2l0eT17ZmlsbFNoYWRvd0dyYWRpZW50RnJvbU9wYWNpdHl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFN0b3BcbiAgICAgICAgICAgICAgb2Zmc2V0PXtmaWxsU2hhZG93R3JhZGllbnRUb09mZnNldH1cbiAgICAgICAgICAgICAgc3RvcENvbG9yPXtmaWxsU2hhZG93R3JhZGllbnRUbyB8fCBmaWxsU2hhZG93R3JhZGllbnRGcm9tfVxuICAgICAgICAgICAgICBzdG9wT3BhY2l0eT17ZmlsbFNoYWRvd0dyYWRpZW50VG9PcGFjaXR5IHx8IDB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTGluZWFyR3JhZGllbnQ+XG4gICAgICAgICl9XG4gICAgICA8L0RlZnM+XG4gICAgKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQWJzdHJhY3RDaGFydDtcbiJdfQ==
package/package.json CHANGED
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "name": "react-native-chart-kit",
3
- "version": "6.12.2",
3
+ "version": "6.12.3",
4
4
  "devDependencies": {
5
5
  "@types/react": "16.14.8",
6
6
  "@types/react-native": "^0.62.13",
7
7
  "babel-eslint": "10.x",
8
8
  "babel-plugin-module-resolver": "^3.1.1",
9
- "babel-polyfill": "^6.26.0",
10
9
  "eslint": "6.x",
11
10
  "eslint-config-react-app": "^5.0.2",
12
11
  "eslint-plugin-flowtype": "^4.3.0",
@@ -14,39 +13,25 @@
14
13
  "eslint-plugin-jsx-a11y": "6.x",
15
14
  "eslint-plugin-react": "7.x",
16
15
  "eslint-plugin-react-hooks": "1.x",
17
- "expo": "^37.0.0",
18
16
  "husky": "^3.0.7",
19
- "jest-expo": "^37.0.0",
20
17
  "prettier": "^1.18.2",
21
18
  "pretty-quick": "^1.11.1",
22
19
  "react": "16.9.0",
23
20
  "react-native": "https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz",
24
- "react-native-flash-message": "^0.1.10",
25
- "react-native-scrollable-tab-view": "^1.0.0",
26
21
  "react-native-svg": "11.0.1",
27
- "react-test-renderer": "16.7.0",
28
22
  "typescript": "^5.4.5"
29
23
  },
30
- "_main": "./node_modules/expo/AppEntry.js",
31
24
  "main": "./dist/index.js",
32
25
  "typings": "./dist/index.d.ts",
33
26
  "files": [
34
27
  "dist"
35
28
  ],
36
29
  "scripts": {
37
- "start": "expo start",
38
- "eject": "expo eject",
39
- "android": "expo start --android",
40
- "ios": "expo start --ios",
41
- "test": "jest",
42
30
  "typecheck": "tsc --noEmit",
43
31
  "build": "tsc",
44
32
  "dev": "tsc --watch",
45
33
  "prepare": "npm run build"
46
34
  },
47
- "jest": {
48
- "preset": "jest-expo"
49
- },
50
35
  "peerDependencies": {
51
36
  "react": "> 16.7.0",
52
37
  "react-native": ">= 0.50.0",