oxygen-cli 1.20.2 → 1.21.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/build/core/OxygenCore.js +4 -3
- package/build/errors/helper.js +9 -5
- package/build/lib/util.js +5 -2
- package/build/ox_modules/module-db.js +2 -2
- package/build/ox_modules/module-email.js +97 -49
- package/build/ox_modules/module-eyes.js +4 -21
- package/build/ox_modules/module-http.js +59 -49
- package/build/ox_modules/module-mailinator.js +25 -32
- package/build/ox_modules/module-mob/commands/getDeviceLogs.js +4 -11
- package/build/ox_modules/module-mob/commands/selectWindow.js +4 -7
- package/build/ox_modules/module-mob/commands/sendKeys.js +2 -2
- package/build/ox_modules/module-mob.js +65 -52
- package/build/ox_modules/module-pdf.js +12 -32
- package/build/ox_modules/module-proxy.js +9 -9
- package/build/ox_modules/module-serial.js +14 -12
- package/build/ox_modules/module-soap.js +101 -78
- package/build/ox_modules/module-twilio.js +27 -27
- package/build/ox_modules/module-utils.js +43 -5
- package/build/ox_modules/module-web/commands/fullscreenWindow.js +24 -0
- package/build/ox_modules/module-web/commands/index.js +25 -1
- package/build/ox_modules/module-web/commands/isSelected.js +2 -2
- package/build/ox_modules/module-web/commands/maximizeWindow.js +24 -0
- package/build/ox_modules/module-web/commands/minimizeWindow.js +24 -0
- package/build/ox_modules/module-web/commands/selectWindow.js +4 -7
- package/build/ox_modules/module-web/commands/waitForNotExist.js +2 -3
- package/build/ox_modules/module-web.js +87 -64
- package/build/ox_modules/utils.js +22 -4
- package/build/runners/WorkerProcess.js +22 -20
- package/package.json +3 -1
|
@@ -22,8 +22,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
22
22
|
var errHelper = require('../errors/helper');
|
|
23
23
|
|
|
24
24
|
module.exports = function () {
|
|
25
|
-
var deasync = require('deasync');
|
|
26
|
-
|
|
27
25
|
var soap = require('soap');
|
|
28
26
|
|
|
29
27
|
var auth = null;
|
|
@@ -31,6 +29,7 @@ module.exports = function () {
|
|
|
31
29
|
var options = {
|
|
32
30
|
rejectUnauthorized: false
|
|
33
31
|
};
|
|
32
|
+
var lastResponseHeaders = null;
|
|
34
33
|
|
|
35
34
|
module.isInitialized = function () {
|
|
36
35
|
return true;
|
|
@@ -105,70 +104,88 @@ module.exports = function () {
|
|
|
105
104
|
*/
|
|
106
105
|
|
|
107
106
|
|
|
108
|
-
module.get = function (wsdlUrl, method, args) {
|
|
107
|
+
module.get = async function (wsdlUrl, method, args) {
|
|
109
108
|
var resultClient = null;
|
|
110
109
|
var result = null;
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
110
|
+
await (() => {
|
|
111
|
+
return new Promise((resolve, reject) => {
|
|
112
|
+
soap.createClient(wsdlUrl, {
|
|
113
|
+
wsdl_options: { ...options,
|
|
114
|
+
...proxyOptions
|
|
115
|
+
}
|
|
116
|
+
}, (err, client) => {
|
|
117
|
+
if (client === undefined) {
|
|
118
|
+
var msg = 'Error creating client';
|
|
119
|
+
|
|
120
|
+
if (err.message) {
|
|
121
|
+
var soapMsg = err.message;
|
|
122
|
+
var firstBreakIndex = soapMsg.indexOf('\n');
|
|
123
|
+
|
|
124
|
+
if (firstBreakIndex > 0) {
|
|
125
|
+
soapMsg = err.message.substring(0, firstBreakIndex);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
msg += ': ' + soapMsg;
|
|
129
|
+
} else if (err && (typeof err === 'string' || err instanceof String)) {
|
|
130
|
+
msg += ': ' + err;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
resultClient = new _OxygenError.default(errHelper.errorCode.SOAP_ERROR, msg);
|
|
134
|
+
resolve();
|
|
135
|
+
return;
|
|
125
136
|
}
|
|
126
137
|
|
|
127
|
-
|
|
128
|
-
} else if (err && (typeof err === 'string' || err instanceof String)) {
|
|
129
|
-
msg += ': ' + err;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
resultClient = new _OxygenError.default(errHelper.errorCode.SOAP_ERROR, msg);
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
resultClient = client;
|
|
137
|
-
|
|
138
|
-
if (typeof client[method] !== 'function') {
|
|
139
|
-
resultClient = new _OxygenError.default(errHelper.errorCode.SOAP_ERROR, 'No method named ' + method + ' was found.');
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
138
|
+
resultClient = client;
|
|
142
139
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
140
|
+
if (typeof client[method] !== 'function') {
|
|
141
|
+
resultClient = new _OxygenError.default(errHelper.errorCode.SOAP_ERROR, 'No method named ' + method + ' was found.');
|
|
142
|
+
resolve();
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
146
145
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
146
|
+
if (auth) {
|
|
147
|
+
client.setSecurity(auth);
|
|
148
|
+
}
|
|
152
149
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
150
|
+
client[method](args, (err, res) => {
|
|
151
|
+
lastResponseHeaders = client.lastResponseHeaders;
|
|
152
|
+
|
|
153
|
+
if (err !== null) {
|
|
154
|
+
result = new _OxygenError.default(errHelper.errorCode.SOAP_ERROR, err.root.Envelope.Body.Fault.faultstring);
|
|
155
|
+
resolve();
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
result = res;
|
|
160
|
+
resolve();
|
|
161
|
+
return;
|
|
162
|
+
}, { ...options,
|
|
163
|
+
...proxyOptions
|
|
164
|
+
});
|
|
165
|
+
});
|
|
156
166
|
});
|
|
157
|
-
});
|
|
158
|
-
deasync.loopWhile(() => !resultClient);
|
|
167
|
+
})();
|
|
159
168
|
|
|
160
169
|
if (resultClient.type === errHelper.errorCode.SOAP_ERROR) {
|
|
161
170
|
throw resultClient;
|
|
162
171
|
}
|
|
163
172
|
|
|
164
|
-
deasync.loopWhile(() => !result);
|
|
165
|
-
|
|
166
173
|
if (result.type === errHelper.errorCode.SOAP_ERROR) {
|
|
167
174
|
throw result;
|
|
168
175
|
}
|
|
169
176
|
|
|
170
177
|
return result;
|
|
171
178
|
};
|
|
179
|
+
/**
|
|
180
|
+
* @summary Returns last response headers.
|
|
181
|
+
* @function getLastResponseHeaders
|
|
182
|
+
* @return {Object} IncomingHttpHeaders (https://microsoft.github.io/PowerBI-JavaScript/interfaces/_node_modules__types_node_http2_d_._http2_.incominghttpheaders.html).
|
|
183
|
+
*/
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
module.getLastResponseHeaders = function () {
|
|
187
|
+
return lastResponseHeaders;
|
|
188
|
+
};
|
|
172
189
|
/**
|
|
173
190
|
* @summary Returns SOAP service description.
|
|
174
191
|
* @function describe
|
|
@@ -177,40 +194,46 @@ module.exports = function () {
|
|
|
177
194
|
*/
|
|
178
195
|
|
|
179
196
|
|
|
180
|
-
module.describe = function (wsdlUrl) {
|
|
197
|
+
module.describe = async function (wsdlUrl) {
|
|
181
198
|
var resultClient = null;
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
199
|
+
await (() => {
|
|
200
|
+
return new Promise((resolve, reject) => {
|
|
201
|
+
soap.createClient(wsdlUrl, {
|
|
202
|
+
wsdl_options: { ...options,
|
|
203
|
+
...proxyOptions
|
|
204
|
+
}
|
|
205
|
+
}, (err, client) => {
|
|
206
|
+
if (client === undefined) {
|
|
207
|
+
var msg = 'Error creating client';
|
|
208
|
+
|
|
209
|
+
if (err.message) {
|
|
210
|
+
var soapMsg = err.message;
|
|
211
|
+
var firstBreakIndex = soapMsg.indexOf('\n');
|
|
212
|
+
|
|
213
|
+
if (firstBreakIndex > 0) {
|
|
214
|
+
soapMsg = err.message.substring(0, firstBreakIndex);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
msg += ': ' + soapMsg;
|
|
218
|
+
} else if (err && (typeof err === 'string' || err instanceof String)) {
|
|
219
|
+
msg += ': ' + err;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
resultClient = new _OxygenError.default(errHelper.errorCode.SOAP_ERROR, msg);
|
|
223
|
+
resolve();
|
|
224
|
+
return;
|
|
196
225
|
}
|
|
197
226
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
resultClient = new _OxygenError.default(errHelper.errorCode.SOAP_ERROR, msg);
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
if (auth) {
|
|
208
|
-
client.setSecurity(auth);
|
|
209
|
-
}
|
|
227
|
+
if (auth) {
|
|
228
|
+
client.setSecurity(auth);
|
|
229
|
+
}
|
|
210
230
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
231
|
+
resultClient = client.describe();
|
|
232
|
+
resolve();
|
|
233
|
+
return;
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
})();
|
|
214
237
|
|
|
215
238
|
if (resultClient.type === errHelper.errorCode.SOAP_ERROR) {
|
|
216
239
|
throw resultClient;
|
|
@@ -221,4 +244,4 @@ module.exports = function () {
|
|
|
221
244
|
|
|
222
245
|
return module;
|
|
223
246
|
};
|
|
224
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1zb2FwLmpzIl0sIm5hbWVzIjpbImVyckhlbHBlciIsInJlcXVpcmUiLCJtb2R1bGUiLCJleHBvcnRzIiwiZGVhc3luYyIsInNvYXAiLCJhdXRoIiwicHJveHlPcHRpb25zIiwib3B0aW9ucyIsInJlamVjdFVuYXV0aG9yaXplZCIsImlzSW5pdGlhbGl6ZWQiLCJzZXRQcm94eSIsInVybCIsInByb3h5IiwiYXV0aEJhc2ljIiwidXNlciIsInBhc3MiLCJCYXNpY0F1dGhTZWN1cml0eSIsImF1dGhCZWFyZXIiLCJ0b2tlbiIsIkJlYXJlclNlY3VyaXR5IiwiYXV0aE5UTE0iLCJkb21haW4iLCJ3b3Jrc3RhdGlvbiIsIk5UTE1TZWN1cml0eSIsImdldCIsIndzZGxVcmwiLCJtZXRob2QiLCJhcmdzIiwicmVzdWx0Q2xpZW50IiwicmVzdWx0IiwiY3JlYXRlQ2xpZW50Iiwid3NkbF9vcHRpb25zIiwiZXJyIiwiY2xpZW50IiwidW5kZWZpbmVkIiwibXNnIiwibWVzc2FnZSIsInNvYXBNc2ciLCJmaXJzdEJyZWFrSW5kZXgiLCJpbmRleE9mIiwic3Vic3RyaW5nIiwiU3RyaW5nIiwiT3hFcnJvciIsImVycm9yQ29kZSIsIlNPQVBfRVJST1IiLCJzZXRTZWN1cml0eSIsInJlcyIsInJvb3QiLCJFbnZlbG9wZSIsIkJvZHkiLCJGYXVsdCIsImZhdWx0c3RyaW5nIiwibG9vcFdoaWxlIiwidHlwZSIsImRlc2NyaWJlIl0sIm1hcHBpbmdzIjoiOzs7O0FBY0E7Ozs7QUFkQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0EsSUFBSUEsU0FBUyxHQUFHQyxPQUFPLENBQUMsa0JBQUQsQ0FBdkI7O0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFXO0FBQ3hCLE1BQUlDLE9BQU8sR0FBR0gsT0FBTyxDQUFDLFNBQUQsQ0FBckI7O0FBQ0EsTUFBSUksSUFB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LENBQVAsRUFBK0Q7QUFDbEVOLFVBQUFBLEdBQUcsSUFBSSxPQUFPSCxHQUFkO0FBQ0g7O0FBQ0RKLFFBQUFBLFlBQVksR0FBRyxJQUFJYyxvQkFBSixDQUFZM0MsU0FBUyxDQUFDNEMsU0FBVixDQUFvQkMsVUFBaEMsRUFBNENULEdBQTVDLENBQWY7QUFDQTtBQUNIOztBQUVELFVBQUk5QixJQUFKLEVBQVU7QUFDTjRCLFFBQUFBLE1BQU0sQ0FBQ1ksV0FBUCxDQUFtQnhDLElBQW5CO0FBQ0g7O0FBRUR1QixNQUFBQSxZQUFZLEdBQUdLLE1BQU0sQ0FBQ3FCLFFBQVAsRUFBZjtBQUNILEtBdEJEO0FBd0JBbkQsSUFBQUEsT0FBTyxDQUFDaUQsU0FBUixDQUFrQixNQUFNLENBQUN4QixZQUF6Qjs7QUFDQSxRQUFJQSxZQUFZLENBQUN5QixJQUFiLEtBQXNCdEQsU0FBUyxDQUFDNEMsU0FBVixDQUFvQkMsVUFBOUMsRUFBMEQ7QUFDdEQsWUFBTWhCLFlBQU47QUFDSDs7QUFFRCxXQUFPQSxZQUFQO0FBQ0gsR0FqQ0Q7O0FBbUNBLFNBQU8zQixNQUFQO0FBQ0gsQ0EzS0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZSBzb2FwXHJcbiAqIEBkZXNjcmlwdGlvbiBQcm92aWRlcyBtZXRob2RzIGZvciB3b3JraW5nIHdpdGggU09BUCBiYXNlZCBXZWIgU2VydmljZXMuXHJcbiAqL1xyXG5cclxuaW1wb3J0IE94RXJyb3IgZnJvbSAnLi4vZXJyb3JzL094eWdlbkVycm9yJztcclxudmFyIGVyckhlbHBlciA9IHJlcXVpcmUoJy4uL2Vycm9ycy9oZWxwZXInKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7XHJcbiAgICB2YXIgZGVhc3luYyA9IHJlcXVpcmUoJ2RlYXN5bmMnKTtcclxuICAgIHZhciBzb2FwID0gcmVxdWlyZSgnc29hcCcpO1xyXG4gICAgdmFyIGF1dGggPSBudWxsO1xyXG4gICAgdmFyIHByb3h5T3B0aW9ucyA9IHt9O1xyXG4gICAgdmFyIG9wdGlvbnMgPSB7XHJcbiAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiBmYWxzZVxyXG4gICAgfTtcclxuXHJcbiAgICBtb2R1bGUuaXNJbml0aWFsaXplZCA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgU2V0cyBwcm94eSB1cmwgdG8gYmUgdXNlZCBmb3IgY29ubmVjdGlvbnMgd2l0aCB0aGUgc2VydmljZS5cclxuICAgICAqIEBmdW5jdGlvbiBzZXRQcm94eVxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHVybCAtIFByb3h5IHVybC4gSW52b2NhdGlvbiB3aXRob3V0IGFyZ3VtZW50cyB3aWxsIHJlbW92ZSBhbnkgcHJldmlvdXNseSBzZXQgdXJsLlxyXG4gICAgICovXHJcbiAgICBtb2R1bGUuc2V0UHJveHkgPSBmdW5jdGlvbih1cmwpIHtcclxuICAgICAgICBpZiAodXJsKSB7XHJcbiAgICAgICAgICAgIHByb3h5T3B0aW9ucyA9ICB7IHByb3h5OiB1cmwgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwcm94eU9wdGlvbnMgPSB7fTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgU2V0cyBCYXNpYyBBdXRoZW50aWNhdGlvbiBkZXRhaWxzIHRvIGJlIHVzZWQgZm9yIGNvbm5lY3Rpb25zIHdpdGggdGhlIHNlcnZpY2UuXHJcbiAgICAgKiBAZnVuY3Rpb24gYXV0aEJhc2ljXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdXNlciAtIFVzZXJuYW1lLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHBhc3MgLSBQYXNzd29yZC5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmF1dGhCYXNpYyA9IGZ1bmN0aW9uKHVzZXIsIHBhc3MpIHtcclxuICAgICAgICBhdXRoID0gbmV3IHNvYXAuQmFzaWNBdXRoU2VjdXJpdHkodXNlciwgcGFzcyk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgU2V0cyBCZWFyZXIgVG9rZW4gQXV0aGVudGljYXRpb24gZGV0YWlscyB0byBiZSB1c2VkIGZvciBjb25uZWN0aW9ucyB3aXRoIHRoZSBzZXJ2aWNlLlxyXG4gICAgICogQGZ1bmN0aW9uIGF1dGhCZWFyZXJcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0b2tlbiAtIFRva2VuLlxyXG4gICAgICovXHJcbiAgICBtb2R1bGUuYXV0aEJlYXJlciA9IGZ1bmN0aW9uKHRva2VuKSB7XHJcbiAgICAgICAgYXV0aCA9IG5ldyBzb2FwLkJlYXJlclNlY3VyaXR5KHRva2VuKTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBTZXRzIE5UTE0gQXV0aGVudGljYXRpb24gZGV0YWlscyB0byBiZSB1c2VkIGZvciBjb25uZWN0aW9ucyB3aXRoIHRoZSBzZXJ2aWNlLlxyXG4gICAgICogQGZ1bmN0aW9uIGF1dGhOVExNXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdXNlciAtIFVzZXJuYW1lLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHBhc3MgLSBQYXNzd29yZC5cclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBkb21haW4gLSBEb21haW4uXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gd29ya3N0YXRpb24gLSBXb3Jrc3RhdGlvbi5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmF1dGhOVExNID0gZnVuY3Rpb24odXNlciwgcGFzcywgZG9tYWluLCB3b3Jrc3RhdGlvbikge1xyXG4gICAgICAgIGF1dGggPSBuZXcgc29hcC5OVExNU2VjdXJpdHkodXNlciwgcGFzcywgZG9tYWluLCB3b3Jrc3RhdGlvbik7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgSW5pdGlhdGVzIGEgU09BUCByZXF1ZXN0IGFuZCByZXR1cm5zIHRoZSByZXNwb25zZS5cclxuICAgICAqIEBmdW5jdGlvbiBnZXRcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB3c2RsVXJsIC0gVVJMIHBvaW50aW5nIHRvIHRoZSBXU0RMIFhNTC5cclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBtZXRob2QgLSBNZXRob2QgbmFtZSAoY2FzZSBzZW5zaXRpdmUpLlxyXG4gICAgICogQHBhcmFtIHtPYmplY3Q9fSBhcmdzIC0gT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGFyZ3VtZW50cy5cclxuICAgICAqIEByZXR1cm4ge09iamVjdH0gVGhlIHJlc3BvbnNlIG9iamVjdC5cclxuICAgICAqIEBleGFtcGxlIDxjYXB0aW9uPltqYXZhc2NyaXB0XSBVc2FnZSBleGFtcGxlPC9jYXB0aW9uPlxyXG4gICAgICogLy8gZ2V0IFNPQVAgc2VydmljZSBkZXNjcmlwdGlvbiwgc28gd2UgY2FuIHVuZGVyc3RhbmQgd2hhdCBtZXRob2RzIGl0IHByb3ZpZGVzLFxyXG4gICAgICogLy8gd2hhdCBpbnB1dCBwYXJhbWV0ZXJzIGl0IGV4cGVjdHMsIGFuZCB3aGF0IGlzIHRoZSBvdXRwdXQgc3RydWN0dXJlLlxyXG4gICAgICogdmFyIHNlcnZpY2VVcmwgPSAnaHR0cDovL3d3dy5kYXRhYWNjZXNzLmNvbS93ZWJzZXJ2aWNlc3NlcnZlci9udW1iZXJjb252ZXJzaW9uLndzbz9XU0RMJztcclxuICAgICAqIHZhciBzZXJ2aWNlRGVzY3JpcHRpb24gPSBzb2FwLmRlc2NyaWJlKHNlcnZpY2VVcmwpO1xyXG4gICAgICogbG9nLmluZm8oc2VydmljZURlc2NyaXB0aW9uKTtcclxuICAgICAqIFxyXG4gICAgICogLy8gTnVtYmVyVG9Xb3JkcyBtZXRob2QgaW4gdGhpcyBzZXJ2aWNlIGNvbnZlcnRzIG51bWJlciB0byB3b3Jkcy5cclxuICAgICAqIHZhciByZXN1bHQgPSBzb2FwLmdldChzZXJ2aWNlVXJsLCAnTnVtYmVyVG9Xb3JkcycsIHsgJ3ViaU51bSc6IDIwMTkgfSk7XHJcbiAgICAgKiBsb2cuaW5mbyhyZXN1bHQuTnVtYmVyVG9Xb3Jkc1Jlc3VsdCk7XHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5nZXQgPSBmdW5jdGlvbih3c2RsVXJsLCBtZXRob2QsIGFyZ3MpIHtcclxuICAgICAgICB2YXIgcmVzdWx0Q2xpZW50ID0gbnVsbDtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gbnVsbDtcclxuXHJcbiAgICAgICAgc29hcC5jcmVhdGVDbGllbnQod3NkbFVybCwgeyB3c2RsX29wdGlvbnM6IHsgLi4ub3B0aW9ucywgLi4ucHJveHlPcHRpb25zIH19LCAoZXJyLCBjbGllbnQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNsaWVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgbXNnID0gICdFcnJvciBjcmVhdGluZyBjbGllbnQnO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVyci5tZXNzYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNvYXBNc2cgPSBlcnIubWVzc2FnZTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZmlyc3RCcmVha0luZGV4ID0gc29hcE1zZy5pbmRleE9mKCdcXG4nKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RCcmVha0luZGV4ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzb2FwTXNnID0gZXJyLm1lc3NhZ2Uuc3Vic3RyaW5nKDAsIGZpcnN0QnJlYWtJbmRleCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIG1zZyArPSAnOiAnICsgc29hcE1zZztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXJyICYmICh0eXBlb2YgZXJyID09PSAnc3RyaW5nJyB8fCBlcnIgaW5zdGFuY2VvZiBTdHJpbmcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbXNnICs9ICc6ICcgKyBlcnI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXN1bHRDbGllbnQgPSBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLlNPQVBfRVJST1IsIG1zZyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJlc3VsdENsaWVudCA9IGNsaWVudDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2xpZW50W21ldGhvZF0gIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdENsaWVudCA9IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuU09BUF9FUlJPUiwgJ05vIG1ldGhvZCBuYW1lZCAnICsgbWV0aG9kICsgJyB3YXMgZm91bmQuJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChhdXRoKSB7XHJcbiAgICAgICAgICAgICAgICBjbGllbnQuc2V0U2VjdXJpdHkoYXV0aCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNsaWVudFttZXRob2RdKGFyZ3MsIChlcnIsIHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVyciAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuU09BUF9FUlJPUiwgZXJyLnJvb3QuRW52ZWxvcGUuQm9keS5GYXVsdC5mYXVsdHN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlcztcclxuICAgICAgICAgICAgfSwgeyAuLi5vcHRpb25zLCAuLi5wcm94eU9wdGlvbnMgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGRlYXN5bmMubG9vcFdoaWxlKCgpID0+ICFyZXN1bHRDbGllbnQpO1xyXG4gICAgICAgIGlmIChyZXN1bHRDbGllbnQudHlwZSA9PT0gZXJySGVscGVyLmVycm9yQ29kZS5TT0FQX0VSUk9SKSB7XHJcbiAgICAgICAgICAgIHRocm93IHJlc3VsdENsaWVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRlYXN5bmMubG9vcFdoaWxlKCgpID0+ICFyZXN1bHQpO1xyXG4gICAgICAgIGlmIChyZXN1bHQudHlwZSA9PT0gZXJySGVscGVyLmVycm9yQ29kZS5TT0FQX0VSUk9SKSB7XHJcbiAgICAgICAgICAgIHRocm93IHJlc3VsdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgUmV0dXJucyBTT0FQIHNlcnZpY2UgZGVzY3JpcHRpb24uXHJcbiAgICAgKiBAZnVuY3Rpb24gZGVzY3JpYmVcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB3c2RsVXJsIC0gVVJMIHBvaW50aW5nIHRvIHRoZSBXU0RMIFhNTC5cclxuICAgICAqIEByZXR1cm4ge09iamVjdH0gU2VydmljZSBkZXNjcmlwdGlvbi5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmRlc2NyaWJlID0gZnVuY3Rpb24od3NkbFVybCkge1xyXG4gICAgICAgIHZhciByZXN1bHRDbGllbnQgPSBudWxsO1xyXG5cclxuICAgICAgICBzb2FwLmNyZWF0ZUNsaWVudCh3c2RsVXJsLHsgd3NkbF9vcHRpb25zOiB7IC4uLm9wdGlvbnMsIC4uLnByb3h5T3B0aW9ucyB9fSwgKGVyciwgY2xpZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjbGllbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIG1zZyA9ICAnRXJyb3IgY3JlYXRpbmcgY2xpZW50JztcclxuICAgICAgICAgICAgICAgIGlmIChlcnIubWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBzb2FwTXNnID0gZXJyLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZpcnN0QnJlYWtJbmRleCA9IHNvYXBNc2cuaW5kZXhPZignXFxuJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0QnJlYWtJbmRleCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc29hcE1zZyA9IGVyci5tZXNzYWdlLnN1YnN0cmluZygwLCBmaXJzdEJyZWFrSW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBtc2cgKz0gJzogJyArIHNvYXBNc2c7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVyciAmJiAodHlwZW9mIGVyciA9PT0gJ3N0cmluZycgfHwgZXJyIGluc3RhbmNlb2YgU3RyaW5nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIG1zZyArPSAnOiAnICsgZXJyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmVzdWx0Q2xpZW50ID0gbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5TT0FQX0VSUk9SLCBtc2cpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoYXV0aCkge1xyXG4gICAgICAgICAgICAgICAgY2xpZW50LnNldFNlY3VyaXR5KGF1dGgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXN1bHRDbGllbnQgPSBjbGllbnQuZGVzY3JpYmUoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgZGVhc3luYy5sb29wV2hpbGUoKCkgPT4gIXJlc3VsdENsaWVudCk7XHJcbiAgICAgICAgaWYgKHJlc3VsdENsaWVudC50eXBlID09PSBlcnJIZWxwZXIuZXJyb3JDb2RlLlNPQVBfRVJST1IpIHtcclxuICAgICAgICAgICAgdGhyb3cgcmVzdWx0Q2xpZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdENsaWVudDtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIG1vZHVsZTtcclxufTtcclxuIl19
|
|
247
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1zb2FwLmpzIl0sIm5hbWVzIjpbImVyckhlbHBlciIsInJlcXVpcmUiLCJtb2R1bGUiLCJleHBvcnRzIiwic29hcCIsImF1dGgiLCJwcm94eU9wdGlvbnMiLCJvcHRpb25zIiwicmVqZWN0VW5hdXRob3JpemVkIiwibGFzdFJlc3BvbnNlSGVhZGVycyIsImlzSW5pdGlhbGl6ZWQiLCJzZXRQcm94eSIsInVybCIsInByb3h5IiwiYXV0aEJhc2ljIiwidXNlciIsInBhc3MiLCJCYXNpY0F1dGhTZWN1cml0eSIsImF1dGhCZWFyZXIiLCJ0b2tlbiIsIkJlYXJlclNlY3VyaXR5IiwiYXV0aE5UTE0iLCJkb21haW4iLCJ3b3Jrc3RhdGlvbiIsIk5UTE1TZWN1cml0eSIsImdldCIsIndzZGxVcmwiLCJtZXRob2QiLCJhcmdzIiwicmVzdWx0Q2xpZW50IiwicmVzdWx0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjcmVhdGVDbGllbnQiLCJ3c2RsX29wdGlvbnMiLCJlcnIiLCJjbGllbnQiLCJ1bmRlZmluZWQiLCJtc2ciLCJtZXNzYWdlIiwic29hcE1zZyIsImZpcnN0QnJlYWtJbmRleCIsImluZGV4T2YiLCJzdWJzdHJpbmciLCJTdHJpbmciLCJPeEVycm9yIiwiZXJyb3JDb2RlIiwiU09BUF9FUlJPUiIsInNldFNlY3VyaXR5IiwicmVzIiwicm9vdCIsIkVudmVsb3BlIiwiQm9keSIsIkZhdWx0IiwiZmF1bHRzdHJpbmciLCJ0eXBlIiwiZ2V0TGFzdFJlc3BvbnNlSGVhZGVycyIsImRlc2NyaWJlIl0sIm1hcHBpbmdzIjoiOzs7O0FBY0E7Ozs7QUFkQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0EsSUFBSUEsU0FBUyxHQUFHQyxPQUFPLENBQUMsa0JBQUQsQ0FBdkI7O0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFXO0FBQ3hC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Z2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKipcclxuICogQG5hbWUgc29hcFxyXG4gKiBAZGVzY3JpcHRpb24gUHJvdmlkZXMgbWV0aG9kcyBmb3Igd29ya2luZyB3aXRoIFNPQVAgYmFzZWQgV2ViIFNlcnZpY2VzLlxyXG4gKi9cclxuXHJcbmltcG9ydCBPeEVycm9yIGZyb20gJy4uL2Vycm9ycy9PeHlnZW5FcnJvcic7XHJcbnZhciBlcnJIZWxwZXIgPSByZXF1aXJlKCcuLi9lcnJvcnMvaGVscGVyJyk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xyXG4gICAgdmFyIHNvYXAgPSByZXF1aXJlKCdzb2FwJyk7XHJcbiAgICB2YXIgYXV0aCA9IG51bGw7XHJcbiAgICB2YXIgcHJveHlPcHRpb25zID0ge307XHJcbiAgICB2YXIgb3B0aW9ucyA9IHtcclxuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgdmFyIGxhc3RSZXNwb25zZUhlYWRlcnMgPSBudWxsO1xyXG5cclxuICAgIG1vZHVsZS5pc0luaXRpYWxpemVkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBTZXRzIHByb3h5IHVybCB0byBiZSB1c2VkIGZvciBjb25uZWN0aW9ucyB3aXRoIHRoZSBzZXJ2aWNlLlxyXG4gICAgICogQGZ1bmN0aW9uIHNldFByb3h5XHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdXJsIC0gUHJveHkgdXJsLiBJbnZvY2F0aW9uIHdpdGhvdXQgYXJndW1lbnRzIHdpbGwgcmVtb3ZlIGFueSBwcmV2aW91c2x5IHNldCB1cmwuXHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5zZXRQcm94eSA9IGZ1bmN0aW9uKHVybCkge1xyXG4gICAgICAgIGlmICh1cmwpIHtcclxuICAgICAgICAgICAgcHJveHlPcHRpb25zID0gIHsgcHJveHk6IHVybCB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHByb3h5T3B0aW9ucyA9IHt9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBTZXRzIEJhc2ljIEF1dGhlbnRpY2F0aW9uIGRldGFpbHMgdG8gYmUgdXNlZCBmb3IgY29ubmVjdGlvbnMgd2l0aCB0aGUgc2VydmljZS5cclxuICAgICAqIEBmdW5jdGlvbiBhdXRoQmFzaWNcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB1c2VyIC0gVXNlcm5hbWUuXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gcGFzcyAtIFBhc3N3b3JkLlxyXG4gICAgICovXHJcbiAgICBtb2R1bGUuYXV0aEJhc2ljID0gZnVuY3Rpb24odXNlciwgcGFzcykge1xyXG4gICAgICAgIGF1dGggPSBuZXcgc29hcC5CYXNpY0F1dGhTZWN1cml0eSh1c2VyLCBwYXNzKTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBTZXRzIEJlYXJlciBUb2tlbiBBdXRoZW50aWNhdGlvbiBkZXRhaWxzIHRvIGJlIHVzZWQgZm9yIGNvbm5lY3Rpb25zIHdpdGggdGhlIHNlcnZpY2UuXHJcbiAgICAgKiBAZnVuY3Rpb24gYXV0aEJlYXJlclxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHRva2VuIC0gVG9rZW4uXHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5hdXRoQmVhcmVyID0gZnVuY3Rpb24odG9rZW4pIHtcclxuICAgICAgICBhdXRoID0gbmV3IHNvYXAuQmVhcmVyU2VjdXJpdHkodG9rZW4pO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFNldHMgTlRMTSBBdXRoZW50aWNhdGlvbiBkZXRhaWxzIHRvIGJlIHVzZWQgZm9yIGNvbm5lY3Rpb25zIHdpdGggdGhlIHNlcnZpY2UuXHJcbiAgICAgKiBAZnVuY3Rpb24gYXV0aE5UTE1cclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB1c2VyIC0gVXNlcm5hbWUuXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gcGFzcyAtIFBhc3N3b3JkLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGRvbWFpbiAtIERvbWFpbi5cclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB3b3Jrc3RhdGlvbiAtIFdvcmtzdGF0aW9uLlxyXG4gICAgICovXHJcbiAgICBtb2R1bGUuYXV0aE5UTE0gPSBmdW5jdGlvbih1c2VyLCBwYXNzLCBkb21haW4sIHdvcmtzdGF0aW9uKSB7XHJcbiAgICAgICAgYXV0aCA9IG5ldyBzb2FwLk5UTE1TZWN1cml0eSh1c2VyLCBwYXNzLCBkb21haW4sIHdvcmtzdGF0aW9uKTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBJbml0aWF0ZXMgYSBTT0FQIHJlcXVlc3QgYW5kIHJldHVybnMgdGhlIHJlc3BvbnNlLlxyXG4gICAgICogQGZ1bmN0aW9uIGdldFxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHdzZGxVcmwgLSBVUkwgcG9pbnRpbmcgdG8gdGhlIFdTREwgWE1MLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG1ldGhvZCAtIE1ldGhvZCBuYW1lIChjYXNlIHNlbnNpdGl2ZSkuXHJcbiAgICAgKiBAcGFyYW0ge09iamVjdD19IGFyZ3MgLSBPYmplY3QgY29udGFpbmluZyB0aGUgYXJndW1lbnRzLlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBUaGUgcmVzcG9uc2Ugb2JqZWN0LlxyXG4gICAgICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAgICAgKiAvLyBnZXQgU09BUCBzZXJ2aWNlIGRlc2NyaXB0aW9uLCBzbyB3ZSBjYW4gdW5kZXJzdGFuZCB3aGF0IG1ldGhvZHMgaXQgcHJvdmlkZXMsXHJcbiAgICAgKiAvLyB3aGF0IGlucHV0IHBhcmFtZXRlcnMgaXQgZXhwZWN0cywgYW5kIHdoYXQgaXMgdGhlIG91dHB1dCBzdHJ1Y3R1cmUuXHJcbiAgICAgKiB2YXIgc2VydmljZVVybCA9ICdodHRwOi8vd3d3LmRhdGFhY2Nlc3MuY29tL3dlYnNlcnZpY2Vzc2VydmVyL251bWJlcmNvbnZlcnNpb24ud3NvP1dTREwnO1xyXG4gICAgICogdmFyIHNlcnZpY2VEZXNjcmlwdGlvbiA9IHNvYXAuZGVzY3JpYmUoc2VydmljZVVybCk7XHJcbiAgICAgKiBsb2cuaW5mbyhzZXJ2aWNlRGVzY3JpcHRpb24pO1xyXG4gICAgICogXHJcbiAgICAgKiAvLyBOdW1iZXJUb1dvcmRzIG1ldGhvZCBpbiB0aGlzIHNlcnZpY2UgY29udmVydHMgbnVtYmVyIHRvIHdvcmRzLlxyXG4gICAgICogdmFyIHJlc3VsdCA9IHNvYXAuZ2V0KHNlcnZpY2VVcmwsICdOdW1iZXJUb1dvcmRzJywgeyAndWJpTnVtJzogMjAxOSB9KTtcclxuICAgICAqIGxvZy5pbmZvKHJlc3VsdC5OdW1iZXJUb1dvcmRzUmVzdWx0KTtcclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmdldCA9IGFzeW5jIGZ1bmN0aW9uKHdzZGxVcmwsIG1ldGhvZCwgYXJncykge1xyXG4gICAgICAgIHZhciByZXN1bHRDbGllbnQgPSBudWxsO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBudWxsO1xyXG5cclxuICAgICAgICBhd2FpdCAoKCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc29hcC5jcmVhdGVDbGllbnQod3NkbFVybCwgeyB3c2RsX29wdGlvbnM6IHsgLi4ub3B0aW9ucywgLi4ucHJveHlPcHRpb25zIH19LCAoZXJyLCBjbGllbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY2xpZW50ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1zZyA9ICAnRXJyb3IgY3JlYXRpbmcgY2xpZW50JztcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5tZXNzYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc29hcE1zZyA9IGVyci5tZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGZpcnN0QnJlYWtJbmRleCA9IHNvYXBNc2cuaW5kZXhPZignXFxuJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RCcmVha0luZGV4ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvYXBNc2cgPSBlcnIubWVzc2FnZS5zdWJzdHJpbmcoMCwgZmlyc3RCcmVha0luZGV4KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyArPSAnOiAnICsgc29hcE1zZztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlcnIgJiYgKHR5cGVvZiBlcnIgPT09ICdzdHJpbmcnIHx8IGVyciBpbnN0YW5jZW9mIFN0cmluZykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyArPSAnOiAnICsgZXJyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdENsaWVudCA9IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuU09BUF9FUlJPUiwgbXNnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXN1bHRDbGllbnQgPSBjbGllbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2xpZW50W21ldGhvZF0gIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Q2xpZW50ID0gbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5TT0FQX0VSUk9SLCAnTm8gbWV0aG9kIG5hbWVkICcgKyBtZXRob2QgKyAnIHdhcyBmb3VuZC4nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoYXV0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQuc2V0U2VjdXJpdHkoYXV0aCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjbGllbnRbbWV0aG9kXShhcmdzLCAoZXJyLCByZXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFJlc3BvbnNlSGVhZGVycyA9IGNsaWVudC5sYXN0UmVzcG9uc2VIZWFkZXJzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLlNPQVBfRVJST1IsIGVyci5yb290LkVudmVsb3BlLkJvZHkuRmF1bHQuZmF1bHRzdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIHsgLi4ub3B0aW9ucywgLi4ucHJveHlPcHRpb25zIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pKCk7XHJcblxyXG4gICAgICAgIGlmIChyZXN1bHRDbGllbnQudHlwZSA9PT0gZXJySGVscGVyLmVycm9yQ29kZS5TT0FQX0VSUk9SKSB7XHJcbiAgICAgICAgICAgIHRocm93IHJlc3VsdENsaWVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXN1bHQudHlwZSA9PT0gZXJySGVscGVyLmVycm9yQ29kZS5TT0FQX0VSUk9SKSB7XHJcbiAgICAgICAgICAgIHRocm93IHJlc3VsdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgUmV0dXJucyBsYXN0IHJlc3BvbnNlIGhlYWRlcnMuXHJcbiAgICAgKiBAZnVuY3Rpb24gZ2V0TGFzdFJlc3BvbnNlSGVhZGVyc1xyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBJbmNvbWluZ0h0dHBIZWFkZXJzIChodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vUG93ZXJCSS1KYXZhU2NyaXB0L2ludGVyZmFjZXMvX25vZGVfbW9kdWxlc19fdHlwZXNfbm9kZV9odHRwMl9kXy5faHR0cDJfLmluY29taW5naHR0cGhlYWRlcnMuaHRtbCkuXHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5nZXRMYXN0UmVzcG9uc2VIZWFkZXJzID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIGxhc3RSZXNwb25zZUhlYWRlcnM7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgUmV0dXJucyBTT0FQIHNlcnZpY2UgZGVzY3JpcHRpb24uXHJcbiAgICAgKiBAZnVuY3Rpb24gZGVzY3JpYmVcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB3c2RsVXJsIC0gVVJMIHBvaW50aW5nIHRvIHRoZSBXU0RMIFhNTC5cclxuICAgICAqIEByZXR1cm4ge09iamVjdH0gU2VydmljZSBkZXNjcmlwdGlvbi5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmRlc2NyaWJlID0gYXN5bmMgZnVuY3Rpb24od3NkbFVybCkge1xyXG4gICAgICAgIHZhciByZXN1bHRDbGllbnQgPSBudWxsO1xyXG5cclxuICAgICAgICBhd2FpdCAoKCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc29hcC5jcmVhdGVDbGllbnQod3NkbFVybCx7IHdzZGxfb3B0aW9uczogeyAuLi5vcHRpb25zLCAuLi5wcm94eU9wdGlvbnMgfX0sIChlcnIsIGNsaWVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbGllbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gICdFcnJvciBjcmVhdGluZyBjbGllbnQnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLm1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzb2FwTXNnID0gZXJyLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZmlyc3RCcmVha0luZGV4ID0gc29hcE1zZy5pbmRleE9mKCdcXG4nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdEJyZWFrSW5kZXggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29hcE1zZyA9IGVyci5tZXNzYWdlLnN1YnN0cmluZygwLCBmaXJzdEJyZWFrSW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnICs9ICc6ICcgKyBzb2FwTXNnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVyciAmJiAodHlwZW9mIGVyciA9PT0gJ3N0cmluZycgfHwgZXJyIGluc3RhbmNlb2YgU3RyaW5nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnICs9ICc6ICcgKyBlcnI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Q2xpZW50ID0gbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5TT0FQX0VSUk9SLCBtc2cpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhdXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC5zZXRTZWN1cml0eShhdXRoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdENsaWVudCA9IGNsaWVudC5kZXNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSkoKTtcclxuXHJcbiAgICAgICAgaWYgKHJlc3VsdENsaWVudC50eXBlID09PSBlcnJIZWxwZXIuZXJyb3JDb2RlLlNPQVBfRVJST1IpIHtcclxuICAgICAgICAgICAgdGhyb3cgcmVzdWx0Q2xpZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdENsaWVudDtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIG1vZHVsZTtcclxufTtcclxuIl19
|
|
@@ -4,6 +4,8 @@ require("source-map-support/register");
|
|
|
4
4
|
|
|
5
5
|
var _OxygenError = _interopRequireDefault(require("../errors/OxygenError"));
|
|
6
6
|
|
|
7
|
+
var _util = _interopRequireDefault(require("../lib/util"));
|
|
8
|
+
|
|
7
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
10
|
|
|
9
11
|
/*
|
|
@@ -20,8 +22,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
20
22
|
* @description Provides methods for working with Twilio service.
|
|
21
23
|
*/
|
|
22
24
|
module.exports = function () {
|
|
23
|
-
const deasync = require('deasync');
|
|
24
|
-
|
|
25
25
|
const utils = require('./utils');
|
|
26
26
|
|
|
27
27
|
const OxError = this.OxError = _OxygenError.default;
|
|
@@ -72,7 +72,6 @@ module.exports = function () {
|
|
|
72
72
|
var msg;
|
|
73
73
|
var now = Date.now();
|
|
74
74
|
var earliestMessageDate = new Date(now - notOlderThan);
|
|
75
|
-
var msgsProcessed = false;
|
|
76
75
|
|
|
77
76
|
while (!msg && Date.now() - now < timeout) {
|
|
78
77
|
await (() => {
|
|
@@ -100,27 +99,25 @@ module.exports = function () {
|
|
|
100
99
|
}
|
|
101
100
|
}
|
|
102
101
|
|
|
103
|
-
msgsProcessed = true;
|
|
104
102
|
resolve();
|
|
105
103
|
});
|
|
106
104
|
});
|
|
107
105
|
})();
|
|
108
|
-
|
|
109
|
-
deasync.sleep(800);
|
|
106
|
+
await _util.default.sleep(800);
|
|
110
107
|
}
|
|
111
108
|
|
|
112
109
|
if (!msg) {
|
|
113
110
|
throw new OxError(errHelper.errorCode.TWILIO_ERROR, "Couldn't get the SMS within " + timeout + 'ms.');
|
|
114
111
|
}
|
|
115
112
|
|
|
116
|
-
var removed;
|
|
117
|
-
|
|
118
113
|
if (removeOnRead) {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
114
|
+
await (() => {
|
|
115
|
+
return new Promise((resolve, reject) => {
|
|
116
|
+
_client.messages(msg.sid).remove().then(() => {
|
|
117
|
+
resolve();
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
})();
|
|
124
121
|
}
|
|
125
122
|
|
|
126
123
|
return msg.body;
|
|
@@ -138,23 +135,26 @@ module.exports = function () {
|
|
|
138
135
|
*/
|
|
139
136
|
|
|
140
137
|
|
|
141
|
-
module.sendSms = function (from, to, message) {
|
|
138
|
+
module.sendSms = async function (from, to, message) {
|
|
142
139
|
helpers.assertArgumentNonEmptyString(from, 'from');
|
|
143
140
|
helpers.assertArgumentNonEmptyString(to, 'to');
|
|
144
141
|
helpers.assertArgumentNonEmptyString(message, 'message');
|
|
145
142
|
var response = null;
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
143
|
+
await (() => {
|
|
144
|
+
return new Promise((resolve, reject) => {
|
|
145
|
+
_client.messages.create({
|
|
146
|
+
body: message,
|
|
147
|
+
from: from,
|
|
148
|
+
to: to
|
|
149
|
+
}).then(message => {
|
|
150
|
+
response = message.sid;
|
|
151
|
+
resolve();
|
|
152
|
+
}).catch(err => {
|
|
153
|
+
response = err;
|
|
154
|
+
resolve();
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
})();
|
|
158
158
|
|
|
159
159
|
if (response.message) {
|
|
160
160
|
var msg = response.message;
|
|
@@ -189,4 +189,4 @@ module.exports = function () {
|
|
|
189
189
|
|
|
190
190
|
return module;
|
|
191
191
|
};
|
|
192
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS10d2lsaW8uanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImRlYXN5bmMiLCJyZXF1aXJlIiwidXRpbHMiLCJPeEVycm9yIiwiT3hFcnJvckNvbnRzcnVjdG9yIiwiZXJySGVscGVyIiwiaGVscGVycyIsIl9jbGllbnQiLCJpc0luaXRpYWxpemVkIiwidW5kZWZpbmVkIiwiaW5pdCIsImFjY291bnRTaWQiLCJhdXRoVG9rZW4iLCJnZXRMYXN0U21zIiwicmVtb3ZlT25SZWFkIiwidGltZW91dCIsIm5vdE9sZGVyVGhhbiIsImZyb21OdW1iZXIiLCJhc3NlcnRBcmd1bWVudEJvb2wiLCJhc3NlcnRBcmd1bWVudE51bWJlck5vbk5lZ2F0aXZlIiwiYXNzZXJ0QXJndW1lbnRTdHJpbmciLCJtc2ciLCJub3ciLCJEYXRlIiwiZWFybGllc3RNZXNzYWdlRGF0ZSIsIm1zZ3NQcm9jZXNzZWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsIm1lc3NhZ2VzIiwibGlzdCIsImRhdGVTZW50QWZ0ZXIiLCJlcnIiLCJfbXNnIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJkaXJlY3Rpb24iLCJmcm9tIiwiX21zZ0RhdGUiLCJwYXJzZSIsImRhdGVDcmVhdGVkIiwibG9vcFdoaWxlIiwic2xlZXAiLCJlcnJvckNvZGUiLCJUV0lMSU9fRVJST1IiLCJyZW1vdmVkIiwic2lkIiwicmVtb3ZlIiwidGhlbiIsImJvZHkiLCJzZW5kU21zIiwidG8iLCJtZXNzYWdlIiwiYXNzZXJ0QXJndW1lbnROb25FbXB0eVN0cmluZyIsInJlc3BvbnNlIiwiY3JlYXRlIiwiY2F0Y2giLCJtb3JlSW5mbyIsImNvZGUiLCJhc3NlcnRBcmd1bWVudCIsInZhbCIsIm5hbWUiLCJjYWxsIiwiYXNzZXJ0QXJndW1lbnROdW1iZXIiLCJhc3NlcnRBcmd1bWVudEJvb2xPcHRpb25hbCIsImFzc2VydEFyZ3VtZW50VGltZW91dCJdLCJtYXBw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QUMwRCwwQkFBUixHQUFxQyxDQUFDSixHQUFELEVBQU1DLElBQU4sS0FBZTNELEtBQUssQ0FBQzhELDBCQUFOLENBQWlDRixJQUFqQyxDQUFzQyxJQUF0QyxFQUE0Q0YsR0FBNUMsRUFBaURDLElBQWpELENBQXBEOztBQUNBdkQsRUFBQUEsT0FBTyxDQUFDMkQscUJBQVIsR0FBZ0MsQ0FBQ0wsR0FBRCxFQUFNQyxJQUFOLEtBQWUzRCxLQUFLLENBQUMrRCxxQkFBTixDQUE0QkgsSUFBNUIsQ0FBaUMsSUFBakMsRUFBdUNGLEdBQXZDLEVBQTRDQyxJQUE1QyxDQUEvQzs7QUFFQSxTQUFPL0QsTUFBUDtBQUNILENBakpEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKipcclxuICogQG5hbWUgdHdpbGlvXHJcbiAqIEBkZXNjcmlwdGlvbiBQcm92aWRlcyBtZXRob2RzIGZvciB3b3JraW5nIHdpdGggVHdpbGlvIHNlcnZpY2UuXHJcbiAqL1xyXG5pbXBvcnQgT3hFcnJvckNvbnRzcnVjdG9yIGZyb20gJy4uL2Vycm9ycy9PeHlnZW5FcnJvcic7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xyXG4gICAgY29uc3QgZGVhc3luYyA9IHJlcXVpcmUoJ2RlYXN5bmMnKTtcclxuICAgIGNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xyXG4gICAgY29uc3QgT3hFcnJvciA9IHRoaXMuT3hFcnJvciA9IE94RXJyb3JDb250c3J1Y3RvcjtcclxuICAgIGNvbnN0IGVyckhlbHBlciA9IHRoaXMuZXJySGVscGVyID0gcmVxdWlyZSgnLi4vZXJyb3JzL2hlbHBlcicpO1xyXG4gICAgY29uc3QgaGVscGVycyA9IHRoaXMuaGVscGVycyA9IHt9O1xyXG5cclxuICAgIHZhciBfY2xpZW50O1xyXG5cclxuICAgIG1vZHVsZS5pc0luaXRpYWxpemVkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIF9jbGllbnQgIT09IHVuZGVmaW5lZDtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBTZXQgVHdpbGlvIGF1dGhlbnRpY2F0aW9uIGRldGFpbHMuXHJcbiAgICAgKiBAZnVuY3Rpb24gaW5pdFxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGFjY291bnRTaWQgLSBBY2NvdW50IFNJRC5cclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBhdXRoVG9rZW4gLSBBdXRoZW50aWNhdGlvbiB0b2tlbi5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmluaXQgPSBmdW5jdGlvbihhY2NvdW50U2lkLCBhdXRoVG9rZW4pIHtcclxuICAgICAgICBfY2xpZW50ID0gcmVxdWlyZSgndHdpbGlvJykoYWNjb3VudFNpZCwgYXV0aFRva2VuKTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgbGFzdCBTTVMgbWVzc2FnZS5cclxuICAgICAqIEBmdW5jdGlvbiBnZXRMYXN0U21zXHJcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IHJlbW92ZU9uUmVhZCAtIFNwZWNpZmllcyB3aGV0aGVyIHRvIGRlbGV0ZSB0aGUgbWVzc2FnZSBhZnRlciByZWFkaW5nIGl0LlxyXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHRpbWVvdXQgLSBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3Igd2FpdGluZyBmb3IgdGhlIG1lc3NhZ2UgdG8gYXJyaXZlLlxyXG4gICAgICogQHBhcmFtIHtOdW1iZXI9fSBub3RPbGRlclRoYW4gLSBSZXRyaWV2ZSBtZXNzYWdlIG9ubHkgaWYgaXQgYXJyaXZlZCBub3QgYmVmb3JlIHRoZSBnaXZlbiB0aW1lIChpbiBtcykuIERlZmF1bHQgaXMgNCBtaW51dGVzLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmc9fSBmcm9tTnVtYmVyIC0gRnJvbSBudW1iZXIgdG8gZmlsdGVyIG1lc3NhZ2VcclxuICAgICAqIEByZXR1cm4ge1N0cmluZ30gU01TIHRleHQuXHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5nZXRMYXN0U21zID0gYXN5bmMgZnVuY3Rpb24ocmVtb3ZlT25SZWFkLCB0aW1lb3V0LCBub3RPbGRlclRoYW4sIGZyb21OdW1iZXIpIHtcclxuICAgICAgICBoZWxwZXJzLmFzc2VydEFyZ3VtZW50Qm9vbChyZW1vdmVPblJlYWQsICdyZW1vdmVPblJlYWQnKTtcclxuICAgICAgICBoZWxwZXJzLmFzc2VydEFyZ3VtZW50TnVtYmVyTm9uTmVnYXRpdmUodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuICAgICAgICBpZiAoZnJvbU51bWJlcikge1xyXG4gICAgICAgICAgICBoZWxwZXJzLmFzc2VydEFyZ3VtZW50U3RyaW5nKGZyb21OdW1iZXIsICdmcm9tTnVtYmVyJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIW5vdE9sZGVyVGhhbikge1xyXG4gICAgICAgICAgICBub3RPbGRlclRoYW4gPSA0KjYwKjEwMDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBtc2c7XHJcbiAgICAgICAgdmFyIG5vdyA9IERhdGUubm93KCk7XHJcbiAgICAgICAgdmFyIGVhcmxpZXN0TWVzc2FnZURhdGUgPSBuZXcgRGF0ZShub3cgLSBub3RPbGRlclRoYW4pO1xyXG4gICAgICAgIHZhciBtc2dzUHJvY2Vzc2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHdoaWxlICghbXNnICYmIChEYXRlLm5vdygpIC0gbm93KSA8IHRpbWVvdXQpIHtcclxuICAgICAgICAgICAgYXdhaXQgKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgX2NsaWVudC5tZXNzYWdlcy5saXN0KHsgZGF0ZVNlbnRBZnRlcjogZWFybGllc3RNZXNzYWdlRGF0ZSB9LCBmdW5jdGlvbihlcnIsIG1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfbXNnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZXMgJiYgdHlwZW9mIG1lc3NhZ2VzW1N5bWJvbC5pdGVyYXRvcl0gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoX21zZyBvZiBtZXNzYWdlcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfbXNnLmRpcmVjdGlvbiA9PSAnaW5ib3VuZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZyb21OdW1iZXIgJiYgX21zZy5mcm9tICE9PSBmcm9tTnVtYmVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfbXNnRGF0ZSA9IERhdGUucGFyc2UoX21zZy5kYXRlQ3JlYXRlZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBtZXNzYWdlIGlzIG5ld2VyIHRoYW4gdGhlIHByZXZpb3VzIG9uZSAtIHNhdmUgaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtc2cgJiYgRGF0ZS5wYXJzZShtc2cuZGF0ZUNyZWF0ZWQpIDwgX21zZ0RhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBfbXNnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghbXNnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gX21zZztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtc2dzUHJvY2Vzc2VkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KSgpO1xyXG4gICAgICAgICAgICBkZWFzeW5jLmxvb3BXaGlsZSgoKSA9PiAhbXNnc1Byb2Nlc3NlZCk7XHJcbiAgICAgICAgICAgIGRlYXN5bmMuc2xlZXAoODAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghbXNnKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuVFdJTElPX0VSUk9SLCBcIkNvdWxkbid0IGdldCB0aGUgU01TIHdpdGhpbiBcIiArIHRpbWVvdXQgKyAnbXMuJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgcmVtb3ZlZDtcclxuICAgICAgICBpZiAocmVtb3ZlT25SZWFkKSB7XHJcbiAgICAgICAgICAgIF9jbGllbnQubWVzc2FnZXMobXNnLnNpZCkucmVtb3ZlKCkudGhlbigoKSA9PiB7IHJlbW92ZWQgPSB0cnVlOyB9KTtcclxuICAgICAgICAgICAgZGVhc3luYy5sb29wV2hpbGUoKCkgPT4gIXJlbW92ZWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG1zZy5ib2R5O1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFNlbmQgYW4gU01TLlxyXG4gICAgICogQGZ1bmN0aW9uIHNlbmRTbXNcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBmcm9tIC0gUGhvbmUgbnVtYmVyIHRvIHNlbmQgZnJvbS5cclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0byAtIFBob25lIG51bWJlciB0byBzZW5kIHRvLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG1lc3NhZ2UgLSBNZXNzYWdlIHRvIHNlbmQuXHJcbiAgICAgKiBAcmV0dXJuIHtTdHJpbmd9IE1lc3NhZ2UgU0lELlxyXG4gICAgICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAgICAgKiB0d2lsaW8uaW5pdCgnQWNjb3VudCBTaWQnLCAnQWNjb3VudCBUb2tlbicpO1xyXG4gICAgICogdHdpbGlvLnNlbmRTbXMoJysxeHh4eHh4eHh4eCcsICcrOTcyeHh4eHh4eHh4JywgJ0hlbGxvIFdvcmxkIScpO1xyXG4gICAgICovXHJcbiAgICBtb2R1bGUuc2VuZFNtcyA9IGZ1bmN0aW9uKGZyb20sIHRvLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgaGVscGVycy5hc3NlcnRBcmd1bWVudE5vbkVtcHR5U3RyaW5nKGZyb20sICdmcm9tJyk7XHJcbiAgICAgICAgaGVscGVycy5hc3NlcnRBcmd1bWVudE5vbkVtcHR5U3RyaW5nKHRvLCAndG8nKTtcclxuICAgICAgICBoZWxwZXJzLmFzc2VydEFyZ3VtZW50Tm9uRW1wdHlTdHJpbmcobWVzc2FnZSwgJ21lc3NhZ2UnKTtcclxuXHJcbiAgICAgICAgdmFyIHJlc3BvbnNlID0gbnVsbDtcclxuXHJcbiAgICAgICAgX2NsaWVudC5tZXNzYWdlcy5jcmVhdGUoe1xyXG4gICAgICAgICAgICBib2R5OiBtZXNzYWdlLFxyXG4gICAgICAgICAgICBmcm9tOiBmcm9tLFxyXG4gICAgICAgICAgICB0bzogdG9cclxuICAgICAgICB9KS50aGVuKG1lc3NhZ2UgPT4ge1xyXG4gICAgICAgICAgICByZXNwb25zZSA9IG1lc3NhZ2Uuc2lkO1xyXG4gICAgICAgIH0pLmNhdGNoKGVyciA9PiB7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlID0gZXJyO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBkZWFzeW5jLmxvb3BXaGlsZSgoKSA9PiAhcmVzcG9uc2UpO1xyXG5cclxuICAgICAgICBpZiAocmVzcG9uc2UubWVzc2FnZSkge1xyXG4gICAgICAgICAgICB2YXIgbXNnID0gcmVzcG9uc2UubWVzc2FnZTtcclxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLm1vcmVJbmZvKSB7XHJcbiAgICAgICAgICAgICAgICBtc2cgKz0gJyBGb3IgbW9yZSBpbmZvOiAnICsgcmVzcG9uc2UubW9yZUluZm87XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2UuY29kZSkge1xyXG4gICAgICAgICAgICAgICAgbXNnID0gJ1VuYWJsZSB0byBjb25uZWN0IHRvIFR3aWxpbzogJyArIG1zZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLlRXSUxJT19FUlJPUiwgbXNnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgIH07XHJcblxyXG4gICAgaGVscGVycy5hc3NlcnRBcmd1bWVudCA9ICh2YWwsIG5hbWUpID0+IHV0aWxzLmFzc2VydEFyZ3VtZW50LmNhbGwodGhpcywgdmFsLCBuYW1lKTtcclxuICAgIGhlbHBlcnMuYXNzZXJ0QXJndW1lbnROb25FbXB0eVN0cmluZyA9ICh2YWwsIG5hbWUpID0+IHV0aWxzLmFzc2VydEFyZ3VtZW50Tm9uRW1wdHlTdHJpbmcuY2FsbCh0aGlzLCB2YWwsIG5hbWUpO1xyXG4gICAgaGVscGVycy5hc3NlcnRBcmd1bWVudFN0cmluZyA9ICh2YWwsIG5hbWUpID0+IHV0aWxzLmFzc2VydEFyZ3VtZW50U3RyaW5nLmNhbGwodGhpcywgdmFsLCBuYW1lKTtcclxuICAgIGhlbHBlcnMuYXNzZXJ0QXJndW1lbnROdW1iZXIgPSAodmFsLCBuYW1lKSA9PiB1dGlscy5hc3NlcnRBcmd1bWVudE51bWJlci5jYWxsKHRoaXMsIHZhbCwgbmFtZSk7XHJcbiAgICBoZWxwZXJzLmFzc2VydEFyZ3VtZW50TnVtYmVyTm9uTmVnYXRpdmUgPSAodmFsLCBuYW1lKSA9PiB1dGlscy5hc3NlcnRBcmd1bWVudE51bWJlck5vbk5lZ2F0aXZlLmNhbGwodGhpcywgdmFsLCBuYW1lKTtcclxuICAgIGhlbHBlcnMuYXNzZXJ0QXJndW1lbnRCb29sID0gKHZhbCwgbmFtZSkgPT4gdXRpbHMuYXNzZXJ0QXJndW1lbnRCb29sLmNhbGwodGhpcywgdmFsLCBuYW1lKTtcclxuICAgIGhlbHBlcnMuYXNzZXJ0QXJndW1lbnRCb29sT3B0aW9uYWwgPSAodmFsLCBuYW1lKSA9PiB1dGlscy5hc3NlcnRBcmd1bWVudEJvb2xPcHRpb25hbC5jYWxsKHRoaXMsIHZhbCwgbmFtZSk7XHJcbiAgICBoZWxwZXJzLmFzc2VydEFyZ3VtZW50VGltZW91dCA9ICh2YWwsIG5hbWUpID0+IHV0aWxzLmFzc2VydEFyZ3VtZW50VGltZW91dC5jYWxsKHRoaXMsIHZhbCwgbmFtZSk7XHJcblxyXG4gICAgcmV0dXJuIG1vZHVsZTtcclxufTtcclxuIl19
|
|
192
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS10d2lsaW8uanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsInV0aWxzIiwicmVxdWlyZSIsIk94RXJyb3IiLCJPeEVycm9yQ29udHNydWN0b3IiLCJlcnJIZWxwZXIiLCJoZWxwZXJzIiwiX2NsaWVudCIsImlzSW5pdGlhbGl6ZWQiLCJ1bmRlZmluZWQiLCJpbml0IiwiYWNjb3VudFNpZCIsImF1dGhUb2tlbiIsImdldExhc3RTbXMiLCJyZW1vdmVPblJlYWQiLCJ0aW1lb3V0Iiwibm90T2xkZXJUaGFuIiwiZnJvbU51bWJlciIsImFzc2VydEFyZ3VtZW50Qm9vbCIsImFzc2VydEFyZ3VtZW50TnVtYmVyTm9uTmVnYXRpdmUiLCJhc3NlcnRBcmd1bWVudFN0cmluZyIsIm1zZyIsIm5vdyIsIkRhdGUiLCJlYXJsaWVzdE1lc3NhZ2VEYXRlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJtZXNzYWdlcyIsImxpc3QiLCJkYXRlU2VudEFmdGVyIiwiZXJyIiwiX21zZyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiZGlyZWN0aW9uIiwiZnJvbSIsIl9tc2dEYXRlIiwicGFyc2UiLCJkYXRlQ3JlYXRlZCIsImxpYlV0aWxzIiwic2xlZXAiLCJlcnJvckNvZGUiLCJUV0lMSU9fRVJST1IiLCJzaWQiLCJyZW1vdmUiLCJ0aGVuIiwiYm9keSIsInNlbmRTbXMiLCJ0byIsIm1lc3NhZ2UiLCJhc3NlcnRBcmd1bWVudE5vbkVtcHR5U3RyaW5nIiwicmVzcG9uc2UiLCJjcmVhdGUiLCJjYXRjaCIsIm1vcmVJbmZvIiwiY29kZSIsImFzc2VydEFyZ3VtZW50IiwidmFsIiwibmFtZSIsImNhbGwiLCJhc3NlcnRBcmd1bWVudE51bWJlciIsImFzc2VydEFyZ3VtZW50Qm9vbE9wdGlvbmFsIiwiYXNzZXJ0QXJndW1lbnRUaW1lb3V0Il0sIm1hcHBpbmdzIjoiOzs7O0FBYUE7O0FBQ0E7Ozs7QUFkQTtBQUNBO0FB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Q0FBc0MsSUFBdEMsRUFBNENGLEdBQTVDLEVBQWlEQyxJQUFqRCxDQUFwRDs7QUFDQXJELEVBQUFBLE9BQU8sQ0FBQ3lELHFCQUFSLEdBQWdDLENBQUNMLEdBQUQsRUFBTUMsSUFBTixLQUFlMUQsS0FBSyxDQUFDOEQscUJBQU4sQ0FBNEJILElBQTVCLENBQWlDLElBQWpDLEVBQXVDRixHQUF2QyxFQUE0Q0MsSUFBNUMsQ0FBL0M7O0FBRUEsU0FBTzVELE1BQVA7QUFDSCxDQWpKRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lIHR3aWxpb1xyXG4gKiBAZGVzY3JpcHRpb24gUHJvdmlkZXMgbWV0aG9kcyBmb3Igd29ya2luZyB3aXRoIFR3aWxpbyBzZXJ2aWNlLlxyXG4gKi9cclxuaW1wb3J0IE94RXJyb3JDb250c3J1Y3RvciBmcm9tICcuLi9lcnJvcnMvT3h5Z2VuRXJyb3InO1xyXG5pbXBvcnQgbGliVXRpbHMgZnJvbSAnLi4vbGliL3V0aWwnO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xyXG4gICAgY29uc3QgT3hFcnJvciA9IHRoaXMuT3hFcnJvciA9IE94RXJyb3JDb250c3J1Y3RvcjtcclxuICAgIGNvbnN0IGVyckhlbHBlciA9IHRoaXMuZXJySGVscGVyID0gcmVxdWlyZSgnLi4vZXJyb3JzL2hlbHBlcicpO1xyXG4gICAgY29uc3QgaGVscGVycyA9IHRoaXMuaGVscGVycyA9IHt9O1xyXG5cclxuICAgIHZhciBfY2xpZW50O1xyXG5cclxuICAgIG1vZHVsZS5pc0luaXRpYWxpemVkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIF9jbGllbnQgIT09IHVuZGVmaW5lZDtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBTZXQgVHdpbGlvIGF1dGhlbnRpY2F0aW9uIGRldGFpbHMuXHJcbiAgICAgKiBAZnVuY3Rpb24gaW5pdFxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGFjY291bnRTaWQgLSBBY2NvdW50IFNJRC5cclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBhdXRoVG9rZW4gLSBBdXRoZW50aWNhdGlvbiB0b2tlbi5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmluaXQgPSBmdW5jdGlvbihhY2NvdW50U2lkLCBhdXRoVG9rZW4pIHtcclxuICAgICAgICBfY2xpZW50ID0gcmVxdWlyZSgndHdpbGlvJykoYWNjb3VudFNpZCwgYXV0aFRva2VuKTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgbGFzdCBTTVMgbWVzc2FnZS5cclxuICAgICAqIEBmdW5jdGlvbiBnZXRMYXN0U21zXHJcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IHJlbW92ZU9uUmVhZCAtIFNwZWNpZmllcyB3aGV0aGVyIHRvIGRlbGV0ZSB0aGUgbWVzc2FnZSBhZnRlciByZWFkaW5nIGl0LlxyXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHRpbWVvdXQgLSBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3Igd2FpdGluZyBmb3IgdGhlIG1lc3NhZ2UgdG8gYXJyaXZlLlxyXG4gICAgICogQHBhcmFtIHtOdW1iZXI9fSBub3RPbGRlclRoYW4gLSBSZXRyaWV2ZSBtZXNzYWdlIG9ubHkgaWYgaXQgYXJyaXZlZCBub3QgYmVmb3JlIHRoZSBnaXZlbiB0aW1lIChpbiBtcykuIERlZmF1bHQgaXMgNCBtaW51dGVzLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmc9fSBmcm9tTnVtYmVyIC0gRnJvbSBudW1iZXIgdG8gZmlsdGVyIG1lc3NhZ2VcclxuICAgICAqIEByZXR1cm4ge1N0cmluZ30gU01TIHRleHQuXHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5nZXRMYXN0U21zID0gYXN5bmMgZnVuY3Rpb24ocmVtb3ZlT25SZWFkLCB0aW1lb3V0LCBub3RPbGRlclRoYW4sIGZyb21OdW1iZXIpIHtcclxuICAgICAgICBoZWxwZXJzLmFzc2VydEFyZ3VtZW50Qm9vbChyZW1vdmVPblJlYWQsICdyZW1vdmVPblJlYWQnKTtcclxuICAgICAgICBoZWxwZXJzLmFzc2VydEFyZ3VtZW50TnVtYmVyTm9uTmVnYXRpdmUodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuICAgICAgICBpZiAoZnJvbU51bWJlcikge1xyXG4gICAgICAgICAgICBoZWxwZXJzLmFzc2VydEFyZ3VtZW50U3RyaW5nKGZyb21OdW1iZXIsICdmcm9tTnVtYmVyJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIW5vdE9sZGVyVGhhbikge1xyXG4gICAgICAgICAgICBub3RPbGRlclRoYW4gPSA0KjYwKjEwMDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBtc2c7XHJcbiAgICAgICAgdmFyIG5vdyA9IERhdGUubm93KCk7XHJcbiAgICAgICAgdmFyIGVhcmxpZXN0TWVzc2FnZURhdGUgPSBuZXcgRGF0ZShub3cgLSBub3RPbGRlclRoYW4pO1xyXG4gICAgICAgIHdoaWxlICghbXNnICYmIChEYXRlLm5vdygpIC0gbm93KSA8IHRpbWVvdXQpIHtcclxuICAgICAgICAgICAgYXdhaXQgKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgX2NsaWVudC5tZXNzYWdlcy5saXN0KHsgZGF0ZVNlbnRBZnRlcjogZWFybGllc3RNZXNzYWdlRGF0ZSB9LCBmdW5jdGlvbihlcnIsIG1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfbXNnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZXMgJiYgdHlwZW9mIG1lc3NhZ2VzW1N5bWJvbC5pdGVyYXRvcl0gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoX21zZyBvZiBtZXNzYWdlcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfbXNnLmRpcmVjdGlvbiA9PSAnaW5ib3VuZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZyb21OdW1iZXIgJiYgX21zZy5mcm9tICE9PSBmcm9tTnVtYmVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfbXNnRGF0ZSA9IERhdGUucGFyc2UoX21zZy5kYXRlQ3JlYXRlZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBtZXNzYWdlIGlzIG5ld2VyIHRoYW4gdGhlIHByZXZpb3VzIG9uZSAtIHNhdmUgaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtc2cgJiYgRGF0ZS5wYXJzZShtc2cuZGF0ZUNyZWF0ZWQpIDwgX21zZ0RhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBfbXNnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghbXNnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gX21zZztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSkoKTtcclxuICAgICAgICAgICAgYXdhaXQgbGliVXRpbHMuc2xlZXAoODAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghbXNnKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuVFdJTElPX0VSUk9SLCBcIkNvdWxkbid0IGdldCB0aGUgU01TIHdpdGhpbiBcIiArIHRpbWVvdXQgKyAnbXMuJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVtb3ZlT25SZWFkKSB7XHJcbiAgICAgICAgICAgIGF3YWl0ICgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIF9jbGllbnQubWVzc2FnZXMobXNnLnNpZCkucmVtb3ZlKCkudGhlbigoKSA9PiB7IHJlc29sdmUoKTsgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSkoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBtc2cuYm9keTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBTZW5kIGFuIFNNUy5cclxuICAgICAqIEBmdW5jdGlvbiBzZW5kU21zXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZnJvbSAtIFBob25lIG51bWJlciB0byBzZW5kIGZyb20uXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdG8gLSBQaG9uZSBudW1iZXIgdG8gc2VuZCB0by5cclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBtZXNzYWdlIC0gTWVzc2FnZSB0byBzZW5kLlxyXG4gICAgICogQHJldHVybiB7U3RyaW5nfSBNZXNzYWdlIFNJRC5cclxuICAgICAqIEBleGFtcGxlIDxjYXB0aW9uPltqYXZhc2NyaXB0XSBVc2FnZSBleGFtcGxlPC9jYXB0aW9uPlxyXG4gICAgICogdHdpbGlvLmluaXQoJ0FjY291bnQgU2lkJywgJ0FjY291bnQgVG9rZW4nKTtcclxuICAgICAqIHR3aWxpby5zZW5kU21zKCcrMXh4eHh4eHh4eHgnLCAnKzk3Mnh4eHh4eHh4eCcsICdIZWxsbyBXb3JsZCEnKTtcclxuICAgICAqL1xyXG4gICAgbW9kdWxlLnNlbmRTbXMgPSBhc3luYyBmdW5jdGlvbihmcm9tLCB0bywgbWVzc2FnZSkge1xyXG4gICAgICAgIGhlbHBlcnMuYXNzZXJ0QXJndW1lbnROb25FbXB0eVN0cmluZyhmcm9tLCAnZnJvbScpO1xyXG4gICAgICAgIGhlbHBlcnMuYXNzZXJ0QXJndW1lbnROb25FbXB0eVN0cmluZyh0bywgJ3RvJyk7XHJcbiAgICAgICAgaGVscGVycy5hc3NlcnRBcmd1bWVudE5vbkVtcHR5U3RyaW5nKG1lc3NhZ2UsICdtZXNzYWdlJyk7XHJcblxyXG4gICAgICAgIHZhciByZXNwb25zZSA9IG51bGw7XHJcblxyXG4gICAgICAgIGF3YWl0ICgoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBfY2xpZW50Lm1lc3NhZ2VzLmNyZWF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9keTogbWVzc2FnZSxcclxuICAgICAgICAgICAgICAgICAgICBmcm9tOiBmcm9tLFxyXG4gICAgICAgICAgICAgICAgICAgIHRvOiB0b1xyXG4gICAgICAgICAgICAgICAgfSkudGhlbihtZXNzYWdlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IG1lc3NhZ2Uuc2lkO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgICAgICAgIH0pLmNhdGNoKGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBlcnI7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pKCk7XHJcblxyXG4gICAgICAgIGlmIChyZXNwb25zZS5tZXNzYWdlKSB7XHJcbiAgICAgICAgICAgIHZhciBtc2cgPSByZXNwb25zZS5tZXNzYWdlO1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2UubW9yZUluZm8pIHtcclxuICAgICAgICAgICAgICAgIG1zZyArPSAnIEZvciBtb3JlIGluZm86ICcgKyByZXNwb25zZS5tb3JlSW5mbztcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5jb2RlKSB7XHJcbiAgICAgICAgICAgICAgICBtc2cgPSAnVW5hYmxlIHRvIGNvbm5lY3QgdG8gVHdpbGlvOiAnICsgbXNnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuVFdJTElPX0VSUk9SLCBtc2cpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgfTtcclxuXHJcbiAgICBoZWxwZXJzLmFzc2VydEFyZ3VtZW50ID0gKHZhbCwgbmFtZSkgPT4gdXRpbHMuYXNzZXJ0QXJndW1lbnQuY2FsbCh0aGlzLCB2YWwsIG5hbWUpO1xyXG4gICAgaGVscGVycy5hc3NlcnRBcmd1bWVudE5vbkVtcHR5U3RyaW5nID0gKHZhbCwgbmFtZSkgPT4gdXRpbHMuYXNzZXJ0QXJndW1lbnROb25FbXB0eVN0cmluZy5jYWxsKHRoaXMsIHZhbCwgbmFtZSk7XHJcbiAgICBoZWxwZXJzLmFzc2VydEFyZ3VtZW50U3RyaW5nID0gKHZhbCwgbmFtZSkgPT4gdXRpbHMuYXNzZXJ0QXJndW1lbnRTdHJpbmcuY2FsbCh0aGlzLCB2YWwsIG5hbWUpO1xyXG4gICAgaGVscGVycy5hc3NlcnRBcmd1bWVudE51bWJlciA9ICh2YWwsIG5hbWUpID0+IHV0aWxzLmFzc2VydEFyZ3VtZW50TnVtYmVyLmNhbGwodGhpcywgdmFsLCBuYW1lKTtcclxuICAgIGhlbHBlcnMuYXNzZXJ0QXJndW1lbnROdW1iZXJOb25OZWdhdGl2ZSA9ICh2YWwsIG5hbWUpID0+IHV0aWxzLmFzc2VydEFyZ3VtZW50TnVtYmVyTm9uTmVnYXRpdmUuY2FsbCh0aGlzLCB2YWwsIG5hbWUpO1xyXG4gICAgaGVscGVycy5hc3NlcnRBcmd1bWVudEJvb2wgPSAodmFsLCBuYW1lKSA9PiB1dGlscy5hc3NlcnRBcmd1bWVudEJvb2wuY2FsbCh0aGlzLCB2YWwsIG5hbWUpO1xyXG4gICAgaGVscGVycy5hc3NlcnRBcmd1bWVudEJvb2xPcHRpb25hbCA9ICh2YWwsIG5hbWUpID0+IHV0aWxzLmFzc2VydEFyZ3VtZW50Qm9vbE9wdGlvbmFsLmNhbGwodGhpcywgdmFsLCBuYW1lKTtcclxuICAgIGhlbHBlcnMuYXNzZXJ0QXJndW1lbnRUaW1lb3V0ID0gKHZhbCwgbmFtZSkgPT4gdXRpbHMuYXNzZXJ0QXJndW1lbnRUaW1lb3V0LmNhbGwodGhpcywgdmFsLCBuYW1lKTtcclxuXHJcbiAgICByZXR1cm4gbW9kdWxlO1xyXG59O1xyXG4iXX0=
|
|
@@ -17,6 +17,8 @@ var _OxygenError = _interopRequireDefault(require("../errors/OxygenError"));
|
|
|
17
17
|
|
|
18
18
|
var _helper = _interopRequireDefault(require("../errors/helper"));
|
|
19
19
|
|
|
20
|
+
var _paramReaderExcel = _interopRequireDefault(require("../lib/param-reader-excel"));
|
|
21
|
+
|
|
20
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
23
|
|
|
22
24
|
/*
|
|
@@ -34,8 +36,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
34
36
|
*/
|
|
35
37
|
const MODULE_NAME = 'utils';
|
|
36
38
|
|
|
37
|
-
const deasync = require('deasync');
|
|
38
|
-
|
|
39
39
|
class UtilsModule extends _OxygenModule.default {
|
|
40
40
|
constructor(options, context, rs, logger, modules, services) {
|
|
41
41
|
super(options, context, rs, logger, modules, services);
|
|
@@ -59,10 +59,10 @@ class UtilsModule extends _OxygenModule.default {
|
|
|
59
59
|
*/
|
|
60
60
|
|
|
61
61
|
|
|
62
|
-
pause(ms) {
|
|
62
|
+
async pause(ms) {
|
|
63
63
|
_utils.default.assertArgumentNumberNonNegative(ms, 'ms');
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
await _util.default.sleep(ms);
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
68
68
|
* @summary Decrypt text
|
|
@@ -190,8 +190,46 @@ class UtilsModule extends _OxygenModule.default {
|
|
|
190
190
|
throw new _OxygenError.default(_helper.default.errorCode.CSV_ERROR, e.message);
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* @summary Reads data from Xlsx file
|
|
195
|
+
* @function readXlsx
|
|
196
|
+
* @param {String} filePath - Absolute path to file
|
|
197
|
+
* @return {Array} - Array of xlsx data
|
|
198
|
+
*/
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
async readXlsx(filePath) {
|
|
202
|
+
const reader = new _paramReaderExcel.default();
|
|
203
|
+
return await reader.read(filePath);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* @summary Uses the DNS protocol to resolve a host name
|
|
207
|
+
* @function dnsResolve
|
|
208
|
+
* @param {String} hostname - Host name to resolve.
|
|
209
|
+
* @param {String=} rrType - Resource record type. Default: 'A'.
|
|
210
|
+
* @return {String[] | Object} - Array or Object of resource records. The type and structure of individual results vary based on rrtype
|
|
211
|
+
*/
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
async dnsResolve(hostname, rrType = 'A') {
|
|
215
|
+
_utils.default.assertArgumentNonEmptyString(hostname, 'hostname');
|
|
216
|
+
|
|
217
|
+
const rrTypes = ['A', 'AAAA', 'ANY', 'CNAME', 'MX', 'NAPTR', 'NS', 'PTR', 'SOA', 'SRV', 'TXT'];
|
|
218
|
+
|
|
219
|
+
if (!rrTypes.includes(rrType)) {
|
|
220
|
+
throw new _OxygenError.default(_helper.default.errorCode.SCRIPT_ERROR, `Invalid argument - 'rrType'. Available rrType values: ${rrTypes.join(', ')}`);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
const dnsPromises = require('dns').promises;
|
|
224
|
+
|
|
225
|
+
try {
|
|
226
|
+
return await dnsPromises.resolve(hostname, rrType);
|
|
227
|
+
} catch (e) {
|
|
228
|
+
throw new _OxygenError.default(_helper.default.errorCode.DNS_ERROR, e.message);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
193
231
|
|
|
194
232
|
}
|
|
195
233
|
|
|
196
234
|
exports.default = UtilsModule;
|
|
197
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS11dGlscy5qcyJdLCJuYW1lcyI6WyJNT0RVTEVfTkFNRSIsImRlYXN5bmMiLCJyZXF1aXJlIiwiVXRpbHNNb2R1bGUiLCJPeHlnZW5Nb2R1bGUiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJjb250ZXh0IiwicnMiLCJsb2dnZXIiLCJtb2R1bGVzIiwic2VydmljZXMiLCJfYWx3YXlzSW5pdGlhbGl6ZWQiLCJfaXNJbml0aWFsaXplZCIsIm5hbWUiLCJwYXVzZSIsIm1zIiwidXRpbHMiLCJhc3NlcnRBcmd1bWVudE51bWJlck5vbk5lZ2F0aXZlIiwic2xlZXAiLCJkZWNyeXB0IiwidGV4dCIsImxpYlV0aWxzIiwiZW5jcnlwdCIsInJlYWRDc3YiLCJmaWxlUGF0aCIsInBhcnNlIiwiZnMiLCJwYXRoIiwiZXh0IiwiZXh0bmFtZSIsIk94RXJyb3IiLCJlcnJvckhlbHBlciIsImVycm9yQ29kZSIsIkNTVl9FUlJPUiIsImRhdGEiLCJyZWFkRmlsZVN5bmMiLCJlIiwicmVwbGFjZSIsImJvbSIsImNoYXJDb2RlQXQiLCJ0YWJsZSIsImNvbHVtbnMiLCJ0cmltIiwibWVzc2FnZSIsIndyaXRlQ3N2IiwiT2JqZWN0c1RvQ3N2IiwiY3N2IiwidG9EaXNrIiwiYWxsQ29sdW1ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBZUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7QUFwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLFdBQVcsR0FBRyxPQUFwQjs7QUFJQSxNQUFNQyxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUllLE1BQU1DLFdBQU4sU0FBMEJDLHFCQUExQixDQUF1QztBQUNsREMsRUFBQUEsV0FBVyxDQUFDQyxPQUFELEVBQVVDLE9BQVYsRUFBbUJDLEVBQW5CLEVBQXVCQyxNQUF2QixFQUErQkMsT0FB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QUVFLE9BQU8rQixDQUFQLEVBQVU7QUFDUixZQUFNLElBQUlOLG9CQUFKLENBQVlDLGdCQUFZQyxTQUFaLENBQXNCQyxTQUFsQyxFQUE2Q0csQ0FBQyxDQUFDTyxPQUEvQyxDQUFOO0FBQ0g7O0FBRUQsV0FBT0gsS0FBUDtBQUNIO0FBRUQ7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNrQixRQUFSSSxRQUFRLENBQUNwQixRQUFELEVBQVdVLElBQVgsRUFBaUI3QixPQUFPLEdBQUcsRUFBM0IsRUFBK0I7QUFDekMsUUFBSTtBQUNBLFlBQU13QyxZQUFZLEdBQUc1QyxPQUFPLENBQUMsZ0JBQUQsQ0FBNUI7O0FBQ0EsWUFBTTZDLEdBQUcsR0FBRyxJQUFJRCxZQUFKLENBQWlCWCxJQUFqQixDQUFaO0FBQ0EsWUFBTVksR0FBRyxDQUFDQyxNQUFKLENBQVd2QixRQUFYLEVBQXFCO0FBQUV3QixRQUFBQSxVQUFVLEVBQUUsSUFBZDtBQUFvQixXQUFHM0M7QUFBdkIsT0FBckIsQ0FBTjtBQUNILEtBSkQsQ0FJRSxPQUFPK0IsQ0FBUCxFQUFVO0FBQ1IsWUFBTSxJQUFJTixvQkFBSixDQUFZQyxnQkFBWUMsU0FBWixDQUFzQkMsU0FBbEMsRUFBNkNHLENBQUMsQ0FBQ08sT0FBL0MsQ0FBTjtBQUNIO0FBQ0o7O0FBcklpRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lIHV0aWxzXHJcbiAqIEBkZXNjcmlwdGlvbiBQcm92aWRlcyBtaXNjZWxsYW5lb3VzIHV0aWxpdHkgbWV0aG9kcy5cclxuICovXHJcblxyXG5jb25zdCBNT0RVTEVfTkFNRSA9ICd1dGlscyc7XHJcbmltcG9ydCBPeHlnZW5Nb2R1bGUgZnJvbSAnLi4vY29yZS9PeHlnZW5Nb2R1bGUnO1xyXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCBsaWJVdGlscyBmcm9tICcuLi9saWIvdXRpbCc7XHJcbmNvbnN0IGRlYXN5bmMgPSByZXF1aXJlKCdkZWFzeW5jJyk7XHJcbmltcG9ydCBPeEVycm9yIGZyb20gJy4uL2Vycm9ycy9PeHlnZW5FcnJvcic7XHJcbmltcG9ydCBlcnJvckhlbHBlciBmcm9tICcuLi9lcnJvcnMvaGVscGVyJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFV0aWxzTW9kdWxlIGV4dGVuZHMgT3h5Z2VuTW9kdWxlIHtcclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMsIGNvbnRleHQsIHJzLCBsb2dnZXIsIG1vZHVsZXMsIHNlcnZpY2VzKSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucywgY29udGV4dCwgcnMsIGxvZ2dlciwgbW9kdWxlcywgc2VydmljZXMpO1xyXG4gICAgICAgIHRoaXMuX2Fsd2F5c0luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9pc0luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgICogQHN1bW1hcnkgR2V0cyBtb2R1bGUgbmFtZVxyXG4gICAgICogQGZ1bmN0aW9uIG5hbWVcclxuICAgICAqIEByZXR1cm4ge1N0cmluZ30gQ29uc3RhbnQgdmFsdWUgXCJ1dGlsc1wiLlxyXG4gICAgICovXHJcbiAgICBnZXQgbmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gTU9EVUxFX05BTUU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBQYXVzZSB0ZXN0IGV4ZWN1dGlvbiBmb3IgdGhlIGdpdmVuIGFtb3VudCBvZiBtaWxsaXNlY29uZHMuXHJcbiAgICAgKiBAZnVuY3Rpb24gcGF1c2VcclxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBtcyAtIE1pbGxpc2Vjb25kcyB0byBwYXVzZSB0aGUgZXhlY3V0aW9uIGZvci5cclxuICAgICAqL1xyXG4gICAgcGF1c2UobXMpIHtcclxuICAgICAgICB1dGlscy5hc3NlcnRBcmd1bWVudE51bWJlck5vbk5lZ2F0aXZlKG1zLCAnbXMnKTtcclxuICAgICAgICBkZWFzeW5jLnNsZWVwKG1zKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IERlY3J5cHQgdGV4dFxyXG4gICAgICogQGZ1bmN0aW9uIGRlY3J5cHRcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0ZXh0IC0gVGV4dFxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBEZWNyeXB0UmVzdWx0IE9iamVjdCB3aXRoIGdldERlY3J5cHRSZXN1bHQgbWV0aG9kXHJcbiAgICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICAgICAqIC8vIHRvIGVuY3J5cHQgcGxhaW50ZXh0IGludG8gY2lwaGVydGV4dCBcclxuICAgICAqIGNvbnN0IGVuY3J5cHQgPSB1dGlscy5lbmNyeXB0KCdodHRwczovL3d3dy53aWtpcGVkaWEub3JnLycpO1xyXG4gICAgICogbG9nLmluZm8oZW5jcnlwdCk7IC8vIHdpbGwgcHJpbnQgYjc1N2JhMmMyZmM1MGZiYjUxMWQ1OTY4MTZjYTA2YzRmYTU2ZjRlOThjZTIyMmYzMGJjNThkNTI1MWVkNjM1ZVxyXG4gICAgICogXHJcbiAgICAgKiAvLyB0byBkZWNyeXB0IGNpcGhlcnRleHQgYW5kIHVzZSBpdCBpbiBzY3JpcHQgIFxyXG4gICAgICogY29uc3QgZGVjcnlwdCA9IHV0aWxzLmRlY3J5cHQoZW5jcnlwdCk7XHJcbiAgICAgKiBsb2cuaW5mbyhkZWNyeXB0KTsgLy8gd2lsbCBwcmludCBFTkNSWVBURURcclxuICAgICAqIFxyXG4gICAgICogd2ViLmluaXQoKTtcclxuICAgICAqIHdlYi5vcGVuKGRlY3J5cHQpOyAvLyB3aWxsIG9wZW4gaHR0cHM6Ly93d3cud2lraXBlZGlhLm9yZy9cclxuICAgICAqIFxyXG4gICAgICogLy8gdG8gZ2V0IG9yaWdpbmFsIHBsYWludGV4dCB1c2UgZ2V0RGVjcnlwdFJlc3VsdFxyXG4gICAgICogY29uc3QgdmFsdWUgPSBkZWNyeXB0LmdldERlY3J5cHRSZXN1bHQoKTtcclxuICAgICAqIGxvZy5pbmZvKHZhbHVlKTsgLy93aWxsIHByaW50IGh0dHBzOi8vd3d3Lndpa2lwZWRpYS5vcmcvXHJcbiAgICAgKi9cclxuICAgIGRlY3J5cHQodGV4dCkge1xyXG4gICAgICAgIHJldHVybiBsaWJVdGlscy5kZWNyeXB0KHRleHQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgRW5jcnlwdCB0ZXh0XHJcbiAgICAgKiBAZnVuY3Rpb24gZW5jcnlwdFxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHRleHQgLSBUZXh0XHJcbiAgICAgKiBAcmV0dXJuIHtTdHJpbmd9IEVuY3J5cHRlZCB0ZXh0XHJcbiAgICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICAgICAqIC8vIHRvIGVuY3J5cHQgcGxhaW50ZXh0IGludG8gY2lwaGVydGV4dCBcclxuICAgICAqIGNvbnN0IGVuY3J5cHQgPSB1dGlscy5lbmNyeXB0KCdodHRwczovL3d3dy53aWtpcGVkaWEub3JnLycpO1xyXG4gICAgICogbG9nLmluZm8oZW5jcnlwdCk7IC8vIHdpbGwgcHJpbnQgYjc1N2JhMmMyZmM1MGZiYjUxMWQ1OTY4MTZjYTA2YzRmYTU2ZjRlOThjZTIyMmYzMGJjNThkNTI1MWVkNjM1ZVxyXG4gICAgICogXHJcbiAgICAgKiAvLyB0byBkZWNyeXB0IGNpcGhlcnRleHQgYW5kIHVzZSBpdCBpbiBzY3JpcHQgIFxyXG4gICAgICogY29uc3QgZGVjcnlwdCA9IHV0aWxzLmRlY3J5cHQoZW5jcnlwdCk7XHJcbiAgICAgKiBsb2cuaW5mbyhkZWNyeXB0KTsgLy8gd2lsbCBwcmludCBFTkNSWVBURURcclxuICAgICAqIFxyXG4gICAgICogd2ViLmluaXQoKTtcclxuICAgICAqIHdlYi5vcGVuKGRlY3J5cHQpOyAvLyB3aWxsIG9wZW4gaHR0cHM6Ly93d3cud2lraXBlZGlhLm9yZy9cclxuICAgICAqIFxyXG4gICAgICogLy8gdG8gZ2V0IG9yaWdpbmFsIHBsYWludGV4dCB1c2UgZ2V0RGVjcnlwdFJlc3VsdFxyXG4gICAgICogY29uc3QgdmFsdWUgPSBkZWNyeXB0LmdldERlY3J5cHRSZXN1bHQoKTtcclxuICAgICAqIGxvZy5pbmZvKHZhbHVlKTsgLy93aWxsIHByaW50IGh0dHBzOi8vd3d3Lndpa2lwZWRpYS5vcmcvXHJcbiAgICAgKi9cclxuICAgIGVuY3J5cHQodGV4dCkge1xyXG4gICAgICAgIHJldHVybiBsaWJVdGlscy5lbmNyeXB0KHRleHQpO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBSZWFkcyBkYXRhIGZyb20gY3N2IGZpbGVcclxuICAgICAqIEBmdW5jdGlvbiByZWFkQ3N2XHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZmlsZVBhdGggLSBBYnNvbHV0ZSBwYXRoIHRvIGZpbGVcclxuICAgICAqIEBwYXJhbSB7T2JqZWN0PX0gb3B0aW9ucyAtIE9wdGlvbnMgKGh0dHBzOi8vY3N2LmpzLm9yZy9wYXJzZS9vcHRpb25zLylcclxuICAgICAqL1xyXG4gICAgcmVhZENzdihmaWxlUGF0aCwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgY29uc3QgcGFyc2UgPSByZXF1aXJlKCdjc3YtcGFyc2UvbGliL3N5bmMnKTtcclxuICAgICAgICB2YXIgZnMgPSByZXF1aXJlKCdmcycpO1xyXG4gICAgICAgIHZhciBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG5cclxuICAgICAgICB2YXIgZXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKTtcclxuICAgICAgICBpZiAoZXh0ICE9PSAnLmNzdicgJiYgZXh0ICE9PSAnLnR4dCcpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJyb3JIZWxwZXIuZXJyb3JDb2RlLkNTVl9FUlJPUiwgJ1Vuc3VwcG9ydGVkIGZpbGUgZXh0ZW5zaW9uOiAnICsgZXh0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBkYXRhO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGRhdGEgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGY4Jyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJvckhlbHBlci5lcnJvckNvZGUuQ1NWX0VSUk9SLCAnVW5hYmxlIHRvIHJlYWQgcGFyYW1ldGVycyBmaWxlOiAnICsgZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDU1ZzIHByb2R1Y2VkIGJ5IE9TIFggRXhjZWwgaGF2ZSBoZWFkZXIgdGVybWluYXRlZCB3aXRoIDBkMGQwYVxyXG4gICAgICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoL1xcclxcci9nLCAnXFxyJyk7XHJcblxyXG4gICAgICAgIC8vIHN0cmlwIEJPTSBmb3IgVVRGLThcclxuICAgICAgICB2YXIgYm9tID0gZmFsc2U7XHJcbiAgICAgICAgLy8gY2F0Y2hlcyAweEVGQkJCRiAoVVRGLTggQk9NKSBiZWNhdXNlIHRoZSBidWZmZXItdG8tc3RyaW5nXHJcbiAgICAgICAgLy8gY29udmVyc2lvbiB0cmFuc2xhdGVzIGl0IHRvIDB4RkVGRiAoVVRGLTE2IEJPTSlcclxuICAgICAgICBpZiAoZGF0YS5jaGFyQ29kZUF0KDApID09PSAweEZFRkYpIHtcclxuICAgICAgICAgICAgYm9tID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHZhciB0YWJsZSA9IHBhcnNlKGRhdGEsIHsgYm9tOiBib20sIGNvbHVtbnM6IHRydWUsIHRyaW06IHRydWUsIC4uLm9wdGlvbnMgfSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJvckhlbHBlci5lcnJvckNvZGUuQ1NWX0VSUk9SLCBlLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRhYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgV3JpdGVzIGRhdGEgaW50byBjc3YgZmlsZVxyXG4gICAgICogQGZ1bmN0aW9uIHdyaXRlQ3N2XHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZmlsZVBhdGggLSBBYnNvbHV0ZSBwYXRoIHRvIGZpbGVcclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGRhdGEgLSBDU1YgZGF0YSBpbiBmb3JtYXQgW3tjb2x1bW5fbmFtZV8xOiAnZm9vJywgY29sdW1uX25hbWVfMjogJ2Jhcid9XVxyXG4gICAgICogQHBhcmFtIHtPYmplY3Q9fSBvcHRpb25zIC0gT3B0aW9ucyAoaHR0cHM6Ly9naXRodWIuY29tL2FudG9uLWJvdC9vYmplY3RzLXRvLWNzdiNhc3luYy10b2Rpc2tmaWxlbmFtZS1vcHRpb25zKVxyXG4gICAgICovXHJcbiAgICBhc3luYyB3cml0ZUNzdihmaWxlUGF0aCwgZGF0YSwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgT2JqZWN0c1RvQ3N2ID0gcmVxdWlyZSgnb2JqZWN0cy10by1jc3YnKTtcclxuICAgICAgICAgICAgY29uc3QgY3N2ID0gbmV3IE9iamVjdHNUb0NzdihkYXRhKTtcclxuICAgICAgICAgICAgYXdhaXQgY3N2LnRvRGlzayhmaWxlUGF0aCwgeyBhbGxDb2x1bW5zOiB0cnVlLCAuLi5vcHRpb25zIH0pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJyb3JIZWxwZXIuZXJyb3JDb2RlLkNTVl9FUlJPUiwgZS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
|
|
235
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS11dGlscy5qcyJdLCJuYW1lcyI6WyJNT0RVTEVfTkFNRSIsIlV0aWxzTW9kdWxlIiwiT3h5Z2VuTW9kdWxlIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiY29udGV4dCIsInJzIiwibG9nZ2VyIiwibW9kdWxlcyIsInNlcnZpY2VzIiwiX2Fsd2F5c0luaXRpYWxpemVkIiwiX2lzSW5pdGlhbGl6ZWQiLCJuYW1lIiwicGF1c2UiLCJtcyIsInV0aWxzIiwiYXNzZXJ0QXJndW1lbnROdW1iZXJOb25OZWdhdGl2ZSIsImxpYlV0aWxzIiwic2xlZXAiLCJkZWNyeXB0IiwidGV4dCIsImVuY3J5cHQiLCJyZWFkQ3N2IiwiZmlsZVBhdGgiLCJwYXJzZSIsInJlcXVpcmUiLCJmcyIsInBhdGgiLCJleHQiLCJleHRuYW1lIiwiT3hFcnJvciIsImVycm9ySGVscGVyIiwiZXJyb3JDb2RlIiwiQ1NWX0VSUk9SIiwiZGF0YSIsInJlYWRGaWxlU3luYyIsImUiLCJyZXBsYWNlIiwiYm9tIiwiY2hhckNvZGVBdCIsInRhYmxlIiwiY29sdW1ucyIsInRyaW0iLCJtZXNzYWdlIiwid3JpdGVDc3YiLCJPYmplY3RzVG9Dc3YiLCJjc3YiLCJ0b0Rpc2siLCJhbGxDb2x1bW5zIiwicmVhZFhsc3giLCJyZWFkZXIiLCJFeGNlbFJlYWRlciIsInJlYWQiLCJkbnNSZXNvbHZlIiwiaG9zdG5hbWUiLCJyclR5cGUiLCJhc3NlcnRBcmd1bWVudE5vbkVtcHR5U3RyaW5nIiwicnJUeXBlcyIsImluY2x1ZGVzIiwiU0NSSVBUX0VSUk9SIiwiam9pbiIsImRuc1Byb21pc2VzIiwicHJvbWlzZXMiLCJyZXNvbHZlIiwiRE5TX0VSUk9SIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFlQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQXBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFD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QTtBQUNBOzs7QUFDb0IsUUFBVjhCLFVBQVUsQ0FBQ0MsUUFBRCxFQUFXQyxNQUFNLEdBQUcsR0FBcEIsRUFBeUI7QUFDckN4QyxtQkFBTXlDLDRCQUFOLENBQW1DRixRQUFuQyxFQUE2QyxVQUE3Qzs7QUFDQSxVQUFNRyxPQUFPLEdBQUcsQ0FBQyxHQUFELEVBQU0sTUFBTixFQUFjLEtBQWQsRUFBcUIsT0FBckIsRUFBOEIsSUFBOUIsRUFBb0MsT0FBcEMsRUFBNkMsSUFBN0MsRUFBbUQsS0FBbkQsRUFBMEQsS0FBMUQsRUFBaUUsS0FBakUsRUFBd0UsS0FBeEUsQ0FBaEI7O0FBRUEsUUFBSSxDQUFDQSxPQUFPLENBQUNDLFFBQVIsQ0FBaUJILE1BQWpCLENBQUwsRUFBK0I7QUFDM0IsWUFBTSxJQUFJekIsb0JBQUosQ0FBWUMsZ0JBQVlDLFNBQVosQ0FBc0IyQixZQUFsQyxFQUFpRCx5REFBd0RGLE9BQU8sQ0FBQ0csSUFBUixDQUFhLElBQWIsQ0FBbUIsRUFBNUgsQ0FBTjtBQUNIOztBQUVELFVBQU1DLFdBQVcsR0FBR3BDLE9BQU8sQ0FBQyxLQUFELENBQVAsQ0FBZXFDLFFBQW5DOztBQUNBLFFBQUk7QUFDQSxhQUFPLE1BQU1ELFdBQVcsQ0FBQ0UsT0FBWixDQUFvQlQsUUFBcEIsRUFBOEJDLE1BQTlCLENBQWI7QUFDSCxLQUZELENBRUUsT0FBT25CLENBQVAsRUFBVTtBQUNSLFlBQU0sSUFBSU4sb0JBQUosQ0FBWUMsZ0JBQVlDLFNBQVosQ0FBc0JnQyxTQUFsQyxFQUE2QzVCLENBQUMsQ0FBQ08sT0FBL0MsQ0FBTjtBQUNIO0FBQ0o7O0FBdktpRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lIHV0aWxzXHJcbiAqIEBkZXNjcmlwdGlvbiBQcm92aWRlcyBtaXNjZWxsYW5lb3VzIHV0aWxpdHkgbWV0aG9kcy5cclxuICovXHJcblxyXG5jb25zdCBNT0RVTEVfTkFNRSA9ICd1dGlscyc7XHJcbmltcG9ydCBPeHlnZW5Nb2R1bGUgZnJvbSAnLi4vY29yZS9PeHlnZW5Nb2R1bGUnO1xyXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCBsaWJVdGlscyBmcm9tICcuLi9saWIvdXRpbCc7XHJcbmltcG9ydCBPeEVycm9yIGZyb20gJy4uL2Vycm9ycy9PeHlnZW5FcnJvcic7XHJcbmltcG9ydCBlcnJvckhlbHBlciBmcm9tICcuLi9lcnJvcnMvaGVscGVyJztcclxuaW1wb3J0IEV4Y2VsUmVhZGVyIGZyb20gJy4uL2xpYi9wYXJhbS1yZWFkZXItZXhjZWwnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVXRpbHNNb2R1bGUgZXh0ZW5kcyBPeHlnZW5Nb2R1bGUge1xyXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucywgY29udGV4dCwgcnMsIGxvZ2dlciwgbW9kdWxlcywgc2VydmljZXMpIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zLCBjb250ZXh0LCBycywgbG9nZ2VyLCBtb2R1bGVzLCBzZXJ2aWNlcyk7XHJcbiAgICAgICAgdGhpcy5fYWx3YXlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgKiBAc3VtbWFyeSBHZXRzIG1vZHVsZSBuYW1lXHJcbiAgICAgKiBAZnVuY3Rpb24gbmFtZVxyXG4gICAgICogQHJldHVybiB7U3RyaW5nfSBDb25zdGFudCB2YWx1ZSBcInV0aWxzXCIuXHJcbiAgICAgKi9cclxuICAgIGdldCBuYW1lKCkge1xyXG4gICAgICAgIHJldHVybiBNT0RVTEVfTkFNRTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFBhdXNlIHRlc3QgZXhlY3V0aW9uIGZvciB0aGUgZ2l2ZW4gYW1vdW50IG9mIG1pbGxpc2Vjb25kcy5cclxuICAgICAqIEBmdW5jdGlvbiBwYXVzZVxyXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IG1zIC0gTWlsbGlzZWNvbmRzIHRvIHBhdXNlIHRoZSBleGVjdXRpb24gZm9yLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBwYXVzZShtcykge1xyXG4gICAgICAgIHV0aWxzLmFzc2VydEFyZ3VtZW50TnVtYmVyTm9uTmVnYXRpdmUobXMsICdtcycpO1xyXG4gICAgICAgIGF3YWl0IGxpYlV0aWxzLnNsZWVwKG1zKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IERlY3J5cHQgdGV4dFxyXG4gICAgICogQGZ1bmN0aW9uIGRlY3J5cHRcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0ZXh0IC0gVGV4dFxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBEZWNyeXB0UmVzdWx0IE9iamVjdCB3aXRoIGdldERlY3J5cHRSZXN1bHQgbWV0aG9kXHJcbiAgICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICAgICAqIC8vIHRvIGVuY3J5cHQgcGxhaW50ZXh0IGludG8gY2lwaGVydGV4dCBcclxuICAgICAqIGNvbnN0IGVuY3J5cHQgPSB1dGlscy5lbmNyeXB0KCdodHRwczovL3d3dy53aWtpcGVkaWEub3JnLycpO1xyXG4gICAgICogbG9nLmluZm8oZW5jcnlwdCk7IC8vIHdpbGwgcHJpbnQgYjc1N2JhMmMyZmM1MGZiYjUxMWQ1OTY4MTZjYTA2YzRmYTU2ZjRlOThjZTIyMmYzMGJjNThkNTI1MWVkNjM1ZVxyXG4gICAgICogXHJcbiAgICAgKiAvLyB0byBkZWNyeXB0IGNpcGhlcnRleHQgYW5kIHVzZSBpdCBpbiBzY3JpcHQgIFxyXG4gICAgICogY29uc3QgZGVjcnlwdCA9IHV0aWxzLmRlY3J5cHQoZW5jcnlwdCk7XHJcbiAgICAgKiBsb2cuaW5mbyhkZWNyeXB0KTsgLy8gd2lsbCBwcmludCBFTkNSWVBURURcclxuICAgICAqIFxyXG4gICAgICogd2ViLmluaXQoKTtcclxuICAgICAqIHdlYi5vcGVuKGRlY3J5cHQpOyAvLyB3aWxsIG9wZW4gaHR0cHM6Ly93d3cud2lraXBlZGlhLm9yZy9cclxuICAgICAqIFxyXG4gICAgICogLy8gdG8gZ2V0IG9yaWdpbmFsIHBsYWludGV4dCB1c2UgZ2V0RGVjcnlwdFJlc3VsdFxyXG4gICAgICogY29uc3QgdmFsdWUgPSBkZWNyeXB0LmdldERlY3J5cHRSZXN1bHQoKTtcclxuICAgICAqIGxvZy5pbmZvKHZhbHVlKTsgLy93aWxsIHByaW50IGh0dHBzOi8vd3d3Lndpa2lwZWRpYS5vcmcvXHJcbiAgICAgKi9cclxuICAgIGRlY3J5cHQodGV4dCkge1xyXG4gICAgICAgIHJldHVybiBsaWJVdGlscy5kZWNyeXB0KHRleHQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgRW5jcnlwdCB0ZXh0XHJcbiAgICAgKiBAZnVuY3Rpb24gZW5jcnlwdFxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHRleHQgLSBUZXh0XHJcbiAgICAgKiBAcmV0dXJuIHtTdHJpbmd9IEVuY3J5cHRlZCB0ZXh0XHJcbiAgICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICAgICAqIC8vIHRvIGVuY3J5cHQgcGxhaW50ZXh0IGludG8gY2lwaGVydGV4dCBcclxuICAgICAqIGNvbnN0IGVuY3J5cHQgPSB1dGlscy5lbmNyeXB0KCdodHRwczovL3d3dy53aWtpcGVkaWEub3JnLycpO1xyXG4gICAgICogbG9nLmluZm8oZW5jcnlwdCk7IC8vIHdpbGwgcHJpbnQgYjc1N2JhMmMyZmM1MGZiYjUxMWQ1OTY4MTZjYTA2YzRmYTU2ZjRlOThjZTIyMmYzMGJjNThkNTI1MWVkNjM1ZVxyXG4gICAgICogXHJcbiAgICAgKiAvLyB0byBkZWNyeXB0IGNpcGhlcnRleHQgYW5kIHVzZSBpdCBpbiBzY3JpcHQgIFxyXG4gICAgICogY29uc3QgZGVjcnlwdCA9IHV0aWxzLmRlY3J5cHQoZW5jcnlwdCk7XHJcbiAgICAgKiBsb2cuaW5mbyhkZWNyeXB0KTsgLy8gd2lsbCBwcmludCBFTkNSWVBURURcclxuICAgICAqIFxyXG4gICAgICogd2ViLmluaXQoKTtcclxuICAgICAqIHdlYi5vcGVuKGRlY3J5cHQpOyAvLyB3aWxsIG9wZW4gaHR0cHM6Ly93d3cud2lraXBlZGlhLm9yZy9cclxuICAgICAqIFxyXG4gICAgICogLy8gdG8gZ2V0IG9yaWdpbmFsIHBsYWludGV4dCB1c2UgZ2V0RGVjcnlwdFJlc3VsdFxyXG4gICAgICogY29uc3QgdmFsdWUgPSBkZWNyeXB0LmdldERlY3J5cHRSZXN1bHQoKTtcclxuICAgICAqIGxvZy5pbmZvKHZhbHVlKTsgLy93aWxsIHByaW50IGh0dHBzOi8vd3d3Lndpa2lwZWRpYS5vcmcvXHJcbiAgICAgKi9cclxuICAgIGVuY3J5cHQodGV4dCkge1xyXG4gICAgICAgIHJldHVybiBsaWJVdGlscy5lbmNyeXB0KHRleHQpO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBSZWFkcyBkYXRhIGZyb20gY3N2IGZpbGVcclxuICAgICAqIEBmdW5jdGlvbiByZWFkQ3N2XHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZmlsZVBhdGggLSBBYnNvbHV0ZSBwYXRoIHRvIGZpbGVcclxuICAgICAqIEBwYXJhbSB7T2JqZWN0PX0gb3B0aW9ucyAtIE9wdGlvbnMgKGh0dHBzOi8vY3N2LmpzLm9yZy9wYXJzZS9vcHRpb25zLylcclxuICAgICAqL1xyXG4gICAgcmVhZENzdihmaWxlUGF0aCwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgY29uc3QgcGFyc2UgPSByZXF1aXJlKCdjc3YtcGFyc2UvbGliL3N5bmMnKTtcclxuICAgICAgICB2YXIgZnMgPSByZXF1aXJlKCdmcycpO1xyXG4gICAgICAgIHZhciBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG5cclxuICAgICAgICB2YXIgZXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKTtcclxuICAgICAgICBpZiAoZXh0ICE9PSAnLmNzdicgJiYgZXh0ICE9PSAnLnR4dCcpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJyb3JIZWxwZXIuZXJyb3JDb2RlLkNTVl9FUlJPUiwgJ1Vuc3VwcG9ydGVkIGZpbGUgZXh0ZW5zaW9uOiAnICsgZXh0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBkYXRhO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGRhdGEgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGY4Jyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJvckhlbHBlci5lcnJvckNvZGUuQ1NWX0VSUk9SLCAnVW5hYmxlIHRvIHJlYWQgcGFyYW1ldGVycyBmaWxlOiAnICsgZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDU1ZzIHByb2R1Y2VkIGJ5IE9TIFggRXhjZWwgaGF2ZSBoZWFkZXIgdGVybWluYXRlZCB3aXRoIDBkMGQwYVxyXG4gICAgICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoL1xcclxcci9nLCAnXFxyJyk7XHJcblxyXG4gICAgICAgIC8vIHN0cmlwIEJPTSBmb3IgVVRGLThcclxuICAgICAgICB2YXIgYm9tID0gZmFsc2U7XHJcbiAgICAgICAgLy8gY2F0Y2hlcyAweEVGQkJCRiAoVVRGLTggQk9NKSBiZWNhdXNlIHRoZSBidWZmZXItdG8tc3RyaW5nXHJcbiAgICAgICAgLy8gY29udmVyc2lvbiB0cmFuc2xhdGVzIGl0IHRvIDB4RkVGRiAoVVRGLTE2IEJPTSlcclxuICAgICAgICBpZiAoZGF0YS5jaGFyQ29kZUF0KDApID09PSAweEZFRkYpIHtcclxuICAgICAgICAgICAgYm9tID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHZhciB0YWJsZSA9IHBhcnNlKGRhdGEsIHsgYm9tOiBib20sIGNvbHVtbnM6IHRydWUsIHRyaW06IHRydWUsIC4uLm9wdGlvbnMgfSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJvckhlbHBlci5lcnJvckNvZGUuQ1NWX0VSUk9SLCBlLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRhYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgV3JpdGVzIGRhdGEgaW50byBjc3YgZmlsZVxyXG4gICAgICogQGZ1bmN0aW9uIHdyaXRlQ3N2XHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZmlsZVBhdGggLSBBYnNvbHV0ZSBwYXRoIHRvIGZpbGVcclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGRhdGEgLSBDU1YgZGF0YSBpbiBmb3JtYXQgW3tjb2x1bW5fbmFtZV8xOiAnZm9vJywgY29sdW1uX25hbWVfMjogJ2Jhcid9XVxyXG4gICAgICogQHBhcmFtIHtPYmplY3Q9fSBvcHRpb25zIC0gT3B0aW9ucyAoaHR0cHM6Ly9naXRodWIuY29tL2FudG9uLWJvdC9vYmplY3RzLXRvLWNzdiNhc3luYy10b2Rpc2tmaWxlbmFtZS1vcHRpb25zKVxyXG4gICAgICovXHJcbiAgICBhc3luYyB3cml0ZUNzdihmaWxlUGF0aCwgZGF0YSwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgT2JqZWN0c1RvQ3N2ID0gcmVxdWlyZSgnb2JqZWN0cy10by1jc3YnKTtcclxuICAgICAgICAgICAgY29uc3QgY3N2ID0gbmV3IE9iamVjdHNUb0NzdihkYXRhKTtcclxuICAgICAgICAgICAgYXdhaXQgY3N2LnRvRGlzayhmaWxlUGF0aCwgeyBhbGxDb2x1bW5zOiB0cnVlLCAuLi5vcHRpb25zIH0pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJyb3JIZWxwZXIuZXJyb3JDb2RlLkNTVl9FUlJPUiwgZS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBSZWFkcyBkYXRhIGZyb20gWGxzeCBmaWxlXHJcbiAgICAgKiBAZnVuY3Rpb24gcmVhZFhsc3hcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBmaWxlUGF0aCAtIEFic29sdXRlIHBhdGggdG8gZmlsZVxyXG4gICAgICogQHJldHVybiB7QXJyYXl9IC0gQXJyYXkgb2YgeGxzeCBkYXRhXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHJlYWRYbHN4KGZpbGVQYXRoKSB7XHJcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEV4Y2VsUmVhZGVyKCk7XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHJlYWRlci5yZWFkKGZpbGVQYXRoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFVzZXMgdGhlIEROUyBwcm90b2NvbCB0byByZXNvbHZlIGEgaG9zdCBuYW1lXHJcbiAgICAgKiBAZnVuY3Rpb24gZG5zUmVzb2x2ZVxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGhvc3RuYW1lIC0gSG9zdCBuYW1lIHRvIHJlc29sdmUuXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZz19IHJyVHlwZSAtIFJlc291cmNlIHJlY29yZCB0eXBlLiBEZWZhdWx0OiAnQScuXHJcbiAgICAgKiBAcmV0dXJuIHtTdHJpbmdbXSB8IE9iamVjdH0gLSBBcnJheSBvciBPYmplY3Qgb2YgcmVzb3VyY2UgcmVjb3Jkcy4gVGhlIHR5cGUgYW5kIHN0cnVjdHVyZSBvZiBpbmRpdmlkdWFsIHJlc3VsdHMgdmFyeSBiYXNlZCBvbiBycnR5cGVcclxuICAgICAqL1xyXG4gICAgYXN5bmMgZG5zUmVzb2x2ZShob3N0bmFtZSwgcnJUeXBlID0gJ0EnKSB7XHJcbiAgICAgICAgdXRpbHMuYXNzZXJ0QXJndW1lbnROb25FbXB0eVN0cmluZyhob3N0bmFtZSwgJ2hvc3RuYW1lJyk7XHJcbiAgICAgICAgY29uc3QgcnJUeXBlcyA9IFsnQScsICdBQUFBJywgJ0FOWScsICdDTkFNRScsICdNWCcsICdOQVBUUicsICdOUycsICdQVFInLCAnU09BJywgJ1NSVicsICdUWFQnXTtcclxuXHJcbiAgICAgICAgaWYgKCFyclR5cGVzLmluY2x1ZGVzKHJyVHlwZSkpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJyb3JIZWxwZXIuZXJyb3JDb2RlLlNDUklQVF9FUlJPUiwgYEludmFsaWQgYXJndW1lbnQgLSAncnJUeXBlJy4gQXZhaWxhYmxlIHJyVHlwZSB2YWx1ZXM6ICR7cnJUeXBlcy5qb2luKCcsICcpfWApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZG5zUHJvbWlzZXMgPSByZXF1aXJlKCdkbnMnKS5wcm9taXNlcztcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgZG5zUHJvbWlzZXMucmVzb2x2ZShob3N0bmFtZSwgcnJUeXBlKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVycm9ySGVscGVyLmVycm9yQ29kZS5ETlNfRVJST1IsIGUubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
|