Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

web-speech-cognitive-services

Package Overview
Dependencies
Maintainers
1
Versions
153
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

web-speech-cognitive-services - npm Package Compare versions

Comparing version 1.0.0 to 1.0.1-master.2c7d643

6

lib/CognitiveServicesSpeechRecognition.js

@@ -71,3 +71,3 @@ 'use strict';

var deviceModel = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 'web-speech-cognitive-services';
var deviceVersion = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : "1.0.0";
var deviceVersion = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : "1.0.1-master.2c7d643";

@@ -168,3 +168,3 @@ var config = new CognitiveSpeech.RecognizerConfig(new CognitiveSpeech.SpeechConfig(new CognitiveSpeech.Context(new CognitiveSpeech.OS(osPlatform, osName, osVersion), new CognitiveSpeech.Device(deviceManufacturer, deviceModel, deviceVersion))), mode, lang, CognitiveSpeech.SpeechResultFormat.Detailed);

case 0:
recognizer = this.recognizer = this.createRecognizer(this.subscriptionKey || this.tokenFetch, this.lang, this.osPlatform || window.navigator.userAgent, this.osName || window.navigator.appName, this.osVersion || window.navigator.appVersion, this.deviceManufacturer || 'web-speech-cognitive-services', this.deviceModel || 'web-speech-cognitive-services', this.deviceVersion || "1.0.0");
recognizer = this.recognizer = this.createRecognizer(this.subscriptionKey || this.tokenFetch, this.lang, this.osPlatform || window.navigator.userAgent, this.osName || window.navigator.appName, this.osVersion || window.navigator.appVersion, this.deviceManufacturer || 'web-speech-cognitive-services', this.deviceModel || 'web-speech-cognitive-services', this.deviceVersion || "1.0.1-master.2c7d643");
_toPromise = toPromise(), eventListener = _toPromise.eventListener, promises = _objectWithoutProperties(_toPromise, ['eventListener']);

@@ -432,2 +432,2 @@

