Sanakey
2021-07-09 3fc241d02fb8b671289de3d9d80bf848349c04d4
components/time-quantum/index.js
@@ -19,11 +19,11 @@
    data: {
        minStartDate: new Date().getTime(),
        maxStartDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 180,
        startDate: 0,
        startDate: new Date().getTime(),
        startTime: '',
        minEndDate: new Date().getTime() + 1000 * 60,
        maxEndDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 365 * 100,
        endDate: 0,
        endDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 7,
        endTime: '',
        formatter: function (type, value) {
            if (type === "year") {
@@ -41,6 +41,8 @@
    lifetimes: {
        ready: function () {
            this.setData({
                startTime: this.data.startTime || wx.$utils.formatTime(new Date().getTime()),
                endTime: this.data.endTime || wx.$utils.formatTime(new Date().getTime() + 1000 * 60 * 60 * 24 * 7),
                minStartDate: new Date().getTime(),
                maxStartDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 180,
            });
@@ -69,16 +71,16 @@
            });
            this.handleTimeQuantum();
            this.onStartDatePopupClose();
            this.checkTime("startTime", "请选择计划开始时间");
            this.checkTime("startTime");
        },
        onInputStartDate: function () { },
        onCancelStartDate: function () {
            this.onStartDatePopupClose();
            this.checkTime("startTime", "请选择计划开始时间");
            this.checkTime("startTime");
        },
        onCancelEndDate: function () {
            this.onEndDatePopupClose();
            this.checkTime("endTime", "请选择计划结束时间");
            this.checkTime("endTime");
        },
        onInputEndDate: function () { },
        showEndDatePopup: function () {
@@ -100,7 +102,7 @@
            });
            this.handleTimeQuantum();
            this.onEndDatePopupClose();
            this.checkTime("endTime", "请选择计划结束时间");
            this.checkTime("endTime");
        },
        handleTimeQuantum: function () {
            var startTime = this.data.startTime;
@@ -134,32 +136,32 @@
                endTime: endTime
            });
        },
        checkTime: function (time, msg) {
            var _a, _b, _c, _d;
            if (this.data[time] == '') {
                this.setData((_a = {},
                    _a[time + "Error"] = msg,
                    _a));
                console.log(this.data.startTime);
                return false;
            }
        getSelectedTime: function () {
            var data = this.data;
            return {
                startTime: data.startTime,
                endTime: data.endTime,
            };
        },
        checkTime: function (time) {
            var _a, _b, _c;
            var startDate = this.data.startDate;
            var endDate = this.data.endDate;
            console.log(this.data);
            if (startDate && endDate && (startDate - endDate > 0)) {
                this.setData((_b = {},
                    _b["startTimeError"] = "开始时间需小于结束时间",
                    _b));
                this.setData((_a = {},
                    _a["startTimeError"] = "开始时间需小于结束时间",
                    _a));
                return false;
            }
            else {
                this.setData((_c = {},
                    _c["startTimeError"] = "",
                    _c));
                this.setData((_b = {},
                    _b["startTimeError"] = "",
                    _b));
            }
            this.setData((_d = {},
                _d[time + "Error"] = "",
                _d));
            this.setData((_c = {},
                _c[time + "Error"] = "",
                _c));
            return true;
        },
        formatTime: function (time) {
@@ -170,4 +172,4 @@
        }
    }
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDZCQUErQjtBQUUvQixTQUFTLENBQUM7SUFJUixPQUFPLEVBQUU7UUFDUCxjQUFjLEVBQUUsSUFBSTtRQUNwQixhQUFhLEVBQUUsSUFBSTtLQUNwQjtJQUNELFVBQVUsRUFBRTtRQUNWLFNBQVMsRUFBQztZQUNSLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFDLEVBQUU7U0FDVDtRQUNELE9BQU8sRUFBQztZQUNOLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFDLEVBQUU7U0FDVDtLQWlCRjtJQUtELElBQUksRUFBRTtRQUNKLFlBQVksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRTtRQUNsQyxZQUFZLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRztRQUM5RCxTQUFTLEVBQUUsQ0FBQztRQUNaLFNBQVMsRUFBRSxFQUFFO1FBQ2IsVUFBVSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUU7UUFDNUMsVUFBVSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHO1FBQ2xFLE9BQU8sRUFBRSxDQUFDO1FBQ1YsT0FBTyxFQUFFLEVBQUU7UUFDWCxTQUFTLFlBQUMsSUFBVyxFQUFFLEtBQVk7WUFFakMsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUNuQixPQUFVLEtBQUssV0FBRyxDQUFDO2FBQ3BCO2lCQUFNLElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRTtnQkFDM0IsT0FBVSxLQUFLLFdBQUcsQ0FBQzthQUNwQjtpQkFBTSxJ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ZW50IjpbIlxyXG4vLyBjb25zdCBhcHAgPSBnZXRBcHA8SUFwcE9wdGlvbj4oKTtcclxuaW1wb3J0ICogYXMgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbnR5cGUgdGltZVR5cGUgPSAnc3RhcnRUaW1lJ3wnZW5kVGltZSc7XHJcbkNvbXBvbmVudCh7XHJcbiAgLyoqXHJcbiAgICog57uE5Lu255qE5bGe5oCn5YiX6KGoXHJcbiAgICovXHJcbiAgb3B0aW9uczoge1xyXG4gICAgYWRkR2xvYmFsQ2xhc3M6IHRydWUsXHJcbiAgICBtdWx0aXBsZVNsb3RzOiB0cnVlIC8vIOWcqOe7hOS7tuWumuS5ieaXtueahOmAiemhueS4reWQr+eUqOWkmnNsb3TmlK/mjIFcclxuICB9LFxyXG4gIHByb3BlcnRpZXM6IHtcclxuICAgIHN0YXJ0VGltZTp7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgdmFsdWU6JydcclxuICAgIH0sXHJcbiAgICBlbmRUaW1lOntcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICB2YWx1ZTonJ1xyXG4gICAgfSxcclxuICAgIC8vIG1pblN0YXJ0RGF0ZTp7XHJcbiAgICAvLyAgIHR5cGU6IE51bWJlcnx8U3RyaW5nLFxyXG4gICAgLy8gICB2YWx1ZTpuZXcgRGF0ZSgpLmdldFRpbWUoKVxyXG4gICAgLy8gfSxcclxuICAgIC8vIG1pblN0YXJ0RGF0ZTp7XHJcbiAgICAvLyAgIHR5cGU6IE51bWJlcnx8U3RyaW5nLFxyXG4gICAgLy8gICB2YWx1ZTpuZXcgRGF0ZSgpLmdldFRpbWUoKVxyXG4gICAgLy8gfSxcclxuICAgIC8vIG1pblN0YXJ0RGF0ZTp7XHJcbiAgICAvLyAgIHR5cGU6IE51bWJlcnx8U3RyaW5nLFxyXG4gICAgLy8gICB2YWx1ZTpuZXcgRGF0ZSgpLmdldFRpbWUoKVxyXG4gICAgLy8gfSxcclxuICAgIC8vIG1pblN0YXJ0RGF0ZTp7XHJcbiAgICAvLyAgIHR5cGU6IE51bWJlcnx8U3RyaW5nLFxyXG4gICAgLy8gICB2YWx1ZTpuZXcgRGF0ZSgpLmdldFRpbWUoKVxyXG4gICAgLy8gfSxcclxuICB9LFxyXG5cclxuICAvKipcclxuICAgKiDnu4Tku7bnmoTliJ3lp4vmlbDmja5cclxuICAgKi9cclxuICBkYXRhOiB7XHJcbiAgICBtaW5TdGFydERhdGU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpLFxyXG4gICAgbWF4U3RhcnREYXRlOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIDEwMDAgKiA2MCAqIDYwICogMjQgKiAxODAsXHJcbiAgICBzdGFydERhdGU6IDAsIC8vbmV3IERhdGUoKS5nZXRUaW1lKCksXHJcbiAgICBzdGFydFRpbWU6ICcnLFxyXG4gICAgbWluRW5kRGF0ZTogbmV3IERhdGUoKS5nZXRUaW1lKCkgKyAxMDAwICogNjAsXHJcbiAgICBtYXhFbmREYXRlOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIDEwMDAgKiA2MCAqIDYwICogMjQgKiAzNjUgKiAxMDAsXHJcbiAgICBlbmREYXRlOiAwLCAvL25ldyBEYXRlKCkuZ2V0VGltZSgpLFxyXG4gICAgZW5kVGltZTogJycsXHJcbiAgICBmb3JtYXR0ZXIodHlwZTpzdHJpbmcsIHZhbHVlOnN0cmluZykge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyh0eXBlLHZhbHVlKVxyXG4gICAgICBpZiAodHlwZSA9PT0gXCJ5ZWFyXCIpIHtcclxuICAgICAgICByZXR1cm4gYCR7dmFsdWV95bm0YDtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcIm1vbnRoXCIpIHtcclxuICAgICAgICByZXR1cm4gYCR7dmFsdWV95pyIYDtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcImRheVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlfeaXpWA7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfSxcclxuICB9LFxyXG5cclxuICBsaWZldGltZXM6IHtcclxuICAgIHJlYWR5KCkge1xyXG4gICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgIG1pblN0YXJ0RGF0ZTogbmV3IERhdGUoKS5nZXRUaW1lKCksXHJcbiAgICAgICAgbWF4U3RhcnREYXRlOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIDEwMDAgKiA2MCAqIDYwICogMjQgKiAxODAsXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfSxcclxuICAvKipcclxuICAgKiDnu4Tku7bnmoTmlrnms5XliJfooahcclxuICAgKi9cclxuICBtZXRob2RzOiB7XHJcbiAgICBzaG93U3RhcnREYXRlUG9wdXAoKXtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICBpc1Nob3dTdGFydERhdGVQb3B1cDogdHJ1ZVxyXG4gICAgICB9KVxyXG4gICAgfSxcclxuICAgIG9uU3RhcnREYXRlUG9wdXBDbG9zZSgpe1xyXG4gICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgIGlzU2hvd1N0YXJ0RGF0ZVBvcHVwOiBmYWxzZVxyXG4gICAgICB9KVxyXG4gICAgfSxcclxuICAgIG9uRW50ZXJTdGFydERhdGUoZXZlbnQ6IHsgZGV0YWlsOiBhbnk7IH0pIHtcclxuICAgICAgbGV0IGRldGFpbCA9IGV2ZW50LmRldGFpbDtcclxuICAgICAgY29uc3QgZGF0ZVRpbWU6YW55ID0gdGhpcy5mb3JtYXRUaW1lKGV2ZW50LmRldGFpbCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKGRhdGVUaW1lKTtcclxuICAgICAgLy8gLy8g5bey6YCJ5oup6L+H57uT5p2f5pel5pyf77yM5LiUXHJcbiAgICAgIC8vIGlmIChcclxuICAgICAgLy8gICB0aGlzLmRhdGEuZW5kRGF0ZSAmJlxyXG4gICAgICAvLyAgIE1hdGguYWJzKGRldGFpbCAtIHRoaXMuZGF0YS5lbmREYXRlKSA+IDEwMDAgKiA2MCAqIDYwICogMjRcclxuICAgICAgLy8gKSB7XHJcbiAgICAgIC8vICAgbGV0IGRhdGUgPSBkZXRhaWwgKyAxMDAwICogNjAgKiA2MCAqIDI0O1xyXG4gICAgICAvLyAgIGxldCB0aW1lID0gdGhpcy5mb3JtYXRUaW1lKGRhdGUpO1xyXG4gICAgICAvLyAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIC8vICAgICBlbmREYXRlOiBkYXRlLFxyXG4gICAgICAvLyAgICAgZW5kVGltZTogdGltZSxcclxuICAgICAgLy8gICB9KTtcclxuICAgICAgLy8gfVxyXG4gICAgICAvLyBpZiAoXHJcbiAgICAgIC8vICAgdGhpcy5kYXRhLmVuZERhdGUgJiZcclxuICAgICAgLy8gICBNYXRoLmFicyhkZXRhaWwgLSB0aGlzLmRhdGEuZW5kRGF0ZSkgPCAxMDAwICogNjBcclxuICAgICAgLy8gKSB7XHJcbiAgICAgIC8vICAgbGV0IGRhdGUgPSBkZXRhaWwgKyAxMDAwICogNjAgO1xyXG4gICAgICAvLyAgIGxldCB0aW1lID0gdGhpcy5mb3JtYXRUaW1lKGRhdGUpO1xyXG4gICAgICAvLyAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIC8vICAgICBlbmREYXRlOiBkYXRlLFxyXG4gICAgICAvLyAgICAgZW5kVGltZTogdGltZSxcclxuICAgICAgLy8gICB9KTtcclxuICAgICAgLy8gfVxyXG4gICAgICAvLyBpZiAodGhpcy5kYXRhLmVuZERhdGUgJiYgZS5kZXRhaWwgPiB0aGlzLmRhdGEuZW5kRGF0ZSkge1xyXG4gICAgICAvLyB9XHJcbiAgICAgIGNvbnNvbGUubG9nKFwi6YCJ5oup5byA5pKt5pe26Ze0XCIsIGRhdGVUaW1lLGRldGFpbCk7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgc3RhcnREYXRlOiBkZXRhaWwsXHJcbiAgICAgICAgc3RhcnRUaW1lOiBkYXRlVGltZSxcclxuICAgICAgICBtaW5FbmREYXRlOiBkZXRhaWwgKyAxMDAwICogNjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmhhbmRsZVRpbWVRdWFudHVtKCk7XHJcbiAgICAgIHRoaXMub25TdGFydERhdGVQb3B1cENsb3NlKCk7XHJcbiAgICAgIHRoaXMuY2hlY2tUaW1lKFwic3RhcnRUaW1lXCIsIFwi6K+36YCJ5oup6K6h5YiS5byA5aeL5pe26Ze0XCIpO1xyXG4gICAgfSxcclxuICAgIG9uSW5wdXRTdGFydERhdGUoKSB7fSxcclxuICAgIG9uQ2FuY2VsU3RhcnREYXRlKCkge1xyXG4gICAgICB0aGlzLm9uU3RhcnREYXRlUG9wdXBDbG9zZSgpO1xyXG4gICAgICB0aGlzLmNoZWNrVGltZShcInN0YXJ0VGltZVwiLCBcIuivt+mAieaLqeiuoeWIkuW8gOWni+aXtumXtFwiKTtcclxuICAgIH0sXHJcbiAgICBvbkNhbmNlbEVuZERhdGUoKSB7XHJcbiAgICAgIHRoaXMub25FbmREYXRlUG9wdXBDbG9zZSgpO1xyXG4gICAgICB0aGlzLmNoZWNrVGltZShcImVuZFRpbWVcIiwgXCLor7fpgInmi6norqHliJLnu5PmnZ/ml7bpl7RcIik7XHJcbiAgICB9LFxyXG4gICAgb25JbnB1dEVuZERhdGUoKSB7fSxcclxuICAgIHNob3dFbmREYXRlUG9wdXAoKXtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICBpc1Nob3dFbmREYXRlUG9wdXA6IHRydWVcclxuICAgICAgfSlcclxuICAgIH0sXHJcbiAgICBvbkVuZERhdGVQb3B1cENsb3NlKCl7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgaXNTaG93RW5kRGF0ZVBvcHVwOiBmYWxzZVxyXG4gICAgICB9KVxyXG4gICAgfSxcclxuICAgIG9uRW50ZXJFbmREYXRlKGV2ZW50OiB7IGRldGFpbDogYW55OyB9KSB7XHJcbiAgICAgIGNvbnN0IGRhdGU6YW55ID0gdGhpcy5mb3JtYXRUaW1lKGV2ZW50LmRldGFpbCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKGRhdGUpO1xyXG4gICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgIGVuZFRpbWU6IGRhdGUsXHJcbiAgICAgICAgZW5kRGF0ZTogZXZlbnQuZGV0YWlsLFxyXG4gICAgICB9KTtcclxuICAgICAgLy8gdGhpcy50cmlnZ2VyRXZlbnQoJ3NlbGVjdGVkRW5kVGltZScse1xyXG4gICAgICAvLyAgIGVuZFRpbWU6IGRhdGVcclxuICAgICAgLy8gfSk7XHJcbiAgICAgIHRoaXMuaGFuZGxlVGltZVF1YW50dW0oKTtcclxuICAgICAgdGhpcy5vbkVuZERhdGVQb3B1cENsb3NlKCk7XHJcbiAgICAgIHRoaXMuY2hlY2tUaW1lKFwiZW5kVGltZVwiLCBcIuivt+mAieaLqeiuoeWIkue7k+adn+aXtumXtFwiKTtcclxuICAgIH0sXHJcblxyXG4gICAgaGFuZGxlVGltZVF1YW50dW0oKXtcclxuXHJcbiAgICAgIC8vIGxldCBzdGFydERhdGUgPSB0aGlzLmRhdGEuc3RhcnREYXRlO1xyXG4gICAgICBsZXQgc3RhcnRUaW1lID0gdGhpcy5kYXRhLnN0YXJ0VGltZTtcclxuICAgICAgbGV0IGVuZERhdGUgPSB0aGlzLmRhdGEuZW5kRGF0ZTtcclxuICAgICAgbGV0IGVuZFRpbWUgPSB0aGlzLmRhdGEuZW5kVGltZTtcclxuICAgICAgaWYgKGVuZFRpbWUmJiFlbmREYXRlKSB7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgIGVuZERhdGU6dGhpcy5mb3JtYXRUaW1lU2Vjb25kKHRoaXMuZGF0YS5lbmRUaW1lKVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgZW5kRGF0ZSA9IHRoaXMuZGF0YS5lbmREYXRlO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCfovazmjaLkuoZlbmREYXRlJyx0aGlzLmRhdGEuZW5kRGF0ZSxlbmREYXRlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXN0YXJ0VGltZSYmZW5kVGltZSkge1xyXG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KCdzZWxlY3RlZFN0YXJ0VGltZScse1xyXG4gICAgICAgICAgZW5kVGltZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIWVuZFRpbWUmJnN0YXJ0VGltZSkge1xyXG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KCdzZWxlY3RlZFN0YXJ0VGltZScse1xyXG4gICAgICAgICAgc3RhcnRUaW1lXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghc3RhcnRUaW1lJiYhZW5kVGltZSkgcmV0dXJuO1xyXG4gICAgICAvLyBpZiAoc3RhcnREYXRlIC0gZW5kRGF0ZSA+IDApIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZygn5aSE55CGdGltZScsc3RhcnREYXRlLGVuZERhdGUpO1xyXG4gICAgICAvLyAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgIC8vICAgICAvLyBzdGFydERhdGU6IGVuZERhdGUsXHJcbiAgICAgIC8vICAgICAvLyBzdGFydFRpbWU6IGVuZFRpbWUsXHJcbiAgICAgIC8vICAgICAvLyBlbmREYXRlOiBzdGFydERhdGUsXHJcbiAgICAgIC8vICAgICAvLyBlbmRUaW1lOiBzdGFydFRpbWUsXHJcbiAgICAgIC8vICAgICBtaW5FbmREYXRlOiBlbmREYXRlICsgMTAwMCAqIDYwLFxyXG4gICAgICAvLyAgIH0pO1xyXG4gICAgICAvLyAgIC8vIHRoaXMudHJpZ2dlckV2ZW50KCdzZWxlY3RlZFN0YXJ0VGltZScse1xyXG4gICAgICAvLyAgIC8vICAgc3RhcnRUaW1lOiBlbmRUaW1lXHJcbiAgICAgIC8vICAgLy8gfSk7XHJcbiAgICAgIC8vICAgLy8gdGhpcy50cmlnZ2VyRXZlbnQoJ3NlbGVjdGVkRW5kVGltZScse1xyXG4gICAgICAvLyAgIC8vICAgZW5kVGltZTogc3RhcnRUaW1lXHJcbiAgICAgIC8vICAgLy8gfSk7XHJcbiAgICAgIC8vICAgLy8gcmV0dXJuO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHRoaXMudHJpZ2dlckV2ZW50KCdzZWxlY3RlZFN0YXJ0VGltZScse1xyXG4gICAgICAgIHN0YXJ0VGltZVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoJ3NlbGVjdGVkRW5kVGltZScse1xyXG4gICAgICAgIGVuZFRpbWVcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGNoZWNrVGltZSh0aW1lOnRpbWVUeXBlLCBtc2c6c3RyaW5nKSB7XHJcbiAgICAgIGlmICh0aGlzLmRhdGFbdGltZV0gPT0gJycpIHtcclxuICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgW3RpbWUgKyBcIkVycm9yXCJdOiBtc2csXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5kYXRhLnN0YXJ0VGltZSk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBzdGFydERhdGUgPSB0aGlzLmRhdGEuc3RhcnREYXRlO1xyXG4gICAgICBsZXQgZW5kRGF0ZSA9IHRoaXMuZGF0YS5lbmREYXRlO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmRhdGEpO1xyXG4gICAgICBpZiAoc3RhcnREYXRlJiZlbmREYXRlJiYoc3RhcnREYXRlIC0gZW5kRGF0ZSA+IDApKSB7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgIFtcInN0YXJ0VGltZUVycm9yXCJdOiBcIuW8gOWni+aXtumXtOmcgOWwj+S6jue7k+adn+aXtumXtFwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgICAgW1wic3RhcnRUaW1lRXJyb3JcIl06IFwiXCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICBbdGltZSArIFwiRXJyb3JcIl06IFwiXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgLy8gdGhpcy5oYW5kbGVMaXZlVGltZSgpXHJcbiAgICB9LFxyXG4gICAgZm9ybWF0VGltZSh0aW1lOiBhbnkpIHtcclxuICAgICAgLy8gY29uc3QgZGF0ZTphbnkgPSBkYXlqcyh0aW1lKTtcclxuICAgICAgLy8gY29uc29sZS5sb2coKTtcclxuICAgICAgLy8gcmV0dXJuIGAke2RhdGUuJHl9LSR7ZGF0ZS4kTSArIDF9LSR7ZGF0ZS4kRH0gJHtkYXRlLiRIfToke2RhdGUuJG19YDtcclxuICAgICAgcmV0dXJuIGRheWpzKHRpbWUpLmZvcm1hdCgnWVlZWS1NTS1ERCBISDptbScpO1xyXG4gICAgfSxcclxuICAgIGZvcm1hdFRpbWVTZWNvbmQodGltZTogc3RyaW5nKSB7XHJcbiAgICAgIC8vIGNvbnN0IGRhdGU6YW55ID0gZGF5anModGltZSk7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKCk7XHJcbiAgICAgIC8vIHJldHVybiBgJHtkYXRlLiR5fS0ke2RhdGUuJE0gKyAxfS0ke2RhdGUuJER9ICR7ZGF0ZS4kSH06JHtkYXRlLiRtfWA7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lKS5nZXRUaW1lKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59KVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDZCQUErQjtBQUUvQixTQUFTLENBQUM7SUFJUixPQUFPLEVBQUU7UUFDUCxjQUFjLEVBQUUsSUFBSTtRQUNwQixhQUFhLEVBQUUsSUFBSTtLQUNwQjtJQUNELFVBQVUsRUFBRTtRQUNWLFNBQVMsRUFBQztZQUNSLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLEVBQUU7U0FDVjtRQUNELE9BQU8sRUFBQztZQUNOLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFDLEVBQUU7U0FDVDtLQWlCRjtJQUtELElBQUksRUFBRTtRQUNKLFlBQVksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRTtRQUNsQyxZQUFZLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRztRQUM5RCxTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUU7UUFDL0IsU0FBUyxFQUFFLEVBQUU7UUFDYixVQUFVLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRTtRQUM1QyxVQUFVLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUc7UUFDbEUsT0FBTyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDdkQsT0FBTyxFQUFFLEVBQUU7UUFDWCxTQUFTLFlBQUMsSUFBVyxFQUFFLEtBQVk7WUFFakMsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO2dC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b0JBQ3BCLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQztRQUVkLENBQUM7UUFDRCxVQUFVLFlBQUMsSUFBUztZQUlsQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsZ0JBQWdCLFlBQUMsSUFBWTtZQUkzQixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xDLENBQUM7S0FDRjtDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4vLyBjb25zdCBhcHAgPSBnZXRBcHA8SUFwcE9wdGlvbj4oKTtcclxuaW1wb3J0ICogYXMgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbnR5cGUgdGltZVR5cGUgPSAnc3RhcnRUaW1lJ3wnZW5kVGltZSc7XHJcbkNvbXBvbmVudCh7XHJcbiAgLyoqXHJcbiAgICog57uE5Lu255qE5bGe5oCn5YiX6KGoXHJcbiAgICovXHJcbiAgb3B0aW9uczoge1xyXG4gICAgYWRkR2xvYmFsQ2xhc3M6IHRydWUsXHJcbiAgICBtdWx0aXBsZVNsb3RzOiB0cnVlIC8vIOWcqOe7hOS7tuWumuS5ieaXtueahOmAiemhueS4reWQr+eUqOWkmnNsb3TmlK/mjIFcclxuICB9LFxyXG4gIHByb3BlcnRpZXM6IHtcclxuICAgIHN0YXJ0VGltZTp7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgdmFsdWU6ICcnXHJcbiAgICB9LFxyXG4gICAgZW5kVGltZTp7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgdmFsdWU6JydcclxuICAgIH0sXHJcbiAgICAvLyBtaW5TdGFydERhdGU6e1xyXG4gICAgLy8gICB0eXBlOiBOdW1iZXJ8fFN0cmluZyxcclxuICAgIC8vICAgdmFsdWU6bmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgIC8vIH0sXHJcbiAgICAvLyBtaW5TdGFydERhdGU6e1xyXG4gICAgLy8gICB0eXBlOiBOdW1iZXJ8fFN0cmluZyxcclxuICAgIC8vICAgdmFsdWU6bmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgIC8vIH0sXHJcbiAgICAvLyBtaW5TdGFydERhdGU6e1xyXG4gICAgLy8gICB0eXBlOiBOdW1iZXJ8fFN0cmluZyxcclxuICAgIC8vICAgdmFsdWU6bmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgIC8vIH0sXHJcbiAgICAvLyBtaW5TdGFydERhdGU6e1xyXG4gICAgLy8gICB0eXBlOiBOdW1iZXJ8fFN0cmluZyxcclxuICAgIC8vICAgdmFsdWU6bmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgIC8vIH0sXHJcbiAgfSxcclxuXHJcbiAgLyoqXHJcbiAgICog57uE5Lu255qE5Yid5aeL5pWw5o2uXHJcbiAgICovXHJcbiAgZGF0YToge1xyXG4gICAgbWluU3RhcnREYXRlOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSxcclxuICAgIG1heFN0YXJ0RGF0ZTogbmV3IERhdGUoKS5nZXRUaW1lKCkgKyAxMDAwICogNjAgKiA2MCAqIDI0ICogMTgwLFxyXG4gICAgc3RhcnREYXRlOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSwgLy9uZXcgRGF0ZSgpLmdldFRpbWUoKSxcclxuICAgIHN0YXJ0VGltZTogJycsXHJcbiAgICBtaW5FbmREYXRlOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIDEwMDAgKiA2MCxcclxuICAgIG1heEVuZERhdGU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NSAqIDEwMCxcclxuICAgIGVuZERhdGU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgMTAwMCAqIDYwICogNjAgKiAyNCAqIDcsIC8vbmV3IERhdGUoKS5nZXRUaW1lKCksXHJcbiAgICBlbmRUaW1lOiAnJyxcclxuICAgIGZvcm1hdHRlcih0eXBlOnN0cmluZywgdmFsdWU6c3RyaW5nKSB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKHR5cGUsdmFsdWUpXHJcbiAgICAgIGlmICh0eXBlID09PSBcInllYXJcIikge1xyXG4gICAgICAgIHJldHVybiBgJHt2YWx1ZX3lubRgO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwibW9udGhcIikge1xyXG4gICAgICAgIHJldHVybiBgJHt2YWx1ZX3mnIhgO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiZGF5XCIpIHtcclxuICAgICAgICByZXR1cm4gYCR7dmFsdWV95pelYDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9LFxyXG4gIH0sXHJcblxyXG4gIGxpZmV0aW1lczoge1xyXG4gICAgcmVhZHkoKSB7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgc3RhcnRUaW1lOiB0aGlzLmRhdGEuc3RhcnRUaW1lIHx8IHd4LiR1dGlscy5mb3JtYXRUaW1lKG5ldyBEYXRlKCkuZ2V0VGltZSgpKSxcclxuICAgICAgICBlbmRUaW1lOiB0aGlzLmRhdGEuZW5kVGltZSB8fCB3eC4kdXRpbHMuZm9ybWF0VGltZShuZXcgRGF0ZSgpLmdldFRpbWUoKSArIDEwMDAgKiA2MCAqIDYwICogMjQgKiA3KSxcclxuICAgICAgICBtaW5TdGFydERhdGU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpLFxyXG4gICAgICAgIG1heFN0YXJ0RGF0ZTogbmV3IERhdGUoKS5nZXRUaW1lKCkgKyAxMDAwICogNjAgKiA2MCAqIDI0ICogMTgwLFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgLyoqXHJcbiAgICog57uE5Lu255qE5pa55rOV5YiX6KGoXHJcbiAgICovXHJcbiAgbWV0aG9kczoge1xyXG4gICAgc2hvd1N0YXJ0RGF0ZVBvcHVwKCl7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgaXNTaG93U3RhcnREYXRlUG9wdXA6IHRydWVcclxuICAgICAgfSlcclxuICAgIH0sXHJcbiAgICBvblN0YXJ0RGF0ZVBvcHVwQ2xvc2UoKXtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICBpc1Nob3dTdGFydERhdGVQb3B1cDogZmFsc2VcclxuICAgICAgfSlcclxuICAgIH0sXHJcbiAgICBvbkVudGVyU3RhcnREYXRlKGV2ZW50OiB7IGRldGFpbDogYW55OyB9KSB7XHJcbiAgICAgIGxldCBkZXRhaWwgPSBldmVudC5kZXRhaWw7XHJcbiAgICAgIGNvbnN0IGRhdGVUaW1lOmFueSA9IHRoaXMuZm9ybWF0VGltZShldmVudC5kZXRhaWwpO1xyXG4gICAgICBjb25zb2xlLmxvZyhkYXRlVGltZSk7XHJcbiAgICAgIC8vIC8vIOW3sumAieaLqei/h+e7k+adn+aXpeacn++8jOS4lFxyXG4gICAgICAvLyBpZiAoXHJcbiAgICAgIC8vICAgdGhpcy5kYXRhLmVuZERhdGUgJiZcclxuICAgICAgLy8gICBNYXRoLmFicyhkZXRhaWwgLSB0aGlzLmRhdGEuZW5kRGF0ZSkgPiAxMDAwICogNjAgKiA2MCAqIDI0XHJcbiAgICAgIC8vICkge1xyXG4gICAgICAvLyAgIGxldCBkYXRlID0gZGV0YWlsICsgMTAwMCAqIDYwICogNjAgKiAyNDtcclxuICAgICAgLy8gICBsZXQgdGltZSA9IHRoaXMuZm9ybWF0VGltZShkYXRlKTtcclxuICAgICAgLy8gICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAvLyAgICAgZW5kRGF0ZTogZGF0ZSxcclxuICAgICAgLy8gICAgIGVuZFRpbWU6IHRpbWUsXHJcbiAgICAgIC8vICAgfSk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgLy8gaWYgKFxyXG4gICAgICAvLyAgIHRoaXMuZGF0YS5lbmREYXRlICYmXHJcbiAgICAgIC8vICAgTWF0aC5hYnMoZGV0YWlsIC0gdGhpcy5kYXRhLmVuZERhdGUpIDwgMTAwMCAqIDYwXHJcbiAgICAgIC8vICkge1xyXG4gICAgICAvLyAgIGxldCBkYXRlID0gZGV0YWlsICsgMTAwMCAqIDYwIDtcclxuICAgICAgLy8gICBsZXQgdGltZSA9IHRoaXMuZm9ybWF0VGltZShkYXRlKTtcclxuICAgICAgLy8gICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAvLyAgICAgZW5kRGF0ZTogZGF0ZSxcclxuICAgICAgLy8gICAgIGVuZFRpbWU6IHRpbWUsXHJcbiAgICAgIC8vICAgfSk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgLy8gaWYgKHRoaXMuZGF0YS5lbmREYXRlICYmIGUuZGV0YWlsID4gdGhpcy5kYXRhLmVuZERhdGUpIHtcclxuICAgICAgLy8gfVxyXG4gICAgICBjb25zb2xlLmxvZyhcIumAieaLqeW8gOaSreaXtumXtFwiLCBkYXRlVGltZSxkZXRhaWwpO1xyXG4gICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgIHN0YXJ0RGF0ZTogZGV0YWlsLFxyXG4gICAgICAgIHN0YXJ0VGltZTogZGF0ZVRpbWUsXHJcbiAgICAgICAgbWluRW5kRGF0ZTogZGV0YWlsICsgMTAwMCAqIDYwLFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5oYW5kbGVUaW1lUXVhbnR1bSgpO1xyXG4gICAgICB0aGlzLm9uU3RhcnREYXRlUG9wdXBDbG9zZSgpO1xyXG4gICAgICB0aGlzLmNoZWNrVGltZShcInN0YXJ0VGltZVwiKTtcclxuICAgIH0sXHJcbiAgICBvbklucHV0U3RhcnREYXRlKCkge30sXHJcbiAgICBvbkNhbmNlbFN0YXJ0RGF0ZSgpIHtcclxuICAgICAgdGhpcy5vblN0YXJ0RGF0ZVBvcHVwQ2xvc2UoKTtcclxuICAgICAgdGhpcy5jaGVja1RpbWUoXCJzdGFydFRpbWVcIik7XHJcbiAgICB9LFxyXG4gICAgb25DYW5jZWxFbmREYXRlKCkge1xyXG4gICAgICB0aGlzLm9uRW5kRGF0ZVBvcHVwQ2xvc2UoKTtcclxuICAgICAgdGhpcy5jaGVja1RpbWUoXCJlbmRUaW1lXCIpO1xyXG4gICAgfSxcclxuICAgIG9uSW5wdXRFbmREYXRlKCkge30sXHJcbiAgICBzaG93RW5kRGF0ZVBvcHVwKCl7XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgaXNTaG93RW5kRGF0ZVBvcHVwOiB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICB9LFxyXG4gICAgb25FbmREYXRlUG9wdXBDbG9zZSgpe1xyXG4gICAgICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAgIGlzU2hvd0VuZERhdGVQb3B1cDogZmFsc2VcclxuICAgICAgfSlcclxuICAgIH0sXHJcbiAgICBvbkVudGVyRW5kRGF0ZShldmVudDogeyBkZXRhaWw6IGFueTsgfSkge1xyXG4gICAgICBjb25zdCBkYXRlOmFueSA9IHRoaXMuZm9ybWF0VGltZShldmVudC5kZXRhaWwpO1xyXG4gICAgICBjb25zb2xlLmxvZyhkYXRlKTtcclxuICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICBlbmRUaW1lOiBkYXRlLFxyXG4gICAgICAgIGVuZERhdGU6IGV2ZW50LmRldGFpbCxcclxuICAgICAgfSk7XHJcbiAgICAgIC8vIHRoaXMudHJpZ2dlckV2ZW50KCdzZWxlY3RlZEVuZFRpbWUnLHtcclxuICAgICAgLy8gICBlbmRUaW1lOiBkYXRlXHJcbiAgICAgIC8vIH0pO1xyXG4gICAgICB0aGlzLmhhbmRsZVRpbWVRdWFudHVtKCk7XHJcbiAgICAgIHRoaXMub25FbmREYXRlUG9wdXBDbG9zZSgpO1xyXG4gICAgICB0aGlzLmNoZWNrVGltZShcImVuZFRpbWVcIik7XHJcbiAgICB9LFxyXG5cclxuICAgIGhhbmRsZVRpbWVRdWFudHVtKCl7XHJcblxyXG4gICAgICAvLyBsZXQgc3RhcnREYXRlID0gdGhpcy5kYXRhLnN0YXJ0RGF0ZTtcclxuICAgICAgbGV0IHN0YXJ0VGltZSA9IHRoaXMuZGF0YS5zdGFydFRpbWU7XHJcbiAgICAgIGxldCBlbmREYXRlID0gdGhpcy5kYXRhLmVuZERhdGU7XHJcbiAgICAgIGxldCBlbmRUaW1lID0gdGhpcy5kYXRhLmVuZFRpbWU7XHJcbiAgICAgIGlmIChlbmRUaW1lJiYhZW5kRGF0ZSkge1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICBlbmREYXRlOnRoaXMuZm9ybWF0VGltZVNlY29uZCh0aGlzLmRhdGEuZW5kVGltZSlcclxuICAgICAgICB9KVxyXG4gICAgICAgIGVuZERhdGUgPSB0aGlzLmRhdGEuZW5kRGF0ZTtcclxuICAgICAgICBjb25zb2xlLmxvZygn6L2s5o2i5LqGZW5kRGF0ZScsdGhpcy5kYXRhLmVuZERhdGUsZW5kRGF0ZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFzdGFydFRpbWUmJmVuZFRpbWUpIHtcclxuICAgICAgICB0aGlzLnRyaWdnZXJFdmVudCgnc2VsZWN0ZWRTdGFydFRpbWUnLHtcclxuICAgICAgICAgIGVuZFRpbWVcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFlbmRUaW1lJiZzdGFydFRpbWUpIHtcclxuICAgICAgICB0aGlzLnRyaWdnZXJFdmVudCgnc2VsZWN0ZWRTdGFydFRpbWUnLHtcclxuICAgICAgICAgIHN0YXJ0VGltZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXN0YXJ0VGltZSYmIWVuZFRpbWUpIHJldHVybjtcclxuICAgICAgLy8gaWYgKHN0YXJ0RGF0ZSAtIGVuZERhdGUgPiAwKSB7XHJcbiAgICAgIC8vICAgY29uc29sZS5sb2coJ+WkhOeQhnRpbWUnLHN0YXJ0RGF0ZSxlbmREYXRlKTtcclxuICAgICAgLy8gICB0aGlzLnNldERhdGEoe1xyXG4gICAgICAvLyAgICAgLy8gc3RhcnREYXRlOiBlbmREYXRlLFxyXG4gICAgICAvLyAgICAgLy8gc3RhcnRUaW1lOiBlbmRUaW1lLFxyXG4gICAgICAvLyAgICAgLy8gZW5kRGF0ZTogc3RhcnREYXRlLFxyXG4gICAgICAvLyAgICAgLy8gZW5kVGltZTogc3RhcnRUaW1lLFxyXG4gICAgICAvLyAgICAgbWluRW5kRGF0ZTogZW5kRGF0ZSArIDEwMDAgKiA2MCxcclxuICAgICAgLy8gICB9KTtcclxuICAgICAgLy8gICAvLyB0aGlzLnRyaWdnZXJFdmVudCgnc2VsZWN0ZWRTdGFydFRpbWUnLHtcclxuICAgICAgLy8gICAvLyAgIHN0YXJ0VGltZTogZW5kVGltZVxyXG4gICAgICAvLyAgIC8vIH0pO1xyXG4gICAgICAvLyAgIC8vIHRoaXMudHJpZ2dlckV2ZW50KCdzZWxlY3RlZEVuZFRpbWUnLHtcclxuICAgICAgLy8gICAvLyAgIGVuZFRpbWU6IHN0YXJ0VGltZVxyXG4gICAgICAvLyAgIC8vIH0pO1xyXG4gICAgICAvLyAgIC8vIHJldHVybjtcclxuICAgICAgLy8gfVxyXG4gICAgICB0aGlzLnRyaWdnZXJFdmVudCgnc2VsZWN0ZWRTdGFydFRpbWUnLHtcclxuICAgICAgICBzdGFydFRpbWVcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudHJpZ2dlckV2ZW50KCdzZWxlY3RlZEVuZFRpbWUnLHtcclxuICAgICAgICBlbmRUaW1lXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGdldFNlbGVjdGVkVGltZSgpe1xyXG4gICAgICBsZXQgZGF0YTphbnkgPSB0aGlzLmRhdGE7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgc3RhcnRUaW1lOiBkYXRhLnN0YXJ0VGltZSxcclxuICAgICAgICBlbmRUaW1lOiBkYXRhLmVuZFRpbWUsXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBjaGVja1RpbWUodGltZTp0aW1lVHlwZSkge1xyXG4gICAgICAvLyBpZiAodGhpcy5kYXRhW3RpbWVdID09ICcnKSB7XHJcbiAgICAgIC8vICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgLy8gICAgIFt0aW1lICsgXCJFcnJvclwiXTogbXNnLFxyXG4gICAgICAvLyAgIH0pO1xyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKHRoaXMuZGF0YS5zdGFydFRpbWUpO1xyXG4gICAgICAvLyAgIHJldHVybiBmYWxzZTtcclxuICAgICAgLy8gfVxyXG4gICAgICBsZXQgc3RhcnREYXRlID0gdGhpcy5kYXRhLnN0YXJ0RGF0ZTtcclxuICAgICAgbGV0IGVuZERhdGUgPSB0aGlzLmRhdGEuZW5kRGF0ZTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5kYXRhKTtcclxuICAgICAgaWYgKHN0YXJ0RGF0ZSYmZW5kRGF0ZSYmKHN0YXJ0RGF0ZSAtIGVuZERhdGUgPiAwKSkge1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgICBbXCJzdGFydFRpbWVFcnJvclwiXTogXCLlvIDlp4vml7bpl7TpnIDlsI/kuo7nu5PmnZ/ml7bpl7RcIixcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhKHtcclxuICAgICAgICAgIFtcInN0YXJ0VGltZUVycm9yXCJdOiBcIlwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0RGF0YSh7XHJcbiAgICAgICAgW3RpbWUgKyBcIkVycm9yXCJdOiBcIlwiLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIC8vIHRoaXMuaGFuZGxlTGl2ZVRpbWUoKVxyXG4gICAgfSxcclxuICAgIGZvcm1hdFRpbWUodGltZTogYW55KSB7XHJcbiAgICAgIC8vIGNvbnN0IGRhdGU6YW55ID0gZGF5anModGltZSk7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKCk7XHJcbiAgICAgIC8vIHJldHVybiBgJHtkYXRlLiR5fS0ke2RhdGUuJE0gKyAxfS0ke2RhdGUuJER9ICR7ZGF0ZS4kSH06JHtkYXRlLiRtfWA7XHJcbiAgICAgIHJldHVybiBkYXlqcyh0aW1lKS5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW0nKTtcclxuICAgIH0sXHJcbiAgICBmb3JtYXRUaW1lU2Vjb25kKHRpbWU6IHN0cmluZykge1xyXG4gICAgICAvLyBjb25zdCBkYXRlOmFueSA9IGRheWpzKHRpbWUpO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZygpO1xyXG4gICAgICAvLyByZXR1cm4gYCR7ZGF0ZS4keX0tJHtkYXRlLiRNICsgMX0tJHtkYXRlLiREfSAke2RhdGUuJEh9OiR7ZGF0ZS4kbX1gO1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUodGltZSkuZ2V0VGltZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufSlcclxuIl19