clientnode 4.0.1436 → 4.0.1438
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/dist/Lock.js +83 -94
- package/dist/Logger.js +163 -715
- package/dist/Semaphore.js +46 -81
- package/dist/array.js +337 -568
- package/dist/cli.js +37 -71
- package/dist/constants.js +110 -209
- package/dist/context.js +25 -229
- package/dist/cookie.js +48 -226
- package/dist/data-transfer.js +166 -725
- package/dist/datetime.js +241 -1059
- package/dist/domNode.js +277 -441
- package/dist/expression/evaluators.js +234 -1112
- package/dist/expression/helper.js +82 -135
- package/dist/expression/index.js +10 -1245
- package/dist/expression/indicator-functions.js +21 -239
- package/dist/expression/type.js +4 -34
- package/dist/filesystem.js +323 -309
- package/dist/function.js +51 -125
- package/dist/index.js +26 -2709
- package/dist/indicators.js +68 -440
- package/dist/module.js +98 -163
- package/dist/number.js +25 -423
- package/dist/object.js +774 -852
- package/dist/process.js +38 -245
- package/dist/property-types.js +96 -157
- package/dist/scope.js +56 -1825
- package/dist/string.js +603 -909
- package/dist/test-helper.js +171 -541
- package/dist/type.js +8 -37
- package/dist/utility.js +91 -336
- package/package.json +9 -10
- package/dist/Lock.d.ts +0 -39
- package/dist/Logger.d.ts +0 -102
- package/dist/Semaphore.d.ts +0 -29
- package/dist/array.d.ts +0 -150
- package/dist/bundle/Lock.js +0 -111
- package/dist/bundle/Logger.js +0 -705
- package/dist/bundle/Semaphore.js +0 -100
- package/dist/bundle/array.js +0 -648
- package/dist/bundle/cli.js +0 -85
- package/dist/bundle/constants.js +0 -225
- package/dist/bundle/context.js +0 -243
- package/dist/bundle/cookie.js +0 -262
- package/dist/bundle/data-transfer.js +0 -741
- package/dist/bundle/datetime.js +0 -1064
- package/dist/bundle/domNode.js +0 -471
- package/dist/bundle/expression/evaluators.js +0 -1115
- package/dist/bundle/expression/helper.js +0 -106
- package/dist/bundle/expression/index.js +0 -1223
- package/dist/bundle/expression/indicator-functions.js +0 -235
- package/dist/bundle/expression/type.js +0 -50
- package/dist/bundle/filesystem.js +0 -374
- package/dist/bundle/function.js +0 -105
- package/dist/bundle/index.js +0 -2686
- package/dist/bundle/indicators.js +0 -459
- package/dist/bundle/module.js +0 -180
- package/dist/bundle/number.js +0 -425
- package/dist/bundle/object.js +0 -1004
- package/dist/bundle/process.js +0 -275
- package/dist/bundle/property-types.js +0 -167
- package/dist/bundle/scope.js +0 -1808
- package/dist/bundle/string.js +0 -1095
- package/dist/bundle/test-helper.js +0 -690
- package/dist/bundle/type.js +0 -50
- package/dist/bundle/utility.js +0 -362
- package/dist/cli.d.ts +0 -31
- package/dist/compatible/Lock.js +0 -111
- package/dist/compatible/Logger.js +0 -705
- package/dist/compatible/Semaphore.js +0 -100
- package/dist/compatible/array.js +0 -648
- package/dist/compatible/cli.js +0 -85
- package/dist/compatible/constants.js +0 -225
- package/dist/compatible/context.js +0 -243
- package/dist/compatible/cookie.js +0 -262
- package/dist/compatible/data-transfer.js +0 -741
- package/dist/compatible/datetime.js +0 -1064
- package/dist/compatible/domNode.js +0 -471
- package/dist/compatible/expression/evaluators.js +0 -1115
- package/dist/compatible/expression/helper.js +0 -106
- package/dist/compatible/expression/index.js +0 -1223
- package/dist/compatible/expression/indicator-functions.js +0 -235
- package/dist/compatible/expression/type.js +0 -50
- package/dist/compatible/filesystem.js +0 -374
- package/dist/compatible/function.js +0 -105
- package/dist/compatible/index.js +0 -2686
- package/dist/compatible/indicators.js +0 -459
- package/dist/compatible/module.js +0 -180
- package/dist/compatible/number.js +0 -425
- package/dist/compatible/object.js +0 -1004
- package/dist/compatible/process.js +0 -275
- package/dist/compatible/property-types.js +0 -167
- package/dist/compatible/scope.js +0 -1808
- package/dist/compatible/string.js +0 -1095
- package/dist/compatible/test-helper.js +0 -690
- package/dist/compatible/type.js +0 -50
- package/dist/compatible/utility.js +0 -362
- package/dist/constants.d.ts +0 -99
- package/dist/context.d.ts +0 -8
- package/dist/cookie.d.ts +0 -31
- package/dist/data-transfer.d.ts +0 -45
- package/dist/datetime.d.ts +0 -37
- package/dist/domNode.d.ts +0 -82
- package/dist/expression/evaluators.d.ts +0 -55
- package/dist/expression/helper.d.ts +0 -4
- package/dist/expression/index.d.ts +0 -7
- package/dist/expression/indicator-functions.d.ts +0 -14
- package/dist/expression/type.d.ts +0 -70
- package/dist/filesystem.d.ts +0 -143
- package/dist/function.d.ts +0 -20
- package/dist/index.d.ts +0 -23
- package/dist/indicators.d.ts +0 -68
- package/dist/module.d.ts +0 -8
- package/dist/number.d.ts +0 -35
- package/dist/object.d.ts +0 -231
- package/dist/process.d.ts +0 -22
- package/dist/property-types.d.ts +0 -460
- package/dist/scope.d.ts +0 -44
- package/dist/string.d.ts +0 -312
- package/dist/test/Lock.d.ts +0 -1
- package/dist/test/Logger.d.ts +0 -1
- package/dist/test/Semaphore.d.ts +0 -1
- package/dist/test/array.d.ts +0 -1
- package/dist/test/cookie.d.ts +0 -1
- package/dist/test/data-transfer.d.ts +0 -1
- package/dist/test/datetime.d.ts +0 -1
- package/dist/test/domNode.d.ts +0 -1
- package/dist/test/expression/evaluators.d.ts +0 -1
- package/dist/test/expression/helper.d.ts +0 -1
- package/dist/test/expression/indicator-functions.d.ts +0 -1
- package/dist/test/filesystem.d.ts +0 -1
- package/dist/test/function.d.ts +0 -1
- package/dist/test/indicators.d.ts +0 -1
- package/dist/test/number.d.ts +0 -1
- package/dist/test/object.d.ts +0 -1
- package/dist/test/process.d.ts +0 -1
- package/dist/test/property-types.d.ts +0 -1
- package/dist/test/scope.d.ts +0 -1
- package/dist/test/string.d.ts +0 -1
- package/dist/test/utility.d.ts +0 -1
- package/dist/test-helper.d.ts +0 -143
- package/dist/type.d.ts +0 -230
- package/dist/utility.d.ts +0 -44
package/dist/module.js
CHANGED
|
@@ -1,34 +1,9 @@
|
|
|
1
|
-
'use strict';if(typeof module!=='undefined'&&module!==null&&eval('typeof require')!=='undefined'&&eval('require')!==null&&'main'in eval('require')&&eval('typeof require.main')!=='undefined'&&eval('require.main')!==null){var ORIGINAL_MAIN_MODULE=module;if(module!==eval('require.main')&&'paths'in module&&'paths'in eval('require.main')&&typeof __dirname!=='undefined'&&__dirname!==null)module.paths=eval('require.main.paths').concat(module.paths.filter(function(path){return eval('require.main.paths').includes(path)}))};if(typeof window==='undefined'||window===null)var window=(typeof global==='undefined'||global===null)?{}:global;(function webpackUniversalModuleDefinition(root, factory) {
|
|
2
|
-
if(typeof exports === 'object' && typeof module === 'object')
|
|
3
|
-
module.exports = factory();
|
|
4
|
-
else if(typeof define === 'function' && define.amd)
|
|
5
|
-
define([], factory);
|
|
6
|
-
else {
|
|
7
|
-
var a = factory();
|
|
8
|
-
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
|
|
9
|
-
}
|
|
10
|
-
})(this, function() {
|
|
11
|
-
return /******/ (function() { // webpackBootstrap
|
|
12
|
-
/******/ var __webpack_modules__ = ({
|
|
13
|
-
|
|
14
|
-
/***/ 2:
|
|
15
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
16
|
-
|
|
17
|
-
"use strict";
|
|
18
|
-
__webpack_require__.r(__webpack_exports__);
|
|
19
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
20
|
-
/* harmony export */ clearRequireCache: function() { return /* binding */ clearRequireCache; },
|
|
21
|
-
/* harmony export */ currentRequire: function() { return /* binding */ currentRequire; },
|
|
22
|
-
/* harmony export */ determineGlobalContext: function() { return /* binding */ determineGlobalContext; },
|
|
23
|
-
/* harmony export */ isImportSyntaxSupported: function() { return /* binding */ isImportSyntaxSupported; },
|
|
24
|
-
/* harmony export */ isolatedRequire: function() { return /* binding */ isolatedRequire; },
|
|
25
|
-
/* harmony export */ optionalImport: function() { return /* binding */ optionalImport; },
|
|
26
|
-
/* harmony export */ optionalRequire: function() { return /* binding */ optionalRequire; }
|
|
27
|
-
/* harmony export */ });
|
|
28
|
-
/* module decorator */ module = __webpack_require__.hmd(module);
|
|
29
1
|
// #!/usr/bin/env babel-node
|
|
30
2
|
// -*- coding: utf-8 -*-
|
|
31
|
-
/** @module module
|
|
3
|
+
/** @module module */
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
/* !
|
|
32
7
|
region header
|
|
33
8
|
[Project page](https://torben.website/clientnode)
|
|
34
9
|
|
|
@@ -41,140 +16,100 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
41
16
|
naming 3.0 unported license.
|
|
42
17
|
See https://creativecommons.org/licenses/by/3.0/deed.de
|
|
43
18
|
endregion
|
|
44
|
-
*/
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
19
|
+
*/
|
|
20
|
+
export const determineGlobalContext = () => {
|
|
21
|
+
if (typeof globalThis === 'undefined') {
|
|
22
|
+
if (typeof window === 'undefined') {
|
|
23
|
+
if (typeof global === 'undefined') return typeof module === 'undefined' ? {} : module;
|
|
24
|
+
if (Object.prototype.hasOwnProperty.call(global, 'window')) return global.window;
|
|
25
|
+
return global;
|
|
26
|
+
}
|
|
27
|
+
return window;
|
|
28
|
+
}
|
|
29
|
+
return globalThis;
|
|
30
|
+
};
|
|
31
|
+
const globalContext = determineGlobalContext();
|
|
49
32
|
|
|
50
|
-
|
|
33
|
+
// Make preprocessed import function available at runtime.
|
|
34
|
+
export const isImportSyntaxSupported = () => {
|
|
35
|
+
try {
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
37
|
+
new Function('import("data:text/javascript,")');
|
|
38
|
+
return true;
|
|
39
|
+
} catch {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
51
43
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
44
|
+
// Make preprocessed require function available at runtime.
|
|
45
|
+
let customRequire = typeof globalContext.require === 'undefined' ? null : globalContext.require;
|
|
46
|
+
if (!customRequire && isImportSyntaxSupported()) try {
|
|
47
|
+
const {
|
|
48
|
+
createRequire
|
|
49
|
+
} =
|
|
50
|
+
/*
|
|
51
|
+
eslint-disable
|
|
52
|
+
@typescript-eslint/no-implied-eval,
|
|
53
|
+
@typescript-eslint/no-unsafe-call
|
|
54
|
+
*/
|
|
55
|
+
await new Function('return import("node:module")')();
|
|
56
|
+
/*
|
|
57
|
+
eslint-enable
|
|
58
|
+
@typescript-eslint/no-implied-eval,
|
|
59
|
+
@typescript-eslint/no-unsafe-call
|
|
60
|
+
*/
|
|
61
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
62
|
+
customRequire = createRequire(import.meta.url);
|
|
63
|
+
} catch {
|
|
64
|
+
// Ignore error.
|
|
59
65
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
/******/ if(binding === 0) {
|
|
111
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, value: definition[i++] });
|
|
112
|
-
/******/ } else {
|
|
113
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, get: binding });
|
|
114
|
-
/******/ }
|
|
115
|
-
/******/ } else if(binding === 0) { i++; }
|
|
116
|
-
/******/ }
|
|
117
|
-
/******/ } else {
|
|
118
|
-
/******/ for(var key in definition) {
|
|
119
|
-
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
120
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
121
|
-
/******/ }
|
|
122
|
-
/******/ }
|
|
123
|
-
/******/ }
|
|
124
|
-
/******/ };
|
|
125
|
-
/******/ }();
|
|
126
|
-
/******/
|
|
127
|
-
/******/ /* webpack/runtime/global */
|
|
128
|
-
/******/ !function() {
|
|
129
|
-
/******/ __webpack_require__.g = (function() {
|
|
130
|
-
/******/ if (typeof globalThis === 'object') return globalThis;
|
|
131
|
-
/******/ try {
|
|
132
|
-
/******/ return this || new Function('return this')();
|
|
133
|
-
/******/ } catch (e) {
|
|
134
|
-
/******/ if (typeof window === 'object') return window;
|
|
135
|
-
/******/ }
|
|
136
|
-
/******/ })();
|
|
137
|
-
/******/ }();
|
|
138
|
-
/******/
|
|
139
|
-
/******/ /* webpack/runtime/harmony module decorator */
|
|
140
|
-
/******/ !function() {
|
|
141
|
-
/******/ __webpack_require__.hmd = function(module) {
|
|
142
|
-
/******/ module = Object.create(module);
|
|
143
|
-
/******/ if (!module.children) module.children = [];
|
|
144
|
-
/******/ Object.defineProperty(module, 'exports', {
|
|
145
|
-
/******/ enumerable: true,
|
|
146
|
-
/******/ set: function() {
|
|
147
|
-
/******/ throw new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);
|
|
148
|
-
/******/ }
|
|
149
|
-
/******/ });
|
|
150
|
-
/******/ return module;
|
|
151
|
-
/******/ };
|
|
152
|
-
/******/ }();
|
|
153
|
-
/******/
|
|
154
|
-
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
155
|
-
/******/ !function() {
|
|
156
|
-
/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
|
|
157
|
-
/******/ }();
|
|
158
|
-
/******/
|
|
159
|
-
/******/ /* webpack/runtime/make namespace object */
|
|
160
|
-
/******/ !function() {
|
|
161
|
-
/******/ // define __esModule on exports
|
|
162
|
-
/******/ __webpack_require__.r = function(exports) {
|
|
163
|
-
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
164
|
-
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
165
|
-
/******/ }
|
|
166
|
-
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
167
|
-
/******/ };
|
|
168
|
-
/******/ }();
|
|
169
|
-
/******/
|
|
170
|
-
/************************************************************************/
|
|
171
|
-
/******/
|
|
172
|
-
/******/ // module cache are used so entry inlining is disabled
|
|
173
|
-
/******/ // startup
|
|
174
|
-
/******/ // Load entry module and return exports
|
|
175
|
-
/******/ var __webpack_exports__ = __webpack_require__(2);
|
|
176
|
-
/******/
|
|
177
|
-
/******/ return __webpack_exports__;
|
|
178
|
-
/******/ })()
|
|
179
|
-
;
|
|
180
|
-
});
|
|
66
|
+
export const currentRequire = customRequire;
|
|
67
|
+
export const optionalRequire = id => {
|
|
68
|
+
try {
|
|
69
|
+
return currentRequire ? currentRequire(id) : null;
|
|
70
|
+
} catch {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
export const clearRequireCache = (cache = currentRequire?.cache || require.cache) => {
|
|
75
|
+
const backup = {};
|
|
76
|
+
for (const [key, module] of Object.entries(cache)) {
|
|
77
|
+
backup[key] = module;
|
|
78
|
+
delete cache[key];
|
|
79
|
+
}
|
|
80
|
+
return backup;
|
|
81
|
+
};
|
|
82
|
+
const restoreRequireCache = (cache = currentRequire?.cache || require.cache, backup) => {
|
|
83
|
+
clearRequireCache();
|
|
84
|
+
for (const [key, module] of Object.entries(backup)) cache[key] = module;
|
|
85
|
+
};
|
|
86
|
+
export const isolatedRequire = (path, requireFunction = currentRequire || require) => {
|
|
87
|
+
const backup = clearRequireCache(requireFunction.cache);
|
|
88
|
+
try {
|
|
89
|
+
return requireFunction(path);
|
|
90
|
+
// eslint-disable-next-line no-useless-catch
|
|
91
|
+
} catch (error) {
|
|
92
|
+
throw error;
|
|
93
|
+
} finally {
|
|
94
|
+
restoreRequireCache(requireFunction.cache, backup);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
export const optionalImport = async (id, options = {}) => {
|
|
98
|
+
try {
|
|
99
|
+
return isImportSyntaxSupported() ?
|
|
100
|
+
/*
|
|
101
|
+
eslint-disable
|
|
102
|
+
@typescript-eslint/no-implied-eval,
|
|
103
|
+
@typescript-eslint/no-unsafe-call
|
|
104
|
+
*/
|
|
105
|
+
await new Function('options', `return import('${id}', options)`)(options) : await Promise.resolve(null);
|
|
106
|
+
/*
|
|
107
|
+
eslint-enable
|
|
108
|
+
@typescript-eslint/no-implied-eval,
|
|
109
|
+
@typescript-eslint/no-unsafe-call
|
|
110
|
+
*/
|
|
111
|
+
} catch {
|
|
112
|
+
return await Promise.resolve(null);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAjIS91c3IvYmluL2VudiBiYWJlbC1ub2RlXG4vLyAtKi0gY29kaW5nOiB1dGYtOCAtKi1cbi8qKiBAbW9kdWxlIG1vZHVsZSAqL1xuJ3VzZSBzdHJpY3QnXG4vKiAhXG4gICAgcmVnaW9uIGhlYWRlclxuICAgIFtQcm9qZWN0IHBhZ2VdKGh0dHBzOi8vdG9yYmVuLndlYnNpdGUvY2xpZW50bm9kZSlcblxuICAgIENvcHlyaWdodCBUb3JiZW4gU2lja2VydCAoaW5mb1tcIn5hdH5cIl10b3JiZW4ud2Vic2l0ZSkgMTYuMTIuMjAxMlxuXG4gICAgTGljZW5zZVxuICAgIC0tLS0tLS1cblxuICAgIFRoaXMgbGlicmFyeSB3cml0dGVuIGJ5IFRvcmJlbiBTaWNrZXJ0IHN0YW5kcyB1bmRlciBhIGNyZWF0aXZlIGNvbW1vbnNcbiAgICBuYW1pbmcgMy4wIHVucG9ydGVkIGxpY2Vuc2UuXG4gICAgU2VlIGh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvZGVlZC5kZVxuICAgIGVuZHJlZ2lvblxuKi9cbmltcG9ydCB0eXBlIHtGaXJzdFBhcmFtZXRlcn0gZnJvbSAnLi90eXBlJ1xuXG5leHBvcnQgY29uc3QgZGV0ZXJtaW5lR2xvYmFsQ29udGV4dCA9ICgpOiBQYXJ0aWFsPHR5cGVvZiBnbG9iYWxUaGlzPiA9PiB7XG4gICAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZ2xvYmFsID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgICAgICByZXR1cm4gKCh0eXBlb2YgbW9kdWxlID09PSAndW5kZWZpbmVkJykgPyB7fSA6IG1vZHVsZSkgYXNcbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIGdsb2JhbFRoaXNcblxuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChnbG9iYWwsICd3aW5kb3cnKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2xvYmFsLndpbmRvd1xuXG4gICAgICAgICAgICByZXR1cm4gZ2xvYmFsXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gd2luZG93XG4gICAgfVxuXG4gICAgcmV0dXJuIGdsb2JhbFRoaXNcbn1cbmNvbnN0IGdsb2JhbENvbnRleHQgPSBkZXRlcm1pbmVHbG9iYWxDb250ZXh0KClcblxuLy8gTWFrZSBwcmVwcm9jZXNzZWQgaW1wb3J0IGZ1bmN0aW9uIGF2YWlsYWJsZSBhdCBydW50aW1lLlxuZXhwb3J0IGNvbnN0IGlzSW1wb3J0U3ludGF4U3VwcG9ydGVkID0gKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW1wbGllZC1ldmFsXG4gICAgICAgIG5ldyBGdW5jdGlvbignaW1wb3J0KFwiZGF0YTp0ZXh0L2phdmFzY3JpcHQsXCIpJylcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxufVxuXG4vLyBNYWtlIHByZXByb2Nlc3NlZCByZXF1aXJlIGZ1bmN0aW9uIGF2YWlsYWJsZSBhdCBydW50aW1lLlxubGV0IGN1c3RvbVJlcXVpcmU6IG51bGwgfCB0eXBlb2YgcmVxdWlyZSA9XG4gICAgdHlwZW9mIGdsb2JhbENvbnRleHQucmVxdWlyZSA9PT0gJ3VuZGVmaW5lZCcgP1xuICAgICAgICBudWxsIDpcbiAgICAgICAgZ2xvYmFsQ29udGV4dC5yZXF1aXJlIGFzIG51bGwgfCB0eXBlb2YgcmVxdWlyZVxuaWYgKCFjdXN0b21SZXF1aXJlICYmIGlzSW1wb3J0U3ludGF4U3VwcG9ydGVkKCkpXG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3Qge2NyZWF0ZVJlcXVpcmV9ID1cbiAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgZXNsaW50LWRpc2FibGVcbiAgICAgICAgICAgICAgICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW1wbGllZC1ldmFsLFxuICAgICAgICAgICAgICAgIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtY2FsbFxuICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGF3YWl0IG5ldyBGdW5jdGlvbigncmV0dXJuIGltcG9ydChcIm5vZGU6bW9kdWxlXCIpJykoKVxuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICBlc2xpbnQtZW5hYmxlXG4gICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L25vLWltcGxpZWQtZXZhbCxcbiAgICAgICAgICAgICAgICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGxcbiAgICAgICAgICAgICovXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGxcbiAgICAgICAgY3VzdG9tUmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKVxuICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBJZ25vcmUgZXJyb3IuXG4gICAgfVxuZXhwb3J0IGNvbnN0IGN1cnJlbnRSZXF1aXJlID0gY3VzdG9tUmVxdWlyZVxuZXhwb3J0IGNvbnN0IG9wdGlvbmFsUmVxdWlyZSA9IDxUID0gdW5rbm93bj4oaWQ6IHN0cmluZyk6IG51bGwgfCBUID0+IHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gY3VycmVudFJlcXVpcmUgPyBjdXJyZW50UmVxdWlyZShpZCkgYXMgVCA6IG51bGxcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG59XG5leHBvcnQgY29uc3QgY2xlYXJSZXF1aXJlQ2FjaGUgPSAoXG4gICAgY2FjaGU6IHR5cGVvZiByZXF1aXJlLmNhY2hlID0gY3VycmVudFJlcXVpcmU/LmNhY2hlIHx8IHJlcXVpcmUuY2FjaGVcbik6IHR5cGVvZiByZXF1aXJlLmNhY2hlID0+IHtcbiAgICBjb25zdCBiYWNrdXA6IHR5cGVvZiByZXF1aXJlLmNhY2hlID0ge31cbiAgICBmb3IgKGNvbnN0IFtrZXksIG1vZHVsZV0gb2YgT2JqZWN0LmVudHJpZXMoY2FjaGUpKSB7XG4gICAgICAgIGJhY2t1cFtrZXldID0gbW9kdWxlXG4gICAgICAgIGRlbGV0ZSBjYWNoZVtrZXldXG4gICAgfVxuXG4gICAgcmV0dXJuIGJhY2t1cFxufVxuY29uc3QgcmVzdG9yZVJlcXVpcmVDYWNoZSA9IChcbiAgICBjYWNoZTogdHlwZW9mIHJlcXVpcmUuY2FjaGUgPSBjdXJyZW50UmVxdWlyZT8uY2FjaGUgfHwgcmVxdWlyZS5jYWNoZSxcbiAgICBiYWNrdXA6IHR5cGVvZiByZXF1aXJlLmNhY2hlXG4pID0+IHtcbiAgICBjbGVhclJlcXVpcmVDYWNoZSgpXG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIG1vZHVsZV0gb2YgT2JqZWN0LmVudHJpZXMoYmFja3VwKSlcbiAgICAgICAgY2FjaGVba2V5XSA9IG1vZHVsZVxufVxuZXhwb3J0IGNvbnN0IGlzb2xhdGVkUmVxdWlyZSA9IChcbiAgICBwYXRoOiBGaXJzdFBhcmFtZXRlcjx0eXBlb2YgcmVxdWlyZT4sXG4gICAgcmVxdWlyZUZ1bmN0aW9uOiB0eXBlb2YgcmVxdWlyZSA9IGN1cnJlbnRSZXF1aXJlIHx8IHJlcXVpcmVcbik6IFJldHVyblR5cGU8dHlwZW9mIHJlcXVpcmU+ID0+IHtcbiAgICBjb25zdCBiYWNrdXAgPSBjbGVhclJlcXVpcmVDYWNoZShyZXF1aXJlRnVuY3Rpb24uY2FjaGUpXG5cbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZUZ1bmN0aW9uKHBhdGggYXMgdW5rbm93biBhcyBzdHJpbmcpIGFzXG4gICAgICAgICAgICBSZXR1cm5UeXBlPHR5cGVvZiByZXF1aXJlPlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jYXRjaFxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IGVycm9yXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgICAgcmVzdG9yZVJlcXVpcmVDYWNoZShyZXF1aXJlRnVuY3Rpb24uY2FjaGUsIGJhY2t1cClcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBvcHRpb25hbEltcG9ydCA9IGFzeW5jIDxUID0gdW5rbm93bj4oXG4gICAgaWQ6IHN0cmluZywgb3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPG51bGwgfCBUPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGlzSW1wb3J0U3ludGF4U3VwcG9ydGVkKCkgP1xuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICBlc2xpbnQtZGlzYWJsZVxuICAgICAgICAgICAgICAgIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbXBsaWVkLWV2YWwsXG4gICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgICAgICAgICAqL1xuICAgICAgICAgICAgYXdhaXQgKChuZXcgRnVuY3Rpb24oXG4gICAgICAgICAgICAgICAgJ29wdGlvbnMnLCBgcmV0dXJuIGltcG9ydCgnJHtpZH0nLCBvcHRpb25zKWBcbiAgICAgICAgICAgICkpKG9wdGlvbnMpIGFzIFByb21pc2U8VD4pIDpcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZShudWxsKVxuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICBlc2xpbnQtZW5hYmxlXG4gICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L25vLWltcGxpZWQtZXZhbCxcbiAgICAgICAgICAgICAgICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGxcbiAgICAgICAgICAgICovXG4gICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBhd2FpdCBQcm9taXNlLnJl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
|