@scrabble-solver/scrabble-solver 2.15.17 → 2.15.18

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.
Files changed (52) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/cache/.previewinfo +1 -1
  4. package/.next/cache/.rscinfo +1 -1
  5. package/.next/cache/.tsbuildinfo +1 -1
  6. package/.next/cache/webpack/client-production/0.pack +0 -0
  7. package/.next/cache/webpack/client-production/index.pack +0 -0
  8. package/.next/cache/webpack/client-production/index.pack.old +0 -0
  9. package/.next/cache/webpack/edge-server-production/index.pack +0 -0
  10. package/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
  11. package/.next/cache/webpack/server-production/0.pack +0 -0
  12. package/.next/cache/webpack/server-production/index.pack +0 -0
  13. package/.next/cache/webpack/server-production/index.pack.old +0 -0
  14. package/.next/dev/build-manifest.json +31 -0
  15. package/.next/dev/cache/webpack/server-development/0.pack.gz +0 -0
  16. package/.next/dev/cache/webpack/server-development/1.pack.gz +0 -0
  17. package/.next/dev/cache/webpack/server-development/index.pack.gz +0 -0
  18. package/.next/dev/cache/webpack/server-development/index.pack.gz.old +0 -0
  19. package/.next/dev/logs/next-development.log +18246 -0
  20. package/.next/dev/react-loadable-manifest.json +1 -0
  21. package/.next/dev/server/middleware-build-manifest.js +32 -0
  22. package/.next/dev/server/middleware-react-loadable-manifest.js +1 -0
  23. package/.next/dev/server/next-font-manifest.js +1 -0
  24. package/.next/dev/server/next-font-manifest.json +1 -0
  25. package/.next/dev/server/pages/_app.js +3984 -0
  26. package/.next/dev/server/pages/_error.js +4028 -0
  27. package/.next/dev/server/pages/index.js +4663 -0
  28. package/.next/dev/server/pages-manifest.json +6 -0
  29. package/.next/dev/server/webpack-runtime.js +231 -0
  30. package/.next/dev/static/chunks/pages/_app.js +5022 -0
  31. package/.next/dev/static/chunks/webpack.js +1246 -0
  32. package/.next/dev/static/development/_buildManifest.js +1 -0
  33. package/.next/dev/static/development/_ssgManifest.js +1 -0
  34. package/.next/prerender-manifest.json +4 -4
  35. package/.next/routes-manifest.json +1 -1
  36. package/.next/server/chunks/392.js +1 -1
  37. package/.next/server/chunks/712.js +1 -1
  38. package/.next/server/middleware-build-manifest.js +1 -1
  39. package/.next/server/pages/404.html +1 -1
  40. package/.next/server/pages/500.html +1 -1
  41. package/.next/server/pages/index.html +1 -1
  42. package/.next/server/pages/index.json +1 -1
  43. package/.next/server/pages/not-found.html +1 -1
  44. package/.next/static/chunks/pages/{_app-34d868ee8cde5436.js → _app-053ab31bfda72a9a.js} +2 -2
  45. package/.next/trace +21 -21
  46. package/.next/trace-build +1 -1
  47. package/package.json +9 -9
  48. package/src/components/Board/hooks/useGrid.ts +2 -2
  49. package/src/components/Rack/Rack.tsx +2 -2
  50. package/src/components/Rack/components/RackTile/RackTile.tsx +2 -2
  51. /package/.next/static/{ImexeOQ5dPSQb-9vZkego → ahy2Ds3MbuK7EyMMxPJE0}/_buildManifest.js +0 -0
  52. /package/.next/static/{ImexeOQ5dPSQb-9vZkego → ahy2Ds3MbuK7EyMMxPJE0}/_ssgManifest.js +0 -0
