@appium/support 2.57.2 → 2.58.0
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/build/lib/env.js +1 -1
- package/build/lib/fs.js +1 -1
- package/build/lib/image-util.js +1 -1
- package/build/lib/index.js +1 -1
- package/build/lib/log-internal.js +1 -1
- package/build/lib/logger.js +1 -1
- package/build/lib/logging.js +1 -1
- package/build/lib/mjpeg.js +1 -1
- package/build/lib/mkdirp.js +1 -1
- package/build/lib/net.js +1 -1
- package/build/lib/node.d.ts +14 -0
- package/build/lib/node.d.ts.map +1 -1
- package/build/lib/node.js +22 -1
- package/build/lib/npm.js +1 -1
- package/build/lib/plist.js +1 -1
- package/build/lib/process.js +1 -1
- package/build/lib/system.js +1 -1
- package/build/lib/tempdir.js +1 -1
- package/build/lib/timing.js +1 -1
- package/build/lib/util.js +1 -1
- package/build/lib/zip.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/lib/node.js +30 -1
- package/package.json +4 -10
package/build/lib/node.d.ts
CHANGED
|
@@ -23,4 +23,18 @@ export function getObjectSize(obj: any): number;
|
|
|
23
23
|
* @returns {string} A uuidV4 string that uniquely identifies given object
|
|
24
24
|
*/
|
|
25
25
|
export function getObjectId(object: object): string;
|
|
26
|
+
/**
|
|
27
|
+
* Perform deep freeze of the given object (e. g.
|
|
28
|
+
* all nested objects also become immutable).
|
|
29
|
+
* If the passed object is of a plain type
|
|
30
|
+
* then no change is done and the same object
|
|
31
|
+
* is returned.
|
|
32
|
+
* ! This function changes the given object,
|
|
33
|
+
* so it becomes immutable.
|
|
34
|
+
*
|
|
35
|
+
* @param {*} object Any valid ECMA object
|
|
36
|
+
* @returns {*} The same object that was passed to the
|
|
37
|
+
* function after it was made immutable.
|
|
38
|
+
*/
|
|
39
|
+
export function deepFreeze(object: any): any;
|
|
26
40
|
//# sourceMappingURL=node.d.ts.map
|
package/build/lib/node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../lib/node.js"],"names":[],"mappings":"AAoCA;;;;;;;;GAQG;AACH,4CAJW,MAAM,GACJ,QAAQ,OAAO,CAAC,CA6B5B;AAuED;;;;;;GAMG;AACH,yCAFa,MAAM,CAIlB;AAID;;;;;GAKG;AACH,oCAHW,MAAM,GACJ,MAAM,CAOlB"}
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../lib/node.js"],"names":[],"mappings":"AAoCA;;;;;;;;GAQG;AACH,4CAJW,MAAM,GACJ,QAAQ,OAAO,CAAC,CA6B5B;AAuED;;;;;;GAMG;AACH,yCAFa,MAAM,CAIlB;AAID;;;;;GAKG;AACH,oCAHW,MAAM,GACJ,MAAM,CAOlB;AAED;;;;;;;;;;;;GAYG;AACH,6CAcC"}
|
package/build/lib/node.js
CHANGED
|
@@ -5,6 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
exports.deepFreeze = deepFreeze;
|
|
8
9
|
exports.getObjectId = getObjectId;
|
|
9
10
|
exports.getObjectSize = getObjectSize;
|
|
10
11
|
exports.requirePackage = requirePackage;
|
|
@@ -168,4 +169,24 @@ function getObjectId(object) {
|
|
|
168
169
|
|
|
169
170
|
return OBJECTS_MAPPING.get(object);
|
|
170
171
|
}
|
|
171
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9ub2RlLmpzIl0sIm5hbWVzIjpbIkVDTUFfU0laRVMiLCJPYmplY3QiLCJmcmVlemUiLCJTVFJJTkciLCJCT09MRUFOIiwiTlVNQkVSIiwibGlua0dsb2JhbFBhY2thZ2UiLCJwYWNrYWdlTmFtZSIsImxvZyIsImRlYnVnIiwiY21kIiwidGltZW91dCIsImVyciIsIm1zZyIsIm1lc3NhZ2UiLCJzdGRlcnIiLCJFcnJvciIsInJlcXVpcmVQYWNrYWdlIiwicmVxdWlyZSIsImdsb2JhbFBhY2thZ2VOYW1lIiwicGF0aCIsInJlc29sdmUiLCJwcm9jZXNzIiwiZW52IiwibnBtX2NvbmZpZ19wcmVmaXgiLCJlcnJvckFuZFRocm93IiwiZXh0cmFjdEFsbFByb3BlcnRpZXMiLCJvYmoiLCJzdHJpbmdQcm9wZXJ0aWVzIiwicHJvcCIsInB1c2giLCJfIiwiaXNGdW5jdGlvbiIsImdldE93blByb3BlcnR5U3ltYm9scyIsIl9nZXRTaXplT2ZPYmplY3QiLCJzZWVuIiwib2JqZWN0IiwiaXNOaWwiLCJieXRlcyIsInByb3BlcnRpZXMiLCJrZXkiLCJoYXMiLCJhZGQiLCJnZXRDYWxjdWxhdG9yIiwiZXgiLCJSYW5nZUVycm9yIiwiY2FsY3VsYXRvciIsImlzQnVmZmVyIiwibGVuZ3RoIiwiU3ltYm9sIiwia2V5Rm9yIiwidG9TdHJpbmciLCJpc0FycmF5IiwibWFwIiwicmVkdWNlIiwiYWNjIiwiY3VyciIsImdldE9iamVjdFNpemUiLCJXZWFrU2V0IiwiT0JKRUNUU19NQVBQSU5HIiwiV2Vha01hcCIsImdldE9iamVjdElkIiwic2V0IiwiZ2V0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsVUFBVSxHQUFHQyxNQUFNLENBQUNDLE1BQVAsQ0FBYztBQUMvQkMsRUFBQUEsTUFBTSxFQUFFLENBRHVCO0FBRS9CQyxFQUFBQSxPQUFPLEVBQUUsQ0FGc0I7QUFHL0JD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QjNCLE1BQXBCLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzV2luZG93cyB9IGZyb20gJy4vc3lzdGVtJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkVjQgfSBmcm9tICd1dWlkJztcblxuY29uc3QgRUNNQV9TSVpFUyA9IE9iamVjdC5mcmVlemUoe1xuICBTVFJJTkc6IDIsXG4gIEJPT0xFQU46IDQsXG4gIE5VTUJFUjogOCxcbn0pO1xuXG4vKipcbiAqIEludGVybmFsIHV0aWxpdHkgdG8gbGluayBnbG9iYWwgcGFja2FnZSB0byBsb2NhbCBjb250ZXh0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhY2thZ2VOYW1lIC0gbmFtZSBvZiB0aGUgcGFja2FnZSB0byBsaW5rXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvbW1hbmQgZmFpbHNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gbGlua0dsb2JhbFBhY2thZ2UgKHBhY2thZ2VOYW1lKSB7XG4gIHRyeSB7XG4gICAgbG9nLmRlYnVnKGBMaW5raW5nIHBhY2thZ2UgJyR7cGFja2FnZU5hbWV9J2ApO1xuICAgIGNvbnN0IGNtZCA9IGlzV2luZG93cygpID8gJ25wbS5jbWQnIDogJ25wbSc7XG4gICAgYXdhaXQgZXhlYyhjbWQsIFsnbGluaycsIHBhY2thZ2VOYW1lXSwge3RpbWVvdXQ6IDIwMDAwfSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnN0IG1zZyA9IGBVbmFibGUgdG8gbG9hZCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfScsIGxpbmtpbmcgZmFpbGVkOiAke2Vyci5tZXNzYWdlfWA7XG4gICAgbG9nLmRlYnVnKG1zZyk7XG4gICAgaWYgKGVyci5zdGRlcnIpIHtcbiAgICAgIC8vIGxvZyB0aGUgc3RkZXJyIGlmIHRoZXJlLCBidXQgZG8gbm90IGFkZCB0byB0aHJvd24gZXJyb3IgYXMgaXQgaXNcbiAgICAgIC8vIF92ZXJ5XyB2ZXJib3NlXG4gICAgICBsb2cuZGVidWcoZXJyLnN0ZGVycik7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICB9XG59XG5cbi8qKlxuICogVXRpbGl0eSBmdW5jdGlvbiB0byBleHRlbmQgbm9kZSBmdW5jdGlvbmFsaXR5LCBhbGxvd2luZyB1cyB0byByZXF1aXJlXG4gKiBtb2R1bGVzIHRoYXQgYXJlIGluc3RhbGxlZCBnbG9iYWxseS4gSWYgdGhlIHBhY2thZ2UgY2Fubm90IGJlIHJlcXVpcmVkLFxuICogdGhpcyB3aWxsIGF0dGVtcHQgdG8gbGluayB0aGUgcGFja2FnZSBhbmQgdGhlbiByZS1yZXF1aXJlIGl0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhY2thZ2VOYW1lIC0gdGhlIG5hbWUgb2YgdGhlIHBhY2thZ2UgdG8gYmUgcmVxdWlyZWRcbiAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSAtIHRoZSBwYWNrYWdlIG9iamVjdFxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBwYWNrYWdlIGlzIG5vdCBmb3VuZCBsb2NhbGx5IG9yIGdsb2JhbGx5XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlcXVpcmVQYWNrYWdlIChwYWNrYWdlTmFtZSkge1xuICAvLyBmaXJzdCwgZ2V0IGl0IGluIHRoZSBub3JtYWwgd2F5IChzZWUgaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9tb2R1bGVzLmh0bWwjbW9kdWxlc19hbGxfdG9nZXRoZXIpXG4gIHRyeSB7XG4gICAgbG9nLmRlYnVnKGBMb2FkaW5nIGxvY2FsIHBhY2thZ2UgJyR7cGFja2FnZU5hbWV9J2ApO1xuICAgIHJldHVybiByZXF1aXJlKHBhY2thZ2VOYW1lKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nLmRlYnVnKGBGYWlsZWQgdG8gbG9hZCBsb2NhbCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cblxuICAvLyBzZWNvbmQsIGdldCBpdCBmcm9tIHdoZXJlIGl0IG91Z2h0IHRvIGJlIGluIHRoZSBnbG9iYWwgbm9kZV9tb2R1bGVzXG4gIHRyeSB7XG4gICAgY29uc3QgZ2xvYmFsUGFja2FnZU5hbWUgPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5lbnYubnBtX2NvbmZpZ19wcmVmaXggPz8gJycsICdsaWInLCAnbm9kZV9tb2R1bGVzJywgcGFja2FnZU5hbWUpO1xuICAgIGxvZy5kZWJ1ZyhgTG9hZGluZyBnbG9iYWwgcGFja2FnZSAnJHtnbG9iYWxQYWNrYWdlTmFtZX0nYCk7XG4gICAgcmV0dXJuIHJlcXVpcmUoZ2xvYmFsUGFja2FnZU5hbWUpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2cuZGVidWcoYEZhaWxlZCB0byBsb2FkIGdsb2JhbCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cblxuICAvLyB0aGlyZCwgbGluayB0aGUgZmlsZSBhbmQgZ2V0IGxvY2FsbHlcbiAgdHJ5IHtcbiAgICBhd2FpdCBsaW5rR2xvYmFsUGFja2FnZShwYWNrYWdlTmFtZSk7XG4gICAgbG9nLmRlYnVnKGBSZXRyeWluZyBsb2FkIG9mIGxpbmtlZCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSdgKTtcbiAgICByZXR1cm4gcmVxdWlyZShwYWNrYWdlTmFtZSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBVbmFibGUgdG8gbG9hZCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZXh0cmFjdEFsbFByb3BlcnRpZXMgKG9iaikge1xuICBjb25zdCBzdHJpbmdQcm9wZXJ0aWVzID0gW107XG4gIGZvciAoY29uc3QgcHJvcCBpbiBvYmopIHtcbiAgICBzdHJpbmdQcm9wZXJ0aWVzLnB1c2gocHJvcCk7XG4gIH1cbiAgaWYgKF8uaXNGdW5jdGlvbihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSkge1xuICAgIHN0cmluZ1Byb3BlcnRpZXMucHVzaCguLi4oT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmopKSk7XG4gIH1cbiAgcmV0dXJuIHN0cmluZ1Byb3BlcnRpZXM7XG59XG5cbmZ1bmN0aW9uIF9nZXRTaXplT2ZPYmplY3QgKHNlZW4sIG9iamVjdCkge1xuICBpZiAoXy5pc05pbChvYmplY3QpKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBsZXQgYnl0ZXMgPSAwO1xuICBjb25zdCBwcm9wZXJ0aWVzID0gZXh0cmFjdEFsbFByb3BlcnRpZXMob2JqZWN0KTtcbiAgZm9yIChjb25zdCBrZXkgb2YgcHJvcGVydGllcykge1xuICAgIC8vIERvIG5vdCByZWNhbGN1bGF0ZSBjaXJjdWxhciByZWZlcmVuY2VzXG4gICAgaWYgKHR5cGVvZiBvYmplY3Rba2V5XSA9PT0gJ29iamVjdCcgJiYgIV8uaXNOaWwob2JqZWN0W2tleV0pKSB7XG4gICAgICBpZiAoc2Vlbi5oYXMob2JqZWN0W2tleV0pKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgc2Vlbi5hZGQob2JqZWN0W2tleV0pO1xuICAgIH1cblxuICAgIGJ5dGVzICs9IGdldENhbGN1bGF0b3Ioc2Vlbikoa2V5KTtcbiAgICB0cnkge1xuICAgICAgYnl0ZXMgKz0gZ2V0Q2FsY3VsYXRvcihzZWVuKShvYmplY3Rba2V5XSk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpIHtcbiAgICAgICAgLy8gY2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkLCBmaW5hbCByZXN1bHQgbWlnaHQgYmUgaW5jb3JyZWN0XG4gICAgICAgIC8vIGxldCdzIGJlIG5pY2UgYW5kIG5vdCB0aHJvdyBhbiBleGNlcHRpb25cbiAgICAgICAgYnl0ZXMgPSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBieXRlcztcbn1cblxuZnVuY3Rpb24gZ2V0Q2FsY3VsYXRvciAoc2Vlbikge1xuICByZXR1cm4gZnVuY3Rpb24gY2FsY3VsYXRvciAob2JqKSB7XG4gICAgaWYgKF8uaXNCdWZmZXIob2JqKSkge1xuICAgICAgcmV0dXJuIG9iai5sZW5ndGg7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0eXBlb2YgKG9iaikpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgIHJldHVybiBvYmoubGVuZ3RoICogRUNNQV9TSVpFUy5TVFJJTkc7XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuIEVDTUFfU0laRVMuQk9PTEVBTjtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIHJldHVybiBFQ01BX1NJWkVTLk5VTUJFUjtcbiAgICAgIGNhc2UgJ3N5bWJvbCc6XG4gICAgICAgIHJldHVybiBfLmlzRnVuY3Rpb24oU3ltYm9sLmtleUZvcikgJiYgU3ltYm9sLmtleUZvcihvYmopXG4gICAgICAgICAgPyAvKiogQHR5cGUge3N0cmluZ30gKi8oU3ltYm9sLmtleUZvcihvYmopKS5sZW5ndGggKiBFQ01BX1NJWkVTLlNUUklOR1xuICAgICAgICAgIDogKG9iai50b1N0cmluZygpLmxlbmd0aCAtIDgpICogRUNNQV9TSVpFUy5TVFJJTkc7XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICByZXR1cm4gXy5pc0FycmF5KG9iailcbiAgICAgICAgICA/IG9iai5tYXAoZ2V0Q2FsY3VsYXRvcihzZWVuKSkucmVkdWNlKChhY2MsIGN1cnIpID0+IGFjYyArIGN1cnIsIDApXG4gICAgICAgICAgOiBfZ2V0U2l6ZU9mT2JqZWN0KHNlZW4sIG9iaik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIHRoZSBpbi1kZXB0aCBzaXplIGluIG1lbW9yeSBvZiB0aGUgcHJvdmlkZWQgb2JqZWN0LlxuICogVGhlIG9yaWdpbmFsIGltcGxlbWVudGF0aW9uIGlzIGJvcnJvd2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL21pa3RhbS9zaXplb2YuXG4gKlxuICogQHBhcmFtIHsqfSBvYmogQW4gb2JqZWN0IHdob3NlIHNpemUgc2hvdWxkIGJlIGNhbGN1bGF0ZWRcbiAqIEByZXR1cm5zIHtudW1iZXJ9IE9iamVjdCBzaXplIGluIGJ5dGVzLlxuICovXG5mdW5jdGlvbiBnZXRPYmplY3RTaXplIChvYmopIHtcbiAgcmV0dXJuIGdldENhbGN1bGF0b3IobmV3IFdlYWtTZXQoKSkob2JqKTtcbn1cblxuY29uc3QgT0JKRUNUU19NQVBQSU5HID0gbmV3IFdlYWtNYXAoKTtcblxuLyoqXG4gKiBDYWxjdWxhdGVzIGEgdW5pcXVlIG9iamVjdCBpZGVudGlmaWVyXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG9iamVjdCBBbnkgdmFsaWQgRUNNQSBvYmplY3RcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEgdXVpZFY0IHN0cmluZyB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgZ2l2ZW4gb2JqZWN0XG4gKi9cbmZ1bmN0aW9uIGdldE9iamVjdElkIChvYmplY3QpIHtcbiAgaWYgKCFPQkpFQ1RTX01BUFBJTkcuaGFzKG9iamVjdCkpIHtcbiAgICBPQkpFQ1RTX01BUFBJTkcuc2V0KG9iamVjdCwgdXVpZFY0KCkpO1xuICB9XG4gIHJldHVybiBPQkpFQ1RTX01BUFBJTkcuZ2V0KG9iamVjdCk7XG59XG5cbmV4cG9ydCB7IHJlcXVpcmVQYWNrYWdlLCBnZXRPYmplY3RTaXplLCBnZXRPYmplY3RJZCB9O1xuIl19
|
|
172
|
+
|
|
173
|
+
function deepFreeze(object) {
|
|
174
|
+
let propNames;
|
|
175
|
+
|
|
176
|
+
try {
|
|
177
|
+
propNames = Object.getOwnPropertyNames(object);
|
|
178
|
+
} catch (ign) {
|
|
179
|
+
return object;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
for (const name of propNames) {
|
|
183
|
+
const value = object[name];
|
|
184
|
+
|
|
185
|
+
if (value && typeof value === 'object') {
|
|
186
|
+
deepFreeze(value);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return Object.freeze(object);
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFQ01BX1NJWkVTIiwiT2JqZWN0IiwiZnJlZXplIiwiU1RSSU5HIiwiQk9PTEVBTiIsIk5VTUJFUiIsImxpbmtHbG9iYWxQYWNrYWdlIiwicGFja2FnZU5hbWUiLCJsb2ciLCJkZWJ1ZyIsImNtZCIsInRpbWVvdXQiLCJlcnIiLCJtc2ciLCJtZXNzYWdlIiwic3RkZXJyIiwiRXJyb3IiLCJyZXF1aXJlUGFja2FnZSIsInJlcXVpcmUiLCJnbG9iYWxQYWNrYWdlTmFtZSIsInBhdGgiLCJyZXNvbHZlIiwicHJvY2VzcyIsImVudiIsIm5wbV9jb25maWdfcHJlZml4IiwiZXJyb3JBbmRUaHJvdyIsImV4dHJhY3RBbGxQcm9wZXJ0aWVzIiwib2JqIiwic3RyaW5nUHJvcGVydGllcyIsInByb3AiLCJwdXNoIiwiXyIsImlzRnVuY3Rpb24iLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJfZ2V0U2l6ZU9mT2JqZWN0Iiwic2VlbiIsIm9iamVjdCIsImlzTmlsIiwiYnl0ZXMiLCJwcm9wZXJ0aWVzIiwia2V5IiwiaGFzIiwiYWRkIiwiZ2V0Q2FsY3VsYXRvciIsImV4IiwiUmFuZ2VFcnJvciIsImNhbGN1bGF0b3IiLCJpc0J1ZmZlciIsImxlbmd0aCIsIlN5bWJvbCIsImtleUZvciIsInRvU3RyaW5nIiwiaXNBcnJheSIsIm1hcCIsInJlZHVjZSIsImFjYyIsImN1cnIiLCJnZXRPYmplY3RTaXplIiwiV2Vha1NldCIsIk9CSkVDVFNfTUFQUElORyIsIldlYWtNYXAiLCJnZXRPYmplY3RJZCIsInNldCIsImdldCIsImRlZXBGcmVlemUiLCJwcm9wTmFtZXMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiaWduIiwibmFtZSIsInZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vbGliL25vZGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNXaW5kb3dzIH0gZnJvbSAnLi9zeXN0ZW0nO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZXhlYyB9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IHY0IGFzIHV1aWRWNCB9IGZyb20gJ3V1aWQnO1xuXG5jb25zdCBFQ01BX1NJWkVTID0gT2JqZWN0LmZyZWV6ZSh7XG4gIFNUUklORzogMixcbiAgQk9PTEVBTjogNCxcbiAgTlVNQkVSOiA4LFxufSk7XG5cbi8qKlxuICogSW50ZXJuYWwgdXRpbGl0eSB0byBsaW5rIGdsb2JhbCBwYWNrYWdlIHRvIGxvY2FsIGNvbnRleHRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGFja2FnZU5hbWUgLSBuYW1lIG9mIHRoZSBwYWNrYWdlIHRvIGxpbmtcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29tbWFuZCBmYWlsc1xuICovXG5hc3luYyBmdW5jdGlvbiBsaW5rR2xvYmFsUGFja2FnZSAocGFja2FnZU5hbWUpIHtcbiAgdHJ5IHtcbiAgICBsb2cuZGVidWcoYExpbmtpbmcgcGFja2FnZSAnJHtwYWNrYWdlTmFtZX0nYCk7XG4gICAgY29uc3QgY21kID0gaXNXaW5kb3dzKCkgPyAnbnBtLmNtZCcgOiAnbnBtJztcbiAgICBhd2FpdCBleGVjKGNtZCwgWydsaW5rJywgcGFja2FnZU5hbWVdLCB7dGltZW91dDogMjAwMDB9KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc3QgbXNnID0gYFVuYWJsZSB0byBsb2FkIHBhY2thZ2UgJyR7cGFja2FnZU5hbWV9JywgbGlua2luZyBmYWlsZWQ6ICR7ZXJyLm1lc3NhZ2V9YDtcbiAgICBsb2cuZGVidWcobXNnKTtcbiAgICBpZiAoZXJyLnN0ZGVycikge1xuICAgICAgLy8gbG9nIHRoZSBzdGRlcnIgaWYgdGhlcmUsIGJ1dCBkbyBub3QgYWRkIHRvIHRocm93biBlcnJvciBhcyBpdCBpc1xuICAgICAgLy8gX3ZlcnlfIHZlcmJvc2VcbiAgICAgIGxvZy5kZWJ1ZyhlcnIuc3RkZXJyKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gIH1cbn1cblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIHRvIGV4dGVuZCBub2RlIGZ1bmN0aW9uYWxpdHksIGFsbG93aW5nIHVzIHRvIHJlcXVpcmVcbiAqIG1vZHVsZXMgdGhhdCBhcmUgaW5zdGFsbGVkIGdsb2JhbGx5LiBJZiB0aGUgcGFja2FnZSBjYW5ub3QgYmUgcmVxdWlyZWQsXG4gKiB0aGlzIHdpbGwgYXR0ZW1wdCB0byBsaW5rIHRoZSBwYWNrYWdlIGFuZCB0aGVuIHJlLXJlcXVpcmUgaXRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGFja2FnZU5hbWUgLSB0aGUgbmFtZSBvZiB0aGUgcGFja2FnZSB0byBiZSByZXF1aXJlZFxuICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IC0gdGhlIHBhY2thZ2Ugb2JqZWN0XG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHBhY2thZ2UgaXMgbm90IGZvdW5kIGxvY2FsbHkgb3IgZ2xvYmFsbHlcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVxdWlyZVBhY2thZ2UgKHBhY2thZ2VOYW1lKSB7XG4gIC8vIGZpcnN0LCBnZXQgaXQgaW4gdGhlIG5vcm1hbCB3YXkgKHNlZSBodHRwczovL25vZGVqcy5vcmcvYXBpL21vZHVsZXMuaHRtbCNtb2R1bGVzX2FsbF90b2dldGhlcilcbiAgdHJ5IHtcbiAgICBsb2cuZGVidWcoYExvYWRpbmcgbG9jYWwgcGFja2FnZSAnJHtwYWNrYWdlTmFtZX0nYCk7XG4gICAgcmV0dXJuIHJlcXVpcmUocGFja2FnZU5hbWUpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2cuZGVidWcoYEZhaWxlZCB0byBsb2FkIGxvY2FsIHBhY2thZ2UgJyR7cGFja2FnZU5hbWV9JzogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxuXG4gIC8vIHNlY29uZCwgZ2V0IGl0IGZyb20gd2hlcmUgaXQgb3VnaHQgdG8gYmUgaW4gdGhlIGdsb2JhbCBub2RlX21vZHVsZXNcbiAgdHJ5IHtcbiAgICBjb25zdCBnbG9iYWxQYWNrYWdlTmFtZSA9IHBhdGgucmVzb2x2ZShwcm9jZXNzLmVudi5ucG1fY29uZmlnX3ByZWZpeCA/PyAnJywgJ2xpYicsICdub2RlX21vZHVsZXMnLCBwYWNrYWdlTmFtZSk7XG4gICAgbG9nLmRlYnVnKGBMb2FkaW5nIGdsb2JhbCBwYWNrYWdlICcke2dsb2JhbFBhY2thZ2VOYW1lfSdgKTtcbiAgICByZXR1cm4gcmVxdWlyZShnbG9iYWxQYWNrYWdlTmFtZSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5kZWJ1ZyhgRmFpbGVkIHRvIGxvYWQgZ2xvYmFsIHBhY2thZ2UgJyR7cGFja2FnZU5hbWV9JzogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxuXG4gIC8vIHRoaXJkLCBsaW5rIHRoZSBmaWxlIGFuZCBnZXQgbG9jYWxseVxuICB0cnkge1xuICAgIGF3YWl0IGxpbmtHbG9iYWxQYWNrYWdlKHBhY2thZ2VOYW1lKTtcbiAgICBsb2cuZGVidWcoYFJldHJ5aW5nIGxvYWQgb2YgbGlua2VkIHBhY2thZ2UgJyR7cGFja2FnZU5hbWV9J2ApO1xuICAgIHJldHVybiByZXF1aXJlKHBhY2thZ2VOYW1lKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coYFVuYWJsZSB0byBsb2FkIHBhY2thZ2UgJyR7cGFja2FnZU5hbWV9JzogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBleHRyYWN0QWxsUHJvcGVydGllcyAob2JqKSB7XG4gIGNvbnN0IHN0cmluZ1Byb3BlcnRpZXMgPSBbXTtcbiAgZm9yIChjb25zdCBwcm9wIGluIG9iaikge1xuICAgIHN0cmluZ1Byb3BlcnRpZXMucHVzaChwcm9wKTtcbiAgfVxuICBpZiAoXy5pc0Z1bmN0aW9uKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpKSB7XG4gICAgc3RyaW5nUHJvcGVydGllcy5wdXNoKC4uLihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iaikpKTtcbiAgfVxuICByZXR1cm4gc3RyaW5nUHJvcGVydGllcztcbn1cblxuZnVuY3Rpb24gX2dldFNpemVPZk9iamVjdCAoc2Vlbiwgb2JqZWN0KSB7XG4gIGlmIChfLmlzTmlsKG9iamVjdCkpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGxldCBieXRlcyA9IDA7XG4gIGNvbnN0IHByb3BlcnRpZXMgPSBleHRyYWN0QWxsUHJvcGVydGllcyhvYmplY3QpO1xuICBmb3IgKGNvbnN0IGtleSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgLy8gRG8gbm90IHJlY2FsY3VsYXRlIGNpcmN1bGFyIHJlZmVyZW5jZXNcbiAgICBpZiAodHlwZW9mIG9iamVjdFtrZXldID09PSAnb2JqZWN0JyAmJiAhXy5pc05pbChvYmplY3Rba2V5XSkpIHtcbiAgICAgIGlmIChzZWVuLmhhcyhvYmplY3Rba2V5XSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBzZWVuLmFkZChvYmplY3Rba2V5XSk7XG4gICAgfVxuXG4gICAgYnl0ZXMgKz0gZ2V0Q2FsY3VsYXRvcihzZWVuKShrZXkpO1xuICAgIHRyeSB7XG4gICAgICBieXRlcyArPSBnZXRDYWxjdWxhdG9yKHNlZW4pKG9iamVjdFtrZXldKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgaWYgKGV4IGluc3RhbmNlb2YgUmFuZ2VFcnJvcikge1xuICAgICAgICAvLyBjaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQsIGZpbmFsIHJlc3VsdCBtaWdodCBiZSBpbmNvcnJlY3RcbiAgICAgICAgLy8gbGV0J3MgYmUgbmljZSBhbmQgbm90IHRocm93IGFuIGV4Y2VwdGlvblxuICAgICAgICBieXRlcyA9IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGJ5dGVzO1xufVxuXG5mdW5jdGlvbiBnZXRDYWxjdWxhdG9yIChzZWVuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBjYWxjdWxhdG9yIChvYmopIHtcbiAgICBpZiAoXy5pc0J1ZmZlcihvYmopKSB7XG4gICAgICByZXR1cm4gb2JqLmxlbmd0aDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHR5cGVvZiAob2JqKSkge1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgcmV0dXJuIG9iai5sZW5ndGggKiBFQ01BX1NJWkVTLlNUUklORztcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICByZXR1cm4gRUNNQV9TSVpFUy5CT09MRUFOO1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgcmV0dXJuIEVDTUFfU0laRVMuTlVNQkVSO1xuICAgICAgY2FzZSAnc3ltYm9sJzpcbiAgICAgICAgcmV0dXJuIF8uaXNGdW5jdGlvbihTeW1ib2wua2V5Rm9yKSAmJiBTeW1ib2wua2V5Rm9yKG9iailcbiAgICAgICAgICA/IC8qKiBAdHlwZSB7c3RyaW5nfSAqLyhTeW1ib2wua2V5Rm9yKG9iaikpLmxlbmd0aCAqIEVDTUFfU0laRVMuU1RSSU5HXG4gICAgICAgICAgOiAob2JqLnRvU3RyaW5nKCkubGVuZ3RoIC0gOCkgKiBFQ01BX1NJWkVTLlNUUklORztcbiAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgIHJldHVybiBfLmlzQXJyYXkob2JqKVxuICAgICAgICAgID8gb2JqLm1hcChnZXRDYWxjdWxhdG9yKHNlZW4pKS5yZWR1Y2UoKGFjYywgY3VycikgPT4gYWNjICsgY3VyciwgMClcbiAgICAgICAgICA6IF9nZXRTaXplT2ZPYmplY3Qoc2Vlbiwgb2JqKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgdGhlIGluLWRlcHRoIHNpemUgaW4gbWVtb3J5IG9mIHRoZSBwcm92aWRlZCBvYmplY3QuXG4gKiBUaGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24gaXMgYm9ycm93ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbWlrdGFtL3NpemVvZi5cbiAqXG4gKiBAcGFyYW0geyp9IG9iaiBBbiBvYmplY3Qgd2hvc2Ugc2l6ZSBzaG91bGQgYmUgY2FsY3VsYXRlZFxuICogQHJldHVybnMge251bWJlcn0gT2JqZWN0IHNpemUgaW4gYnl0ZXMuXG4gKi9cbmZ1bmN0aW9uIGdldE9iamVjdFNpemUgKG9iaikge1xuICByZXR1cm4gZ2V0Q2FsY3VsYXRvcihuZXcgV2Vha1NldCgpKShvYmopO1xufVxuXG5jb25zdCBPQkpFQ1RTX01BUFBJTkcgPSBuZXcgV2Vha01hcCgpO1xuXG4vKipcbiAqIENhbGN1bGF0ZXMgYSB1bmlxdWUgb2JqZWN0IGlkZW50aWZpZXJcbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gb2JqZWN0IEFueSB2YWxpZCBFQ01BIG9iamVjdFxuICogQHJldHVybnMge3N0cmluZ30gQSB1dWlkVjQgc3RyaW5nIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyBnaXZlbiBvYmplY3RcbiAqL1xuZnVuY3Rpb24gZ2V0T2JqZWN0SWQgKG9iamVjdCkge1xuICBpZiAoIU9CSkVDVFNfTUFQUElORy5oYXMob2JqZWN0KSkge1xuICAgIE9CSkVDVFNfTUFQUElORy5zZXQob2JqZWN0LCB1dWlkVjQoKSk7XG4gIH1cbiAgcmV0dXJuIE9CSkVDVFNfTUFQUElORy5nZXQob2JqZWN0KTtcbn1cblxuLyoqXG4gKiBQZXJmb3JtIGRlZXAgZnJlZXplIG9mIHRoZSBnaXZlbiBvYmplY3QgKGUuIGcuXG4gKiBhbGwgbmVzdGVkIG9iamVjdHMgYWxzbyBiZWNvbWUgaW1tdXRhYmxlKS5cbiAqIElmIHRoZSBwYXNzZWQgb2JqZWN0IGlzIG9mIGEgcGxhaW4gdHlwZVxuICogdGhlbiBubyBjaGFuZ2UgaXMgZG9uZSBhbmQgdGhlIHNhbWUgb2JqZWN0XG4gKiBpcyByZXR1cm5lZC5cbiAqICEgVGhpcyBmdW5jdGlvbiBjaGFuZ2VzIHRoZSBnaXZlbiBvYmplY3QsXG4gKiBzbyBpdCBiZWNvbWVzIGltbXV0YWJsZS5cbiAqXG4gKiBAcGFyYW0geyp9IG9iamVjdCBBbnkgdmFsaWQgRUNNQSBvYmplY3RcbiAqIEByZXR1cm5zIHsqfSBUaGUgc2FtZSBvYmplY3QgdGhhdCB3YXMgcGFzc2VkIHRvIHRoZVxuICogZnVuY3Rpb24gYWZ0ZXIgaXQgd2FzIG1hZGUgaW1tdXRhYmxlLlxuICovXG5mdW5jdGlvbiBkZWVwRnJlZXplIChvYmplY3QpIHtcbiAgbGV0IHByb3BOYW1lcztcbiAgdHJ5IHtcbiAgICBwcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpO1xuICB9IGNhdGNoIChpZ24pIHtcbiAgICByZXR1cm4gb2JqZWN0O1xuICB9XG4gIGZvciAoY29uc3QgbmFtZSBvZiBwcm9wTmFtZXMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG9iamVjdFtuYW1lXTtcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgZGVlcEZyZWV6ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBPYmplY3QuZnJlZXplKG9iamVjdCk7XG59XG5cbmV4cG9ydCB7IHJlcXVpcmVQYWNrYWdlLCBnZXRPYmplY3RTaXplLCBnZXRPYmplY3RJZCwgZGVlcEZyZWV6ZSB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFVBQVUsR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWM7RUFDL0JDLE1BQU0sRUFBRSxDQUR1QjtFQUUvQkMsT0FBTyxFQUFFLENBRnNCO0VBRy9CQyxNQUFNLEVBQUU7QUFIdUIsQ0FBZCxDQUFuQjs7QUFZQSxlQUFlQyxpQkFBZixDQUFrQ0MsV0FBbEMsRUFBK0M7RUFDN0MsSUFBSTtJQUNGQyxnQkFBSUMsS0FBSixDQUFXLG9CQUFtQkYsV0FBWSxHQUExQzs7SUFDQSxNQUFNRyxHQUFHLEdBQUcsMkJBQWMsU0FBZCxHQUEwQixLQUF0QztJQUNBLE1BQU0sd0JBQUtBLEdBQUwsRUFBVSxDQUFDLE1BQUQsRUFBU0gsV0FBVCxDQUFWLEVBQWlDO01BQUNJLE9BQU8sRUFBRTtJQUFW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
|
package/build/lib/npm.js
CHANGED
|
@@ -214,4 +214,4 @@ class NPM {
|
|
|
214
214
|
exports.NPM = NPM;
|
|
215
215
|
const npm = new NPM();
|
|
216
216
|
exports.npm = npm;
|
|
217
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9ucG0uanMiXSwibmFtZXMiOlsiQ0FDSEVfRElSX1JFTEFUSVZFX1BBVEgiLCJwYXRoIiwiam9pbiIsIklOU1RBTExfTE9DS0ZJTEVfUkVMQVRJVkVfUEFUSCIsIk5QTSIsIl9nZXRJbnN0YWxsTG9ja2ZpbGVQYXRoIiwiY3dkIiwiZXhlYyIsImNtZCIsImFyZ3MiLCJvcHRzIiwiZXhlY09wdHMiLCJqc29uIiwibG9ja0ZpbGUiLCJ1bnNoaWZ0IiwicHVzaCIsIm5wbUNtZCIsInN5c3RlbSIsImlzV2luZG93cyIsInJ1bm5lciIsImFjcXVpcmVMb2NrIiwidXRpbCIsImdldExvY2tGaWxlR3VhcmQiLCJfcnVubmVyIiwicmV0Iiwic3Rkb3V0Iiwic3RkZXJyIiwiY29kZSIsIkpTT04iLCJwYXJzZSIsImlnbiIsImUiLCJlcnIiLCJFcnJvciIsInRyaW0iLCJnZXRMYXRlc3RWZXJzaW9uIiwicGtnIiwibGF0ZXN0IiwiZ2V0TGF0ZXN0U2FmZVVwZ3JhZGVWZXJzaW9uIiwiY3VyVmVyc2lvbiIsImFsbFZlcnNpb25zIiwiZ2V0TGF0ZXN0U2FmZVVwZ3JhZGVGcm9tVmVyc2lvbnMiLCJsaXN0Iiwic2FmZVVwZ3JhZGVWZXIiLCJjdXJTZW12ZXIiLCJzZW12ZXIiLCJ0ZXN0VmVyIiwidGVzdFNlbXZlciIsInByZXJlbGVhc2UiLCJsZW5ndGgiLCJjb21wYXJlIiwibWFqb3IiLCJmb3JtYXQiLCJpbnN0YWxsUGFja2FnZSIsInBrZ05hbWUiLCJwa2dWZXIiLCJkdW1teVBrZ0pzb24iLCJkdW1teVBrZ1BhdGgiLCJmcyIsInJlYWRGaWxlIiwid3JpdGVGaWxlIiwic3RyaW5naWZ5IiwiaW5zdGFsbE9wdHMiLCJyZXMiLCJlcnJvciIsInBrZ0pzb25QYXRoIiwicmVxdWlyZSIsInVuaW5zdGFsbFBhY2thZ2UiLCJucG0iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7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QztBQUVsQ08sTUFBQUEsUUFBUSxFQUFFLEtBQUtSLHVCQUFMLENBQTZCQyxHQUE3QjtBQUZ3QixLQUE5QixDQUFOO0FBSUQ7O0FBcE5jOzs7QUF1TlYsTUFBTThELEdBQUcsR0FBRyxJQUFJaEUsR0FBSixFQUFaIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgaGFzQXBwaXVtRGVwZW5kZW5jeSB9IGZyb20gJy4vZW52JztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHsgZnMgfSBmcm9tICcuL2ZzJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi91dGlsJztcbmltcG9ydCAqIGFzIHN5c3RlbSBmcm9tICcuL3N5c3RlbSc7XG5pbXBvcnQgcmVzb2x2ZUZyb20gZnJvbSAncmVzb2x2ZS1mcm9tJztcblxuXG4vKipcbiAqIFJlbGF0aXZlIHBhdGggdG8gZGlyZWN0b3J5IGNvbnRhaW5pbmcgYW55IEFwcGl1bSBpbnRlcm5hbCBmaWxlc1xuICogWFhYOiB0aGlzIGlzIGR1cGxpY2F0ZWQgaW4gYGFwcGl1bS9saWIvY29uc3RhbnRzLmpzYC5cbiAqL1xuZXhwb3J0IGNvbnN0IENBQ0hFX0RJUl9SRUxBVElWRV9QQVRIID0gcGF0aC5qb2luKFxuICAnbm9kZV9tb2R1bGVzJyxcbiAgJy5jYWNoZScsXG4gICdhcHBpdW0nLFxuKTtcblxuLyoqXG4gKiBSZWxhdGl2ZSBwYXRoIHRvIGxvY2tmaWxlIHVzZWQgd2hlbiBpbnN0YWxsaW5nIGFuIGV4dGVuc2lvbiB2aWEgYGFwcGl1bWBcbiAqL1xuZXhwb3J0IGNvbnN0IElOU1RBTExfTE9DS0ZJTEVfUkVMQVRJVkVfUEFUSCA9IHBhdGguam9pbihcbiAgQ0FDSEVfRElSX1JFTEFUSVZFX1BBVEgsXG4gICcuaW5zdGFsbC5sb2NrJyxcbik7XG5cbi8qKlxuICogWFhYOiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSBhIHNpbmdsZXRvbiwgYnV0IGl0IGlzbid0LiAgTWF5YmUgdGhpcyBtb2R1bGUgc2hvdWxkIGp1c3QgZXhwb3J0IGZ1bmN0aW9ucz9cbiAqL1xuZXhwb3J0IGNsYXNzIE5QTSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHBhdGggdG8gXCJpbnN0YWxsXCIgbG9ja2ZpbGVcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGN3ZFxuICAgKi9cbiAgX2dldEluc3RhbGxMb2NrZmlsZVBhdGggKGN3ZCkge1xuICAgIHJldHVybiBwYXRoLmpvaW4oY3dkLCBJTlNUQUxMX0xPQ0tGSUxFX1JFTEFUSVZFX1BBVEgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgYG5wbWAgd2l0aCBnaXZlbiBhcmdzLlxuICAgKlxuICAgKiBJZiB0aGUgcHJvY2VzcyBleGl0cyB3aXRoIGEgbm9uemVybyBjb2RlLCB0aGUgY29udGVudHMgb2YgYFNURE9VVGAgYW5kIGBTVERFUlJgIHdpbGwgYmUgaW4gdGhlXG4gICAqIGBtZXNzYWdlYCBvZiB0aGUge0BsaW5rIFRlZW5Qcm9jZXNzRXhlY0Vycm9yfSByZWplY3RlZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGNtZFxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmdzXG4gICAqIEBwYXJhbSB7RXhlY09wdHN9IG9wdHNcbiAgICogQHBhcmFtIHtFeGVjT3B0c30gW2V4ZWNPcHRzXVxuICAgKi9cbiAgYXN5bmMgZXhlYyAoY21kLCBhcmdzLCBvcHRzLCBleGVjT3B0cyA9IC8qKiBAdHlwZSB7RXhlY09wdHN9ICovKHt9KSkge1xuICAgIGxldCB7IGN3ZCwganNvbiwgbG9ja0ZpbGUgfSA9IG9wdHM7XG5cbiAgICAvLyBtYWtlIHN1cmUgd2UgcGVyZm9ybSB0aGUgY3VycmVudCBvcGVyYXRpb24gaW4gY3dkXG4gICAgZXhlY09wdHMgPSB7Li4uZXhlY09wdHMsIGN3ZH07XG5cbiAgICBhcmdzLnVuc2hpZnQoY21kKTtcbiAgICBpZiAoanNvbikge1xuICAgICAgYXJncy5wdXNoKCctLWpzb24nKTtcbiAgICB9XG4gICAgY29uc3QgbnBtQ21kID0gc3lzdGVtLmlzV2luZG93cygpID8gJ25wbS5jbWQnIDogJ25wbSc7XG4gICAgbGV0IHJ1bm5lciA9IGFzeW5jICgpID0+IGF3YWl0IGV4ZWMobnBtQ21kLCBhcmdzLCBleGVjT3B0cyk7XG4gICAgaWYgKGxvY2tGaWxlKSB7XG4gICAgICBjb25zdCBhY3F1aXJlTG9jayA9IHV0aWwuZ2V0TG9ja0ZpbGVHdWFyZChsb2NrRmlsZSk7XG4gICAgICBjb25zdCBfcnVubmVyID0gcnVubmVyO1xuICAgICAgcnVubmVyID0gYXN5bmMgKCkgPT4gYXdhaXQgYWNxdWlyZUxvY2soX3J1bm5lcik7XG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHtpbXBvcnQoJ3RlZW5fcHJvY2VzcycpLkV4ZWNSZXN1bHQ8c3RyaW5nPiAmIHtqc29uPzogYW55fX0gKi9cbiAgICBsZXQgcmV0O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7c3Rkb3V0LCBzdGRlcnIsIGNvZGV9ID0gYXdhaXQgcnVubmVyKCk7XG4gICAgICByZXQgPSB7c3Rkb3V0LCBzdGRlcnIsIGNvZGV9O1xuICAgICAgLy8gaWYgcG9zc2libGUsIHBhcnNlIE5QTSdzIGpzb24gb3V0cHV0LiBEdXJpbmcgTlBNIGluc3RhbGwgM3JkLXBhcnR5XG4gICAgICAvLyBwYWNrYWdlcyBjYW4gd3JpdGUgdG8gc3Rkb3V0LCBzbyBzb21ldGltZXMgdGhlIGpzb24gb3V0cHV0IGNhbid0IGJlXG4gICAgICAvLyBndWFyYW50ZWVkIHRvIGJlIHBhcnNlYWJsZVxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0Lmpzb24gPSBKU09OLnBhcnNlKHN0ZG91dCk7XG4gICAgICB9IGNhdGNoIChpZ24pIHt9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc3Qge3N0ZG91dCA9ICcnLCBzdGRlcnIgPSAnJywgY29kZSA9IG51bGx9ID0gLyoqIEB0eXBlIHtUZWVuUHJvY2Vzc0V4ZWNFcnJvcn0gKi8oZSk7XG4gICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoYG5wbSBjb21tYW5kICcke2FyZ3Muam9pbignICcpfScgZmFpbGVkIHdpdGggY29kZSAke2NvZGV9LlxcblxcblNURE9VVDpcXG4ke3N0ZG91dC50cmltKCl9XFxuXFxuU1RERVJSOlxcbiR7c3RkZXJyLnRyaW0oKX1gKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3dkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwa2dcbiAgICovXG4gIGFzeW5jIGdldExhdGVzdFZlcnNpb24gKGN3ZCwgcGtnKSB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmV4ZWMoJ3ZpZXcnLCBbcGtnLCAnZGlzdC10YWdzJ10sIHtcbiAgICAgIGpzb246IHRydWUsXG4gICAgICBjd2RcbiAgICB9KSkuanNvbj8ubGF0ZXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjd2RcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBrZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gY3VyVmVyc2lvblxuICAgKi9cbiAgYXN5bmMgZ2V0TGF0ZXN0U2FmZVVwZ3JhZGVWZXJzaW9uIChjd2QsIHBrZywgY3VyVmVyc2lvbikge1xuICAgIGNvbnN0IGFsbFZlcnNpb25zID0gKGF3YWl0IHRoaXMuZXhlYygndmlldycsIFtwa2csICd2ZXJzaW9ucyddLCB7XG4gICAgICBqc29uOiB0cnVlLFxuICAgICAgY3dkXG4gICAgfSkpLmpzb247XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGF0ZXN0U2FmZVVwZ3JhZGVGcm9tVmVyc2lvbnMoY3VyVmVyc2lvbiwgYWxsVmVyc2lvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYG5wbSBsc2AsIG9wdGlvbmFsbHkgZm9yIGEgcGFydGljdWxhciBwYWNrYWdlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3dkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGtnXVxuICAgKi9cbiAgYXN5bmMgbGlzdCAoY3dkLCBwa2cpIHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZXhlYygnbGlzdCcsIHBrZyA/IFtwa2ddIDogW10sIHtjd2QsIGpzb246IHRydWV9KSkuanNvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhIGN1cnJlbnQgdmVyc2lvbiBhbmQgYSBsaXN0IG9mIGFsbCB2ZXJzaW9ucyBmb3IgYSBwYWNrYWdlLCByZXR1cm4gdGhlIHZlcnNpb24gd2hpY2ggaXNcbiAgICogdGhlIGhpZ2hlc3Qgc2FmZWx5LXVwZ3JhZGFibGUgdmVyc2lvbiAobWVhbmluZyBub3QgY3Jvc3NpbmcgYW55IG1ham9yIHJldmlzaW9uIGJvdW5kYXJpZXMsIGFuZFxuICAgKiBub3QgaW5jbHVkaW5nIGFueSBhbHBoYS9iZXRhL3JjIHZlcnNpb25zKVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3VyVmVyc2lvbiAtIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgYSBwYWNrYWdlXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gYWxsVmVyc2lvbnMgLSBhIGxpc3Qgb2YgdmVyc2lvbiBzdHJpbmdzXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ3xudWxsfSAtIHRoZSBoaWdoZXN0IHNhZmVseS11cGdyYWRhYmxlIHZlcnNpb24sIG9yIG51bGwgaWYgdGhlcmUgaXNuJ3Qgb25lXG4gICAqL1xuICBnZXRMYXRlc3RTYWZlVXBncmFkZUZyb21WZXJzaW9ucyAoY3VyVmVyc2lvbiwgYWxsVmVyc2lvbnMpIHtcbiAgICBsZXQgc2FmZVVwZ3JhZGVWZXIgPSBudWxsO1xuICAgIGNvbnN0IGN1clNlbXZlciA9IHNlbXZlci5wYXJzZShjdXJWZXJzaW9uKTtcbiAgICBpZiAoY3VyU2VtdmVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBwYXJzZSBjdXJyZW50IHZlcnNpb24gJyR7Y3VyVmVyc2lvbn0nYCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgdGVzdFZlciBvZiBhbGxWZXJzaW9ucykge1xuICAgICAgY29uc3QgdGVzdFNlbXZlciA9IHNlbXZlci5wYXJzZSh0ZXN0VmVyKTtcbiAgICAgIGlmICh0ZXN0U2VtdmVyID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IHBhcnNlIHZlcnNpb24gdG8gdGVzdCBhZ2FpbnN0OiAnJHt0ZXN0VmVyfSdgKTtcbiAgICAgIH1cbiAgICAgIC8vIGlmIHRoZSB0ZXN0IHZlcnNpb24gaXMgYSBwcmVyZWxlYXNlLCBpZ25vcmUgaXRcbiAgICAgIGlmICh0ZXN0U2VtdmVyLnByZXJlbGVhc2UubGVuZ3RoID4gMCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8vIGlmIHRoZSBjdXJyZW50IHZlcnNpb24gaXMgbGF0ZXIgdGhhbiB0aGUgdGVzdCB2ZXJzaW9uLCBza2lwIHRoaXMgdGVzdCB2ZXJzaW9uXG4gICAgICBpZiAoY3VyU2VtdmVyLmNvbXBhcmUodGVzdFNlbXZlcikgPT09IDEpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvLyBpZiB0aGUgdGVzdCB2ZXJzaW9uIGlzIG5ld2VyLCBidXQgY3Jvc3NlcyBhIG1ham9yIHJldmlzaW9uIGJvdW5kYXJ5LCBhbHNvIHNraXAgaXRcbiAgICAgIGlmICh0ZXN0U2VtdmVyLm1ham9yID4gY3VyU2VtdmVyLm1ham9yKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgLy8gb3RoZXJ3aXNlIHRoaXMgdmVyc2lvbiBpcyBzYWZlIHRvIHVwZ3JhZGUgdG8uIEJ1dCB0aGVyZSBtaWdodCBiZSBtdWx0aXBsZSBvbmVzIG9mIHRoaXNcbiAgICAgIC8vIGtpbmQsIHNvIGtlZXAgaXRlcmF0aW5nIGFuZCBrZWVwaW5nIHRoZSBoaWdoZXN0XG4gICAgICBpZiAoc2FmZVVwZ3JhZGVWZXIgPT09IG51bGwgfHwgdGVzdFNlbXZlci5jb21wYXJlKHNhZmVVcGdyYWRlVmVyKSA9PT0gMSkge1xuICAgICAgICBzYWZlVXBncmFkZVZlciA9IHRlc3RTZW12ZXI7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzYWZlVXBncmFkZVZlcikge1xuICAgICAgc2FmZVVwZ3JhZGVWZXIgPSBzYWZlVXBncmFkZVZlci5mb3JtYXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHNhZmVVcGdyYWRlVmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc3RhbGxzIGEgcGFja2FnZSB3LyBgbnBtYFxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3dkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwa2dOYW1lXG4gICAqIEBwYXJhbSB7SW5zdGFsbFBhY2thZ2VPcHRzfSBbb3B0c11cbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KCd0eXBlLWZlc3QnKS5QYWNrYWdlSnNvbj59XG4gICAqL1xuICBhc3luYyBpbnN0YWxsUGFja2FnZSAoY3dkLCBwa2dOYW1lLCB7cGtnVmVyfSA9IHt9KSB7XG4gICAgLyoqIEB0eXBlIHthbnl9ICovXG4gICAgbGV0IGR1bW15UGtnSnNvbjtcbiAgICBjb25zdCBkdW1teVBrZ1BhdGggPSBwYXRoLmpvaW4oY3dkLCAncGFja2FnZS5qc29uJyk7XG4gICAgdHJ5IHtcbiAgICAgIGR1bW15UGtnSnNvbiA9IEpTT04ucGFyc2UoYXdhaXQgZnMucmVhZEZpbGUoZHVtbXlQa2dQYXRoLCAndXRmOCcpKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIuY29kZSA9PT0gJ0VOT0VOVCcpIHtcbiAgICAgICAgZHVtbXlQa2dKc29uID0ge307XG4gICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShkdW1teVBrZ1BhdGgsIEpTT04uc3RyaW5naWZ5KGR1bW15UGtnSnNvbiwgbnVsbCwgMiksICd1dGY4Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWYgd2UndmUgZm91bmQgYSBgcGFja2FnZS5qc29uYCBjb250YWluaW5lZCB0aGUgYGFwcGl1bUNyZWF0ZWRgIHByb3BlcnR5LFxuICAgICAqIHRoZW4gd2UgY2FuIGRvIHdoYXRldmVyIHdlIHBsZWFzZSB3aXRoIGl0LCBzaW5jZSB3ZSBjcmVhdGVkIGl0LiAgVGhpcyBpc1xuICAgICAqIGxpa2VseSB3aGVuIGBBUFBJVU1fSE9NRWAgaXMgdGhlIGRlZmF1bHQgKGluIGB+Ly5hcHBpdW1gKS4gIEluIHRoYXQgY2FzZSxcbiAgICAgKiB3ZSB3YW50IGAtLWdsb2JhbC1zdHlsZWAgdG8gYXZvaWQgZGVkdXBpbmcsIGFuZCB3ZSBhbHNvIGRvIG5vdCBuZWVkIGFcbiAgICAgKiBgcGFja2FnZS1sb2NrLmpzb25gLlxuICAgICAqXG4gICAgICogSWYgd2UgX2hhdmVuJ3RfIGZvdW5kIHN1Y2ggYSBrZXksIHRoZW4gdGhpcyBgcGFja2FnZS5qc29uYCBpc24ndCBhXG4gICAgICogXCJkdW1teVwiIGFuZCBpcyBjb250cm9sbGVkIGJ5IHRoZSB1c2VyLiAgU28gd2UnbGwganVzdCBhZGQgaXQgYXMgYSBkZXZcbiAgICAgKiBkZXA7IHdoYXRldmVyIGVsc2UgaXQgZG9lcyBpcyB1cCB0byB0aGUgdXNlcidzIG5wbSBjb25maWcuXG4gICAgICovXG4gICAgY29uc3QgaW5zdGFsbE9wdHMgPSBhd2FpdCBoYXNBcHBpdW1EZXBlbmRlbmN5KGN3ZCkgP1xuICAgICAgWyctLXNhdmUtZGV2J10gOlxuICAgICAgWyctLXNhdmUtZGV2JywgJy0tc2F2ZS1leGFjdCcsICctLWdsb2JhbC1zdHlsZScsICctLW5vLXBhY2thZ2UtbG9jayddO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5leGVjKCdpbnN0YWxsJywgW1xuICAgICAgLi4uaW5zdGFsbE9wdHMsXG4gICAgICBwa2dWZXIgPyBgJHtwa2dOYW1lfUAke3BrZ1Zlcn1gIDogcGtnTmFtZVxuICAgIF0sIHtcbiAgICAgIGN3ZCxcbiAgICAgIGpzb246IHRydWUsXG4gICAgICBsb2NrRmlsZTogdGhpcy5fZ2V0SW5zdGFsbExvY2tmaWxlUGF0aChjd2QpXG4gICAgfSk7XG5cbiAgICBpZiAocmVzLmpzb24pIHtcbiAgICAgIC8vIHdlIHBhcnNlZCBhIHZhbGlkIGpzb24gcmVzcG9uc2UsIHNvIGlmIHdlIGdvdCBhbiBlcnJvciBoZXJlLCByZXR1cm4gdGhhdFxuICAgICAgLy8gbWVzc2FnZSBzdHJhaWdodGF3YXlcbiAgICAgIGlmIChyZXMuanNvbi5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzLmpzb24uZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5vdyByZWFkIHBhY2thZ2UgZGF0YSBmcm9tIHRoZSBpbnN0YWxsZWQgcGFja2FnZSB0byByZXR1cm4sIGFuZCBtYWtlIHN1cmVcbiAgICAvLyBldmVyeXRoaW5nIGdvdCBpbnN0YWxsZWQgb2suIFJlbWVtYmVyLCBwa2dOYW1lIG1pZ2h0IGVuZCB1cCB3aXRoIGEgLyBpbiBpdCBkdWUgdG8gYW4gbnBtXG4gICAgLy8gb3JnLCBzbyBpZiBzbywgdGhhdCB3aWxsIGdldCBjb3JyZWN0bHkgZXhwbG9kZWQgaW50byBtdWx0aXBsZSBkaXJlY3RvcmllcywgYnkgcGF0aC5yZXNvbHZlIGhlcmVcbiAgICAvLyAoZXZlbiBvbiBXaW5kb3dzISlcbiAgICBjb25zdCBwa2dKc29uUGF0aCA9IHJlc29sdmVGcm9tKGN3ZCwgYCR7cGtnTmFtZX0vcGFja2FnZS5qc29uYCk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiByZXF1aXJlKHBrZ0pzb25QYXRoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHBhY2thZ2Ugd2FzIG5vdCBkb3dubG9hZGVkIGNvcnJlY3RseTsgaXRzIHBhY2thZ2UuanNvbiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAnZGlkIG5vdCBleGlzdCBvciB3YXMgdW5yZWFkYWJsZS4gV2UgbG9va2VkIGZvciBpdCBhdCAnICtcbiAgICAgICAgICAgICAgICAgICAgICBwa2dKc29uUGF0aCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjd2RcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBrZ1xuICAgKi9cbiAgYXN5bmMgdW5pbnN0YWxsUGFja2FnZSAoY3dkLCBwa2cpIHtcbiAgICBhd2FpdCB0aGlzLmV4ZWMoJ3VuaW5zdGFsbCcsIFtwa2ddLCB7XG4gICAgICBjd2QsXG4gICAgICBsb2NrRmlsZTogdGhpcy5fZ2V0SW5zdGFsbExvY2tmaWxlUGF0aChjd2QpXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG5wbSA9IG5ldyBOUE0oKTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgTlBNLmluc3RhbGxQYWNrYWdlfVxuICogQHR5cGVkZWYgSW5zdGFsbFBhY2thZ2VPcHRzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3BrZ1Zlcl0gLSB0aGUgdmVyc2lvbiBvZiB0aGUgcGFja2FnZSB0byBpbnN0YWxsXG4gKi9cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgTlBNLmV4ZWN9XG4gKiBAdHlwZWRlZiBFeGVjT3B0c1xuICogQHByb3BlcnR5IHtzdHJpbmd9IGN3ZCAtIEN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnlcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2pzb25dIC0gSWYgYHRydWVgLCBzdXBwbHkgYC0tanNvbmAgZmxhZyB0byBucG0gYW5kIHJlc29sdmUgdy8gcGFyc2VkIEpTT05cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbbG9ja0ZpbGVdIC0gUGF0aCB0byBsb2NrZmlsZSB0byB1c2VcbiAqL1xuXG4vLyBUSEVTRSBUWVBFUyBTSE9VTEQgQkUgSU4gVEVFTiBQUk9DRVNTLCBOT1QgSEVSRVxuXG4vKipcbiAqIEV4dHJhIHByb3BzIGB0ZWVuX3Byb2Nlc3MuZXhlY2AgYWRkcyB0byBpdHMgZXJyb3Igb2JqZWN0c1xuICogQHR5cGVkZWYgVGVlblByb2Nlc3NFeGVjRXJyb3JQcm9wc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IHN0ZG91dCAtIFNURE9VVFxuICogQHByb3BlcnR5IHtzdHJpbmd9IHN0ZGVyciAtIFNUREVSUlxuICogQHByb3BlcnR5IHtudW1iZXI/fSBjb2RlIC0gRXhpdCBjb2RlXG4gKi9cblxuLyoqXG4gKiBFcnJvciB0aHJvd24gYnkgYHRlZW5fcHJvY2Vzcy5leGVjYFxuICogQHR5cGVkZWYge0Vycm9yICYgVGVlblByb2Nlc3NFeGVjRXJyb3JQcm9wc30gVGVlblByb2Nlc3NFeGVjRXJyb3JcbiAqL1xuIl19
|
|
217
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDQUNIRV9ESVJfUkVMQVRJVkVfUEFUSCIsInBhdGgiLCJqb2luIiwiSU5TVEFMTF9MT0NLRklMRV9SRUxBVElWRV9QQVRIIiwiTlBNIiwiX2dldEluc3RhbGxMb2NrZmlsZVBhdGgiLCJjd2QiLCJleGVjIiwiY21kIiwiYXJncyIsIm9wdHMiLCJleGVjT3B0cyIsImpzb24iLCJsb2NrRmlsZSIsInVuc2hpZnQiLCJwdXNoIiwibnBtQ21kIiwic3lzdGVtIiwiaXNXaW5kb3dzIiwicnVubmVyIiwiYWNxdWlyZUxvY2siLCJ1dGlsIiwiZ2V0TG9ja0ZpbGVHdWFyZCIsIl9ydW5uZXIiLCJyZXQiLCJzdGRvdXQiLCJzdGRlcnIiLCJjb2RlIiwiSlNPTiIsInBhcnNlIiwiaWduIiwiZSIsImVyciIsIkVycm9yIiwidHJpbSIsImdldExhdGVzdFZlcnNpb24iLCJwa2ciLCJsYXRlc3QiLCJnZXRMYXRlc3RTYWZlVXBncmFkZVZlcnNpb24iLCJjdXJWZXJzaW9uIiwiYWxsVmVyc2lvbnMiLCJnZXRMYXRlc3RTYWZlVXBncmFkZUZyb21WZXJzaW9ucyIsImxpc3QiLCJzYWZlVXBncmFkZVZlciIsImN1clNlbXZlciIsInNlbXZlciIsInRlc3RWZXIiLCJ0ZXN0U2VtdmVyIiwicHJlcmVsZWFzZSIsImxlbmd0aCIsImNvbXBhcmUiLCJtYWpvciIsImZvcm1hdCIsImluc3RhbGxQYWNrYWdlIiwicGtnTmFtZSIsInBrZ1ZlciIsImR1bW15UGtnSnNvbiIsImR1bW15UGtnUGF0aCIsImZzIiwicmVhZEZpbGUiLCJ3cml0ZUZpbGUiLCJzdHJpbmdpZnkiLCJpbnN0YWxsT3B0cyIsInJlcyIsImVycm9yIiwicGtnSnNvblBhdGgiLCJyZXF1aXJlIiwidW5pbnN0YWxsUGFja2FnZSIsIm5wbSJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9ucG0uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgaGFzQXBwaXVtRGVwZW5kZW5jeSB9IGZyb20gJy4vZW52JztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHsgZnMgfSBmcm9tICcuL2ZzJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi91dGlsJztcbmltcG9ydCAqIGFzIHN5c3RlbSBmcm9tICcuL3N5c3RlbSc7XG5pbXBvcnQgcmVzb2x2ZUZyb20gZnJvbSAncmVzb2x2ZS1mcm9tJztcblxuXG4vKipcbiAqIFJlbGF0aXZlIHBhdGggdG8gZGlyZWN0b3J5IGNvbnRhaW5pbmcgYW55IEFwcGl1bSBpbnRlcm5hbCBmaWxlc1xuICogWFhYOiB0aGlzIGlzIGR1cGxpY2F0ZWQgaW4gYGFwcGl1bS9saWIvY29uc3RhbnRzLmpzYC5cbiAqL1xuZXhwb3J0IGNvbnN0IENBQ0hFX0RJUl9SRUxBVElWRV9QQVRIID0gcGF0aC5qb2luKFxuICAnbm9kZV9tb2R1bGVzJyxcbiAgJy5jYWNoZScsXG4gICdhcHBpdW0nLFxuKTtcblxuLyoqXG4gKiBSZWxhdGl2ZSBwYXRoIHRvIGxvY2tmaWxlIHVzZWQgd2hlbiBpbnN0YWxsaW5nIGFuIGV4dGVuc2lvbiB2aWEgYGFwcGl1bWBcbiAqL1xuZXhwb3J0IGNvbnN0IElOU1RBTExfTE9DS0ZJTEVfUkVMQVRJVkVfUEFUSCA9IHBhdGguam9pbihcbiAgQ0FDSEVfRElSX1JFTEFUSVZFX1BBVEgsXG4gICcuaW5zdGFsbC5sb2NrJyxcbik7XG5cbi8qKlxuICogWFhYOiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSBhIHNpbmdsZXRvbiwgYnV0IGl0IGlzbid0LiAgTWF5YmUgdGhpcyBtb2R1bGUgc2hvdWxkIGp1c3QgZXhwb3J0IGZ1bmN0aW9ucz9cbiAqL1xuZXhwb3J0IGNsYXNzIE5QTSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHBhdGggdG8gXCJpbnN0YWxsXCIgbG9ja2ZpbGVcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGN3ZFxuICAgKi9cbiAgX2dldEluc3RhbGxMb2NrZmlsZVBhdGggKGN3ZCkge1xuICAgIHJldHVybiBwYXRoLmpvaW4oY3dkLCBJTlNUQUxMX0xPQ0tGSUxFX1JFTEFUSVZFX1BBVEgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgYG5wbWAgd2l0aCBnaXZlbiBhcmdzLlxuICAgKlxuICAgKiBJZiB0aGUgcHJvY2VzcyBleGl0cyB3aXRoIGEgbm9uemVybyBjb2RlLCB0aGUgY29udGVudHMgb2YgYFNURE9VVGAgYW5kIGBTVERFUlJgIHdpbGwgYmUgaW4gdGhlXG4gICAqIGBtZXNzYWdlYCBvZiB0aGUge0BsaW5rIFRlZW5Qcm9jZXNzRXhlY0Vycm9yfSByZWplY3RlZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGNtZFxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmdzXG4gICAqIEBwYXJhbSB7RXhlY09wdHN9IG9wdHNcbiAgICogQHBhcmFtIHtFeGVjT3B0c30gW2V4ZWNPcHRzXVxuICAgKi9cbiAgYXN5bmMgZXhlYyAoY21kLCBhcmdzLCBvcHRzLCBleGVjT3B0cyA9IC8qKiBAdHlwZSB7RXhlY09wdHN9ICovKHt9KSkge1xuICAgIGxldCB7IGN3ZCwganNvbiwgbG9ja0ZpbGUgfSA9IG9wdHM7XG5cbiAgICAvLyBtYWtlIHN1cmUgd2UgcGVyZm9ybSB0aGUgY3VycmVudCBvcGVyYXRpb24gaW4gY3dkXG4gICAgZXhlY09wdHMgPSB7Li4uZXhlY09wdHMsIGN3ZH07XG5cbiAgICBhcmdzLnVuc2hpZnQoY21kKTtcbiAgICBpZiAoanNvbikge1xuICAgICAgYXJncy5wdXNoKCctLWpzb24nKTtcbiAgICB9XG4gICAgY29uc3QgbnBtQ21kID0gc3lzdGVtLmlzV2luZG93cygpID8gJ25wbS5jbWQnIDogJ25wbSc7XG4gICAgbGV0IHJ1bm5lciA9IGFzeW5jICgpID0+IGF3YWl0IGV4ZWMobnBtQ21kLCBhcmdzLCBleGVjT3B0cyk7XG4gICAgaWYgKGxvY2tGaWxlKSB7XG4gICAgICBjb25zdCBhY3F1aXJlTG9jayA9IHV0aWwuZ2V0TG9ja0ZpbGVHdWFyZChsb2NrRmlsZSk7XG4gICAgICBjb25zdCBfcnVubmVyID0gcnVubmVyO1xuICAgICAgcnVubmVyID0gYXN5bmMgKCkgPT4gYXdhaXQgYWNxdWlyZUxvY2soX3J1bm5lcik7XG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHtpbXBvcnQoJ3RlZW5fcHJvY2VzcycpLkV4ZWNSZXN1bHQ8c3RyaW5nPiAmIHtqc29uPzogYW55fX0gKi9cbiAgICBsZXQgcmV0O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7c3Rkb3V0LCBzdGRlcnIsIGNvZGV9ID0gYXdhaXQgcnVubmVyKCk7XG4gICAgICByZXQgPSB7c3Rkb3V0LCBzdGRlcnIsIGNvZGV9O1xuICAgICAgLy8gaWYgcG9zc2libGUsIHBhcnNlIE5QTSdzIGpzb24gb3V0cHV0LiBEdXJpbmcgTlBNIGluc3RhbGwgM3JkLXBhcnR5XG4gICAgICAvLyBwYWNrYWdlcyBjYW4gd3JpdGUgdG8gc3Rkb3V0LCBzbyBzb21ldGltZXMgdGhlIGpzb24gb3V0cHV0IGNhbid0IGJlXG4gICAgICAvLyBndWFyYW50ZWVkIHRvIGJlIHBhcnNlYWJsZVxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0Lmpzb24gPSBKU09OLnBhcnNlKHN0ZG91dCk7XG4gICAgICB9IGNhdGNoIChpZ24pIHt9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc3Qge3N0ZG91dCA9ICcnLCBzdGRlcnIgPSAnJywgY29kZSA9IG51bGx9ID0gLyoqIEB0eXBlIHtUZWVuUHJvY2Vzc0V4ZWNFcnJvcn0gKi8oZSk7XG4gICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoYG5wbSBjb21tYW5kICcke2FyZ3Muam9pbignICcpfScgZmFpbGVkIHdpdGggY29kZSAke2NvZGV9LlxcblxcblNURE9VVDpcXG4ke3N0ZG91dC50cmltKCl9XFxuXFxuU1RERVJSOlxcbiR7c3RkZXJyLnRyaW0oKX1gKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3dkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwa2dcbiAgICovXG4gIGFzeW5jIGdldExhdGVzdFZlcnNpb24gKGN3ZCwgcGtnKSB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmV4ZWMoJ3ZpZXcnLCBbcGtnLCAnZGlzdC10YWdzJ10sIHtcbiAgICAgIGpzb246IHRydWUsXG4gICAgICBjd2RcbiAgICB9KSkuanNvbj8ubGF0ZXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjd2RcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBrZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gY3VyVmVyc2lvblxuICAgKi9cbiAgYXN5bmMgZ2V0TGF0ZXN0U2FmZVVwZ3JhZGVWZXJzaW9uIChjd2QsIHBrZywgY3VyVmVyc2lvbikge1xuICAgIGNvbnN0IGFsbFZlcnNpb25zID0gKGF3YWl0IHRoaXMuZXhlYygndmlldycsIFtwa2csICd2ZXJzaW9ucyddLCB7XG4gICAgICBqc29uOiB0cnVlLFxuICAgICAgY3dkXG4gICAgfSkpLmpzb247XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGF0ZXN0U2FmZVVwZ3JhZGVGcm9tVmVyc2lvbnMoY3VyVmVyc2lvbiwgYWxsVmVyc2lvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYG5wbSBsc2AsIG9wdGlvbmFsbHkgZm9yIGEgcGFydGljdWxhciBwYWNrYWdlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3dkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGtnXVxuICAgKi9cbiAgYXN5bmMgbGlzdCAoY3dkLCBwa2cpIHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZXhlYygnbGlzdCcsIHBrZyA/IFtwa2ddIDogW10sIHtjd2QsIGpzb246IHRydWV9KSkuanNvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhIGN1cnJlbnQgdmVyc2lvbiBhbmQgYSBsaXN0IG9mIGFsbCB2ZXJzaW9ucyBmb3IgYSBwYWNrYWdlLCByZXR1cm4gdGhlIHZlcnNpb24gd2hpY2ggaXNcbiAgICogdGhlIGhpZ2hlc3Qgc2FmZWx5LXVwZ3JhZGFibGUgdmVyc2lvbiAobWVhbmluZyBub3QgY3Jvc3NpbmcgYW55IG1ham9yIHJldmlzaW9uIGJvdW5kYXJpZXMsIGFuZFxuICAgKiBub3QgaW5jbHVkaW5nIGFueSBhbHBoYS9iZXRhL3JjIHZlcnNpb25zKVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3VyVmVyc2lvbiAtIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgYSBwYWNrYWdlXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gYWxsVmVyc2lvbnMgLSBhIGxpc3Qgb2YgdmVyc2lvbiBzdHJpbmdzXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ3xudWxsfSAtIHRoZSBoaWdoZXN0IHNhZmVseS11cGdyYWRhYmxlIHZlcnNpb24sIG9yIG51bGwgaWYgdGhlcmUgaXNuJ3Qgb25lXG4gICAqL1xuICBnZXRMYXRlc3RTYWZlVXBncmFkZUZyb21WZXJzaW9ucyAoY3VyVmVyc2lvbiwgYWxsVmVyc2lvbnMpIHtcbiAgICBsZXQgc2FmZVVwZ3JhZGVWZXIgPSBudWxsO1xuICAgIGNvbnN0IGN1clNlbXZlciA9IHNlbXZlci5wYXJzZShjdXJWZXJzaW9uKTtcbiAgICBpZiAoY3VyU2VtdmVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBwYXJzZSBjdXJyZW50IHZlcnNpb24gJyR7Y3VyVmVyc2lvbn0nYCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgdGVzdFZlciBvZiBhbGxWZXJzaW9ucykge1xuICAgICAgY29uc3QgdGVzdFNlbXZlciA9IHNlbXZlci5wYXJzZSh0ZXN0VmVyKTtcbiAgICAgIGlmICh0ZXN0U2VtdmVyID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IHBhcnNlIHZlcnNpb24gdG8gdGVzdCBhZ2FpbnN0OiAnJHt0ZXN0VmVyfSdgKTtcbiAgICAgIH1cbiAgICAgIC8vIGlmIHRoZSB0ZXN0IHZlcnNpb24gaXMgYSBwcmVyZWxlYXNlLCBpZ25vcmUgaXRcbiAgICAgIGlmICh0ZXN0U2VtdmVyLnByZXJlbGVhc2UubGVuZ3RoID4gMCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8vIGlmIHRoZSBjdXJyZW50IHZlcnNpb24gaXMgbGF0ZXIgdGhhbiB0aGUgdGVzdCB2ZXJzaW9uLCBza2lwIHRoaXMgdGVzdCB2ZXJzaW9uXG4gICAgICBpZiAoY3VyU2VtdmVyLmNvbXBhcmUodGVzdFNlbXZlcikgPT09IDEpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvLyBpZiB0aGUgdGVzdCB2ZXJzaW9uIGlzIG5ld2VyLCBidXQgY3Jvc3NlcyBhIG1ham9yIHJldmlzaW9uIGJvdW5kYXJ5LCBhbHNvIHNraXAgaXRcbiAgICAgIGlmICh0ZXN0U2VtdmVyLm1ham9yID4gY3VyU2VtdmVyLm1ham9yKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgLy8gb3RoZXJ3aXNlIHRoaXMgdmVyc2lvbiBpcyBzYWZlIHRvIHVwZ3JhZGUgdG8uIEJ1dCB0aGVyZSBtaWdodCBiZSBtdWx0aXBsZSBvbmVzIG9mIHRoaXNcbiAgICAgIC8vIGtpbmQsIHNvIGtlZXAgaXRlcmF0aW5nIGFuZCBrZWVwaW5nIHRoZSBoaWdoZXN0XG4gICAgICBpZiAoc2FmZVVwZ3JhZGVWZXIgPT09IG51bGwgfHwgdGVzdFNlbXZlci5jb21wYXJlKHNhZmVVcGdyYWRlVmVyKSA9PT0gMSkge1xuICAgICAgICBzYWZlVXBncmFkZVZlciA9IHRlc3RTZW12ZXI7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzYWZlVXBncmFkZVZlcikge1xuICAgICAgc2FmZVVwZ3JhZGVWZXIgPSBzYWZlVXBncmFkZVZlci5mb3JtYXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHNhZmVVcGdyYWRlVmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc3RhbGxzIGEgcGFja2FnZSB3LyBgbnBtYFxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3dkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwa2dOYW1lXG4gICAqIEBwYXJhbSB7SW5zdGFsbFBhY2thZ2VPcHRzfSBbb3B0c11cbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KCd0eXBlLWZlc3QnKS5QYWNrYWdlSnNvbj59XG4gICAqL1xuICBhc3luYyBpbnN0YWxsUGFja2FnZSAoY3dkLCBwa2dOYW1lLCB7cGtnVmVyfSA9IHt9KSB7XG4gICAgLyoqIEB0eXBlIHthbnl9ICovXG4gICAgbGV0IGR1bW15UGtnSnNvbjtcbiAgICBjb25zdCBkdW1teVBrZ1BhdGggPSBwYXRoLmpvaW4oY3dkLCAncGFja2FnZS5qc29uJyk7XG4gICAgdHJ5IHtcbiAgICAgIGR1bW15UGtnSnNvbiA9IEpTT04ucGFyc2UoYXdhaXQgZnMucmVhZEZpbGUoZHVtbXlQa2dQYXRoLCAndXRmOCcpKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIuY29kZSA9PT0gJ0VOT0VOVCcpIHtcbiAgICAgICAgZHVtbXlQa2dKc29uID0ge307XG4gICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShkdW1teVBrZ1BhdGgsIEpTT04uc3RyaW5naWZ5KGR1bW15UGtnSnNvbiwgbnVsbCwgMiksICd1dGY4Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWYgd2UndmUgZm91bmQgYSBgcGFja2FnZS5qc29uYCBjb250YWluaW5lZCB0aGUgYGFwcGl1bUNyZWF0ZWRgIHByb3BlcnR5LFxuICAgICAqIHRoZW4gd2UgY2FuIGRvIHdoYXRldmVyIHdlIHBsZWFzZSB3aXRoIGl0LCBzaW5jZSB3ZSBjcmVhdGVkIGl0LiAgVGhpcyBpc1xuICAgICAqIGxpa2VseSB3aGVuIGBBUFBJVU1fSE9NRWAgaXMgdGhlIGRlZmF1bHQgKGluIGB+Ly5hcHBpdW1gKS4gIEluIHRoYXQgY2FzZSxcbiAgICAgKiB3ZSB3YW50IGAtLWdsb2JhbC1zdHlsZWAgdG8gYXZvaWQgZGVkdXBpbmcsIGFuZCB3ZSBhbHNvIGRvIG5vdCBuZWVkIGFcbiAgICAgKiBgcGFja2FnZS1sb2NrLmpzb25gLlxuICAgICAqXG4gICAgICogSWYgd2UgX2hhdmVuJ3RfIGZvdW5kIHN1Y2ggYSBrZXksIHRoZW4gdGhpcyBgcGFja2FnZS5qc29uYCBpc24ndCBhXG4gICAgICogXCJkdW1teVwiIGFuZCBpcyBjb250cm9sbGVkIGJ5IHRoZSB1c2VyLiAgU28gd2UnbGwganVzdCBhZGQgaXQgYXMgYSBkZXZcbiAgICAgKiBkZXA7IHdoYXRldmVyIGVsc2UgaXQgZG9lcyBpcyB1cCB0byB0aGUgdXNlcidzIG5wbSBjb25maWcuXG4gICAgICovXG4gICAgY29uc3QgaW5zdGFsbE9wdHMgPSBhd2FpdCBoYXNBcHBpdW1EZXBlbmRlbmN5KGN3ZCkgP1xuICAgICAgWyctLXNhdmUtZGV2J10gOlxuICAgICAgWyctLXNhdmUtZGV2JywgJy0tc2F2ZS1leGFjdCcsICctLWdsb2JhbC1zdHlsZScsICctLW5vLXBhY2thZ2UtbG9jayddO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5leGVjKCdpbnN0YWxsJywgW1xuICAgICAgLi4uaW5zdGFsbE9wdHMsXG4gICAgICBwa2dWZXIgPyBgJHtwa2dOYW1lfUAke3BrZ1Zlcn1gIDogcGtnTmFtZVxuICAgIF0sIHtcbiAgICAgIGN3ZCxcbiAgICAgIGpzb246IHRydWUsXG4gICAgICBsb2NrRmlsZTogdGhpcy5fZ2V0SW5zdGFsbExvY2tmaWxlUGF0aChjd2QpXG4gICAgfSk7XG5cbiAgICBpZiAocmVzLmpzb24pIHtcbiAgICAgIC8vIHdlIHBhcnNlZCBhIHZhbGlkIGpzb24gcmVzcG9uc2UsIHNvIGlmIHdlIGdvdCBhbiBlcnJvciBoZXJlLCByZXR1cm4gdGhhdFxuICAgICAgLy8gbWVzc2FnZSBzdHJhaWdodGF3YXlcbiAgICAgIGlmIChyZXMuanNvbi5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzLmpzb24uZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5vdyByZWFkIHBhY2thZ2UgZGF0YSBmcm9tIHRoZSBpbnN0YWxsZWQgcGFja2FnZSB0byByZXR1cm4sIGFuZCBtYWtlIHN1cmVcbiAgICAvLyBldmVyeXRoaW5nIGdvdCBpbnN0YWxsZWQgb2suIFJlbWVtYmVyLCBwa2dOYW1lIG1pZ2h0IGVuZCB1cCB3aXRoIGEgLyBpbiBpdCBkdWUgdG8gYW4gbnBtXG4gICAgLy8gb3JnLCBzbyBpZiBzbywgdGhhdCB3aWxsIGdldCBjb3JyZWN0bHkgZXhwbG9kZWQgaW50byBtdWx0aXBsZSBkaXJlY3RvcmllcywgYnkgcGF0aC5yZXNvbHZlIGhlcmVcbiAgICAvLyAoZXZlbiBvbiBXaW5kb3dzISlcbiAgICBjb25zdCBwa2dKc29uUGF0aCA9IHJlc29sdmVGcm9tKGN3ZCwgYCR7cGtnTmFtZX0vcGFja2FnZS5qc29uYCk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiByZXF1aXJlKHBrZ0pzb25QYXRoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHBhY2thZ2Ugd2FzIG5vdCBkb3dubG9hZGVkIGNvcnJlY3RseTsgaXRzIHBhY2thZ2UuanNvbiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAnZGlkIG5vdCBleGlzdCBvciB3YXMgdW5yZWFkYWJsZS4gV2UgbG9va2VkIGZvciBpdCBhdCAnICtcbiAgICAgICAgICAgICAgICAgICAgICBwa2dKc29uUGF0aCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjd2RcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBrZ1xuICAgKi9cbiAgYXN5bmMgdW5pbnN0YWxsUGFja2FnZSAoY3dkLCBwa2cpIHtcbiAgICBhd2FpdCB0aGlzLmV4ZWMoJ3VuaW5zdGFsbCcsIFtwa2ddLCB7XG4gICAgICBjd2QsXG4gICAgICBsb2NrRmlsZTogdGhpcy5fZ2V0SW5zdGFsbExvY2tmaWxlUGF0aChjd2QpXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG5wbSA9IG5ldyBOUE0oKTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgTlBNLmluc3RhbGxQYWNrYWdlfVxuICogQHR5cGVkZWYgSW5zdGFsbFBhY2thZ2VPcHRzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3BrZ1Zlcl0gLSB0aGUgdmVyc2lvbiBvZiB0aGUgcGFja2FnZSB0byBpbnN0YWxsXG4gKi9cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgTlBNLmV4ZWN9XG4gKiBAdHlwZWRlZiBFeGVjT3B0c1xuICogQHByb3BlcnR5IHtzdHJpbmd9IGN3ZCAtIEN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnlcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2pzb25dIC0gSWYgYHRydWVgLCBzdXBwbHkgYC0tanNvbmAgZmxhZyB0byBucG0gYW5kIHJlc29sdmUgdy8gcGFyc2VkIEpTT05cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbbG9ja0ZpbGVdIC0gUGF0aCB0byBsb2NrZmlsZSB0byB1c2VcbiAqL1xuXG4vLyBUSEVTRSBUWVBFUyBTSE9VTEQgQkUgSU4gVEVFTiBQUk9DRVNTLCBOT1QgSEVSRVxuXG4vKipcbiAqIEV4dHJhIHByb3BzIGB0ZWVuX3Byb2Nlc3MuZXhlY2AgYWRkcyB0byBpdHMgZXJyb3Igb2JqZWN0c1xuICogQHR5cGVkZWYgVGVlblByb2Nlc3NFeGVjRXJyb3JQcm9wc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IHN0ZG91dCAtIFNURE9VVFxuICogQHByb3BlcnR5IHtzdHJpbmd9IHN0ZGVyciAtIFNUREVSUlxuICogQHByb3BlcnR5IHtudW1iZXI/fSBjb2RlIC0gRXhpdCBjb2RlXG4gKi9cblxuLyoqXG4gKiBFcnJvciB0aHJvd24gYnkgYHRlZW5fcHJvY2Vzcy5leGVjYFxuICogQHR5cGVkZWYge0Vycm9yICYgVGVlblByb2Nlc3NFeGVjRXJyb3JQcm9wc30gVGVlblByb2Nlc3NFeGVjRXJyb3JcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFPTyxNQUFNQSx1QkFBdUIsR0FBR0MsY0FBS0MsSUFBTCxDQUNyQyxjQURxQyxFQUVyQyxRQUZxQyxFQUdyQyxRQUhxQyxDQUFoQzs7OztBQVNBLE1BQU1DLDhCQUE4QixHQUFHRixjQUFLQyxJQUFMLENBQzVDRix1QkFENEMsRUFFNUMsZUFGNEMsQ0FBdkM7Ozs7QUFRQSxNQUFNSSxHQUFOLENBQVU7RUFNZkMsdUJBQXVCLENBQUVDLEdBQUYsRUFBTztJQUM1QixPQUFPTCxjQUFLQyxJQUFMLENBQVVJLEdBQVYsRUFBZUgsOEJBQWYsQ0FBUDtFQUNEOztFQVlTLE1BQUpJLElBQUksQ0FBRUMsR0FBRixFQUFPQyxJQUFQLEVBQWFDLElBQWIsRUFBbUJDLFFBQVEsR0FBMkIsRUFBdEQsRUFBMkQ7SUFDbkUsSUFBSTtNQUFFTCxHQUFGO01BQU9NLElBQVA7TUFBYUM7SUFBYixJQUEwQkgsSUFBOUI7SUFHQUMsUUFBUSxHQUFHLEVBQUMsR0FBR0EsUUFBSjtNQUFjTDtJQUFkLENBQVg7SUFFQUcsSUFBSSxDQUFDSyxPQUFMLENBQWFOLEdBQWI7O0lBQ0EsSUFBSUksSUFBSixFQUFVO01BQ1JILElBQUksQ0FBQ00sSUFBTCxDQUFVLFFBQVY7SUFDRDs7SUFDRCxNQUFNQyxNQUFNLEdBQUdDLE1BQU0sQ0FBQ0MsU0FBUCxLQUFxQixTQUFyQixHQUFpQyxLQUFoRDs7SUFDQSxJQUFJQyxNQUFNLEdBQUcsWUFBWSxNQUFNLHdCQUFLSCxNQUFMLEVBQWFQLElBQWIsRUFBbUJFLFFBQW5CLENBQS9COztJQUNBLElBQUlFLFFBQUosRUFBYztNQUNaLE1BQU1PLFdBQVcsR0FBR0MsSUFBSSxDQUFDQyxnQkFBTCxDQUFzQlQsUUFBdEIsQ0FB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
|
package/build/lib/plist.js
CHANGED
|
@@ -157,4 +157,4 @@ function parsePlist(data) {
|
|
|
157
157
|
|
|
158
158
|
throw new Error(`Unknown type of plist, data: ${data.toString()}`);
|
|
159
159
|
}
|
|
160
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9wbGlzdC5qcyJdLCJuYW1lcyI6WyJCUExJU1RfSURFTlRJRklFUiIsIkJVRkZFUiIsIkJ1ZmZlciIsImZyb20iLCJURVhUIiwiUExJU1RfSURFTlRJRklFUiIsInBhcnNlWG1sUGxpc3RGaWxlIiwicGxpc3RGaWxlbmFtZSIsInhtbENvbnRlbnQiLCJmcyIsInJlYWRGaWxlIiwieG1scGxpc3QiLCJwYXJzZSIsInBhcnNlUGxpc3RGaWxlIiwicGxpc3QiLCJtdXN0RXhpc3QiLCJxdWlldCIsImV4aXN0cyIsImxvZyIsImVycm9yQW5kVGhyb3ciLCJkZWJ1ZyIsIm9iaiIsInR5cGUiLCJicGxpc3RQYXJzZSIsInBhcnNlRmlsZSIsImxlbmd0aCIsIkVycm9yIiwiaWduIiwiZXJyIiwibWVzc2FnZSIsInVwZGF0ZVBsaXN0RmlsZSIsInVwZGF0ZWRGaWVsZHMiLCJiaW5hcnkiLCJfIiwiZXh0ZW5kIiwibmV3UGxpc3QiLCJidWlsZCIsIndyaXRlRmlsZSIsImNyZWF0ZUJpbmFyeVBsaXN0IiwiZGF0YSIsInBhcnNlQmluYXJ5UGxpc3QiLCJwYXJzZUJ1ZmZlciIsImdldFhtbFBsaXN0IiwiaXNTdHJpbmciLCJzdGFydHNXaXRoIiwiaXNCdWZmZXIiLCJjb21wYXJlIiwidG9TdHJpbmciLCJnZXRCaW5hcnlQbGlzdCIsImNyZWF0ZVBsaXN0Iiwib2JqZWN0IiwicGFyc2VQbGlzdCIsInRleHRQbGlzdCIsImJpbmFyeVBsaXN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsaUJBQWlCLEdBQUc7QUFDeEJDLEVBQUFBLE1BQU0sRUFBRUMsTUFBTSxDQUFDQyxJQUFQLENBQVksVUFBWixDQURnQjtBQUV4QkMsRUFBQUEsSUFBSSxFQUFFO0FBRmtCLENBQTFCO0FBSUEsTUFBTUMsZ0JBQWdCLEdBQUc7QUFDdkJKLEVBQUFBLE1BQU0sRUFBRUMsTUFBTSxD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QyxNQUF0QixFQUE4QmxCLE1BQU0sR0FBRyxLQUF2QyxFQUE4QztBQUM1QyxNQUFJQSxNQUFKLEVBQVk7QUFDVixXQUFPTSxpQkFBaUIsQ0FBQ1ksTUFBRCxDQUF4QjtBQUNELEdBRkQsTUFFTztBQUNMLFdBQU92QyxlQUFTeUIsS0FBVCxDQUFlYyxNQUFmLENBQVA7QUFDRDtBQUNGOztBQVFELFNBQVNDLFVBQVQsQ0FBcUJaLElBQXJCLEVBQTJCO0FBQ3pCLE1BQUlhLFNBQVMsR0FBR1YsV0FBVyxDQUFDSCxJQUFELENBQTNCOztBQUNBLE1BQUlhLFNBQUosRUFBZTtBQUNiLFdBQU96QyxlQUFTQyxLQUFULENBQWV3QyxTQUFmLENBQVA7QUFDRDs7QUFFRCxNQUFJQyxXQUFXLEdBQUdMLGNBQWMsQ0FBQ1QsSUFBRCxDQUFoQzs7QUFDQSxNQUFJYyxXQUFKLEVBQWlCO0FBQ2YsV0FBT2IsZ0JBQWdCLENBQUNhLFdBQUQsQ0FBaEIsQ0FBOEIsQ0FBOUIsQ0FBUDtBQUNEOztBQUVELFFBQU0sSUFBSTNCLEtBQUosQ0FBVyxnQ0FBK0JhLElBQUksQ0FBQ1EsUUFBTCxFQUFnQixFQUExRCxDQUFOO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeG1scGxpc3QgZnJvbSAncGxpc3QnO1xuaW1wb3J0IGJwbGlzdENyZWF0ZSBmcm9tICdicGxpc3QtY3JlYXRvcic7XG5pbXBvcnQgYnBsaXN0UGFyc2UgZnJvbSAnYnBsaXN0LXBhcnNlcic7XG5pbXBvcnQgZnMgZnJvbSAnLi9mcyc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cblxuY29uc3QgQlBMSVNUX0lERU5USUZJRVIgPSB7XG4gIEJVRkZFUjogQnVmZmVyLmZyb20oJ2JwbGlzdDAwJyksXG4gIFRFWFQ6ICdicGxpc3QwMCdcbn07XG5jb25zdCBQTElTVF9JREVOVElGSUVSID0ge1xuICBCVUZGRVI6IEJ1ZmZlci5mcm9tKCc8JyksXG4gIFRFWFQ6ICc8J1xufTtcblxuLy8gWE1MIFBsaXN0IGxpYnJhcnkgaGVscGVyXG5hc3luYyBmdW5jdGlvbiBwYXJzZVhtbFBsaXN0RmlsZSAocGxpc3RGaWxlbmFtZSkge1xuICBsZXQgeG1sQ29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKHBsaXN0RmlsZW5hbWUsICd1dGY4Jyk7XG4gIHJldHVybiB4bWxwbGlzdC5wYXJzZSh4bWxDb250ZW50KTtcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBmaWxlIGluIHhtbCBvciBiaW5hcnkgZm9ybWF0IG9mIHBsaXN0XG4gKiBAcGFyYW0ge3N0cmluZ30gcGxpc3QgVGhlIHBsaXN0IGZpbGUgcGF0aFxuICogQHBhcmFtIHtib29sZWFufSBtdXN0RXhpc3QgSWYgc2V0IHRvIGZhbHNlLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBhbiBlbXB0eSBvYmplY3Qgd2hlbiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IHF1aWV0IElmIHNldCB0byBmYWxzZSwgdGhlIHBsaXN0IHBhdGggd2lsbCBiZSBsb2dnZWQgaW4gZGVidWcgbGV2ZWxcbiAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59IHBhcnNlZCBwbGlzdCBKUyBPYmplY3RcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcGFyc2VQbGlzdEZpbGUgKHBsaXN0LCBtdXN0RXhpc3QgPSB0cnVlLCBxdWlldCA9IHRydWUpIHtcbiAgLy8gaGFuZGxlIG5vbmV4aXN0YW50IGZpbGVcbiAgaWYgKCFhd2FpdCBmcy5leGlzdHMocGxpc3QpKSB7XG4gICAgaWYgKG11c3RFeGlzdCkge1xuICAgICAgbG9nLmVycm9yQW5kVGhyb3coYFBsaXN0IGZpbGUgZG9lc24ndCBleGlzdDogJyR7cGxpc3R9J2ApO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuZGVidWcoYFBsaXN0IGZpbGUgJyR7cGxpc3R9JyBkb2VzIG5vdCBleGlzdC4gUmV0dXJuaW5nIGFuIGVtcHR5IHBsaXN0LmApO1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfVxuXG4gIGxldCBvYmogPSB7fTtcbiAgbGV0IHR5cGUgPSAnYmluYXJ5JztcbiAgdHJ5IHtcbiAgICBvYmogPSBhd2FpdCBicGxpc3RQYXJzZS5wYXJzZUZpbGUocGxpc3QpO1xuICAgIGlmIChvYmoubGVuZ3RoKSB7XG4gICAgICBvYmogPSBvYmpbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQmluYXJ5IGZpbGUgJyR7cGxpc3R9JycgYXBwZWFycyB0byBiZSBlbXB0eWApO1xuICAgIH1cbiAgfSBjYXRjaCAoaWduKSB7XG4gICAgdHJ5IHtcbiAgICAgIG9iaiA9IGF3YWl0IHBhcnNlWG1sUGxpc3RGaWxlKHBsaXN0KTtcbiAgICAgIHR5cGUgPSAneG1sJztcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZy5lcnJvckFuZFRocm93KGBDb3VsZCBub3QgcGFyc2UgcGxpc3QgZmlsZSAnJHtwbGlzdH0nIGFzIFhNTDogJHtlcnIubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIXF1aWV0KSB7XG4gICAgbG9nLmRlYnVnKGBQYXJzZWQgcGxpc3QgZmlsZSAnJHtwbGlzdH0nIGFzICR7dHlwZX1gKTtcbiAgfVxuICByZXR1cm4gb2JqO1xufVxuXG4vKipcbiAqIFVwZGF0ZXMgYSBwbGlzdCBmaWxlIHdpdGggdGhlIGdpdmVuIGZpZWxkc1xuICogQHBhcmFtIHtzdHJpbmd9IHBsaXN0IFRoZSBwbGlzdCBmaWxlIHBhdGhcbiAqIEBwYXJhbSB7T2JqZWN0fSB1cGRhdGVkRmllbGRzIFRoZSB1cGRhdGVkIGZpZWxkcy12YWx1ZSBwYWlyc1xuICogQHBhcmFtIHtib29sZWFufSBiaW5hcnkgSWYgc2V0IHRvIGZhbHNlLCB0aGUgZmlsZSB3aWxsIGJlIGNyZWF0ZWQgYXMgYSB4bWwgcGxpc3RcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gbXVzdEV4aXN0IElmIHNldCB0byBmYWxzZSwgdGhpcyBtZXRob2Qgd2lsbCB1cGRhdGUgYW4gZW1wdHkgcGxpc3RcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gcXVpZXQgSWYgc2V0IHRvIGZhbHNlLCB0aGUgcGxpc3QgcGF0aCB3aWxsIGJlIGxvZ2dlZCBpbiBkZWJ1ZyBsZXZlbFxuICovXG5hc3luYyBmdW5jdGlvbiB1cGRhdGVQbGlzdEZpbGUgKHBsaXN0LCB1cGRhdGVkRmllbGRzLCBiaW5hcnkgPSB0cnVlLCBtdXN0RXhpc3QgPSB0cnVlLCBxdWlldCA9IHRydWUpIHtcbiAgbGV0IG9iajtcbiAgdHJ5IHtcbiAgICBvYmogPSBhd2FpdCBwYXJzZVBsaXN0RmlsZShwbGlzdCwgbXVzdEV4aXN0KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coYENvdWxkIG5vdCB1cGRhdGUgcGxpc3Q6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbiAgXy5leHRlbmQob2JqLCB1cGRhdGVkRmllbGRzKTtcbiAgbGV0IG5ld1BsaXN0ID0gYmluYXJ5ID8gYnBsaXN0Q3JlYXRlKG9iaikgOiB4bWxwbGlzdC5idWlsZChvYmopO1xuICB0cnkge1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShwbGlzdCwgbmV3UGxpc3QpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2cuZXJyb3JBbmRUaHJvdyhgQ291bGQgbm90IHNhdmUgcGxpc3Q6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbiAgaWYgKCFxdWlldCkge1xuICAgIGxvZy5kZWJ1ZyhgV3JvdGUgcGxpc3QgZmlsZSAnJHtwbGlzdH0nYCk7XG4gIH1cbn1cbi8qKlxuICogQ3JlYXRlcyBhIGJpbmFyeSBwbGlzdCBCdWZmZXIgZnJvbSBhbiBvYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBvYmplY3QgdG8gYmUgdHVybmVkIGludG8gYSBiaW5hcnkgcGxpc3RcbiAqIEByZXR1cm5zIHtCdWZmZXJ9IHBsaXN0IGluIHRoZSBmb3JtIG9mIGEgYmluYXJ5IGJ1ZmZlclxuICovXG5mdW5jdGlvbiBjcmVhdGVCaW5hcnlQbGlzdCAoZGF0YSkge1xuICByZXR1cm4gYnBsaXN0Q3JlYXRlKGRhdGEpO1xufVxuXG4vKipcbiAqIFBhcnNlcyBhIEJ1ZmZlciBpbnRvIGFuIE9iamVjdFxuICogQHBhcmFtIHtCdWZmZXJ9IGRhdGEgVGhlIGJlZmZlciBvZiBhIGJpbmFyeSBwbGlzdFxuICovXG5mdW5jdGlvbiBwYXJzZUJpbmFyeVBsaXN0IChkYXRhKSB7XG4gIC8vIHRoaXMgZnVuY3Rpb24gZXhpc3RzLCBidXQgaXMgbm90IGluIHRoZSB0eXBlIGRlY2xhcmF0aW9ucy5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICByZXR1cm4gYnBsaXN0UGFyc2UucGFyc2VCdWZmZXIoZGF0YSk7XG59XG5cbmZ1bmN0aW9uIGdldFhtbFBsaXN0IChkYXRhKSB7XG4gIGlmIChfLmlzU3RyaW5nKGRhdGEpICYmIGRhdGEuc3RhcnRzV2l0aChQTElTVF9JREVOVElGSUVSLlRFWFQpKSB7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbiAgaWYgKF8uaXNCdWZmZXIoZGF0YSkgJiYgUExJU1RfSURFTlRJRklFUi5CVUZGRVIuY29tcGFyZShkYXRhLCAwLCBQTElTVF9JREVOVElGSUVSLkJVRkZFUi5sZW5ndGgpID09PSAwKSB7XG4gICAgcmV0dXJuIGRhdGEudG9TdHJpbmcoKTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gZ2V0QmluYXJ5UGxpc3QgKGRhdGEpIHtcbiAgaWYgKF8uaXNTdHJpbmcoZGF0YSkgJiYgZGF0YS5zdGFydHNXaXRoKEJQTElTVF9JREVOVElGSUVSLlRFWFQpKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGRhdGEpO1xuICB9XG5cbiAgaWYgKF8uaXNCdWZmZXIoZGF0YSkgJiYgQlBMSVNUX0lERU5USUZJRVIuQlVGRkVSLmNvbXBhcmUoZGF0YSwgMCwgQlBMSVNUX0lERU5USUZJRVIuQlVGRkVSLmxlbmd0aCkgPT09IDApIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgcGxpc3QgZnJvbSBhbiBvYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIEpTIG9iamVjdCB0byBiZSB0dXJuZWQgaW50byBhIHBsaXN0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGJpbmFyeSBTZXQgaXQgdG8gdHJ1ZSBmb3IgYSBiaW5hcnkgcGxpc3RcbiAqIEByZXR1cm5zIHtzdHJpbmd8QnVmZmVyfSByZXR1cm5zIGEgYnVmZmVyIG9yIGEgc3RyaW5nIGluIHJlc3BlY3QgdG8gdGhlIGJpbmFyeSBwYXJhbWV0ZXJcbiAqL1xuZnVuY3Rpb24gY3JlYXRlUGxpc3QgKG9iamVjdCwgYmluYXJ5ID0gZmFsc2UpIHtcbiAgaWYgKGJpbmFyeSkge1xuICAgIHJldHVybiBjcmVhdGVCaW5hcnlQbGlzdChvYmplY3QpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB4bWxwbGlzdC5idWlsZChvYmplY3QpO1xuICB9XG59XG5cbi8qKlxuICogUGFyc2VzIGFuIGJ1ZmZlciBvciBhIHN0cmluZyB0byBhIEpTIG9iamVjdCBhIHBsaXN0IGZyb20gYW4gb2JqZWN0XG4gKiBAcGFyYW0ge3N0cmluZ3xCdWZmZXJ9IGRhdGEgVGhlIHBsaXN0IGluIHRoZSBmb3JtIG9mIHN0cmluZyBvciBCdWZmZXJcbiAqIEByZXR1cm5zIHtPYmplY3R9IHBhcnNlZCBwbGlzdCBKUyBPYmplY3RcbiAqIEB0aHJvd3MgV2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgcGxpc3QgdHlwZSBpcyB1bmtub3duXG4gKi9cbmZ1bmN0aW9uIHBhcnNlUGxpc3QgKGRhdGEpIHtcbiAgbGV0IHRleHRQbGlzdCA9IGdldFhtbFBsaXN0KGRhdGEpO1xuICBpZiAodGV4dFBsaXN0KSB7XG4gICAgcmV0dXJuIHhtbHBsaXN0LnBhcnNlKHRleHRQbGlzdCk7XG4gIH1cblxuICBsZXQgYmluYXJ5UGxpc3QgPSBnZXRCaW5hcnlQbGlzdChkYXRhKTtcbiAgaWYgKGJpbmFyeVBsaXN0KSB7XG4gICAgcmV0dXJuIHBhcnNlQmluYXJ5UGxpc3QoYmluYXJ5UGxpc3QpWzBdO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHR5cGUgb2YgcGxpc3QsIGRhdGE6ICR7ZGF0YS50b1N0cmluZygpfWApO1xufVxuXG5leHBvcnQgeyBwYXJzZVBsaXN0RmlsZSwgcGFyc2VQbGlzdCwgY3JlYXRlUGxpc3QsIHVwZGF0ZVBsaXN0RmlsZSwgY3JlYXRlQmluYXJ5UGxpc3QsIHBhcnNlQmluYXJ5UGxpc3QgfTtcbiJdfQ==
|
|
160
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCUExJU1RfSURFTlRJRklFUiIsIkJVRkZFUiIsIkJ1ZmZlciIsImZyb20iLCJURVhUIiwiUExJU1RfSURFTlRJRklFUiIsInBhcnNlWG1sUGxpc3RGaWxlIiwicGxpc3RGaWxlbmFtZSIsInhtbENvbnRlbnQiLCJmcyIsInJlYWRGaWxlIiwieG1scGxpc3QiLCJwYXJzZSIsInBhcnNlUGxpc3RGaWxlIiwicGxpc3QiLCJtdXN0RXhpc3QiLCJxdWlldCIsImV4aXN0cyIsImxvZyIsImVycm9yQW5kVGhyb3ciLCJkZWJ1ZyIsIm9iaiIsInR5cGUiLCJicGxpc3RQYXJzZSIsInBhcnNlRmlsZSIsImxlbmd0aCIsIkVycm9yIiwiaWduIiwiZXJyIiwibWVzc2FnZSIsInVwZGF0ZVBsaXN0RmlsZSIsInVwZGF0ZWRGaWVsZHMiLCJiaW5hcnkiLCJfIiwiZXh0ZW5kIiwibmV3UGxpc3QiLCJidWlsZCIsIndyaXRlRmlsZSIsImNyZWF0ZUJpbmFyeVBsaXN0IiwiZGF0YSIsInBhcnNlQmluYXJ5UGxpc3QiLCJwYXJzZUJ1ZmZlciIsImdldFhtbFBsaXN0IiwiaXNTdHJpbmciLCJzdGFydHNXaXRoIiwiaXNCdWZmZXIiLCJjb21wYXJlIiwidG9TdHJpbmciLCJnZXRCaW5hcnlQbGlzdCIsImNyZWF0ZVBsaXN0Iiwib2JqZWN0IiwicGFyc2VQbGlzdCIsInRleHRQbGlzdCIsImJpbmFyeVBsaXN0Il0sInNvdXJjZXMiOlsiLi4vLi4vbGliL3BsaXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB4bWxwbGlzdCBmcm9tICdwbGlzdCc7XG5pbXBvcnQgYnBsaXN0Q3JlYXRlIGZyb20gJ2JwbGlzdC1jcmVhdG9yJztcbmltcG9ydCBicGxpc3RQYXJzZSBmcm9tICdicGxpc3QtcGFyc2VyJztcbmltcG9ydCBmcyBmcm9tICcuL2ZzJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuXG5jb25zdCBCUExJU1RfSURFTlRJRklFUiA9IHtcbiAgQlVGRkVSOiBCdWZmZXIuZnJvbSgnYnBsaXN0MDAnKSxcbiAgVEVYVDogJ2JwbGlzdDAwJ1xufTtcbmNvbnN0IFBMSVNUX0lERU5USUZJRVIgPSB7XG4gIEJVRkZFUjogQnVmZmVyLmZyb20oJzwnKSxcbiAgVEVYVDogJzwnXG59O1xuXG4vLyBYTUwgUGxpc3QgbGlicmFyeSBoZWxwZXJcbmFzeW5jIGZ1bmN0aW9uIHBhcnNlWG1sUGxpc3RGaWxlIChwbGlzdEZpbGVuYW1lKSB7XG4gIGxldCB4bWxDb250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUocGxpc3RGaWxlbmFtZSwgJ3V0ZjgnKTtcbiAgcmV0dXJuIHhtbHBsaXN0LnBhcnNlKHhtbENvbnRlbnQpO1xufVxuXG4vKipcbiAqIFBhcnNlcyBhIGZpbGUgaW4geG1sIG9yIGJpbmFyeSBmb3JtYXQgb2YgcGxpc3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBwbGlzdCBUaGUgcGxpc3QgZmlsZSBwYXRoXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG11c3RFeGlzdCBJZiBzZXQgdG8gZmFsc2UsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIGFuIGVtcHR5IG9iamVjdCB3aGVuIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3RcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gcXVpZXQgSWYgc2V0IHRvIGZhbHNlLCB0aGUgcGxpc3QgcGF0aCB3aWxsIGJlIGxvZ2dlZCBpbiBkZWJ1ZyBsZXZlbFxuICogQHJldHVybnMge1Byb21pc2U8YW55Pn0gcGFyc2VkIHBsaXN0IEpTIE9iamVjdFxuICovXG5hc3luYyBmdW5jdGlvbiBwYXJzZVBsaXN0RmlsZSAocGxpc3QsIG11c3RFeGlzdCA9IHRydWUsIHF1aWV0ID0gdHJ1ZSkge1xuICAvLyBoYW5kbGUgbm9uZXhpc3RhbnQgZmlsZVxuICBpZiAoIWF3YWl0IGZzLmV4aXN0cyhwbGlzdCkpIHtcbiAgICBpZiAobXVzdEV4aXN0KSB7XG4gICAgICBsb2cuZXJyb3JBbmRUaHJvdyhgUGxpc3QgZmlsZSBkb2Vzbid0IGV4aXN0OiAnJHtwbGlzdH0nYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZy5kZWJ1ZyhgUGxpc3QgZmlsZSAnJHtwbGlzdH0nIGRvZXMgbm90IGV4aXN0LiBSZXR1cm5pbmcgYW4gZW1wdHkgcGxpc3QuYCk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICB9XG5cbiAgbGV0IG9iaiA9IHt9O1xuICBsZXQgdHlwZSA9ICdiaW5hcnknO1xuICB0cnkge1xuICAgIG9iaiA9IGF3YWl0IGJwbGlzdFBhcnNlLnBhcnNlRmlsZShwbGlzdCk7XG4gICAgaWYgKG9iai5sZW5ndGgpIHtcbiAgICAgIG9iaiA9IG9ialswXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBCaW5hcnkgZmlsZSAnJHtwbGlzdH0nJyBhcHBlYXJzIHRvIGJlIGVtcHR5YCk7XG4gICAgfVxuICB9IGNhdGNoIChpZ24pIHtcbiAgICB0cnkge1xuICAgICAgb2JqID0gYXdhaXQgcGFyc2VYbWxQbGlzdEZpbGUocGxpc3QpO1xuICAgICAgdHlwZSA9ICd4bWwnO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nLmVycm9yQW5kVGhyb3coYENvdWxkIG5vdCBwYXJzZSBwbGlzdCBmaWxlICcke3BsaXN0fScgYXMgWE1MOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIGlmICghcXVpZXQpIHtcbiAgICBsb2cuZGVidWcoYFBhcnNlZCBwbGlzdCBmaWxlICcke3BsaXN0fScgYXMgJHt0eXBlfWApO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogVXBkYXRlcyBhIHBsaXN0IGZpbGUgd2l0aCB0aGUgZ2l2ZW4gZmllbGRzXG4gKiBAcGFyYW0ge3N0cmluZ30gcGxpc3QgVGhlIHBsaXN0IGZpbGUgcGF0aFxuICogQHBhcmFtIHtPYmplY3R9IHVwZGF0ZWRGaWVsZHMgVGhlIHVwZGF0ZWQgZmllbGRzLXZhbHVlIHBhaXJzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGJpbmFyeSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBmaWxlIHdpbGwgYmUgY3JlYXRlZCBhcyBhIHhtbCBwbGlzdFxuICogQHBhcmFtIHtib29sZWFufSBtdXN0RXhpc3QgSWYgc2V0IHRvIGZhbHNlLCB0aGlzIG1ldGhvZCB3aWxsIHVwZGF0ZSBhbiBlbXB0eSBwbGlzdFxuICogQHBhcmFtIHtib29sZWFufSBxdWlldCBJZiBzZXQgdG8gZmFsc2UsIHRoZSBwbGlzdCBwYXRoIHdpbGwgYmUgbG9nZ2VkIGluIGRlYnVnIGxldmVsXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVBsaXN0RmlsZSAocGxpc3QsIHVwZGF0ZWRGaWVsZHMsIGJpbmFyeSA9IHRydWUsIG11c3RFeGlzdCA9IHRydWUsIHF1aWV0ID0gdHJ1ZSkge1xuICBsZXQgb2JqO1xuICB0cnkge1xuICAgIG9iaiA9IGF3YWl0IHBhcnNlUGxpc3RGaWxlKHBsaXN0LCBtdXN0RXhpc3QpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2cuZXJyb3JBbmRUaHJvdyhgQ291bGQgbm90IHVwZGF0ZSBwbGlzdDogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxuICBfLmV4dGVuZChvYmosIHVwZGF0ZWRGaWVsZHMpO1xuICBsZXQgbmV3UGxpc3QgPSBiaW5hcnkgPyBicGxpc3RDcmVhdGUob2JqKSA6IHhtbHBsaXN0LmJ1aWxkKG9iaik7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKHBsaXN0LCBuZXdQbGlzdCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBDb3VsZCBub3Qgc2F2ZSBwbGlzdDogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxuICBpZiAoIXF1aWV0KSB7XG4gICAgbG9nLmRlYnVnKGBXcm90ZSBwbGlzdCBmaWxlICcke3BsaXN0fSdgKTtcbiAgfVxufVxuLyoqXG4gKiBDcmVhdGVzIGEgYmluYXJ5IHBsaXN0IEJ1ZmZlciBmcm9tIGFuIG9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIG9iamVjdCB0byBiZSB0dXJuZWQgaW50byBhIGJpbmFyeSBwbGlzdFxuICogQHJldHVybnMge0J1ZmZlcn0gcGxpc3QgaW4gdGhlIGZvcm0gb2YgYSBiaW5hcnkgYnVmZmVyXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUJpbmFyeVBsaXN0IChkYXRhKSB7XG4gIHJldHVybiBicGxpc3RDcmVhdGUoZGF0YSk7XG59XG5cbi8qKlxuICogUGFyc2VzIGEgQnVmZmVyIGludG8gYW4gT2JqZWN0XG4gKiBAcGFyYW0ge0J1ZmZlcn0gZGF0YSBUaGUgYmVmZmVyIG9mIGEgYmluYXJ5IHBsaXN0XG4gKi9cbmZ1bmN0aW9uIHBhcnNlQmluYXJ5UGxpc3QgKGRhdGEpIHtcbiAgLy8gdGhpcyBmdW5jdGlvbiBleGlzdHMsIGJ1dCBpcyBub3QgaW4gdGhlIHR5cGUgZGVjbGFyYXRpb25zLlxuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIHJldHVybiBicGxpc3RQYXJzZS5wYXJzZUJ1ZmZlcihkYXRhKTtcbn1cblxuZnVuY3Rpb24gZ2V0WG1sUGxpc3QgKGRhdGEpIHtcbiAgaWYgKF8uaXNTdHJpbmcoZGF0YSkgJiYgZGF0YS5zdGFydHNXaXRoKFBMSVNUX0lERU5USUZJRVIuVEVYVCkpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICBpZiAoXy5pc0J1ZmZlcihkYXRhKSAmJiBQTElTVF9JREVOVElGSUVSLkJVRkZFUi5jb21wYXJlKGRhdGEsIDAsIFBMSVNUX0lERU5USUZJRVIuQlVGRkVSLmxlbmd0aCkgPT09IDApIHtcbiAgICByZXR1cm4gZGF0YS50b1N0cmluZygpO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBnZXRCaW5hcnlQbGlzdCAoZGF0YSkge1xuICBpZiAoXy5pc1N0cmluZyhkYXRhKSAmJiBkYXRhLnN0YXJ0c1dpdGgoQlBMSVNUX0lERU5USUZJRVIuVEVYVCkpIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oZGF0YSk7XG4gIH1cblxuICBpZiAoXy5pc0J1ZmZlcihkYXRhKSAmJiBCUExJU1RfSURFTlRJRklFUi5CVUZGRVIuY29tcGFyZShkYXRhLCAwLCBCUExJU1RfSURFTlRJRklFUi5CVUZGRVIubGVuZ3RoKSA9PT0gMCkge1xuICAgIHJldHVybiBkYXRhO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBwbGlzdCBmcm9tIGFuIG9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgSlMgb2JqZWN0IHRvIGJlIHR1cm5lZCBpbnRvIGEgcGxpc3RcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYmluYXJ5IFNldCBpdCB0byB0cnVlIGZvciBhIGJpbmFyeSBwbGlzdFxuICogQHJldHVybnMge3N0cmluZ3xCdWZmZXJ9IHJldHVybnMgYSBidWZmZXIgb3IgYSBzdHJpbmcgaW4gcmVzcGVjdCB0byB0aGUgYmluYXJ5IHBhcmFtZXRlclxuICovXG5mdW5jdGlvbiBjcmVhdGVQbGlzdCAob2JqZWN0LCBiaW5hcnkgPSBmYWxzZSkge1xuICBpZiAoYmluYXJ5KSB7XG4gICAgcmV0dXJuIGNyZWF0ZUJpbmFyeVBsaXN0KG9iamVjdCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHhtbHBsaXN0LmJ1aWxkKG9iamVjdCk7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZXMgYW4gYnVmZmVyIG9yIGEgc3RyaW5nIHRvIGEgSlMgb2JqZWN0IGEgcGxpc3QgZnJvbSBhbiBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfEJ1ZmZlcn0gZGF0YSBUaGUgcGxpc3QgaW4gdGhlIGZvcm0gb2Ygc3RyaW5nIG9yIEJ1ZmZlclxuICogQHJldHVybnMge09iamVjdH0gcGFyc2VkIHBsaXN0IEpTIE9iamVjdFxuICogQHRocm93cyBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBwbGlzdCB0eXBlIGlzIHVua25vd25cbiAqL1xuZnVuY3Rpb24gcGFyc2VQbGlzdCAoZGF0YSkge1xuICBsZXQgdGV4dFBsaXN0ID0gZ2V0WG1sUGxpc3QoZGF0YSk7XG4gIGlmICh0ZXh0UGxpc3QpIHtcbiAgICByZXR1cm4geG1scGxpc3QucGFyc2UodGV4dFBsaXN0KTtcbiAgfVxuXG4gIGxldCBiaW5hcnlQbGlzdCA9IGdldEJpbmFyeVBsaXN0KGRhdGEpO1xuICBpZiAoYmluYXJ5UGxpc3QpIHtcbiAgICByZXR1cm4gcGFyc2VCaW5hcnlQbGlzdChiaW5hcnlQbGlzdClbMF07XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdHlwZSBvZiBwbGlzdCwgZGF0YTogJHtkYXRhLnRvU3RyaW5nKCl9YCk7XG59XG5cbmV4cG9ydCB7IHBhcnNlUGxpc3RGaWxlLCBwYXJzZVBsaXN0LCBjcmVhdGVQbGlzdCwgdXBkYXRlUGxpc3RGaWxlLCBjcmVhdGVCaW5hcnlQbGlzdCwgcGFyc2VCaW5hcnlQbGlzdCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsaUJBQWlCLEdBQUc7RUFDeEJDLE1BQU0sRUFBRUMsTUFBTSxDQUFDQyxJQUFQLENBQVksVUFBWixDQURnQjtFQUV4QkMsSUFBSSxFQUFFO0FBRmtCLENBQTFCO0FBSUEsTUFBTUMsZ0JBQWdCLEdBQUc7RUFDdkJKLE1BQU0sRUFBRUMsTUFBTSxDQUFDQyxJQUFQLENBQVksR0FBWixDQURlO0VBRXZCQyxJQUFJLEVBQUU7QUFGaUIsQ0FBekI7O0FBTUEsZUFBZUUsaUJBQWYsQ0FBa0NDLGFBQWxDLEVBQWlEO0VBQy9DLElBQUlDLFVBQVUsR0FBRyxNQUFNQyxZQUFHQyxRQUFILENBQVlILGFBQVosRUFBMkIsTUFBM0IsQ0FBdkI7RUFDQSxPQUFPSSxlQUFTQyxLQUFULENBQWVKLFVBQWYsQ0FBUDtBQUNEOztBQVNELGVBQWVLLGNBQWYsQ0FBK0JDLEtBQS9CLEVBQXNDQyxTQUFTLEdBQUcsSUFBbEQsRUFBd0RDLEtBQUssR0FBRyxJQUFoRSxFQUFzRTtFQUVwRSxJQUFJLEVBQUMsTUFBTVAsWUFBR1EsTUFBSCxDQUFVSCxLQUFW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
|
package/build/lib/process.js
CHANGED
|
@@ -46,4 +46,4 @@ async function killProcess(appName, force = false) {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRQcm9jZXNzSWRzIiwiYXBwTmFtZSIsInBpZHMiLCJzdGRvdXQiLCJ0cmltIiwic3BsaXQiLCJtYXAiLCJwaWQiLCJwYXJzZUludCIsImVyciIsImNvZGUiLCJFcnJvciIsIm1lc3NhZ2UiLCJraWxsUHJvY2VzcyIsImZvcmNlIiwibGVuZ3RoIiwiYXJncyIsInB1c2giXSwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvY2Vzcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcblxuXG4vKlxuICogRXhpdCBTdGF0dXMgZm9yIHBncmVwIGFuZCBwa2lsbCAoYG1hbiBwa2lsbGApXG4gKiAgMC4gT25lIG9yIG1vcmUgcHJvY2Vzc2VzIG1hdGNoZWQgdGhlIGNyaXRlcmlhLlxuICogIDEuIE5vIHByb2Nlc3NlcyBtYXRjaGVkLlxuICogIDIuIFN5bnRheCBlcnJvciBpbiB0aGUgY29tbWFuZCBsaW5lLlxuICogIDMuIEZhdGFsIGVycm9yOiBvdXQgb2YgbWVtb3J5IGV0Yy5cbiAqL1xuXG5hc3luYyBmdW5jdGlvbiBnZXRQcm9jZXNzSWRzIChhcHBOYW1lKSB7XG4gIGxldCBwaWRzO1xuICB0cnkge1xuICAgIGxldCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWMoJ3BncmVwJywgWycteCcsIGFwcE5hbWVdKTtcbiAgICBwaWRzID0gc3Rkb3V0LnRyaW0oKS5zcGxpdCgnXFxuJykubWFwKChwaWQpID0+IHBhcnNlSW50KHBpZCwgMTApKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKHBhcnNlSW50KGVyci5jb2RlLCAxMCkgIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgZ2V0dGluZyBwcm9jZXNzIGlkcyBmb3IgYXBwICcke2FwcE5hbWV9JzogJHtlcnIubWVzc2FnZX1gKTtcbiAgICB9XG4gICAgcGlkcyA9IFtdO1xuICB9XG4gIHJldHVybiBwaWRzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBraWxsUHJvY2VzcyAoYXBwTmFtZSwgZm9yY2UgPSBmYWxzZSkge1xuICBsZXQgcGlkcyA9IGF3YWl0IGdldFByb2Nlc3NJZHMoYXBwTmFtZSk7XG4gIGlmIChwaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgIC8vIHRoZSBwcm9jZXNzIGlzIG5vdCBydW5uaW5nXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBsZXQgYXJncyA9IGZvcmNlID8gWyctOSddIDogW107XG4gICAgYXJncy5wdXNoKCcteCcsIGFwcE5hbWUpO1xuICAgIGF3YWl0IGV4ZWMoJ3BraWxsJywgYXJncyk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChwYXJzZUludChlcnIuY29kZSwgMTApICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIGtpbGxpbmcgYXBwICcke2FwcE5hbWV9JyB3aXRoIHBraWxsOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgeyBnZXRQcm9jZXNzSWRzLCBraWxsUHJvY2VzcyB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7O0FBV0EsZUFBZUEsYUFBZixDQUE4QkMsT0FBOUIsRUFBdUM7RUFDckMsSUFBSUMsSUFBSjs7RUFDQSxJQUFJO0lBQ0YsSUFBSTtNQUFDQztJQUFELElBQVcsTUFBTSx3QkFBSyxPQUFMLEVBQWMsQ0FBQyxJQUFELEVBQU9GLE9BQVAsQ0FBZCxDQUFyQjtJQUNBQyxJQUFJLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxHQUFjQyxLQUFkLENBQW9CLElBQXBCLEVBQTBCQyxHQUExQixDQUErQkMsR0FBRCxJQUFTQyxRQUFRLENBQUNELEdBQUQsRUFBTSxFQUFOLENBQS9DLENBQVA7RUFDRCxDQUhELENBR0UsT0FBT0UsR0FBUCxFQUFZO0lBQ1osSUFBSUQsUUFBUSxDQUFDQyxHQUFHLENBQUNDLElBQUwsRUFBVyxFQUFYLENBQVIsS0FBMkIsQ0FBL0IsRUFBa0M7TUFDaEMsTUFBTSxJQUFJQyxLQUFKLENBQVcsc0NBQXFDVixPQUFRLE1BQUtRLEdBQUcsQ0FBQ0csT0FBUSxFQUF6RSxDQUFOO0lBQ0Q7O0lBQ0RWLElBQUksR0FBRyxFQUFQO0VBQ0Q7O0VBQ0QsT0FBT0EsSUFBUDtBQUNEOztBQUVELGVBQWVXLFdBQWYsQ0FBNEJaLE9BQTVCLEVBQXFDYSxLQUFLLEdBQUcsS0FBN0MsRUFBb0Q7RUFDbEQsSUFBSVosSUFBSSxHQUFHLE1BQU1GLGFBQWEsQ0FBQ0MsT0FBRCxDQUE5Qjs7RUFDQSxJQUFJQyxJQUFJLENBQUNhLE1BQUwsS0FBZ0IsQ0FBcEIsRUFBdUI7SUFFckI7RUFDRDs7RUFFRCxJQUFJO0lBQ0YsSUFBSUMsSUFBSSxHQUFHRixLQUFLLEdBQUcsQ0FBQyxJQUFELENBQUgsR0FBWSxFQUE1QjtJQUNBRSxJQUFJLENBQUNDLElBQUwsQ0FBVSxJQUFWLEVBQWdCaEIsT0FBaEI7SUFDQSxNQUFNLHdCQUFLLE9BQUwsRUFBY2UsSUFBZCxDQUFOO0VBQ0QsQ0FKRCxDQUlFLE9BQU9QLEdBQVAsRUFBWTtJQUNaLElBQUlELFFBQVEsQ0FBQ0MsR0FBRyxDQUFDQyxJQUFMLEVBQVcsRUFBWCxDQUFSLEtBQTJCLENBQS9CLEVBQWtDO01BQ2hDLE1BQU0sSUFBSUMsS0FBSixDQUFXLHNCQUFxQlYsT0FBUSxpQkFBZ0JRLEdBQUcsQ0FBQ0csT0FBUSxFQUFwRSxDQUFOO0lBQ0Q7RUFDRjtBQUNGIn0=
|
package/build/lib/system.js
CHANGED
|
@@ -67,4 +67,4 @@ async function macOsxVersion() {
|
|
|
67
67
|
|
|
68
68
|
return versionMatch[1];
|
|
69
69
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWRVJTSU9OX1BBVFRFUk4iLCJpc1dpbmRvd3MiLCJvcyIsInR5cGUiLCJpc01hYyIsImlzTGludXgiLCJpc09TV2luNjQiLCJwcm9jZXNzIiwiYXJjaCIsIl8iLCJoYXMiLCJlbnYiLCJzdGRvdXQiLCJ0cmltIiwiaXM2NCIsIm1hY09zeFZlcnNpb24iLCJlcnIiLCJFcnJvciIsInZlcnNpb25NYXRjaCIsImV4ZWMiXSwic291cmNlcyI6WyIuLi8uLi9saWIvc3lzdGVtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBvcyBmcm9tICdvcyc7XG5cbmNvbnN0IFZFUlNJT05fUEFUVEVSTiA9IC9eKFxcZCtcXC5cXGQrKS9tO1xuXG5mdW5jdGlvbiBpc1dpbmRvd3MgKCkge1xuICByZXR1cm4gb3MudHlwZSgpID09PSAnV2luZG93c19OVCc7XG59XG5cbmZ1bmN0aW9uIGlzTWFjICgpIHtcbiAgcmV0dXJuIG9zLnR5cGUoKSA9PT0gJ0Rhcndpbic7XG59XG5cbmZ1bmN0aW9uIGlzTGludXggKCkge1xuICByZXR1cm4gIWlzV2luZG93cygpICYmICFpc01hYygpO1xufVxuXG5mdW5jdGlvbiBpc09TV2luNjQgKCkge1xuICByZXR1cm4gcHJvY2Vzcy5hcmNoID09PSAneDY0JyB8fCBfLmhhcyhwcm9jZXNzLmVudiwgJ1BST0NFU1NPUl9BUkNISVRFVzY0MzInKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXJjaCAoKSB7XG4gIGlmIChpc0xpbnV4KCkgfHwgaXNNYWMoKSkge1xuICAgIGxldCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWMoJ3VuYW1lJywgWyctbSddKTtcbiAgICByZXR1cm4gc3Rkb3V0LnRyaW0oKSA9PT0gJ2k2ODYnID8gJzMyJyA6ICc2NCc7XG4gIH0gZWxzZSBpZiAoaXNXaW5kb3dzKCkpIHtcbiAgICBsZXQgaXM2NCA9IHRoaXMuaXNPU1dpbjY0KCk7XG4gICAgcmV0dXJuIGlzNjQgPyAnNjQnIDogJzMyJztcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBtYWNPc3hWZXJzaW9uICgpIHtcbiAgbGV0IHN0ZG91dDtcbiAgdHJ5IHtcbiAgICBzdGRvdXQgPSAoYXdhaXQgZXhlYygnc3dfdmVycycsIFsnLXByb2R1Y3RWZXJzaW9uJ10pKS5zdGRvdXQudHJpbSgpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBkZXRlY3QgTWFjIE9TIFggVmVyc2lvbjogJHtlcnJ9YCk7XG4gIH1cblxuICBjb25zdCB2ZXJzaW9uTWF0Y2ggPSBWRVJTSU9OX1BBVFRFUk4uZXhlYyhzdGRvdXQpO1xuICBpZiAoIXZlcnNpb25NYXRjaCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGRldGVjdCBNYWMgT1MgWCBWZXJzaW9uIGZyb20gc3dfdmVycyBvdXRwdXQ6ICcke3N0ZG91dH0nYCk7XG4gIH1cbiAgcmV0dXJuIHZlcnNpb25NYXRjaFsxXTtcbn1cblxuZXhwb3J0IHsgaXNXaW5kb3dzLCBpc01hYywgaXNMaW51eCwgaXNPU1dpbjY0LCBhcmNoLCBtYWNPc3hWZXJzaW9uIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxlQUFlLEdBQUcsY0FBeEI7O0FBRUEsU0FBU0MsU0FBVCxHQUFzQjtFQUNwQixPQUFPQyxZQUFHQyxJQUFILE9BQWMsWUFBckI7QUFDRDs7QUFFRCxTQUFTQyxLQUFULEdBQWtCO0VBQ2hCLE9BQU9GLFlBQUdDLElBQUgsT0FBYyxRQUFyQjtBQUNEOztBQUVELFNBQVNFLE9BQVQsR0FBb0I7RUFDbEIsT0FBTyxDQUFDSixTQUFTLEVBQVYsSUFBZ0IsQ0FBQ0csS0FBSyxFQUE3QjtBQUNEOztBQUVELFNBQVNFLFNBQVQsR0FBc0I7RUFDcEIsT0FBT0MsT0FBTyxDQUFDQyxJQUFSLEtBQWlCLEtBQWpCLElBQTBCQyxnQkFBRUMsR0FBRixDQUFNSCxPQUFPLENBQUNJLEdBQWQsRUFBbUIsd0JBQW5CLENBQWpDO0FBQ0Q7O0FBRUQsZUFBZUgsSUFBZixHQUF1QjtFQUNyQixJQUFJSCxPQUFPLE1BQU1ELEtBQUssRUFBdEIsRUFBMEI7SUFDeEIsSUFBSTtNQUFDUTtJQUFELElBQVcsTUFBTSx3QkFBSyxPQUFMLEVBQWMsQ0FBQyxJQUFELENBQWQsQ0FBckI7SUFDQSxPQUFPQSxNQUFNLENBQUNDLElBQVAsT0FBa0IsTUFBbEIsR0FBMkIsSUFBM0IsR0FBa0MsSUFBekM7RUFDRCxDQUhELE1BR08sSUFBSVosU0FBUyxFQUFiLEVBQWlCO0lBQ3RCLElBQUlhLElBQUksR0FBRyxLQUFLUixTQUFMLEVBQVg7SUFDQSxPQUFPUSxJQUFJLEdBQUcsSUFBSCxHQUFVLElBQXJCO0VBQ0Q7QUFDRjs7QUFFRCxlQUFlQyxhQUFmLEdBQWdDO0VBQzlCLElBQUlILE1BQUo7O0VBQ0EsSUFBSTtJQUNGQSxNQUFNLEdBQUcsQ0FBQyxNQUFNLHdCQUFLLFNBQUwsRUFBZ0IsQ0FBQyxpQkFBRCxDQUFoQixDQUFQLEVBQTZDQSxNQUE3QyxDQUFvREMsSUFBcEQsRUFBVDtFQUNELENBRkQsQ0FFRSxPQUFPRyxHQUFQLEVBQVk7SUFDWixNQUFNLElBQUlDLEtBQUosQ0FBVyxzQ0FBcUNELEdBQUksRUFBcEQsQ0FBTjtFQUNEOztFQUVELE1BQU1FLFlBQVksR0FBR2xCLGVBQWUsQ0FBQ21CLElBQWhCLENBQXFCUCxNQUFyQixDQUFyQjs7RUFDQSxJQUFJLENBQUNNLFlBQUwsRUFBbUI7SUFDakIsTUFBTSxJQUFJRCxLQUFKLENBQVcsMkRBQTBETCxNQUFPLEdBQTVFLENBQU47RUFDRDs7RUFDRCxPQUFPTSxZQUFZLENBQUMsQ0FBRCxDQUFuQjtBQUNEIn0=
|
package/build/lib/tempdir.js
CHANGED
|
@@ -85,4 +85,4 @@ exports.openDir = openDir;
|
|
|
85
85
|
async function staticDir() {
|
|
86
86
|
return _static;
|
|
87
87
|
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSRFdSX0VYQ0wiLCJjbnN0IiwiT19DUkVBVCIsIk9fVFJVTkMiLCJPX1JEV1IiLCJPX0VYQ0wiLCJ0ZW1wRGlyIiwibm93IiwiRGF0ZSIsImZpbGVQYXRoIiwibm9kZVBhdGgiLCJqb2luIiwicHJvY2VzcyIsImVudiIsIkFQUElVTV9UTVBfRElSIiwib3MiLCJ0bXBkaXIiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsInBpZCIsIk1hdGgiLCJyYW5kb20iLCJ0b1N0cmluZyIsImZzIiwibWtkaXIiLCJwYXRoIiwicmF3QWZmaXhlcyIsImRlZmF1bHRQcmVmaXgiLCJhZmZpeGVzIiwicGFyc2VBZmZpeGVzIiwibmFtZSIsInByZWZpeCIsInN1ZmZpeCIsInRlbXBEaXJlY3RvcnkiLCJvcGVuIiwiZmQiLCJlcnIiLCJsb2ciLCJlcnJvckFuZFRocm93IiwiRXJyb3IiLCJfc3RhdGljIiwib3BlbkRpciIsInN0YXRpY0RpciJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi90ZW1wZGlyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIFRoaXMgbGlicmFyeSBpcyBvcmlnaW5hdGVkIGZyb20gdGVtcC5qcyBhdCBodHRwOi8vZ2l0aHViLmNvbS9icnVjZS9ub2RlLXRlbXAgKi9cbmltcG9ydCBmcyBmcm9tICcuL2ZzJztcbmltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgbm9kZVBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgY25zdCBmcm9tICdjb25zdGFudHMnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5cbmNvbnN0IFJEV1JfRVhDTCA9IGNuc3QuT19DUkVBVCB8IGNuc3QuT19UUlVOQyB8IGNuc3QuT19SRFdSIHwgY25zdC5PX0VYQ0w7XG5cbi8qKlxuICogR2VuZXJhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluIG9zLnRlbXBkaXIoKSBvciBwcm9jZXNzLmVudi5BUFBJVU1fVE1QX0RJUi5cbiAqIGUuZy5cbiAqIC0gTm8gYHByb2Nlc3MuZW52LkFQUElVTV9UTVBfRElSYDogYC92YXIvZm9sZGVycy8zNC8yMjIyc2g4bjI3ZDZyY3A3anFsa3c4a20wMDAwZ24vVC94eHh4eHh4eC55eXl5YFxuICogLSBXaXRoIGBwcm9jZXNzLmVudi5BUFBJVU1fVE1QX0RJUiA9ICcvcGF0aC90by9yb290J2A6IGAvcGF0aC90by9yb290L3h4eHh4eHh4Lnl5eXlgXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gQSBwYXRoIHRvIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHRlbXBEaXIgKCkge1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBmaWxlUGF0aCA9IG5vZGVQYXRoLmpvaW4ocHJvY2Vzcy5lbnYuQVBQSVVNX1RNUF9ESVIgfHwgb3MudG1wZGlyKCksXG4gICAgW1xuICAgICAgbm93LmdldEZ1bGxZZWFyKCksIG5vdy5nZXRNb250aCgpLCBub3cuZ2V0RGF0ZSgpLFxuICAgICAgJy0nLFxuICAgICAgcHJvY2Vzcy5waWQsXG4gICAgICAnLScsXG4gICAgICAoTWF0aC5yYW5kb20oKSAqIDB4MTAwMDAwMDAwICsgMSkudG9TdHJpbmcoMzYpLFxuICAgIF0uam9pbignJykpO1xuICAvLyBjcmVhdGVzIGEgdGVtcCBkaXJlY3RvcnkgdXNpbmcgdGhlIGRhdGUgYW5kIGEgcmFuZG9tIHN0cmluZ1xuXG4gIGF3YWl0IGZzLm1rZGlyKGZpbGVQYXRoKTtcblxuICByZXR1cm4gZmlsZVBhdGg7XG59XG5cbi8qKlxuICogQHR5cGVkZWYgQWZmaXhlc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFtwcmVmaXhdIC0gcHJlZml4IG9mIHRoZSB0ZW1wIGRpcmVjdG9yeSBuYW1lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3N1ZmZpeF0gLSBzdWZmaXggb2YgdGhlIHRlbXAgZGlyZWN0b3J5IG5hbWVcbiAqL1xuXG4vKipcbiAqIEdlbmVyYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiBvcy50ZW1wZGlyKCkgb3IgcHJvY2Vzcy5lbnYuQVBQSVVNX1RNUF9ESVJcbiAqIHdpdGggYXJiaXRyYXJ5IHByZWZpeC9zdWZmaXggZm9yIHRoZSBkaXJlY3RvcnkgbmFtZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xBZmZpeGVzfSByYXdBZmZpeGVzXG4gKiBAcGFyYW0ge3N0cmluZ30gW2RlZmF1bHRQcmVmaXhdXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSAgQSBwYXRoIHRvIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHdpdGggcmF3QWZmaXhlcyBhbmQgZGVmYXVsdFByZWZpeFxuICovXG5hc3luYyBmdW5jdGlvbiBwYXRoIChyYXdBZmZpeGVzLCBkZWZhdWx0UHJlZml4KSB7XG4gIGNvbnN0IGFmZml4ZXMgPSBwYXJzZUFmZml4ZXMocmF3QWZmaXhlcywgZGVmYXVsdFByZWZpeCk7XG4gIGNvbnN0IG5hbWUgPSBgJHthZmZpeGVzLnByZWZpeCB8fCAnJ30ke2FmZml4ZXMuc3VmZml4IHx8ICcnfWA7XG4gIGNvbnN0IHRlbXBEaXJlY3RvcnkgPSBhd2FpdCB0ZW1wRGlyKCk7XG4gIHJldHVybiBub2RlUGF0aC5qb2luKHRlbXBEaXJlY3RvcnksIG5hbWUpO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIE9wZW5lZEFmZml4ZXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwYXRoIC0gVGhlIHBhdGggdG8gZmlsZVxuICogQHByb3BlcnR5IHtudW1iZXJ9IGZkIC0gVGhlIGZpbGUgZGVzY3JpcHRvciBvcGVuZWRcbiAqL1xuXG4vKipcbiAqIEdlbmVyYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiBvcy50ZW1wZGlyKCkgb3IgcHJvY2Vzcy5lbnYuQVBQSVVNX1RNUF9ESVJcbiAqIHdpdGggYXJiaXRyYXJ5IHByZWZpeC9zdWZmaXggZm9yIHRoZSBkaXJlY3RvcnkgbmFtZSBhbmQgcmV0dXJuIGl0IGFzIG9wZW4uXG4gKlxuICogQHBhcmFtIHtBZmZpeGVzfSBhZmZpeGVzXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxPcGVuZWRBZmZpeGVzPn1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gb3BlbiAoYWZmaXhlcykge1xuICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IHBhdGgoYWZmaXhlcywgJ2YtJyk7XG4gIHRyeSB7XG4gICAgbGV0IGZkID0gYXdhaXQgZnMub3BlbihmaWxlUGF0aCwgUkRXUl9FWENMLCAwbzYwMCk7XG4gICAgLy8gb3BlbnMgdGhlIGZpbGUgaW4gbW9kZSAzODRcbiAgICByZXR1cm4ge3BhdGg6IGZpbGVQYXRoLCBmZH07XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBsb2cuZXJyb3JBbmRUaHJvdyhlcnIpO1xuICB9XG59XG5cbi8qKlxuICpcbiAqIFJldHVybnMgcHJlZml4L3N1ZmZpeCBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xBZmZpeGVzfSByYXdBZmZpeGVzXG4gKiBAcGFyYW0ge3N0cmluZ30gW2RlZmF1bHRQcmVmaXhdXG4gKiBAcmV0dXJucyB7QWZmaXhlc31cbiAqL1xuZnVuY3Rpb24gcGFyc2VBZmZpeGVzIChyYXdBZmZpeGVzLCBkZWZhdWx0UHJlZml4KSB7XG4gIC8qKiBAdHlwZSB7QWZmaXhlc30gKi9cbiAgbGV0IGFmZml4ZXMgPSB7fTtcbiAgaWYgKHJhd0FmZml4ZXMpIHtcbiAgICBzd2l0Y2ggKHR5cGVvZiByYXdBZmZpeGVzKSB7XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICBhZmZpeGVzLnByZWZpeCA9IHJhd0FmZml4ZXM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgYWZmaXhlcyA9IHJhd0FmZml4ZXM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGFmZml4IGRlY2xhcmF0aW9uOiAke2FmZml4ZXN9YCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGFmZml4ZXMucHJlZml4ID0gZGVmYXVsdFByZWZpeDtcbiAgfVxuICByZXR1cm4gYWZmaXhlcztcbn1cblxuY29uc3QgX3N0YXRpYyA9IHRlbXBEaXIoKTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgbmV3IHBhdGggdG8gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5XG4gKlxuICogQHJldHVybnMge3N0cmluZ30gQSBuZXcgdGVtcERpcigpIGlmIHRlbXBSb290RGlyZWN0b3J5IGlzIG5vdCBwcm92aWRlZFxuICovXG5jb25zdCBvcGVuRGlyID0gdGVtcERpcjtcblxuLyoqXG4gKiBSZXR1cm5zIGEgcGF0aCB0byBhIHRlbXBvcmFyeSBkaXJlY3Rvcnkgd2hjaWggaXMgZGVmaW5lZCBhcyBzdGF0aWMgaW4gdGhlIHNhbWUgcHJvY2Vzc1xuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz59IEEgdGVtcCBkaXJlY3RvcnkgcGF0aCB3aGNpaCBpcyBkZWZpbmVkIGFzIHN0YXRpYyBpbiB0aGUgc2FtZSBwcm9jZXNzXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHN0YXRpY0RpciAoKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICByZXR1cm4gX3N0YXRpYztcbn1cblxuZXhwb3J0IHsgb3BlbiwgcGF0aCwgb3BlbkRpciwgc3RhdGljRGlyIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsU0FBUyxHQUFHQyxtQkFBS0MsT0FBTCxHQUFlRCxtQkFBS0UsT0FBcEIsR0FBOEJGLG1CQUFLRyxNQUFuQyxHQUE0Q0gsbUJBQUtJLE1BQW5FOztBQVVBLGVBQWVDLE9BQWYsR0FBMEI7RUFDeEIsTUFBTUMsR0FBRyxHQUFHLElBQUlDLElBQUosRUFBWjs7RUFDQSxNQUFNQyxRQUFRLEdBQUdDLGNBQVNDLElBQVQsQ0FBY0MsT0FBTyxDQUFDQyxHQUFSLENBQVlDLGNBQVosSUFBOEJDLFlBQUdDLE1BQUgsRUFBNUMsRUFDZixDQUNFVCxHQUFHLENBQUNVLFdBQUosRUFERixFQUNxQlYsR0FBRyxDQUFDVyxRQUFKLEVBRHJCLEVBQ3FDWCxHQUFHLENBQUNZLE9BQUosRUFEckMsRUFFRSxHQUZGLEVBR0VQLE9BQU8sQ0FBQ1EsR0FIVixFQUlFLEdBSkYsRUFLRSxDQUFDQyxJQUFJLENBQUNDLE1BQUwsS0FBZ0IsV0FBaEIsR0FBOEIsQ0FBL0IsRUFBa0NDLFFBQWxDLENBQTJDLEVBQTNDLENBTEYsRUFNRVosSUFORixDQU1PLEVBTlAsQ0FEZSxDQUFqQjs7RUFVQSxNQUFNYSxZQUFHQyxLQUFILENBQVNoQixRQUFULENBQU47RUFFQSxPQUFPQSxRQUFQO0FBQ0Q7O0FBZ0JELGVBQWVpQixJQUFmLENBQXFCQyxVQUFyQixFQUFpQ0MsYUFBakMsRUFBZ0Q7RUFDOUMsTUFBTUMsT0FBTyxHQUFHQyxZQUFZLENBQUNILFVBQUQsRUFBYUMsYUFBYixDQUE1QjtFQUNBLE1BQU1HLElBQUksR0FBSSxHQUFFRixPQUFPLENBQUNHLE1BQVIsSUFBa0IsRUFBRyxHQUFFSCxPQUFPLENBQUNJLE1BQVIsSUFBa0IsRUFBRyxFQUE1RDtFQUNBLE1BQU1DLGFBQWEsR0FBRyxNQUFNNUIsT0FBTyxFQUFuQztFQUNBLE9BQU9JLGNBQVNDLElBQVQsQ0FBY3VCLGFBQWQsRUFBNkJILElBQTdCLENBQVA7QUFDRDs7QUFlRCxlQUFlSSxJQUFmLENBQXFCTixPQUFyQixFQUE4QjtFQUM1QixNQUFNcEIsUUFBUSxHQUFHLE1BQU1pQixJQUFJLENBQUNHLE9BQUQsRUFBVSxJQUFWLENBQTNCOztFQUNBLElBQUk7SUFDRixJQUFJTyxFQUFFLEdBQUcsTUFBTVosWUFBR1csSUFBSCxDQUFRMUIsUUFBUixFQUFrQlQsU0FBbEIsRUFBNkIsS0FBN0IsQ0FBZjtJQUVBLE9BQU87TUFBQzBCLElBQUksRUFBRWpCLFFBQVA7TUFBaUIyQjtJQUFqQixDQUFQO0VBQ0QsQ0FKRCxDQUlFLE9BQU9DLEdBQVAsRUFBWTtJQUNaLE9BQU9DLGdCQUFJQyxhQUFKLENBQWtCRixHQUFsQixDQUFQO0VBQ0Q7QUFDRjs7QUFVRCxTQUFTUCxZQUFULENBQXVCSCxVQUF2QixFQUFtQ0MsYUFBbkMsRUFBa0Q7RUFFaEQsSUFBSUMsT0FBTyxHQUFHLEVBQWQ7O0VBQ0EsSUFBSUYsVUFBSixFQUFnQjtJQUNkLFFBQVEsT0FBT0EsVUFBZjtNQUNFLEtBQUssUUFBTDtRQUNFRSxPQUFPLENBQUNHLE1BQVIsR0FBaUJMLFVBQWpCO1FBQ0E7O01BQ0YsS0FBSyxRQUFMO1FBQ0VFLE9BQU8sR0FBR0YsVUFBVjtRQUNBOztNQUNGO1FBQ0UsTUFBTSxJQUFJYSxLQUFKLENBQVcsOEJBQTZCWCxPQUFRLEVBQWhELENBQU47SUFSSjtFQVVELENBWEQsTUFXTztJQUNMQSxPQUFPLENBQUNHLE1BQVIsR0FBaUJKLGFBQWpCO0VBQ0Q7O0VBQ0QsT0FBT0MsT0FBUDtBQUNEOztBQUVELE1BQU1ZLE9BQU8sR0FBR25DLE9BQU8sRUFBdkI7O0FBT0EsTUFBTW9DLE9BQU8sR0FBR3BDLE9BQWhCOzs7QUFPQSxlQUFlcUMsU0FBZixHQUE0QjtFQUMxQixPQUFPRixPQUFQO0FBQ0QifQ==
|
package/build/lib/timing.js
CHANGED
|
@@ -94,4 +94,4 @@ class Timer {
|
|
|
94
94
|
exports.Timer = Timer;
|
|
95
95
|
var _default = Timer;
|
|
96
96
|
exports.default = _default;
|
|
97
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOU19QRVJfUyIsIk5TX1BFUl9NUyIsIkR1cmF0aW9uIiwiY29uc3RydWN0b3IiLCJuYW5vcyIsIl9uYW5vcyIsImFzTmFub1NlY29uZHMiLCJhc01pbGxpU2Vjb25kcyIsImFzU2Vjb25kcyIsInRvU3RyaW5nIiwidG9GaXhlZCIsIlRpbWVyIiwiX3N0YXJ0VGltZSIsInN0YXJ0VGltZSIsInN0YXJ0IiwiXyIsImlzTnVsbCIsIkVycm9yIiwiaXNGdW5jdGlvbiIsInByb2Nlc3MiLCJocnRpbWUiLCJiaWdpbnQiLCJnZXREdXJhdGlvbiIsIm5hbm9EdXJhdGlvbiIsImlzQXJyYXkiLCJzZWNvbmRzIiwiZW5kVGltZSIsIk51bWJlciIsImVyciIsIm1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi8uLi9saWIvdGltaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cblxuY29uc3QgTlNfUEVSX1MgPSAxZTk7XG5jb25zdCBOU19QRVJfTVMgPSAxZTY7XG5cblxuLyoqXG4gKiBDbGFzcyByZXByZXNlbnRpbmcgYSBkdXJhdGlvbiwgZW5jYXBzdWxhdGluZyB0aGUgbnVtYmVyIGFuZCB1bml0cy5cbiAqL1xuY2xhc3MgRHVyYXRpb24ge1xuICBjb25zdHJ1Y3RvciAobmFub3MpIHtcbiAgICB0aGlzLl9uYW5vcyA9IG5hbm9zO1xuICB9XG5cbiAgZ2V0IG5hbm9zICgpIHtcbiAgICByZXR1cm4gdGhpcy5fbmFub3M7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkdXJhdGlvbiBhcyBuYW5vc2Vjb25kc1xuICAgKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgZHVyYXRpb24gYXMgbmFub3NlY29uZHNcbiAgICovXG4gIGdldCBhc05hbm9TZWNvbmRzICgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW5vcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGR1cmF0aW9uIGNvbnZlcnRlZCBpbnRvIG1pbGxpc2Vjb25kc1xuICAgKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgZHVyYXRpb24gYXMgbWlsbGlzZWNvbmRzXG4gICAqL1xuICBnZXQgYXNNaWxsaVNlY29uZHMgKCkge1xuICAgIHJldHVybiB0aGlzLm5hbm9zIC8gTlNfUEVSX01TO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZHVyYXRpb24gY29udmVydGVkIGludG8gc2Vjb25kc1xuICAgKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgZHVyYXRpb24gZmFzIHNlY29uZHNcbiAgICovXG4gIGdldCBhc1NlY29uZHMgKCkge1xuICAgIHJldHVybiB0aGlzLm5hbm9zIC8gTlNfUEVSX1M7XG4gIH1cblxuICB0b1N0cmluZyAoKSB7XG4gICAgLy8gZGVmYXVsdCB0byBtaWxsaXNlY29uZHMsIHJvdW5kZWRcbiAgICByZXR1cm4gdGhpcy5hc01pbGxpU2Vjb25kcy50b0ZpeGVkKDApO1xuICB9XG59XG5cbmNsYXNzIFRpbWVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB0aW1lclxuICAgKi9cbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHRoaXMuX3N0YXJ0VGltZSA9IG51bGw7XG4gIH1cblxuICBnZXQgc3RhcnRUaW1lICgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHRoZSB0aW1lclxuICAgKlxuICAgKiBAcmV0dXJuIHtUaW1lcn0gVGhlIGN1cnJlbnQgaW5zdGFuY2UsIGZvciBjaGFpbmluZ1xuICAgKi9cbiAgc3RhcnQgKCkge1xuICAgIGlmICghXy5pc051bGwodGhpcy5zdGFydFRpbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RpbWVyIGhhcyBhbHJlYWR5IGJlZW4gc3RhcnRlZC4nKTtcbiAgICB9XG4gICAgLy8gb25jZSBOb2RlIDEwIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQsIHRoaXMgY2hlY2sgY2FuIGJlIHJlbW92ZWRcbiAgICB0aGlzLl9zdGFydFRpbWUgPSBfLmlzRnVuY3Rpb24ocHJvY2Vzcy5ocnRpbWUuYmlnaW50KVxuICAgICAgPyBwcm9jZXNzLmhydGltZS5iaWdpbnQoKVxuICAgICAgOiBwcm9jZXNzLmhydGltZSgpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZHVyYXRpb24gc2luY2UgdGhlIHRpbWVyIHdhcyBzdGFydGVkXG4gICAqXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufSB0aGUgZHVyYXRpb25cbiAgICovXG4gIGdldER1cmF0aW9uICgpIHtcbiAgICBpZiAoXy5pc051bGwodGhpcy5zdGFydFRpbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBnZXQgZHVyYXRpb24uIFRpbWVyIHdhcyBub3Qgc3RhcnRlZGApO1xuICAgIH1cblxuICAgIGxldCBuYW5vRHVyYXRpb247XG4gICAgaWYgKF8uaXNBcnJheSh0aGlzLnN0YXJ0VGltZSkpIHtcbiAgICAgIC8vIHN0YXJ0VGltZSB3YXMgY3JlYXRlZCB1c2luZyBwcm9jZXNzLmhydGltZSgpXG4gICAgICBjb25zdCBbc2Vjb25kcywgbmFub3NdID0gcHJvY2Vzcy5ocnRpbWUodGhpcy5zdGFydFRpbWUpO1xuICAgICAgbmFub0R1cmF0aW9uID0gc2Vjb25kcyAqIE5TX1BFUl9TICsgbmFub3M7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5zdGFydFRpbWUgPT09ICdiaWdpbnQnICYmIF8uaXNGdW5jdGlvbihwcm9jZXNzLmhydGltZS5iaWdpbnQpKSB7XG4gICAgICAvLyBzdGFydFRpbWUgd2FzIGNyZWF0ZWQgdXNpbmcgcHJvY2Vzcy5ocnRpbWUuYmlnaW50KClcbiAgICAgIGNvbnN0IGVuZFRpbWUgPSBwcm9jZXNzLmhydGltZS5iaWdpbnQoKTtcbiAgICAgIC8vIGdldCB0aGUgZGlmZmVyZW5jZSwgYW5kIGNvbnZlcnQgdG8gbnVtYmVyXG4gICAgICBuYW5vRHVyYXRpb24gPSBOdW1iZXIoZW5kVGltZSAtIHRoaXMuc3RhcnRUaW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZ2V0IGR1cmF0aW9uLiBTdGFydCB0aW1lICcke3RoaXMuc3RhcnRUaW1lfScgY2Fubm90IGJlIHBhcnNlZGApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRHVyYXRpb24obmFub0R1cmF0aW9uKTtcbiAgfVxuXG4gIHRvU3RyaW5nICgpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RHVyYXRpb24oKS50b1N0cmluZygpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIGA8ZXJyOiAke2Vyci5tZXNzYWdlfT5gO1xuICAgIH1cbiAgfVxufVxuXG5cbmV4cG9ydCB7IFRpbWVyLCBEdXJhdGlvbiB9O1xuZXhwb3J0IGRlZmF1bHQgVGltZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBR0EsTUFBTUEsUUFBUSxHQUFHLEdBQWpCO0FBQ0EsTUFBTUMsU0FBUyxHQUFHLEdBQWxCOztBQU1BLE1BQU1DLFFBQU4sQ0FBZTtFQUNiQyxXQUFXLENBQUVDLEtBQUYsRUFBUztJQUNsQixLQUFLQyxNQUFMLEdBQWNELEtBQWQ7RUFDRDs7RUFFUSxJQUFMQSxLQUFLLEdBQUk7SUFDWCxPQUFPLEtBQUtDLE1BQVo7RUFDRDs7RUFPZ0IsSUFBYkMsYUFBYSxHQUFJO0lBQ25CLE9BQU8sS0FBS0YsS0FBWjtFQUNEOztFQU9pQixJQUFkRyxjQUFjLEdBQUk7SUFDcEIsT0FBTyxLQUFLSCxLQUFMLEdBQWFILFNBQXBCO0VBQ0Q7O0VBT1ksSUFBVE8sU0FBUyxHQUFJO0lBQ2YsT0FBTyxLQUFLSixLQUFMLEdBQWFKLFFBQXBCO0VBQ0Q7O0VBRURTLFFBQVEsR0FBSTtJQUVWLE9BQU8sS0FBS0YsY0FBTCxDQUFvQkcsT0FBcEIsQ0FBNEIsQ0FBNUIsQ0FBUDtFQUNEOztBQXZDWTs7OztBQTBDZixNQUFNQyxLQUFOLENBQVk7RUFJVlIsV0FBVyxHQUFJO0lBQ2IsS0FBS1MsVUFBTCxHQUFrQixJQUFsQjtFQUNEOztFQUVZLElBQVRDLFNBQVMsR0FBSTtJQUNmLE9BQU8sS0FBS0QsVUFBWjtFQUNEOztFQU9ERSxLQUFLLEdBQUk7SUFDUCxJQUFJLENBQUNDLGdCQUFFQyxNQUFGLENBQVMsS0FBS0gsU0FBZCxDQUFMLEVBQStCO01BQzdCLE1BQU0sSUFBSUksS0FBSixDQUFVLGlDQUFWLENBQU47SUFDRDs7SUFFRCxLQUFLTCxVQUFMLEdBQWtCRyxnQkFBRUcsVUFBRixDQUFhQyxPQUFPLENBQUNDLE1BQVIsQ0FBZUMsTUFBNUIsSUFDZEYsT0FBTyxDQUFDQyxNQUFSLENBQWVDLE1BQWYsRUFEYyxHQUVkRixPQUFPLENBQUNDLE1BQVIsRUFGSjtJQUdBLE9BQU8sSUFBUDtFQUNEOztFQU9ERSxXQUFXLEdBQUk7SUFDYixJQUFJUCxnQkFBRUMsTUFBRixDQUFTLEtBQUtILFNBQWQsQ0FBSixFQUE4QjtNQUM1QixNQUFNLElBQUlJLEtBQUosQ0FBVywrQ0FBWCxDQUFOO0lBQ0Q7O0lBRUQsSUFBSU0sWUFBSjs7SUFDQSxJQUFJUixnQkFBRVMsT0FBRixDQUFVLEtBQUtYLFNBQWYsQ0FBSixFQUErQjtNQUU3QixNQUFNLENBQUNZLE9BQUQsRUFBVXJCLEtBQVYsSUFBbUJlLE9BQU8sQ0FBQ0MsTUFBUixDQUFlLEtBQUtQLFNBQXBCLENBQXpCO01BQ0FVLFlBQVksR0FBR0UsT0FBTyxHQUFHekIsUUFBVixHQUFxQkksS0FBcEM7SUFDRCxDQUpELE1BSU8sSUFBSSxPQUFPLEtBQUtTLFNBQVosS0FBMEIsUUFBMUIsSUFBc0NFLGdCQUFFRyxVQUFGLENBQWFDLE9BQU8sQ0FBQ0MsTUFBUixDQUFlQyxNQUE1QixDQUExQyxFQUErRTtNQUVwRixNQUFNSyxPQUFPLEdBQUdQLE9BQU8sQ0FBQ0MsTUFBUixDQUFlQyxNQUFmLEVBQWhCO01BRUFFLFlBQVksR0FBR0ksTUFBTSxDQUFDRCxPQUFPLEdBQUcsS0FBS2IsU0FBaEIsQ0FBckI7SUFDRCxDQUxNLE1BS0E7TUFDTCxNQUFNLElBQUlJLEtBQUosQ0FBVyx1Q0FBc0MsS0FBS0osU0FBVSxvQkFBaEUsQ0FBTjtJQUNEOztJQUVELE9BQU8sSUFBSVgsUUFBSixDQUFhcUIsWUFBYixDQUFQO0VBQ0Q7O0VBRURkLFFBQVEsR0FBSTtJQUNWLElBQUk7TUFDRixPQUFPLEtBQUthLFdBQUwsR0FBbUJiLFFBQW5CLEVBQVA7SUFDRCxDQUZELENBRUUsT0FBT21CLEdBQVAsRUFBWTtNQUNaLE9BQVEsU0FBUUEsR0FBRyxDQUFDQyxPQUFRLEdBQTVCO0lBQ0Q7RUFDRjs7QUE3RFM7OztlQWtFR2xCLEsifQ==
|
package/build/lib/util.js
CHANGED
|
@@ -418,4 +418,4 @@ function getLockFileGuard(lockFile, opts = {}) {
|
|
|
418
418
|
|
|
419
419
|
return guard;
|
|
420
420
|
}
|
|
421
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi91dGlsLmpzIl0sIm5hbWVzIjpbIlczQ19XRUJfRUxFTUVOVF9JREVOVElGSUVSIiwiS2lCIiwiTWlCIiwiR2lCIiwiaGFzQ29udGVudCIsInZhbCIsIl8iLCJpc1N0cmluZyIsImhhc1ZhbHVlIiwiaGFzVmFsIiwiaXNOdW1iZXIiLCJpc05hTiIsImlzVW5kZWZpbmVkIiwiaXNOdWxsIiwiZXNjYXBlU3BhY2UiLCJzdHIiLCJzcGxpdCIsImpvaW4iLCJlc2NhcGVTcGVjaWFsQ2hhcnMiLCJxdW90ZUVzY2FwZSIsInJlcGxhY2UiLCJyZSIsIlJlZ0V4cCIsImxvY2FsSXAiLCJpcCIsImNoYWluIiwib3MiLCJuZXR3b3JrSW50ZXJmYWNlcyIsInZhbHVlcyIsImZsYXR0ZW4iLCJmaWx0ZXIiLCJmYW1pbHkiLCJpbnRlcm5hbCIsIm1hcCIsImZpcnN0IiwidmFsdWUiLCJjYW5jZWxsYWJsZURlbGF5IiwibXMiLCJ0aW1lciIsInJlc29sdmUiLCJyZWplY3QiLCJkZWxheSIsIkIiLCJQcm9taXNlIiwiX3Jlc29sdmUiLCJfcmVqZWN0Iiwic2V0VGltZW91dCIsImNhbmNlbCIsImNsZWFyVGltZW91dCIsIkNhbmNlbGxhdGlvbkVycm9yIiwibXVsdGlSZXNvbHZlIiwicm9vdHMiLCJhcmdzIiwicm9vdCIsInBhdGgiLCJzYWZlSnNvblBhcnNlIiwib2JqIiwiSlNPTiIsInBhcnNlIiwiaWduIiwianNvblN0cmluZ2lmeSIsInJlcGxhY2VyIiwic3BhY2UiLCJpc0Z1bmN0aW9uIiwiayIsInYiLCJidWZmZXJUb0pTT04iLCJCdWZmZXIiLCJwcm90b3R5cGUiLCJ0b0pTT04iLCJzdHJpbmdpZnkiLCJrZXkiLCJ1cGRhdGVkVmFsdWUiLCJpc0J1ZmZlciIsInRvU3RyaW5nIiwidW53cmFwRWxlbWVudCIsImVsIiwicHJvcE5hbWUiLCJoYXMiLCJ3cmFwRWxlbWVudCIsImVsZW1lbnRJZCIsIkVMRU1FTlQiLCJmaWx0ZXJPYmplY3QiLCJwcmVkaWNhdGUiLCJuZXdPYmoiLCJjbG9uZSIsInZhbHVlUHJlZGljYXRlIiwiT2JqZWN0Iiwia2V5cyIsInRvUmVhZGFibGVTaXplU3RyaW5nIiwiYnl0ZXMiLCJpbnRCeXRlcyIsInBhcnNlSW50IiwiU3RyaW5nIiwiRXJyb3IiLCJ0b0ZpeGVkIiwiaXNTdWJQYXRoIiwib3JpZ2luYWxQYXRoIiwiZm9yY2VQb3NpeCIsInBhdGhPYmoiLCJwb3NpeCIsInAiLCJpc0Fic29sdXRlIiwibm9ybWFsaXplZFJvb3QiLCJub3JtYWxpemUiLCJub3JtYWxpemVkUGF0aCIsInN0YXJ0c1dpdGgiLCJpc1NhbWVEZXN0aW5hdGlvbiIsInBhdGgxIiwicGF0aDIiLCJwYXRoTiIsImFsbFBhdGhzIiwicmVkdWNlIiwiYSIsImIiLCJmcyIsImV4aXN0cyIsImFyZUFsbEl0ZW1zRXF1YWwiLCJhcnIiLCJOYU4iLCJtYXBDYiIsIngiLCJzdGF0IiwiYmlnaW50IiwiaW5vIiwiY29lcmNlVmVyc2lvbiIsInZlciIsInN0cmljdCIsInJlc3VsdCIsInNlbXZlciIsInZhbGlkIiwiY29lcmNlIiwiU1VQUE9SVEVEX09QRVJBVE9SUyIsImNvbXBhcmVWZXJzaW9ucyIsInZlcjEiLCJvcGVyYXRvciIsInZlcjIiLCJpbmNsdWRlcyIsInNlbXZlck9wZXJhdG9yIiwic2F0aXNmaWVzIiwicXVvdGUiLCJjYXN0QXJyYXkiLCJ1bmxlYWtTdHJpbmciLCJzIiwic3Vic3RyIiwicGx1cmFsaXplIiwid29yZCIsImNvdW50Iiwib3B0aW9ucyIsImluY2x1c2l2ZSIsImlzQm9vbGVhbiIsInRvSW5NZW1vcnlCYXNlNjQiLCJzcmNQYXRoIiwib3B0cyIsImlzRGlyZWN0b3J5IiwibWF4U2l6ZSIsInJlc3VsdEJ1ZmZlcnMiLCJyZXN1bHRCdWZmZXJzU2l6ZSIsInJlc3VsdFdyaXRlU3RyZWFtIiwic3RyZWFtIiwiV3JpdGFibGUiLCJ3cml0ZSIsImJ1ZmZlciIsImVuY29kaW5nIiwibmV4dCIsInB1c2giLCJsZW5ndGgiLCJlbWl0IiwicmVhZGVyU3RyZWFtIiwiY3JlYXRlUmVhZFN0cmVhbSIsImJhc2U2NEVuY29kZXJTdHJlYW0iLCJCYXNlNjRFbmNvZGUiLCJyZXN1bHRXcml0ZVN0cmVhbVByb21pc2UiLCJvbmNlIiwiZSIsInVucGlwZSIsImRlc3Ryb3kiLCJyZWFkU3RyZWFtUHJvbWlzZSIsIm1lc3NhZ2UiLCJwaXBlIiwiYWxsIiwiY29uY2F0IiwiZ2V0TG9ja0ZpbGVHdWFyZCIsImxvY2tGaWxlIiwidGltZW91dCIsInRyeVJlY292ZXJ5IiwibG9jayIsInByb21pc2lmeSIsIl9sb2NrZmlsZSIsImNoZWNrIiwidW5sb2NrIiwiZ3VhcmQiLCJiZWhhdmlvciIsInRyaWVkUmVjb3ZlcnkiLCJjaGVja1N5bmMiLCJ3YWl0IiwibG9ja1N5bmMiLCJ1bmxvY2tTeW5jIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFHQSxNQUFNQSwwQkFBMEIsR0FBRyxxQ0FBbkM7O0FBQ0EsTUFBTUMsR0FBRyxHQUFHLElBQVo7O0FBQ0EsTUFBTUMsR0FBRyxHQUFHRCxHQUFHLEdBQUcsSUFBbEI7O0FBQ0EsTUFBTUUsR0FBRyxHQUFHRCxHQUFHLEdBQUcsSUFBbEI7OztBQUVPLFNBQVNFLFVBQVQsQ0FBcUJDLEdBQXJCLEVBQTBCO0FBQy9CLFNBQU9DLGdCQUFFQyxRQUFGLENBQVdGLEdBQVgsS0FBbUJBLEdBQUcsS0FBSyxFQUFsQztBQUNEOztBQUdELFNBQVNHLFFBQVQsQ0FBbUJILEdBQW5CLEVBQXdCO0FBQ3RCLE1BQUlJLE1BQU0sR0FBRyxLQUFiOztBQUVBLE1BQUlILGdCQUFFSSxRQUFGLENBQVdMLEdBQVgsQ0FBSixFQUFxQjtBQUNuQkksSUFBQUEsTUFBTSxHQUFHLENBQUNILGdCQUFFSyxLQUFGLENBQVFOLEdBQVIsQ0FB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LEtBQXBCOztBQUNBLE9BQUc7QUFDRCxVQUFJO0FBSUYsWUFBSUwsbUJBQVVNLFNBQVYsQ0FBb0JYLFFBQXBCLENBQUosRUFBbUM7QUFDakMsZ0JBQU1HLElBQUksQ0FBQ0gsUUFBRCxFQUFXO0FBQUNZLFlBQUFBLElBQUksRUFBRVgsT0FBTyxHQUFHO0FBQWpCLFdBQVgsQ0FBVjtBQUNELFNBRkQsTUFFTztBQUNMSSw2QkFBVVEsUUFBVixDQUFtQmIsUUFBbkI7QUFDRDs7QUFDRDtBQUNELE9BVkQsQ0FVRSxPQUFPVCxDQUFQLEVBQVU7QUFDVixZQUFJeEssZ0JBQUVtSSxRQUFGLENBQVdxQyxDQUFDLENBQUNJLE9BQWIsRUFBc0IsUUFBdEIsS0FBbUNPLFdBQW5DLElBQWtELENBQUNRLGFBQXZELEVBQXNFO0FBR3BFTCw2QkFBVVMsVUFBVixDQUFxQmQsUUFBckI7O0FBQ0FVLFVBQUFBLGFBQWEsR0FBRyxJQUFoQjtBQUNBO0FBQ0Q7O0FBQ0QsY0FBTSxJQUFJbkcsS0FBSixDQUFXLDhCQUE2QnlGLFFBQVMsV0FBVUMsT0FBUSxLQUF6RCxHQUNiLG1CQUFrQlYsQ0FBQyxDQUFDSSxPQUFRLEVBRHpCLENBQU47QUFFRDtBQUVGLEtBdkJELFFBdUJTLElBdkJUOztBQXdCQSxRQUFJO0FBQ0YsYUFBTyxNQUFNYyxRQUFRLEVBQXJCO0FBQ0QsS0FGRCxTQUVVO0FBRVIsWUFBTUYsTUFBTSxDQUFDUCxRQUFELENBQVo7QUFDRDtBQUNGLEdBaENEOztBQWtDQVEsRUFBQUEsS0FBSyxDQUFDRixLQUFOLEdBQWMsWUFBWSxNQUFNQSxLQUFLLENBQUNOLFFBQUQsQ0FBckM7O0FBRUEsU0FBT1EsS0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgZnMgZnJvbSAnLi9mcyc7XG5pbXBvcnQgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5pbXBvcnQge1xuICAvLyBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9zaGVsbC1xdW90ZVxuICBxdW90ZSBhcyBzaGVsbFF1b3RlLFxuICBwYXJzZSBhcyBzaGVsbFBhcnNlLFxufSBmcm9tICdzaGVsbC1xdW90ZSc7XG5pbXBvcnQgcGx1cmFsaXplTGliIGZyb20gJ3BsdXJhbGl6ZSc7XG5pbXBvcnQgc3RyZWFtIGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQgeyBCYXNlNjRFbmNvZGUgfSBmcm9tICdiYXNlNjQtc3RyZWFtJztcbmltcG9ydCB7XG4gIC8vIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3V1aWRcbiAgdjEgYXMgdXVpZFYxLCB2MyBhcyB1dWlkVjMsXG4gIHY0IGFzIHV1aWRWNCwgdjUgYXMgdXVpZFY1XG59IGZyb20gJ3V1aWQnO1xuaW1wb3J0IF9sb2NrZmlsZSBmcm9tICdsb2NrZmlsZSc7XG5cblxuY29uc3QgVzNDX1dFQl9FTEVNRU5UX0lERU5USUZJRVIgPSAnZWxlbWVudC02MDY2LTExZTQtYTUyZS00ZjczNTQ2NmNlY2YnO1xuY29uc3QgS2lCID0gMTAyNDtcbmNvbnN0IE1pQiA9IEtpQiAqIDEwMjQ7XG5jb25zdCBHaUIgPSBNaUIgKiAxMDI0O1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzQ29udGVudCAodmFsKSB7XG4gIHJldHVybiBfLmlzU3RyaW5nKHZhbCkgJiYgdmFsICE9PSAnJztcbn1cblxuLy8gcmV0dXJuIHRydWUgaWYgdGhlIHRoZSB2YWx1ZSBpcyBub3QgdW5kZWZpbmVkLCBudWxsLCBvciBOYU4uXG5mdW5jdGlvbiBoYXNWYWx1ZSAodmFsKSB7XG4gIGxldCBoYXNWYWwgPSBmYWxzZTtcbiAgLy8gYXZvaWQgaW5jb3JyZWN0bHkgZXZhbHVhdGluZyBgMGAgYXMgZmFsc2VcbiAgaWYgKF8uaXNOdW1iZXIodmFsKSkge1xuICAgIGhhc1ZhbCA9ICFfLmlzTmFOKHZhbCk7XG4gIH0gZWxzZSB7XG4gICAgaGFzVmFsID0gIV8uaXNVbmRlZmluZWQodmFsKSAmJiAhXy5pc051bGwodmFsKTtcbiAgfVxuXG4gIHJldHVybiBoYXNWYWw7XG59XG5cbi8vIGVzY2FwZSBzcGFjZXMgaW4gc3RyaW5nLCBmb3IgY29tbWFuZGxpbmUgY2FsbHNcbmZ1bmN0aW9uIGVzY2FwZVNwYWNlIChzdHIpIHtcbiAgcmV0dXJuIHN0ci5zcGxpdCgvIC8pLmpvaW4oJ1xcXFwgJyk7XG59XG5cbmZ1bmN0aW9uIGVzY2FwZVNwZWNpYWxDaGFycyAoc3RyLCBxdW90ZUVzY2FwZSkge1xuICBpZiAodHlwZW9mIHN0ciAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIGlmICh0eXBlb2YgcXVvdGVFc2NhcGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcXVvdGVFc2NhcGUgPSBmYWxzZTtcbiAgfVxuICBzdHIgPSBzdHJcbiAgICAucmVwbGFjZSgvW1xcXFxdL2csICdcXFxcXFxcXCcpXG4gICAgLnJlcGxhY2UoL1tcXC9dL2csICdcXFxcLycpIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcbiAgICAucmVwbGFjZSgvW1xcYl0vZywgJ1xcXFxiJylcbiAgICAucmVwbGFjZSgvW1xcZl0vZywgJ1xcXFxmJylcbiAgICAucmVwbGFjZSgvW1xcbl0vZywgJ1xcXFxuJylcbiAgICAucmVwbGFjZSgvW1xccl0vZywgJ1xcXFxyJylcbiAgICAucmVwbGFjZSgvW1xcdF0vZywgJ1xcXFx0JylcbiAgICAucmVwbGFjZSgvW1xcXCJdL2csICdcXFxcXCInKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG4gICAgLnJlcGxhY2UoL1xcXFwnL2csIFwiXFxcXCdcIik7XG4gIGlmIChxdW90ZUVzY2FwZSkge1xuICAgIGxldCByZSA9IG5ldyBSZWdFeHAocXVvdGVFc2NhcGUsICdnJyk7XG4gICAgc3RyID0gc3RyLnJlcGxhY2UocmUsIGBcXFxcJHtxdW90ZUVzY2FwZX1gKTtcbiAgfVxuICByZXR1cm4gc3RyO1xufVxuXG5mdW5jdGlvbiBsb2NhbElwICgpIHtcbiAgbGV0IGlwID0gXy5jaGFpbihvcy5uZXR3b3JrSW50ZXJmYWNlcygpKVxuICAgIC52YWx1ZXMoKVxuICAgIC5mbGF0dGVuKClcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgLmZpbHRlcihmdW5jdGlvbiAodmFsKSB7XG4gICAgICByZXR1cm4gKHZhbC5mYW1pbHkgPT09ICdJUHY0JyAmJiB2YWwuaW50ZXJuYWwgPT09IGZhbHNlKTtcbiAgICB9KVxuICAgIC5tYXAoJ2FkZHJlc3MnKVxuICAgIC5maXJzdCgpXG4gICAgLnZhbHVlKCk7XG4gIHJldHVybiBpcDtcbn1cblxuLypcbiAqIENyZWF0ZXMgYSBwcm9taXNlIHRoYXQgaXMgY2FuY2VsbGFibGUsIGFuZCB3aWxsIHRpbWVvdXRcbiAqIGFmdGVyIGBtc2AgZGVsYXlcbiAqL1xuZnVuY3Rpb24gY2FuY2VsbGFibGVEZWxheSAobXMpIHtcbiAgbGV0IHRpbWVyO1xuICBsZXQgcmVzb2x2ZTtcbiAgbGV0IHJlamVjdDtcblxuICBjb25zdCBkZWxheSA9IG5ldyBCLlByb21pc2UoKF9yZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG4gICAgcmVzb2x2ZSA9IF9yZXNvbHZlO1xuICAgIHJlamVjdCA9IF9yZWplY3Q7XG4gICAgdGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9LCBtcyk7XG4gIH0pO1xuXG4gIC8vIG92ZXJyaWRlIEJsdWViaXJkJ3MgYGNhbmNlbGAsIHdoaWNoIGRvZXMgbm90IHdvcmsgd2hlbiB1c2luZyBgYXdhaXRgIG9uXG4gIC8vIGEgcHJvbWlzZSwgc2luY2UgYHJlc29sdmVgL2ByZWplY3RgIGFyZSBuZXZlciBjYWxsZWRcbiAgZGVsYXkuY2FuY2VsID0gZnVuY3Rpb24gKCkge1xuICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgcmVqZWN0KG5ldyBCLkNhbmNlbGxhdGlvbkVycm9yKCkpO1xuICB9O1xuICByZXR1cm4gZGVsYXk7XG59XG5cbmZ1bmN0aW9uIG11bHRpUmVzb2x2ZSAocm9vdHMsIC4uLmFyZ3MpIHtcbiAgcmV0dXJuIHJvb3RzLm1hcCgocm9vdCkgPT4gcGF0aC5yZXNvbHZlKHJvb3QsIC4uLmFyZ3MpKTtcbn1cblxuLypcbiAqIFBhcnNlcyBhbiBvYmplY3QgaWYgcG9zc2libGUuIE90aGVyd2lzZSByZXR1cm5zIHRoZSBvYmplY3Qgd2l0aG91dCBwYXJzaW5nLlxuICovXG5mdW5jdGlvbiBzYWZlSnNvblBhcnNlIChvYmopIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShvYmopO1xuICB9IGNhdGNoIChpZ24pIHtcbiAgICAvLyBpZ25vcmU6IHRoaXMgaXMgbm90IGpzb24gcGFyc2FibGVcbiAgICByZXR1cm4gb2JqO1xuICB9XG59XG5cbi8qXG4gKiBTdHJpbmdpZmllcyB0aGUgb2JqZWN0IHBhc3NlZCBpbiwgY29udmVydGluZyBCdWZmZXJzIGludG8gU3RyaW5ncyBmb3IgYmV0dGVyXG4gKiBkaXNwbGF5LiBUaGlzIG1pbWljcyBKU09OLnN0cmluZ2lmeSAoc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0pTT04vc3RyaW5naWZ5KVxuICogZXhjZXB0IHRoZSBgcmVwbGFjZXJgIGFyZ3VtZW50IGNhbiBvbmx5IGJlIGEgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG9iaiAtIHRoZSBvYmplY3QgdG8gYmUgc2VyaWFsaXplZFxuICogQHBhcmFtIHs/ZnVuY3Rpb259IHJlcGxhY2VyIC0gZnVuY3Rpb24gdG8gdHJhbnNmb3JtIHRoZSBwcm9wZXJ0aWVzIGFkZGVkIHRvIHRoZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXplZCBvYmplY3RcbiAqIEBwYXJhbSB7P251bWJlcnxzdHJpbmd9IHNwYWNlIC0gdXNlZCB0byBpbnNlcnQgd2hpdGUgc3BhY2UgaW50byB0aGUgb3V0cHV0IEpTT05cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGZvciByZWFkYWJpbGl0eSBwdXJwb3Nlcy4gRGVmYXVsdHMgdG8gMlxuICogcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBKU09OIG9iamVjdCBzZXJpYWxpemVkIGFzIGEgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIGpzb25TdHJpbmdpZnkgKG9iaiwgcmVwbGFjZXIsIHNwYWNlID0gMikge1xuICAvLyBpZiBubyByZXBsYWNlciBpcyBwYXNzZWQsIG9yIGl0IGlzIG5vdCBhIGZ1bmN0aW9uLCBqdXN0IHVzZSBhIHBhc3MtdGhyb3VnaFxuICBpZiAoIV8uaXNGdW5jdGlvbihyZXBsYWNlcikpIHtcbiAgICByZXBsYWNlciA9IChrLCB2KSA9PiB2O1xuICB9XG5cbiAgLy8gQnVmZmVycyBjYW5ub3QgYmUgc2VyaWFsaXplZCBpbiBhIHJlYWRhYmxlIHdheVxuICBjb25zdCBidWZmZXJUb0pTT04gPSBCdWZmZXIucHJvdG90eXBlLnRvSlNPTjtcbiAgZGVsZXRlIEJ1ZmZlci5wcm90b3R5cGUudG9KU09OO1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmosIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCB1cGRhdGVkVmFsdWUgPSBCdWZmZXIuaXNCdWZmZXIodmFsdWUpXG4gICAgICAgID8gdmFsdWUudG9TdHJpbmcoJ3V0ZjgnKVxuICAgICAgICA6IHZhbHVlO1xuICAgICAgcmV0dXJuIHJlcGxhY2VyKGtleSwgdXBkYXRlZFZhbHVlKTtcbiAgICB9LCBzcGFjZSk7XG4gIH0gZmluYWxseSB7XG4gICAgLy8gcmVzdG9yZSB0aGUgZnVuY3Rpb24sIHNvIGFzIHRvIG5vdCBicmVhayBmdXJ0aGVyIHNlcmlhbGl6YXRpb25cbiAgICBCdWZmZXIucHJvdG90eXBlLnRvSlNPTiA9IGJ1ZmZlclRvSlNPTjtcbiAgfVxufVxuXG4vKlxuICogUmVtb3ZlcyB0aGUgd3JhcHBlciBmcm9tIGVsZW1lbnQsIGlmIGl0IGV4aXN0cy5cbiAqICAgeyBFTEVNRU5UOiA0IH0gYmVjb21lcyA0XG4gKiAgIHsgZWxlbWVudC02MDY2LTExZTQtYTUyZS00ZjczNTQ2NmNlY2Y6IDUgfSBiZWNvbWVzIDVcbiAqL1xuZnVuY3Rpb24gdW53cmFwRWxlbWVudCAoZWwpIHtcbiAgZm9yIChjb25zdCBwcm9wTmFtZSBvZiBbVzNDX1dFQl9FTEVNRU5UX0lERU5USUZJRVIsICdFTEVNRU5UJ10pIHtcbiAgICBpZiAoXy5oYXMoZWwsIHByb3BOYW1lKSkge1xuICAgICAgcmV0dXJuIGVsW3Byb3BOYW1lXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVsO1xufVxuXG5mdW5jdGlvbiB3cmFwRWxlbWVudCAoZWxlbWVudElkKSB7XG4gIHJldHVybiB7XG4gICAgRUxFTUVOVDogZWxlbWVudElkLFxuICAgIFtXM0NfV0VCX0VMRU1FTlRfSURFTlRJRklFUl06IGVsZW1lbnRJZCxcbiAgfTtcbn1cblxuLypcbiAqIFJldHVybnMgb2JqZWN0IGNvbnNpc3Rpbmcgb2YgYWxsIHByb3BlcnRpZXMgaW4gdGhlIG9yaWdpbmFsIGVsZW1lbnRcbiAqIHdoaWNoIHdlcmUgdHJ1dGh5IGdpdmVuIHRoZSBwcmVkaWNhdGUuXG4gKiBJZiB0aGUgcHJlZGljYXRlIGlzXG4gKiAgICogbWlzc2luZyAtIGl0IHdpbGwgcmVtb3ZlIGFsbCBwcm9wZXJ0aWVzIHdob3NlIHZhbHVlcyBhcmUgYHVuZGVmaW5lZGBcbiAqICAgKiBhIHNjYWxhciAtIGl0IHdpbGwgdGVzdCBhbGwgcHJvcGVydGllcycgdmFsdWVzIGFnYWluc3QgdGhhdCB2YWx1ZVxuICogICAqIGEgZnVuY3Rpb24gLSBpdCB3aWxsIHBhc3MgZWFjaCB2YWx1ZSBhbmQgdGhlIG9yaWdpbmFsIG9iamVjdCBpbnRvIHRoZSBmdW5jdGlvblxuICovXG5mdW5jdGlvbiBmaWx0ZXJPYmplY3QgKG9iaiwgcHJlZGljYXRlKSB7XG4gIGxldCBuZXdPYmogPSBfLmNsb25lKG9iaik7XG4gIGlmIChfLmlzVW5kZWZpbmVkKHByZWRpY2F0ZSkpIHtcbiAgICAvLyByZW1vdmUgYW55IGVsZW1lbnQgZnJvbSB0aGUgb2JqZWN0IHdob3NlIHZhbHVlIGlzIHVuZGVmaW5lZFxuICAgIHByZWRpY2F0ZSA9ICh2KSA9PiAhXy5pc1VuZGVmaW5lZCh2KTtcbiAgfSBlbHNlIGlmICghXy5pc0Z1bmN0aW9uKHByZWRpY2F0ZSkpIHtcbiAgICAvLyBtYWtlIHByZWRpY2F0ZSBpbnRvIGEgZnVuY3Rpb25cbiAgICBjb25zdCB2YWx1ZVByZWRpY2F0ZSA9IHByZWRpY2F0ZTtcbiAgICBwcmVkaWNhdGUgPSAodikgPT4gdiA9PT0gdmFsdWVQcmVkaWNhdGU7XG4gIH1cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqKSkge1xuICAgIGlmICghcHJlZGljYXRlKG9ialtrZXldLCBvYmopKSB7XG4gICAgICBkZWxldGUgbmV3T2JqW2tleV07XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXdPYmo7XG59XG5cbi8qKlxuICogQ29udmVydHMgbnVtYmVyIG9mIGJ5dGVzIHRvIGEgcmVhZGFibGUgc2l6ZSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBieXRlcyAtIFRoZSBhY3R1YWwgbnVtYmVyIG9mIGJ5dGVzLlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGFjdHVhbCBzdHJpbmcgcmVwcmVzZW50YXRpb24sIGZvciBleGFtcGxlXG4gKiAgICAgICAgICAgICAgICAgICAnMS4wMCBLQicgZm9yICcxMDI0IEInXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgYnl0ZXMgY291bnQgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhbiBpbnRlZ2VyIG9yXG4gKiAgICAgICAgICAgICAgICAgaWYgaXQgaXMgbGVzcyB0aGFuIHplcm8uXG4gKi9cbmZ1bmN0aW9uIHRvUmVhZGFibGVTaXplU3RyaW5nIChieXRlcykge1xuICBjb25zdCBpbnRCeXRlcyA9IHBhcnNlSW50KFN0cmluZyhieXRlcyksIDEwKTtcbiAgaWYgKGlzTmFOKGludEJ5dGVzKSB8fCBpbnRCeXRlcyA8IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjb252ZXJ0ICcke2J5dGVzfScgdG8gYSByZWFkYWJsZSBzaXplIGZvcm1hdGApO1xuICB9XG4gIGlmIChpbnRCeXRlcyA+PSBHaUIpIHtcbiAgICByZXR1cm4gYCR7KGludEJ5dGVzIC8gKEdpQiAqIDEuMCkpLnRvRml4ZWQoMil9IEdCYDtcbiAgfSBlbHNlIGlmIChpbnRCeXRlcyA+PSBNaUIpIHtcbiAgICByZXR1cm4gYCR7KGludEJ5dGVzIC8gKE1pQiAqIDEuMCkpLnRvRml4ZWQoMil9IE1CYDtcbiAgfSBlbHNlIGlmIChpbnRCeXRlcyA+PSBLaUIpIHtcbiAgICByZXR1cm4gYCR7KGludEJ5dGVzIC8gKEtpQiAqIDEuMCkpLnRvRml4ZWQoMil9IEtCYDtcbiAgfVxuICByZXR1cm4gYCR7aW50Qnl0ZXN9IEJgO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBwYXRoIGlzIGEgc3VicGF0aCBvZiB0aGVcbiAqIHBhcnRpY3VsYXIgcm9vdCBmb2xkZXIuIEJvdGggcGF0aHMgY2FuIGluY2x1ZGUgLi4gYW5kIC4gc3BlY2lmaWVyc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW5hbFBhdGggVGhlIGFic29sdXRlIGZpbGUvZm9sZGVyIHBhdGhcbiAqIEBwYXJhbSB7c3RyaW5nfSByb290IFRoZSBhYnNvbHV0ZSByb290IGZvbGRlciBwYXRoXG4gKiBAcGFyYW0gez9ib29sZWFufSBmb3JjZVBvc2l4IFNldCBpdCB0byB0cnVlIGlmIHBhdGhzIG11c3QgYmUgaW50ZXJwcmV0ZWQgaW4gUE9TSVggZm9ybWF0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgZ2l2ZW4gb3JpZ2luYWwgcGF0aCBpcyB0aGUgc3VicGF0aCBvZiB0aGUgcm9vdCBmb2xkZXJcbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiBhbnkgb2YgdGhlIGdpdmVuIHBhdGhzIGlzIG5vdCBhYnNvbHV0ZVxuICovXG5mdW5jdGlvbiBpc1N1YlBhdGggKG9yaWdpbmFsUGF0aCwgcm9vdCwgZm9yY2VQb3NpeCA9IG51bGwpIHtcbiAgY29uc3QgcGF0aE9iaiA9IGZvcmNlUG9zaXggPyBwYXRoLnBvc2l4IDogcGF0aDtcbiAgZm9yIChjb25zdCBwIG9mIFtvcmlnaW5hbFBhdGgsIHJvb3RdKSB7XG4gICAgaWYgKCFwYXRoT2JqLmlzQWJzb2x1dGUocCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJyR7cH0nIGlzIGV4cGVjdGVkIHRvIGJlIGFuIGFic29sdXRlIHBhdGhgKTtcbiAgICB9XG4gIH1cbiAgY29uc3Qgbm9ybWFsaXplZFJvb3QgPSBwYXRoT2JqLm5vcm1hbGl6ZShyb290KTtcbiAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBwYXRoT2JqLm5vcm1hbGl6ZShvcmlnaW5hbFBhdGgpO1xuICByZXR1cm4gbm9ybWFsaXplZFBhdGguc3RhcnRzV2l0aChub3JtYWxpemVkUm9vdCk7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHBhdGhzIGFyZSBwb2ludGluZyB0byB0aGUgc2FtZSBmaWxlIHN5c3RlbVxuICogZGVzdGluYXRpb24uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGgxIC0gQWJzb2x1dGUgb3IgcmVsYXRpdmUgcGF0aCB0byBhIGZpbGUvZm9sZGVyXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aDIgLSBBYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRoIHRvIGEgZmlsZS9mb2xkZXJcbiAqIEBwYXJhbSB7Li4uc3RyaW5nfSBwYXRoTiAtIFplcm8gb3IgbW9yZSBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRocyB0byBmaWxlcy9mb2xkZXJzXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gdHJ1ZSBpZiBhbGwgcGF0aHMgYXJlIHBvaW50aW5nIHRvIHRoZSBzYW1lIGZpbGUgc3lzdGVtIGl0ZW1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gaXNTYW1lRGVzdGluYXRpb24gKHBhdGgxLCBwYXRoMiwgLi4ucGF0aE4pIHtcbiAgY29uc3QgYWxsUGF0aHMgPSBbcGF0aDEsIHBhdGgyLCAuLi5wYXRoTl07XG4gIGlmICghYXdhaXQgQi5yZWR1Y2UoYWxsUGF0aHMsIGFzeW5jIChhLCBiKSA9PiBhICYmIGF3YWl0IGZzLmV4aXN0cyhiKSwgdHJ1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBhcmVBbGxJdGVtc0VxdWFsID0gKGFycikgPT4gISFhcnIucmVkdWNlKChhLCBiKSA9PiBhID09PSBiID8gYSA6IE5hTik7XG4gIGlmIChhcmVBbGxJdGVtc0VxdWFsKGFsbFBhdGhzKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgbGV0IG1hcENiID0gYXN5bmMgKHgpID0+IChhd2FpdCBmcy5zdGF0KHgsIHtcbiAgICBiaWdpbnQ6IHRydWUsXG4gIH0pKS5pbm87XG4gIHJldHVybiBhcmVBbGxJdGVtc0VxdWFsKGF3YWl0IEIubWFwKGFsbFBhdGhzLCBtYXBDYikpO1xufVxuXG4vKipcbiAqIENvZXJjZXMgdGhlIGdpdmVuIG51bWJlci9zdHJpbmcgdG8gYSB2YWxpZCB2ZXJzaW9uIHN0cmluZ1xuICpcbiAqIEB0ZW1wbGF0ZSB7Ym9vbGVhbn0gW1N0cmljdD10cnVlXVxuICogQHBhcmFtIHtzdHJpbmd9IHZlciAtIFZlcnNpb24gc3RyaW5nIHRvIGNvZXJjZVxuICogQHBhcmFtIHtTdHJpY3R9IFtzdHJpY3RdIC0gSWYgYHRydWVgIHRoZW4gYW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duXG4gKiBpZiBgdmVyYCBjYW5ub3QgYmUgY29lcmNlZFxuICogQHJldHVybnMge1N0cmljdCBleHRlbmRzIHRydWUgPyBzdHJpbmcgOiBzdHJpbmd8bnVsbH0gQ29lcmNlZCB2ZXJzaW9uIG51bWJlciBvciBudWxsIGlmIHRoZSBzdHJpbmcgY2Fubm90IGJlXG4gKiBjb2VyY2VkIGFuZCBzdHJpY3QgbW9kZSBpcyBkaXNhYmxlZFxuICogQHRocm93cyB7RXJyb3J9IGlmIHN0cmljdCBtb2RlIGlzIGVuYWJsZWQgYW5kIGB2ZXJgIGNhbm5vdCBiZSBjb2VyY2VkXG4gKi9cbmZ1bmN0aW9uIGNvZXJjZVZlcnNpb24gKHZlciwgc3RyaWN0ID0gLyoqIEB0eXBlIHtTdHJpY3R9ICovKHRydWUpKSB7XG4gIGNvbnN0IHJlc3VsdCA9IHNlbXZlci52YWxpZChzZW12ZXIuY29lcmNlKGAke3Zlcn1gKSk7XG4gIGlmIChzdHJpY3QgJiYgIXJlc3VsdCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJyR7dmVyfScgY2Fubm90IGJlIGNvZXJjZWQgdG8gYSB2YWxpZCB2ZXJzaW9uIG51bWJlcmApO1xuICB9XG4gIHJldHVybiAvKiogQHR5cGUge1N0cmljdCBleHRlbmRzIHRydWUgPyBzdHJpbmcgOiBzdHJpbmc/fSAqLyhyZXN1bHQpO1xufVxuXG5jb25zdCBTVVBQT1JURURfT1BFUkFUT1JTID0gWyc9PScsICchPScsICc+JywgJzwnLCAnPj0nLCAnPD0nLCAnPSddO1xuXG4vKipcbiAqIENvbXBhcmVzIHR3byB2ZXJzaW9uIHN0cmluZ3NcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmVyMSAtIFRoZSBmaXJzdCB2ZXJzaW9uIG51bWJlciB0byBjb21wYXJlLiBTaG91bGQgYmUgYSB2YWxpZFxuICogdmVyc2lvbiBudW1iZXIgc3VwcG9ydGVkIGJ5IHNlbXZlciBwYXJzZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gdmVyMiAtIFRoZSBzZWNvbmQgdmVyc2lvbiBudW1iZXIgdG8gY29tcGFyZS4gU2hvdWxkIGJlIGEgdmFsaWRcbiAqIHZlcnNpb24gbnVtYmVyIHN1cHBvcnRlZCBieSBzZW12ZXIgcGFyc2VyLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wZXJhdG9yIC0gT25lIG9mIHN1cHBvcnRlZCB2ZXJzaW9uIG51bWJlciBvcGVyYXRvcnM6XG4gKiA9PSwgIT0sID4sIDwsIDw9LCA+PSwgPVxuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgb3IgZmFsc2UgZGVwZW5kaW5nIG9uIHRoZSBhY3R1YWwgY29tcGFyaXNvbiByZXN1bHRcbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiBhbiB1bnN1cHBvcnRlZCBvcGVyYXRvciBpcyBzdXBwbGllZCBvciBhbnkgb2YgdGhlIHN1cHBsaWVkXG4gKiB2ZXJzaW9uIHN0cmluZ3MgY2Fubm90IGJlIGNvZXJjZWRcbiAqL1xuZnVuY3Rpb24gY29tcGFyZVZlcnNpb25zICh2ZXIxLCBvcGVyYXRvciwgdmVyMikge1xuICBpZiAoIVNVUFBPUlRFRF9PUEVSQVRPUlMuaW5jbHVkZXMob3BlcmF0b3IpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgJyR7b3BlcmF0b3J9JyBjb21wYXJpc29uIG9wZXJhdG9yIGlzIG5vdCBzdXBwb3J0ZWQuIGAgK1xuICAgICAgYE9ubHkgJyR7SlNPTi5zdHJpbmdpZnkoU1VQUE9SVEVEX09QRVJBVE9SUyl9JyBvcGVyYXRvcnMgYXJlIHN1cHBvcnRlZGApO1xuICB9XG5cbiAgY29uc3Qgc2VtdmVyT3BlcmF0b3IgPSBbJz09JywgJyE9J10uaW5jbHVkZXMob3BlcmF0b3IpID8gJz0nIDogb3BlcmF0b3I7XG4gIGNvbnN0IHJlc3VsdCA9IHNlbXZlci5zYXRpc2ZpZXMoY29lcmNlVmVyc2lvbih2ZXIxKSwgYCR7c2VtdmVyT3BlcmF0b3J9JHtjb2VyY2VWZXJzaW9uKHZlcjIpfWApO1xuICByZXR1cm4gb3BlcmF0b3IgPT09ICchPScgPyAhcmVzdWx0IDogcmVzdWx0O1xufVxuXG4vKipcbiAqIEFkZCBhcHByb3ByaWF0ZSBxdW90ZXMgdG8gY29tbWFuZCBhcmd1bWVudHMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vc3Vic3RhY2svbm9kZS1zaGVsbC1xdW90ZVxuICogZm9yIG1vcmUgZGV0YWlsc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBhcmdzIC0gVGhlIGFyZ3VtZW50cyB0aGF0IHdpbGwgYmUgcGFyc2VkXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBhcmd1bWVudHMsIHF1b3RlZFxuICovXG5mdW5jdGlvbiBxdW90ZSAoYXJncykge1xuICByZXR1cm4gc2hlbGxRdW90ZShfLmNhc3RBcnJheShhcmdzKSk7XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBuZWNlc3NhcnkgdG8gd29ya2Fyb3VuZCB1bmV4cGVjdGVkIG1lbW9yeSBsZWFrc1xuICogY2F1c2VkIGJ5IE5vZGVKUyBzdHJpbmcgaW50ZXJuaW5nXG4gKiBiZWhhdmlvciBkZXNjcmliZWQgaW4gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9Mjg2OVxuICpcbiAqIEBwYXJhbSB7Kn0gcyAtIFRoZSBzdHJpbmcgdG8gdW5sZWFrXG4gKiBAcmV0dXJuIHtzdHJpbmd9IEVpdGhlciB0aGUgdW5sZWFrZWQgc3RyaW5nIG9yIHRoZSBvcmlnaW5hbCBvYmplY3QgY29udmVydGVkIHRvIHN0cmluZ1xuICovXG5mdW5jdGlvbiB1bmxlYWtTdHJpbmcgKHMpIHtcbiAgcmV0dXJuIGAgJHtzfWAuc3Vic3RyKDEpO1xufVxuXG5cbi8qKlxuICogQHR5cGVkZWYgUGx1cmFsaXplT3B0aW9uc1xuICogQHByb3BlcnR5IHtib29sZWFufSBbaW5jbHVzaXZlPWZhbHNlXSAtIFdoZXRoZXIgdG8gcHJlZml4IHdpdGggdGhlIG51bWJlciAoZS5nLiwgMyBkdWNrcylcbiAqL1xuXG4vKipcbiAqIEdldCB0aGUgZm9ybSBvZiBhIHdvcmQgYXBwcm9wcmlhdGUgdG8gdGhlIGNvdW50XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHdvcmQgLSBUaGUgd29yZCB0byBwbHVyYWxpemVcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb3VudCAtIEhvdyBtYW55IG9mIHRoZSB3b3JkIGV4aXN0XG4gKiBAcGFyYW0ge1BsdXJhbGl6ZU9wdGlvbnN8Ym9vbGVhbn0gb3B0aW9ucyAtIG9wdGlvbnMgZm9yIHdvcmQgcGx1cmFsaXphdGlvbixcbiAqICAgb3IgYSBib29sZWFuIGluZGljYXRpbmcgdGhlIG9wdGlvbnMuaW5jbHVzaXZlIHByb3BlcnR5XG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgd29yZCBwbHVyYWxpemVkIGFjY29yZGluZyB0byB0aGUgbnVtYmVyXG4gKi9cbmZ1bmN0aW9uIHBsdXJhbGl6ZSAod29yZCwgY291bnQsIG9wdGlvbnMgPSB7fSkge1xuICBsZXQgaW5jbHVzaXZlID0gZmFsc2U7XG4gIGlmIChfLmlzQm9vbGVhbihvcHRpb25zKSkge1xuICAgIC8vIGlmIHBhc3NlZCBpbiBhcyBhIGJvb2xlYW5cbiAgICBpbmNsdXNpdmUgPSBvcHRpb25zO1xuICB9IGVsc2UgaWYgKF8uaXNCb29sZWFuKG9wdGlvbnM/LmluY2x1c2l2ZSkpIHtcbiAgICAvLyBpZiBwYXNzZWQgaW4gYXMgYW4gb3B0aW9ucyBoYXNoXG4gICAgaW5jbHVzaXZlID0gb3B0aW9ucy5pbmNsdXNpdmU7XG4gIH1cbiAgcmV0dXJuIHBsdXJhbGl6ZUxpYih3b3JkLCBjb3VudCwgaW5jbHVzaXZlKTtcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiBFbmNvZGluZ09wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbbWF4U2l6ZT0xMDczNzQxODI0XSBUaGUgbWF4aW11bSBzaXplIG9mXG4gKiB0aGUgcmVzdWx0aW5nIGJ1ZmZlciBpbiBieXRlcy4gVGhpcyBpcyBzZXQgdG8gMUdCIGJ5IGRlZmF1bHQsIGJlY2F1c2VcbiAqIEFwcGl1bSBsaW1pdHMgdGhlIG1heGltdW0gSFRUUCBib2R5IHNpemUgdG8gMUdCLiBBbHNvLCB0aGUgTm9kZUpTIGhlYXBcbiAqIHNpemUgbXVzdCBiZSBlbm91Z2ggdG8ga2VlcCB0aGUgcmVzdWx0aW5nIG9iamVjdCAodXN1YWxseSB0aGlzIHNpemUgaXNcbiAqIGxpbWl0ZWQgdG8gMS40IEdCKVxuICovXG5cbi8qKlxuICogQ29udmVydHMgY29udGVudHMgb2YgYSBsb2NhbCBmaWxlIHRvIGFuIGluLW1lbW9yeSBiYXNlLTY0IGVuY29kZWQgYnVmZmVyLlxuICogVGhlIG9wZXJhdGlvbiBpcyBtZW1vcnktdXNhZ2UgZnJpZW5kbHkgYW5kIHNob3VsZCBiZSB1c2VkIHdoaWxlIGVuY29kaW5nXG4gKiBsYXJnZSBmaWxlcyB0byBiYXNlNjRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3JjUGF0aCBUaGUgZnVsbCBwYXRoIHRvIHRoZSBmaWxlIGJlaW5nIGVuY29kZWRcbiAqIEBwYXJhbSB7RW5jb2RpbmdPcHRpb25zfSBvcHRzXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxCdWZmZXI+fSBiYXNlNjQtZW5jb2RlZCBjb250ZW50IG9mIHRoZSBzb3VyY2UgZmlsZSBhcyBtZW1vcnkgYnVmZmVyXG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIHJlYWRpbmcgdGhlIHNvdXJjZSBmaWxlXG4gKiBvciB0aGUgc291cmNlIGZpbGUgaXMgdG9vXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHRvSW5NZW1vcnlCYXNlNjQgKHNyY1BhdGgsIG9wdHMgPSB7fSkge1xuICBpZiAoIShhd2FpdCBmcy5leGlzdHMoc3JjUGF0aCkpIHx8IChhd2FpdCBmcy5zdGF0KHNyY1BhdGgpKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBzdWNoIGZpbGU6ICR7c3JjUGF0aH1gKTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBtYXhTaXplID0gMSAqIEdpQixcbiAgfSA9IG9wdHM7XG4gIGNvbnN0IHJlc3VsdEJ1ZmZlcnMgPSBbXTtcbiAgbGV0IHJlc3VsdEJ1ZmZlcnNTaXplID0gMDtcbiAgY29uc3QgcmVzdWx0V3JpdGVTdHJlYW0gPSBuZXcgc3RyZWFtLldyaXRhYmxlKHtcbiAgICB3cml0ZTogKGJ1ZmZlciwgZW5jb2RpbmcsIG5leHQpID0+IHtcbiAgICAgIHJlc3VsdEJ1ZmZlcnMucHVzaChidWZmZXIpO1xuICAgICAgcmVzdWx0QnVmZmVyc1NpemUgKz0gYnVmZmVyLmxlbmd0aDtcbiAgICAgIGlmIChtYXhTaXplID4gMCAmJiByZXN1bHRCdWZmZXJzU2l6ZSA+IG1heFNpemUpIHtcbiAgICAgICAgcmVzdWx0V3JpdGVTdHJlYW0uZW1pdCgnZXJyb3InLCBuZXcgRXJyb3IoYFRoZSBzaXplIG9mIHRoZSByZXN1bHRpbmcgYCArXG4gICAgICAgICAgYGJ1ZmZlciBtdXN0IG5vdCBiZSBncmVhdGVyIHRoYW4gJHt0b1JlYWRhYmxlU2l6ZVN0cmluZyhtYXhTaXplKX1gKSk7XG4gICAgICB9XG4gICAgICBuZXh0KCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgcmVhZGVyU3RyZWFtID0gZnMuY3JlYXRlUmVhZFN0cmVhbShzcmNQYXRoKTtcbiAgY29uc3QgYmFzZTY0RW5jb2RlclN0cmVhbSA9IG5ldyBCYXNlNjRFbmNvZGUoKTtcbiAgY29uc3QgcmVzdWx0V3JpdGVTdHJlYW1Qcm9taXNlID0gbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHJlc3VsdFdyaXRlU3RyZWFtLm9uY2UoJ2Vycm9yJywgKGUpID0+IHtcbiAgICAgIHJlYWRlclN0cmVhbS51bnBpcGUoYmFzZTY0RW5jb2RlclN0cmVhbSk7XG4gICAgICBiYXNlNjRFbmNvZGVyU3RyZWFtLnVucGlwZShyZXN1bHRXcml0ZVN0cmVhbSk7XG4gICAgICByZWFkZXJTdHJlYW0uZGVzdHJveSgpO1xuICAgICAgcmVqZWN0KGUpO1xuICAgIH0pO1xuICAgIHJlc3VsdFdyaXRlU3RyZWFtLm9uY2UoJ2ZpbmlzaCcsIHJlc29sdmUpO1xuICB9KTtcbiAgY29uc3QgcmVhZFN0cmVhbVByb21pc2UgPSBuZXcgQigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgcmVhZGVyU3RyZWFtLm9uY2UoJ2Nsb3NlJywgcmVzb2x2ZSk7XG4gICAgcmVhZGVyU3RyZWFtLm9uY2UoJ2Vycm9yJywgKGUpID0+IHJlamVjdChcbiAgICAgIG5ldyBFcnJvcihgRmFpbGVkIHRvIHJlYWQgJyR7c3JjUGF0aH0nOiAke2UubWVzc2FnZX1gKSkpO1xuICB9KTtcbiAgcmVhZGVyU3RyZWFtLnBpcGUoYmFzZTY0RW5jb2RlclN0cmVhbSk7XG4gIGJhc2U2NEVuY29kZXJTdHJlYW0ucGlwZShyZXN1bHRXcml0ZVN0cmVhbSk7XG5cbiAgYXdhaXQgQi5hbGwoW3JlYWRTdHJlYW1Qcm9taXNlLCByZXN1bHRXcml0ZVN0cmVhbVByb21pc2VdKTtcbiAgcmV0dXJuIEJ1ZmZlci5jb25jYXQocmVzdWx0QnVmZmVycyk7XG59XG5cbi8qKlxuICogQHR5cGVkZWYgTG9ja0ZpbGVPcHRpb25zXG4gKiBAcHJvcGVydHkge251bWJlcn0gW3RpbWVvdXQ9MTIwXSBUaGUgbWF4IHRpbWUgaW4gc2Vjb25kcyB0byB3YWl0IGZvciB0aGUgbG9ja1xuICogQHByb3BlcnR5IHtib29sZWFufSBbdHJ5UmVjb3Zlcnk9ZmFsc2VdIFdoZXRoZXIgdG8gdHJ5IGxvY2sgcmVjb3ZlcnkgaWZcbiAqIHRoZSBmaXJzdCBhdHRlbXB0IHRvIGFjcXVpcmUgaXQgdGltZWQgb3V0LlxuICovXG5cbi8qKlxuICogQ3JlYXRlIGFuIGFzeW5jIGZ1bmN0aW9uIHdoaWNoLCB3aGVuIGNhbGxlZCwgd2lsbCBub3QgcHJvY2VlZCB1bnRpbCBhIGNlcnRhaW4gZmlsZSBpcyBub1xuICogbG9uZ2VyIHByZXNlbnQgb24gdGhlIHN5c3RlbS4gVGhpcyBhbGxvd3MgZm9yIHByZXZlbnRpbmcgY29uY3VycmVudCBiZWhhdmlvciBhY3Jvc3MgcHJvY2Vzc2VzXG4gKiB1c2luZyBhIGtub3duIGxvY2tmaWxlIHBhdGguXG4gKlxuICogQHRlbXBsYXRlIFRcbiAqIEBwYXJhbSB7c3RyaW5nfSBsb2NrRmlsZSBUaGUgZnVsbCBwYXRoIHRvIHRoZSBmaWxlIHVzZWQgZm9yIHRoZSBsb2NrXG4gKiBAcGFyYW0ge0xvY2tGaWxlT3B0aW9uc30gb3B0c1xuICogQHJldHVybnMgYXN5bmMgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbm90aGVyIGFzeW5jIGZ1bmN0aW9uIGRlZmluaW5nIHRoZSBsb2NrZWRcbiAqIGJlaGF2aW9yXG4gKi9cbmZ1bmN0aW9uIGdldExvY2tGaWxlR3VhcmQgKGxvY2tGaWxlLCBvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHRpbWVvdXQgPSAxMjAsXG4gICAgdHJ5UmVjb3ZlcnkgPSBmYWxzZSxcbiAgfSA9IG9wdHM7XG5cbiAgY29uc3QgbG9jayA9IC8qKiBAdHlwZSB7KGxvY2tmaWxlOiBzdHJpbmcsIG9wdHM6IGltcG9ydCgnbG9ja2ZpbGUnKS5PcHRpb25zKT0+Qjx2b2lkPn0gKi8oQi5wcm9taXNpZnkoX2xvY2tmaWxlLmxvY2spKTtcbiAgY29uc3QgY2hlY2sgPSBCLnByb21pc2lmeShfbG9ja2ZpbGUuY2hlY2spO1xuICBjb25zdCB1bmxvY2sgPSBCLnByb21pc2lmeShfbG9ja2ZpbGUudW5sb2NrKTtcblxuICAvKipcbiAgICogQHBhcmFtIHsoLi4uYXJnczogYW55W10pID0+IFR9IGJlaGF2aW9yXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFQ+fVxuICAgKi9cbiAgY29uc3QgZ3VhcmQgPSBhc3luYyAoYmVoYXZpb3IpID0+IHtcbiAgICBsZXQgdHJpZWRSZWNvdmVyeSA9IGZhbHNlO1xuICAgIGRvIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIGlmIHRoZSBsb2NrZmlsZSBkb2Vzbid0IGV4aXN0LCBsb2NrIGl0IHN5bmNocm9ub3VzbHkgdG8gbWFrZSBzdXJlIG5vIG90aGVyIGNhbGxcbiAgICAgICAgLy8gb24gdGhlIHNhbWUgc3BpbiBvZiB0aGUgZXZlbnQgbG9vcCBjYW4gYWxzbyBpbml0aWF0ZSBhIGxvY2suIElmIHRoZSBsb2NrZmlsZSBkb2VzIGV4aXN0XG4gICAgICAgIC8vIHRoZW4ganVzdCB1c2UgdGhlIHJlZ3VsYXIgYXN5bmMgJ2xvY2snIG1ldGhvZCB3aGljaCB3aWxsIHdhaXQgb24gdGhlIGxvY2suXG4gICAgICAgIGlmIChfbG9ja2ZpbGUuY2hlY2tTeW5jKGxvY2tGaWxlKSkge1xuICAgICAgICAgIGF3YWl0IGxvY2sobG9ja0ZpbGUsIHt3YWl0OiB0aW1lb3V0ICogMTAwMH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF9sb2NrZmlsZS5sb2NrU3luYyhsb2NrRmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChfLmluY2x1ZGVzKGUubWVzc2FnZSwgJ0VFWElTVCcpICYmIHRyeVJlY292ZXJ5ICYmICF0cmllZFJlY292ZXJ5KSB7XG4gICAgICAgICAgLy8gVGhlcmUgY291bGQgYmUgY2FzZXMgd2hlcmUgYSBwcm9jZXNzIGhhcyBiZWVuIGZvcmNlZnVsbHkgdGVybWluYXRlZFxuICAgICAgICAgIC8vIHdpdGhvdXQgYSBjaGFuY2UgdG8gY2xlYW4gdXAgcGVuZGluZyBsb2NrczogaHR0cHM6Ly9naXRodWIuY29tL25wbS9sb2NrZmlsZS9pc3N1ZXMvMjZcbiAgICAgICAgICBfbG9ja2ZpbGUudW5sb2NrU3luYyhsb2NrRmlsZSk7XG4gICAgICAgICAgdHJpZWRSZWNvdmVyeSA9IHRydWU7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgYWNxdWlyZSBsb2NrIG9uICcke2xvY2tGaWxlfScgYWZ0ZXIgJHt0aW1lb3V0fXMuIGAgK1xuICAgICAgICAgIGBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnN0YW50LWNvbmRpdGlvblxuICAgIH0gd2hpbGUgKHRydWUpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgYmVoYXZpb3IoKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gd2hldGhlciB0aGUgYmVoYXZpb3Igc3VjY2VlZGVkIG9yIG5vdCwgZ2V0IHJpZCBvZiB0aGUgbG9ja1xuICAgICAgYXdhaXQgdW5sb2NrKGxvY2tGaWxlKTtcbiAgICB9XG4gIH07XG5cbiAgZ3VhcmQuY2hlY2sgPSBhc3luYyAoKSA9PiBhd2FpdCBjaGVjayhsb2NrRmlsZSk7XG5cbiAgcmV0dXJuIGd1YXJkO1xufVxuXG5leHBvcnQge1xuICBoYXNWYWx1ZSwgZXNjYXBlU3BhY2UsIGVzY2FwZVNwZWNpYWxDaGFycywgbG9jYWxJcCwgY2FuY2VsbGFibGVEZWxheSxcbiAgbXVsdGlSZXNvbHZlLCBzYWZlSnNvblBhcnNlLCB3cmFwRWxlbWVudCwgdW53cmFwRWxlbWVudCwgZmlsdGVyT2JqZWN0LFxuICB0b1JlYWRhYmxlU2l6ZVN0cmluZywgaXNTdWJQYXRoLCBXM0NfV0VCX0VMRU1FTlRfSURFTlRJRklFUixcbiAgaXNTYW1lRGVzdGluYXRpb24sIGNvbXBhcmVWZXJzaW9ucywgY29lcmNlVmVyc2lvbiwgcXVvdGUsIHVubGVha1N0cmluZyxcbiAganNvblN0cmluZ2lmeSwgcGx1cmFsaXplLCBHaUIsIE1pQiwgS2lCLCB0b0luTWVtb3J5QmFzZTY0LFxuICB1dWlkVjEsIHV1aWRWMywgdXVpZFY0LCB1dWlkVjUsIHNoZWxsUGFyc2UsIGdldExvY2tGaWxlR3VhcmRcbn07XG4iXX0=
|
|
421
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXM0NfV0VCX0VMRU1FTlRfSURFTlRJRklFUiIsIktpQiIsIk1pQiIsIkdpQiIsImhhc0NvbnRlbnQiLCJ2YWwiLCJfIiwiaXNTdHJpbmciLCJoYXNWYWx1ZSIsImhhc1ZhbCIsImlzTnVtYmVyIiwiaXNOYU4iLCJpc1VuZGVmaW5lZCIsImlzTnVsbCIsImVzY2FwZVNwYWNlIiwic3RyIiwic3BsaXQiLCJqb2luIiwiZXNjYXBlU3BlY2lhbENoYXJzIiwicXVvdGVFc2NhcGUiLCJyZXBsYWNlIiwicmUiLCJSZWdFeHAiLCJsb2NhbElwIiwiaXAiLCJjaGFpbiIsIm9zIiwibmV0d29ya0ludGVyZmFjZXMiLCJ2YWx1ZXMiLCJmbGF0dGVuIiwiZmlsdGVyIiwiZmFtaWx5IiwiaW50ZXJuYWwiLCJtYXAiLCJmaXJzdCIsInZhbHVlIiwiY2FuY2VsbGFibGVEZWxheSIsIm1zIiwidGltZXIiLCJyZXNvbHZlIiwicmVqZWN0IiwiZGVsYXkiLCJCIiwiUHJvbWlzZSIsIl9yZXNvbHZlIiwiX3JlamVjdCIsInNldFRpbWVvdXQiLCJjYW5jZWwiLCJjbGVhclRpbWVvdXQiLCJDYW5jZWxsYXRpb25FcnJvciIsIm11bHRpUmVzb2x2ZSIsInJvb3RzIiwiYXJncyIsInJvb3QiLCJwYXRoIiwic2FmZUpzb25QYXJzZSIsIm9iaiIsIkpTT04iLCJwYXJzZSIsImlnbiIsImpzb25TdHJpbmdpZnkiLCJyZXBsYWNlciIsInNwYWNlIiwiaXNGdW5jdGlvbiIsImsiLCJ2IiwiYnVmZmVyVG9KU09OIiwiQnVmZmVyIiwicHJvdG90eXBlIiwidG9KU09OIiwic3RyaW5naWZ5Iiwia2V5IiwidXBkYXRlZFZhbHVlIiwiaXNCdWZmZXIiLCJ0b1N0cmluZyIsInVud3JhcEVsZW1lbnQiLCJlbCIsInByb3BOYW1lIiwiaGFzIiwid3JhcEVsZW1lbnQiLCJlbGVtZW50SWQiLCJFTEVNRU5UIiwiZmlsdGVyT2JqZWN0IiwicHJlZGljYXRlIiwibmV3T2JqIiwiY2xvbmUiLCJ2YWx1ZVByZWRpY2F0ZSIsIk9iamVjdCIsImtleXMiLCJ0b1JlYWRhYmxlU2l6ZVN0cmluZyIsImJ5dGVzIiwiaW50Qnl0ZXMiLCJwYXJzZUludCIsIlN0cmluZyIsIkVycm9yIiwidG9GaXhlZCIsImlzU3ViUGF0aCIsIm9yaWdpbmFsUGF0aCIsImZvcmNlUG9zaXgiLCJwYXRoT2JqIiwicG9zaXgiLCJwIiwiaXNBYnNvbHV0ZSIsIm5vcm1hbGl6ZWRSb290Iiwibm9ybWFsaXplIiwibm9ybWFsaXplZFBhdGgiLCJzdGFydHNXaXRoIiwiaXNTYW1lRGVzdGluYXRpb24iLCJwYXRoMSIsInBhdGgyIiwicGF0aE4iLCJhbGxQYXRocyIsInJlZHVjZSIsImEiLCJiIiwiZnMiLCJleGlzdHMiLCJhcmVBbGxJdGVtc0VxdWFsIiwiYXJyIiwiTmFOIiwibWFwQ2IiLCJ4Iiwic3RhdCIsImJpZ2ludCIsImlubyIsImNvZXJjZVZlcnNpb24iLCJ2ZXIiLCJzdHJpY3QiLCJyZXN1bHQiLCJzZW12ZXIiLCJ2YWxpZCIsImNvZXJjZSIsIlNVUFBPUlRFRF9PUEVSQVRPUlMiLCJjb21wYXJlVmVyc2lvbnMiLCJ2ZXIxIiwib3BlcmF0b3IiLCJ2ZXIyIiwiaW5jbHVkZXMiLCJzZW12ZXJPcGVyYXRvciIsInNhdGlzZmllcyIsInF1b3RlIiwiY2FzdEFycmF5IiwidW5sZWFrU3RyaW5nIiwicyIsInN1YnN0ciIsInBsdXJhbGl6ZSIsIndvcmQiLCJjb3VudCIsIm9wdGlvbnMiLCJpbmNsdXNpdmUiLCJpc0Jvb2xlYW4iLCJ0b0luTWVtb3J5QmFzZTY0Iiwic3JjUGF0aCIsIm9wdHMiLCJpc0RpcmVjdG9yeSIsIm1heFNpemUiLCJyZXN1bHRCdWZmZXJzIiwicmVzdWx0QnVmZmVyc1NpemUiLCJyZXN1bHRXcml0ZVN0cmVhbSIsInN0cmVhbSIsIldyaXRhYmxlIiwid3JpdGUiLCJidWZmZXIiLCJlbmNvZGluZyIsIm5leHQiLCJwdXNoIiwibGVuZ3RoIiwiZW1pdCIsInJlYWRlclN0cmVhbSIsImNyZWF0ZVJlYWRTdHJlYW0iLCJiYXNlNjRFbmNvZGVyU3RyZWFtIiwiQmFzZTY0RW5jb2RlIiwicmVzdWx0V3JpdGVTdHJlYW1Qcm9taXNlIiwib25jZSIsImUiLCJ1bnBpcGUiLCJkZXN0cm95IiwicmVhZFN0cmVhbVByb21pc2UiLCJtZXNzYWdlIiwicGlwZSIsImFsbCIsImNvbmNhdCIsImdldExvY2tGaWxlR3VhcmQiLCJsb2NrRmlsZSIsInRpbWVvdXQiLCJ0cnlSZWNvdmVyeSIsImxvY2siLCJwcm9taXNpZnkiLCJfbG9ja2ZpbGUiLCJjaGVjayIsInVubG9jayIsImd1YXJkIiwiYmVoYXZpb3IiLCJ0cmllZFJlY292ZXJ5IiwiY2hlY2tTeW5jIiwid2FpdCIsImxvY2tTeW5jIiwidW5sb2NrU3luYyJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi91dGlsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IGZzIGZyb20gJy4vZnMnO1xuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHtcbiAgLy8gaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc2hlbGwtcXVvdGVcbiAgcXVvdGUgYXMgc2hlbGxRdW90ZSxcbiAgcGFyc2UgYXMgc2hlbGxQYXJzZSxcbn0gZnJvbSAnc2hlbGwtcXVvdGUnO1xuaW1wb3J0IHBsdXJhbGl6ZUxpYiBmcm9tICdwbHVyYWxpemUnO1xuaW1wb3J0IHN0cmVhbSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0IHsgQmFzZTY0RW5jb2RlIH0gZnJvbSAnYmFzZTY0LXN0cmVhbSc7XG5pbXBvcnQge1xuICAvLyBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS91dWlkXG4gIHYxIGFzIHV1aWRWMSwgdjMgYXMgdXVpZFYzLFxuICB2NCBhcyB1dWlkVjQsIHY1IGFzIHV1aWRWNVxufSBmcm9tICd1dWlkJztcbmltcG9ydCBfbG9ja2ZpbGUgZnJvbSAnbG9ja2ZpbGUnO1xuXG5cbmNvbnN0IFczQ19XRUJfRUxFTUVOVF9JREVOVElGSUVSID0gJ2VsZW1lbnQtNjA2Ni0xMWU0LWE1MmUtNGY3MzU0NjZjZWNmJztcbmNvbnN0IEtpQiA9IDEwMjQ7XG5jb25zdCBNaUIgPSBLaUIgKiAxMDI0O1xuY29uc3QgR2lCID0gTWlCICogMTAyNDtcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0NvbnRlbnQgKHZhbCkge1xuICByZXR1cm4gXy5pc1N0cmluZyh2YWwpICYmIHZhbCAhPT0gJyc7XG59XG5cbi8vIHJldHVybiB0cnVlIGlmIHRoZSB0aGUgdmFsdWUgaXMgbm90IHVuZGVmaW5lZCwgbnVsbCwgb3IgTmFOLlxuZnVuY3Rpb24gaGFzVmFsdWUgKHZhbCkge1xuICBsZXQgaGFzVmFsID0gZmFsc2U7XG4gIC8vIGF2b2lkIGluY29ycmVjdGx5IGV2YWx1YXRpbmcgYDBgIGFzIGZhbHNlXG4gIGlmIChfLmlzTnVtYmVyKHZhbCkpIHtcbiAgICBoYXNWYWwgPSAhXy5pc05hTih2YWwpO1xuICB9IGVsc2Uge1xuICAgIGhhc1ZhbCA9ICFfLmlzVW5kZWZpbmVkKHZhbCkgJiYgIV8uaXNOdWxsKHZhbCk7XG4gIH1cblxuICByZXR1cm4gaGFzVmFsO1xufVxuXG4vLyBlc2NhcGUgc3BhY2VzIGluIHN0cmluZywgZm9yIGNvbW1hbmRsaW5lIGNhbGxzXG5mdW5jdGlvbiBlc2NhcGVTcGFjZSAoc3RyKSB7XG4gIHJldHVybiBzdHIuc3BsaXQoLyAvKS5qb2luKCdcXFxcICcpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVTcGVjaWFsQ2hhcnMgKHN0ciwgcXVvdGVFc2NhcGUpIHtcbiAgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICBpZiAodHlwZW9mIHF1b3RlRXNjYXBlID09PSAndW5kZWZpbmVkJykge1xuICAgIHF1b3RlRXNjYXBlID0gZmFsc2U7XG4gIH1cbiAgc3RyID0gc3RyXG4gICAgLnJlcGxhY2UoL1tcXFxcXS9nLCAnXFxcXFxcXFwnKVxuICAgIC5yZXBsYWNlKC9bXFwvXS9nLCAnXFxcXC8nKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG4gICAgLnJlcGxhY2UoL1tcXGJdL2csICdcXFxcYicpXG4gICAgLnJlcGxhY2UoL1tcXGZdL2csICdcXFxcZicpXG4gICAgLnJlcGxhY2UoL1tcXG5dL2csICdcXFxcbicpXG4gICAgLnJlcGxhY2UoL1tcXHJdL2csICdcXFxccicpXG4gICAgLnJlcGxhY2UoL1tcXHRdL2csICdcXFxcdCcpXG4gICAgLnJlcGxhY2UoL1tcXFwiXS9nLCAnXFxcXFwiJykgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuICAgIC5yZXBsYWNlKC9cXFxcJy9nLCBcIlxcXFwnXCIpO1xuICBpZiAocXVvdGVFc2NhcGUpIHtcbiAgICBsZXQgcmUgPSBuZXcgUmVnRXhwKHF1b3RlRXNjYXBlLCAnZycpO1xuICAgIHN0ciA9IHN0ci5yZXBsYWNlKHJlLCBgXFxcXCR7cXVvdGVFc2NhcGV9YCk7XG4gIH1cbiAgcmV0dXJuIHN0cjtcbn1cblxuZnVuY3Rpb24gbG9jYWxJcCAoKSB7XG4gIGxldCBpcCA9IF8uY2hhaW4ob3MubmV0d29ya0ludGVyZmFjZXMoKSlcbiAgICAudmFsdWVzKClcbiAgICAuZmxhdHRlbigpXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIC5maWx0ZXIoZnVuY3Rpb24gKHZhbCkge1xuICAgICAgcmV0dXJuICh2YWwuZmFtaWx5ID09PSAnSVB2NCcgJiYgdmFsLmludGVybmFsID09PSBmYWxzZSk7XG4gICAgfSlcbiAgICAubWFwKCdhZGRyZXNzJylcbiAgICAuZmlyc3QoKVxuICAgIC52YWx1ZSgpO1xuICByZXR1cm4gaXA7XG59XG5cbi8qXG4gKiBDcmVhdGVzIGEgcHJvbWlzZSB0aGF0IGlzIGNhbmNlbGxhYmxlLCBhbmQgd2lsbCB0aW1lb3V0XG4gKiBhZnRlciBgbXNgIGRlbGF5XG4gKi9cbmZ1bmN0aW9uIGNhbmNlbGxhYmxlRGVsYXkgKG1zKSB7XG4gIGxldCB0aW1lcjtcbiAgbGV0IHJlc29sdmU7XG4gIGxldCByZWplY3Q7XG5cbiAgY29uc3QgZGVsYXkgPSBuZXcgQi5Qcm9taXNlKChfcmVzb2x2ZSwgX3JlamVjdCkgPT4ge1xuICAgIHJlc29sdmUgPSBfcmVzb2x2ZTtcbiAgICByZWplY3QgPSBfcmVqZWN0O1xuICAgIHRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSwgbXMpO1xuICB9KTtcblxuICAvLyBvdmVycmlkZSBCbHVlYmlyZCdzIGBjYW5jZWxgLCB3aGljaCBkb2VzIG5vdCB3b3JrIHdoZW4gdXNpbmcgYGF3YWl0YCBvblxuICAvLyBhIHByb21pc2UsIHNpbmNlIGByZXNvbHZlYC9gcmVqZWN0YCBhcmUgbmV2ZXIgY2FsbGVkXG4gIGRlbGF5LmNhbmNlbCA9IGZ1bmN0aW9uICgpIHtcbiAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgIHJlamVjdChuZXcgQi5DYW5jZWxsYXRpb25FcnJvcigpKTtcbiAgfTtcbiAgcmV0dXJuIGRlbGF5O1xufVxuXG5mdW5jdGlvbiBtdWx0aVJlc29sdmUgKHJvb3RzLCAuLi5hcmdzKSB7XG4gIHJldHVybiByb290cy5tYXAoKHJvb3QpID0+IHBhdGgucmVzb2x2ZShyb290LCAuLi5hcmdzKSk7XG59XG5cbi8qXG4gKiBQYXJzZXMgYW4gb2JqZWN0IGlmIHBvc3NpYmxlLiBPdGhlcndpc2UgcmV0dXJucyB0aGUgb2JqZWN0IHdpdGhvdXQgcGFyc2luZy5cbiAqL1xuZnVuY3Rpb24gc2FmZUpzb25QYXJzZSAob2JqKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2Uob2JqKTtcbiAgfSBjYXRjaCAoaWduKSB7XG4gICAgLy8gaWdub3JlOiB0aGlzIGlzIG5vdCBqc29uIHBhcnNhYmxlXG4gICAgcmV0dXJuIG9iajtcbiAgfVxufVxuXG4vKlxuICogU3RyaW5naWZpZXMgdGhlIG9iamVjdCBwYXNzZWQgaW4sIGNvbnZlcnRpbmcgQnVmZmVycyBpbnRvIFN0cmluZ3MgZm9yIGJldHRlclxuICogZGlzcGxheS4gVGhpcyBtaW1pY3MgSlNPTi5zdHJpbmdpZnkgKHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9KU09OL3N0cmluZ2lmeSlcbiAqIGV4Y2VwdCB0aGUgYHJlcGxhY2VyYCBhcmd1bWVudCBjYW4gb25seSBiZSBhIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBvYmogLSB0aGUgb2JqZWN0IHRvIGJlIHNlcmlhbGl6ZWRcbiAqIEBwYXJhbSB7P2Z1bmN0aW9ufSByZXBsYWNlciAtIGZ1bmN0aW9uIHRvIHRyYW5zZm9ybSB0aGUgcHJvcGVydGllcyBhZGRlZCB0byB0aGVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6ZWQgb2JqZWN0XG4gKiBAcGFyYW0gez9udW1iZXJ8c3RyaW5nfSBzcGFjZSAtIHVzZWQgdG8gaW5zZXJ0IHdoaXRlIHNwYWNlIGludG8gdGhlIG91dHB1dCBKU09OXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBmb3IgcmVhZGFiaWxpdHkgcHVycG9zZXMuIERlZmF1bHRzIHRvIDJcbiAqIHJldHVybnMge3N0cmluZ30gLSB0aGUgSlNPTiBvYmplY3Qgc2VyaWFsaXplZCBhcyBhIHN0cmluZ1xuICovXG5mdW5jdGlvbiBqc29uU3RyaW5naWZ5IChvYmosIHJlcGxhY2VyLCBzcGFjZSA9IDIpIHtcbiAgLy8gaWYgbm8gcmVwbGFjZXIgaXMgcGFzc2VkLCBvciBpdCBpcyBub3QgYSBmdW5jdGlvbiwganVzdCB1c2UgYSBwYXNzLXRocm91Z2hcbiAgaWYgKCFfLmlzRnVuY3Rpb24ocmVwbGFjZXIpKSB7XG4gICAgcmVwbGFjZXIgPSAoaywgdikgPT4gdjtcbiAgfVxuXG4gIC8vIEJ1ZmZlcnMgY2Fubm90IGJlIHNlcmlhbGl6ZWQgaW4gYSByZWFkYWJsZSB3YXlcbiAgY29uc3QgYnVmZmVyVG9KU09OID0gQnVmZmVyLnByb3RvdHlwZS50b0pTT047XG4gIGRlbGV0ZSBCdWZmZXIucHJvdG90eXBlLnRvSlNPTjtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqLCAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gQnVmZmVyLmlzQnVmZmVyKHZhbHVlKVxuICAgICAgICA/IHZhbHVlLnRvU3RyaW5nKCd1dGY4JylcbiAgICAgICAgOiB2YWx1ZTtcbiAgICAgIHJldHVybiByZXBsYWNlcihrZXksIHVwZGF0ZWRWYWx1ZSk7XG4gICAgfSwgc3BhY2UpO1xuICB9IGZpbmFsbHkge1xuICAgIC8vIHJlc3RvcmUgdGhlIGZ1bmN0aW9uLCBzbyBhcyB0byBub3QgYnJlYWsgZnVydGhlciBzZXJpYWxpemF0aW9uXG4gICAgQnVmZmVyLnByb3RvdHlwZS50b0pTT04gPSBidWZmZXJUb0pTT047XG4gIH1cbn1cblxuLypcbiAqIFJlbW92ZXMgdGhlIHdyYXBwZXIgZnJvbSBlbGVtZW50LCBpZiBpdCBleGlzdHMuXG4gKiAgIHsgRUxFTUVOVDogNCB9IGJlY29tZXMgNFxuICogICB7IGVsZW1lbnQtNjA2Ni0xMWU0LWE1MmUtNGY3MzU0NjZjZWNmOiA1IH0gYmVjb21lcyA1XG4gKi9cbmZ1bmN0aW9uIHVud3JhcEVsZW1lbnQgKGVsKSB7XG4gIGZvciAoY29uc3QgcHJvcE5hbWUgb2YgW1czQ19XRUJfRUxFTUVOVF9JREVOVElGSUVSLCAnRUxFTUVOVCddKSB7XG4gICAgaWYgKF8uaGFzKGVsLCBwcm9wTmFtZSkpIHtcbiAgICAgIHJldHVybiBlbFtwcm9wTmFtZV07XG4gICAgfVxuICB9XG4gIHJldHVybiBlbDtcbn1cblxuZnVuY3Rpb24gd3JhcEVsZW1lbnQgKGVsZW1lbnRJZCkge1xuICByZXR1cm4ge1xuICAgIEVMRU1FTlQ6IGVsZW1lbnRJZCxcbiAgICBbVzNDX1dFQl9FTEVNRU5UX0lERU5USUZJRVJdOiBlbGVtZW50SWQsXG4gIH07XG59XG5cbi8qXG4gKiBSZXR1cm5zIG9iamVjdCBjb25zaXN0aW5nIG9mIGFsbCBwcm9wZXJ0aWVzIGluIHRoZSBvcmlnaW5hbCBlbGVtZW50XG4gKiB3aGljaCB3ZXJlIHRydXRoeSBnaXZlbiB0aGUgcHJlZGljYXRlLlxuICogSWYgdGhlIHByZWRpY2F0ZSBpc1xuICogICAqIG1pc3NpbmcgLSBpdCB3aWxsIHJlbW92ZSBhbGwgcHJvcGVydGllcyB3aG9zZSB2YWx1ZXMgYXJlIGB1bmRlZmluZWRgXG4gKiAgICogYSBzY2FsYXIgLSBpdCB3aWxsIHRlc3QgYWxsIHByb3BlcnRpZXMnIHZhbHVlcyBhZ2FpbnN0IHRoYXQgdmFsdWVcbiAqICAgKiBhIGZ1bmN0aW9uIC0gaXQgd2lsbCBwYXNzIGVhY2ggdmFsdWUgYW5kIHRoZSBvcmlnaW5hbCBvYmplY3QgaW50byB0aGUgZnVuY3Rpb25cbiAqL1xuZnVuY3Rpb24gZmlsdGVyT2JqZWN0IChvYmosIHByZWRpY2F0ZSkge1xuICBsZXQgbmV3T2JqID0gXy5jbG9uZShvYmopO1xuICBpZiAoXy5pc1VuZGVmaW5lZChwcmVkaWNhdGUpKSB7XG4gICAgLy8gcmVtb3ZlIGFueSBlbGVtZW50IGZyb20gdGhlIG9iamVjdCB3aG9zZSB2YWx1ZSBpcyB1bmRlZmluZWRcbiAgICBwcmVkaWNhdGUgPSAodikgPT4gIV8uaXNVbmRlZmluZWQodik7XG4gIH0gZWxzZSBpZiAoIV8uaXNGdW5jdGlvbihwcmVkaWNhdGUpKSB7XG4gICAgLy8gbWFrZSBwcmVkaWNhdGUgaW50byBhIGZ1bmN0aW9uXG4gICAgY29uc3QgdmFsdWVQcmVkaWNhdGUgPSBwcmVkaWNhdGU7XG4gICAgcHJlZGljYXRlID0gKHYpID0+IHYgPT09IHZhbHVlUHJlZGljYXRlO1xuICB9XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpIHtcbiAgICBpZiAoIXByZWRpY2F0ZShvYmpba2V5XSwgb2JqKSkge1xuICAgICAgZGVsZXRlIG5ld09ialtrZXldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmV3T2JqO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIG51bWJlciBvZiBieXRlcyB0byBhIHJlYWRhYmxlIHNpemUgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gYnl0ZXMgLSBUaGUgYWN0dWFsIG51bWJlciBvZiBieXRlcy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBhY3R1YWwgc3RyaW5nIHJlcHJlc2VudGF0aW9uLCBmb3IgZXhhbXBsZVxuICogICAgICAgICAgICAgICAgICAgJzEuMDAgS0InIGZvciAnMTAyNCBCJ1xuICogQHRocm93cyB7RXJyb3J9IElmIGJ5dGVzIGNvdW50IGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gYW4gaW50ZWdlciBvclxuICogICAgICAgICAgICAgICAgIGlmIGl0IGlzIGxlc3MgdGhhbiB6ZXJvLlxuICovXG5mdW5jdGlvbiB0b1JlYWRhYmxlU2l6ZVN0cmluZyAoYnl0ZXMpIHtcbiAgY29uc3QgaW50Qnl0ZXMgPSBwYXJzZUludChTdHJpbmcoYnl0ZXMpLCAxMCk7XG4gIGlmIChpc05hTihpbnRCeXRlcykgfHwgaW50Qnl0ZXMgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY29udmVydCAnJHtieXRlc30nIHRvIGEgcmVhZGFibGUgc2l6ZSBmb3JtYXRgKTtcbiAgfVxuICBpZiAoaW50Qnl0ZXMgPj0gR2lCKSB7XG4gICAgcmV0dXJuIGAkeyhpbnRCeXRlcyAvIChHaUIgKiAxLjApKS50b0ZpeGVkKDIpfSBHQmA7XG4gIH0gZWxzZSBpZiAoaW50Qnl0ZXMgPj0gTWlCKSB7XG4gICAgcmV0dXJuIGAkeyhpbnRCeXRlcyAvIChNaUIgKiAxLjApKS50b0ZpeGVkKDIpfSBNQmA7XG4gIH0gZWxzZSBpZiAoaW50Qnl0ZXMgPj0gS2lCKSB7XG4gICAgcmV0dXJuIGAkeyhpbnRCeXRlcyAvIChLaUIgKiAxLjApKS50b0ZpeGVkKDIpfSBLQmA7XG4gIH1cbiAgcmV0dXJuIGAke2ludEJ5dGVzfSBCYDtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gcGF0aCBpcyBhIHN1YnBhdGggb2YgdGhlXG4gKiBwYXJ0aWN1bGFyIHJvb3QgZm9sZGVyLiBCb3RoIHBhdGhzIGNhbiBpbmNsdWRlIC4uIGFuZCAuIHNwZWNpZmllcnNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxQYXRoIFRoZSBhYnNvbHV0ZSBmaWxlL2ZvbGRlciBwYXRoXG4gKiBAcGFyYW0ge3N0cmluZ30gcm9vdCBUaGUgYWJzb2x1dGUgcm9vdCBmb2xkZXIgcGF0aFxuICogQHBhcmFtIHs/Ym9vbGVhbn0gZm9yY2VQb3NpeCBTZXQgaXQgdG8gdHJ1ZSBpZiBwYXRocyBtdXN0IGJlIGludGVycHJldGVkIGluIFBPU0lYIGZvcm1hdFxuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIGdpdmVuIG9yaWdpbmFsIHBhdGggaXMgdGhlIHN1YnBhdGggb2YgdGhlIHJvb3QgZm9sZGVyXG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgYW55IG9mIHRoZSBnaXZlbiBwYXRocyBpcyBub3QgYWJzb2x1dGVcbiAqL1xuZnVuY3Rpb24gaXNTdWJQYXRoIChvcmlnaW5hbFBhdGgsIHJvb3QsIGZvcmNlUG9zaXggPSBudWxsKSB7XG4gIGNvbnN0IHBhdGhPYmogPSBmb3JjZVBvc2l4ID8gcGF0aC5wb3NpeCA6IHBhdGg7XG4gIGZvciAoY29uc3QgcCBvZiBbb3JpZ2luYWxQYXRoLCByb290XSkge1xuICAgIGlmICghcGF0aE9iai5pc0Fic29sdXRlKHApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3B9JyBpcyBleHBlY3RlZCB0byBiZSBhbiBhYnNvbHV0ZSBwYXRoYCk7XG4gICAgfVxuICB9XG4gIGNvbnN0IG5vcm1hbGl6ZWRSb290ID0gcGF0aE9iai5ub3JtYWxpemUocm9vdCk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gcGF0aE9iai5ub3JtYWxpemUob3JpZ2luYWxQYXRoKTtcbiAgcmV0dXJuIG5vcm1hbGl6ZWRQYXRoLnN0YXJ0c1dpdGgobm9ybWFsaXplZFJvb3QpO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBwYXRocyBhcmUgcG9pbnRpbmcgdG8gdGhlIHNhbWUgZmlsZSBzeXN0ZW1cbiAqIGRlc3RpbmF0aW9uLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoMSAtIEFic29sdXRlIG9yIHJlbGF0aXZlIHBhdGggdG8gYSBmaWxlL2ZvbGRlclxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGgyIC0gQWJzb2x1dGUgb3IgcmVsYXRpdmUgcGF0aCB0byBhIGZpbGUvZm9sZGVyXG4gKiBAcGFyYW0gey4uLnN0cmluZ30gcGF0aE4gLSBaZXJvIG9yIG1vcmUgYWJzb2x1dGUgb3IgcmVsYXRpdmUgcGF0aHMgdG8gZmlsZXMvZm9sZGVyc1xuICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IHRydWUgaWYgYWxsIHBhdGhzIGFyZSBwb2ludGluZyB0byB0aGUgc2FtZSBmaWxlIHN5c3RlbSBpdGVtXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGlzU2FtZURlc3RpbmF0aW9uIChwYXRoMSwgcGF0aDIsIC4uLnBhdGhOKSB7XG4gIGNvbnN0IGFsbFBhdGhzID0gW3BhdGgxLCBwYXRoMiwgLi4ucGF0aE5dO1xuICBpZiAoIWF3YWl0IEIucmVkdWNlKGFsbFBhdGhzLCBhc3luYyAoYSwgYikgPT4gYSAmJiBhd2FpdCBmcy5leGlzdHMoYiksIHRydWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgYXJlQWxsSXRlbXNFcXVhbCA9IChhcnIpID0+ICEhYXJyLnJlZHVjZSgoYSwgYikgPT4gYSA9PT0gYiA/IGEgOiBOYU4pO1xuICBpZiAoYXJlQWxsSXRlbXNFcXVhbChhbGxQYXRocykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGxldCBtYXBDYiA9IGFzeW5jICh4KSA9PiAoYXdhaXQgZnMuc3RhdCh4LCB7XG4gICAgYmlnaW50OiB0cnVlLFxuICB9KSkuaW5vO1xuICByZXR1cm4gYXJlQWxsSXRlbXNFcXVhbChhd2FpdCBCLm1hcChhbGxQYXRocywgbWFwQ2IpKTtcbn1cblxuLyoqXG4gKiBDb2VyY2VzIHRoZSBnaXZlbiBudW1iZXIvc3RyaW5nIHRvIGEgdmFsaWQgdmVyc2lvbiBzdHJpbmdcbiAqXG4gKiBAdGVtcGxhdGUge2Jvb2xlYW59IFtTdHJpY3Q9dHJ1ZV1cbiAqIEBwYXJhbSB7c3RyaW5nfSB2ZXIgLSBWZXJzaW9uIHN0cmluZyB0byBjb2VyY2VcbiAqIEBwYXJhbSB7U3RyaWN0fSBbc3RyaWN0XSAtIElmIGB0cnVlYCB0aGVuIGFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93blxuICogaWYgYHZlcmAgY2Fubm90IGJlIGNvZXJjZWRcbiAqIEByZXR1cm5zIHtTdHJpY3QgZXh0ZW5kcyB0cnVlID8gc3RyaW5nIDogc3RyaW5nfG51bGx9IENvZXJjZWQgdmVyc2lvbiBudW1iZXIgb3IgbnVsbCBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZVxuICogY29lcmNlZCBhbmQgc3RyaWN0IG1vZGUgaXMgZGlzYWJsZWRcbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiBzdHJpY3QgbW9kZSBpcyBlbmFibGVkIGFuZCBgdmVyYCBjYW5ub3QgYmUgY29lcmNlZFxuICovXG5mdW5jdGlvbiBjb2VyY2VWZXJzaW9uICh2ZXIsIHN0cmljdCA9IC8qKiBAdHlwZSB7U3RyaWN0fSAqLyh0cnVlKSkge1xuICBjb25zdCByZXN1bHQgPSBzZW12ZXIudmFsaWQoc2VtdmVyLmNvZXJjZShgJHt2ZXJ9YCkpO1xuICBpZiAoc3RyaWN0ICYmICFyZXN1bHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3Zlcn0nIGNhbm5vdCBiZSBjb2VyY2VkIHRvIGEgdmFsaWQgdmVyc2lvbiBudW1iZXJgKTtcbiAgfVxuICByZXR1cm4gLyoqIEB0eXBlIHtTdHJpY3QgZXh0ZW5kcyB0cnVlID8gc3RyaW5nIDogc3RyaW5nP30gKi8ocmVzdWx0KTtcbn1cblxuY29uc3QgU1VQUE9SVEVEX09QRVJBVE9SUyA9IFsnPT0nLCAnIT0nLCAnPicsICc8JywgJz49JywgJzw9JywgJz0nXTtcblxuLyoqXG4gKiBDb21wYXJlcyB0d28gdmVyc2lvbiBzdHJpbmdzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZlcjEgLSBUaGUgZmlyc3QgdmVyc2lvbiBudW1iZXIgdG8gY29tcGFyZS4gU2hvdWxkIGJlIGEgdmFsaWRcbiAqIHZlcnNpb24gbnVtYmVyIHN1cHBvcnRlZCBieSBzZW12ZXIgcGFyc2VyLlxuICogQHBhcmFtIHtzdHJpbmd9IHZlcjIgLSBUaGUgc2Vjb25kIHZlcnNpb24gbnVtYmVyIHRvIGNvbXBhcmUuIFNob3VsZCBiZSBhIHZhbGlkXG4gKiB2ZXJzaW9uIG51bWJlciBzdXBwb3J0ZWQgYnkgc2VtdmVyIHBhcnNlci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcGVyYXRvciAtIE9uZSBvZiBzdXBwb3J0ZWQgdmVyc2lvbiBudW1iZXIgb3BlcmF0b3JzOlxuICogPT0sICE9LCA+LCA8LCA8PSwgPj0sID1cbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIG9yIGZhbHNlIGRlcGVuZGluZyBvbiB0aGUgYWN0dWFsIGNvbXBhcmlzb24gcmVzdWx0XG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgYW4gdW5zdXBwb3J0ZWQgb3BlcmF0b3IgaXMgc3VwcGxpZWQgb3IgYW55IG9mIHRoZSBzdXBwbGllZFxuICogdmVyc2lvbiBzdHJpbmdzIGNhbm5vdCBiZSBjb2VyY2VkXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVWZXJzaW9ucyAodmVyMSwgb3BlcmF0b3IsIHZlcjIpIHtcbiAgaWYgKCFTVVBQT1JURURfT1BFUkFUT1JTLmluY2x1ZGVzKG9wZXJhdG9yKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVGhlICcke29wZXJhdG9yfScgY29tcGFyaXNvbiBvcGVyYXRvciBpcyBub3Qgc3VwcG9ydGVkLiBgICtcbiAgICAgIGBPbmx5ICcke0pTT04uc3RyaW5naWZ5KFNVUFBPUlRFRF9PUEVSQVRPUlMpfScgb3BlcmF0b3JzIGFyZSBzdXBwb3J0ZWRgKTtcbiAgfVxuXG4gIGNvbnN0IHNlbXZlck9wZXJhdG9yID0gWyc9PScsICchPSddLmluY2x1ZGVzKG9wZXJhdG9yKSA/ICc9JyA6IG9wZXJhdG9yO1xuICBjb25zdCByZXN1bHQgPSBzZW12ZXIuc2F0aXNmaWVzKGNvZXJjZVZlcnNpb24odmVyMSksIGAke3NlbXZlck9wZXJhdG9yfSR7Y29lcmNlVmVyc2lvbih2ZXIyKX1gKTtcbiAgcmV0dXJuIG9wZXJhdG9yID09PSAnIT0nID8gIXJlc3VsdCA6IHJlc3VsdDtcbn1cblxuLyoqXG4gKiBBZGQgYXBwcm9wcmlhdGUgcXVvdGVzIHRvIGNvbW1hbmQgYXJndW1lbnRzLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3N1YnN0YWNrL25vZGUtc2hlbGwtcXVvdGVcbiAqIGZvciBtb3JlIGRldGFpbHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gYXJncyAtIFRoZSBhcmd1bWVudHMgdGhhdCB3aWxsIGJlIHBhcnNlZFxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgYXJndW1lbnRzLCBxdW90ZWRcbiAqL1xuZnVuY3Rpb24gcXVvdGUgKGFyZ3MpIHtcbiAgcmV0dXJuIHNoZWxsUXVvdGUoXy5jYXN0QXJyYXkoYXJncykpO1xufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbmVjZXNzYXJ5IHRvIHdvcmthcm91bmQgdW5leHBlY3RlZCBtZW1vcnkgbGVha3NcbiAqIGNhdXNlZCBieSBOb2RlSlMgc3RyaW5nIGludGVybmluZ1xuICogYmVoYXZpb3IgZGVzY3JpYmVkIGluIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTI4NjlcbiAqXG4gKiBAcGFyYW0geyp9IHMgLSBUaGUgc3RyaW5nIHRvIHVubGVha1xuICogQHJldHVybiB7c3RyaW5nfSBFaXRoZXIgdGhlIHVubGVha2VkIHN0cmluZyBvciB0aGUgb3JpZ2luYWwgb2JqZWN0IGNvbnZlcnRlZCB0byBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gdW5sZWFrU3RyaW5nIChzKSB7XG4gIHJldHVybiBgICR7c31gLnN1YnN0cigxKTtcbn1cblxuXG4vKipcbiAqIEB0eXBlZGVmIFBsdXJhbGl6ZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2luY2x1c2l2ZT1mYWxzZV0gLSBXaGV0aGVyIHRvIHByZWZpeCB3aXRoIHRoZSBudW1iZXIgKGUuZy4sIDMgZHVja3MpXG4gKi9cblxuLyoqXG4gKiBHZXQgdGhlIGZvcm0gb2YgYSB3b3JkIGFwcHJvcHJpYXRlIHRvIHRoZSBjb3VudFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB3b3JkIC0gVGhlIHdvcmQgdG8gcGx1cmFsaXplXG4gKiBAcGFyYW0ge251bWJlcn0gY291bnQgLSBIb3cgbWFueSBvZiB0aGUgd29yZCBleGlzdFxuICogQHBhcmFtIHtQbHVyYWxpemVPcHRpb25zfGJvb2xlYW59IG9wdGlvbnMgLSBvcHRpb25zIGZvciB3b3JkIHBsdXJhbGl6YXRpb24sXG4gKiAgIG9yIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHRoZSBvcHRpb25zLmluY2x1c2l2ZSBwcm9wZXJ0eVxuICogQHJldHVybnMge3N0cmluZ30gVGhlIHdvcmQgcGx1cmFsaXplZCBhY2NvcmRpbmcgdG8gdGhlIG51bWJlclxuICovXG5mdW5jdGlvbiBwbHVyYWxpemUgKHdvcmQsIGNvdW50LCBvcHRpb25zID0ge30pIHtcbiAgbGV0IGluY2x1c2l2ZSA9IGZhbHNlO1xuICBpZiAoXy5pc0Jvb2xlYW4ob3B0aW9ucykpIHtcbiAgICAvLyBpZiBwYXNzZWQgaW4gYXMgYSBib29sZWFuXG4gICAgaW5jbHVzaXZlID0gb3B0aW9ucztcbiAgfSBlbHNlIGlmIChfLmlzQm9vbGVhbihvcHRpb25zPy5pbmNsdXNpdmUpKSB7XG4gICAgLy8gaWYgcGFzc2VkIGluIGFzIGFuIG9wdGlvbnMgaGFzaFxuICAgIGluY2x1c2l2ZSA9IG9wdGlvbnMuaW5jbHVzaXZlO1xuICB9XG4gIHJldHVybiBwbHVyYWxpemVMaWIod29yZCwgY291bnQsIGluY2x1c2l2ZSk7XG59XG5cbi8qKlxuICogQHR5cGVkZWYgRW5jb2RpbmdPcHRpb25zXG4gKiBAcHJvcGVydHkge251bWJlcn0gW21heFNpemU9MTA3Mzc0MTgyNF0gVGhlIG1heGltdW0gc2l6ZSBvZlxuICogdGhlIHJlc3VsdGluZyBidWZmZXIgaW4gYnl0ZXMuIFRoaXMgaXMgc2V0IHRvIDFHQiBieSBkZWZhdWx0LCBiZWNhdXNlXG4gKiBBcHBpdW0gbGltaXRzIHRoZSBtYXhpbXVtIEhUVFAgYm9keSBzaXplIHRvIDFHQi4gQWxzbywgdGhlIE5vZGVKUyBoZWFwXG4gKiBzaXplIG11c3QgYmUgZW5vdWdoIHRvIGtlZXAgdGhlIHJlc3VsdGluZyBvYmplY3QgKHVzdWFsbHkgdGhpcyBzaXplIGlzXG4gKiBsaW1pdGVkIHRvIDEuNCBHQilcbiAqL1xuXG4vKipcbiAqIENvbnZlcnRzIGNvbnRlbnRzIG9mIGEgbG9jYWwgZmlsZSB0byBhbiBpbi1tZW1vcnkgYmFzZS02NCBlbmNvZGVkIGJ1ZmZlci5cbiAqIFRoZSBvcGVyYXRpb24gaXMgbWVtb3J5LXVzYWdlIGZyaWVuZGx5IGFuZCBzaG91bGQgYmUgdXNlZCB3aGlsZSBlbmNvZGluZ1xuICogbGFyZ2UgZmlsZXMgdG8gYmFzZTY0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHNyY1BhdGggVGhlIGZ1bGwgcGF0aCB0byB0aGUgZmlsZSBiZWluZyBlbmNvZGVkXG4gKiBAcGFyYW0ge0VuY29kaW5nT3B0aW9uc30gb3B0c1xuICogQHJldHVybnMge1Byb21pc2U8QnVmZmVyPn0gYmFzZTY0LWVuY29kZWQgY29udGVudCBvZiB0aGUgc291cmNlIGZpbGUgYXMgbWVtb3J5IGJ1ZmZlclxuICogQHRocm93cyB7RXJyb3J9IGlmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSByZWFkaW5nIHRoZSBzb3VyY2UgZmlsZVxuICogb3IgdGhlIHNvdXJjZSBmaWxlIGlzIHRvb1xuICovXG5hc3luYyBmdW5jdGlvbiB0b0luTWVtb3J5QmFzZTY0IChzcmNQYXRoLCBvcHRzID0ge30pIHtcbiAgaWYgKCEoYXdhaXQgZnMuZXhpc3RzKHNyY1BhdGgpKSB8fCAoYXdhaXQgZnMuc3RhdChzcmNQYXRoKSkuaXNEaXJlY3RvcnkoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBmaWxlOiAke3NyY1BhdGh9YCk7XG4gIH1cblxuICBjb25zdCB7XG4gICAgbWF4U2l6ZSA9IDEgKiBHaUIsXG4gIH0gPSBvcHRzO1xuICBjb25zdCByZXN1bHRCdWZmZXJzID0gW107XG4gIGxldCByZXN1bHRCdWZmZXJzU2l6ZSA9IDA7XG4gIGNvbnN0IHJlc3VsdFdyaXRlU3RyZWFtID0gbmV3IHN0cmVhbS5Xcml0YWJsZSh7XG4gICAgd3JpdGU6IChidWZmZXIsIGVuY29kaW5nLCBuZXh0KSA9PiB7XG4gICAgICByZXN1bHRCdWZmZXJzLnB1c2goYnVmZmVyKTtcbiAgICAgIHJlc3VsdEJ1ZmZlcnNTaXplICs9IGJ1ZmZlci5sZW5ndGg7XG4gICAgICBpZiAobWF4U2l6ZSA+IDAgJiYgcmVzdWx0QnVmZmVyc1NpemUgPiBtYXhTaXplKSB7XG4gICAgICAgIHJlc3VsdFdyaXRlU3RyZWFtLmVtaXQoJ2Vycm9yJywgbmV3IEVycm9yKGBUaGUgc2l6ZSBvZiB0aGUgcmVzdWx0aW5nIGAgK1xuICAgICAgICAgIGBidWZmZXIgbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuICR7dG9SZWFkYWJsZVNpemVTdHJpbmcobWF4U2l6ZSl9YCkpO1xuICAgICAgfVxuICAgICAgbmV4dCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IHJlYWRlclN0cmVhbSA9IGZzLmNyZWF0ZVJlYWRTdHJlYW0oc3JjUGF0aCk7XG4gIGNvbnN0IGJhc2U2NEVuY29kZXJTdHJlYW0gPSBuZXcgQmFzZTY0RW5jb2RlKCk7XG4gIGNvbnN0IHJlc3VsdFdyaXRlU3RyZWFtUHJvbWlzZSA9IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICByZXN1bHRXcml0ZVN0cmVhbS5vbmNlKCdlcnJvcicsIChlKSA9PiB7XG4gICAgICByZWFkZXJTdHJlYW0udW5waXBlKGJhc2U2NEVuY29kZXJTdHJlYW0pO1xuICAgICAgYmFzZTY0RW5jb2RlclN0cmVhbS51bnBpcGUocmVzdWx0V3JpdGVTdHJlYW0pO1xuICAgICAgcmVhZGVyU3RyZWFtLmRlc3Ryb3koKTtcbiAgICAgIHJlamVjdChlKTtcbiAgICB9KTtcbiAgICByZXN1bHRXcml0ZVN0cmVhbS5vbmNlKCdmaW5pc2gnLCByZXNvbHZlKTtcbiAgfSk7XG4gIGNvbnN0IHJlYWRTdHJlYW1Qcm9taXNlID0gbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHJlYWRlclN0cmVhbS5vbmNlKCdjbG9zZScsIHJlc29sdmUpO1xuICAgIHJlYWRlclN0cmVhbS5vbmNlKCdlcnJvcicsIChlKSA9PiByZWplY3QoXG4gICAgICBuZXcgRXJyb3IoYEZhaWxlZCB0byByZWFkICcke3NyY1BhdGh9JzogJHtlLm1lc3NhZ2V9YCkpKTtcbiAgfSk7XG4gIHJlYWRlclN0cmVhbS5waXBlKGJhc2U2NEVuY29kZXJTdHJlYW0pO1xuICBiYXNlNjRFbmNvZGVyU3RyZWFtLnBpcGUocmVzdWx0V3JpdGVTdHJlYW0pO1xuXG4gIGF3YWl0IEIuYWxsKFtyZWFkU3RyZWFtUHJvbWlzZSwgcmVzdWx0V3JpdGVTdHJlYW1Qcm9taXNlXSk7XG4gIHJldHVybiBCdWZmZXIuY29uY2F0KHJlc3VsdEJ1ZmZlcnMpO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIExvY2tGaWxlT3B0aW9uc1xuICogQHByb3BlcnR5IHtudW1iZXJ9IFt0aW1lb3V0PTEyMF0gVGhlIG1heCB0aW1lIGluIHNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIGxvY2tcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3RyeVJlY292ZXJ5PWZhbHNlXSBXaGV0aGVyIHRvIHRyeSBsb2NrIHJlY292ZXJ5IGlmXG4gKiB0aGUgZmlyc3QgYXR0ZW1wdCB0byBhY3F1aXJlIGl0IHRpbWVkIG91dC5cbiAqL1xuXG4vKipcbiAqIENyZWF0ZSBhbiBhc3luYyBmdW5jdGlvbiB3aGljaCwgd2hlbiBjYWxsZWQsIHdpbGwgbm90IHByb2NlZWQgdW50aWwgYSBjZXJ0YWluIGZpbGUgaXMgbm9cbiAqIGxvbmdlciBwcmVzZW50IG9uIHRoZSBzeXN0ZW0uIFRoaXMgYWxsb3dzIGZvciBwcmV2ZW50aW5nIGNvbmN1cnJlbnQgYmVoYXZpb3IgYWNyb3NzIHByb2Nlc3Nlc1xuICogdXNpbmcgYSBrbm93biBsb2NrZmlsZSBwYXRoLlxuICpcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAcGFyYW0ge3N0cmluZ30gbG9ja0ZpbGUgVGhlIGZ1bGwgcGF0aCB0byB0aGUgZmlsZSB1c2VkIGZvciB0aGUgbG9ja1xuICogQHBhcmFtIHtMb2NrRmlsZU9wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIGFzeW5jIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYW5vdGhlciBhc3luYyBmdW5jdGlvbiBkZWZpbmluZyB0aGUgbG9ja2VkXG4gKiBiZWhhdmlvclxuICovXG5mdW5jdGlvbiBnZXRMb2NrRmlsZUd1YXJkIChsb2NrRmlsZSwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICB0aW1lb3V0ID0gMTIwLFxuICAgIHRyeVJlY292ZXJ5ID0gZmFsc2UsXG4gIH0gPSBvcHRzO1xuXG4gIGNvbnN0IGxvY2sgPSAvKiogQHR5cGUgeyhsb2NrZmlsZTogc3RyaW5nLCBvcHRzOiBpbXBvcnQoJ2xvY2tmaWxlJykuT3B0aW9ucyk9PkI8dm9pZD59ICovKEIucHJvbWlzaWZ5KF9sb2NrZmlsZS5sb2NrKSk7XG4gIGNvbnN0IGNoZWNrID0gQi5wcm9taXNpZnkoX2xvY2tmaWxlLmNoZWNrKTtcbiAgY29uc3QgdW5sb2NrID0gQi5wcm9taXNpZnkoX2xvY2tmaWxlLnVubG9jayk7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7KC4uLmFyZ3M6IGFueVtdKSA9PiBUfSBiZWhhdmlvclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUPn1cbiAgICovXG4gIGNvbnN0IGd1YXJkID0gYXN5bmMgKGJlaGF2aW9yKSA9PiB7XG4gICAgbGV0IHRyaWVkUmVjb3ZlcnkgPSBmYWxzZTtcbiAgICBkbyB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBpZiB0aGUgbG9ja2ZpbGUgZG9lc24ndCBleGlzdCwgbG9jayBpdCBzeW5jaHJvbm91c2x5IHRvIG1ha2Ugc3VyZSBubyBvdGhlciBjYWxsXG4gICAgICAgIC8vIG9uIHRoZSBzYW1lIHNwaW4gb2YgdGhlIGV2ZW50IGxvb3AgY2FuIGFsc28gaW5pdGlhdGUgYSBsb2NrLiBJZiB0aGUgbG9ja2ZpbGUgZG9lcyBleGlzdFxuICAgICAgICAvLyB0aGVuIGp1c3QgdXNlIHRoZSByZWd1bGFyIGFzeW5jICdsb2NrJyBtZXRob2Qgd2hpY2ggd2lsbCB3YWl0IG9uIHRoZSBsb2NrLlxuICAgICAgICBpZiAoX2xvY2tmaWxlLmNoZWNrU3luYyhsb2NrRmlsZSkpIHtcbiAgICAgICAgICBhd2FpdCBsb2NrKGxvY2tGaWxlLCB7d2FpdDogdGltZW91dCAqIDEwMDB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfbG9ja2ZpbGUubG9ja1N5bmMobG9ja0ZpbGUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoXy5pbmNsdWRlcyhlLm1lc3NhZ2UsICdFRVhJU1QnKSAmJiB0cnlSZWNvdmVyeSAmJiAhdHJpZWRSZWNvdmVyeSkge1xuICAgICAgICAgIC8vIFRoZXJlIGNvdWxkIGJlIGNhc2VzIHdoZXJlIGEgcHJvY2VzcyBoYXMgYmVlbiBmb3JjZWZ1bGx5IHRlcm1pbmF0ZWRcbiAgICAgICAgICAvLyB3aXRob3V0IGEgY2hhbmNlIHRvIGNsZWFuIHVwIHBlbmRpbmcgbG9ja3M6IGh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vbG9ja2ZpbGUvaXNzdWVzLzI2XG4gICAgICAgICAgX2xvY2tmaWxlLnVubG9ja1N5bmMobG9ja0ZpbGUpO1xuICAgICAgICAgIHRyaWVkUmVjb3ZlcnkgPSB0cnVlO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGFjcXVpcmUgbG9jayBvbiAnJHtsb2NrRmlsZX0nIGFmdGVyICR7dGltZW91dH1zLiBgICtcbiAgICAgICAgICBgT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zdGFudC1jb25kaXRpb25cbiAgICB9IHdoaWxlICh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGJlaGF2aW9yKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIC8vIHdoZXRoZXIgdGhlIGJlaGF2aW9yIHN1Y2NlZWRlZCBvciBub3QsIGdldCByaWQgb2YgdGhlIGxvY2tcbiAgICAgIGF3YWl0IHVubG9jayhsb2NrRmlsZSk7XG4gICAgfVxuICB9O1xuXG4gIGd1YXJkLmNoZWNrID0gYXN5bmMgKCkgPT4gYXdhaXQgY2hlY2sobG9ja0ZpbGUpO1xuXG4gIHJldHVybiBndWFyZDtcbn1cblxuZXhwb3J0IHtcbiAgaGFzVmFsdWUsIGVzY2FwZVNwYWNlLCBlc2NhcGVTcGVjaWFsQ2hhcnMsIGxvY2FsSXAsIGNhbmNlbGxhYmxlRGVsYXksXG4gIG11bHRpUmVzb2x2ZSwgc2FmZUpzb25QYXJzZSwgd3JhcEVsZW1lbnQsIHVud3JhcEVsZW1lbnQsIGZpbHRlck9iamVjdCxcbiAgdG9SZWFkYWJsZVNpemVTdHJpbmcsIGlzU3ViUGF0aCwgVzNDX1dFQl9FTEVNRU5UX0lERU5USUZJRVIsXG4gIGlzU2FtZURlc3RpbmF0aW9uLCBjb21wYXJlVmVyc2lvbnMsIGNvZXJjZVZlcnNpb24sIHF1b3RlLCB1bmxlYWtTdHJpbmcsXG4gIGpzb25TdHJpbmdpZnksIHBsdXJhbGl6ZSwgR2lCLCBNaUIsIEtpQiwgdG9Jbk1lbW9yeUJhc2U2NCxcbiAgdXVpZFYxLCB1dWlkVjMsIHV1aWRWNCwgdXVpZFY1LCBzaGVsbFBhcnNlLCBnZXRMb2NrRmlsZUd1YXJkXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFHQSxNQUFNQSwwQkFBMEIsR0FBRyxxQ0FBbkM7O0FBQ0EsTUFBTUMsR0FBRyxHQUFHLElBQVo7O0FBQ0EsTUFBTUMsR0FBRyxHQUFHRCxHQUFHLEdBQUcsSUFBbEI7O0FBQ0EsTUFBTUUsR0FBRyxHQUFHRCxHQUFHLEdBQUcsSUFBbEI7OztBQUVPLFNBQVNFLFVBQVQsQ0FBcUJDLEdBQXJCLEVBQTBCO0VBQy9CLE9BQU9DLGdCQUFFQyxRQUFGLENBQVdGLEdBQVgsS0FBbUJBLEdBQUcsS0FBSyxFQUFsQztBQUNEOztBQUdELFNBQVNHLFFBQVQsQ0FBbUJILEdBQW5CLEVBQXdCO0VBQ3RCLElBQUlJLE1BQU0sR0FBRyxLQUFiOztFQUVBLElBQUlILGdCQUFFSSxRQUFGLENBQVdMLEdBQVgsQ0FBSixFQUFxQjtJQUNuQkksTUFBTSxHQUFHLENBQUNILGdCQUFFSyxLQUFGLENBQVFOLEdBQVIsQ0FBVjtFQUNELENBRkQsTUFFTztJQUNMSSxNQUFNLEdBQUcsQ0FBQ0gsZ0JBQUVNLFdBQUYsQ0FBY1AsR0FBZCxDQUFELElBQXVCLENBQUNDLGdCQUFFTyxNQUFGLENBQVNSLEdBQVQsQ0FBakM7RUFDRDs7RUFFRCxPQUFPSSxNQUFQO0FBQ0Q7O0FBR0QsU0FBU0ssV0FBVCxDQUFzQkMsR0FBdEIsRUFBMkI7RUFDekIsT0FBT0EsR0FBRyxDQUFDQyxLQUFKLENBQVUsR0FBVixFQUFlQyxJQUFmLENBQW9C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
|