@ardium-ui/ui 3.5.4-alpha.0 → 3.5.4-alpha.1
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.
|
@@ -76,7 +76,7 @@ export class DigitInputModel {
|
|
|
76
76
|
return this._writeValue(vArray);
|
|
77
77
|
}
|
|
78
78
|
_writeValue(v) {
|
|
79
|
-
const isOldValueTheSame = this.value() ? this.value().every((ch, i) => ch === v?.[i]) : !v;
|
|
79
|
+
const isOldValueTheSame = this.value()?.length ? this.value().every((ch, i) => ch === v?.[i]) : !v?.length;
|
|
80
80
|
console.log('executing model _writeValue', v, 'current value', this.value(), isOldValueTheSame);
|
|
81
81
|
if (isOldValueTheSame)
|
|
82
82
|
return false;
|
|
@@ -257,4 +257,4 @@ export class DigitInputModel {
|
|
|
257
257
|
return char;
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9kaWdpdC1pbnB1dC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNGLE9BQU8sRUFJTCx5QkFBeUIsRUFDekIsYUFBYSxHQUNkLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUF3Qix3QkFBd0IsRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSSxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixRQUE2QjtRQUE3QixhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQXNCaEMsaUJBQVksR0FBRyxNQUFNLENBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBRXRELG9CQUFlLEdBQUcsUUFBUSxDQUF5QixHQUFHLEVBQUU7WUFDL0QsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0QyxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDbEIsT0FBTzt3QkFDTCxJQUFJLEVBQUUsd0JBQXdCLENBQUMsTUFBTTt3QkFDckMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNO3FCQUNnQixDQUFDO2dCQUNuQyxDQUFDO2dCQUNELE9BQU87b0JBQ0wsSUFBSSxFQUFFLHdCQUF3QixDQUFDLEtBQUs7b0JBQ3BDLEtB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Z25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb2VyY2VBcnJheVByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xyXG5pbXBvcnQgeyBpc0FueVN0cmluZywgaXNBcnJheSwgaXNGdW5jdGlvbiwgaXNOdWxsLCBpc051bWJlciwgaXNSZWdFeHAgfSBmcm9tICdzaW1wbGUtYm9vbCc7XHJcbmltcG9ydCB7XHJcbiAgRGlnaXRJbnB1dEFjY2VwdE9iamVjdCxcclxuICBEaWdpdElucHV0Q29uZmlnLFxyXG4gIERpZ2l0SW5wdXRPcHRpb24sXHJcbiAgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbixcclxuICBUcmFuc2Zvcm1UeXBlLFxyXG59IGZyb20gJy4vZGlnaXQtaW5wdXQudHlwZXMnO1xyXG5pbXBvcnQgeyBEaWdpdElucHV0Q29uZmlnRGF0YSwgRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlLCBEaWdpdElucHV0TW9kZWxIb3N0LCBfc2FuaXRpemVSZWdFeHBTdHJpbmcgfSBmcm9tICcuL2RpZ2l0LWlucHV0LnV0aWxzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBEaWdpdElucHV0TW9kZWwge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FyZEhvc3Q6IERpZ2l0SW5wdXRNb2RlbEhvc3QpIHtcclxuICAgIC8vc2V0IHRoZSB2YWx1ZSBhcnJheSB0byBiZSB0aGUgc2FtZSBsZW5ndGhcclxuICAgIGVmZmVjdChcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZ0FyciA9IHRoaXMuY29uZmlnQXJyYXlEYXRhKCk7XHJcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gY29uZmlnQXJyLmxlbmd0aDtcclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZS51cGRhdGUoYXJyID0+IHtcclxuICAgICAgICAgIGlmICghYXJyKSBhcnIgPSBbXTtcclxuICAgICAgICAgIGNvbnN0IG5ld0FycjogKHN0cmluZyB8IG51bGwpW10gPSBbXTtcclxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgY3VyciA9IGFycltpXTtcclxuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gY29uZmlnQXJyW2ldO1xyXG4gICAgICAgICAgICBuZXdBcnIucHVzaChjb25maWcudHlwZSA9PT0gRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlLlN0YXRpYyA/IGNvbmZpZy5jaGFyISA6IGN1cnIgPz8gbnVsbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gbmV3QXJyO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWdBcnJheSA9IHNpZ25hbDxEaWdpdElucHV0T3B0aW9uW10+KFtdKTtcclxuXHJcbiAgcmVhZG9ubHkgY29uZmlnQXJyYXlEYXRhID0gY29tcHV0ZWQ8RGlnaXRJbnB1dENvbmZpZ0RhdGFbXT4oKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ0FycmF5KCkubWFwKCh2LCBpKSA9PiB7XHJcbiAgICAgIGlmICgnc3RhdGljJyBpbiB2KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHR5cGU6IERpZ2l0SW5wdXRDb25maWdEYXRhVHlwZS5TdGF0aWMsXHJcbiAgICAgICAgICBjaGFyOiB2LnN0YXRpYyxcclxuICAgICAgICB9IHNhdGlzZmllcyBEaWdpdElucHV0Q29uZmlnRGF0YTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHR5cGU6IERpZ2l0SW5wdXRDb25maWdEYXRhVHlwZS5JbnB1dCxcclxuICAgICAgICBpbmRleDogaSxcclxuICAgICAgICByZWFkb25seTogdi5yZWFkb25seSxcclxuICAgICAgICBwbGFjZWhvbGRlcjogdi5wbGFjZWhvbGRlciA/PyAnJyxcclxuICAgICAgfSBzYXRpc2ZpZXMgRGlnaXRJbnB1dENvbmZpZ0RhdGE7XHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgcmVhZG9ubHkgaXNDb25maWdEZWZpbmVkID0gY29tcHV0ZWQoKCk6IGJvb2xlYW4gPT4gdGhpcy5fY29uZmlnQXJyYXkoKS5sZW5ndGggPiAwKTtcclxuXHJcbiAgcmVhZG9ubHkgdmFsdWUgPSBzaWduYWw8KHN0cmluZyB8IG51bGwpW10gfCBudWxsPihudWxsKTtcclxuXHJcbiAgcmVhZG9ubHkgc3RyaW5nVmFsdWUgPSBjb21wdXRlZChcclxuICAgICgpOiBzdHJpbmcgPT5cclxuICAgICAgdGhpcy52YWx1ZSgpXHJcbiAgICAgICAgPy5tYXAodiA9PiB2ID8/ICcgJylcclxuICAgICAgICAuam9pbignJykgPz8gJydcclxuICApO1xyXG5cclxuICByZWFkb25seSBpc1ZhbHVlRnVsbCA9IGNvbXB1dGVkKCgpOiBib29sZWFuID0+IHRoaXMudmFsdWUoKT8uZmlsdGVyKHYgPT4gdikubGVuZ3RoID09PSB0aGlzLl9jb25maWdBcnJheSgpLmxlbmd0aCk7XHJcblxyXG4gIGlzRGVmaW5lZEF0SW5kZXgoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy52YWx1ZSgpPy5baW5kZXhdO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnNvbGUubG9nKCdleGVjdXRpbmcgbW9kZWwgd3JpdGVWYWx1ZScsIHYsIHRoaXMuX2FyZEhvc3Qub3V0cHV0QXNTdHJpbmcoKSk7XHJcbiAgICBpZiAodGhpcy5fYXJkSG9zdC5vdXRwdXRBc1N0cmluZygpKSB7XHJcbiAgICAgIGlmICghaXNBbnlTdHJpbmcodikgJiYgIWlzTnVsbCh2KSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgIGBBUkQtRlQwMDQwYjogVHJ5aW5nIHRvIHNldCA8YXJkLWRpZ2l0LWlucHV0PidzIHZhbHVlIHRvIFwiJHt2fVwiIChvZiB0eXBlICR7dHlwZW9mIHZ9KSwgYnV0IHRoZSBpbnB1dCB1c2VzIFtvdXRwdXRBc1N0cmluZ109XCJ0cnVlXCIsIGFuZCB0aHVzIGV4cGVjdHMgc3RyaW5nIG9yIG51bGwuYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgdkFycmF5ID0gdj8uc3BsaXQoJycpID8/IFtdO1xyXG4gICAgICBjb25zb2xlLmxvZygnZXhlY3V0aW5nIG1vZGVsIHdyaXRlVmFsdWUgLSB2QXJyYXknLCB2QXJyYXksIHRoaXMuX2NvbmZpZ0FycmF5KCkpO1xyXG5cclxuICAgICAgaWYgKHZBcnJheS5sZW5ndGggPiB0aGlzLl9jb25maWdBcnJheSgpLmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICAgIGBBUkQtV0EwMDQxOiBWYWx1ZSBwcm92aWRlZCB0byA8YXJkLWRpZ2l0LWlucHV0PiBpcyB0b28gbG9uZy4gR290ICR7XHJcbiAgICAgICAgICAgIHZBcnJheS5sZW5ndGhcclxuICAgICAgICAgIH0gY2hhcmFjdGVycywgYnV0IGV4cGVjdGVkIGEgbWF4aW11bSBvZiAke3RoaXMuX2NvbmZpZ0FycmF5KCkubGVuZ3RofSBjaGFyYWN0ZXJzLmBcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLl93cml0ZVZhbHVlKHZBcnJheSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzQW55U3RyaW5nKHYpICYmICFpc051bGwodikgJiYgIWlzQXJyYXkodikpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIGBBUkQtRlQwMDQxOiBUcnlpbmcgdG8gc2V0IDxhcmQtZGlnaXQtaW5wdXQ+J3MgdmFsdWUgdG8gXCIke3Z9XCIgKG9mIHR5cGUgJHt0eXBlb2Ygdn0pLCBleHBlY3RlZCBzdHJpbmcgb3IgYXJyYXkgb2YgY2hhcmFjdGVycy5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB2QXJyYXkgPSBjb2VyY2VBcnJheVByb3BlcnR5KHYpO1xyXG5cclxuICAgIGlmICh2QXJyYXkubGVuZ3RoID4gdGhpcy5fY29uZmlnQXJyYXkoKS5sZW5ndGgpIHtcclxuICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgIGBBUkQtV0EwMDQxOiBWYWx1ZSBwcm92aWRlZCB0byA8YXJkLWRpZ2l0LWlucHV0PiBpcyB0b28gbG9uZy4gR290ICR7XHJcbiAgICAgICAgICB2QXJyYXkubGVuZ3RoXHJcbiAgICAgICAgfSBjaGFyYWN0ZXJzLCBidXQgZXhwZWN0ZWQgYSBtYXhpbXVtIG9mICR7dGhpcy5fY29uZmlnQXJyYXkoKS5sZW5ndGh9IGNoYXJhY3RlcnMuYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcHJvYmxlbUluZGV4ID0gdkFycmF5LmZpbmRJbmRleChlbCA9PiAhaXNBbnlTdHJpbmcoZWwpIHx8IGVsLmxlbmd0aCA+IDEpO1xyXG4gICAgaWYgKHByb2JsZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIGBBUkQtRlQwMDQyOiBBcnJheSBwYXNzZWQgdG8gPGFyZC1kaWdpdC1pbnB1dD4ncyB2YWx1ZSBtdXN0IG9ubHkgY29udGFpbiBzdHJpbmdzIG9mIGxlbmd0aCAxIG9yIDAuIEVsZW1lbnQgXCIke3ZBcnJheVtwcm9ibGVtSW5kZXhdfVwiIGF0IGluZGV4ICR7cHJvYmxlbUluZGV4fSBkb2VzIG5vdCBtYXRjaCB0aG9zZSByZXF1aXJlbWVudHMuYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX3dyaXRlVmFsdWUodkFycmF5KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfd3JpdGVWYWx1ZSh2OiBzdHJpbmdbXSB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGlzT2xkVmFsdWVUaGVTYW1lID0gdGhpcy52YWx1ZSgpID8gdGhpcy52YWx1ZSgpIS5ldmVyeSgoY2gsIGkpID0+IGNoID09PSB2Py5baV0pIDogIXY7XHJcbiAgICBjb25zb2xlLmxvZygnZXhlY3V0aW5nIG1vZGVsIF93cml0ZVZhbHVlJywgdiwgJ2N1cnJlbnQgdmFsdWUnLCB0aGlzLnZhbHVlKCksIGlzT2xkVmFsdWVUaGVTYW1lKTtcclxuICAgIGlmIChpc09sZFZhbHVlVGhlU2FtZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgdGhpcy52YWx1ZS5zZXQodiAmJiB2Lm1hcChlbCA9PiBlbCB8fCBudWxsKSk7XHJcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWVBbmRVcGRhdGUoKTtcclxuICAgIHRoaXMuX3VwZGF0ZUlucHV0RWxlbWVudHMoKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlSW5wdXRFbGVtZW50cygpIHtcclxuICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlKCkgPz8gW107XHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICBmb3IgKGNvbnN0IGlucHV0RWwgb2YgdGhpcy5fYXJkSG9zdC5pbnB1dHMoKSkge1xyXG4gICAgICBpbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2W2ldID8/ICcnO1xyXG4gICAgICBpKys7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyEgc2V0dGluZyBjb25maWdcclxuICBzZXRDb25maWcoY29uZmlnOiBEaWdpdElucHV0Q29uZmlnKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXRDb25maWcoY29uZmlnKTtcclxuICAgIHRoaXMudmFsaWRhdGVWYWx1ZUFuZFVwZGF0ZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9zZXRDb25maWcoY29uZmlnOiBEaWdpdElucHV0Q29uZmlnKTogdm9pZCB7XHJcbiAgICAvL21hcCBhIG51bWJlciB0byByZWFkeSBvYmplY3RzXHJcbiAgICBsZXQgY29uZmlnQXNOdW1iZXIgPSBpc0FueVN0cmluZyhjb25maWcpID8gTnVtYmVyKGNvbmZpZykgOiBudWxsO1xyXG4gICAgaWYgKGlzTnVtYmVyKGNvbmZpZykgfHwgaXNOdW1iZXIoY29uZmlnQXNOdW1iZXIpKSB7XHJcbiAgICAgIGNvbmZpZ0FzTnVtYmVyID0gaXNOdW1iZXIoY29uZmlnKSA/IGNvbmZpZyA6IGNvbmZpZ0FzTnVtYmVyITtcclxuICAgICAgdGhpcy5fY29uZmlnQXJyYXkuc2V0KG5ldyBBcnJheShjb25maWdBc051bWJlcikuZmlsbCh7IGFjY2VwdDogKHN0cjogc3RyaW5nKSA9PiAvWzAtOV0vLnRlc3Qoc3RyKSB9KSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vbWFwIGEgc3RyaW5nIHRvIGFuIGFycmF5XHJcbiAgICBsZXQgY29uZmlnQXJyOiBzdHJpbmdbXSB8IEV4Y2x1ZGU8RGlnaXRJbnB1dENvbmZpZywgbnVtYmVyIHwgc3RyaW5nPjtcclxuICAgIGlmIChpc0FueVN0cmluZyhjb25maWcpKSB7XHJcbiAgICAgIGNvbmZpZ0FyciA9IGNvZXJjZUFycmF5UHJvcGVydHkoY29uZmlnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbmZpZ0FyciA9IGNvbmZpZztcclxuICAgIH1cclxuICAgIC8vbWFwIGFycmF5IHRvIHJlYWR5IG9iamVjdHNcclxuICAgIHRoaXMuX2NvbmZpZ0FycmF5LnNldChcclxuICAgICAgY29uZmlnQXJyLm1hcCgodiwgaSkgPT4ge1xyXG4gICAgICAgIGlmICghaXNBbnlTdHJpbmcodikpIHtcclxuICAgICAgICAgIGlmICgnYWNjZXB0JyBpbiB2ICYmICFpc0Z1bmN0aW9uKHYuYWNjZXB0KSkge1xyXG4gICAgICAgICAgICBjb25zdCByZWdFeHAgPSBpc1JlZ0V4cCh2LmFjY2VwdCkgPyB2LmFjY2VwdCA6IG5ldyBSZWdFeHAoYFske19zYW5pdGl6ZVJlZ0V4cFN0cmluZyh2LmFjY2VwdCl9XWApO1xyXG4gICAgICAgICAgICB2LmFjY2VwdCA9IHN0ciA9PiByZWdFeHAudGVzdChzdHIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHY7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzd2l0Y2ggKHYpIHtcclxuICAgICAgICAgIGNhc2UgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbi5OdW1iZXI6XHJcbiAgICAgICAgICAgIHJldHVybiB7IGFjY2VwdDogc3RyID0+IC9bMC05XS8udGVzdChzdHIpIH07XHJcbiAgICAgICAgICBjYXNlIERpZ2l0SW5wdXRQcmltaXRpdmVPcHRpb24uTGV0dGVyOlxyXG4gICAgICAgICAgICByZXR1cm4geyBhY2NlcHQ6IHN0ciA9PiAvW2EtekEtWl0vLnRlc3Qoc3RyKSB9O1xyXG4gICAgICAgICAgY2FzZSBEaWdpdElucHV0UHJpbWl0aXZlT3B0aW9uLkFscGhhbnVtZXJpYzpcclxuICAgICAgICAgICAgcmV0dXJuIHsgYWNjZXB0OiBzdHIgPT4gL1swLTlhLXpBLVpdLy50ZXN0KHN0cikgfTtcclxuICAgICAgICAgIGNhc2UgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbi5TcGVjaWFsOlxyXG4gICAgICAgICAgICByZXR1cm4geyBhY2NlcHQ6IHN0ciA9PiAvWyFAIyQlXiYqLV89Ky9cXFxcLixdLy50ZXN0KHN0cikgfTtcclxuXHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBpZiAoY29uZmlnQXJyLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQVJELU5GMDA0M1M6IDxhcmQtZGlnaXQtaW5wdXQ+J3MgY29uZmlnIGlzIGludmFsaWQuIEV4cGVjdGVkIG51bWJlciBvciBhcnJheSwgZ290IFwiJHt2fVwiYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBUkQtTkYwMDQzQjogRm91bmQgaW52YWxpZCBzdHJpbmcgXCIke3Z9XCIgaW4gPGFyZC1kaWdpdC1pbnB1dD4ncyBjb25maWcgYXQgaW5kZXggJHtpfWApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXNldElucHV0VmFsdWUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+IHRoaXMuX2NvbmZpZ0FycmF5KCkubGVuZ3RoKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5fY29uZmlnQXJyYXkoKVtpbmRleF0gYXMgRGlnaXRJbnB1dE9wdGlvbjtcclxuICAgIGxldCBuZXdWYWx1ZSA9ICcnO1xyXG4gICAgaWYgKCdzdGF0aWMnIGluIGNvbmZpZykge1xyXG4gICAgICBuZXdWYWx1ZSA9IGNvbmZpZy5zdGF0aWM7XHJcbiAgICB9XHJcblxyXG4gICAgLy9nZXQgdGhlIGNvcnJlc3BvbmRpbmcgSFRNTCBpbnB1dCBlbGVtZW50XHJcbiAgICBjb25zdCBpbnB1dEVsID0gdGhpcy5fYXJkSG9zdC5pbnB1dHMoKVtpbmRleF07XHJcbiAgICBpZiAoIWlucHV0RWwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIFwiQVJELUlTMDA0ODogPGFyZC1kaWdpdC1pbnB1dD4ncyB2YWx1ZSBjaGFuZ2VkLCBidXQgaXRzIGNvcnJlc3BvbmRpbmcgaW5wdXQgZWxlbWVudCBjb3VsZCBub3QgYmUgZm91bmQuIElmIHlvdSBhcmUgcmVhZGluZyB0aGlzLCB5b3UgcHJvYmFibHkgZXhwZXJpZW5jZWQgYSBwcm9ibGVtIHdpdGggQXJkaXVtIFVJLiBQbGVhc2UgcmVwb3J0IHRoaXMgaXNzdWUgdG8gdGhlIGNyZWF0b3JzLlwiXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICAvL3VwZGF0ZSB0aGUgaW5wdXQgZWxlbWVudCBhbmQgdmFsdWUgYXJyYXlcclxuICAgIGlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IG5ld1ZhbHVlO1xyXG5cclxuICAgIHRoaXMudmFsdWUudXBkYXRlKGFyciA9PiB7XHJcbiAgICAgIGlmICghYXJyKSBhcnIgPSBbXTtcclxuICAgICAgY29uc3QgbmV3QXJyID0gWy4uLmFycl07XHJcbiAgICAgIG5ld0FycltpbmRleF0gPSBuZXdWYWx1ZSB8fCBudWxsO1xyXG4gICAgICByZXR1cm4gbmV3QXJyO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyEgdmFsaWRhdGUgYWdhaW5zdCB0aGUgY29uZmlnXHJcbiAgdmFsaWRhdGVJbnB1dEFuZFNldFZhbHVlKFxyXG4gICAgaW5wdXQ6IHN0cmluZyxcclxuICAgIGluZGV4OiBudW1iZXJcclxuICApOiBudWxsIHwgeyB3YXNDaGFuZ2VkOiBib29sZWFuOyB3YXNWYWxpZENoYXI6IGJvb2xlYW47IHJlc3VsdENoYXI6IHN0cmluZyB8IG51bGwgfSB7XHJcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5fY29uZmlnQXJyYXkoKS5sZW5ndGgpIHJldHVybiBudWxsO1xyXG5cclxuICAgIGxldCB2ID0gdGhpcy52YWx1ZSgpO1xyXG4gICAgLy9wcmVwYXJlIHRoZSB2YWx1ZSBhcnJheSBpZiBkb2VzIG5vdCBleGlzdFxyXG4gICAgaWYgKCF2KSB7XHJcbiAgICAgIHRoaXMudmFsdWUuc2V0KFtdKTtcclxuICAgIH1cclxuICAgIHYgPSBbXTtcclxuICAgIC8vcHJlcGFyZSB0aGUgY2hhcmFjdGVycyBiZWZvcmUgdGhlIGN1cnJlbnQgb25lICh0byBiZSB1c2VkIGluIHZhbGlkYXRpb24pXHJcbiAgICBjb25zdCBiZWZvcmUgPSB0aGlzLnN0cmluZ1ZhbHVlKCkuY2hhckF0KGluZGV4KTtcclxuXHJcbiAgICAvL3JlbW92ZSB0aGUgb2xkIGNoYXJhY3RlciBmcm9tIHRoZSBpbnB1dCBlbGVtZW50XHJcbiAgICBpZiAoYmVmb3JlICYmIGlucHV0Lmxlbmd0aCA+IDEgJiYgaW5wdXQubWF0Y2goYmVmb3JlKSkge1xyXG4gICAgICBpbnB1dCA9IGlucHV0LnJlcGxhY2UoYmVmb3JlLCAnJyk7XHJcbiAgICB9XHJcbiAgICAvL3VzZSBvbmx5IHRoZSBmaXJzdCBvciBsYXN0IGNoYXJhY3RlciAoZXJyb3Igc2FmZXR5KVxyXG4gICAgY29uc3QgZmlyc3RDaGFyID0gaW5wdXQuY2hhckF0KDApO1xyXG4gICAgY29uc3QgbGFzdENoYXIgPSBpbnB1dC5jaGFyQXQoaW5wdXQubGVuZ3RoIC0gMSk7XHJcbiAgICBpbnB1dCA9IGZpcnN0Q2hhciA9PT0gYmVmb3JlID8gbGFzdENoYXIgOiBmaXJzdENoYXI7XHJcblxyXG4gICAgLy92YWxpZGF0ZSBhbmQgdHJhbnNmb3JtLCBpZiBuZWNlc3NhcnlcclxuICAgIGNvbnN0IGlucHV0Q2hhciA9IHRoaXMuX3ZhbGlkYXRlU2luZ2xlQ2hhcihpbnB1dCwgYmVmb3JlLCB0aGlzLl9jb25maWdBcnJheSgpW2luZGV4XSBhcyBEaWdpdElucHV0QWNjZXB0T2JqZWN0KTtcclxuXHJcbiAgICAvL2dldCB0aGUgY29ycmVzcG9uZGluZyBIVE1MIGlucHV0IGVsZW1lbnRcclxuICAgIGNvbnN0IGlucHV0RWwgPSB0aGlzLl9hcmRIb3N0LmlucHV0cygpW2luZGV4XTtcclxuICAgIGlmICghaW5wdXRFbCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgXCJBUkQtSVMwMDQ4OiA8YXJkLWRpZ2l0LWlucHV0PidzIHZhbHVlIGNoYW5nZWQsIGJ1dCBpdHMgY29ycmVzcG9uZGluZyBpbnB1dCBlbGVtZW50IGNvdWxkIG5vdCBiZSBmb3VuZC4gSWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHlvdSBwcm9iYWJseSBleHBlcmllbmNlZCBhIHByb2JsZW0gd2l0aCBBcmRpdW0gVUkuIFBsZWFzZSByZXBvcnQgdGhpcyBpc3N1ZSB0byB0aGUgY3JlYXRvcnMuXCJcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIC8vdXBkYXRlIHRoZSBpbnB1dCBlbGVtZW50IGFuZCB2YWx1ZSBhcnJheVxyXG4gICAgY29uc3QgbmV3VmFsID0gaW5wdXRDaGFyID8/IGJlZm9yZTtcclxuICAgIGlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IG5ld1ZhbCA/PyAnJztcclxuXHJcbiAgICB0aGlzLnZhbHVlLnVwZGF0ZShhcnIgPT4ge1xyXG4gICAgICBpZiAoIWFycikgYXJyID0gW107XHJcbiAgICAgIGNvbnN0IG5ld0FyciA9IFsuLi5hcnJdO1xyXG4gICAgICBuZXdBcnJbaW5kZXhdID0gbmV3VmFsIHx8IG51bGw7XHJcbiAgICAgIHJldHVybiBuZXdBcnI7XHJcbiAgICB9KTtcclxuICAgIC8vcmV0dXJuIGNoYW5nZXMgbWFya2VyIGFuZCB2YWxpZGF0ZWQgdmFsdWVcclxuICAgIHJldHVybiB7IHdhc0NoYW5nZWQ6IG5ld1ZhbCAhPT0gYmVmb3JlLCB3YXNWYWxpZENoYXI6ICFpc051bGwoaW5wdXRDaGFyKSwgcmVzdWx0Q2hhcjogaW5wdXRDaGFyIH07XHJcbiAgfVxyXG4gIHZhbGlkYXRlVmFsdWVBbmRVcGRhdGUoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2ID0gdGhpcy52YWx1ZSgpO1xyXG4gICAgaWYgKCF2KSByZXR1cm47XHJcblxyXG4gICAgbGV0IGJlZm9yZSA9ICcnO1xyXG4gICAgY29uc3QgbmV3VmFsdWU6IChzdHJpbmcgfCBudWxsKVtdID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE1hdGgubWluKHRoaXMuX2NvbmZpZ0FycmF5KCkubGVuZ3RoLCB2Lmxlbmd0aCk7IGkrKykge1xyXG4gICAgICBjb25zdCBjaGFyID0gdltpXTtcclxuICAgICAgYmVmb3JlICs9IGNoYXIgPz8gJyAnO1xyXG5cclxuICAgICAgaWYgKCFjaGFyKSB7XHJcbiAgICAgICAgbmV3VmFsdWUucHVzaChjaGFyKTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBuZXdDaGFyID0gdGhpcy5fdmFsaWRhdGVTaW5nbGVDaGFyKGNoYXIsIGJlZm9yZSwgdGhpcy5fY29uZmlnQXJyYXkoKVtpXSBhcyBEaWdpdElucHV0QWNjZXB0T2JqZWN0KTtcclxuICAgICAgbmV3VmFsdWUucHVzaChuZXdDaGFyKTtcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUuc2V0KG5ld1ZhbHVlKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdmFsaWRhdGVTaW5nbGVDaGFyKGNoYXI6IHN0cmluZyB8IG51bGwsIGJlZm9yZTogc3RyaW5nLCBjb25maWc6IERpZ2l0SW5wdXRPcHRpb24pOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIC8vIHJldHVybiB0aGUgY2hhcmFjdGVyIGlmIGl0IGlzIHN0YXRpY1xyXG4gICAgaWYgKCdzdGF0aWMnIGluIGNvbmZpZykgcmV0dXJuIGNvbmZpZy5zdGF0aWM7XHJcbiAgICAvLyBmb3IgcGVhY2Ugb2YgbWluZCBwcm90ZWN0IGFnYWluc3QgbW9kaWZ5aW5nIHJlYWQtb25seSBmaWVsZHNcclxuICAgIGlmIChjb25maWcucmVhZG9ubHkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIGBBUkQtSVMwMDQ5UjogdHJ5aW5nIHRvIHNldCB2YWx1ZSBvZiBhIDxhcmQtZGlnaXQtaW5wdXQ+J3MgcmVhZG9ubHkgZmllbGQuIFRoaXMgaXMgZXJyb3IgaXMgZmF0YWwgdG8gdGhlIGZ1bmN0aW9uaW5nIG9mIEFyZGl1bSBVSS4gUGxlYXNlIHJlcG9ydCB0aGlzIGlzc3VlIHRvIHRoZSBjcmVhdG9ycy5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICAvLyBwcm9jZXNzIHJlZ2V4IG9yIGNvbnZlcnQgc3RyaW5nIGludG8gcmVnZXhcclxuICAgIGlmICghaXNGdW5jdGlvbihjb25maWcuYWNjZXB0KSkge1xyXG4gICAgICBjb25zdCByZWdFeHAgPSBpc1JlZ0V4cChjb25maWcuYWNjZXB0KSA/IGNvbmZpZy5hY2NlcHQgOiBuZXcgUmVnRXhwKGBbJHtfc2FuaXRpemVSZWdFeHBTdHJpbmcoY29uZmlnLmFjY2VwdCl9XWApO1xyXG4gICAgICBjb25maWcuYWNjZXB0ID0gc3RyID0+IHJlZ0V4cC50ZXN0KHN0cik7XHJcbiAgICB9XHJcbiAgICBpZiAoIWNoYXIpIHJldHVybiBjaGFyO1xyXG5cclxuICAgIC8vIGNoZWNrIGlmIGlucHV0IGZpdHMgdGhlIGNyaXRlcmlhXHJcbiAgICBjb25zdCBjYW5BY2NlcHQgPSBjb25maWcuYWNjZXB0KGNoYXIsIGJlZm9yZSk7XHJcbiAgICBpZiAoIWNhbkFjY2VwdCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgLy8gdHJhbnNmb3JtIGlmIG5lZWRlZFxyXG4gICAgY29uc3QgdHJhbnNmb3JtID0gY29uZmlnLnRyYW5zZm9ybSA/PyB0aGlzLl9hcmRIb3N0LnRyYW5zZm9ybSgpO1xyXG4gICAgaWYgKHRyYW5zZm9ybSkge1xyXG4gICAgICBpZiAodHJhbnNmb3JtID09PSBUcmFuc2Zvcm1UeXBlLkxvd2VyY2FzZSkge1xyXG4gICAgICAgIHJldHVybiBjaGFyLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRyYW5zZm9ybSA9PT0gVHJhbnNmb3JtVHlwZS5VcHBlcmNhc2UpIHtcclxuICAgICAgICByZXR1cm4gY2hhci50b1VwcGVyQ2FzZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpc0Z1bmN0aW9uKHRyYW5zZm9ybSkpIHtcclxuICAgICAgICByZXR1cm4gdHJhbnNmb3JtKGNoYXIpLmNoYXJBdCgwKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgYEFSRC1JUzAwNDlUOiA8YXJkLWRpZ2l0LWlucHV0PidzIHZhbHVlIHZhbGlkYXRvciBlbmNvdW50ZXJlZCBhbiB1bmV4cGVjdGVkIHZhbHVlIG9mIHRoZSBjb25maWcncyBcInRyYW5zZm9ybVwiIHByb3BlcnR5LiBBcmRpdW0gVUkgd2FzIGFibGUgdG8gaGFuZGxlIHRoaXMgaXNzdWUsIGJ1dCBwbGVhc2UgcmVwb3J0IGl0IHRvIHRoZSBjcmVhdG9ycy5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2hhcjtcclxuICB9XHJcbn1cclxuIl19
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9kaWdpdC1pbnB1dC9kaWdpdC1pbnB1dC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNGLE9BQU8sRUFJTCx5QkFBeUIsRUFDekIsYUFBYSxHQUNkLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUF3Qix3QkFBd0IsRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSSxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixRQUE2QjtRQUE3QixhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQXNCaEMsaUJBQVksR0FBRyxNQUFNLENBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBRXRELG9CQUFlLEdBQUcsUUFBUSxDQUF5QixHQUFHLEVBQUU7WUFDL0QsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0QyxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDbEIsT0FBTzt3QkFDTCxJQUFJLEVBQUUsd0JBQXdCLENBQUMsTUFBTTt3QkFDckMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNO3FCQUNnQixDQUFDO2dCQUNuQyxDQUFDO2dCQUNELE9BQU87b0JBQ0wsSUFBSSxFQUFFLHdCQUF3QixDQUFDLEtBQUs7b0JBQ3BDLEtB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Y29tcHV0ZWQsIGVmZmVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvZXJjZUFycmF5UHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IGlzQW55U3RyaW5nLCBpc0FycmF5LCBpc0Z1bmN0aW9uLCBpc051bGwsIGlzTnVtYmVyLCBpc1JlZ0V4cCB9IGZyb20gJ3NpbXBsZS1ib29sJztcclxuaW1wb3J0IHtcclxuICBEaWdpdElucHV0QWNjZXB0T2JqZWN0LFxyXG4gIERpZ2l0SW5wdXRDb25maWcsXHJcbiAgRGlnaXRJbnB1dE9wdGlvbixcclxuICBEaWdpdElucHV0UHJpbWl0aXZlT3B0aW9uLFxyXG4gIFRyYW5zZm9ybVR5cGUsXHJcbn0gZnJvbSAnLi9kaWdpdC1pbnB1dC50eXBlcyc7XHJcbmltcG9ydCB7IERpZ2l0SW5wdXRDb25maWdEYXRhLCBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUsIERpZ2l0SW5wdXRNb2RlbEhvc3QsIF9zYW5pdGl6ZVJlZ0V4cFN0cmluZyB9IGZyb20gJy4vZGlnaXQtaW5wdXQudXRpbHMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIERpZ2l0SW5wdXRNb2RlbCB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXJkSG9zdDogRGlnaXRJbnB1dE1vZGVsSG9zdCkge1xyXG4gICAgLy9zZXQgdGhlIHZhbHVlIGFycmF5IHRvIGJlIHRoZSBzYW1lIGxlbmd0aFxyXG4gICAgZWZmZWN0KFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29uZmlnQXJyID0gdGhpcy5jb25maWdBcnJheURhdGEoKTtcclxuICAgICAgICBjb25zdCBsZW5ndGggPSBjb25maWdBcnIubGVuZ3RoO1xyXG5cclxuICAgICAgICB0aGlzLnZhbHVlLnVwZGF0ZShhcnIgPT4ge1xyXG4gICAgICAgICAgaWYgKCFhcnIpIGFyciA9IFtdO1xyXG4gICAgICAgICAgY29uc3QgbmV3QXJyOiAoc3RyaW5nIHwgbnVsbClbXSA9IFtdO1xyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyID0gYXJyW2ldO1xyXG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSBjb25maWdBcnJbaV07XHJcbiAgICAgICAgICAgIG5ld0Fyci5wdXNoKGNvbmZpZy50eXBlID09PSBEaWdpdElucHV0Q29uZmlnRGF0YVR5cGUuU3RhdGljID8gY29uZmlnLmNoYXIhIDogY3VyciA/PyBudWxsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBuZXdBcnI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZ0FycmF5ID0gc2lnbmFsPERpZ2l0SW5wdXRPcHRpb25bXT4oW10pO1xyXG5cclxuICByZWFkb25seSBjb25maWdBcnJheURhdGEgPSBjb21wdXRlZDxEaWdpdElucHV0Q29uZmlnRGF0YVtdPigoKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnQXJyYXkoKS5tYXAoKHYsIGkpID0+IHtcclxuICAgICAgaWYgKCdzdGF0aWMnIGluIHYpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgdHlwZTogRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlLlN0YXRpYyxcclxuICAgICAgICAgIGNoYXI6IHYuc3RhdGljLFxyXG4gICAgICAgIH0gc2F0aXNmaWVzIERpZ2l0SW5wdXRDb25maWdEYXRhO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogRGlnaXRJbnB1dENvbmZpZ0RhdGFUeXBlLklucHV0LFxyXG4gICAgICAgIGluZGV4OiBpLFxyXG4gICAgICAgIHJlYWRvbmx5OiB2LnJlYWRvbmx5LFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiB2LnBsYWNlaG9sZGVyID8/ICcnLFxyXG4gICAgICB9IHNhdGlzZmllcyBEaWdpdElucHV0Q29uZmlnRGF0YTtcclxuICAgIH0pO1xyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBpc0NvbmZpZ0RlZmluZWQgPSBjb21wdXRlZCgoKTogYm9vbGVhbiA9PiB0aGlzLl9jb25maWdBcnJheSgpLmxlbmd0aCA+IDApO1xyXG5cclxuICByZWFkb25seSB2YWx1ZSA9IHNpZ25hbDwoc3RyaW5nIHwgbnVsbClbXSB8IG51bGw+KG51bGwpO1xyXG5cclxuICByZWFkb25seSBzdHJpbmdWYWx1ZSA9IGNvbXB1dGVkKFxyXG4gICAgKCk6IHN0cmluZyA9PlxyXG4gICAgICB0aGlzLnZhbHVlKClcclxuICAgICAgICA/Lm1hcCh2ID0+IHYgPz8gJyAnKVxyXG4gICAgICAgIC5qb2luKCcnKSA/PyAnJ1xyXG4gICk7XHJcblxyXG4gIHJlYWRvbmx5IGlzVmFsdWVGdWxsID0gY29tcHV0ZWQoKCk6IGJvb2xlYW4gPT4gdGhpcy52YWx1ZSgpPy5maWx0ZXIodiA9PiB2KS5sZW5ndGggPT09IHRoaXMuX2NvbmZpZ0FycmF5KCkubGVuZ3RoKTtcclxuXHJcbiAgaXNEZWZpbmVkQXRJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnZhbHVlKCk/LltpbmRleF07XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHY6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc29sZS5sb2coJ2V4ZWN1dGluZyBtb2RlbCB3cml0ZVZhbHVlJywgdiwgdGhpcy5fYXJkSG9zdC5vdXRwdXRBc1N0cmluZygpKTtcclxuICAgIGlmICh0aGlzLl9hcmRIb3N0Lm91dHB1dEFzU3RyaW5nKCkpIHtcclxuICAgICAgaWYgKCFpc0FueVN0cmluZyh2KSAmJiAhaXNOdWxsKHYpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgYEFSRC1GVDAwNDBiOiBUcnlpbmcgdG8gc2V0IDxhcmQtZGlnaXQtaW5wdXQ+J3MgdmFsdWUgdG8gXCIke3Z9XCIgKG9mIHR5cGUgJHt0eXBlb2Ygdn0pLCBidXQgdGhlIGlucHV0IHVzZXMgW291dHB1dEFzU3RyaW5nXT1cInRydWVcIiwgYW5kIHRodXMgZXhwZWN0cyBzdHJpbmcgb3IgbnVsbC5gXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB2QXJyYXkgPSB2Py5zcGxpdCgnJykgPz8gW107XHJcbiAgICAgIGNvbnNvbGUubG9nKCdleGVjdXRpbmcgbW9kZWwgd3JpdGVWYWx1ZSAtIHZBcnJheScsIHZBcnJheSwgdGhpcy5fY29uZmlnQXJyYXkoKSk7XHJcblxyXG4gICAgICBpZiAodkFycmF5Lmxlbmd0aCA+IHRoaXMuX2NvbmZpZ0FycmF5KCkubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICAgYEFSRC1XQTAwNDE6IFZhbHVlIHByb3ZpZGVkIHRvIDxhcmQtZGlnaXQtaW5wdXQ+IGlzIHRvbyBsb25nLiBHb3QgJHtcclxuICAgICAgICAgICAgdkFycmF5Lmxlbmd0aFxyXG4gICAgICAgICAgfSBjaGFyYWN0ZXJzLCBidXQgZXhwZWN0ZWQgYSBtYXhpbXVtIG9mICR7dGhpcy5fY29uZmlnQXJyYXkoKS5sZW5ndGh9IGNoYXJhY3RlcnMuYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuX3dyaXRlVmFsdWUodkFycmF5KTtcclxuICAgIH1cclxuICAgIGlmICghaXNBbnlTdHJpbmcodikgJiYgIWlzTnVsbCh2KSAmJiAhaXNBcnJheSh2KSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYEFSRC1GVDAwNDE6IFRyeWluZyB0byBzZXQgPGFyZC1kaWdpdC1pbnB1dD4ncyB2YWx1ZSB0byBcIiR7dn1cIiAob2YgdHlwZSAke3R5cGVvZiB2fSksIGV4cGVjdGVkIHN0cmluZyBvciBhcnJheSBvZiBjaGFyYWN0ZXJzLmBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHZBcnJheSA9IGNvZXJjZUFycmF5UHJvcGVydHkodik7XHJcblxyXG4gICAgaWYgKHZBcnJheS5sZW5ndGggPiB0aGlzLl9jb25maWdBcnJheSgpLmxlbmd0aCkge1xyXG4gICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgYEFSRC1XQTAwNDE6IFZhbHVlIHByb3ZpZGVkIHRvIDxhcmQtZGlnaXQtaW5wdXQ+IGlzIHRvbyBsb25nLiBHb3QgJHtcclxuICAgICAgICAgIHZBcnJheS5sZW5ndGhcclxuICAgICAgICB9IGNoYXJhY3RlcnMsIGJ1dCBleHBlY3RlZCBhIG1heGltdW0gb2YgJHt0aGlzLl9jb25maWdBcnJheSgpLmxlbmd0aH0gY2hhcmFjdGVycy5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwcm9ibGVtSW5kZXggPSB2QXJyYXkuZmluZEluZGV4KGVsID0+ICFpc0FueVN0cmluZyhlbCkgfHwgZWwubGVuZ3RoID4gMSk7XHJcbiAgICBpZiAocHJvYmxlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYEFSRC1GVDAwNDI6IEFycmF5IHBhc3NlZCB0byA8YXJkLWRpZ2l0LWlucHV0PidzIHZhbHVlIG11c3Qgb25seSBjb250YWluIHN0cmluZ3Mgb2YgbGVuZ3RoIDEgb3IgMC4gRWxlbWVudCBcIiR7dkFycmF5W3Byb2JsZW1JbmRleF19XCIgYXQgaW5kZXggJHtwcm9ibGVtSW5kZXh9IGRvZXMgbm90IG1hdGNoIHRob3NlIHJlcXVpcmVtZW50cy5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fd3JpdGVWYWx1ZSh2QXJyYXkpO1xyXG4gIH1cclxuICBwcml2YXRlIF93cml0ZVZhbHVlKHY6IHN0cmluZ1tdIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgaXNPbGRWYWx1ZVRoZVNhbWUgPSB0aGlzLnZhbHVlKCk/Lmxlbmd0aCA/IHRoaXMudmFsdWUoKSEuZXZlcnkoKGNoLCBpKSA9PiBjaCA9PT0gdj8uW2ldKSA6ICF2Py5sZW5ndGg7XHJcbiAgICBjb25zb2xlLmxvZygnZXhlY3V0aW5nIG1vZGVsIF93cml0ZVZhbHVlJywgdiwgJ2N1cnJlbnQgdmFsdWUnLCB0aGlzLnZhbHVlKCksIGlzT2xkVmFsdWVUaGVTYW1lKTtcclxuICAgIGlmIChpc09sZFZhbHVlVGhlU2FtZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgdGhpcy52YWx1ZS5zZXQodiAmJiB2Lm1hcChlbCA9PiBlbCB8fCBudWxsKSk7XHJcbiAgICB0aGlzLnZhbGlkYXRlVmFsdWVBbmRVcGRhdGUoKTtcclxuICAgIHRoaXMuX3VwZGF0ZUlucHV0RWxlbWVudHMoKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlSW5wdXRFbGVtZW50cygpIHtcclxuICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlKCkgPz8gW107XHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICBmb3IgKGNvbnN0IGlucHV0RWwgb2YgdGhpcy5fYXJkSG9zdC5pbnB1dHMoKSkge1xyXG4gICAgICBpbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2W2ldID8/ICcnO1xyXG4gICAgICBpKys7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyEgc2V0dGluZyBjb25maWdcclxuICBzZXRDb25maWcoY29uZmlnOiBEaWdpdElucHV0Q29uZmlnKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXRDb25maWcoY29uZmlnKTtcclxuICAgIHRoaXMudmFsaWRhdGVWYWx1ZUFuZFVwZGF0ZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9zZXRDb25maWcoY29uZmlnOiBEaWdpdElucHV0Q29uZmlnKTogdm9pZCB7XHJcbiAgICAvL21hcCBhIG51bWJlciB0byByZWFkeSBvYmplY3RzXHJcbiAgICBsZXQgY29uZmlnQXNOdW1iZXIgPSBpc0FueVN0cmluZyhjb25maWcpID8gTnVtYmVyKGNvbmZpZykgOiBudWxsO1xyXG4gICAgaWYgKGlzTnVtYmVyKGNvbmZpZykgfHwgaXNOdW1iZXIoY29uZmlnQXNOdW1iZXIpKSB7XHJcbiAgICAgIGNvbmZpZ0FzTnVtYmVyID0gaXNOdW1iZXIoY29uZmlnKSA/IGNvbmZpZyA6IGNvbmZpZ0FzTnVtYmVyITtcclxuICAgICAgdGhpcy5fY29uZmlnQXJyYXkuc2V0KG5ldyBBcnJheShjb25maWdBc051bWJlcikuZmlsbCh7IGFjY2VwdDogKHN0cjogc3RyaW5nKSA9PiAvWzAtOV0vLnRlc3Qoc3RyKSB9KSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vbWFwIGEgc3RyaW5nIHRvIGFuIGFycmF5XHJcbiAgICBsZXQgY29uZmlnQXJyOiBzdHJpbmdbXSB8IEV4Y2x1ZGU8RGlnaXRJbnB1dENvbmZpZywgbnVtYmVyIHwgc3RyaW5nPjtcclxuICAgIGlmIChpc0FueVN0cmluZyhjb25maWcpKSB7XHJcbiAgICAgIGNvbmZpZ0FyciA9IGNvZXJjZUFycmF5UHJvcGVydHkoY29uZmlnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbmZpZ0FyciA9IGNvbmZpZztcclxuICAgIH1cclxuICAgIC8vbWFwIGFycmF5IHRvIHJlYWR5IG9iamVjdHNcclxuICAgIHRoaXMuX2NvbmZpZ0FycmF5LnNldChcclxuICAgICAgY29uZmlnQXJyLm1hcCgodiwgaSkgPT4ge1xyXG4gICAgICAgIGlmICghaXNBbnlTdHJpbmcodikpIHtcclxuICAgICAgICAgIGlmICgnYWNjZXB0JyBpbiB2ICYmICFpc0Z1bmN0aW9uKHYuYWNjZXB0KSkge1xyXG4gICAgICAgICAgICBjb25zdCByZWdFeHAgPSBpc1JlZ0V4cCh2LmFjY2VwdCkgPyB2LmFjY2VwdCA6IG5ldyBSZWdFeHAoYFske19zYW5pdGl6ZVJlZ0V4cFN0cmluZyh2LmFjY2VwdCl9XWApO1xyXG4gICAgICAgICAgICB2LmFjY2VwdCA9IHN0ciA9PiByZWdFeHAudGVzdChzdHIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHY7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzd2l0Y2ggKHYpIHtcclxuICAgICAgICAgIGNhc2UgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbi5OdW1iZXI6XHJcbiAgICAgICAgICAgIHJldHVybiB7IGFjY2VwdDogc3RyID0+IC9bMC05XS8udGVzdChzdHIpIH07XHJcbiAgICAgICAgICBjYXNlIERpZ2l0SW5wdXRQcmltaXRpdmVPcHRpb24uTGV0dGVyOlxyXG4gICAgICAgICAgICByZXR1cm4geyBhY2NlcHQ6IHN0ciA9PiAvW2EtekEtWl0vLnRlc3Qoc3RyKSB9O1xyXG4gICAgICAgICAgY2FzZSBEaWdpdElucHV0UHJpbWl0aXZlT3B0aW9uLkFscGhhbnVtZXJpYzpcclxuICAgICAgICAgICAgcmV0dXJuIHsgYWNjZXB0OiBzdHIgPT4gL1swLTlhLXpBLVpdLy50ZXN0KHN0cikgfTtcclxuICAgICAgICAgIGNhc2UgRGlnaXRJbnB1dFByaW1pdGl2ZU9wdGlvbi5TcGVjaWFsOlxyXG4gICAgICAgICAgICByZXR1cm4geyBhY2NlcHQ6IHN0ciA9PiAvWyFAIyQlXiYqLV89Ky9cXFxcLixdLy50ZXN0KHN0cikgfTtcclxuXHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBpZiAoY29uZmlnQXJyLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQVJELU5GMDA0M1M6IDxhcmQtZGlnaXQtaW5wdXQ+J3MgY29uZmlnIGlzIGludmFsaWQuIEV4cGVjdGVkIG51bWJlciBvciBhcnJheSwgZ290IFwiJHt2fVwiYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBUkQtTkYwMDQzQjogRm91bmQgaW52YWxpZCBzdHJpbmcgXCIke3Z9XCIgaW4gPGFyZC1kaWdpdC1pbnB1dD4ncyBjb25maWcgYXQgaW5kZXggJHtpfWApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXNldElucHV0VmFsdWUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+IHRoaXMuX2NvbmZpZ0FycmF5KCkubGVuZ3RoKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5fY29uZmlnQXJyYXkoKVtpbmRleF0gYXMgRGlnaXRJbnB1dE9wdGlvbjtcclxuICAgIGxldCBuZXdWYWx1ZSA9ICcnO1xyXG4gICAgaWYgKCdzdGF0aWMnIGluIGNvbmZpZykge1xyXG4gICAgICBuZXdWYWx1ZSA9IGNvbmZpZy5zdGF0aWM7XHJcbiAgICB9XHJcblxyXG4gICAgLy9nZXQgdGhlIGNvcnJlc3BvbmRpbmcgSFRNTCBpbnB1dCBlbGVtZW50XHJcbiAgICBjb25zdCBpbnB1dEVsID0gdGhpcy5fYXJkSG9zdC5pbnB1dHMoKVtpbmRleF07XHJcbiAgICBpZiAoIWlucHV0RWwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIFwiQVJELUlTMDA0ODogPGFyZC1kaWdpdC1pbnB1dD4ncyB2YWx1ZSBjaGFuZ2VkLCBidXQgaXRzIGNvcnJlc3BvbmRpbmcgaW5wdXQgZWxlbWVudCBjb3VsZCBub3QgYmUgZm91bmQuIElmIHlvdSBhcmUgcmVhZGluZyB0aGlzLCB5b3UgcHJvYmFibHkgZXhwZXJpZW5jZWQgYSBwcm9ibGVtIHdpdGggQXJkaXVtIFVJLiBQbGVhc2UgcmVwb3J0IHRoaXMgaXNzdWUgdG8gdGhlIGNyZWF0b3JzLlwiXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICAvL3VwZGF0ZSB0aGUgaW5wdXQgZWxlbWVudCBhbmQgdmFsdWUgYXJyYXlcclxuICAgIGlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IG5ld1ZhbHVlO1xyXG5cclxuICAgIHRoaXMudmFsdWUudXBkYXRlKGFyciA9PiB7XHJcbiAgICAgIGlmICghYXJyKSBhcnIgPSBbXTtcclxuICAgICAgY29uc3QgbmV3QXJyID0gWy4uLmFycl07XHJcbiAgICAgIG5ld0FycltpbmRleF0gPSBuZXdWYWx1ZSB8fCBudWxsO1xyXG4gICAgICByZXR1cm4gbmV3QXJyO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyEgdmFsaWRhdGUgYWdhaW5zdCB0aGUgY29uZmlnXHJcbiAgdmFsaWRhdGVJbnB1dEFuZFNldFZhbHVlKFxyXG4gICAgaW5wdXQ6IHN0cmluZyxcclxuICAgIGluZGV4OiBudW1iZXJcclxuICApOiBudWxsIHwgeyB3YXNDaGFuZ2VkOiBib29sZWFuOyB3YXNWYWxpZENoYXI6IGJvb2xlYW47IHJlc3VsdENoYXI6IHN0cmluZyB8IG51bGwgfSB7XHJcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5fY29uZmlnQXJyYXkoKS5sZW5ndGgpIHJldHVybiBudWxsO1xyXG5cclxuICAgIGxldCB2ID0gdGhpcy52YWx1ZSgpO1xyXG4gICAgLy9wcmVwYXJlIHRoZSB2YWx1ZSBhcnJheSBpZiBkb2VzIG5vdCBleGlzdFxyXG4gICAgaWYgKCF2KSB7XHJcbiAgICAgIHRoaXMudmFsdWUuc2V0KFtdKTtcclxuICAgIH1cclxuICAgIHYgPSBbXTtcclxuICAgIC8vcHJlcGFyZSB0aGUgY2hhcmFjdGVycyBiZWZvcmUgdGhlIGN1cnJlbnQgb25lICh0byBiZSB1c2VkIGluIHZhbGlkYXRpb24pXHJcbiAgICBjb25zdCBiZWZvcmUgPSB0aGlzLnN0cmluZ1ZhbHVlKCkuY2hhckF0KGluZGV4KTtcclxuXHJcbiAgICAvL3JlbW92ZSB0aGUgb2xkIGNoYXJhY3RlciBmcm9tIHRoZSBpbnB1dCBlbGVtZW50XHJcbiAgICBpZiAoYmVmb3JlICYmIGlucHV0Lmxlbmd0aCA+IDEgJiYgaW5wdXQubWF0Y2goYmVmb3JlKSkge1xyXG4gICAgICBpbnB1dCA9IGlucHV0LnJlcGxhY2UoYmVmb3JlLCAnJyk7XHJcbiAgICB9XHJcbiAgICAvL3VzZSBvbmx5IHRoZSBmaXJzdCBvciBsYXN0IGNoYXJhY3RlciAoZXJyb3Igc2FmZXR5KVxyXG4gICAgY29uc3QgZmlyc3RDaGFyID0gaW5wdXQuY2hhckF0KDApO1xyXG4gICAgY29uc3QgbGFzdENoYXIgPSBpbnB1dC5jaGFyQXQoaW5wdXQubGVuZ3RoIC0gMSk7XHJcbiAgICBpbnB1dCA9IGZpcnN0Q2hhciA9PT0gYmVmb3JlID8gbGFzdENoYXIgOiBmaXJzdENoYXI7XHJcblxyXG4gICAgLy92YWxpZGF0ZSBhbmQgdHJhbnNmb3JtLCBpZiBuZWNlc3NhcnlcclxuICAgIGNvbnN0IGlucHV0Q2hhciA9IHRoaXMuX3ZhbGlkYXRlU2luZ2xlQ2hhcihpbnB1dCwgYmVmb3JlLCB0aGlzLl9jb25maWdBcnJheSgpW2luZGV4XSBhcyBEaWdpdElucHV0QWNjZXB0T2JqZWN0KTtcclxuXHJcbiAgICAvL2dldCB0aGUgY29ycmVzcG9uZGluZyBIVE1MIGlucHV0IGVsZW1lbnRcclxuICAgIGNvbnN0IGlucHV0RWwgPSB0aGlzLl9hcmRIb3N0LmlucHV0cygpW2luZGV4XTtcclxuICAgIGlmICghaW5wdXRFbCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgXCJBUkQtSVMwMDQ4OiA8YXJkLWRpZ2l0LWlucHV0PidzIHZhbHVlIGNoYW5nZWQsIGJ1dCBpdHMgY29ycmVzcG9uZGluZyBpbnB1dCBlbGVtZW50IGNvdWxkIG5vdCBiZSBmb3VuZC4gSWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHlvdSBwcm9iYWJseSBleHBlcmllbmNlZCBhIHByb2JsZW0gd2l0aCBBcmRpdW0gVUkuIFBsZWFzZSByZXBvcnQgdGhpcyBpc3N1ZSB0byB0aGUgY3JlYXRvcnMuXCJcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIC8vdXBkYXRlIHRoZSBpbnB1dCBlbGVtZW50IGFuZCB2YWx1ZSBhcnJheVxyXG4gICAgY29uc3QgbmV3VmFsID0gaW5wdXRDaGFyID8/IGJlZm9yZTtcclxuICAgIGlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IG5ld1ZhbCA/PyAnJztcclxuXHJcbiAgICB0aGlzLnZhbHVlLnVwZGF0ZShhcnIgPT4ge1xyXG4gICAgICBpZiAoIWFycikgYXJyID0gW107XHJcbiAgICAgIGNvbnN0IG5ld0FyciA9IFsuLi5hcnJdO1xyXG4gICAgICBuZXdBcnJbaW5kZXhdID0gbmV3VmFsIHx8IG51bGw7XHJcbiAgICAgIHJldHVybiBuZXdBcnI7XHJcbiAgICB9KTtcclxuICAgIC8vcmV0dXJuIGNoYW5nZXMgbWFya2VyIGFuZCB2YWxpZGF0ZWQgdmFsdWVcclxuICAgIHJldHVybiB7IHdhc0NoYW5nZWQ6IG5ld1ZhbCAhPT0gYmVmb3JlLCB3YXNWYWxpZENoYXI6ICFpc051bGwoaW5wdXRDaGFyKSwgcmVzdWx0Q2hhcjogaW5wdXRDaGFyIH07XHJcbiAgfVxyXG4gIHZhbGlkYXRlVmFsdWVBbmRVcGRhdGUoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2ID0gdGhpcy52YWx1ZSgpO1xyXG4gICAgaWYgKCF2KSByZXR1cm47XHJcblxyXG4gICAgbGV0IGJlZm9yZSA9ICcnO1xyXG4gICAgY29uc3QgbmV3VmFsdWU6IChzdHJpbmcgfCBudWxsKVtdID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE1hdGgubWluKHRoaXMuX2NvbmZpZ0FycmF5KCkubGVuZ3RoLCB2Lmxlbmd0aCk7IGkrKykge1xyXG4gICAgICBjb25zdCBjaGFyID0gdltpXTtcclxuICAgICAgYmVmb3JlICs9IGNoYXIgPz8gJyAnO1xyXG5cclxuICAgICAgaWYgKCFjaGFyKSB7XHJcbiAgICAgICAgbmV3VmFsdWUucHVzaChjaGFyKTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBuZXdDaGFyID0gdGhpcy5fdmFsaWRhdGVTaW5nbGVDaGFyKGNoYXIsIGJlZm9yZSwgdGhpcy5fY29uZmlnQXJyYXkoKVtpXSBhcyBEaWdpdElucHV0QWNjZXB0T2JqZWN0KTtcclxuICAgICAgbmV3VmFsdWUucHVzaChuZXdDaGFyKTtcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUuc2V0KG5ld1ZhbHVlKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdmFsaWRhdGVTaW5nbGVDaGFyKGNoYXI6IHN0cmluZyB8IG51bGwsIGJlZm9yZTogc3RyaW5nLCBjb25maWc6IERpZ2l0SW5wdXRPcHRpb24pOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIC8vIHJldHVybiB0aGUgY2hhcmFjdGVyIGlmIGl0IGlzIHN0YXRpY1xyXG4gICAgaWYgKCdzdGF0aWMnIGluIGNvbmZpZykgcmV0dXJuIGNvbmZpZy5zdGF0aWM7XHJcbiAgICAvLyBmb3IgcGVhY2Ugb2YgbWluZCBwcm90ZWN0IGFnYWluc3QgbW9kaWZ5aW5nIHJlYWQtb25seSBmaWVsZHNcclxuICAgIGlmIChjb25maWcucmVhZG9ubHkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIGBBUkQtSVMwMDQ5UjogdHJ5aW5nIHRvIHNldCB2YWx1ZSBvZiBhIDxhcmQtZGlnaXQtaW5wdXQ+J3MgcmVhZG9ubHkgZmllbGQuIFRoaXMgaXMgZXJyb3IgaXMgZmF0YWwgdG8gdGhlIGZ1bmN0aW9uaW5nIG9mIEFyZGl1bSBVSS4gUGxlYXNlIHJlcG9ydCB0aGlzIGlzc3VlIHRvIHRoZSBjcmVhdG9ycy5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICAvLyBwcm9jZXNzIHJlZ2V4IG9yIGNvbnZlcnQgc3RyaW5nIGludG8gcmVnZXhcclxuICAgIGlmICghaXNGdW5jdGlvbihjb25maWcuYWNjZXB0KSkge1xyXG4gICAgICBjb25zdCByZWdFeHAgPSBpc1JlZ0V4cChjb25maWcuYWNjZXB0KSA/IGNvbmZpZy5hY2NlcHQgOiBuZXcgUmVnRXhwKGBbJHtfc2FuaXRpemVSZWdFeHBTdHJpbmcoY29uZmlnLmFjY2VwdCl9XWApO1xyXG4gICAgICBjb25maWcuYWNjZXB0ID0gc3RyID0+IHJlZ0V4cC50ZXN0KHN0cik7XHJcbiAgICB9XHJcbiAgICBpZiAoIWNoYXIpIHJldHVybiBjaGFyO1xyXG5cclxuICAgIC8vIGNoZWNrIGlmIGlucHV0IGZpdHMgdGhlIGNyaXRlcmlhXHJcbiAgICBjb25zdCBjYW5BY2NlcHQgPSBjb25maWcuYWNjZXB0KGNoYXIsIGJlZm9yZSk7XHJcbiAgICBpZiAoIWNhbkFjY2VwdCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgLy8gdHJhbnNmb3JtIGlmIG5lZWRlZFxyXG4gICAgY29uc3QgdHJhbnNmb3JtID0gY29uZmlnLnRyYW5zZm9ybSA/PyB0aGlzLl9hcmRIb3N0LnRyYW5zZm9ybSgpO1xyXG4gICAgaWYgKHRyYW5zZm9ybSkge1xyXG4gICAgICBpZiAodHJhbnNmb3JtID09PSBUcmFuc2Zvcm1UeXBlLkxvd2VyY2FzZSkge1xyXG4gICAgICAgIHJldHVybiBjaGFyLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRyYW5zZm9ybSA9PT0gVHJhbnNmb3JtVHlwZS5VcHBlcmNhc2UpIHtcclxuICAgICAgICByZXR1cm4gY2hhci50b1VwcGVyQ2FzZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpc0Z1bmN0aW9uKHRyYW5zZm9ybSkpIHtcclxuICAgICAgICByZXR1cm4gdHJhbnNmb3JtKGNoYXIpLmNoYXJBdCgwKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgYEFSRC1JUzAwNDlUOiA8YXJkLWRpZ2l0LWlucHV0PidzIHZhbHVlIHZhbGlkYXRvciBlbmNvdW50ZXJlZCBhbiB1bmV4cGVjdGVkIHZhbHVlIG9mIHRoZSBjb25maWcncyBcInRyYW5zZm9ybVwiIHByb3BlcnR5LiBBcmRpdW0gVUkgd2FzIGFibGUgdG8gaGFuZGxlIHRoaXMgaXNzdWUsIGJ1dCBwbGVhc2UgcmVwb3J0IGl0IHRvIHRoZSBjcmVhdG9ycy5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2hhcjtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -433,7 +433,7 @@ class DigitInputModel {
|
|
|
433
433
|
return this._writeValue(vArray);
|
|
434
434
|
}
|
|
435
435
|
_writeValue(v) {
|
|
436
|
-
const isOldValueTheSame = this.value() ? this.value().every((ch, i) => ch === v?.[i]) : !v;
|
|
436
|
+
const isOldValueTheSame = this.value()?.length ? this.value().every((ch, i) => ch === v?.[i]) : !v?.length;
|
|
437
437
|
console.log('executing model _writeValue', v, 'current value', this.value(), isOldValueTheSame);
|
|
438
438
|
if (isOldValueTheSame)
|
|
439
439
|
return false;
|