@@ -0,0 +1,6 @@
1
+ {
2
+ "/_app": "pages/_app.js",
3
+ "/_error": "pages/_error.js",
4
+ "/_document": "pages/_document.js",
5
+ "/": "pages/index.js"
6
+ }
@@ -0,0 +1,231 @@
1
+ /******/ (() => { // webpackBootstrap
2
+ /******/ "use strict";
3
+ /******/ var __webpack_modules__ = ({});
4
+ /************************************************************************/
5
+ /******/ // The module cache
6
+ /******/ var __webpack_module_cache__ = {};
7
+ /******/
8
+ /******/ // The require function
9
+ /******/ function __webpack_require__(moduleId) {
10
+ /******/ // Check if module is in cache
11
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
12
+ /******/ if (cachedModule !== undefined) {
13
+ /******/ return cachedModule.exports;
14
+ /******/ }
15
+ /******/ // Create a new module (and put it into the cache)
16
+ /******/ var module = __webpack_module_cache__[moduleId] = {
17
+ /******/ // no module.id needed
18
+ /******/ // no module.loaded needed
19
+ /******/ exports: {}
20
+ /******/ };
21
+ /******/
22
+ /******/ // Execute the module function
23
+ /******/ var threw = true;
24
+ /******/ try {
25
+ /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
26
+ /******/ threw = false;
27
+ /******/ } finally {
28
+ /******/ if(threw) delete __webpack_module_cache__[moduleId];
29
+ /******/ }
30
+ /******/
31
+ /******/ // Return the exports of the module
32
+ /******/ return module.exports;
33
+ /******/ }
34
+ /******/
35
+ /******/ // expose the modules object (__webpack_modules__)
36
+ /******/ __webpack_require__.m = __webpack_modules__;
37
+ /******/
38
+ /************************************************************************/
39
+ /******/ /* webpack/runtime/async module */
40
+ /******/ (() => {
41
+ /******/ var webpackQueues = typeof Symbol === "function" ? Symbol("webpack queues") : "__webpack_queues__";
42
+ /******/ var webpackExports = typeof Symbol === "function" ? Symbol("webpack exports") : "__webpack_exports__";
43
+ /******/ var webpackError = typeof Symbol === "function" ? Symbol("webpack error") : "__webpack_error__";
44
+ /******/ var resolveQueue = (queue) => {
45
+ /******/ if(queue && queue.d < 1) {
46
+ /******/ queue.d = 1;
47
+ /******/ queue.forEach((fn) => (fn.r--));
48
+ /******/ queue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));
49
+ /******/ }
50
+ /******/ }
51
+ /******/ var wrapDeps = (deps) => (deps.map((dep) => {
52
+ /******/ if(dep !== null && typeof dep === "object") {
53
+ /******/ if(dep[webpackQueues]) return dep;
54
+ /******/ if(dep.then) {
55
+ /******/ var queue = [];
56
+ /******/ queue.d = 0;
57
+ /******/ dep.then((r) => {
58
+ /******/ obj[webpackExports] = r;
59
+ /******/ resolveQueue(queue);
60
+ /******/ }, (e) => {
61
+ /******/ obj[webpackError] = e;
62
+ /******/ resolveQueue(queue);
63
+ /******/ });
64
+ /******/ var obj = {};
65
+ /******/ obj[webpackQueues] = (fn) => (fn(queue));
66
+ /******/ return obj;
67
+ /******/ }
68
+ /******/ }
69
+ /******/ var ret = {};
70
+ /******/ ret[webpackQueues] = x => {};
71
+ /******/ ret[webpackExports] = dep;
72
+ /******/ return ret;
73
+ /******/ }));
74
+ /******/ __webpack_require__.a = (module, body, hasAwait) => {
75
+ /******/ var queue;
76
+ /******/ hasAwait && ((queue = []).d = -1);
77
+ /******/ var depQueues = new Set();
78
+ /******/ var exports = module.exports;
79
+ /******/ var currentDeps;
80
+ /******/ var outerResolve;
81
+ /******/ var reject;
82
+ /******/ var promise = new Promise((resolve, rej) => {
83
+ /******/ reject = rej;
84
+ /******/ outerResolve = resolve;
85
+ /******/ });
86
+ /******/ promise[webpackExports] = exports;
87
+ /******/ promise[webpackQueues] = (fn) => (queue && fn(queue), depQueues.forEach(fn), promise["catch"](x => {}));
88
+ /******/ module.exports = promise;
89
+ /******/ body((deps) => {
90
+ /******/ currentDeps = wrapDeps(deps);
91
+ /******/ var fn;
92
+ /******/ var getResult = () => (currentDeps.map((d) => {
93
+ /******/ if(d[webpackError]) throw d[webpackError];
94
+ /******/ return d[webpackExports];
95
+ /******/ }))
96
+ /******/ var promise = new Promise((resolve) => {
97
+ /******/ fn = () => (resolve(getResult));
98
+ /******/ fn.r = 0;
99
+ /******/ var fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));
100
+ /******/ currentDeps.map((dep) => (dep[webpackQueues](fnQueue)));
101
+ /******/ });
102
+ /******/ return fn.r ? promise : getResult();
103
+ /******/ }, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)));
104
+ /******/ queue && queue.d < 0 && (queue.d = 0);
105
+ /******/ };
106
+ /******/ })();
107
+ /******/
108
+ /******/ /* webpack/runtime/compat get default export */
109
+ /******/ (() => {
110
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
111
+ /******/ __webpack_require__.n = (module) => {
112
+ /******/ var getter = module && module.__esModule ?
113
+ /******/ () => (module['default']) :
114
+ /******/ () => (module);
115
+ /******/ __webpack_require__.d(getter, { a: getter });
116
+ /******/ return getter;
117
+ /******/ };
118
+ /******/ })();
119
+ /******/
120
+ /******/ /* webpack/runtime/define property getters */
121
+ /******/ (() => {
122
+ /******/ // define getter functions for harmony exports
123
+ /******/ __webpack_require__.d = (exports, definition) => {
124
+ /******/ for(var key in definition) {
125
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
126
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
127
+ /******/ }
128
+ /******/ }
129
+ /******/ };
130
+ /******/ })();
131
+ /******/
132
+ /******/ /* webpack/runtime/ensure chunk */
133
+ /******/ (() => {
134
+ /******/ __webpack_require__.f = {};
135
+ /******/ // This file contains only the entry chunk.
136
+ /******/ // The chunk loading function for additional chunks
137
+ /******/ __webpack_require__.e = (chunkId) => {
138
+ /******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {
139
+ /******/ __webpack_require__.f[key](chunkId, promises);
140
+ /******/ return promises;
141
+ /******/ }, []));
142
+ /******/ };
143
+ /******/ })();
144
+ /******/
145
+ /******/ /* webpack/runtime/get javascript chunk filename */
146
+ /******/ (() => {
147
+ /******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
148
+ /******/ __webpack_require__.u = (chunkId) => {
149
+ /******/ // return url for filenames based on template
150
+ /******/ return "" + chunkId + ".js";
151
+ /******/ };
152
+ /******/ })();
153
+ /******/
154
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
155
+ /******/ (() => {
156
+ /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
157
+ /******/ })();
158
+ /******/
159
+ /******/ /* webpack/runtime/make namespace object */
160
+ /******/ (() => {
161
+ /******/ // define __esModule on exports
162
+ /******/ __webpack_require__.r = (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
+ /******/ /* webpack/runtime/startup entrypoint */
171
+ /******/ (() => {
172
+ /******/ __webpack_require__.X = (result, chunkIds, fn) => {
173
+ /******/ // arguments: chunkIds, moduleId are deprecated
174
+ /******/ var moduleId = chunkIds;
175
+ /******/ if(!fn) chunkIds = result, fn = () => (__webpack_require__(__webpack_require__.s = moduleId));
176
+ /******/ chunkIds.map(__webpack_require__.e, __webpack_require__)
177
+ /******/ var r = fn();
178
+ /******/ return r === undefined ? result : r;
179
+ /******/ }
180
+ /******/ })();
181
+ /******/
182
+ /******/ /* webpack/runtime/require chunk loading */
183
+ /******/ (() => {
184
+ /******/ // no baseURI
185
+ /******/
186
+ /******/ // object to store loaded chunks
187
+ /******/ // "1" means "loaded", otherwise not loaded yet
188
+ /******/ var installedChunks = {
189
+ /******/ "webpack-runtime": 1
190
+ /******/ };
191
+ /******/
192
+ /******/ // no on chunks loaded
193
+ /******/
194
+ /******/ var installChunk = (chunk) => {
195
+ /******/ var moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;
196
+ /******/ for(var moduleId in moreModules) {
197
+ /******/ if(__webpack_require__.o(moreModules, moduleId)) {
198
+ /******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
199
+ /******/ }
200
+ /******/ }
201
+ /******/ if(runtime) runtime(__webpack_require__);
202
+ /******/ for(var i = 0; i < chunkIds.length; i++)
203
+ /******/ installedChunks[chunkIds[i]] = 1;
204
+ /******/
205
+ /******/ };
206
+ /******/
207
+ /******/ // require() chunk loading for javascript
208
+ /******/ __webpack_require__.f.require = (chunkId, promises) => {
209
+ /******/ // "1" is the signal for "already loaded"
210
+ /******/ if(!installedChunks[chunkId]) {
211
+ /******/ if("webpack-runtime" != chunkId) {
212
+ /******/ installChunk(require("./" + __webpack_require__.u(chunkId)));
213
+ /******/ } else installedChunks[chunkId] = 1;
214
+ /******/ }
215
+ /******/ };
216
+ /******/
217
+ /******/ module.exports = __webpack_require__;
218
+ /******/ __webpack_require__.C = installChunk;
219
+ /******/
220
+ /******/ // no HMR
221
+ /******/
222
+ /******/ // no HMR manifest
223
+ /******/ })();
224
+ /******/
225
+ /************************************************************************/
226
+ /******/
227
+ /******/
228
+ /******/ })()
229
+
230
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJpZ25vcmVMaXN0IjpbMF0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsid2VicGFjay1pbnRlcm5hbDovL25leHRqcy93ZWJwYWNrLXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBzb3VyY2Ugd2FzIGdlbmVyYXRlZCBieSBOZXh0LmpzIGJhc2VkIG9mZiBvZiB0aGUgZ2VuZXJhdGVkIFdlYnBhY2sgcnVudGltZS5cbi8vIFRoZSBtYXBwaW5ncyBhcmUgaW5jb3JyZWN0LlxuLy8gVG8gZ2V0IHRoZSBjb3JyZWN0IGxpbmUvY29sdW1uIG1hcHBpbmdzLCB0dXJuIG9mZiBzb3VyY2VtYXBzIGluIHlvdXIgZGVidWdnZXIuXG5cbi8qKioqKiovICgoKSA9PiB7IC8vIHdlYnBhY2tCb290c3RyYXBcbi8qKioqKiovIFx0XCJ1c2Ugc3RyaWN0XCI7XG4vKioqKioqLyBcdHZhciBfX3dlYnBhY2tfbW9kdWxlc19fID0gKHt9KTtcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbi8qKioqKiovIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuLyoqKioqKi8gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuLyoqKioqKi8gXHRcdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuLyoqKioqKi8gXHRcdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0dmFyIHRocmV3ID0gdHJ1ZTtcbi8qKioqKiovIFx0XHR0cnkge1xuLyoqKioqKi8gXHRcdFx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG4vKioqKioqLyBcdFx0XHR0aHJldyA9IGZhbHNlO1xuLyoqKioqKi8gXHRcdH0gZmluYWxseSB7XG4vKioqKioqLyBcdFx0XHRpZih0aHJldykgZGVsZXRlIF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcbi8qKioqKiovIFx0XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvYXN5bmMgbW9kdWxlICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0dmFyIHdlYnBhY2tRdWV1ZXMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgPyBTeW1ib2woXCJ3ZWJwYWNrIHF1ZXVlc1wiKSA6IFwiX193ZWJwYWNrX3F1ZXVlc19fXCI7XG4vKioqKioqLyBcdFx0dmFyIHdlYnBhY2tFeHBvcnRzID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiID8gU3ltYm9sKFwid2VicGFjayBleHBvcnRzXCIpIDogXCJfX3dlYnBhY2tfZXhwb3J0c19fXCI7XG4vKioqKioqLyBcdFx0dmFyIHdlYnBhY2tFcnJvciA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiA/IFN5bWJvbChcIndlYnBhY2sgZXJyb3JcIikgOiBcIl9fd2VicGFja19lcnJvcl9fXCI7XG4vKioqKioqLyBcdFx0dmFyIHJlc29sdmVRdWV1ZSA9IChxdWV1ZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0aWYocXVldWUgJiYgcXVldWUuZCA8IDEpIHtcbi8qKioqKiovIFx0XHRcdFx0cXVldWUuZCA9IDE7XG4vKioqKioqLyBcdFx0XHRcdHF1ZXVlLmZvckVhY2goKGZuKSA9PiAoZm4uci0tKSk7XG4vKioqKioqLyBcdFx0XHRcdHF1ZXVlLmZvckVhY2goKGZuKSA9PiAoZm4uci0tID8gZm4ucisrIDogZm4oKSkpO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHR2YXIgd3JhcERlcHMgPSAoZGVwcykgPT4gKGRlcHMubWFwKChkZXApID0+IHtcbi8qKioqKiovIFx0XHRcdGlmKGRlcCAhPT0gbnVsbCAmJiB0eXBlb2YgZGVwID09PSBcIm9iamVjdFwiKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmKGRlcFt3ZWJwYWNrUXVldWVzXSkgcmV0dXJuIGRlcDtcbi8qKioqKiovIFx0XHRcdFx0aWYoZGVwLnRoZW4pIHtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgcXVldWUgPSBbXTtcbi8qKioqKiovIFx0XHRcdFx0XHRxdWV1ZS5kID0gMDtcbi8qKioqKiovIFx0XHRcdFx0XHRkZXAudGhlbigocikgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0b2JqW3dlYnBhY2tFeHBvcnRzXSA9IHI7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXNvbHZlUXVldWUocXVldWUpO1xuLyoqKioqKi8gXHRcdFx0XHRcdH0sIChlKSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRvYmpbd2VicGFja0Vycm9yXSA9IGU7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXNvbHZlUXVldWUocXVldWUpO1xuLyoqKioqKi8gXHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBvYmogPSB7fTtcbi8qKioqKiovIFx0XHRcdFx0XHRvYmpbd2VicGFja1F1ZXVlc10gPSAoZm4pID0+IChmbihxdWV1ZSkpO1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBvYmo7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdHZhciByZXQgPSB7fTtcbi8qKioqKiovIFx0XHRcdHJldFt3ZWJwYWNrUXVldWVzXSA9IHggPT4ge307XG4vKioqKioqLyBcdFx0XHRyZXRbd2VicGFja0V4cG9ydHNdID0gZGVwO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIHJldDtcbi8qKioqKiovIFx0XHR9KSk7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5hID0gKG1vZHVsZSwgYm9keSwgaGFzQXdhaXQpID0+IHtcbi8qKioqKiovIFx0XHRcdHZhciBxdWV1ZTtcbi8qKioqKiovIFx0XHRcdGhhc0F3YWl0ICYmICgocXVldWUgPSBbXSkuZCA9IC0xKTtcbi8qKioqKiovIFx0XHRcdHZhciBkZXBRdWV1ZXMgPSBuZXcgU2V0KCk7XG4vKioqKioqLyBcdFx0XHR2YXIgZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHRcdFx0dmFyIGN1cnJlbnREZXBzO1xuLyoqKioqKi8gXHRcdFx0dmFyIG91dGVyUmVzb2x2ZTtcbi8qKioqKiovIFx0XHRcdHZhciByZWplY3Q7XG4vKioqKioqLyBcdFx0XHR2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWopID0+IHtcbi8qKioqKiovIFx0XHRcdFx0cmVqZWN0ID0gcmVqO1xuLyoqKioqKi8gXHRcdFx0XHRvdXRlclJlc29sdmUgPSByZXNvbHZlO1xuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRwcm9taXNlW3dlYnBhY2tFeHBvcnRzXSA9IGV4cG9ydHM7XG4vKioqKioqLyBcdFx0XHRwcm9taXNlW3dlYnBhY2tRdWV1ZXNdID0gKGZuKSA9PiAocXVldWUgJiYgZm4ocXVldWUpLCBkZXBRdWV1ZXMuZm9yRWFjaChmbiksIHByb21pc2VbXCJjYXRjaFwiXSh4ID0+IHt9KSk7XG4vKioqKioqLyBcdFx0XHRtb2R1bGUuZXhwb3J0cyA9IHByb21pc2U7XG4vKioqKioqLyBcdFx0XHRib2R5KChkZXBzKSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdGN1cnJlbnREZXBzID0gd3JhcERlcHMoZGVwcyk7XG4vKioqKioqLyBcdFx0XHRcdHZhciBmbjtcbi8qKioqKiovIFx0XHRcdFx0dmFyIGdldFJlc3VsdCA9ICgpID0+IChjdXJyZW50RGVwcy5tYXAoKGQpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0XHRpZihkW3dlYnBhY2tFcnJvcl0pIHRocm93IGRbd2VicGFja0Vycm9yXTtcbi8qKioqKiovIFx0XHRcdFx0XHRyZXR1cm4gZFt3ZWJwYWNrRXhwb3J0c107XG4vKioqKioqLyBcdFx0XHRcdH0pKVxuLyoqKioqKi8gXHRcdFx0XHR2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdFx0Zm4gPSAoKSA9PiAocmVzb2x2ZShnZXRSZXN1bHQpKTtcbi8qKioqKiovIFx0XHRcdFx0XHRmbi5yID0gMDtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgZm5RdWV1ZSA9IChxKSA9PiAocSAhPT0gcXVldWUgJiYgIWRlcFF1ZXVlcy5oYXMocSkgJiYgKGRlcFF1ZXVlcy5hZGQocSksIHEgJiYgIXEuZCAmJiAoZm4ucisrLCBxLnB1c2goZm4pKSkpO1xuLyoqKioqKi8gXHRcdFx0XHRcdGN1cnJlbnREZXBzLm1hcCgoZGVwKSA9PiAoZGVwW3dlYnBhY2tRdWV1ZXNdKGZuUXVldWUpKSk7XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRyZXR1cm4gZm4uciA/IHByb21pc2UgOiBnZXRSZXN1bHQoKTtcbi8qKioqKiovIFx0XHRcdH0sIChlcnIpID0+ICgoZXJyID8gcmVqZWN0KHByb21pc2Vbd2VicGFja0Vycm9yXSA9IGVycikgOiBvdXRlclJlc29sdmUoZXhwb3J0cykpLCByZXNvbHZlUXVldWUocXVldWUpKSk7XG4vKioqKioqLyBcdFx0XHRxdWV1ZSAmJiBxdWV1ZS5kIDwgMCAmJiAocXVldWUuZCA9IDApO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4vKioqKioqLyBcdFx0XHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuLyoqKioqKi8gXHRcdFx0XHQoKSA9PiAobW9kdWxlKTtcbi8qKioqKiovIFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGdldHRlcjtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG4vKioqKioqLyBcdFx0XHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2Vuc3VyZSBjaHVuayAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZiA9IHt9O1xuLyoqKioqKi8gXHRcdC8vIFRoaXMgZmlsZSBjb250YWlucyBvbmx5IHRoZSBlbnRyeSBjaHVuay5cbi8qKioqKiovIFx0XHQvLyBUaGUgY2h1bmsgbG9hZGluZyBmdW5jdGlvbiBmb3IgYWRkaXRpb25hbCBjaHVua3Ncbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmUgPSAoY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIFByb21pc2UuYWxsKE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uZikucmVkdWNlKChwcm9taXNlcywga2V5KSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uZltrZXldKGNodW5rSWQsIHByb21pc2VzKTtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHByb21pc2VzO1xuLyoqKioqKi8gXHRcdFx0fSwgW10pKTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2dldCBqYXZhc2NyaXB0IGNodW5rIGZpbGVuYW1lICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0Ly8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzIGFuZCBzaWJsaW5nIGNodW5rcyBmb3IgdGhlIGVudHJ5cG9pbnRcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gXCJcIiArIGNodW5rSWQgKyBcIi5qc1wiO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKVxuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuLyoqKioqKi8gXHRcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4vKioqKioqLyBcdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL3N0YXJ0dXAgZW50cnlwb2ludCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uWCA9IChyZXN1bHQsIGNodW5rSWRzLCBmbikgPT4ge1xuLyoqKioqKi8gXHRcdFx0Ly8gYXJndW1lbnRzOiBjaHVua0lkcywgbW9kdWxlSWQgYXJlIGRlcHJlY2F0ZWRcbi8qKioqKiovIFx0XHRcdHZhciBtb2R1bGVJZCA9IGNodW5rSWRzO1xuLyoqKioqKi8gXHRcdFx0aWYoIWZuKSBjaHVua0lkcyA9IHJlc3VsdCwgZm4gPSAoKSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSBtb2R1bGVJZCkpO1xuLyoqKioqKi8gXHRcdFx0Y2h1bmtJZHMubWFwKF9fd2VicGFja19yZXF1aXJlX18uZSwgX193ZWJwYWNrX3JlcXVpcmVfXylcbi8qKioqKiovIFx0XHRcdHZhciByID0gZm4oKTtcbi8qKioqKiovIFx0XHRcdHJldHVybiByID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiByO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9yZXF1aXJlIGNodW5rIGxvYWRpbmcgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBubyBiYXNlVVJJXG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBjaHVua3Ncbi8qKioqKiovIFx0XHQvLyBcIjFcIiBtZWFucyBcImxvYWRlZFwiLCBvdGhlcndpc2Ugbm90IGxvYWRlZCB5ZXRcbi8qKioqKiovIFx0XHR2YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuLyoqKioqKi8gXHRcdFx0XCJ3ZWJwYWNrLXJ1bnRpbWVcIjogMVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gbm8gb24gY2h1bmtzIGxvYWRlZFxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdHZhciBpbnN0YWxsQ2h1bmsgPSAoY2h1bmspID0+IHtcbi8qKioqKiovIFx0XHRcdHZhciBtb3JlTW9kdWxlcyA9IGNodW5rLm1vZHVsZXMsIGNodW5rSWRzID0gY2h1bmsuaWRzLCBydW50aW1lID0gY2h1bmsucnVudGltZTtcbi8qKioqKiovIFx0XHRcdGZvcih2YXIgbW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcbi8qKioqKiovIFx0XHRcdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm1bbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRpZihydW50aW1lKSBydW50aW1lKF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi8gXHRcdFx0Zm9yKHZhciBpID0gMDsgaSA8IGNodW5rSWRzLmxlbmd0aDsgaSsrKVxuLyoqKioqKi8gXHRcdFx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZHNbaV1dID0gMTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIHJlcXVpcmUoKSBjaHVuayBsb2FkaW5nIGZvciBqYXZhc2NyaXB0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mLnJlcXVpcmUgPSAoY2h1bmtJZCwgcHJvbWlzZXMpID0+IHtcbi8qKioqKiovIFx0XHRcdC8vIFwiMVwiIGlzIHRoZSBzaWduYWwgZm9yIFwiYWxyZWFkeSBsb2FkZWRcIlxuLyoqKioqKi8gXHRcdFx0aWYoIWluc3RhbGxlZENodW5rc1tjaHVua0lkXSkge1xuLyoqKioqKi8gXHRcdFx0XHRpZihcIndlYnBhY2stcnVudGltZVwiICE9IGNodW5rSWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRpbnN0YWxsQ2h1bmsocmVxdWlyZShcIi4vXCIgKyBfX3dlYnBhY2tfcmVxdWlyZV9fLnUoY2h1bmtJZCkpKTtcbi8qKioqKiovIFx0XHRcdFx0fSBlbHNlIGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IDE7XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRtb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX187XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5DID0gaW5zdGFsbENodW5rO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIG5vIEhNUlxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIG5vIEhNUiBtYW5pZmVzdFxuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHRcbi8qKioqKiovIH0pKClcbiJdfQ==
231
+ ;