exports.default = CognitiveServicesSpeechRecognition;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Db2duaXRpdmVTZXJ2aWNlc1NwZWVjaFJlY29nbml0aW9uLmpzIl0sIm5hbWVzIjpbIkNvZ25pdGl2ZVNwZWVjaCIsImJ1aWxkU3BlZWNoUmVzdWx0IiwidHJhbnNjcmlwdCIsImNvbmZpZGVuY2UiLCJpc0ZpbmFsIiwicmVzdWx0IiwicmVzdWx0cyIsInR5cGUiLCJDb2duaXRpdmVTZXJ2aWNlc1NwZWVjaFJlY29nbml0aW9uIiwiX2xhbmciLCJyZWFkeVN0YXRlIiwib25hdWRpb3N0YXJ0Iiwib25hdWRpb2VuZCIsIm9uZW5kIiwib25lcnJvciIsIm9ubm9tYXRjaCIsIm9ucmVzdWx0Iiwib25zb3VuZHN0YXJ0Iiwib25zb3VuZGVuZCIsIm9uc3BlZWNoc3RhcnQiLCJvbnNwZWVjaGVuZCIsIm9uc3RhcnQiLCJjcmVhdGVSZWNvZ25pemVyIiwic3Vic2NyaXB0aW9uS2V5T3JUb2tlbkZldGNoIiwibGFuZyIsIm5hdmlnYXRvciIsImxhbmd1YWdlIiwibW9kZSIsIlJlY29nbml0aW9uTW9kZSIsIkludGVyYWN0aXZlIiwib3NQbGF0Zm9ybSIsIndpbmRvdyIsInVzZXJBZ2VudCIsIm9zTmFtZSIsImFwcE5hbWUiLCJvc1ZlcnNpb24iLCJhcHBWZXJzaW9uIiwiZGV2aWNlTWFudWZhY3R1cmVyIiwiZGV2aWNlTW9kZWwiLCJkZXZpY2VWZXJzaW9uIiwiY29uZmlnIiwiUmVjb2duaXplckNvbmZpZyIsIlNwZWVjaENvbmZpZyIsIkNvbnRleHQiLCJPUyIsIkRldmljZSIsIlNwZWVjaFJlc3VsdEZvcm1hdCIsIkRldGFpbGVkIiwiYXV0aCIsIkNvZ25pdGl2ZVRva2VuQXV0aGVudGljYXRpb24iLCJhdXRoRmV0Y2hFdmVudElEIiwiQ29nbml0aXZlU3Vic2NyaXB0aW9uS2V5QXV0aGVudGljYXRpb24iLCJDcmVhdGVSZWNvZ25pemVyIiwicmVjb2duaXplciIsIkF1ZGlvU291cmNlIiwiVHVybk9mZiIsIl9hYm9ydGVkIiwibmFtZSIsImV2ZW50IiwibGlzdGVuZXIiLCJjYWxsIiwiRXJyb3IiLCJzdWJzY3JpcHRpb25LZXkiLCJ0b2tlbkZldGNoIiwidG9Qcm9taXNlIiwiZXZlbnRMaXN0ZW5lciIsInByb21pc2VzIiwiUmVjb2duaXplIiwicmVjb2duaXRpb25UcmlnZ2VyZWQiLCJlcnJvciIsIlByb21pc2UiLCJyYWNlIiwibGlzdGVuaW5nU3RhcnRlZCIsInJlY29nbml0aW9uRW5kZWQiLCJOYW1lIiwiU3RhdHVzIiwiUmVjb2duaXRpb25Db21wbGV0aW9uU3RhdHVzIiwiQXVkaW9Tb3VyY2VFcnJvciIsImVtaXQiLCJjb25uZWN0aW5nVG9TZXJ2aWNlIiwicmVjb2duaXRpb25TdGFydGVkIiwiQ29ubmVjdEVycm9yIiwiZ290Rmlyc3RIeXBvdGhlc2lzIiwiZ2V0U3BlZWNoSHlwb3RoZXNpc1Byb21pc2UiLCJzcGVlY2hFbmREZXRlY3RlZCIsInNwZWVjaEh5cG90aGVzaXMiLCJSZXN1bHQiLCJUZXh0Iiwic3BlZWNoRGV0YWlsZWRQaHJhc2UiLCJyZWNvZ25pdGlvblJlc3VsdCIsIlJlY29nbml0aW9uU3RhdHVzIiwiU3VjY2VzcyIsIk5CZXN0IiwiRGlzcGxheSIsIkNvbmZpZGVuY2UiLCJOb01hdGNoIiwiSW5pdGlhbFNpbGVuY2VUaW1lb3V0IiwibmV4dEdyYW1tYXJzIiwibmV4dExhbmciLCJuZXh0Q29udGludW91cyIsIm5leHRJbnRlcmltUmVzdWx0cyIsIm5leHRNYXhBbHRlcm5hdGl2ZXMiLCJuZXh0U2VydmljZVVSSSIsImV2ZW50cyIsIkNvbm5lY3RpbmdUb1NlcnZpY2VFdmVudCIsIkV2ZW50QXNQcm9taXNlIiwiTGlzdGVuaW5nU3RhcnRlZEV2ZW50IiwiUmVjb2duaXRpb25FbmRlZEV2ZW50IiwiUmVjb2duaXRpb25TdGFydGVkRXZlbnQiLCJSZWNvZ25pdGlvblRyaWdnZXJlZEV2ZW50IiwiU3BlZWNoRGV0YWlsZWRQaHJhc2VFdmVudCIsIlNwZWVjaEVuZERldGVjdGVkRXZlbnQiLCJTcGVlY2hIeXBvdGhlc2lzRXZlbnQiLCJTcGVlY2hTaW1wbGVQaHJhc2VFdmVudCIsIlNwZWVjaFN0YXJ0RGV0ZWN0ZWRFdmVudCIsInVwY29taW5nIiwic3BlZWNoU2ltcGxlUGhyYXNlIiwic3BlZWNoU3RhcnREZXRlY3RlZCIsImV2ZW50QXNQcm9taXNlIiwiY29uc29sZSIsIndhcm4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7SUFBWUEsZTs7QUFDWjs7OztBQUNBOzs7Ozs7Ozs7Ozs7OztBQUVBLFNBQVNDLGlCQUFULENBQTJCQyxVQUEzQixFQUF1Q0MsVUFBdkMsRUFBbURDLE9BQW5ELEVBQTREO0FBQzFELE1BQU1DLFNBQVMsQ0FBQyxFQUFFRixzQkFBRixFQUFjRCxzQkFBZCxFQUFELENBQWY7O0FBRUFHLFNBQU9ELE9BQVAsR0FBaUJBLE9BQWpCOztBQUVBLFNBQU8sRUFBRUUsU0FBUyxDQUFDRCxNQUFELENBQVgsRUFBcUJFLE1BQU0sUUFBM0IsRUFBUDtBQUNEOztJQUVLQyxrQztBQUNKLGdEQUFjO0FBQUE7O0FBQUE7O0FBQ1osU0FBS0MsS0FBTCxHQUFhLEVBQWI7O0FBRUEsU0FBS0MsVUFBTCxHQUFrQixDQUFsQjs7QUFFQSxTQUFLQyxZQUFMLEdBQW9CLElBQXBCO0FBQ0EsU0FBS0MsVUFBTCxHQUFrQixJQUFsQjtBQUNBLFNBQUtDLEtBQUwsR0FBYSxJQUFiO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLElBQWY7QUFDQSxTQUFLQyxTQUFMLEdBQWlCLElBQWpCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixJQUFoQjtBQUNBLFNBQUtDLFlBQUwsR0FBb0IsSUFBcEI7QUFDQSxTQUFLQyxVQUFMLEdBQWtCLElBQWxCO0FBQ0EsU0FBS0MsYUFBTCxHQUFxQixJQUFyQjtBQUNBLFNBQUtDLFdBQUwsR0FBbUIsSUFBbkI7QUFDQSxTQUFLQyxPQUFMLEdBQWUsSUFBZjs7QUFFQSxTQUFLQyxnQkFBTCxHQUF3QiwwQkFBUSxVQUM5QkMsMkJBRDhCLEVBVTNCO0FBQUEsVUFSSEMsSUFRRyx1RUFSSUMsVUFBVUMsUUFRZDtB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O0FBRUEsVUFBSTZELGNBQUosRUFBb0I7QUFDbEJBLHVCQUFlckQsYUFBZixDQUE2QkwsSUFBN0IsQ0FBa0MsSUFBbEMsRUFBd0NGLEtBQXhDO0FBQ0QsT0FGRCxNQUVPO0FBQ0w2RCxnQkFBUUMsSUFBUix3QkFBb0MvRCxJQUFwQztBQUNEO0FBQ0Y7QUFwQkksR0FBUDtBQXNCRDs7a0JBRWNqRCxrQyIsImZpbGUiOiJDb2duaXRpdmVTZXJ2aWNlc1NwZWVjaFJlY29nbml0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQ29nbml0aXZlU3BlZWNoIGZyb20gJ21pY3Jvc29mdC1zcGVlY2gtYnJvd3Nlci1zZGsnO1xuaW1wb3J0IEV2ZW50QXNQcm9taXNlIGZyb20gJ2V2ZW50LWFzLXByb21pc2UnO1xuaW1wb3J0IG1lbW9pemUgZnJvbSAnbWVtb2l6ZS1vbmUnO1xuXG5mdW5jdGlvbiBidWlsZFNwZWVjaFJlc3VsdCh0cmFuc2NyaXB0LCBjb25maWRlbmNlLCBpc0ZpbmFsKSB7XG4gIGNvbnN0IHJlc3VsdCA9IFt7IGNvbmZpZGVuY2UsIHRyYW5zY3JpcHQgfV07XG5cbiAgcmVzdWx0LmlzRmluYWwgPSBpc0ZpbmFsO1xuXG4gIHJldHVybiB7IHJlc3VsdHM6IFtyZXN1bHRdLCB0eXBlOiAncmVzdWx0JyB9O1xufVxuXG5jbGFzcyBDb2duaXRpdmVTZXJ2aWNlc1NwZWVjaFJlY29nbml0aW9uIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fbGFuZyA9ICcnO1xuXG4gICAgdGhpcy5yZWFkeVN0YXRlID0gMDtcblxuICAgIHRoaXMub25hdWRpb3N0YXJ0ID0gbnVsbDtcbiAgICB0aGlzLm9uYXVkaW9lbmQgPSBudWxsO1xuICAgIHRoaXMub25lbmQgPSBudWxsO1xuICAgIHRoaXMub25lcnJvciA9IG51bGw7XG4gICAgdGhpcy5vbm5vbWF0Y2ggPSBudWxsO1xuICAgIHRoaXMub25yZXN1bHQgPSBudWxsO1xuICAgIHRoaXMub25zb3VuZHN0YXJ0ID0gbnVsbDtcbiAgICB0aGlzLm9uc291bmRlbmQgPSBudWxsO1xuICAgIHRoaXMub25zcGVlY2hzdGFydCA9IG51bGw7XG4gICAgdGhpcy5vbnNwZWVjaGVuZCA9IG51bGw7XG4gICAgdGhpcy5vbnN0YXJ0ID0gbnVsbDtcblxuICAgIHRoaXMuY3JlYXRlUmVjb2duaXplciA9IG1lbW9pemUoKFxuICAgICAgc3Vic2NyaXB0aW9uS2V5T3JUb2tlbkZldGNoLFxuICAgICAgbGFuZyA9IG5hdmlnYXRvci5sYW5ndWFnZSxcbiAgICAgIG1vZGUgPSBDb2duaXRpdmVTcGVlY2guUmVjb2duaXRpb25Nb2RlLkludGVyYWN0aXZlLFxuICAgICAgb3NQbGF0Zm9ybSA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LFxuICAgICAgb3NOYW1lID0gd2luZG93Lm5hdmlnYXRvci5hcHBOYW1lLFxuICAgICAgb3NWZXJzaW9uID0gd2luZG93Lm5hdmlnYXRvci5hcHBWZXJzaW9uLFxuICAgICAgZGV2aWNlTWFudWZhY3R1cmVyID0gJ21pY3Jvc29mdC1zcGVlY2gtYnJvd3Nlci1zZGsnLFxuICAgICAgZGV2aWNlTW9kZWwgPSAnd2ViLXNwZWVjaC1jb2duaXRpdmUtc2VydmljZXMnLFxuICAgICAgZGV2aWNlVmVyc2lvbiA9IFZFUlNJT05cbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBDb2duaXRpdmVTcGVlY2guUmVjb2duaXplckNvbmZpZyhcbiAgICAgICAgbmV3IENvZ25pdGl2ZVNwZWVjaC5TcGVlY2hDb25maWcoXG4gICAgICAgICAgbmV3IENvZ25pdGl2ZVNwZWVjaC5Db250ZXh0KFxuICAgICAgICAgICAgbmV3IENvZ25pdGl2ZVNwZWVjaC5PUyhcbiAgICAgICAgICAgICAgb3NQbGF0Zm9ybSxcbiAgICAgICAgICAgICAgb3NOYW1lLFxuICAgICAgICAgICAgICBvc1ZlcnNpb25cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBuZXcgQ29nbml0aXZlU3BlZWNoLkRldmljZShcbiAgICAgICAgICAgICAgZGV2aWNlTWFudWZhY3R1cmVyLFxuICAgICAgICAgICAgICBkZXZpY2VNb2RlbCxcbiAgICAgICAgICAgICAgZGV2aWNlVmVyc2lvblxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgbW9kZSxcbiAgICAgICAgbGFuZyxcbiAgICAgICAgQ29nbml0aXZlU3BlZWNoLlNwZWVjaFJlc3VsdEZvcm1hdC5EZXRhaWxlZFxuICAgICAgKTtcblxuICAgICAgbGV0IGF1dGg7XG5cbiAgICAgIGlmICh0eXBlb2Ygc3Vic2NyaXB0aW9uS2V5T3JUb2tlbkZldGNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGF1dGggPSBuZXcgQ29nbml0aXZlU3BlZWNoLkNvZ25pdGl2ZVRva2VuQXV0aGVudGljYXRpb24oXG4gICAgICAgICAgYXN5bmMgYXV0aEZldGNoRXZlbnRJRCA9PiBhd2FpdCBzdWJzY3JpcHRpb25LZXlPclRva2VuRmV0Y2goYXV0aEZldGNoRXZlbnRJRCwgZmFsc2UpLFxuICAgICAgICAgIGFzeW5jIGF1dGhGZXRjaEV2ZW50SUQgPT4gYXdhaXQgc3Vic2NyaXB0aW9uS2V5T3JUb2tlbkZldGNoKGF1dGhGZXRjaEV2ZW50SUQsIHRydWUpXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhdXRoID0gbmV3IENvZ25pdGl2ZVNwZWVjaC5Db2duaXRpdmVTdWJzY3JpcHRpb25LZXlBdXRoZW50aWNhdGlvbihzdWJzY3JpcHRpb25LZXlPclRva2VuRmV0Y2gpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gQ29nbml0aXZlU3BlZWNoLkNyZWF0ZVJlY29nbml6ZXIoY29uZmlnLCBhdXRoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBncmFtbWFycygpIHsgcmV0dXJuOyB9XG4gIHNldCBncmFtbWFycyhuZXh0R3JhbW1hcnMpIHtcbiAgICAvLyB0aHJvdyBuZXcgRXJyb3IoJ25vdCBzdXBwb3J0ZWQnKTtcbiAgfVxuXG4gIGdldCBsYW5nKCkgeyByZXR1cm4gdGhpcy5fbGFuZzsgfVxuICBzZXQgbGFuZyhuZXh0TGFuZykgeyB0aGlzLl9sYW5nID0gbmV4dExhbmc7IH1cblxuICBnZXQgY29udGludW91cygpIHsgcmV0dXJuIGZhbHNlOyB9XG4gIHNldCBjb250aW51b3VzKG5leHRDb250aW51b3VzKSB7IHRocm93IG5ldyBFcnJvcignbm90IHN1cHBvcnRlZCcpOyB9XG5cbiAgZ2V0IGludGVyaW1SZXN1bHRzKCkgeyByZXR1cm4gdHJ1ZTsgfVxuICBzZXQgaW50ZXJpbVJlc3VsdHMobmV4dEludGVyaW1SZXN1bHRzKSB7XG4gICAgaWYgKCFuZXh0SW50ZXJpbVJlc3VsdHMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBtYXhBbHRlcm5hdGl2ZXMoKSB7IHJldHVybiAxOyB9XG4gIHNldCBtYXhBbHRlcm5hdGl2ZXMobmV4dE1heEFsdGVybmF0aXZlcykgeyB0aHJvdyBuZXcgRXJyb3IoJ25vdCBzdXBwb3J0ZWQnKTsgfVxuXG4gIGdldCBzZXJ2aWNlVVJJKCkgeyByZXR1cm4gbnVsbDsgfVxuICBzZXQgc2VydmljZVVSSShuZXh0U2VydmljZVVSSSkgeyB0aHJvdyBuZXcgRXJyb3IoJ25vdCBzdXBwb3J0ZWQnKTsgfVxuXG4gIGFib3J0KCkge1xuICAgIC8vIFRPRE86IFNob3VsZCByZWRlc2lnbiBob3cgdG8gc3RvcCBhIHJlY29nbml0aW9uIHNlc3Npb25cbiAgICAvLyAgICAgICBBZnRlciBhYm9ydCBpcyBjYWxsZWQsIHdlIHNob3VsZCBub3Qgc2F3IGl0IGlzIGEgXCJzdWNjZXNzXCIsIFwic2lsZW50XCIsIG9yIFwibm8gbWF0Y2hcIlxuICAgIGNvbnN0IHsgQXVkaW9Tb3VyY2UgfSA9IHRoaXMucmVjb2duaXplciB8fCB7fTtcblxuICAgIEF1ZGlvU291cmNlICYmIEF1ZGlvU291cmNlLlR1cm5PZmYoKTtcblxuICAgIHRoaXMuX2Fib3J0ZWQgPSB0cnVlO1xuICB9XG5cbiAgZW1pdChuYW1lLCBldmVudCkge1xuICAgIGNvbnN0IGxpc3RlbmVyID0gdGhpc1tgb24keyBuYW1lIH1gXTtcblxuICAgIGxpc3RlbmVyICYmIGxpc3RlbmVyLmNhbGwodGhpcywgeyAuLi5ldmVudCwgdHlwZTogbmFtZSB9KTtcbiAgfVxuXG4gIHN0b3AoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3Qgc3VwcG9ydGVkJyk7XG4gIH1cblxuICBhc3luYyBzdGFydCgpIHtcbiAgICBjb25zdCByZWNvZ25pemVyID0gdGhpcy5yZWNvZ25pemVyID0gdGhpcy5jcmVhdGVSZWNvZ25pemVyKFxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25LZXkgfHwgdGhpcy50b2tlbkZldGNoLFxuICAgICAgdGhpcy5sYW5nLFxuICAgICAgdGhpcy5vc1BsYXRmb3JtIHx8IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LFxuICAgICAgdGhpcy5vc05hbWUgfHwgd2luZG93Lm5hdmlnYXRvci5hcHBOYW1lLFxuICAgICAgdGhpcy5vc1ZlcnNpb24gfHwgd2luZG93Lm5hdmlnYXRvci5hcHBWZXJzaW9uLFxuICAgICAgdGhpcy5kZXZpY2VNYW51ZmFjdHVyZXIgfHwgJ3dlYi1zcGVlY2gtY29nbml0aXZlLXNlcnZpY2VzJyxcbiAgICAgIHRoaXMuZGV2aWNlTW9kZWwgfHwgJ3dlYi1zcGVlY2gtY29nbml0aXZlLXNlcnZpY2VzJyxcbiAgICAgIHRoaXMuZGV2aWNlVmVyc2lvbiB8fCBWRVJTSU9OXG4gICAgKTtcblxuICAgIGNvbnN0IHsgZXZlbnRMaXN0ZW5lciwgLi4ucHJvbWlzZXMgfSA9IHRvUHJvbWlzZSgpO1xuXG4gICAgcmVjb2duaXplci5SZWNvZ25pemUoZXZlbnRMaXN0ZW5lcik7XG4gICAgdGhpcy5fYWJvcnRlZCA9IGZhbHNlO1xuXG4gICAgYXdhaXQgcHJvbWlzZXMucmVjb2duaXRpb25UcmlnZ2VyZWQ7XG5cbiAgICBsZXQgZXJyb3I7XG5cbiAgICBjb25zdCBsaXN0ZW5pbmdTdGFydGVkID0gYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgIHByb21pc2VzLmxpc3RlbmluZ1N0YXJ0ZWQsXG4gICAgICBwcm9taXNlcy5yZWNvZ25pdGlvbkVuZGVkXG4gICAgXSk7XG5cbiAgICBpZiAobGlzdGVuaW5nU3RhcnRlZC5OYW1lID09PSAnUmVjb2duaXRpb25FbmRlZEV2ZW50Jykge1xuICAgICAgLy8gUG9zc2libHkgbm90IGF1dGhvcml6ZWQgdG8gdXNlIG1pY3JvcGhvbmVcbiAgICAgIGlmIChsaXN0ZW5pbmdTdGFydGVkLlN0YXR1cyA9PT0gQ29nbml0aXZlU3BlZWNoLlJlY29nbml0aW9uQ29tcGxldGlvblN0YXR1cy5BdWRpb1NvdXJjZUVycm9yKSB7XG4gICAgICAgIGVycm9yID0gJ25vdC1hbGxvd2VkJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yID0gQ29nbml0aXZlU3BlZWNoLlJlY29nbml0aW9uQ29tcGxldGlvblN0YXR1c1tsaXN0ZW5pbmdTdGFydGVkLlN0YXR1c107XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW1pdCgnc3RhcnQnKTtcblxuICAgICAgYXdhaXQgcHJvbWlzZXMuY29ubmVjdGluZ1RvU2VydmljZTtcblxuICAgICAgY29uc3QgcmVjb2duaXRpb25TdGFydGVkID0gYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgICAgcHJvbWlzZXMucmVjb2duaXRpb25TdGFydGVkLFxuICAgICAgICBwcm9taXNlcy5yZWNvZ25pdGlvbkVuZGVkXG4gICAgICBdKTtcblxuICAgICAgdGhpcy5lbWl0KCdhdWRpb3N0YXJ0Jyk7XG5cbiAgICAgIGlmIChyZWNvZ25pdGlvblN0YXJ0ZWQuTmFtZSA9PT0gJ1JlY29nbml0aW9uRW5kZWRFdmVudCcpIHtcbiAgICAgICAgLy8gUG9zc2libHkgbmV0d29yayBlcnJvclxuICAgICAgICBpZiAocmVjb2duaXRpb25TdGFydGVkLlN0YXR1cyA9PT0gQ29nbml0aXZlU3BlZWNoLlJlY29nbml0aW9uQ29tcGxldGlvblN0YXR1cy5Db25uZWN0RXJyb3IpIHtcbiAgICAgICAgICBlcnJvciA9ICduZXR3b3JrJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlcnJvciA9IENvZ25pdGl2ZVNwZWVjaC5SZWNvZ25pdGlvbkNvbXBsZXRpb25TdGF0dXNbcmVjb2duaXRpb25TdGFydGVkLlN0YXR1c107XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBnb3RGaXJzdEh5cG90aGVzaXM7XG5cbiAgICAgICAgZm9yICg7Oykge1xuICAgICAgICAgIGNvbnN0IHNwZWVjaEh5cG90aGVzaXMgPSBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgICAgICAgICAgcHJvbWlzZXMuZ2V0U3BlZWNoSHlwb3RoZXNpc1Byb21pc2UoKSxcbiAgICAgICAgICAgIHByb21pc2VzLnNwZWVjaEVuZERldGVjdGVkXG4gICAgICAgICAgXSk7XG5cbiAgICAgICAgICBpZiAoc3BlZWNoSHlwb3RoZXNpcy5OYW1lID09PSAnU3BlZWNoRW5kRGV0ZWN0ZWRFdmVudCcpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghZ290Rmlyc3RIeXBvdGhlc2lzKSB7XG4gICAgICAgICAgICBnb3RGaXJzdEh5cG90aGVzaXMgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5lbWl0KCdzb3VuZHN0YXJ0Jyk7XG4gICAgICAgICAgICB0aGlzLmVtaXQoJ3NwZWVjaHN0YXJ0Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZXN1bHQnLCBidWlsZFNwZWVjaFJlc3VsdChzcGVlY2hIeXBvdGhlc2lzLlJlc3VsdC5UZXh0LCAuNSwgZmFsc2UpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChnb3RGaXJzdEh5cG90aGVzaXMpIHtcbiAgICAgICAgICB0aGlzLmVtaXQoJ3NwZWVjaGVuZCcpO1xuICAgICAgICAgIHRoaXMuZW1pdCgnc291bmRlbmQnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXQoJ2F1ZGlvZW5kJyk7XG5cbiAgICAgIGlmICh0aGlzLl9hYm9ydGVkKSB7XG4gICAgICAgIGVycm9yID0gJ2Fib3J0ZWQnO1xuXG4gICAgICAgIGF3YWl0IHByb21pc2VzLnJlY29nbml0aW9uRW5kZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzcGVlY2hEZXRhaWxlZFBocmFzZSA9IGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgICAgICAgcHJvbWlzZXMuc3BlZWNoRGV0YWlsZWRQaHJhc2UsXG4gICAgICAgICAgcHJvbWlzZXMucmVjb2duaXRpb25FbmRlZFxuICAgICAgICBdKTtcblxuICAgICAgICBpZiAoc3BlZWNoRGV0YWlsZWRQaHJhc2UuTmFtZSAhPT0gJ1JlY29nbml0aW9uRW5kZWRFdmVudCcpIHtcbiAgICAgICAgICBjb25zdCByZWNvZ25pdGlvblJlc3VsdCA9IENvZ25pdGl2ZVNwZWVjaC5SZWNvZ25pdGlvblN0YXR1c1tzcGVlY2hEZXRhaWxlZFBocmFzZS5SZXN1bHQuUmVjb2duaXRpb25TdGF0dXNdO1xuXG4gICAgICAgICAgaWYgKHJlY29nbml0aW9uUmVzdWx0ID09PSBDb2duaXRpdmVTcGVlY2guUmVjb2duaXRpb25TdGF0dXMuU3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZXN1bHQnLCBidWlsZFNwZWVjaFJlc3VsdChzcGVlY2hEZXRhaWxlZFBocmFzZS5SZXN1bHQuTkJlc3RbMF0uRGlzcGxheSwgc3BlZWNoRGV0YWlsZWRQaHJhc2UuUmVzdWx0Lk5CZXN0WzBdLkNvbmZpZGVuY2UsIHRydWUpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlY29nbml0aW9uUmVzdWx0ICE9PSBDb2duaXRpdmVTcGVlY2guUmVjb2duaXRpb25TdGF0dXMuTm9NYXRjaCkge1xuICAgICAgICAgICAgLy8gUG9zc2libHkgc2lsZW50IG9yIG11dGVkXG4gICAgICAgICAgICBpZiAocmVjb2duaXRpb25SZXN1bHQgPT09IENvZ25pdGl2ZVNwZWVjaC5SZWNvZ25pdGlvblN0YXR1cy5Jbml0aWFsU2lsZW5jZVRpbWVvdXQpIHtcbiAgICAgICAgICAgICAgZXJyb3IgPSAnbm8tc3BlZWNoJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGVycm9yID0gc3BlZWNoRGV0YWlsZWRQaHJhc2UuUmVzdWx0LlJlY29nbml0aW9uU3RhdHVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGF3YWl0IHByb21pc2VzLnJlY29nbml0aW9uRW5kZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBlcnJvciAmJiB0aGlzLmVtaXQoJ2Vycm9yJywgeyBlcnJvciB9KTtcbiAgICB0aGlzLmVtaXQoJ2VuZCcpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRvUHJvbWlzZSgpIHtcbiAgY29uc3QgZXZlbnRzID0ge1xuICAgIENvbm5lY3RpbmdUb1NlcnZpY2VFdmVudDogbmV3IEV2ZW50QXNQcm9taXNlKCksXG4gICAgTGlzdGVuaW5nU3RhcnRlZEV2ZW50OiBuZXcgRXZlbnRBc1Byb21pc2UoKSxcbiAgICBSZWNvZ25pdGlvbkVuZGVkRXZlbnQ6IG5ldyBFdmVudEFzUHJvbWlzZSgpLFxuICAgIFJlY29nbml0aW9uU3RhcnRlZEV2ZW50OiBuZXcgRXZlbnRBc1Byb21pc2UoKSxcbiAgICBSZWNvZ25pdGlvblRyaWdnZXJlZEV2ZW50OiBuZXcgRXZlbnRBc1Byb21pc2UoKSxcbiAgICBTcGVlY2hEZXRhaWxlZFBocmFzZUV2ZW50OiBuZXcgRXZlbnRBc1Byb21pc2UoKSxcbiAgICBTcGVlY2hFbmREZXRlY3RlZEV2ZW50OiBuZXcgRXZlbnRBc1Byb21pc2UoKSxcbiAgICBTcGVlY2hIeXBvdGhlc2lzRXZlbnQ6IG5ldyBFdmVudEFzUHJvbWlzZSgpLFxuICAgIFNwZWVjaFNpbXBsZVBocmFzZUV2ZW50OiBuZXcgRXZlbnRBc1Byb21pc2UoKSxcbiAgICBTcGVlY2hTdGFydERldGVjdGVkRXZlbnQ6IG5ldyBFdmVudEFzUHJvbWlzZSgpXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBjb25uZWN0aW5nVG9TZXJ2aWNlOiBldmVudHMuQ29ubmVjdGluZ1RvU2VydmljZUV2ZW50LnVwY29taW5nKCksXG4gICAgbGlzdGVuaW5nU3RhcnRlZDogZXZlbnRzLkxpc3RlbmluZ1N0YXJ0ZWRFdmVudC51cGNvbWluZygpLFxuICAgIHJlY29nbml0aW9uRW5kZWQ6IGV2ZW50cy5SZWNvZ25pdGlvbkVuZGVkRXZlbnQudXBjb21pbmcoKSxcbiAgICByZWNvZ25pdGlvblN0YXJ0ZWQ6IGV2ZW50cy5SZWNvZ25pdGlvblN0YXJ0ZWRFdmVudC51cGNvbWluZygpLFxuICAgIHJlY29nbml0aW9uVHJpZ2dlcmVkOiBldmVudHMuUmVjb2duaXRpb25UcmlnZ2VyZWRFdmVudC51cGNvbWluZygpLFxuICAgIHNwZWVjaERldGFpbGVkUGhyYXNlOiBldmVudHMuU3BlZWNoRGV0YWlsZWRQaHJhc2VFdmVudC51cGNvbWluZygpLFxuICAgIHNwZWVjaEVuZERldGVjdGVkOiBldmVudHMuU3BlZWNoRW5kRGV0ZWN0ZWRFdmVudC51cGNvbWluZygpLFxuICAgIGdldFNwZWVjaEh5cG90aGVzaXNQcm9taXNlOiAoKSA9PiBldmVudHMuU3BlZWNoSHlwb3RoZXNpc0V2ZW50LnVwY29taW5nKCksXG4gICAgc3BlZWNoU2ltcGxlUGhyYXNlOiBldmVudHMuU3BlZWNoU2ltcGxlUGhyYXNlRXZlbnQudXBjb21pbmcoKSxcbiAgICBzcGVlY2hTdGFydERldGVjdGVkOiBldmVudHMuU3BlZWNoU3RhcnREZXRlY3RlZEV2ZW50LnVwY29taW5nKCksXG4gICAgZXZlbnRMaXN0ZW5lcjogZXZlbnQgPT4ge1xuICAgICAgY29uc3QgeyBOYW1lOiBuYW1lIH0gPSBldmVudDtcbiAgICAgIGNvbnN0IGV2ZW50QXNQcm9taXNlID0gZXZlbnRzW25hbWVdO1xuXG4gICAgICBpZiAoZXZlbnRBc1Byb21pc2UpIHtcbiAgICAgICAgZXZlbnRBc1Byb21pc2UuZXZlbnRMaXN0ZW5lci5jYWxsKG51bGwsIGV2ZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgVW5leHBlY3RlZCBldmVudCBcXFwiJHsgbmFtZSB9XFxcIiBmcm9tIENvZ25pdGl2ZSBTZXJ2aWNlcywgcGxlYXNlIGZpbGUgYSBidWcgdG8gaHR0cHM6Ly9naXRodWIuY29tL2NvbXB1bGltL3dlYi1zcGVlY2gtY29nbml0aXZlLXNlcnZpY2VzYCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBDb2duaXRpdmVTZXJ2aWNlc1NwZWVjaFJlY29nbml0aW9uXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Db2duaXRpdmVTZXJ2aWNlc1NwZWVjaFJlY29nbml0aW9uLmpzIl0sIm5hbWVzIjpbIkNvZ25pdGl2ZVNwZWVjaCIsImJ1aWxkU3BlZWNoUmVzdWx0IiwidHJhbnNjcmlwdCIsImNvbmZpZGVuY2UiLCJpc0ZpbmFsIiwicmVzdWx0IiwicmVzdWx0cyIsInR5cGUiLCJDb2duaXRpdmVTZXJ2aWNlc1NwZWVjaFJlY29nbml0aW9uIiwiX2xhbmciLCJyZWFkeVN0YXRlIiwib25hdWRpb3N0YXJ0Iiwib25hdWRpb2VuZCIsIm9uZW5kIiwib25lcnJvciIsIm9ubm9tYXRjaCIsIm9ucmVzdWx0Iiwib25zb3VuZHN0YXJ0Iiwib25zb3VuZGVuZCIsIm9uc3BlZWNoc3RhcnQiLCJvbnNwZWVjaGVuZCIsIm9uc3RhcnQiLCJjcmVhdGVSZWNvZ25pemVyIiwic3Vic2NyaXB0aW9uS2V5T3JUb2tlbkZldGNoIiwibGFuZyIsIm5hdmlnYXRvciIsImxhbmd1YWdlIiwibW9kZSIsIlJlY29nbml0aW9uTW9kZSIsIkludGVyYWN0aXZlIiwib3NQbGF0Zm9ybSIsIndpbmRvdyIsInVzZXJBZ2VudCIsIm9zTmFtZSIsImFwcE5hbWUiLCJvc1ZlcnNpb24iLCJhcHBWZXJzaW9uIiwiZGV2aWNlTWFudWZhY3R1cmVyIiwiZGV2aWNlTW9kZWwiLCJkZXZpY2VWZXJzaW9uIiwiY29uZmlnIiwiUmVjb2duaXplckNvbmZpZyIsIlNwZWVjaENvbmZpZyIsIkNvbnRleHQiLCJPUyIsIkRldmljZSIsIlNwZWVjaFJlc3VsdEZvcm1hdCIsIkRldGFpbGVkIiwiYXV0aCIsIkNvZ25pdGl2ZVRva2VuQXV0aGVudGljYXRpb24iLCJhdXRoRmV0Y2hFdmVudElEIiwiQ29nbml0aXZlU3Vic2NyaXB0aW9uS2V5QXV0aGVudGljYXRpb24iLCJDcmVhdGVSZWNvZ25pemVyIiwicmVjb2duaXplciIsIkF1ZGlvU291cmNlIiwiVHVybk9mZiIsIl9hYm9ydGVkIiwibmFtZSIsImV2ZW50IiwibGlzdGVuZXIiLCJjYWxsIiwiRXJyb3IiLCJzdWJzY3JpcHRpb25LZXkiLCJ0b2tlbkZldGNoIiwidG9Qcm9taXNlIiwiZXZlbnRMaXN0ZW5lciIsInByb21pc2VzIiwiUmVjb2duaXplIiwicmVjb2duaXRpb25UcmlnZ2VyZWQiLCJlcnJvciIsIlByb21pc2UiLCJyYWNlIiwibGlzdGVuaW5nU3RhcnRlZCIsInJlY29nbml0aW9uRW5kZWQiLCJOYW1lIiwiU3RhdHVzIiwiUmVjb2duaXRpb25Db21wbGV0aW9uU3RhdHVzIiwiQXVkaW9Tb3VyY2VFcnJvciIsImVtaXQiLCJjb25uZWN0aW5nVG9TZXJ2aWNlIiwicmVjb2duaXRpb25TdGFydGVkIiwiQ29ubmVjdEVycm9yIiwiZ290Rmlyc3RIeXBvdGhlc2lzIiwiZ2V0U3BlZWNoSHlwb3RoZXNpc1Byb21pc2UiLCJzcGVlY2hFbmREZXRlY3RlZCIsInNwZWVjaEh5cG90aGVzaXMiLCJSZXN1bHQiLCJUZXh0Iiwic3BlZWNoRGV0YWlsZWRQaHJhc2UiLCJyZWNvZ25pdGlvblJlc3VsdCIsIlJlY29nbml0aW9uU3RhdHVzIiwiU3VjY2VzcyIsIk5CZXN0IiwiRGlzcGxheSIsIkNvbmZpZGVuY2UiLCJOb01hdGNoIiwiSW5pdGlhbFNpbGVuY2VUaW1lb3V0IiwibmV4dEdyYW1tYXJzIiwibmV4dExhbmciLCJuZXh0Q29udGludW91cyIsIm5leHRJbnRlcmltUmVzdWx0cyIsIm5leHRNYXhBbHRlcm5hdGl2ZXMiLCJuZXh0U2VydmljZVVSSSIsImV2ZW50cyIsIkNvbm5lY3RpbmdUb1NlcnZpY2VFdmVudCIsIkV2ZW50QXNQcm9taXNlIiwiTGlzdGVuaW5nU3RhcnRlZEV2ZW50IiwiUmVjb2duaXRpb25FbmRlZEV2ZW50IiwiUmVjb2duaXRpb25TdGFydGVkRXZlbnQiLCJSZWNvZ25pdGlvblRyaWdnZXJlZEV2ZW50IiwiU3BlZWNoRGV0YWlsZWRQaHJhc2VFdmVudCIsIlNwZWVjaEVuZERldGVjdGVkRXZlbnQiLCJTcGVlY2hIeXBvdGhlc2lzRXZlbnQiLCJTcGVlY2hTaW1wbGVQaHJhc2VFdmVudCIsIlNwZWVjaFN0YXJ0RGV0ZWN0ZWRFdmVudCIsInVwY29taW5nIiwic3BlZWNoU2ltcGxlUGhyYXNlIiwic3BlZWNoU3RhcnREZXRlY3RlZCIsImV2ZW50QXNQcm9taXNlIiwiY29uc29sZSIsIndhcm4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7SUFBWUEsZTs7QUFDWjs7OztBQUNBOzs7Ozs7Ozs7Ozs7OztBQUVBLFNBQVNDLGlCQUFULENBQTJCQyxVQUEzQixFQUF1Q0MsVUFBdkMsRUFBbURDLE9BQW5ELEVBQTREO0FBQzFELE1BQU1DLFNBQVMsQ0FBQyxFQUFFRixzQkFBRixFQUFjRCxzQkFBZCxFQUFELENBQWY7O0FBRUFHLFNBQU9ELE9BQVAsR0FBaUJBLE9BQWpCOztBQUVBLFNBQU8sRUFBRUUsU0FBUyxDQUFDRCxNQUFELENBQVgsRUFBcUJFLE1BQU0sUUFBM0IsRUFBUDtBQUNEOztJQUVLQyxrQztBQUNKLGdEQUFjO0FBQUE7O0FBQUE7O0FBQ1osU0FBS0MsS0FBTCxHQUFhLEVBQWI7O0FBRUEsU0FBS0MsVUFBTCxHQUFrQixDQUFsQjs7QUFFQSxTQUFLQyxZQUFMLEdBQW9CLElBQXBCO0FBQ0EsU0FBS0MsVUFBTCxHQUFrQixJQUFsQjtBQUNBLFNBQUtDLEtBQUwsR0FBYSxJQUFiO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLElBQWY7QUFDQSxTQUFLQyxTQUFMLEdBQWlCLElBQWpCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixJQUFoQjtBQUNBLFNBQUtDLFlBQUwsR0FBb0IsSUFBcEI7QUFDQSxTQUFLQyxVQUFMLEdBQWtCLElBQWxCO0FBQ0EsU0FBS0MsYUFBTCxHQUFxQixJQUFyQjtBQUNBLFNBQUtDLFdBQUwsR0FBbUIsSUFBbkI7QUFDQSxTQUFLQyxPQUFMLEdBQWUsSUFBZjs7QUFFQSxTQUFLQyxnQkFBTCxHQUF3QiwwQkFBUSxVQUM5QkMsMkJBRDhCLEVBVTNCO0FBQUEsVUFSSEMsSUFRRyx1RUFSSUMsVUFBVUMsUUFRZDtB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OztBQUVBLFVBQUk2RCxjQUFKLEVBQW9CO0FBQ2xCQSx1QkFBZXJELGFBQWYsQ0FBNkJMLElBQTdCLENBQWtDLElBQWxDLEVBQXdDRixLQUF4QztBQUNELE9BRkQsTUFFTztBQUNMNkQsZ0JBQVFDLElBQVIsd0JBQW9DL0QsSUFBcEM7QUFDRDtBQUNGO0FBcEJJLEdBQVA7QUFzQkQ7O2tCQUVjakQsa0MiLCJmaWxlIjoiQ29nbml0aXZlU2VydmljZXNTcGVlY2hSZWNvZ25pdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIENvZ25pdGl2ZVNwZWVjaCBmcm9tICdtaWNyb3NvZnQtc3BlZWNoLWJyb3dzZXItc2RrJztcbmltcG9ydCBFdmVudEFzUHJvbWlzZSBmcm9tICdldmVudC1hcy1wcm9taXNlJztcbmltcG9ydCBtZW1vaXplIGZyb20gJ21lbW9pemUtb25lJztcblxuZnVuY3Rpb24gYnVpbGRTcGVlY2hSZXN1bHQodHJhbnNjcmlwdCwgY29uZmlkZW5jZSwgaXNGaW5hbCkge1xuICBjb25zdCByZXN1bHQgPSBbeyBjb25maWRlbmNlLCB0cmFuc2NyaXB0IH1dO1xuXG4gIHJlc3VsdC5pc0ZpbmFsID0gaXNGaW5hbDtcblxuICByZXR1cm4geyByZXN1bHRzOiBbcmVzdWx0XSwgdHlwZTogJ3Jlc3VsdCcgfTtcbn1cblxuY2xhc3MgQ29nbml0aXZlU2VydmljZXNTcGVlY2hSZWNvZ25pdGlvbiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2xhbmcgPSAnJztcblxuICAgIHRoaXMucmVhZHlTdGF0ZSA9IDA7XG5cbiAgICB0aGlzLm9uYXVkaW9zdGFydCA9IG51bGw7XG4gICAgdGhpcy5vbmF1ZGlvZW5kID0gbnVsbDtcbiAgICB0aGlzLm9uZW5kID0gbnVsbDtcbiAgICB0aGlzLm9uZXJyb3IgPSBudWxsO1xuICAgIHRoaXMub25ub21hdGNoID0gbnVsbDtcbiAgICB0aGlzLm9ucmVzdWx0ID0gbnVsbDtcbiAgICB0aGlzLm9uc291bmRzdGFydCA9IG51bGw7XG4gICAgdGhpcy5vbnNvdW5kZW5kID0gbnVsbDtcbiAgICB0aGlzLm9uc3BlZWNoc3RhcnQgPSBudWxsO1xuICAgIHRoaXMub25zcGVlY2hlbmQgPSBudWxsO1xuICAgIHRoaXMub25zdGFydCA9IG51bGw7XG5cbiAgICB0aGlzLmNyZWF0ZVJlY29nbml6ZXIgPSBtZW1vaXplKChcbiAgICAgIHN1YnNjcmlwdGlvbktleU9yVG9rZW5GZXRjaCxcbiAgICAgIGxhbmcgPSBuYXZpZ2F0b3IubGFuZ3VhZ2UsXG4gICAgICBtb2RlID0gQ29nbml0aXZlU3BlZWNoLlJlY29nbml0aW9uTW9kZS5JbnRlcmFjdGl2ZSxcbiAgICAgIG9zUGxhdGZvcm0gPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCxcbiAgICAgIG9zTmFtZSA9IHdpbmRvdy5uYXZpZ2F0b3IuYXBwTmFtZSxcbiAgICAgIG9zVmVyc2lvbiA9IHdpbmRvdy5uYXZpZ2F0b3IuYXBwVmVyc2lvbixcbiAgICAgIGRldmljZU1hbnVmYWN0dXJlciA9ICdtaWNyb3NvZnQtc3BlZWNoLWJyb3dzZXItc2RrJyxcbiAgICAgIGRldmljZU1vZGVsID0gJ3dlYi1zcGVlY2gtY29nbml0aXZlLXNlcnZpY2VzJyxcbiAgICAgIGRldmljZVZlcnNpb24gPSBWRVJTSU9OXG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBjb25maWcgPSBuZXcgQ29nbml0aXZlU3BlZWNoLlJlY29nbml6ZXJDb25maWcoXG4gICAgICAgIG5ldyBDb2duaXRpdmVTcGVlY2guU3BlZWNoQ29uZmlnKFxuICAgICAgICAgIG5ldyBDb2duaXRpdmVTcGVlY2guQ29udGV4dChcbiAgICAgICAgICAgIG5ldyBDb2duaXRpdmVTcGVlY2guT1MoXG4gICAgICAgICAgICAgIG9zUGxhdGZvcm0sXG4gICAgICAgICAgICAgIG9zTmFtZSxcbiAgICAgICAgICAgICAgb3NWZXJzaW9uXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbmV3IENvZ25pdGl2ZVNwZWVjaC5EZXZpY2UoXG4gICAgICAgICAgICAgIGRldmljZU1hbnVmYWN0dXJlcixcbiAgICAgICAgICAgICAgZGV2aWNlTW9kZWwsXG4gICAgICAgICAgICAgIGRldmljZVZlcnNpb25cbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIG1vZGUsXG4gICAgICAgIGxhbmcsXG4gICAgICAgIENvZ25pdGl2ZVNwZWVjaC5TcGVlY2hSZXN1bHRGb3JtYXQuRGV0YWlsZWRcbiAgICAgICk7XG5cbiAgICAgIGxldCBhdXRoO1xuXG4gICAgICBpZiAodHlwZW9mIHN1YnNjcmlwdGlvbktleU9yVG9rZW5GZXRjaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBhdXRoID0gbmV3IENvZ25pdGl2ZVNwZWVjaC5Db2duaXRpdmVUb2tlbkF1dGhlbnRpY2F0aW9uKFxuICAgICAgICAgIGFzeW5jIGF1dGhGZXRjaEV2ZW50SUQgPT4gYXdhaXQgc3Vic2NyaXB0aW9uS2V5T3JUb2tlbkZldGNoKGF1dGhGZXRjaEV2ZW50SUQsIGZhbHNlKSxcbiAgICAgICAgICBhc3luYyBhdXRoRmV0Y2hFdmVudElEID0+IGF3YWl0IHN1YnNjcmlwdGlvbktleU9yVG9rZW5GZXRjaChhdXRoRmV0Y2hFdmVudElELCB0cnVlKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXV0aCA9IG5ldyBDb2duaXRpdmVTcGVlY2guQ29nbml0aXZlU3Vic2NyaXB0aW9uS2V5QXV0aGVudGljYXRpb24oc3Vic2NyaXB0aW9uS2V5T3JUb2tlbkZldGNoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIENvZ25pdGl2ZVNwZWVjaC5DcmVhdGVSZWNvZ25pemVyKGNvbmZpZywgYXV0aCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgZ3JhbW1hcnMoKSB7IHJldHVybjsgfVxuICBzZXQgZ3JhbW1hcnMobmV4dEdyYW1tYXJzKSB7XG4gICAgLy8gdGhyb3cgbmV3IEVycm9yKCdub3Qgc3VwcG9ydGVkJyk7XG4gIH1cblxuICBnZXQgbGFuZygpIHsgcmV0dXJuIHRoaXMuX2xhbmc7IH1cbiAgc2V0IGxhbmcobmV4dExhbmcpIHsgdGhpcy5fbGFuZyA9IG5leHRMYW5nOyB9XG5cbiAgZ2V0IGNvbnRpbnVvdXMoKSB7IHJldHVybiBmYWxzZTsgfVxuICBzZXQgY29udGludW91cyhuZXh0Q29udGludW91cykgeyB0aHJvdyBuZXcgRXJyb3IoJ25vdCBzdXBwb3J0ZWQnKTsgfVxuXG4gIGdldCBpbnRlcmltUmVzdWx0cygpIHsgcmV0dXJuIHRydWU7IH1cbiAgc2V0IGludGVyaW1SZXN1bHRzKG5leHRJbnRlcmltUmVzdWx0cykge1xuICAgIGlmICghbmV4dEludGVyaW1SZXN1bHRzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG4gIH1cblxuICBnZXQgbWF4QWx0ZXJuYXRpdmVzKCkgeyByZXR1cm4gMTsgfVxuICBzZXQgbWF4QWx0ZXJuYXRpdmVzKG5leHRNYXhBbHRlcm5hdGl2ZXMpIHsgdGhyb3cgbmV3IEVycm9yKCdub3Qgc3VwcG9ydGVkJyk7IH1cblxuICBnZXQgc2VydmljZVVSSSgpIHsgcmV0dXJuIG51bGw7IH1cbiAgc2V0IHNlcnZpY2VVUkkobmV4dFNlcnZpY2VVUkkpIHsgdGhyb3cgbmV3IEVycm9yKCdub3Qgc3VwcG9ydGVkJyk7IH1cblxuICBhYm9ydCgpIHtcbiAgICAvLyBUT0RPOiBTaG91bGQgcmVkZXNpZ24gaG93IHRvIHN0b3AgYSByZWNvZ25pdGlvbiBzZXNzaW9uXG4gICAgLy8gICAgICAgQWZ0ZXIgYWJvcnQgaXMgY2FsbGVkLCB3ZSBzaG91bGQgbm90IHNhdyBpdCBpcyBhIFwic3VjY2Vzc1wiLCBcInNpbGVudFwiLCBvciBcIm5vIG1hdGNoXCJcbiAgICBjb25zdCB7IEF1ZGlvU291cmNlIH0gPSB0aGlzLnJlY29nbml6ZXIgfHwge307XG5cbiAgICBBdWRpb1NvdXJjZSAmJiBBdWRpb1NvdXJjZS5UdXJuT2ZmKCk7XG5cbiAgICB0aGlzLl9hYm9ydGVkID0gdHJ1ZTtcbiAgfVxuXG4gIGVtaXQobmFtZSwgZXZlbnQpIHtcbiAgICBjb25zdCBsaXN0ZW5lciA9IHRoaXNbYG9uJHsgbmFtZSB9YF07XG5cbiAgICBsaXN0ZW5lciAmJiBsaXN0ZW5lci5jYWxsKHRoaXMsIHsgLi4uZXZlbnQsIHR5cGU6IG5hbWUgfSk7XG4gIH1cblxuICBzdG9wKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IHN1cHBvcnRlZCcpO1xuICB9XG5cbiAgYXN5bmMgc3RhcnQoKSB7XG4gICAgY29uc3QgcmVjb2duaXplciA9IHRoaXMucmVjb2duaXplciA9IHRoaXMuY3JlYXRlUmVjb2duaXplcihcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uS2V5IHx8IHRoaXMudG9rZW5GZXRjaCxcbiAgICAgIHRoaXMubGFuZyxcbiAgICAgIHRoaXMub3NQbGF0Zm9ybSB8fCB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCxcbiAgICAgIHRoaXMub3NOYW1lIHx8IHdpbmRvdy5uYXZpZ2F0b3IuYXBwTmFtZSxcbiAgICAgIHRoaXMub3NWZXJzaW9uIHx8IHdpbmRvdy5uYXZpZ2F0b3IuYXBwVmVyc2lvbixcbiAgICAgIHRoaXMuZGV2aWNlTWFudWZhY3R1cmVyIHx8ICd3ZWItc3BlZWNoLWNvZ25pdGl2ZS1zZXJ2aWNlcycsXG4gICAgICB0aGlzLmRldmljZU1vZGVsIHx8ICd3ZWItc3BlZWNoLWNvZ25pdGl2ZS1zZXJ2aWNlcycsXG4gICAgICB0aGlzLmRldmljZVZlcnNpb24gfHwgVkVSU0lPTlxuICAgICk7XG5cbiAgICBjb25zdCB7IGV2ZW50TGlzdGVuZXIsIC4uLnByb21pc2VzIH0gPSB0b1Byb21pc2UoKTtcblxuICAgIHJlY29nbml6ZXIuUmVjb2duaXplKGV2ZW50TGlzdGVuZXIpO1xuICAgIHRoaXMuX2Fib3J0ZWQgPSBmYWxzZTtcblxuICAgIGF3YWl0IHByb21pc2VzLnJlY29nbml0aW9uVHJpZ2dlcmVkO1xuXG4gICAgbGV0IGVycm9yO1xuXG4gICAgY29uc3QgbGlzdGVuaW5nU3RhcnRlZCA9IGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgICBwcm9taXNlcy5saXN0ZW5pbmdTdGFydGVkLFxuICAgICAgcHJvbWlzZXMucmVjb2duaXRpb25FbmRlZFxuICAgIF0pO1xuXG4gICAgaWYgKGxpc3RlbmluZ1N0YXJ0ZWQuTmFtZSA9PT0gJ1JlY29nbml0aW9uRW5kZWRFdmVudCcpIHtcbiAgICAgIC8vIFBvc3NpYmx5IG5vdCBhdXRob3JpemVkIHRvIHVzZSBtaWNyb3Bob25lXG4gICAgICBpZiAobGlzdGVuaW5nU3RhcnRlZC5TdGF0dXMgPT09IENvZ25pdGl2ZVNwZWVjaC5SZWNvZ25pdGlvbkNvbXBsZXRpb25TdGF0dXMuQXVkaW9Tb3VyY2VFcnJvcikge1xuICAgICAgICBlcnJvciA9ICdub3QtYWxsb3dlZCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvciA9IENvZ25pdGl2ZVNwZWVjaC5SZWNvZ25pdGlvbkNvbXBsZXRpb25TdGF0dXNbbGlzdGVuaW5nU3RhcnRlZC5TdGF0dXNdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtaXQoJ3N0YXJ0Jyk7XG5cbiAgICAgIGF3YWl0IHByb21pc2VzLmNvbm5lY3RpbmdUb1NlcnZpY2U7XG5cbiAgICAgIGNvbnN0IHJlY29nbml0aW9uU3RhcnRlZCA9IGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgICAgIHByb21pc2VzLnJlY29nbml0aW9uU3RhcnRlZCxcbiAgICAgICAgcHJvbWlzZXMucmVjb2duaXRpb25FbmRlZFxuICAgICAgXSk7XG5cbiAgICAgIHRoaXMuZW1pdCgnYXVkaW9zdGFydCcpO1xuXG4gICAgICBpZiAocmVjb2duaXRpb25TdGFydGVkLk5hbWUgPT09ICdSZWNvZ25pdGlvbkVuZGVkRXZlbnQnKSB7XG4gICAgICAgIC8vIFBvc3NpYmx5IG5ldHdvcmsgZXJyb3JcbiAgICAgICAgaWYgKHJlY29nbml0aW9uU3RhcnRlZC5TdGF0dXMgPT09IENvZ25pdGl2ZVNwZWVjaC5SZWNvZ25pdGlvbkNvbXBsZXRpb25TdGF0dXMuQ29ubmVjdEVycm9yKSB7XG4gICAgICAgICAgZXJyb3IgPSAnbmV0d29yayc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3IgPSBDb2duaXRpdmVTcGVlY2guUmVjb2duaXRpb25Db21wbGV0aW9uU3RhdHVzW3JlY29nbml0aW9uU3RhcnRlZC5TdGF0dXNdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgZ290Rmlyc3RIeXBvdGhlc2lzO1xuXG4gICAgICAgIGZvciAoOzspIHtcbiAgICAgICAgICBjb25zdCBzcGVlY2hIeXBvdGhlc2lzID0gYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgICAgICAgIHByb21pc2VzLmdldFNwZWVjaEh5cG90aGVzaXNQcm9taXNlKCksXG4gICAgICAgICAgICBwcm9taXNlcy5zcGVlY2hFbmREZXRlY3RlZFxuICAgICAgICAgIF0pO1xuXG4gICAgICAgICAgaWYgKHNwZWVjaEh5cG90aGVzaXMuTmFtZSA9PT0gJ1NwZWVjaEVuZERldGVjdGVkRXZlbnQnKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIWdvdEZpcnN0SHlwb3RoZXNpcykge1xuICAgICAgICAgICAgZ290Rmlyc3RIeXBvdGhlc2lzID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZW1pdCgnc291bmRzdGFydCcpO1xuICAgICAgICAgICAgdGhpcy5lbWl0KCdzcGVlY2hzdGFydCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuZW1pdCgncmVzdWx0JywgYnVpbGRTcGVlY2hSZXN1bHQoc3BlZWNoSHlwb3RoZXNpcy5SZXN1bHQuVGV4dCwgLjUsIGZhbHNlKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZ290Rmlyc3RIeXBvdGhlc2lzKSB7XG4gICAgICAgICAgdGhpcy5lbWl0KCdzcGVlY2hlbmQnKTtcbiAgICAgICAgICB0aGlzLmVtaXQoJ3NvdW5kZW5kJyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5lbWl0KCdhdWRpb2VuZCcpO1xuXG4gICAgICBpZiAodGhpcy5fYWJvcnRlZCkge1xuICAgICAgICBlcnJvciA9ICdhYm9ydGVkJztcblxuICAgICAgICBhd2FpdCBwcm9taXNlcy5yZWNvZ25pdGlvbkVuZGVkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3BlZWNoRGV0YWlsZWRQaHJhc2UgPSBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgICAgICAgIHByb21pc2VzLnNwZWVjaERldGFpbGVkUGhyYXNlLFxuICAgICAgICAgIHByb21pc2VzLnJlY29nbml0aW9uRW5kZWRcbiAgICAgICAgXSk7XG5cbiAgICAgICAgaWYgKHNwZWVjaERldGFpbGVkUGhyYXNlLk5hbWUgIT09ICdSZWNvZ25pdGlvbkVuZGVkRXZlbnQnKSB7XG4gICAgICAgICAgY29uc3QgcmVjb2duaXRpb25SZXN1bHQgPSBDb2duaXRpdmVTcGVlY2guUmVjb2duaXRpb25TdGF0dXNbc3BlZWNoRGV0YWlsZWRQaHJhc2UuUmVzdWx0LlJlY29nbml0aW9uU3RhdHVzXTtcblxuICAgICAgICAgIGlmIChyZWNvZ25pdGlvblJlc3VsdCA9PT0gQ29nbml0aXZlU3BlZWNoLlJlY29nbml0aW9uU3RhdHVzLlN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdCgncmVzdWx0JywgYnVpbGRTcGVlY2hSZXN1bHQoc3BlZWNoRGV0YWlsZWRQaHJhc2UuUmVzdWx0Lk5CZXN0WzBdLkRpc3BsYXksIHNwZWVjaERldGFpbGVkUGhyYXNlLlJlc3VsdC5OQmVzdFswXS5Db25maWRlbmNlLCB0cnVlKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZWNvZ25pdGlvblJlc3VsdCAhPT0gQ29nbml0aXZlU3BlZWNoLlJlY29nbml0aW9uU3RhdHVzLk5vTWF0Y2gpIHtcbiAgICAgICAgICAgIC8vIFBvc3NpYmx5IHNpbGVudCBvciBtdXRlZFxuICAgICAgICAgICAgaWYgKHJlY29nbml0aW9uUmVzdWx0ID09PSBDb2duaXRpdmVTcGVlY2guUmVjb2duaXRpb25TdGF0dXMuSW5pdGlhbFNpbGVuY2VUaW1lb3V0KSB7XG4gICAgICAgICAgICAgIGVycm9yID0gJ25vLXNwZWVjaCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlcnJvciA9IHNwZWVjaERldGFpbGVkUGhyYXNlLlJlc3VsdC5SZWNvZ25pdGlvblN0YXR1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhd2FpdCBwcm9taXNlcy5yZWNvZ25pdGlvbkVuZGVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZXJyb3IgJiYgdGhpcy5lbWl0KCdlcnJvcicsIHsgZXJyb3IgfSk7XG4gICAgdGhpcy5lbWl0KCdlbmQnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0b1Byb21pc2UoKSB7XG4gIGNvbnN0IGV2ZW50cyA9IHtcbiAgICBDb25uZWN0aW5nVG9TZXJ2aWNlRXZlbnQ6IG5ldyBFdmVudEFzUHJvbWlzZSgpLFxuICAgIExpc3RlbmluZ1N0YXJ0ZWRFdmVudDogbmV3IEV2ZW50QXNQcm9taXNlKCksXG4gICAgUmVjb2duaXRpb25FbmRlZEV2ZW50OiBuZXcgRXZlbnRBc1Byb21pc2UoKSxcbiAgICBSZWNvZ25pdGlvblN0YXJ0ZWRFdmVudDogbmV3IEV2ZW50QXNQcm9taXNlKCksXG4gICAgUmVjb2duaXRpb25UcmlnZ2VyZWRFdmVudDogbmV3IEV2ZW50QXNQcm9taXNlKCksXG4gICAgU3BlZWNoRGV0YWlsZWRQaHJhc2VFdmVudDogbmV3IEV2ZW50QXNQcm9taXNlKCksXG4gICAgU3BlZWNoRW5kRGV0ZWN0ZWRFdmVudDogbmV3IEV2ZW50QXNQcm9taXNlKCksXG4gICAgU3BlZWNoSHlwb3RoZXNpc0V2ZW50OiBuZXcgRXZlbnRBc1Byb21pc2UoKSxcbiAgICBTcGVlY2hTaW1wbGVQaHJhc2VFdmVudDogbmV3IEV2ZW50QXNQcm9taXNlKCksXG4gICAgU3BlZWNoU3RhcnREZXRlY3RlZEV2ZW50OiBuZXcgRXZlbnRBc1Byb21pc2UoKVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgY29ubmVjdGluZ1RvU2VydmljZTogZXZlbnRzLkNvbm5lY3RpbmdUb1NlcnZpY2VFdmVudC51cGNvbWluZygpLFxuICAgIGxpc3RlbmluZ1N0YXJ0ZWQ6IGV2ZW50cy5MaXN0ZW5pbmdTdGFydGVkRXZlbnQudXBjb21pbmcoKSxcbiAgICByZWNvZ25pdGlvbkVuZGVkOiBldmVudHMuUmVjb2duaXRpb25FbmRlZEV2ZW50LnVwY29taW5nKCksXG4gICAgcmVjb2duaXRpb25TdGFydGVkOiBldmVudHMuUmVjb2duaXRpb25TdGFydGVkRXZlbnQudXBjb21pbmcoKSxcbiAgICByZWNvZ25pdGlvblRyaWdnZXJlZDogZXZlbnRzLlJlY29nbml0aW9uVHJpZ2dlcmVkRXZlbnQudXBjb21pbmcoKSxcbiAgICBzcGVlY2hEZXRhaWxlZFBocmFzZTogZXZlbnRzLlNwZWVjaERldGFpbGVkUGhyYXNlRXZlbnQudXBjb21pbmcoKSxcbiAgICBzcGVlY2hFbmREZXRlY3RlZDogZXZlbnRzLlNwZWVjaEVuZERldGVjdGVkRXZlbnQudXBjb21pbmcoKSxcbiAgICBnZXRTcGVlY2hIeXBvdGhlc2lzUHJvbWlzZTogKCkgPT4gZXZlbnRzLlNwZWVjaEh5cG90aGVzaXNFdmVudC51cGNvbWluZygpLFxuICAgIHNwZWVjaFNpbXBsZVBocmFzZTogZXZlbnRzLlNwZWVjaFNpbXBsZVBocmFzZUV2ZW50LnVwY29taW5nKCksXG4gICAgc3BlZWNoU3RhcnREZXRlY3RlZDogZXZlbnRzLlNwZWVjaFN0YXJ0RGV0ZWN0ZWRFdmVudC51cGNvbWluZygpLFxuICAgIGV2ZW50TGlzdGVuZXI6IGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IHsgTmFtZTogbmFtZSB9ID0gZXZlbnQ7XG4gICAgICBjb25zdCBldmVudEFzUHJvbWlzZSA9IGV2ZW50c1tuYW1lXTtcblxuICAgICAgaWYgKGV2ZW50QXNQcm9taXNlKSB7XG4gICAgICAgIGV2ZW50QXNQcm9taXNlLmV2ZW50TGlzdGVuZXIuY2FsbChudWxsLCBldmVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oYFVuZXhwZWN0ZWQgZXZlbnQgXFxcIiR7IG5hbWUgfVxcXCIgZnJvbSBDb2duaXRpdmUgU2VydmljZXMsIHBsZWFzZSBmaWxlIGEgYnVnIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9jb21wdWxpbS93ZWItc3BlZWNoLWNvZ25pdGl2ZS1zZXJ2aWNlc2ApO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29nbml0aXZlU2VydmljZXNTcGVlY2hSZWNvZ25pdGlvblxuIl19
{
"name": "web-speech-cognitive-services",
"version": "1.0.0",
"version": "1.0.1-master.2c7d643",
"description": "Polyfill Web Speech API with Cognitive Services Speech-to-Text service",

@@ -5,0 +5,0 @@ "keywords": [

@@ -258,2 +258,4 @@ # web-speech-cognitive-services

* [ ] Investigate continuous mode
* [ ] Enable Opus (OGG) encoding
* Currently, there is a problem with `microsoft-speech-browser-sdk@0.0.12`, tracking on [this issue](https://github.com/Azure-Samples/SpeechToText-WebSockets-Javascript/issues/88)

@@ -260,0 +262,0 @@ # Contributions

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc