appium-android-driver 5.0.10 → 5.0.13
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/index.js +1 -1
- package/build/lib/android-helpers.js +1 -1
- package/build/lib/bootstrap.js +1 -1
- package/build/lib/commands/actions.js +1 -1
- package/build/lib/commands/alert.js +1 -1
- package/build/lib/commands/app-management.js +1 -1
- package/build/lib/commands/context.js +1 -1
- package/build/lib/commands/coverage.js +1 -1
- package/build/lib/commands/element.js +1 -1
- package/build/lib/commands/emu-console.js +1 -1
- package/build/lib/commands/execute.js +1 -1
- package/build/lib/commands/file-actions.js +1 -1
- package/build/lib/commands/find.js +1 -1
- package/build/lib/commands/general.js +1 -1
- package/build/lib/commands/ime.js +1 -1
- package/build/lib/commands/index.js +1 -1
- package/build/lib/commands/intent.js +1 -1
- package/build/lib/commands/log.js +1 -1
- package/build/lib/commands/network.js +1 -1
- package/build/lib/commands/performance.js +1 -1
- package/build/lib/commands/recordscreen.js +1 -1
- package/build/lib/commands/shell.js +1 -1
- package/build/lib/commands/streamscreen.js +1 -1
- package/build/lib/commands/system-bars.js +1 -1
- package/build/lib/commands/touch.js +1 -1
- package/build/lib/desired-caps.js +1 -1
- package/build/lib/driver.js +1 -1
- package/build/lib/logger.js +1 -1
- package/build/lib/server.js +1 -1
- package/build/lib/uiautomator.js +1 -1
- package/build/lib/unlock-helpers.js +1 -1
- package/build/lib/webview-helpers.js +1 -1
- package/package.json +7 -6
|
@@ -377,4 +377,4 @@ var _default = extensions;
|
|
|
377
377
|
exports.default = _default;require('source-map-support').install();
|
|
378
378
|
|
|
379
379
|
|
|
380
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9hY3Rpb25zLmpzIl0sIm5hbWVzIjpbInN3aXBlU3RlcHNQZXJTZWMiLCJkcmFnU3RlcHNQZXJTZWMiLCJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwia2V5ZXZlbnQiLCJrZXljb2RlIiwibWV0YXN0YXRlIiwibG9nIiwid2FybiIsInByZXNzS2V5Q29kZSIsImJvb3RzdHJhcCIsInNlbmRBY3Rpb24iLCJsb25nUHJlc3NLZXlDb2RlIiwiZ2V0T3JpZW50YXRpb24iLCJwYXJhbXMiLCJuYXR1cmFsT3JpZW50YXRpb24iLCJvcHRzIiwiYW5kcm9pZE5hdHVyYWxPcmllbnRhdGlvbiIsIm9yaWVudGF0aW9uIiwidG9VcHBlckNhc2UiLCJzZXRPcmllbnRhdGlvbiIsImZha2VGbGljayIsInhTcGVlZCIsInlTcGVlZCIsImZha2VGbGlja0VsZW1lbnQiLCJlbGVtZW50SWQiLCJ4b2Zmc2V0IiwieW9mZnNldCIsInNwZWVkIiwic3dpcGUiLCJzdGFydFgiLCJzdGFydFkiLCJlbmRYIiwiZW5kWSIsImR1cmF0aW9uIiwidG91Y2hDb3VudCIsImVsSWQiLCJzd2lwZU9wdHMiLCJzdGVwcyIsIk1hdGgiLCJyb3VuZCIsInV0aWwiLCJoYXNWYWx1ZSIsImRvU3dpcGUiLCJwaW5jaENsb3NlIiwicGVyY2VudCIsInBpbmNoT3B0cyIsImRpcmVjdGlvbiIsInBpbmNoT3BlbiIsImZsaWNrIiwiZWxlbWVudCIsInhPZmZzZXQiLCJ5T2Zmc2V0IiwiZHJhZyIsImRlc3RFbElkIiwiZHJhZ09wdHMiLCJkb0RyYWciLCJsb2NrIiwic2Vjb25kcyIsImFkYiIsImlzTmFOIiwiZmxvYXRTZWNvbmRzIiwicGFyc2VGbG9hdCIsIkIiLCJkZWxheSIsInVubG9jayIsImlzTG9ja2VkIiwiaXNTY3JlZW5Mb2NrZWQiLCJhbmRyb2lkSGVscGVycyIsImNhcHMiLCJvcGVuTm90aWZpY2F0aW9ucyIsInNldExvY2F0aW9uIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJzZW5kVGVsbmV0Q29tbWFuZCIsImZpbmdlcnByaW50IiwiZmluZ2VycHJpbnRJZCIsImlzRW11bGF0b3IiLCJlcnJvckFuZFRocm93Iiwic2VuZFNNUyIsInBob25lTnVtYmVyIiwibWVzc2FnZSIsImdzbUNhbGwiLCJhY3Rpb24iLCJnc21TaWduYWwiLCJzaWduYWxTdHJlbmdoIiwiZ3NtVm9pY2UiLCJzdGF0ZSIsInBvd2VyQUMiLCJwb3dlckNhcGFjaXR5IiwiYmF0dGVyeVBlcmNlbnQiLCJuZXR3b3JrU3BlZWQiLCJzZW5zb3JTZXQiLCJzZW5zb3IiLCJzZW5zb3JUeXBlIiwidmFsdWUiLCJnZXRTY3JlZW5zaG90RGF0YVdpdGhBZGJTaGVsbCIsImxvY2FsRmlsZSIsInRlbXBEaXIiLCJwYXRoIiwicHJlZml4Iiwic3VmZml4IiwiZnMiLCJleGlzdHMiLCJ1bmxpbmsiLCJwbmdEaXIiLCJhbmRyb2lkU2NyZWVuc2hvdFBhdGgiLCJwbmciLCJwb3NpeCIsInJlc29sdmUiLCJjbWQiLCJzaGVsbCIsImZpbGVTaXplIiwiRXJyb3IiLCJwdWxsIiwiamltcCIsInJlYWQiLCJnZXRTY3JlZW5zaG90RGF0YVdpdGhBZGJFeGVjT3V0Iiwic3Rkb3V0Iiwic3RkZXJyIiwiY29kZSIsImV4ZWN1dGFibGUiLCJkZWZhdWx0QXJncyIsImNvbmNhdCIsImVuY29kaW5nIiwiaXNCdWZmZXIiLCJsZW5ndGgiLCJ0b1N0cmluZyIsImdldFNjcmVlbnNob3QiLCJhcGlMZXZlbCIsImdldEFwaUxldmVsIiwiaW1hZ2UiLCJlIiwiaW5mbyIsImVyciIsInNjcmVlbk9yaWVudGF0aW9uIiwiZ2V0U2NyZWVuT3JpZW50YXRpb24iLCJyb3RhdGUiLCJnZXRCdWZmZXIiLCJwcm9taXNpZnkiLCJjb250ZXh0IiwiaW1nQnVmZmVyIiwiTUlNRV9QTkciLCJPYmplY3QiLCJhc3NpZ24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFB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UUFBTVUsU0FBUyxHQUFHLE1BQU1ILFNBQVMsQ0FBQ3ZCLGNBQUsyQixRQUFOLENBQWpDO0FBQ0EsU0FBT0QsU0FBUyxDQUFDZCxRQUFWLENBQW1CLFFBQW5CLENBQVA7QUFDRCxDQW5DRDs7QUFxQ0FnQixNQUFNLENBQUNDLE1BQVAsQ0FBYzdJLFVBQWQsRUFBMEJGLFFBQTFCLEVBQW9DQyxPQUFwQztlQUVlQyxVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFuZHJvaWRIZWxwZXJzIGZyb20gJy4uL2FuZHJvaWQtaGVscGVycyc7XG5pbXBvcnQgeyBmcywgdXRpbCwgdGVtcERpcn0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IGppbXAgZnJvbSAnamltcCc7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcblxuY29uc3Qgc3dpcGVTdGVwc1BlclNlYyA9IDI4O1xuY29uc3QgZHJhZ1N0ZXBzUGVyU2VjID0gNDA7XG5cbmxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuY29tbWFuZHMua2V5ZXZlbnQgPSBhc3luYyBmdW5jdGlvbiBrZXlldmVudCAoa2V5Y29kZSwgbWV0YXN0YXRlID0gbnVsbCkge1xuICAvLyBUT0RPIGRlcHJlY2F0ZSBrZXlldmVudDsgY3VycmVudGx5IHdkIG9ubHkgaW1wbGVtZW50cyBrZXlldmVudFxuICB0aGlzLmxvZy53YXJuKCdrZXlldmVudCB3aWxsIGJlIGRlcHJlY2F0ZWQgdXNlIHByZXNzS2V5Q29kZScpO1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcmVzc0tleUNvZGUoa2V5Y29kZSwgbWV0YXN0YXRlKTtcbn07XG5cbmNvbW1hbmRzLnByZXNzS2V5Q29kZSA9IGFzeW5jIGZ1bmN0aW9uIHByZXNzS2V5Q29kZSAoa2V5Y29kZSwgbWV0YXN0YXRlID0gbnVsbCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbigncHJlc3NLZXlDb2RlJywge2tleWNvZGUsIG1ldGFzdGF0ZX0pO1xufTtcblxuY29tbWFuZHMubG9uZ1ByZXNzS2V5Q29kZSA9IGFzeW5jIGZ1bmN0aW9uIGxvbmdQcmVzc0tleUNvZGUgKGtleWNvZGUsIG1ldGFzdGF0ZSA9IG51bGwpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2xvbmdQcmVzc0tleUNvZGUnLCB7a2V5Y29kZSwgbWV0YXN0YXRlfSk7XG59O1xuXG5jb21tYW5kcy5nZXRPcmllbnRhdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIGdldE9yaWVudGF0aW9uICgpIHtcbiAgbGV0IHBhcmFtcyA9IHtcbiAgICBuYXR1cmFsT3JpZW50YXRpb246ICEhdGhpcy5vcHRzLmFuZHJvaWROYXR1cmFsT3JpZW50YXRpb24sXG4gIH07XG4gIGxldCBvcmllbnRhdGlvbiA9IGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ29yaWVudGF0aW9uJywgcGFyYW1zKTtcbiAgcmV0dXJuIG9yaWVudGF0aW9uLnRvVXBwZXJDYXNlKCk7XG59O1xuXG5jb21tYW5kcy5zZXRPcmllbnRhdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIHNldE9yaWVudGF0aW9uIChvcmllbnRhdGlvbikge1xuICBvcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uLnRvVXBwZXJDYXNlKCk7XG4gIGxldCBwYXJhbXMgPSB7XG4gICAgb3JpZW50YXRpb24sXG4gICAgbmF0dXJhbE9yaWVudGF0aW9uOiAhIXRoaXMub3B0cy5hbmRyb2lkTmF0dXJhbE9yaWVudGF0aW9uLFxuICB9O1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignb3JpZW50YXRpb24nLCBwYXJhbXMpO1xufTtcblxuY29tbWFuZHMuZmFrZUZsaWNrID0gYXN5bmMgZnVuY3Rpb24gZmFrZUZsaWNrICh4U3BlZWQsIHlTcGVlZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZmxpY2snLCB7eFNwZWVkLCB5U3BlZWR9KTtcbn07XG5cbmNvbW1hbmRzLmZha2VGbGlja0VsZW1lbnQgPSBhc3luYyBmdW5jdGlvbiBmYWtlRmxpY2tFbGVtZW50IChlbGVtZW50SWQsIHhvZmZzZXQsIHlvZmZzZXQsIHNwZWVkKSB7XG4gIGxldCBwYXJhbXMgPSB7eG9mZnNldCwgeW9mZnNldCwgc3BlZWQsIGVsZW1lbnRJZH07XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OmZsaWNrJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLnN3aXBlID0gYXN5bmMgZnVuY3Rpb24gc3dpcGUgKHN0YXJ0WCwgc3RhcnRZLCBlbmRYLCBlbmRZLCBkdXJhdGlvbiwgdG91Y2hDb3VudCwgZWxJZCkge1xuICBpZiAoc3RhcnRYID09PSAnbnVsbCcpIHtcbiAgICBzdGFydFggPSAwLjU7XG4gIH1cbiAgaWYgKHN0YXJ0WSA9PT0gJ251bGwnKSB7XG4gICAgc3RhcnRZID0gMC41O1xuICB9XG4gIGxldCBzd2lwZU9wdHMgPSB7c3RhcnRYLCBzdGFydFksIGVuZFgsIGVuZFksXG4gICAgICAgICAgICAgICAgICAgc3RlcHM6IE1hdGgucm91bmQoZHVyYXRpb24gKiBzd2lwZVN0ZXBzUGVyU2VjKX07XG4gIC8vIGdvaW5nIHRoZSBsb25nIHdheSBhbmQgY2hlY2tpbmcgZm9yIHVuZGVmaW5lZCBhbmQgbnVsbCBzaW5jZVxuICAvLyB3ZSBjYW4ndCBiZSBhc3N1cmVkIGBlbElkYCBpcyBhIHN0cmluZyBhbmQgbm90IGFuIGludFxuICBpZiAodXRpbC5oYXNWYWx1ZShlbElkKSkge1xuICAgIHN3aXBlT3B0cy5lbGVtZW50SWQgPSBlbElkO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzLmRvU3dpcGUoc3dpcGVPcHRzKTtcbn07XG5cbmNvbW1hbmRzLmRvU3dpcGUgPSBhc3luYyBmdW5jdGlvbiBkb1N3aXBlIChzd2lwZU9wdHMpIHtcbiAgaWYgKHV0aWwuaGFzVmFsdWUoc3dpcGVPcHRzLmVsZW1lbnRJZCkpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDpzd2lwZScsIHN3aXBlT3B0cyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ3N3aXBlJywgc3dpcGVPcHRzKTtcbiAgfVxufTtcblxuY29tbWFuZHMucGluY2hDbG9zZSA9IGFzeW5jIGZ1bmN0aW9uIHBpbmNoQ2xvc2UgKHN0YXJ0WCwgc3RhcnRZLCBlbmRYLCBlbmRZLCBkdXJhdGlvbiwgcGVyY2VudCwgc3RlcHMsIGVsSWQpIHtcbiAgbGV0IHBpbmNoT3B0cyA9IHtcbiAgICBkaXJlY3Rpb246ICdpbicsXG4gICAgZWxlbWVudElkOiBlbElkLFxuICAgIHBlcmNlbnQsXG4gICAgc3RlcHNcbiAgfTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6cGluY2gnLCBwaW5jaE9wdHMpO1xufTtcblxuY29tbWFuZHMucGluY2hPcGVuID0gYXN5bmMgZnVuY3Rpb24gcGluY2hPcGVuIChzdGFydFgsIHN0YXJ0WSwgZW5kWCwgZW5kWSwgZHVyYXRpb24sIHBlcmNlbnQsIHN0ZXBzLCBlbElkKSB7XG4gIGxldCBwaW5jaE9wdHMgPSB7ZGlyZWN0aW9uOiAnb3V0JywgZWxlbWVudElkOiBlbElkLCBwZXJjZW50LCBzdGVwc307XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OnBpbmNoJywgcGluY2hPcHRzKTtcbn07XG5cbmNvbW1hbmRzLmZsaWNrID0gYXN5bmMgZnVuY3Rpb24gZmxpY2sgKGVsZW1lbnQsIHhTcGVlZCwgeVNwZWVkLCB4T2Zmc2V0LCB5T2Zmc2V0LCBzcGVlZCkge1xuICBpZiAoZWxlbWVudCkge1xuICAgIGF3YWl0IHRoaXMuZmFrZUZsaWNrRWxlbWVudChlbGVtZW50LCB4T2Zmc2V0LCB5T2Zmc2V0LCBzcGVlZCk7XG4gIH0gZWxzZSB7XG4gICAgYXdhaXQgdGhpcy5mYWtlRmxpY2soeFNwZWVkLCB5U3BlZWQpO1xuICB9XG59O1xuXG5jb21tYW5kcy5kcmFnID0gYXN5bmMgZnVuY3Rpb24gZHJhZyAoc3RhcnRYLCBzdGFydFksIGVuZFgsIGVuZFksIGR1cmF0aW9uLCB0b3VjaENvdW50LCBlbGVtZW50SWQsIGRlc3RFbElkKSB7XG4gIGxldCBkcmFnT3B0cyA9IHtcbiAgICBlbGVtZW50SWQsIGRlc3RFbElkLCBzdGFydFgsIHN0YXJ0WSwgZW5kWCwgZW5kWSxcbiAgICBzdGVwczogTWF0aC5yb3VuZChkdXJhdGlvbiAqIGRyYWdTdGVwc1BlclNlYylcbiAgfTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZG9EcmFnKGRyYWdPcHRzKTtcblxufTtcblxuY29tbWFuZHMuZG9EcmFnID0gYXN5bmMgZnVuY3Rpb24gZG9EcmFnIChkcmFnT3B0cykge1xuICBpZiAodXRpbC5oYXNWYWx1ZShkcmFnT3B0cy5lbGVtZW50SWQpKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6ZHJhZycsIGRyYWdPcHRzKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZHJhZycsIGRyYWdPcHRzKTtcbiAgfVxufTtcblxuY29tbWFuZHMubG9jayA9IGFzeW5jIGZ1bmN0aW9uIGxvY2sgKHNlY29uZHMpIHtcbiAgYXdhaXQgdGhpcy5hZGIubG9jaygpO1xuICBpZiAoaXNOYU4oc2Vjb25kcykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBmbG9hdFNlY29uZHMgPSBwYXJzZUZsb2F0KHNlY29uZHMpO1xuICBpZiAoZmxvYXRTZWNvbmRzIDw9IDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgYXdhaXQgQi5kZWxheSgxMDAwICogZmxvYXRTZWNvbmRzKTtcbiAgYXdhaXQgdGhpcy51bmxvY2soKTtcbn07XG5cbmNvbW1hbmRzLmlzTG9ja2VkID0gYXN5bmMgZnVuY3Rpb24gaXNMb2NrZWQgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5hZGIuaXNTY3JlZW5Mb2NrZWQoKTtcbn07XG5cbmNvbW1hbmRzLnVubG9jayA9IGFzeW5jIGZ1bmN0aW9uIHVubG9jayAoKSB7XG4gIHJldHVybiBhd2FpdCBhbmRyb2lkSGVscGVycy51bmxvY2sodGhpcywgdGhpcy5hZGIsIHRoaXMuY2Fwcyk7XG59O1xuXG5jb21tYW5kcy5vcGVuTm90aWZpY2F0aW9ucyA9IGFzeW5jIGZ1bmN0aW9uIG9wZW5Ob3RpZmljYXRpb25zICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ29wZW5Ob3RpZmljYXRpb24nKTtcbn07XG5cbmNvbW1hbmRzLnNldExvY2F0aW9uID0gYXN5bmMgZnVuY3Rpb24gc2V0TG9jYXRpb24gKGxhdGl0dWRlLCBsb25naXR1ZGUpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYWRiLnNlbmRUZWxuZXRDb21tYW5kKGBnZW8gZml4ICR7bG9uZ2l0dWRlfSAke2xhdGl0dWRlfWApO1xufTtcblxuY29tbWFuZHMuZmluZ2VycHJpbnQgPSBhc3luYyBmdW5jdGlvbiBmaW5nZXJwcmludCAoZmluZ2VycHJpbnRJZCkge1xuICBpZiAoIXRoaXMuaXNFbXVsYXRvcigpKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygnZmluZ2VycHJpbnQgbWV0aG9kIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBlbXVsYXRvcnMnKTtcbiAgfVxuICBhd2FpdCB0aGlzLmFkYi5maW5nZXJwcmludChmaW5nZXJwcmludElkKTtcbn07XG5cbmNvbW1hbmRzLnNlbmRTTVMgPSBhc3luYyBmdW5jdGlvbiBzZW5kU01TIChwaG9uZU51bWJlciwgbWVzc2FnZSkge1xuICBpZiAoIXRoaXMuaXNFbXVsYXRvcigpKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygnc2VuZFNNUyBtZXRob2QgaXMgb25seSBhdmFpbGFibGUgZm9yIGVtdWxhdG9ycycpO1xuICB9XG4gIGF3YWl0IHRoaXMuYWRiLnNlbmRTTVMocGhvbmVOdW1iZXIsIG1lc3NhZ2UpO1xufTtcblxuY29tbWFuZHMuZ3NtQ2FsbCA9IGFzeW5jIGZ1bmN0aW9uIGdzbUNhbGwgKHBob25lTnVtYmVyLCBhY3Rpb24pIHtcbiAgaWYgKCF0aGlzLmlzRW11bGF0b3IoKSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coJ2dzbUNhbGwgbWV0aG9kIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBlbXVsYXRvcnMnKTtcbiAgfVxuICBhd2FpdCB0aGlzLmFkYi5nc21DYWxsKHBob25lTnVtYmVyLCBhY3Rpb24pO1xufTtcblxuY29tbWFuZHMuZ3NtU2lnbmFsID0gYXN5bmMgZnVuY3Rpb24gZ3NtU2lnbmFsIChzaWduYWxTdHJlbmdoKSB7XG4gIGlmICghdGhpcy5pc0VtdWxhdG9yKCkpIHtcbiAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KCdnc21TaWduYWwgbWV0aG9kIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBlbXVsYXRvcnMnKTtcbiAgfVxuICBhd2FpdCB0aGlzLmFkYi5nc21TaWduYWwoc2lnbmFsU3RyZW5naCk7XG59O1xuXG5jb21tYW5kcy5nc21Wb2ljZSA9IGFzeW5jIGZ1bmN0aW9uIGdzbVZvaWNlIChzdGF0ZSkge1xuICBpZiAoIXRoaXMuaXNFbXVsYXRvcigpKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygnZ3NtVm9pY2UgbWV0aG9kIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBlbXVsYXRvcnMnKTtcbiAgfVxuICBhd2FpdCB0aGlzLmFkYi5nc21Wb2ljZShzdGF0ZSk7XG59O1xuXG5jb21tYW5kcy5wb3dlckFDID0gYXN5bmMgZnVuY3Rpb24gcG93ZXJBQyAoc3RhdGUpIHtcbiAgaWYgKCF0aGlzLmlzRW11bGF0b3IoKSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coJ3Bvd2VyQUMgbWV0aG9kIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBlbXVsYXRvcnMnKTtcbiAgfVxuICBhd2FpdCB0aGlzLmFkYi5wb3dlckFDKHN0YXRlKTtcbn07XG5cbmNvbW1hbmRzLnBvd2VyQ2FwYWNpdHkgPSBhc3luYyBmdW5jdGlvbiBwb3dlckNhcGFjaXR5IChiYXR0ZXJ5UGVyY2VudCkge1xuICBpZiAoIXRoaXMuaXNFbXVsYXRvcigpKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygncG93ZXJDYXBhY2l0eSBtZXRob2QgaXMgb25seSBhdmFpbGFibGUgZm9yIGVtdWxhdG9ycycpO1xuICB9XG4gIGF3YWl0IHRoaXMuYWRiLnBvd2VyQ2FwYWNpdHkoYmF0dGVyeVBlcmNlbnQpO1xufTtcblxuY29tbWFuZHMubmV0d29ya1NwZWVkID0gYXN5bmMgZnVuY3Rpb24gbmV0d29ya1NwZWVkIChuZXR3b3JrU3BlZWQpIHtcbiAgaWYgKCF0aGlzLmlzRW11bGF0b3IoKSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coJ25ldHdvcmtTcGVlZCBtZXRob2QgaXMgb25seSBhdmFpbGFibGUgZm9yIGVtdWxhdG9ycycpO1xuICB9XG4gIGF3YWl0IHRoaXMuYWRiLm5ldHdvcmtTcGVlZChuZXR3b3JrU3BlZWQpO1xufTtcblxuLyoqXG4gKiBFbXVsYXRlIHNlbnNvcnMgdmFsdWVzIG9uIHRoZSBjb25uZWN0ZWQgZW11bGF0b3IuXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gU2Vuc29yXG4gKiBAcHJvcGVydHkge3N0cmluZ30gc2Vuc29yVHlwZSAtIHNlbnNvciB0eXBlIGRlY2xhcmVkIGluIGFkYi5TRU5TT1JTXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdmFsdWUgLSB2YWx1ZSB0byBzZXQgdG8gdGhlIHNlbnNvclxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBTZW5zb3JcbiAqIEB0aHJvd3Mge0Vycm9yfSAtIElmIHNlbnNvclR5cGUgaXMgbm90IGRlZmluZWRcbiAqIEB0aHJvd3Mge0Vycm9yfSAtIElmIHZhbHVlIGZvciB0aGUgc2Ugc29yIGlzIG5vdCBkZWZpbmVkXG4gKiBAdGhyb3dzIHtFcnJvcn0gLSBJZiBkZXZpY2VUeXBlIGlzIG5vdCBhbiBlbXVsYXRvclxuICovXG5jb21tYW5kcy5zZW5zb3JTZXQgPSBhc3luYyBmdW5jdGlvbiBzZW5zb3JTZXQgKHNlbnNvciA9IHt9KSB7XG4gIGNvbnN0IHtzZW5zb3JUeXBlLCB2YWx1ZX0gPSBzZW5zb3I7XG4gIGlmICghdXRpbC5oYXNWYWx1ZShzZW5zb3JUeXBlKSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYCdzZW5zb3JUeXBlJyBhcmd1bWVudCBpcyByZXF1aXJlZGApO1xuICB9XG4gIGlmICghdXRpbC5oYXNWYWx1ZSh2YWx1ZSkpIHtcbiAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGAndmFsdWUnIGFyZ3VtZW50IGlzIHJlcXVpcmVkYCk7XG4gIH1cbiAgaWYgKCF0aGlzLmlzRW11bGF0b3IoKSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coJ3NlbnNvclNldCBtZXRob2QgaXMgb25seSBhdmFpbGFibGUgZm9yIGVtdWxhdG9ycycpO1xuICB9XG4gIGF3YWl0IHRoaXMuYWRiLnNlbnNvclNldChzZW5zb3JUeXBlLCB2YWx1ZSk7XG59O1xuXG5oZWxwZXJzLmdldFNjcmVlbnNob3REYXRhV2l0aEFkYlNoZWxsID0gYXN5bmMgZnVuY3Rpb24gZ2V0U2NyZWVuc2hvdERhdGFXaXRoQWRiU2hlbGwgKGFkYiwgb3B0cykge1xuICBjb25zdCBsb2NhbEZpbGUgPSBhd2FpdCB0ZW1wRGlyLnBhdGgoe3ByZWZpeDogJ2FwcGl1bScsIHN1ZmZpeDogJy5wbmcnfSk7XG4gIGlmIChhd2FpdCBmcy5leGlzdHMobG9jYWxGaWxlKSkge1xuICAgIGF3YWl0IGZzLnVubGluayhsb2NhbEZpbGUpO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgcG5nRGlyID0gb3B0cy5hbmRyb2lkU2NyZWVuc2hvdFBhdGggfHwgJy9kYXRhL2xvY2FsL3RtcC8nO1xuICAgIGNvbnN0IHBuZyA9IHBhdGgucG9zaXgucmVzb2x2ZShwbmdEaXIsICdzY3JlZW5zaG90LnBuZycpO1xuICAgIGNvbnN0IGNtZCA9IFsnL3N5c3RlbS9iaW4vcm0nLCBgJHtwbmd9O2AsICcvc3lzdGVtL2Jpbi9zY3JlZW5jYXAnLCAnLXAnLCBwbmddO1xuICAgIGF3YWl0IGFkYi5zaGVsbChjbWQpO1xuICAgIGlmICghYXdhaXQgYWRiLmZpbGVTaXplKHBuZykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHNpemUgb2YgdGhlIHRha2VuIHNjcmVlbnNob3QgZXF1YWxzIHRvIHplcm8uJyk7XG4gICAgfVxuICAgIGF3YWl0IGFkYi5wdWxsKHBuZywgbG9jYWxGaWxlKTtcbiAgICByZXR1cm4gYXdhaXQgamltcC5yZWFkKGxvY2FsRmlsZSk7XG4gIH0gZmluYWxseSB7XG4gICAgaWYgKGF3YWl0IGZzLmV4aXN0cyhsb2NhbEZpbGUpKSB7XG4gICAgICBhd2FpdCBmcy51bmxpbmsobG9jYWxGaWxlKTtcbiAgICB9XG4gIH1cbn07XG5cbmhlbHBlcnMuZ2V0U2NyZWVuc2hvdERhdGFXaXRoQWRiRXhlY091dCA9IGFzeW5jIGZ1bmN0aW9uIGdldFNjcmVlbnNob3REYXRhV2l0aEFkYkV4ZWNPdXQgKGFkYikge1xuICBsZXQge3N0ZG91dCwgc3RkZXJyLCBjb2RlfSA9IGF3YWl0IGV4ZWMoYWRiLmV4ZWN1dGFibGUucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkYi5leGVjdXRhYmxlLmRlZmF1bHRBcmdzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb25jYXQoWydleGVjLW91dCcsICcvc3lzdGVtL2Jpbi9zY3JlZW5jYXAnLCAnLXAnXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZW5jb2Rpbmc6ICdiaW5hcnknLCBpc0J1ZmZlcjogdHJ1ZX0pO1xuICAvLyBpZiB0aGVyZSBpcyBhbiBlcnJvciwgdGhyb3dcbiAgaWYgKGNvZGUgfHwgc3RkZXJyLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU2NyZWVuc2hvdCByZXR1cm5lZCBlcnJvciwgY29kZTogJyR7Y29kZX0nLCBzdGRlcnI6ICcke3N0ZGVyci50b1N0cmluZygpfSdgKTtcbiAgfVxuICAvLyBpZiB3ZSBkb24ndCBnZXQgYW55dGhpbmcgYXQgYWxsLCB0aHJvd1xuICBpZiAoIXN0ZG91dC5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NjcmVlbnNob3QgcmV0dXJuZWQgbm8gZGF0YScpO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGppbXAucmVhZChzdGRvdXQpO1xufTtcblxuY29tbWFuZHMuZ2V0U2NyZWVuc2hvdCA9IGFzeW5jIGZ1bmN0aW9uIGdldFNjcmVlbnNob3QgKCkge1xuICBjb25zdCBhcGlMZXZlbCA9IGF3YWl0IHRoaXMuYWRiLmdldEFwaUxldmVsKCk7XG4gIGxldCBpbWFnZSA9IG51bGw7XG4gIGlmIChhcGlMZXZlbCA+IDIwKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFRoaXMgc2NyZWVuc2hvdGluZyBhcHByb2FjaCBpcyB3YXkgZmFzdGVyLCBzaW5jZSBpdCByZXF1aXJlcyBsZXNzIGV4dGVybmFsIGNvbW1hbmRzXG4gICAgICAvLyB0byBiZSBleGVjdXRlZC4gVW5mb3J0dW5hdGVseSwgZXhlYy1vdXQgb3B0aW9uIGlzIG9ubHkgc3VwcG9ydGVkIGJ5IG5ld2VyIEFuZHJvaWQvU0RLIHZlcnNpb25zICg1LjAgYW5kIGxhdGVyKVxuICAgICAgaW1hZ2UgPSBhd2FpdCB0aGlzLmdldFNjcmVlbnNob3REYXRhV2l0aEFkYkV4ZWNPdXQodGhpcy5hZGIpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nLmluZm8oYENhbm5vdCBnZXQgc2NyZWVuc2hvdCBkYXRhIHdpdGggJ2FkYiBleGVjLW91dCcgYmVjYXVzZSBvZiAnJHtlLm1lc3NhZ2V9Jy4gYCArXG4gICAgICAgIGBEZWZhdWx0aW5nIHRvICdhZGIgc2hlbGwnIGNhbGxgKTtcbiAgICB9XG4gIH1cbiAgaWYgKCFpbWFnZSkge1xuICAgIHRyeSB7XG4gICAgICBpbWFnZSA9IGF3YWl0IHRoaXMuZ2V0U2NyZWVuc2hvdERhdGFXaXRoQWRiU2hlbGwodGhpcy5hZGIsIHRoaXMub3B0cyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc3QgZXJyID0gYENhbm5vdCBnZXQgc2NyZWVuc2hvdCBkYXRhIGJlY2F1c2Ugb2YgJyR7ZS5tZXNzYWdlfScuIGAgK1xuICAgICAgICBgTWFrZSBzdXJlIHRoZSAnTGF5b3V0UGFyYW1zLkZMQUdfU0VDVVJFJyBpcyBub3Qgc2V0IGZvciBgICtcbiAgICAgICAgYHRoZSBjdXJyZW50IHZpZXdgO1xuICAgICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhlcnIpO1xuICAgIH1cbiAgfVxuICBpZiAoYXBpTGV2ZWwgPCAyMykge1xuICAgIC8vIEFuZHJvaWQgYnVnIDg0MzM3NDIgLSByb3RhdGUgc2NyZWVuc2hvdCBpZiBzY3JlZW4gaXMgcm90YXRlZFxuICAgIGxldCBzY3JlZW5PcmllbnRhdGlvbiA9IGF3YWl0IHRoaXMuYWRiLmdldFNjcmVlbk9yaWVudGF0aW9uKCk7XG4gICAgdHJ5IHtcbiAgICAgIGltYWdlID0gYXdhaXQgaW1hZ2Uucm90YXRlKC05MCAqIHNjcmVlbk9yaWVudGF0aW9uKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMubG9nLndhcm4oYENvdWxkIG5vdCByb3RhdGUgc2NyZWVuc2hvdCBkdWUgdG8gZXJyb3I6ICR7ZXJyfWApO1xuICAgIH1cbiAgfVxuICBjb25zdCBnZXRCdWZmZXIgPSBCLnByb21pc2lmeShpbWFnZS5nZXRCdWZmZXIsIHtjb250ZXh0OiBpbWFnZX0pO1xuICBjb25zdCBpbWdCdWZmZXIgPSBhd2FpdCBnZXRCdWZmZXIoamltcC5NSU1FX1BORyk7XG4gIHJldHVybiBpbWdCdWZmZXIudG9TdHJpbmcoJ2Jhc2U2NCcpO1xufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcywgaGVscGVycyk7XG5leHBvcnQgeyBjb21tYW5kcywgaGVscGVycyB9O1xuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJmaWxlIjoibGliL2NvbW1hbmRzL2FjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
|
380
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2FjdGlvbnMuanMiLCJuYW1lcyI6WyJzd2lwZVN0ZXBzUGVyU2VjIiwiZHJhZ1N0ZXBzUGVyU2VjIiwiY29tbWFuZHMiLCJoZWxwZXJzIiwiZXh0ZW5zaW9ucyIsImtleWV2ZW50Iiwia2V5Y29kZSIsIm1ldGFzdGF0ZSIsImxvZyIsIndhcm4iLCJwcmVzc0tleUNvZGUiLCJib290c3RyYXAiLCJzZW5kQWN0aW9uIiwibG9uZ1ByZXNzS2V5Q29kZSIsImdldE9yaWVudGF0aW9uIiwicGFyYW1zIiwibmF0dXJhbE9yaWVudGF0aW9uIiwib3B0cyIsImFuZHJvaWROYXR1cmFsT3JpZW50YXRpb24iLCJvcmllbnRhdGlvbiIsInRvVXBwZXJDYXNlIiwic2V0T3JpZW50YXRpb24iLCJmYWtlRmxpY2siLCJ4U3BlZWQiLCJ5U3BlZWQiLCJmYWtlRmxpY2tFbGVtZW50IiwiZWxlbWVudElkIiwieG9mZnNldCIsInlvZmZzZXQiLCJzcGVlZCIsInN3aXBlIiwic3RhcnRYIiwic3RhcnRZIiwiZW5kWCIsImVuZFkiLCJkdXJhdGlvbiIsInRvdWNoQ291bnQiLCJlbElkIiwic3dpcGVPcHRzIiwic3RlcHMiLCJNYXRoIiwicm91bmQiLCJ1dGlsIiwiaGFzVmFsdWUiLCJkb1N3aXBlIiwicGluY2hDbG9zZSIsInBlcmNlbnQiLCJwaW5jaE9wdHMiLCJkaXJlY3Rpb24iLCJwaW5jaE9wZW4iLCJmbGljayIsImVsZW1lbnQiLCJ4T2Zmc2V0IiwieU9mZnNldCIsImRyYWciLCJkZXN0RWxJZCIsImRyYWdPcHRzIiwiZG9EcmFnIiwibG9jayIsInNlY29uZHMiLCJhZGIiLCJpc05hTiIsImZsb2F0U2Vjb25kcyIsInBhcnNlRmxvYXQiLCJCIiwiZGVsYXkiLCJ1bmxvY2siLCJpc0xvY2tlZCIsImlzU2NyZWVuTG9ja2VkIiwiYW5kcm9pZEhlbHBlcnMiLCJjYXBzIiwib3Blbk5vdGlmaWNhdGlvbnMiLCJzZXRMb2NhdGlvbiIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwic2VuZFRlbG5ldENvbW1hbmQiLCJmaW5nZXJwcmludCIsImZpbmdlcnByaW50SWQiLCJpc0VtdWxhdG9yIiwiZXJyb3JBbmRUaHJvdyIsInNlbmRTTVMiLCJwaG9uZU51bWJlciIsIm1lc3NhZ2UiLCJnc21DYWxsIiwiYWN0aW9uIiwiZ3NtU2lnbmFsIiwic2lnbmFsU3RyZW5naCIsImdzbVZvaWNlIiwic3RhdGUiLCJwb3dlckFDIiwicG93ZXJDYXBhY2l0eSIsImJhdHRlcnlQZXJjZW50IiwibmV0d29ya1NwZWVkIiwic2Vuc29yU2V0Iiwic2Vuc29yIiwic2Vuc29yVHlwZSIsInZhbHVlIiwiZ2V0U2NyZWVuc2hvdERhdGFXaXRoQWRiU2hlbGwiLCJsb2NhbEZpbGUiLCJ0ZW1wRGlyIiwicGF0aCIsInByZWZpeCIsInN1ZmZpeCIsImZzIiwiZXhpc3RzIiwidW5saW5rIiwicG5nRGlyIiwiYW5kcm9pZFNjcmVlbnNob3RQYXRoIiwicG5nIiwicG9zaXgiLCJyZXNvbHZlIiwiY21kIiwic2hlbGwiLCJmaWxlU2l6ZSIsIkVycm9yIiwicHVsbCIsImppbXAiLCJyZWFkIiwiZ2V0U2NyZWVuc2hvdERhdGFXaXRoQWRiRXhlY091dCIsInN0ZG91dCIsInN0ZGVyciIsImNvZGUiLCJleGVjdXRhYmxlIiwiZGVmYXVsdEFyZ3MiLCJjb25jYXQiLCJlbmNvZGluZyIsImlzQnVmZmVyIiwibGVuZ3RoIiwidG9TdHJpbmciLCJnZXRTY3JlZW5zaG90IiwiYXBpTGV2ZWwiLCJnZXRBcGlMZXZlbCIsImltYWdlIiwiZSIsImluZm8iLCJlcnIiLCJzY3JlZW5PcmllbnRhdGlvbiIsImdldFNjcmVlbk9yaWVudGF0aW9uIiwicm90YXRlIiwiZ2V0QnVmZmVyIiwicHJvbWlzaWZ5IiwiY29udGV4dCIsImltZ0J1ZmZlciIsIk1JTUVfUE5HIiwiT2JqZWN0IiwiYXNzaWduIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL2FjdGlvbnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFuZHJvaWRIZWxwZXJzIGZyb20gJy4uL2FuZHJvaWQtaGVscGVycyc7XG5pbXBvcnQgeyBmcywgdXRpbCwgdGVtcERpcn0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IGppbXAgZnJvbSAnamltcCc7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcblxuY29uc3Qgc3dpcGVTdGVwc1BlclNlYyA9IDI4O1xuY29uc3QgZHJhZ1N0ZXBzUGVyU2VjID0gNDA7XG5cbmxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuY29tbWFuZHMua2V5ZXZlbnQgPSBhc3luYyBmdW5jdGlvbiBrZXlldmVudCAoa2V5Y29kZSwgbWV0YXN0YXRlID0gbnVsbCkge1xuICAvLyBUT0RPIGRlcHJlY2F0ZSBrZXlldmVudDsgY3VycmVudGx5IHdkIG9ubHkgaW1wbGVtZW50cyBrZXlldmVudFxuICB0aGlzLmxvZy53YXJuKCdrZXlldmVudCB3aWxsIGJlIGRlcHJlY2F0ZWQgdXNlIHByZXNzS2V5Q29kZScpO1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcmVzc0tleUNvZGUoa2V5Y29kZSwgbWV0YXN0YXRlKTtcbn07XG5cbmNvbW1hbmRzLnByZXNzS2V5Q29kZSA9IGFzeW5jIGZ1bmN0aW9uIHByZXNzS2V5Q29kZSAoa2V5Y29kZSwgbWV0YXN0YXRlID0gbnVsbCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbigncHJlc3NLZXlDb2RlJywge2tleWNvZGUsIG1ldGFzdGF0ZX0pO1xufTtcblxuY29tbWFuZHMubG9uZ1ByZXNzS2V5Q29kZSA9IGFzeW5jIGZ1bmN0aW9uIGxvbmdQcmVzc0tleUNvZGUgKGtleWNvZGUsIG1ldGFzdGF0ZSA9IG51bGwpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2xvbmdQcmVzc0tleUNvZGUnLCB7a2V5Y29kZSwgbWV0YXN0YXRlfSk7XG59O1xuXG5jb21tYW5kcy5nZXRPcmllbnRhdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIGdldE9yaWVudGF0aW9uICgpIHtcbiAgbGV0IHBhcmFtcyA9IHtcbiAgICBuYXR1cmFsT3JpZW50YXRpb246ICEhdGhpcy5vcHRzLmFuZHJvaWROYXR1cmFsT3JpZW50YXRpb24sXG4gIH07XG4gIGxldCBvcmllbnRhdGlvbiA9IGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ29yaWVudGF0aW9uJywgcGFyYW1zKTtcbiAgcmV0dXJuIG9yaWVudGF0aW9uLnRvVXBwZXJDYXNlKCk7XG59O1xuXG5jb21tYW5kcy5zZXRPcmllbnRhdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIHNldE9yaWVudGF0aW9uIChvcmllbnRhdGlvbikge1xuICBvcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uLnRvVXBwZXJDYXNlKCk7XG4gIGxldCBwYXJhbXMgPSB7XG4gICAgb3JpZW50YXRpb24sXG4gICAgbmF0dXJhbE9yaWVudGF0aW9uOiAhIXRoaXMub3B0cy5hbmRyb2lkTmF0dXJhbE9yaWVudGF0aW9uLFxuICB9O1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignb3JpZW50YXRpb24nLCBwYXJhbXMpO1xufTtcblxuY29tbWFuZHMuZmFrZUZsaWNrID0gYXN5bmMgZnVuY3Rpb24gZmFrZUZsaWNrICh4U3BlZWQsIHlTcGVlZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZmxpY2snLCB7eFNwZWVkLCB5U3BlZWR9KTtcbn07XG5cbmNvbW1hbmRzLmZha2VGbGlja0VsZW1lbnQgPSBhc3luYyBmdW5jdGlvbiBmYWtlRmxpY2tFbGVtZW50IChlbGVtZW50SWQsIHhvZmZzZXQsIHlvZmZzZXQsIHNwZWVkKSB7XG4gIGxldCBwYXJhbXMgPSB7eG9mZnNldCwgeW9mZnNldCwgc3BlZWQsIGVsZW1lbnRJZH07XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OmZsaWNrJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLnN3aXBlID0gYXN5bmMgZnVuY3Rpb24gc3dpcGUgKHN0YXJ0WCwgc3RhcnRZLCBlbmRYLCBlbmRZLCBkdXJhdGlvbiwgdG91Y2hDb3VudCwgZWxJZCkge1xuICBpZiAoc3RhcnRYID09PSAnbnVsbCcpIHtcbiAgICBzdGFydFggPSAwLjU7XG4gIH1cbiAgaWYgKHN0YXJ0WSA9PT0gJ251bGwnKSB7XG4gICAgc3RhcnRZID0gMC41O1xuICB9XG4gIGxldCBzd2lwZU9wdHMgPSB7c3RhcnRYLCBzdGFydFksIGVuZFgsIGVuZFksXG4gICAgICAgICAgICAgICAgICAgc3RlcHM6IE1hdGgucm91bmQoZHVyYXRpb24gKiBzd2lwZVN0ZXBzUGVyU2VjKX07XG4gIC8vIGdvaW5nIHRoZSBsb25nIHdheSBhbmQgY2hlY2tpbmcgZm9yIHVuZGVmaW5lZCBhbmQgbnVsbCBzaW5jZVxuICAvLyB3ZSBjYW4ndCBiZSBhc3N1cmVkIGBlbElkYCBpcyBhIHN0cmluZyBhbmQgbm90IGFuIGludFxuICBpZiAodXRpbC5oYXNWYWx1ZShlbElkKSkge1xuICAgIHN3aXBlT3B0cy5lbGVtZW50SWQgPSBlbElkO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzLmRvU3dpcGUoc3dpcGVPcHRzKTtcbn07XG5cbmNvbW1hbmRzLmRvU3dpcGUgPSBhc3luYyBmdW5jdGlvbiBkb1N3aXBlIChzd2lwZU9wdHMpIHtcbiAgaWYgKHV0aWwuaGFzVmFsdWUoc3dpcGVPcHRzLmVsZW1lbnRJZCkpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDpzd2lwZScsIHN3aXBlT3B0cyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ3N3aXBlJywgc3dpcGVPcHRzKTtcbiAgfVxufTtcblxuY29tbWFuZHMucGluY2hDbG9zZSA9IGFzeW5jIGZ1bmN0aW9uIHBpbmNoQ2xvc2UgKHN0YXJ0WCwgc3RhcnRZLCBlbmRYLCBlbmRZLCBkdXJhdGlvbiwgcGVyY2VudCwgc3RlcHMsIGVsSWQpIHtcbiAgbGV0IHBpbmNoT3B0cyA9IHtcbiAgICBkaXJlY3Rpb246ICdpbicsXG4gICAgZWxlbWVudElkOiBlbElkLFxuICAgIHBlcmNlbnQsXG4gICAgc3RlcHNcbiAgfTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6cGluY2gnLCBwaW5jaE9wdHMpO1xufTtcblxuY29tbWFuZHMucGluY2hPcGVuID0gYXN5bmMgZnVuY3Rpb24gcGluY2hPcGVuIChzdGFydFgsIHN0YXJ0WSwgZW5kWCwgZW5kWSwgZHVyYXRpb24sIHBlcmNlbnQsIHN0ZXBzLCBlbElkKSB7XG4gIGxldCBwaW5jaE9wdHMgPSB7ZGlyZWN0aW9uOiAnb3V0JywgZWxlbWVudElkOiBlbElkLCBwZXJjZW50LCBzdGVwc307XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OnBpbmNoJywgcGluY2hPcHRzKTtcbn07XG5cbmNvbW1hbmRzLmZsaWNrID0gYXN5bmMgZnVuY3Rpb24gZmxpY2sgKGVsZW1lbnQsIHhTcGVlZCwgeVNwZWVkLCB4T2Zmc2V0LCB5T2Zmc2V0LCBzcGVlZCkge1xuICBpZiAoZWxlbWVudCkge1xuICAgIGF3YWl0IHRoaXMuZmFrZUZsaWNrRWxlbWVudChlbGVtZW50LCB4T2Zmc2V0LCB5T2Zmc2V0LCBzcGVlZCk7XG4gIH0gZWxzZSB7XG4gICAgYXdhaXQgdGhpcy5mYWtlRmxpY2soeFNwZWVkLCB5U3BlZWQpO1xuICB9XG59O1xuXG5jb21tYW5kcy5kcmFnID0gYXN5bmMgZnVuY3Rpb24gZHJhZyAoc3RhcnRYLCBzdGFydFksIGVuZFgsIGVuZFksIGR1cmF0aW9uLCB0b3VjaENvdW50LCBlbGVtZW50SWQsIGRlc3RFbElkKSB7XG4gIGxldCBkcmFnT3B0cyA9IHtcbiAgICBlbGVtZW50SWQsIGRlc3RFbElkLCBzdGFydFgsIHN0YXJ0WSwgZW5kWCwgZW5kWSxcbiAgICBzdGVwczogTWF0aC5yb3VuZChkdXJhdGlvbiAqIGRyYWdTdGVwc1BlclNlYylcbiAgfTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZG9EcmFnKGRyYWdPcHRzKTtcblxufTtcblxuY29tbWFuZHMuZG9EcmFnID0gYXN5bmMgZnVuY3Rpb24gZG9EcmFnIChkcmFnT3B0cykge1xuICBpZiAodXRpbC5oYXNWYWx1ZShkcmFnT3B0cy5lbGVtZW50SWQpKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6ZHJhZycsIGRyYWdPcHRzKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZHJhZycsIGRyYWdPcHRzKTtcbiAgfVxufTtcblxuY29tbWFuZHMubG9jayA9IGFzeW5jIGZ1bmN0aW9uIGxvY2sgKHNlY29uZHMpIHtcbiAgYXdhaXQgdGhpcy5hZGIubG9jaygpO1xuICBpZiAoaXNOYU4oc2Vjb25kcykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBmbG9hdFNlY29uZHMgPSBwYXJzZUZsb2F0KHNlY29uZHMpO1xuICBpZiAoZmxvYXRTZWNvbmRzIDw9IDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgYXdhaXQgQi5kZWxheSgxMDAwICogZmxvYXRTZWNvbmRzKTtcbiAgYXdhaXQgdGhpcy51bmxvY2soKTtcbn07XG5cbmNvbW1hbmRzLmlzTG9ja2VkID0gYXN5bmMgZnVuY3Rpb24gaXNMb2NrZWQgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5hZGIuaXNTY3JlZW5Mb2NrZWQoKTtcbn07XG5cbmNvbW1hbmRzLnVubG9jayA9IGFzeW5jIGZ1bmN0aW9uIHVubG9jayAoKSB7XG4gIHJldHVybiBhd2FpdCBhbmRyb2lkSGVscGVycy51bmxvY2sodGhpcywgdGhpcy5hZGIsIHRoaXMuY2Fwcyk7XG59O1xuXG5jb21tYW5kcy5vcGVuTm90aWZpY2F0aW9ucyA9IGFzeW5jIGZ1bmN0aW9uIG9wZW5Ob3RpZmljYXRpb25zICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ29wZW5Ob3RpZmljYXRpb24nKTtcbn07XG5cbmNvbW1hbmRzLnNldExvY2F0aW9uID0gYXN5bmMgZnVuY3Rpb24gc2V0TG9jYXRpb24gKGxhdGl0dWRlLCBsb25naXR1ZGUpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYWRiLnNlbmRUZWxuZXRDb21tYW5kKGBnZW8gZml4ICR7bG9uZ2l0dWRlfSAke2xhdGl0dWRlfWApO1xufTtcblxuY29tbWFuZHMuZmluZ2VycHJpbnQgPSBhc3luYyBmdW5jdGlvbiBmaW5nZXJwcmludCAoZmluZ2VycHJpbnRJZCkge1xuICBpZiAoIXRoaXMuaXNFbXVsYXRvcigpKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygnZmluZ2VycHJpbnQgbWV0aG9kIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBlbXVsYXRvcnMnKTtcbiAgfVxuICBhd2FpdCB0aGlzLmFkYi5maW5nZXJwcmludChmaW5nZXJwcmludElkKTtcbn07XG5cbmNvbW1hbmRzLnNlbmRTTVMgPSBhc3luYyBmdW5jdGlvbiBzZW5kU01TIChwaG9uZU51bWJlciwgbWVzc2FnZSkge1xuICBpZiAoIXRoaXMuaXNFbXVsYXRvcigpKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygnc2VuZFNNUyBtZXRob2QgaXMgb25seSBhdmFpbGFibGUgZm9yIGVtdWxhdG9ycycpO1xuICB9XG4gIGF3YWl0IHRoaXMuYWRiLnNlbmRTTVMocGhvbmVOdW1iZXIsIG1lc3NhZ2UpO1xufTtcblxuY29tbWFuZHMuZ3NtQ2FsbCA9IGFzeW5jIGZ1bmN0aW9uIGdzbUNhbGwgKHBob25lTnVtYmVyLCBhY3Rpb24pIHtcbiAgaWYgKCF0aGlzLmlzRW11bGF0b3IoKSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coJ2dzbUNhbGwgbWV0aG9kIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBlbXVsYXRvcnMnKTtcbiAgfVxuICBhd2FpdCB0aGlzLmFkYi5nc21DYWxsKHBob25lTnVtYmVyLCBhY3Rpb24pO1xufTtcblxuY29tbWFuZHMuZ3NtU2lnbmFsID0gYXN5bmMgZnVuY3Rpb24gZ3NtU2lnbmFsIChzaWduYWxTdHJlbmdoKSB7XG4gIGlmICghdGhpcy5pc0VtdWxhdG9yKCkpIHtcbiAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KCdnc21TaWduYWwgbWV0aG9kIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBlbXVsYXRvcnMnKTtcbiAgfVxuICBhd2FpdCB0aGlzLmFkYi5nc21TaWduYWwoc2lnbmFsU3RyZW5naCk7XG59O1xuXG5jb21tYW5kcy5nc21Wb2ljZSA9IGFzeW5jIGZ1bmN0aW9uIGdzbVZvaWNlIChzdGF0ZSkge1xuICBpZiAoIXRoaXMuaXNFbXVsYXRvcigpKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygnZ3NtVm9pY2UgbWV0aG9kIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBlbXVsYXRvcnMnKTtcbiAgfVxuICBhd2FpdCB0aGlzLmFkYi5nc21Wb2ljZShzdGF0ZSk7XG59O1xuXG5jb21tYW5kcy5wb3dlckFDID0gYXN5bmMgZnVuY3Rpb24gcG93ZXJBQyAoc3RhdGUpIHtcbiAgaWYgKCF0aGlzLmlzRW11bGF0b3IoKSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coJ3Bvd2VyQUMgbWV0aG9kIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBlbXVsYXRvcnMnKTtcbiAgfVxuICBhd2FpdCB0aGlzLmFkYi5wb3dlckFDKHN0YXRlKTtcbn07XG5cbmNvbW1hbmRzLnBvd2VyQ2FwYWNpdHkgPSBhc3luYyBmdW5jdGlvbiBwb3dlckNhcGFjaXR5IChiYXR0ZXJ5UGVyY2VudCkge1xuICBpZiAoIXRoaXMuaXNFbXVsYXRvcigpKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygncG93ZXJDYXBhY2l0eSBtZXRob2QgaXMgb25seSBhdmFpbGFibGUgZm9yIGVtdWxhdG9ycycpO1xuICB9XG4gIGF3YWl0IHRoaXMuYWRiLnBvd2VyQ2FwYWNpdHkoYmF0dGVyeVBlcmNlbnQpO1xufTtcblxuY29tbWFuZHMubmV0d29ya1NwZWVkID0gYXN5bmMgZnVuY3Rpb24gbmV0d29ya1NwZWVkIChuZXR3b3JrU3BlZWQpIHtcbiAgaWYgKCF0aGlzLmlzRW11bGF0b3IoKSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coJ25ldHdvcmtTcGVlZCBtZXRob2QgaXMgb25seSBhdmFpbGFibGUgZm9yIGVtdWxhdG9ycycpO1xuICB9XG4gIGF3YWl0IHRoaXMuYWRiLm5ldHdvcmtTcGVlZChuZXR3b3JrU3BlZWQpO1xufTtcblxuLyoqXG4gKiBFbXVsYXRlIHNlbnNvcnMgdmFsdWVzIG9uIHRoZSBjb25uZWN0ZWQgZW11bGF0b3IuXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gU2Vuc29yXG4gKiBAcHJvcGVydHkge3N0cmluZ30gc2Vuc29yVHlwZSAtIHNlbnNvciB0eXBlIGRlY2xhcmVkIGluIGFkYi5TRU5TT1JTXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdmFsdWUgLSB2YWx1ZSB0byBzZXQgdG8gdGhlIHNlbnNvclxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBTZW5zb3JcbiAqIEB0aHJvd3Mge0Vycm9yfSAtIElmIHNlbnNvclR5cGUgaXMgbm90IGRlZmluZWRcbiAqIEB0aHJvd3Mge0Vycm9yfSAtIElmIHZhbHVlIGZvciB0aGUgc2Ugc29yIGlzIG5vdCBkZWZpbmVkXG4gKiBAdGhyb3dzIHtFcnJvcn0gLSBJZiBkZXZpY2VUeXBlIGlzIG5vdCBhbiBlbXVsYXRvclxuICovXG5jb21tYW5kcy5zZW5zb3JTZXQgPSBhc3luYyBmdW5jdGlvbiBzZW5zb3JTZXQgKHNlbnNvciA9IHt9KSB7XG4gIGNvbnN0IHtzZW5zb3JUeXBlLCB2YWx1ZX0gPSBzZW5zb3I7XG4gIGlmICghdXRpbC5oYXNWYWx1ZShzZW5zb3JUeXBlKSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYCdzZW5zb3JUeXBlJyBhcmd1bWVudCBpcyByZXF1aXJlZGApO1xuICB9XG4gIGlmICghdXRpbC5oYXNWYWx1ZSh2YWx1ZSkpIHtcbiAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGAndmFsdWUnIGFyZ3VtZW50IGlzIHJlcXVpcmVkYCk7XG4gIH1cbiAgaWYgKCF0aGlzLmlzRW11bGF0b3IoKSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coJ3NlbnNvclNldCBtZXRob2QgaXMgb25seSBhdmFpbGFibGUgZm9yIGVtdWxhdG9ycycpO1xuICB9XG4gIGF3YWl0IHRoaXMuYWRiLnNlbnNvclNldChzZW5zb3JUeXBlLCB2YWx1ZSk7XG59O1xuXG5oZWxwZXJzLmdldFNjcmVlbnNob3REYXRhV2l0aEFkYlNoZWxsID0gYXN5bmMgZnVuY3Rpb24gZ2V0U2NyZWVuc2hvdERhdGFXaXRoQWRiU2hlbGwgKGFkYiwgb3B0cykge1xuICBjb25zdCBsb2NhbEZpbGUgPSBhd2FpdCB0ZW1wRGlyLnBhdGgoe3ByZWZpeDogJ2FwcGl1bScsIHN1ZmZpeDogJy5wbmcnfSk7XG4gIGlmIChhd2FpdCBmcy5leGlzdHMobG9jYWxGaWxlKSkge1xuICAgIGF3YWl0IGZzLnVubGluayhsb2NhbEZpbGUpO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgcG5nRGlyID0gb3B0cy5hbmRyb2lkU2NyZWVuc2hvdFBhdGggfHwgJy9kYXRhL2xvY2FsL3RtcC8nO1xuICAgIGNvbnN0IHBuZyA9IHBhdGgucG9zaXgucmVzb2x2ZShwbmdEaXIsICdzY3JlZW5zaG90LnBuZycpO1xuICAgIGNvbnN0IGNtZCA9IFsnL3N5c3RlbS9iaW4vcm0nLCBgJHtwbmd9O2AsICcvc3lzdGVtL2Jpbi9zY3JlZW5jYXAnLCAnLXAnLCBwbmddO1xuICAgIGF3YWl0IGFkYi5zaGVsbChjbWQpO1xuICAgIGlmICghYXdhaXQgYWRiLmZpbGVTaXplKHBuZykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHNpemUgb2YgdGhlIHRha2VuIHNjcmVlbnNob3QgZXF1YWxzIHRvIHplcm8uJyk7XG4gICAgfVxuICAgIGF3YWl0IGFkYi5wdWxsKHBuZywgbG9jYWxGaWxlKTtcbiAgICByZXR1cm4gYXdhaXQgamltcC5yZWFkKGxvY2FsRmlsZSk7XG4gIH0gZmluYWxseSB7XG4gICAgaWYgKGF3YWl0IGZzLmV4aXN0cyhsb2NhbEZpbGUpKSB7XG4gICAgICBhd2FpdCBmcy51bmxpbmsobG9jYWxGaWxlKTtcbiAgICB9XG4gIH1cbn07XG5cbmhlbHBlcnMuZ2V0U2NyZWVuc2hvdERhdGFXaXRoQWRiRXhlY091dCA9IGFzeW5jIGZ1bmN0aW9uIGdldFNjcmVlbnNob3REYXRhV2l0aEFkYkV4ZWNPdXQgKGFkYikge1xuICBsZXQge3N0ZG91dCwgc3RkZXJyLCBjb2RlfSA9IGF3YWl0IGV4ZWMoYWRiLmV4ZWN1dGFibGUucGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkYi5leGVjdXRhYmxlLmRlZmF1bHRBcmdzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb25jYXQoWydleGVjLW91dCcsICcvc3lzdGVtL2Jpbi9zY3JlZW5jYXAnLCAnLXAnXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZW5jb2Rpbmc6ICdiaW5hcnknLCBpc0J1ZmZlcjogdHJ1ZX0pO1xuICAvLyBpZiB0aGVyZSBpcyBhbiBlcnJvciwgdGhyb3dcbiAgaWYgKGNvZGUgfHwgc3RkZXJyLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU2NyZWVuc2hvdCByZXR1cm5lZCBlcnJvciwgY29kZTogJyR7Y29kZX0nLCBzdGRlcnI6ICcke3N0ZGVyci50b1N0cmluZygpfSdgKTtcbiAgfVxuICAvLyBpZiB3ZSBkb24ndCBnZXQgYW55dGhpbmcgYXQgYWxsLCB0aHJvd1xuICBpZiAoIXN0ZG91dC5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NjcmVlbnNob3QgcmV0dXJuZWQgbm8gZGF0YScpO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGppbXAucmVhZChzdGRvdXQpO1xufTtcblxuY29tbWFuZHMuZ2V0U2NyZWVuc2hvdCA9IGFzeW5jIGZ1bmN0aW9uIGdldFNjcmVlbnNob3QgKCkge1xuICBjb25zdCBhcGlMZXZlbCA9IGF3YWl0IHRoaXMuYWRiLmdldEFwaUxldmVsKCk7XG4gIGxldCBpbWFnZSA9IG51bGw7XG4gIGlmIChhcGlMZXZlbCA+IDIwKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFRoaXMgc2NyZWVuc2hvdGluZyBhcHByb2FjaCBpcyB3YXkgZmFzdGVyLCBzaW5jZSBpdCByZXF1aXJlcyBsZXNzIGV4dGVybmFsIGNvbW1hbmRzXG4gICAgICAvLyB0byBiZSBleGVjdXRlZC4gVW5mb3J0dW5hdGVseSwgZXhlYy1vdXQgb3B0aW9uIGlzIG9ubHkgc3VwcG9ydGVkIGJ5IG5ld2VyIEFuZHJvaWQvU0RLIHZlcnNpb25zICg1LjAgYW5kIGxhdGVyKVxuICAgICAgaW1hZ2UgPSBhd2FpdCB0aGlzLmdldFNjcmVlbnNob3REYXRhV2l0aEFkYkV4ZWNPdXQodGhpcy5hZGIpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nLmluZm8oYENhbm5vdCBnZXQgc2NyZWVuc2hvdCBkYXRhIHdpdGggJ2FkYiBleGVjLW91dCcgYmVjYXVzZSBvZiAnJHtlLm1lc3NhZ2V9Jy4gYCArXG4gICAgICAgIGBEZWZhdWx0aW5nIHRvICdhZGIgc2hlbGwnIGNhbGxgKTtcbiAgICB9XG4gIH1cbiAgaWYgKCFpbWFnZSkge1xuICAgIHRyeSB7XG4gICAgICBpbWFnZSA9IGF3YWl0IHRoaXMuZ2V0U2NyZWVuc2hvdERhdGFXaXRoQWRiU2hlbGwodGhpcy5hZGIsIHRoaXMub3B0cyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc3QgZXJyID0gYENhbm5vdCBnZXQgc2NyZWVuc2hvdCBkYXRhIGJlY2F1c2Ugb2YgJyR7ZS5tZXNzYWdlfScuIGAgK1xuICAgICAgICBgTWFrZSBzdXJlIHRoZSAnTGF5b3V0UGFyYW1zLkZMQUdfU0VDVVJFJyBpcyBub3Qgc2V0IGZvciBgICtcbiAgICAgICAgYHRoZSBjdXJyZW50IHZpZXdgO1xuICAgICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhlcnIpO1xuICAgIH1cbiAgfVxuICBpZiAoYXBpTGV2ZWwgPCAyMykge1xuICAgIC8vIEFuZHJvaWQgYnVnIDg0MzM3NDIgLSByb3RhdGUgc2NyZWVuc2hvdCBpZiBzY3JlZW4gaXMgcm90YXRlZFxuICAgIGxldCBzY3JlZW5PcmllbnRhdGlvbiA9IGF3YWl0IHRoaXMuYWRiLmdldFNjcmVlbk9yaWVudGF0aW9uKCk7XG4gICAgdHJ5IHtcbiAgICAgIGltYWdlID0gYXdhaXQgaW1hZ2Uucm90YXRlKC05MCAqIHNjcmVlbk9yaWVudGF0aW9uKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMubG9nLndhcm4oYENvdWxkIG5vdCByb3RhdGUgc2NyZWVuc2hvdCBkdWUgdG8gZXJyb3I6ICR7ZXJyfWApO1xuICAgIH1cbiAgfVxuICBjb25zdCBnZXRCdWZmZXIgPSBCLnByb21pc2lmeShpbWFnZS5nZXRCdWZmZXIsIHtjb250ZXh0OiBpbWFnZX0pO1xuICBjb25zdCBpbWdCdWZmZXIgPSBhd2FpdCBnZXRCdWZmZXIoamltcC5NSU1FX1BORyk7XG4gIHJldHVybiBpbWdCdWZmZXIudG9TdHJpbmcoJ2Jhc2U2NCcpO1xufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcywgaGVscGVycyk7XG5leHBvcnQgeyBjb21tYW5kcywgaGVscGVycyB9O1xuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxN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
|
|
@@ -36,4 +36,4 @@ var _default = extensions;
|
|
|
36
36
|
exports.default = _default;require('source-map-support').install();
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2FsZXJ0LmpzIiwibmFtZXMiOlsiY29tbWFuZHMiLCJoZWxwZXJzIiwiZXh0ZW5zaW9ucyIsImdldEFsZXJ0VGV4dCIsImVycm9ycyIsIk5vdFlldEltcGxlbWVudGVkRXJyb3IiLCJzZXRBbGVydFRleHQiLCJwb3N0QWNjZXB0QWxlcnQiLCJwb3N0RGlzbWlzc0FsZXJ0IiwiT2JqZWN0IiwiYXNzaWduIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL2FsZXJ0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuXG5sZXQgY29tbWFuZHMgPSB7fSwgaGVscGVycyA9IHt9LCBleHRlbnNpb25zID0ge307XG5cbmNvbW1hbmRzLmdldEFsZXJ0VGV4dCA9IGFzeW5jIGZ1bmN0aW9uIGdldEFsZXJ0VGV4dCAoKSB7XG4gIHRocm93IG5ldyBlcnJvcnMuTm90WWV0SW1wbGVtZW50ZWRFcnJvcigpO1xufTtcblxuY29tbWFuZHMuc2V0QWxlcnRUZXh0ID0gYXN5bmMgZnVuY3Rpb24gc2V0QWxlcnRUZXh0ICgpIHtcbiAgdGhyb3cgbmV3IGVycm9ycy5Ob3RZZXRJbXBsZW1lbnRlZEVycm9yKCk7XG59O1xuXG5jb21tYW5kcy5wb3N0QWNjZXB0QWxlcnQgPSBhc3luYyBmdW5jdGlvbiBwb3N0QWNjZXB0QWxlcnQgKCkge1xuICB0aHJvdyBuZXcgZXJyb3JzLk5vdFlldEltcGxlbWVudGVkRXJyb3IoKTtcbn07XG5cbmNvbW1hbmRzLnBvc3REaXNtaXNzQWxlcnQgPSBhc3luYyBmdW5jdGlvbiBwb3N0RGlzbWlzc0FsZXJ0ICgpIHtcbiAgdGhyb3cgbmV3IGVycm9ycy5Ob3RZZXRJbXBsZW1lbnRlZEVycm9yKCk7XG59O1xuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGNvbW1hbmRzLCBoZWxwZXJzKTtcbmV4cG9ydCB7IGNvbW1hbmRzLCBoZWxwZXJzIH07XG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQTs7QUFFQSxJQUFJQSxRQUFRLEdBQUcsRUFBZjtBQUFBLElBQW1CQyxPQUFPLEdBQUcsRUFBN0I7QUFBQSxJQUFpQ0MsVUFBVSxHQUFHLEVBQTlDOzs7O0FBRUFGLFFBQVEsQ0FBQ0csWUFBVCxHQUF3QixlQUFlQSxZQUFmLEdBQStCO0VBQ3JELE1BQU0sSUFBSUMsbUJBQU9DLHNCQUFYLEVBQU47QUFDRCxDQUZEOztBQUlBTCxRQUFRLENBQUNNLFlBQVQsR0FBd0IsZUFBZUEsWUFBZixHQUErQjtFQUNyRCxNQUFNLElBQUlGLG1CQUFPQyxzQkFBWCxFQUFOO0FBQ0QsQ0FGRDs7QUFJQUwsUUFBUSxDQUFDTyxlQUFULEdBQTJCLGVBQWVBLGVBQWYsR0FBa0M7RUFDM0QsTUFBTSxJQUFJSCxtQkFBT0Msc0JBQVgsRUFBTjtBQUNELENBRkQ7O0FBSUFMLFFBQVEsQ0FBQ1EsZ0JBQVQsR0FBNEIsZUFBZUEsZ0JBQWYsR0FBbUM7RUFDN0QsTUFBTSxJQUFJSixtQkFBT0Msc0JBQVgsRUFBTjtBQUNELENBRkQ7O0FBSUFJLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjUixVQUFkLEVBQTBCRixRQUExQixFQUFvQ0MsT0FBcEM7ZUFFZUMsVSJ9
|
|
@@ -115,4 +115,4 @@ var _default = commands;
|
|
|
115
115
|
exports.default = _default;require('source-map-support').install();
|
|
116
116
|
|
|
117
117
|
|
|
118
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9hcHAtbWFuYWdlbWVudC5qcyJdLCJuYW1lcyI6WyJBUFBfRVhURU5TSU9OUyIsImNvbW1hbmRzIiwiaXNBcHBJbnN0YWxsZWQiLCJhcHBJZCIsImFkYiIsInF1ZXJ5QXBwU3RhdGUiLCJsb2ciLCJpbmZvIiwiQVBQX1NUQVRFIiwiTk9UX0lOU1RBTExFRCIsInByb2Nlc3NFeGlzdHMiLCJOT1RfUlVOTklORyIsImFwcElkUmUiLCJSZWdFeHAiLCJfIiwiZXNjYXBlUmVnRXhwIiwibGluZSIsImR1bXBXaW5kb3dzIiwic3BsaXQiLCJ0ZXN0Iiwic29tZSIsIngiLCJpbmNsdWRlcyIsIlJVTk5JTkdfSU5fRk9SRUdST1VORCIsIlJVTk5JTkdfSU5fQkFDS0dST1VORCIsImFjdGl2YXRlQXBwIiwiY21kIiwib3V0cHV0IiwiZGVidWciLCJqb2luIiwic2hlbGwiLCJlIiwiZXJyb3JBbmRUaHJvdyIsIm1lc3NhZ2UiLCJyZW1vdmVBcHAiLCJvcHRpb25zIiwidW5pbnN0YWxsQXBrIiwidGVybWluYXRlQXBwIiwiZm9yY2VTdG9wIiwidGltZW91dCIsInV0aWwiLCJoYXNWYWx1ZSIsImlzTmFOIiwicGFyc2VJbnQiLCJ3YWl0TXMiLCJpbnRlcnZhbE1zIiwiaW5zdGFsbEFwcCIsImFwcFBhdGgiLCJsb2NhbFBhdGgiLCJoZWxwZXJzIiwiY29uZmlndXJlQXBwIiwiaW5zdGFsbCIsIm1vYmlsZUNsZWFyQXBwIiwib3B0cyIsImVycm9ycyIsIkludmFsaWRBcmd1bWVudEVycm9yIiwiY2xlYXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsY0FBYyxHQUFHLENBQUMsTUFBRCxFQUFTLE9BQVQsQ0FBdkI7QUFFQSxJQUFJQyxRQUFRLEdBQUcsRUFBZjs7O0FBUUFBLFFBQVEsQ0FBQ0MsY0FBVCxHQUEwQixlQUFlQSxjQUFmLENBQStCQyxLQUEvQixFQUFzQztBQUM5RCxT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QkFsQyxRQUFRLENBQUNtRCxjQUFULEdBQTBCLGVBQWVBLGNBQWYsQ0FBK0JDLElBQUksR0FBRyxFQUF0QyxFQUEwQztBQUNsRSxRQUFNO0FBQUNsRCxJQUFBQTtBQUFELE1BQVVrRCxJQUFoQjs7QUFDQSxNQUFJLENBQUNsRCxLQUFMLEVBQVk7QUFDVixVQUFNLElBQUltRCxtQkFBT0Msb0JBQVgsQ0FBaUMsa0NBQWpDLENBQU47QUFDRDs7QUFDRCxRQUFNLEtBQUtuRCxHQUFMLENBQVNvRCxLQUFULENBQWVyRCxLQUFmLENBQU47QUFDRCxDQU5EOztlQVNlRixRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IEFQUF9TVEFURSB9IGZyb20gJy4uL2FuZHJvaWQtaGVscGVycyc7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcblxuY29uc3QgQVBQX0VYVEVOU0lPTlMgPSBbJy5hcGsnLCAnLmFwa3MnXTtcblxubGV0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogVmVyaWZ5IHdoZXRoZXIgYW4gYXBwbGljYXRpb24gaXMgaW5zdGFsbGVkIG9yIG5vdFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcHBJZCAtIEFwcGxpY2F0aW9uIHBhY2thZ2UgaWRlbnRpZmllclxuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIGFwcCBpcyBpbnN0YWxsZWRcbiAqL1xuY29tbWFuZHMuaXNBcHBJbnN0YWxsZWQgPSBhc3luYyBmdW5jdGlvbiBpc0FwcEluc3RhbGxlZCAoYXBwSWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYWRiLmlzQXBwSW5zdGFsbGVkKGFwcElkKTtcbn07XG5cbi8qKlxuICogUXVlcmllcyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcHBJZCAtIEFwcGxpY2F0aW9uIHBhY2thZ2UgaWRlbnRpZmllclxuICogQHJldHVybnMge251bWJlcn0gVGhlIGNvcnJlc3BvbmRpbmcgY29uc3RhbnQsIHdoaWNoIGRlc2NyaWJlc1xuICogICAgICAgICAgICAgICAgICAgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gc3RhdGU6XG4gKiAwIC0gaXMgdGhlIGFwcCBpcyBub3QgaW5zdGFsbGVkXG4gKiAxIC0gaWYgdGhlIGFwcCBpcyBpbnN0YWxsZWQsIGJ1dCBpcyBub3QgcnVubmluZ1xuICogMyAtIGlmIHRoZSBhcHAgaXMgcnVubmluZyBpbiB0aGUgYmFja2dyb3VuZFxuICogNCAtIGlmIHRoZSBhcHAgaXMgcnVubmluZyBpbiB0aGUgZm9yZWdyb3VuZFxuICovXG5jb21tYW5kcy5xdWVyeUFwcFN0YXRlID0gYXN5bmMgZnVuY3Rpb24gcXVlcnlBcHBTdGF0ZSAoYXBwSWQpIHtcbiAgdGhpcy5sb2cuaW5mbyhgUXVlcnlpbmcgdGhlIHN0YXRlIG9mICcke2FwcElkfSdgKTtcbiAgaWYgKCFhd2FpdCB0aGlzLmFkYi5pc0FwcEluc3RhbGxlZChhcHBJZCkpIHtcbiAgICByZXR1cm4gQVBQX1NUQVRFLk5PVF9JTlNUQUxMRUQ7XG4gIH1cbiAgaWYgKCFhd2FpdCB0aGlzLmFkYi5wcm9jZXNzRXhpc3RzKGFwcElkKSkge1xuICAgIHJldHVybiBBUFBfU1RBVEUuTk9UX1JVTk5JTkc7XG4gIH1cbiAgY29uc3QgYXBwSWRSZSA9IG5ldyBSZWdFeHAoYFxcXFxiJHtfLmVzY2FwZVJlZ0V4cChhcHBJZCl9L2ApO1xuICBmb3IgKGNvbnN0IGxpbmUgb2YgKGF3YWl0IHRoaXMuYWRiLmR1bXBXaW5kb3dzKCkpLnNwbGl0KCdcXG4nKSkge1xuICAgIGlmIChhcHBJZFJlLnRlc3QobGluZSkgJiYgWydtQ3VycmVudEZvY3VzJywgJ21Gb2N1c2VkQXBwJ10uc29tZSgoeCkgPT4gbGluZS5pbmNsdWRlcyh4KSkpIHtcbiAgICAgIHJldHVybiBBUFBfU1RBVEUuUlVOTklOR19JTl9GT1JFR1JPVU5EO1xuICAgIH1cbiAgfVxuICByZXR1cm4gQVBQX1NUQVRFLlJVTk5JTkdfSU5fQkFDS0dST1VORDtcbn07XG5cbi8qKlxuICogQWN0aXZhdGVzIHRoZSBnaXZlbiBhcHBsaWNhdGlvbiBvciBsYXVuY2hlcyBpdCBpZiBuZWNlc3NhcnkuXG4gKiBUaGUgYWN0aW9uIGlzIGRvbmUgd2l0aCBtb25rZXkgdG9vbCBhbmQgbGl0ZXJhbGx5IHNpbXVsYXRlc1xuICogY2xpY2tpbmcgdGhlIGNvcnJlc3BvbmRpbmcgYXBwbGljYXRpb24gaWNvbiBvbiB0aGUgZGFzaGJvYXJkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcHBJZCAtIEFwcGxpY2F0aW9uIHBhY2thZ2UgaWRlbnRpZmllclxuICovXG5jb21tYW5kcy5hY3RpdmF0ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIGFjdGl2YXRlQXBwIChhcHBJZCkge1xuICBjb25zdCBjbWQgPSBbJ21vbmtleScsXG4gICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDQ4NjA0NzUvaG93LXRvLXVzZS10aGUtbW9ua2V5LWNvbW1hbmQtd2l0aC1hbi1hbmRyb2lkLXN5c3RlbS10aGF0LWRvZXNudC1oYXZlLXBoeXNpY2FsXG4gICAgJy0tcGN0LXN5c2tleXMnLCAnMCcsXG4gICAgJy1wJywgYXBwSWQsXG4gICAgJy1jJywgJ2FuZHJvaWQuaW50ZW50LmNhdGVnb3J5LkxBVU5DSEVSJyxcbiAgICAnMSddO1xuICBsZXQgb3V0cHV0ID0gJyc7XG4gIHRyeSB7XG4gICAgdGhpcy5sb2cuZGVidWcoYEFjdGl2YXRpbmcgJyR7YXBwSWR9JyB3aXRoICdhZGIgc2hlbGwgJHtjbWQuam9pbignICcpfScgY29tbWFuZGApO1xuICAgIG91dHB1dCA9IGF3YWl0IHRoaXMuYWRiLnNoZWxsKGNtZCk7XG4gICAgdGhpcy5sb2cuZGVidWcoYENvbW1hbmQgc3Rkb3V0OiAke291dHB1dH1gKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYENhbm5vdCBhY3RpdmF0ZSAnJHthcHBJZH0nLiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gIH1cbiAgaWYgKG91dHB1dC5pbmNsdWRlcygnbW9ua2V5IGFib3J0ZWQnKSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYENhbm5vdCBhY3RpdmF0ZSAnJHthcHBJZH0nLiBBcmUgeW91IHN1cmUgaXQgaXMgaW5zdGFsbGVkP2ApO1xuICB9XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFVuaW5zdGFsbE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB0aW1lb3V0IFsyMDAwMF0gLSBUaGUgY291bnQgb2YgbWlsbGlzZWNvbmRzIHRvIHdhaXQgdW50aWwgdGhlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwIGlzIHVuaW5zdGFsbGVkLlxuICogQHByb3BlcnR5IHtib29sZWFufSBrZWVwRGF0YSBbZmFsc2VdIC0gU2V0IHRvIHRydWUgaW4gb3JkZXIgdG8ga2VlcCB0aGVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIGRhdGEgYW5kIGNhY2hlIGZvbGRlcnMgYWZ0ZXIgdW5pbnN0YWxsLlxuICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGFwcGxpY2F0aW9uIGlmIGlzIGluc3RhbGxlZC5cbiAqIFRoZSBjYWxsIGlzIGlnbm9yZWQgaWYgdGhlIGFwcCBpcyBub3QgaW5zdGFsbGVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcHBJZCAtIEFwcGxpY2F0aW9uIHBhY2thZ2UgaWRlbnRpZmllclxuICogQHBhcmFtIHs/VW5pbnN0YWxsT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBzZXQgb2YgcmVtb3ZhbCBvcHRpb25zXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgcGFja2FnZSB3YXMgZm91bmQgb24gdGhlIGRldmljZSBhbmRcbiAqICAgICAgICAgICAgICAgICAgICBzdWNjZXNzZnVsbHkgdW5pbnN0YWxsZWQuXG4gKi9cbmNvbW1hbmRzLnJlbW92ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIHJlbW92ZUFwcCAoYXBwSWQsIG9wdGlvbnMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5hZGIudW5pbnN0YWxsQXBrKGFwcElkLCBvcHRpb25zKTtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gVGVybWluYXRlT3B0aW9uc1xuICogQHByb3BlcnR5IHtudW1iZXJ8c3RyaW5nfSB0aW1lb3V0IFs1MDBdIC0gVGhlIGNvdW50IG9mIG1pbGxpc2Vjb25kcyB0byB3YWl0IHVudGlsIHRoZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwIGlzIHRlcm1pbmF0ZWQuXG4gKi9cblxuLyoqXG4gKiBUZXJtaW5hdGVzIHRoZSBhcHAgaWYgaXQgaXMgcnVubmluZy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYXBwSWQgLSBBcHBsaWNhdGlvbiBwYWNrYWdlIGlkZW50aWZpZXJcbiAqIEBwYXJhbSB7P1Rlcm1pbmF0ZU9wdGlvbnN9IG9wdGlvbnMgLSBUaGUgc2V0IG9mIGFwcGxpY2F0aW9uIHRlcm1pbmF0aW9uIG9wdGlvbnNcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSBhcHAgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHRlcm1pbmF0ZWQuXG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgdGhlIGFwcCBoYXMgbm90IGJlZW4gdGVybWluYXRlZCB3aXRoaW4gdGhlIGdpdmVuIHRpbWVvdXQuXG4gKi9cbmNvbW1hbmRzLnRlcm1pbmF0ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIHRlcm1pbmF0ZUFwcCAoYXBwSWQsIG9wdGlvbnMgPSB7fSkge1xuICB0aGlzLmxvZy5pbmZvKGBUZXJtaW5hdGluZyAnJHthcHBJZH0nYCk7XG4gIGlmICghKGF3YWl0IHRoaXMuYWRiLnByb2Nlc3NFeGlzdHMoYXBwSWQpKSkge1xuICAgIHRoaXMubG9nLmluZm8oYFRoZSBhcHAgJyR7YXBwSWR9JyBpcyBub3QgcnVubmluZ2ApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBhd2FpdCB0aGlzLmFkYi5mb3JjZVN0b3AoYXBwSWQpO1xuICBjb25zdCB0aW1lb3V0ID0gdXRpbC5oYXNWYWx1ZShvcHRpb25zLnRpbWVvdXQpICYmICFpc05hTihvcHRpb25zLnRpbWVvdXQpID8gcGFyc2VJbnQob3B0aW9ucy50aW1lb3V0LCAxMCkgOiA1MDA7XG4gIHRyeSB7XG4gICAgYXdhaXQgd2FpdEZvckNvbmRpdGlvbihhc3luYyAoKSA9PiBhd2FpdCB0aGlzLnF1ZXJ5QXBwU3RhdGUoYXBwSWQpIDw9IEFQUF9TVEFURS5OT1RfUlVOTklORyxcbiAgICAgIHt3YWl0TXM6IHRpbWVvdXQsIGludGVydmFsTXM6IDEwMH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgJyR7YXBwSWR9JyBpcyBzdGlsbCBydW5uaW5nIGFmdGVyICR7dGltZW91dH1tcyB0aW1lb3V0YCk7XG4gIH1cbiAgdGhpcy5sb2cuaW5mbyhgJyR7YXBwSWR9JyBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgdGVybWluYXRlZGApO1xuICByZXR1cm4gdHJ1ZTtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gSW5zdGFsbE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB0aW1lb3V0IFs2MDAwMF0gLSBUaGUgY291bnQgb2YgbWlsbGlzZWNvbmRzIHRvIHdhaXQgdW50aWwgdGhlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwIGlzIGluc3RhbGxlZC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gYWxsb3dUZXN0UGFja2FnZXMgW2ZhbHNlXSAtIFNldCB0byB0cnVlIGluIG9yZGVyIHRvIGFsbG93IHRlc3RcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhY2thZ2VzIGluc3RhbGxhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gdXNlU2RjYXJkIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBpbnN0YWxsIHRoZSBhcHAgb24gc2RjYXJkXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGVhZCBvZiB0aGUgZGV2aWNlIG1lbW9yeS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gZ3JhbnRQZXJtaXNzaW9ucyBbZmFsc2VdIC0gU2V0IHRvIHRydWUgaW4gb3JkZXIgdG8gZ3JhbnQgYWxsIHRoZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJtaXNzaW9ucyByZXF1ZXN0ZWQgaW4gdGhlIGFwcGxpY2F0aW9uJ3MgbWFuaWZlc3RcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b21hdGljYWxseSBhZnRlciB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlZFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlciBBbmRyb2lkIDYrLlxuICogQHByb3BlcnR5IHtib29sZWFufSByZXBsYWNlIFt0cnVlXSAtIFNldCBpdCB0byBmYWxzZSBpZiB5b3UgZG9uJ3Qgd2FudFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBhcHBsaWNhdGlvbiB0byBiZSB1cGdyYWRlZC9yZWluc3RhbGxlZFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGl0IGlzIGFscmVhZHkgcHJlc2VudCBvbiB0aGUgZGV2aWNlLlxuICovXG5cbi8qKlxuICogSW5zdGFsbHMgdGhlIGdpdmVuIGFwcGxpY2F0aW9uIHRvIHRoZSBkZXZpY2UgdW5kZXIgdGVzdFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcHBQYXRoIC0gVGhlIGxvY2FsIGFwayBwYXRoIG9yIGEgcmVtb3RlIHVybFxuICogQHBhcmFtIHs/SW5zdGFsbE9wdGlvbnN9IG9wdGlvbnMgLSBUaGUgc2V0IG9mIGluc3RhbGxhdGlvbiBvcHRpb25zXG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgdGhlIGdpdmVuIGFwayBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgcmVhY2hhYmxlXG4gKi9cbmNvbW1hbmRzLmluc3RhbGxBcHAgPSBhc3luYyBmdW5jdGlvbiBpbnN0YWxsQXBwIChhcHBQYXRoLCBvcHRpb25zID0ge30pIHtcbiAgY29uc3QgbG9jYWxQYXRoID0gYXdhaXQgdGhpcy5oZWxwZXJzLmNvbmZpZ3VyZUFwcChhcHBQYXRoLCBBUFBfRVhURU5TSU9OUyk7XG4gIGF3YWl0IHRoaXMuYWRiLmluc3RhbGwobG9jYWxQYXRoLCBvcHRpb25zKTtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gQ2xlYXJBcHBPcHRpb25zXG4gKiBAcHJvcGVydHkgeyFzdHJpbmd9IGFwcElkIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhcHBsaWNhdGlvbiBwYWNrYWdlIHRvIGJlIGNsZWFyZWRcbiAqL1xuXG4vKipcbiAqIERlbGV0ZXMgYWxsIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgcGFja2FnZS5cbiAqXG4gKiBAcGFyYW0ge0NsZWFyQXBwT3B0aW9uc30gb3B0c1xuICogQHRocm93cyB7RXJyb3J9IElmIGNsZWFuaW5nIG9mIHRoZSBhcHAgZGF0YSBmYWlsc1xuICovXG5jb21tYW5kcy5tb2JpbGVDbGVhckFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUNsZWFyQXBwIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2FwcElkfSA9IG9wdHM7XG4gIGlmICghYXBwSWQpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGBUaGUgJ2FwcElkJyBhcmd1bWVudCBpcyByZXF1aXJlZGApO1xuICB9XG4gIGF3YWl0IHRoaXMuYWRiLmNsZWFyKGFwcElkKTtcbn07XG5cbmV4cG9ydCB7IGNvbW1hbmRzIH07XG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJmaWxlIjoibGliL2NvbW1hbmRzL2FwcC1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|
|
118
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2FwcC1tYW5hZ2VtZW50LmpzIiwibmFtZXMiOlsiQVBQX0VYVEVOU0lPTlMiLCJjb21tYW5kcyIsImlzQXBwSW5zdGFsbGVkIiwiYXBwSWQiLCJhZGIiLCJxdWVyeUFwcFN0YXRlIiwibG9nIiwiaW5mbyIsIkFQUF9TVEFURSIsIk5PVF9JTlNUQUxMRUQiLCJwcm9jZXNzRXhpc3RzIiwiTk9UX1JVTk5JTkciLCJhcHBJZFJlIiwiUmVnRXhwIiwiXyIsImVzY2FwZVJlZ0V4cCIsImxpbmUiLCJkdW1wV2luZG93cyIsInNwbGl0IiwidGVzdCIsInNvbWUiLCJ4IiwiaW5jbHVkZXMiLCJSVU5OSU5HX0lOX0ZPUkVHUk9VTkQiLCJSVU5OSU5HX0lOX0JBQ0tHUk9VTkQiLCJhY3RpdmF0ZUFwcCIsImNtZCIsIm91dHB1dCIsImRlYnVnIiwiam9pbiIsInNoZWxsIiwiZSIsImVycm9yQW5kVGhyb3ciLCJtZXNzYWdlIiwicmVtb3ZlQXBwIiwib3B0aW9ucyIsInVuaW5zdGFsbEFwayIsInRlcm1pbmF0ZUFwcCIsImZvcmNlU3RvcCIsInRpbWVvdXQiLCJ1dGlsIiwiaGFzVmFsdWUiLCJpc05hTiIsInBhcnNlSW50Iiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsImluc3RhbGxBcHAiLCJhcHBQYXRoIiwibG9jYWxQYXRoIiwiaGVscGVycyIsImNvbmZpZ3VyZUFwcCIsImluc3RhbGwiLCJtb2JpbGVDbGVhckFwcCIsIm9wdHMiLCJlcnJvcnMiLCJJbnZhbGlkQXJndW1lbnRFcnJvciIsImNsZWFyIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL2FwcC1tYW5hZ2VtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyB3YWl0Rm9yQ29uZGl0aW9uIH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBBUFBfU1RBVEUgfSBmcm9tICcuLi9hbmRyb2lkLWhlbHBlcnMnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5cbmNvbnN0IEFQUF9FWFRFTlNJT05TID0gWycuYXBrJywgJy5hcGtzJ107XG5cbmxldCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIFZlcmlmeSB3aGV0aGVyIGFuIGFwcGxpY2F0aW9uIGlzIGluc3RhbGxlZCBvciBub3RcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYXBwSWQgLSBBcHBsaWNhdGlvbiBwYWNrYWdlIGlkZW50aWZpZXJcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHRoZSBhcHAgaXMgaW5zdGFsbGVkXG4gKi9cbmNvbW1hbmRzLmlzQXBwSW5zdGFsbGVkID0gYXN5bmMgZnVuY3Rpb24gaXNBcHBJbnN0YWxsZWQgKGFwcElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi5pc0FwcEluc3RhbGxlZChhcHBJZCk7XG59O1xuXG4vKipcbiAqIFF1ZXJpZXMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFwcC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYXBwSWQgLSBBcHBsaWNhdGlvbiBwYWNrYWdlIGlkZW50aWZpZXJcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBjb3JyZXNwb25kaW5nIGNvbnN0YW50LCB3aGljaCBkZXNjcmliZXNcbiAqICAgICAgICAgICAgICAgICAgIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIHN0YXRlOlxuICogMCAtIGlzIHRoZSBhcHAgaXMgbm90IGluc3RhbGxlZFxuICogMSAtIGlmIHRoZSBhcHAgaXMgaW5zdGFsbGVkLCBidXQgaXMgbm90IHJ1bm5pbmdcbiAqIDMgLSBpZiB0aGUgYXBwIGlzIHJ1bm5pbmcgaW4gdGhlIGJhY2tncm91bmRcbiAqIDQgLSBpZiB0aGUgYXBwIGlzIHJ1bm5pbmcgaW4gdGhlIGZvcmVncm91bmRcbiAqL1xuY29tbWFuZHMucXVlcnlBcHBTdGF0ZSA9IGFzeW5jIGZ1bmN0aW9uIHF1ZXJ5QXBwU3RhdGUgKGFwcElkKSB7XG4gIHRoaXMubG9nLmluZm8oYFF1ZXJ5aW5nIHRoZSBzdGF0ZSBvZiAnJHthcHBJZH0nYCk7XG4gIGlmICghYXdhaXQgdGhpcy5hZGIuaXNBcHBJbnN0YWxsZWQoYXBwSWQpKSB7XG4gICAgcmV0dXJuIEFQUF9TVEFURS5OT1RfSU5TVEFMTEVEO1xuICB9XG4gIGlmICghYXdhaXQgdGhpcy5hZGIucHJvY2Vzc0V4aXN0cyhhcHBJZCkpIHtcbiAgICByZXR1cm4gQVBQX1NUQVRFLk5PVF9SVU5OSU5HO1xuICB9XG4gIGNvbnN0IGFwcElkUmUgPSBuZXcgUmVnRXhwKGBcXFxcYiR7Xy5lc2NhcGVSZWdFeHAoYXBwSWQpfS9gKTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIChhd2FpdCB0aGlzLmFkYi5kdW1wV2luZG93cygpKS5zcGxpdCgnXFxuJykpIHtcbiAgICBpZiAoYXBwSWRSZS50ZXN0KGxpbmUpICYmIFsnbUN1cnJlbnRGb2N1cycsICdtRm9jdXNlZEFwcCddLnNvbWUoKHgpID0+IGxpbmUuaW5jbHVkZXMoeCkpKSB7XG4gICAgICByZXR1cm4gQVBQX1NUQVRFLlJVTk5JTkdfSU5fRk9SRUdST1VORDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIEFQUF9TVEFURS5SVU5OSU5HX0lOX0JBQ0tHUk9VTkQ7XG59O1xuXG4vKipcbiAqIEFjdGl2YXRlcyB0aGUgZ2l2ZW4gYXBwbGljYXRpb24gb3IgbGF1bmNoZXMgaXQgaWYgbmVjZXNzYXJ5LlxuICogVGhlIGFjdGlvbiBpcyBkb25lIHdpdGggbW9ua2V5IHRvb2wgYW5kIGxpdGVyYWxseSBzaW11bGF0ZXNcbiAqIGNsaWNraW5nIHRoZSBjb3JyZXNwb25kaW5nIGFwcGxpY2F0aW9uIGljb24gb24gdGhlIGRhc2hib2FyZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYXBwSWQgLSBBcHBsaWNhdGlvbiBwYWNrYWdlIGlkZW50aWZpZXJcbiAqL1xuY29tbWFuZHMuYWN0aXZhdGVBcHAgPSBhc3luYyBmdW5jdGlvbiBhY3RpdmF0ZUFwcCAoYXBwSWQpIHtcbiAgY29uc3QgY21kID0gWydtb25rZXknLFxuICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ0ODYwNDc1L2hvdy10by11c2UtdGhlLW1vbmtleS1jb21tYW5kLXdpdGgtYW4tYW5kcm9pZC1zeXN0ZW0tdGhhdC1kb2VzbnQtaGF2ZS1waHlzaWNhbFxuICAgICctLXBjdC1zeXNrZXlzJywgJzAnLFxuICAgICctcCcsIGFwcElkLFxuICAgICctYycsICdhbmRyb2lkLmludGVudC5jYXRlZ29yeS5MQVVOQ0hFUicsXG4gICAgJzEnXTtcbiAgbGV0IG91dHB1dCA9ICcnO1xuICB0cnkge1xuICAgIHRoaXMubG9nLmRlYnVnKGBBY3RpdmF0aW5nICcke2FwcElkfScgd2l0aCAnYWRiIHNoZWxsICR7Y21kLmpvaW4oJyAnKX0nIGNvbW1hbmRgKTtcbiAgICBvdXRwdXQgPSBhd2FpdCB0aGlzLmFkYi5zaGVsbChjbWQpO1xuICAgIHRoaXMubG9nLmRlYnVnKGBDb21tYW5kIHN0ZG91dDogJHtvdXRwdXR9YCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGBDYW5ub3QgYWN0aXZhdGUgJyR7YXBwSWR9Jy4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICB9XG4gIGlmIChvdXRwdXQuaW5jbHVkZXMoJ21vbmtleSBhYm9ydGVkJykpIHtcbiAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGBDYW5ub3QgYWN0aXZhdGUgJyR7YXBwSWR9Jy4gQXJlIHlvdSBzdXJlIGl0IGlzIGluc3RhbGxlZD9gKTtcbiAgfVxufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBVbmluc3RhbGxPcHRpb25zXG4gKiBAcHJvcGVydHkge251bWJlcn0gdGltZW91dCBbMjAwMDBdIC0gVGhlIGNvdW50IG9mIG1pbGxpc2Vjb25kcyB0byB3YWl0IHVudGlsIHRoZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcCBpcyB1bmluc3RhbGxlZC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0ga2VlcERhdGEgW2ZhbHNlXSAtIFNldCB0byB0cnVlIGluIG9yZGVyIHRvIGtlZXAgdGhlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiBkYXRhIGFuZCBjYWNoZSBmb2xkZXJzIGFmdGVyIHVuaW5zdGFsbC5cbiAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBhcHBsaWNhdGlvbiBpZiBpcyBpbnN0YWxsZWQuXG4gKiBUaGUgY2FsbCBpcyBpZ25vcmVkIGlmIHRoZSBhcHAgaXMgbm90IGluc3RhbGxlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYXBwSWQgLSBBcHBsaWNhdGlvbiBwYWNrYWdlIGlkZW50aWZpZXJcbiAqIEBwYXJhbSB7P1VuaW5zdGFsbE9wdGlvbnN9IG9wdGlvbnMgLSBUaGUgc2V0IG9mIHJlbW92YWwgb3B0aW9uc1xuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHBhY2thZ2Ugd2FzIGZvdW5kIG9uIHRoZSBkZXZpY2UgYW5kXG4gKiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5IHVuaW5zdGFsbGVkLlxuICovXG5jb21tYW5kcy5yZW1vdmVBcHAgPSBhc3luYyBmdW5jdGlvbiByZW1vdmVBcHAgKGFwcElkLCBvcHRpb25zID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYWRiLnVuaW5zdGFsbEFwayhhcHBJZCwgb3B0aW9ucyk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFRlcm1pbmF0ZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfHN0cmluZ30gdGltZW91dCBbNTAwXSAtIFRoZSBjb3VudCBvZiBtaWxsaXNlY29uZHMgdG8gd2FpdCB1bnRpbCB0aGVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcCBpcyB0ZXJtaW5hdGVkLlxuICovXG5cbi8qKlxuICogVGVybWluYXRlcyB0aGUgYXBwIGlmIGl0IGlzIHJ1bm5pbmcuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFwcElkIC0gQXBwbGljYXRpb24gcGFja2FnZSBpZGVudGlmaWVyXG4gKiBAcGFyYW0gez9UZXJtaW5hdGVPcHRpb25zfSBvcHRpb25zIC0gVGhlIHNldCBvZiBhcHBsaWNhdGlvbiB0ZXJtaW5hdGlvbiBvcHRpb25zXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgYXBwIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSB0ZXJtaW5hdGVkLlxuICogQHRocm93cyB7RXJyb3J9IGlmIHRoZSBhcHAgaGFzIG5vdCBiZWVuIHRlcm1pbmF0ZWQgd2l0aGluIHRoZSBnaXZlbiB0aW1lb3V0LlxuICovXG5jb21tYW5kcy50ZXJtaW5hdGVBcHAgPSBhc3luYyBmdW5jdGlvbiB0ZXJtaW5hdGVBcHAgKGFwcElkLCBvcHRpb25zID0ge30pIHtcbiAgdGhpcy5sb2cuaW5mbyhgVGVybWluYXRpbmcgJyR7YXBwSWR9J2ApO1xuICBpZiAoIShhd2FpdCB0aGlzLmFkYi5wcm9jZXNzRXhpc3RzKGFwcElkKSkpIHtcbiAgICB0aGlzLmxvZy5pbmZvKGBUaGUgYXBwICcke2FwcElkfScgaXMgbm90IHJ1bm5pbmdgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgYXdhaXQgdGhpcy5hZGIuZm9yY2VTdG9wKGFwcElkKTtcbiAgY29uc3QgdGltZW91dCA9IHV0aWwuaGFzVmFsdWUob3B0aW9ucy50aW1lb3V0KSAmJiAhaXNOYU4ob3B0aW9ucy50aW1lb3V0KSA/IHBhcnNlSW50KG9wdGlvbnMudGltZW91dCwgMTApIDogNTAwO1xuICB0cnkge1xuICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oYXN5bmMgKCkgPT4gYXdhaXQgdGhpcy5xdWVyeUFwcFN0YXRlKGFwcElkKSA8PSBBUFBfU1RBVEUuTk9UX1JVTk5JTkcsXG4gICAgICB7d2FpdE1zOiB0aW1lb3V0LCBpbnRlcnZhbE1zOiAxMDB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYCcke2FwcElkfScgaXMgc3RpbGwgcnVubmluZyBhZnRlciAke3RpbWVvdXR9bXMgdGltZW91dGApO1xuICB9XG4gIHRoaXMubG9nLmluZm8oYCcke2FwcElkfScgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHRlcm1pbmF0ZWRgKTtcbiAgcmV0dXJuIHRydWU7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEluc3RhbGxPcHRpb25zXG4gKiBAcHJvcGVydHkge251bWJlcn0gdGltZW91dCBbNjAwMDBdIC0gVGhlIGNvdW50IG9mIG1pbGxpc2Vjb25kcyB0byB3YWl0IHVudGlsIHRoZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcCBpcyBpbnN0YWxsZWQuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGFsbG93VGVzdFBhY2thZ2VzIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSBpbiBvcmRlciB0byBhbGxvdyB0ZXN0XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrYWdlcyBpbnN0YWxsYXRpb24uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHVzZVNkY2FyZCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gaW5zdGFsbCB0aGUgYXBwIG9uIHNkY2FyZFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RlYWQgb2YgdGhlIGRldmljZSBtZW1vcnkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGdyYW50UGVybWlzc2lvbnMgW2ZhbHNlXSAtIFNldCB0byB0cnVlIGluIG9yZGVyIHRvIGdyYW50IGFsbCB0aGVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbnMgcmVxdWVzdGVkIGluIHRoZSBhcHBsaWNhdGlvbidzIG1hbmlmZXN0XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIGluc3RhbGxhdGlvbiBpcyBjb21wbGV0ZWRcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZXIgQW5kcm9pZCA2Ky5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gcmVwbGFjZSBbdHJ1ZV0gLSBTZXQgaXQgdG8gZmFsc2UgaWYgeW91IGRvbid0IHdhbnRcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgYXBwbGljYXRpb24gdG8gYmUgdXBncmFkZWQvcmVpbnN0YWxsZWRcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpdCBpcyBhbHJlYWR5IHByZXNlbnQgb24gdGhlIGRldmljZS5cbiAqL1xuXG4vKipcbiAqIEluc3RhbGxzIHRoZSBnaXZlbiBhcHBsaWNhdGlvbiB0byB0aGUgZGV2aWNlIHVuZGVyIHRlc3RcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYXBwUGF0aCAtIFRoZSBsb2NhbCBhcGsgcGF0aCBvciBhIHJlbW90ZSB1cmxcbiAqIEBwYXJhbSB7P0luc3RhbGxPcHRpb25zfSBvcHRpb25zIC0gVGhlIHNldCBvZiBpbnN0YWxsYXRpb24gb3B0aW9uc1xuICogQHRocm93cyB7RXJyb3J9IGlmIHRoZSBnaXZlbiBhcGsgZG9lcyBub3QgZXhpc3Qgb3IgaXMgbm90IHJlYWNoYWJsZVxuICovXG5jb21tYW5kcy5pbnN0YWxsQXBwID0gYXN5bmMgZnVuY3Rpb24gaW5zdGFsbEFwcCAoYXBwUGF0aCwgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IGxvY2FsUGF0aCA9IGF3YWl0IHRoaXMuaGVscGVycy5jb25maWd1cmVBcHAoYXBwUGF0aCwgQVBQX0VYVEVOU0lPTlMpO1xuICBhd2FpdCB0aGlzLmFkYi5pbnN0YWxsKGxvY2FsUGF0aCwgb3B0aW9ucyk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IENsZWFyQXBwT3B0aW9uc1xuICogQHByb3BlcnR5IHshc3RyaW5nfSBhcHBJZCBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXBwbGljYXRpb24gcGFja2FnZSB0byBiZSBjbGVhcmVkXG4gKi9cblxuLyoqXG4gKiBEZWxldGVzIGFsbCBkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIHBhY2thZ2UuXG4gKlxuICogQHBhcmFtIHtDbGVhckFwcE9wdGlvbnN9IG9wdHNcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBjbGVhbmluZyBvZiB0aGUgYXBwIGRhdGEgZmFpbHNcbiAqL1xuY29tbWFuZHMubW9iaWxlQ2xlYXJBcHAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVDbGVhckFwcCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHthcHBJZH0gPSBvcHRzO1xuICBpZiAoIWFwcElkKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgVGhlICdhcHBJZCcgYXJndW1lbnQgaXMgcmVxdWlyZWRgKTtcbiAgfVxuICBhd2FpdCB0aGlzLmFkYi5jbGVhcihhcHBJZCk7XG59O1xuXG5leHBvcnQgeyBjb21tYW5kcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsY0FBYyxHQUFHLENBQUMsTUFBRCxFQUFTLE9BQVQsQ0FBdkI7QUFFQSxJQUFJQyxRQUFRLEdBQUcsRUFBZjs7O0FBUUFBLFFBQVEsQ0FBQ0MsY0FBVCxHQUEwQixlQUFlQSxjQUFmLENBQStCQyxLQUEvQixFQUFzQztFQUM5RCxPQUFPLE1BQU0sS0FBS0MsR0FBTCxDQUFTRixjQUFULENBQXdCQyxLQUF4QixDQUFiO0FBQ0QsQ0FGRDs7QUFlQUYsUUFBUSxDQUFD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
|
|
@@ -405,4 +405,4 @@ var _default = extensions;
|
|
|
405
405
|
exports.default = _default;require('source-map-support').install();
|
|
406
406
|
|
|
407
407
|
|
|
408
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9jb250ZXh0LmpzIl0sIm5hbWVzIjpbIkNIUk9NRURSSVZFUl9BVVRPRE9XTkxPQURfRkVBVFVSRSIsImNvbW1hbmRzIiwiaGVscGVycyIsImV4dGVuc2lvbnMiLCJnZXRDdXJyZW50Q29udGV4dCIsImN1ckNvbnRleHQiLCJkZWZhdWx0Q29udGV4dE5hbWUiLCJnZXRDb250ZXh0cyIsIndlYnZpZXdzTWFwcGluZyIsIndlYnZpZXdIZWxwZXJzIiwiZ2V0V2ViVmlld3NNYXBwaW5nIiwiYWRiIiwib3B0cyIsImFzc2lnbkNvbnRleHRzIiwic2V0Q29udGV4dCIsIm5hbWUiLCJ1dGlsIiwiaGFzVmFsdWUiLCJXRUJWSUVXX1dJTiIsImRlZmF1bHRXZWJ2aWV3TmFtZSIsImNvbnRleHRzIiwiXyIsImluY2x1ZGVzIiwiZXJyb3JzIiwiTm9TdWNoQ29udGV4dEVycm9yIiwic3dpdGNoQ29udGV4dCIsIm1vYmlsZUdldENvbnRleHRzIiwiYW5kcm9pZERldmljZVNvY2tldCIsImVuc3VyZVdlYnZpZXdzSGF2ZVBhZ2VzIiwid2Vidmlld0RldnRvb2xzUG9ydCIsImVuYWJsZVdlYnZpZXdEZXRhaWxzQ29sbGVjdGlvbiIsIk9iamVjdCIsImFzc2lnbiIsImlzQ2hyb21lU2Vzc2lvbiIsIndlYnZpZXdzIiwicGFyc2VXZWJ2aWV3TmFtZXMiLCJOQVRJVkVfV0lOIiwibG9nIiwiZGVidWciLCJKU09OIiwic3RyaW5naWZ5IiwiaXNDaHJvbWVkcml2ZXJDb250ZXh0Iiwic3RhcnRDaHJvbWVkcml2ZXJQcm94eSIsInJlY3JlYXRlQ2hyb21lRHJpdmVyU2Vzc2lvbnMiLCJzdG9wQ2hyb21lZHJpdmVyUHJveGllcyIsInN1c3BlbmRDaHJvbWVkcml2ZXJQcm94eSIsIkVycm9yIiwiV0VCVklFV19CQVNFIiwiYXBwUGFja2FnZSIsImlzV2ViQ29udGV4dCIsImNvbnRleHQiLCJjZCIsInNlc3Npb25DaHJvbWVkcml2ZXJzIiwic2V0dXBFeGlzdGluZ0Nocm9tZWRyaXZlciIsImNsb25lRGVlcCIsImNocm9tZVVzZVJ1bm5pbmdBcHAiLCJleHRyYWN0Q2hyb21lQW5kcm9pZFBhY2thZ2VGcm9tQ29udGV4dE5hbWUiLCJhbmRyb2lkUGFja2FnZSIsIm1hdGNoIiwibGVuZ3RoIiwiY2hyb21lQW5kcm9pZFBhY2thZ2UiLCJoYXMiLCJtYXAiLCJ3bSIsIndlYnZpZXdOYW1lIiwia25vd25QYWNrYWdlIiwiS05PV05fQ0hST01FX1BBQ0tBR0VfTkFNRVMiLCJhcHBTdGF0ZSIsInF1ZXJ5QXBwU3RhdGUiLCJBUFBfU1RBVEUiLCJSVU5OSU5HX0lOX0JBQ0tHUk9VTkQiLCJSVU5OSU5HX0lOX0ZPUkVHUk9VTkQiLCJpbmZvIiwic2V0dXBOZXdDaHJvbWVkcml2ZXIiLCJjdXJEZXZpY2VJZCIsIm9uIiwiQ2hyb21lZHJpdmVyIiwiRVZFTlRfQ0hBTkdFRCIsIm1zZyIsInN0YXRlIiwiU1RBVEVfU1RPUFBFRCIsIm9uQ2hyb21lZHJpdmVyU3RvcCIsImNocm9tZWRyaXZlciIsInByb3h5UmVxUmVzIiwicHJveHlSZXEiLCJiaW5kIiwicHJveHlDb21tYW5kIiwiandwcm94eSIsImNvbW1hbmQiLCJqd3BQcm94eUFjdGl2ZSIsIndhcm4iLCJlcnIiLCJzdGFydFVuZXhwZWN0ZWRTaHV0ZG93biIsImtleXMiLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJzdG9wIiwibWVzc2FnZSIsInZpZXdOYW1lIiwiQ0hST01JVU1fV0lOIiwic2hvdWxkRGlzbWlzc0Nocm9tZVdlbGNvbWUiLCJjaHJvbWVPcHRpb25zIiwiaXNBcnJheSIsImFyZ3MiLCJkaXNtaXNzQ2hyb21lV2VsY29tZSIsImFjdGl2aXR5IiwiZ2V0Q3VycmVudEFjdGl2aXR5IiwiZWwiLCJmaW5kRWxPckVscyIsImNsaWNrIiwiRUxFTUVOVCIsImUiLCJzdGFydENocm9tZVNlc3Npb24iLCJrbm93blBhY2thZ2VzIiwiY2hyb21lQnVuZGxlSWQiLCJjaHJvbWVBbmRyb2lkQWN0aXZpdHkiLCJhcHBBY3Rpdml0eSIsImhhc1dvcmtpbmdXZWJ2aWV3IiwicmVzdGFydCIsImdldENocm9tZWRyaXZlclBvcnQiLCJwb3J0U3BlYyIsImdldFBvcnQiLCJCIiwicHJvbWlzaWZ5IiwiUG9ydEZpbmRlciIsInBvcnQiLCJmb3VuZFBvcnQiLCJwb3RlbnRpYWxQb3J0Iiwic3RvcFBvcnQiLCJwYXJzZUludCIsImlzQ2hyb21lZHJpdmVyQXV0b2Rvd25sb2FkRW5hYmxlZCIsImlzRmVhdHVyZUVuYWJsZWQiLCJjaHJvbWVEcml2ZXJQb3J0IiwiY2hyb21lZHJpdmVyUG9ydCIsImNocm9tZWRyaXZlclBvcnRzIiwiZGV0YWlscyIsImdldFdlYnZpZXdEZXRhaWxzIiwidW5kZWZpbmVkIiwiaXNFbXB0eSIsImV4ZWN1dGFibGUiLCJjaHJvbWVkcml2ZXJFeGVjdXRhYmxlIiwiY21kQXJncyIsImNocm9tZWRyaXZlckFyZ3MiLCJ2ZXJib3NlIiwic2hvd0Nocm9tZWRyaXZlckxvZyIsImV4ZWN1dGFibGVEaXIiLCJjaHJvbWVkcml2ZXJFeGVjdXRhYmxlRGlyIiwibWFwcGluZ1BhdGgiLCJjaHJvbWVkcml2ZXJDaHJvbWVNYXBwaW5nRmlsZSIsImJ1bmRsZUlkIiwidXNlU3lzdGVtRXhlY3V0YWJsZSIsImNocm9tZWRyaXZlclVzZVN5c3RlbUV4ZWN1dGFibGUiLCJkaXNhYmxlQnVpbGRDaGVjayIsImNocm9tZWRyaXZlckRpc2FibGVCdWlsZENoZWNrIiwiaXNBdXRvZG93bmxvYWRFbmFibGVkIiwib3B0IiwiZW5kc1dpdGgiLCJtZXJnZSIsImNhcHMiLCJjcmVhdGVDaHJvbWVkcml2ZXJDYXBzIiwic3RhcnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBSUE7Ozs7OztBQUVBLE1BQU1BLGlDQUFpQyxHQUFHLDJCQUExQztBQUVBLElBQUlDLFFBQVEsR0FBRyxFQUFmO0FBQUEsSUFBbUJDLE9BQU8sR0FBRyxFQUE3QjtBQUFBLElBQWlDQyxVQUFV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TVQsb0JBQW9CLEdBQUd2RSxPQUFPLENBQUN1RSxvQkFBckM7O0FBR0ExQyxNQUFNLENBQUNDLE1BQVAsQ0FBYzdCLFVBQWQsRUFBMEJGLFFBQTFCLEVBQW9DQyxPQUFwQztlQUVlQyxVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBDaHJvbWVkcml2ZXIgZnJvbSAnYXBwaXVtLWNocm9tZWRyaXZlcic7XG5pbXBvcnQgUG9ydEZpbmRlciBmcm9tICdwb3J0ZmluZGVyJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5pbXBvcnQge1xuICBkZWZhdWx0IGFzIHdlYnZpZXdIZWxwZXJzLFxuICBOQVRJVkVfV0lOLCBXRUJWSUVXX0JBU0UsIFdFQlZJRVdfV0lOLCBDSFJPTUlVTV9XSU4sIEtOT1dOX0NIUk9NRV9QQUNLQUdFX05BTUVTXG59IGZyb20gJy4uL3dlYnZpZXctaGVscGVycyc7XG5pbXBvcnQgeyBBUFBfU1RBVEUgfSBmcm9tICcuLi9hbmRyb2lkLWhlbHBlcnMnO1xuXG5jb25zdCBDSFJPTUVEUklWRVJfQVVUT0RPV05MT0FEX0ZFQVRVUkUgPSAnY2hyb21lZHJpdmVyX2F1dG9kb3dubG9hZCc7XG5cbmxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBBY3R1YWwgTUpTT05XUCBjb21tYW5kIGhhbmRsZXJzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5jb21tYW5kcy5nZXRDdXJyZW50Q29udGV4dCA9IGFzeW5jIGZ1bmN0aW9uIGdldEN1cnJlbnRDb250ZXh0ICgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIC8vIGlmIHRoZSBjdXJyZW50IGNvbnRleHQgaXMgYG51bGxgLCBpbmRpY2F0aW5nIG5vIGNvbnRleHRcbiAgLy8gZXhwbGljaXRseSBzZXQsIGl0IGlzIHRoZSBkZWZhdWx0IGNvbnRleHRcbiAgcmV0dXJuIHRoaXMuY3VyQ29udGV4dCB8fCB0aGlzLmRlZmF1bHRDb250ZXh0TmFtZSgpO1xufTtcblxuY29tbWFuZHMuZ2V0Q29udGV4dHMgPSBhc3luYyBmdW5jdGlvbiBnZXRDb250ZXh0cyAoKSB7XG4gIGNvbnN0IHdlYnZpZXdzTWFwcGluZyA9IGF3YWl0IHdlYnZpZXdIZWxwZXJzLmdldFdlYlZpZXdzTWFwcGluZyh0aGlzLmFkYiwgdGhpcy5vcHRzKTtcbiAgcmV0dXJuIHRoaXMuYXNzaWduQ29udGV4dHMod2Vidmlld3NNYXBwaW5nKTtcbn07XG5cbmNvbW1hbmRzLnNldENvbnRleHQgPSBhc3luYyBmdW5jdGlvbiBzZXRDb250ZXh0IChuYW1lKSB7XG4gIGlmICghdXRpbC5oYXNWYWx1ZShuYW1lKSkge1xuICAgIG5hbWUgPSB0aGlzLmRlZmF1bHRDb250ZXh0TmFtZSgpO1xuICB9IGVsc2UgaWYgKG5hbWUgPT09IFdFQlZJRVdfV0lOKSB7XG4gICAgLy8gaGFuZGxlIHNldENvbnRleHQgXCJXRUJWSUVXXCJcbiAgICBuYW1lID0gdGhpcy5kZWZhdWx0V2Vidmlld05hbWUoKTtcbiAgfVxuICAvLyBpZiB3ZSdyZSBhbHJlYWR5IGluIHRoZSBjb250ZXh0IHdlIHdhbnQsIGRvIG5vdGhpbmdcbiAgaWYgKG5hbWUgPT09IHRoaXMuY3VyQ29udGV4dCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHdlYnZpZXdzTWFwcGluZyA9IGF3YWl0IHdlYnZpZXdIZWxwZXJzLmdldFdlYlZpZXdzTWFwcGluZyh0aGlzLmFkYiwgdGhpcy5vcHRzKTtcbiAgY29uc3QgY29udGV4dHMgPSB0aGlzLmFzc2lnbkNvbnRleHRzKHdlYnZpZXdzTWFwcGluZyk7XG4gIC8vIGlmIHRoZSBjb250ZXh0IHdlIHdhbnQgZG9lc24ndCBleGlzdCwgZmFpbFxuICBpZiAoIV8uaW5jbHVkZXMoY29udGV4dHMsIG5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob1N1Y2hDb250ZXh0RXJyb3IoKTtcbiAgfVxuXG4gIGF3YWl0IHRoaXMuc3dpdGNoQ29udGV4dChuYW1lLCB3ZWJ2aWV3c01hcHBpbmcpO1xuICB0aGlzLmN1ckNvbnRleHQgPSBuYW1lO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBXZWJ2aWV3c01hcHBpbmdcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwcm9jIFRoZSBuYW1lIG9mIHRoZSBEZXZ0b29scyBVbml4IHNvY2tldFxuICogQHByb3BlcnR5IHtzdHJpbmd9IHdlYnZpZXcgVGhlIHdlYiB2aWV3IGFsaWFzLiBMb29rcyBsaWtlIGBXRUJWSUVXX2BcbiAqIHByZWZpeCBwbHVzIFBJRCBvciBwYWNrYWdlIG5hbWVcbiAqIEBwcm9wZXJ0eSB7P09iamVjdH0gaW5mbyBXZWJ2aWV3IGluZm9ybWF0aW9uIGFzIGl0IGlzIHJldHJpZXZlZCBieVxuICogL2pzb24vdmVyc2lvbiBDRFAgZW5kcG9pbnRcbiAqIEBwcm9wZXJ0eSB7P0FycmF5PE9iamVjdD59IHBhZ2VzIFdlYnZpZXcgcGFnZXMgbGlzdCBhcyBpdCBpcyByZXRyaWV2ZWQgYnlcbiAqIC9qc29uL2xpc3QgQ0RQIGVuZHBvaW50XG4gKiBAcHJvcGVyeSB7P3N0cmluZ30gd2Vidmlld05hbWUgQW4gYWN0dWFsIHdlYnZpZXcgbmFtZSBmb3Igc3dpdGNoaW5nIGNvbnRleHQuXG4gKiBUaGlzIHZhbHVlIGJlY29tZXMgbnVsbCB3aGVuIGZhaWxpbmcgdG8gZmluZCBhIFBJRCBmb3IgYSB3ZWJ2aWV3LlxuICpcbiAqIFRoZSBmb2xsb3dpbmcganNvbiBkZW1vbnN0cmF0ZXMgdGhlIGV4YW1wbGUgb2YgV2Vidmlld3NNYXBwaW5nIG9iamVjdC5cbiAqIE5vdGUgdGhhdCBgZGVzY3JpcHRpb25gIGluIGBwYWdlYCBjYW4gYmUgYW4gZW1wdHkgc3RyaW5nIG1vc3QgbGlrZWx5IHdoZW4gaXQgY29tZXMgdG8gTW9iaWxlIENocm9tZSlcbiAqIHtcbiAqICAgXCJwcm9jXCI6IFwiQHdlYnZpZXdfZGV2dG9vbHNfcmVtb3RlXzIyMTM4XCIsXG4gKiAgIFwid2Vidmlld1wiOiBcIldFQlZJRVdfMjIxMzhcIixcbiAqICAgXCJpbmZvXCI6IHtcbiAqICAgICBcIkFuZHJvaWQtUGFja2FnZVwiOiBcImlvLmFwcGl1bS5zZXR0aW5nc1wiLFxuICogICAgIFwiQnJvd3NlclwiOiBcIkNocm9tZS83NC4wLjM3MjkuMTg1XCIsXG4gKiAgICAgXCJQcm90b2NvbC1WZXJzaW9uXCI6IFwiMS4zXCIsXG4gKiAgICAgXCJVc2VyLUFnZW50XCI6IFwiTW96aWxsYS81LjAgKExpbnV4OyBBbmRyb2lkIDEwOyBBbmRyb2lkIFNESyBidWlsdCBmb3IgeDg2IEJ1aWxkL1FTUjEuMTkwOTIwLjAwMTsgd3YpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4wIENocm9tZS83NC4wLjM3MjkuMTg1IE1vYmlsZSBTYWZhcmkvNTM3LjM2XCIsXG4gKiAgICAgXCJWOC1WZXJzaW9uXCI6IFwiNy40LjI4OC4yOFwiLFxuICogICAgIFwiV2ViS2l0LVZlcnNpb25cIjogXCI1MzcuMzYgKEAyMjk1NTY4MmY5NGNlMDkzMzYxOTdiZmI4ZGZmZWE5OTFmYTMyZjBkKVwiLFxuICogICAgIFwid2ViU29ja2V0RGVidWdnZXJVcmxcIjogXCJ3czovLzEyNy4wLjAuMToxMDkwMC9kZXZ0b29scy9icm93c2VyXCJcbiAqICAgfSxcbiAqICAgXCJwYWdlc1wiOiBbXG4gKiAgICAge1xuICogICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIntcXFwiYXR0YWNoZWRcXFwiOnRydWUsXFxcImVtcHR5XFxcIjpmYWxzZSxcXFwiaGVpZ2h0XFxcIjoxNDU4LFxcXCJzY3JlZW5YXFxcIjowLFxcXCJzY3JlZW5ZXFxcIjozMzYsXFxcInZpc2libGVcXFwiOnRydWUsXFxcIndpZHRoXFxcIjoxMDgwfVwiLFxuICogICAgICAgXCJkZXZ0b29sc0Zyb250ZW5kVXJsXCI6IFwiaHR0cDovL2Nocm9tZS1kZXZ0b29scy1mcm9udGVuZC5hcHBzcG90LmNvbS9zZXJ2ZV9yZXYvQDIyOTU1NjgyZjk0Y2UwOTMzNjE5N2JmYjhkZmZlYTk5MWZhMzJmMGQvaW5zcGVjdG9yLmh0bWw/d3M9MTI3LjAuMC4xOjEwOTAwL2RldnRvb2xzL3BhZ2UvMjczMjVDQzUwQjYwMEQzMUIyMzNGNDVFMDk0ODdCMUZcIixcbiAqICAgICAgIFwiaWRcIjogXCIyNzMyNUNDNTBCNjAwRDMxQjIzM0Y0NUUwOTQ4N0IxRlwiLFxuICogICAgICAgXCJ0aXRsZVwiOiBcIlJlbGVhc2VzIMK3IGFwcGl1bS9hcHBpdW0gwrcgR2l0SHViXCIsXG4gKiAgICAgICBcInR5cGVcIjogXCJwYWdlXCIsXG4gKiAgICAgICBcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hcHBpdW0vYXBwaXVtL3JlbGVhc2VzXCIsXG4gKiAgICAgICBcIndlYlNvY2tldERlYnVnZ2VyVXJsXCI6IFwid3M6Ly8xMjcuMC4wLjE6MTA5MDAvZGV2dG9vbHMvcGFnZS8yNzMyNUNDNTBCNjAwRDMxQjIzM0Y0NUUwOTQ4N0IxRlwiXG4gKiAgICAgfVxuICogICBdLFxuICogICBcIndlYnZpZXdOYW1lXCI6IFwiV0VCVklFV19jb20uaW8uYXBwaXVtLnNldHRpbmdcIlxuICogfVxuICovXG5cbi8qKlxuICogUmV0dXJucyBhIHdlYnZpZXdzTWFwcGluZyBiYXNlZCBvbiBDRFAgZW5kcG9pbnRzXG4gKlxuICogQHJldHVybiB7QXJyYXk8V2Vidmlld3NNYXBwaW5nPn0gd2Vidmlld3NNYXBwaW5nXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUdldENvbnRleHRzID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlR2V0Q29udGV4dHMgKCkge1xuICBjb25zdCBvcHRzID0ge1xuICAgIGFuZHJvaWREZXZpY2VTb2NrZXQ6IHRoaXMub3B0cy5hbmRyb2lkRGV2aWNlU29ja2V0LFxuICAgIGVuc3VyZVdlYnZpZXdzSGF2ZVBhZ2VzOiB0cnVlLFxuICAgIHdlYnZpZXdEZXZ0b29sc1BvcnQ6IHRoaXMub3B0cy53ZWJ2aWV3RGV2dG9vbHNQb3J0LFxuICAgIGVuYWJsZVdlYnZpZXdEZXRhaWxzQ29sbGVjdGlvbjogdHJ1ZVxuICB9O1xuICByZXR1cm4gYXdhaXQgd2Vidmlld0hlbHBlcnMuZ2V0V2ViVmlld3NNYXBwaW5nKHRoaXMuYWRiLCBvcHRzKTtcbn07XG5cbmhlbHBlcnMuYXNzaWduQ29udGV4dHMgPSBmdW5jdGlvbiBhc3NpZ25Db250ZXh0cyAod2Vidmlld3NNYXBwaW5nKSB7XG4gIGNvbnN0IG9wdHMgPSBPYmplY3QuYXNzaWduKHtpc0Nocm9tZVNlc3Npb246IHRoaXMuaXNDaHJvbWVTZXNzaW9ufSwgdGhpcy5vcHRzKTtcbiAgY29uc3Qgd2Vidmlld3MgPSB3ZWJ2aWV3SGVscGVycy5wYXJzZVdlYnZpZXdOYW1lcyh3ZWJ2aWV3c01hcHBpbmcsIG9wdHMpO1xuICB0aGlzLmNvbnRleHRzID0gW05BVElWRV9XSU4sIC4uLndlYnZpZXdzXTtcbiAgdGhpcy5sb2cuZGVidWcoYEF2YWlsYWJsZSBjb250ZXh0czogJHtKU09OLnN0cmluZ2lmeSh0aGlzLmNvbnRleHRzKX1gKTtcbiAgcmV0dXJuIHRoaXMuY29udGV4dHM7XG59O1xuXG5oZWxwZXJzLnN3aXRjaENvbnRleHQgPSBhc3luYyBmdW5jdGlvbiBzd2l0Y2hDb250ZXh0IChuYW1lLCB3ZWJ2aWV3c01hcHBpbmcpIHtcbiAgLy8gV2UgaGF2ZSBzb21lIG9wdGlvbnMgd2hlbiBpdCBjb21lcyB0byB3ZWJ2aWV3cy4gSWYgd2Ugd2FudCBhXG4gIC8vIENocm9tZWRyaXZlciB3ZWJ2aWV3LCB3ZSBjYW4gb25seSBjb250cm9sIG9uZSBhdCBhIHRpbWUuXG4gIGlmICh0aGlzLmlzQ2hyb21lZHJpdmVyQ29udGV4dChuYW1lKSkge1xuICAgIC8vIHN0YXJ0IHByb3h5aW5nIGNvbW1hbmRzIGRpcmVjdGx5IHRvIGNocm9tZWRyaXZlclxuICAgIGF3YWl0IHRoaXMuc3RhcnRDaHJvbWVkcml2ZXJQcm94eShuYW1lLCB3ZWJ2aWV3c01hcHBpbmcpO1xuICB9IGVsc2UgaWYgKHRoaXMuaXNDaHJvbWVkcml2ZXJDb250ZXh0KHRoaXMuY3VyQ29udGV4dCkpIHtcbiAgICAvLyBpZiB3ZSdyZSBtb3ZpbmcgdG8gYSBub24tY2hyb21lZHJpdmVyIHdlYnZpZXcsIGFuZCBvdXIgY3VycmVudCBjb250ZXh0XG4gICAgLy8gX2lzXyBhIGNocm9tZWRyaXZlciB3ZWJ2aWV3LCBpZiBjYXBzIHJlY3JlYXRlQ2hyb21lRHJpdmVyU2Vzc2lvbnMgaXMgc2V0XG4gICAgLy8gdG8gdHJ1ZSB0aGVuIGtpbGwgY2hyb21lZHJpdmVyIHNlc3Npb24gdXNpbmcgc3RvcENocm9tZWRyaXZlclByb3hpZXMgb3JcbiAgICAvLyBlbHNlIHNpbXBseSBzdXNwZW5kIHByb3h5aW5nIHRvIHRoZSBsYXR0ZXJcbiAgICBpZiAodGhpcy5vcHRzLnJlY3JlYXRlQ2hyb21lRHJpdmVyU2Vzc2lvbnMpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdyZWNyZWF0ZUNocm9tZURyaXZlclNlc3Npb25zIHNldCB0byB0cnVlOyBraWxsaW5nIGV4aXN0aW5nIGNocm9tZWRyaXZlcnMnKTtcbiAgICAgIGF3YWl0IHRoaXMuc3RvcENocm9tZWRyaXZlclByb3hpZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5zdXNwZW5kQ2hyb21lZHJpdmVyUHJveHkoKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBEaWRuJ3Qga25vdyBob3cgdG8gaGFuZGxlIHN3aXRjaGluZyB0byBjb250ZXh0ICcke25hbWV9J2ApO1xuICB9XG59O1xuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogT24tb2JqZWN0IGNvbnRleHQtcmVsYXRlZCBoZWxwZXJzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gVGhlIHJlYXNvbiB0aGlzIGlzIGEgZnVuY3Rpb24gYW5kIG5vdCBqdXN0IGEgY29uc3RhbnQgaXMgdGhhdCBib3RoIGFuZHJvaWQtXG4vLyBkcml2ZXIgYW5kIHNlbGVuZHJvaWQtZHJpdmVyIHVzZSB0aGlzIGxvZ2ljLCBhbmQgZWFjaCBvbmUgcmV0dXJuc1xuLy8gYSBkaWZmZXJlbnQgZGVmYXVsdCBjb250ZXh0IG5hbWVcbmhlbHBlcnMuZGVmYXVsdENvbnRleHROYW1lID0gZnVuY3Rpb24gZGVmYXVsdENvbnRleHROYW1lICgpIHtcbiAgcmV0dXJuIE5BVElWRV9XSU47XG59O1xuXG5oZWxwZXJzLmRlZmF1bHRXZWJ2aWV3TmFtZSA9IGZ1bmN0aW9uIGRlZmF1bHRXZWJ2aWV3TmFtZSAoKSB7XG4gIHJldHVybiBXRUJWSUVXX0JBU0UgKyB0aGlzLm9wdHMuYXBwUGFja2FnZTtcbn07XG5cbmhlbHBlcnMuaXNXZWJDb250ZXh0ID0gZnVuY3Rpb24gaXNXZWJDb250ZXh0ICgpIHtcbiAgcmV0dXJuIHRoaXMuY3VyQ29udGV4dCAhPT0gbnVsbCAmJiB0aGlzLmN1ckNvbnRleHQgIT09IE5BVElWRV9XSU47XG59O1xuXG4vLyBUdXJuIG9uIHByb3h5aW5nIHRvIGFuIGV4aXN0aW5nIENocm9tZWRyaXZlciBzZXNzaW9uIG9yIGEgbmV3IG9uZVxuaGVscGVycy5zdGFydENocm9tZWRyaXZlclByb3h5ID0gYXN5bmMgZnVuY3Rpb24gc3RhcnRDaHJvbWVkcml2ZXJQcm94eSAoY29udGV4dCwgd2Vidmlld3NNYXBwaW5nKSB7XG4gIHRoaXMubG9nLmRlYnVnKGBDb25uZWN0aW5nIHRvIGNocm9tZS1iYWNrZWQgd2VidmlldyBjb250ZXh0ICcke2NvbnRleHR9J2ApO1xuXG4gIGxldCBjZDtcbiAgaWYgKHRoaXMuc2Vzc2lvbkNocm9tZWRyaXZlcnNbY29udGV4dF0pIHtcbiAgICAvLyBpbiB0aGUgY2FzZSB3aGVyZSB3ZSd2ZSBhbHJlYWR5IHNldCB1cCBhIGNocm9tZWRyaXZlciBmb3IgYSBjb250ZXh0LFxuICAgIC8vIHdlIHdhbnQgdG8gcmVjb25uZWN0IHRvIGl0LCBub3QgY3JlYXRlIGEgd2hvbGUgbmV3IG9uZVxuICAgIHRoaXMubG9nLmRlYnVnKGBGb3VuZCBleGlzdGluZyBDaHJvbWVkcml2ZXIgZm9yIGNvbnRleHQgJyR7Y29udGV4dH0nLiBVc2luZyBpdC5gKTtcbiAgICBjZCA9IHRoaXMuc2Vzc2lvbkNocm9tZWRyaXZlcnNbY29udGV4dF07XG4gICAgYXdhaXQgc2V0dXBFeGlzdGluZ0Nocm9tZWRyaXZlcih0aGlzLmxvZywgY2QpO1xuICB9IGVsc2Uge1xuICAgIGxldCBvcHRzID0gXy5jbG9uZURlZXAodGhpcy5vcHRzKTtcbiAgICBvcHRzLmNocm9tZVVzZVJ1bm5pbmdBcHAgPSB0cnVlO1xuXG4gICAgLy8gaWYgcmVxdWVzdGVkLCB0ZWxsIGNocm9tZWRyaXZlciB0byBhdHRhY2ggdG8gdGhlIGFuZHJvaWQgcGFja2FnZSB3ZSBoYXZlXG4gICAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBjb250ZXh0IG5hbWUsIHJhdGhlciB0aGFuIHRoZSBwYWNrYWdlIG9mIHRoZSBBVVQuXG4gICAgLy8gQW5kIHR1cm4gdGhpcyBvbiBieSBkZWZhdWx0IGZvciBjaHJvbWUtLWlmIGNocm9tZSBwb3BzIHVwIHdpdGggYSB3ZWJ2aWV3XG4gICAgLy8gYW5kIHNvbWVvbmUgd2FudHMgdG8gc3dpdGNoIHRvIGl0LCB3ZSBzaG91bGQgbGV0IGNocm9tZWRyaXZlciBjb25uZWN0IHRvXG4gICAgLy8gY2hyb21lIHJhdGhlciB0aGFuIHN0YXlpbmcgc3R1Y2sgb24gdGhlIEFVVFxuICAgIGlmIChvcHRzLmV4dHJhY3RDaHJvbWVBbmRyb2lkUGFja2FnZUZyb21Db250ZXh0TmFtZSB8fCBjb250ZXh0ID09PSBgJHtXRUJWSUVXX0JBU0V9Y2hyb21lYCkge1xuICAgICAgbGV0IGFuZHJvaWRQYWNrYWdlID0gY29udGV4dC5tYXRjaChgJHtXRUJWSUVXX0JBU0V9KC4rKWApO1xuICAgICAgaWYgKGFuZHJvaWRQYWNrYWdlICYmIGFuZHJvaWRQYWNrYWdlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgb3B0cy5jaHJvbWVBbmRyb2lkUGFja2FnZSA9IGFuZHJvaWRQYWNrYWdlWzFdO1xuICAgICAgfVxuICAgICAgaWYgKCFvcHRzLmV4dHJhY3RDaHJvbWVBbmRyb2lkUGFja2FnZUZyb21Db250ZXh0TmFtZSkge1xuICAgICAgICBpZiAoXy5oYXModGhpcy5vcHRzLCAnZW5hYmxlV2Vidmlld0RldGFpbHNDb2xsZWN0aW9uJykgJiYgIXRoaXMub3B0cy5lbmFibGVXZWJ2aWV3RGV0YWlsc0NvbGxlY3Rpb24pIHtcbiAgICAgICAgICAvLyBXaGVuIGVuYWJsZVdlYnZpZXdEZXRhaWxzQ29sbGVjdGlvbiBjYXBhYmlsaXR5IGlzIGV4cGxpY2l0bHkgZGlzYWJsZWQsIHRyeSB0byBpZGVudGlmeVxuICAgICAgICAgIC8vIGNocm9tZUFuZHJvaWRQYWNrYWdlIGJhc2VkIG9uIGNvbnRleHRzLCBrbm93biBjaHJvbWUgdmFyaWFudCBwYWNrYWdlcyBhbmQgcXVlcnlBcHBTdGF0ZSByZXN1bHRcbiAgICAgICAgICAvLyBzaW5jZSB3ZWJ2aWV3c01hcHBpbmcgZG9lcyBub3QgaGF2ZSBpbmZvIG9iamVjdFxuICAgICAgICAgIGNvbnN0IGNvbnRleHRzID0gd2Vidmlld3NNYXBwaW5nLm1hcCgod20pID0+IHdtLndlYnZpZXdOYW1lKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGtub3duUGFja2FnZSBvZiBLTk9XTl9DSFJPTUVfUEFDS0FHRV9OQU1FUykge1xuICAgICAgICAgICAgaWYgKF8uaW5jbHVkZXMoY29udGV4dHMsIGAke1dFQlZJRVdfQkFTRX0ke2tub3duUGFja2FnZX1gKSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFwcFN0YXRlID0gYXdhaXQgdGhpcy5xdWVyeUFwcFN0YXRlKGtub3duUGFja2FnZSk7XG4gICAgICAgICAgICBpZiAoXy5pbmNsdWRlcyhbQVBQX1NUQVRFLlJVTk5JTkdfSU5fQkFDS0dST1VORCwgQVBQX1NUQVRFLlJVTk5JTkdfSU5fRk9SRUdST1VORF0sIGFwcFN0YXRlKSkge1xuICAgICAgICAgICAgICBvcHRzLmNocm9tZUFuZHJvaWRQYWNrYWdlID0ga25vd25QYWNrYWdlO1xuICAgICAgICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgSWRlbnRpZmllZCBjaHJvbWVBbmRyb2lkUGFja2FnZSBhcyAnJHtvcHRzLmNocm9tZUFuZHJvaWRQYWNrYWdlfScgYCArXG4gICAgICAgICAgICAgICAgYGZvciBjb250ZXh0ICcke2NvbnRleHR9JyBieSBxdWVyeWluZyBzdGF0ZXMgb2YgQ2hyb21lIGFwcCBwYWNrYWdlc2ApO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9yIChjb25zdCB3bSBvZiB3ZWJ2aWV3c01hcHBpbmcpIHtcbiAgICAgICAgICAgIGlmICh3bS53ZWJ2aWV3TmFtZSA9PT0gY29udGV4dCAmJiBfLmhhcyh3bT8uaW5mbywgJ0FuZHJvaWQtUGFja2FnZScpKSB7XG4gICAgICAgICAgICAgIG9wdHMuY2hyb21lQW5kcm9pZFBhY2thZ2UgPSB3bS5pbmZvWydBbmRyb2lkLVBhY2thZ2UnXTtcbiAgICAgICAgICAgICAgdGhpcy5sb2cuZGVidWcoYElkZW50aWZpZWQgY2hyb21lQW5kcm9pZFBhY2thZ2UgYXMgJyR7b3B0cy5jaHJvbWVBbmRyb2lkUGFja2FnZX0nIGAgK1xuICAgICAgICAgICAgICAgIGBmb3IgY29udGV4dCAnJHtjb250ZXh0fScgYnkgQ0RQYCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNkID0gYXdhaXQgdGhpcy5zZXR1cE5ld0Nocm9tZWRyaXZlcihvcHRzLCB0aGlzLmFkYi5jdXJEZXZpY2VJZCwgdGhpcy5hZGIsIGNvbnRleHQpO1xuICAgIC8vIGJpbmQgb3VyIHN0b3AvZXhpdCBoYW5kbGVyLCBwYXNzaW5nIGluIGNvbnRleHQgc28gd2Uga25vdyB3aGljaFxuICAgIC8vIG9uZSBzdG9wcGVkIHVuZXhwZWN0ZWRseVxuICAgIGNkLm9uKENocm9tZWRyaXZlci5FVkVOVF9DSEFOR0VELCAobXNnKSA9PiB7XG4gICAgICBpZiAobXNnLnN0YXRlID09PSBDaHJvbWVkcml2ZXIuU1RBVEVfU1RPUFBFRCkge1xuICAgICAgICB0aGlzLm9uQ2hyb21lZHJpdmVyU3RvcChjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBzYXZlIHRoZSBjaHJvbWVkcml2ZXIgb2JqZWN0IHVuZGVyIHRoZSBjb250ZXh0XG4gICAgdGhpcy5zZXNzaW9uQ2hyb21lZHJpdmVyc1tjb250ZXh0XSA9IGNkO1xuICB9XG4gIC8vIGhvb2sgdXAgdGhlIGxvY2FsIHZhcmlhYmxlcyBzbyB3ZSBjYW4gcHJveHkgdGhpcyBiaXpcbiAgdGhpcy5jaHJvbWVkcml2ZXIgPSBjZDtcbiAgdGhpcy5wcm94eVJlcVJlcyA9IHRoaXMuY2hyb21lZHJpdmVyLnByb3h5UmVxLmJpbmQodGhpcy5jaHJvbWVkcml2ZXIpO1xuICB0aGlzLnByb3h5Q29tbWFuZCA9IHRoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkuY29tbWFuZC5iaW5kKHRoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkpO1xuICB0aGlzLmp3cFByb3h5QWN0aXZlID0gdHJ1ZTtcbn07XG5cbi8vIFN0b3AgcHJveHlpbmcgdG8gYW55IENocm9tZWRyaXZlclxuaGVscGVycy5zdXNwZW5kQ2hyb21lZHJpdmVyUHJveHkgPSBmdW5jdGlvbiBzdXNwZW5kQ2hyb21lZHJpdmVyUHJveHkgKCkge1xuICB0aGlzLmNocm9tZWRyaXZlciA9IG51bGw7XG4gIHRoaXMucHJveHlSZXFSZXMgPSBudWxsO1xuICB0aGlzLnByb3h5Q29tbWFuZCA9IG51bGw7XG4gIHRoaXMuandwUHJveHlBY3RpdmUgPSBmYWxzZTtcbn07XG5cbi8vIEhhbmRsZSBhbiBvdXQtb2YtYmFuZCBDaHJvbWVkcml2ZXIgc3RvcCBldmVudFxuaGVscGVycy5vbkNocm9tZWRyaXZlclN0b3AgPSBhc3luYyBmdW5jdGlvbiBvbkNocm9tZWRyaXZlclN0b3AgKGNvbnRleHQpIHtcbiAgdGhpcy5sb2cud2FybihgQ2hyb21lZHJpdmVyIGZvciBjb250ZXh0ICR7Y29udGV4dH0gc3RvcHBlZCB1bmV4cGVjdGVkbHlgKTtcbiAgaWYgKGNvbnRleHQgPT09IHRoaXMuY3VyQ29udGV4dCkge1xuICAgIC8vIHdlIGV4aXRlZCB1bmV4cGVjdGVkbHkgd2hpbGUgYXV0b21hdGluZyB0aGUgY3VycmVudCBjb250ZXh0IGFuZCBzbyB3YW50XG4gICAgLy8gdG8gc2h1dCBkb3duIHRoZSBzZXNzaW9uIGFuZCByZXNwb25kIHdpdGggYW4gZXJyb3JcbiAgICBsZXQgZXJyID0gbmV3IEVycm9yKCdDaHJvbWVkcml2ZXIgcXVpdCB1bmV4cGVjdGVkbHkgZHVyaW5nIHNlc3Npb24nKTtcbiAgICBhd2FpdCB0aGlzLnN0YXJ0VW5leHBlY3RlZFNodXRkb3duKGVycik7XG4gIH0gZWxzZSB7XG4gICAgLy8gaWYgYSBDaHJvbWVkcml2ZXIgaW4gdGhlIG5vbi1hY3RpdmUgY29udGV4dCBiYXJmcywgd2UgZG9uJ3QgcmVhbGx5XG4gICAgLy8gY2FyZSwgd2UnbGwganVzdCBtYWtlIGEgbmV3IG9uZSBuZXh0IHRpbWUgd2UgbmVlZCB0aGUgY29udGV4dC5cbiAgICB0aGlzLmxvZy53YXJuKFwiQ2hyb21lZHJpdmVyIHF1aXQgdW5leHBlY3RlZGx5LCBidXQgaXQgd2Fzbid0IHRoZSBhY3RpdmUgXCIgK1xuICAgICAgJ2NvbnRleHQsIGlnbm9yaW5nJyk7XG4gICAgZGVsZXRlIHRoaXMuc2Vzc2lvbkNocm9tZWRyaXZlcnNbY29udGV4dF07XG4gIH1cbn07XG5cbi8vIEludGVudGlvbmFsbHkgc3RvcCBhbGwgdGhlIGNocm9tZWRyaXZlcnMgY3VycmVudGx5IGFjdGl2ZSwgYW5kIGlnbm9yZVxuLy8gdGhlaXIgZXhpdCBldmVudHNcbmhlbHBlcnMuc3RvcENocm9tZWRyaXZlclByb3hpZXMgPSBhc3luYyBmdW5jdGlvbiBzdG9wQ2hyb21lZHJpdmVyUHJveGllcyAoKSB7XG4gIHRoaXMuc3VzcGVuZENocm9tZWRyaXZlclByb3h5KCk7IC8vIG1ha2Ugc3VyZSB3ZSB0dXJuIG9mZiB0aGUgcHJveHkgZmxhZ1xuICBmb3IgKGxldCBjb250ZXh0IG9mIF8ua2V5cyh0aGlzLnNlc3Npb25DaHJvbWVkcml2ZXJzKSkge1xuICAgIGxldCBjZCA9IHRoaXMuc2Vzc2lvbkNocm9tZWRyaXZlcnNbY29udGV4dF07XG4gICAgdGhpcy5sb2cuZGVidWcoYFN0b3BwaW5nIGNocm9tZWRyaXZlciBmb3IgY29udGV4dCAke2NvbnRleHR9YCk7XG4gICAgLy8gc3RvcCBsaXN0ZW5pbmcgZm9yIHRoZSBzdG9wcGVkIHN0YXRlIGV2ZW50XG4gICAgY2QucmVtb3ZlQWxsTGlzdGVuZXJzKENocm9tZWRyaXZlci5FVkVOVF9DSEFOR0VEKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgY2Quc3RvcCgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5sb2cud2FybihgRXJyb3Igc3RvcHBpbmcgQ2hyb21lZHJpdmVyOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgICBkZWxldGUgdGhpcy5zZXNzaW9uQ2hyb21lZHJpdmVyc1tjb250ZXh0XTtcbiAgfVxufTtcblxuaGVscGVycy5pc0Nocm9tZWRyaXZlckNvbnRleHQgPSBmdW5jdGlvbiBpc0Nocm9tZWRyaXZlckNvbnRleHQgKHZpZXdOYW1lKSB7XG4gIHJldHVybiBfLmluY2x1ZGVzKHZpZXdOYW1lLCBXRUJWSUVXX1dJTikgfHwgdmlld05hbWUgPT09IENIUk9NSVVNX1dJTjtcbn07XG5cbmhlbHBlcnMuc2hvdWxkRGlzbWlzc0Nocm9tZVdlbGNvbWUgPSBmdW5jdGlvbiBzaG91bGREaXNtaXNzQ2hyb21lV2VsY29tZSAoKSB7XG4gIHJldHVybiAhIXRoaXMub3B0cy5jaHJvbWVPcHRpb25zICYmXG4gICAgICAgICBfLmlzQXJyYXkodGhpcy5vcHRzLmNocm9tZU9wdGlvbnMuYXJncykgJiZcbiAgICAgICAgIHRoaXMub3B0cy5jaHJvbWVPcHRpb25zLmFyZ3MuaW5jbHVkZXMoJy0tbm8tZmlyc3QtcnVuJyk7XG59O1xuXG5oZWxwZXJzLmRpc21pc3NDaHJvbWVXZWxjb21lID0gYXN5bmMgZnVuY3Rpb24gZGlzbWlzc0Nocm9tZVdlbGNvbWUgKCkge1xuICB0aGlzLmxvZy5pbmZvKCdUcnlpbmcgdG8gZGlzbWlzcyBDaHJvbWUgd2VsY29tZScpO1xuICBsZXQgYWN0aXZpdHkgPSBhd2FpdCB0aGlzLmdldEN1cnJlbnRBY3Rpdml0eSgpO1xuICBpZiAoYWN0aXZpdHkgIT09ICdvcmcuY2hyb21pdW0uY2hyb21lLmJyb3dzZXIuZmlyc3RydW4uRmlyc3RSdW5BY3Rpdml0eScpIHtcbiAgICB0aGlzLmxvZy5pbmZvKCdDaHJvbWUgd2VsY29tZSBkaWFsb2cgbmV2ZXIgc2hvd2VkIHVwISBDb250aW51aW5nJyk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGxldCBlbCA9IGF3YWl0IHRoaXMuZmluZEVsT3JFbHMoJ2lkJywgJ2NvbS5hbmRyb2lkLmNocm9tZTppZC90ZXJtc19hY2NlcHQnLCBmYWxzZSk7XG4gIGF3YWl0IHRoaXMuY2xpY2soZWwuRUxFTUVOVCk7XG4gIHRyeSB7XG4gICAgbGV0IGVsID0gYXdhaXQgdGhpcy5maW5kRWxPckVscygnaWQnLCAnY29tLmFuZHJvaWQuY2hyb21lOmlkL25lZ2F0aXZlX2J1dHRvbicsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLmNsaWNrKGVsLkVMRU1FTlQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gRE8gTk9USElORywgVEhJUyBERVZJQ0UgRElETlQgTEFVTkNIIFRIRSBTSUdOSU4gRElBTE9HXG4gICAgLy8gSVQgTVVTVCBCRSBBIE5PTiBHTVMgREVWSUNFXG4gICAgdGhpcy5sb2cud2FybihgVGhpcyBkZXZpY2UgZGlkIG5vdCBzaG93IENocm9tZSBTaWduSW4gZGlhbG9nLCAke2UubWVzc2FnZX1gKTtcbiAgfVxufTtcblxuaGVscGVycy5zdGFydENocm9tZVNlc3Npb24gPSBhc3luYyBmdW5jdGlvbiBzdGFydENocm9tZVNlc3Npb24gKCkge1xuICB0aGlzLmxvZy5pbmZvKCdTdGFydGluZyBhIGNocm9tZS1iYXNlZCBicm93c2VyIHNlc3Npb24nKTtcbiAgbGV0IG9wdHMgPSBfLmNsb25lRGVlcCh0aGlzLm9wdHMpO1xuXG4gIGNvbnN0IGtub3duUGFja2FnZXMgPSBbXG4gICAgJ29yZy5jaHJvbWl1bS5jaHJvbWUuc2hlbGwnLFxuICAgICdjb20uYW5kcm9pZC5jaHJvbWUnLFxuICAgICdjb20uY2hyb21lLmJldGEnLFxuICAgICdvcmcuY2hyb21pdW0uY2hyb21lJyxcbiAgICAnb3JnLmNocm9taXVtLndlYnZpZXdfc2hlbGwnLFxuICBdO1xuXG4gIGlmIChfLmluY2x1ZGVzKGtub3duUGFja2FnZXMsIHRoaXMub3B0cy5hcHBQYWNrYWdlKSkge1xuICAgIG9wdHMuY2hyb21lQnVuZGxlSWQgPSB0aGlzLm9wdHMuYXBwUGFja2FnZTtcbiAgfSBlbHNlIHtcbiAgICBvcHRzLmNocm9tZUFuZHJvaWRBY3Rpdml0eSA9IHRoaXMub3B0cy5hcHBBY3Rpdml0eTtcbiAgfVxuICB0aGlzLmNocm9tZWRyaXZlciA9IGF3YWl0IHRoaXMuc2V0dXBOZXdDaHJvbWVkcml2ZXIob3B0cywgdGhpcy5hZGIuY3VyRGV2aWNlSWQsIHRoaXMuYWRiKTtcbiAgdGhpcy5jaHJvbWVkcml2ZXIub24oQ2hyb21lZHJpdmVyLkVWRU5UX0NIQU5HRUQsIChtc2cpID0+IHtcbiAgICBpZiAobXNnLnN0YXRlID09PSBDaHJvbWVkcml2ZXIuU1RBVEVfU1RPUFBFRCkge1xuICAgICAgdGhpcy5vbkNocm9tZWRyaXZlclN0b3AoQ0hST01JVU1fV0lOKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIE5vdyB0aGF0IHdlIGhhdmUgYSBDaHJvbWUgc2Vzc2lvbiwgd2UgZW5zdXJlIHRoYXQgdGhlIGNvbnRleHQgaXNcbiAgLy8gYXBwcm9wcmlhdGVseSBzZXQgYW5kIHRoYXQgdGhpcyBjaHJvbWVkcml2ZXIgaXMgYWRkZWQgdG8gdGhlIGxpc3RcbiAgLy8gb2Ygc2Vzc2lvbiBjaHJvbWVkcml2ZXJzIHNvIHdlIGNhbiBzd2l0Y2ggYmFjayBhbmQgZm9ydGhcbiAgdGhpcy5jdXJDb250ZXh0ID0gQ0hST01JVU1fV0lOO1xuICB0aGlzLnNlc3Npb25DaHJvbWVkcml2ZXJzW0NIUk9NSVVNX1dJTl0gPSB0aGlzLmNocm9tZWRyaXZlcjtcbiAgdGhpcy5wcm94eVJlcVJlcyA9IHRoaXMuY2hyb21lZHJpdmVyLnByb3h5UmVxLmJpbmQodGhpcy5jaHJvbWVkcml2ZXIpO1xuICB0aGlzLnByb3h5Q29tbWFuZCA9IHRoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkuY29tbWFuZC5iaW5kKHRoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkpO1xuICB0aGlzLmp3cFByb3h5QWN0aXZlID0gdHJ1ZTtcblxuICBpZiAodGhpcy5zaG91bGREaXNtaXNzQ2hyb21lV2VsY29tZSgpKSB7XG4gICAgLy8gZGlzbWlzcyBDaHJvbWUgd2VsY29tZSBkaWFsb2dcbiAgICBhd2FpdCB0aGlzLmRpc21pc3NDaHJvbWVXZWxjb21lKCk7XG4gIH1cbn07XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEludGVybmFsIGxpYnJhcnkgZnVuY3Rpb25zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5hc3luYyBmdW5jdGlvbiBzZXR1cEV4aXN0aW5nQ2hyb21lZHJpdmVyIChsb2csIGNocm9tZWRyaXZlcikge1xuICAvLyBjaGVjayB0aGUgc3RhdHVzIGJ5IHNlbmRpbmcgYSBzaW1wbGUgd2luZG93LWJhc2VkIGNvbW1hbmQgdG8gQ2hyb21lRHJpdmVyXG4gIC8vIGlmIHRoZXJlIGlzIGFuIGVycm9yLCB3ZSB3YW50IHRvIHJlY3JlYXRlIHRoZSBDaHJvbWVEcml2ZXIgc2Vzc2lvblxuICBpZiAoIWF3YWl0IGNocm9tZWRyaXZlci5oYXNXb3JraW5nV2VidmlldygpKSB7XG4gICAgbG9nLmRlYnVnKCdDaHJvbWVEcml2ZXIgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBhIHdpbmRvdy4gJyArXG4gICAgICAgICAgICAgICAgICdSZS1pbml0aWFsaXppbmcgdGhlIHNlc3Npb24uJyk7XG4gICAgYXdhaXQgY2hyb21lZHJpdmVyLnJlc3RhcnQoKTtcbiAgfVxuICByZXR1cm4gY2hyb21lZHJpdmVyO1xufVxuXG4vKipcbiAqIEZpbmQgYSBmcmVlIHBvcnQgdG8gaGF2ZSBDaHJvbWVkcml2ZXIgbGlzdGVuIG9uLlxuICpcbiAqIEBwYXJhbSB7YXJyYXl9IHBvcnRTcGVjIC0gQXJyYXkgd2hpY2ggaXMgYSBsaXN0IG9mIHBvcnRzLiBBIGxpc3QgaXRlbSBtYXlcbiAqIGFsc28gaXRzZWxmIGJlIGFuIGFycmF5IG9mIGxlbmd0aCAyIHNwZWNpZnlpbmcgYSBzdGFydCBhbmQgZW5kIHBvcnQgb2ZcbiAqIGEgcmFuZ2UuIFNvbWUgdmFsaWQgcG9ydCBzcGVjczpcbiAqICAgIC0gWzgwMDAsIDgwMDEsIDgwMDJdXG4gKiAgICAtIFtbODAwMCwgODAwNV1dXG4gKiAgICAtIFs4MDAwLCBbOTAwMCwgOTEwMF1dXG4gKiBAcGFyYW0ge09iamVjdD99IGxvZyBMb2dnZXIgaW5zdGFuY2VcbiAqXG4gKiBAcmV0dXJuIHtudW1iZXJ9IEEgZnJlZSBwb3J0XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldENocm9tZWRyaXZlclBvcnQgKHBvcnRTcGVjLCBsb2cgPSBudWxsKSB7XG4gIGNvbnN0IGdldFBvcnQgPSBCLnByb21pc2lmeShQb3J0RmluZGVyLmdldFBvcnQsIHtjb250ZXh0OiBQb3J0RmluZGVyfSk7XG5cbiAgLy8gaWYgdGhlIHVzZXIgZGlkbid0IGdpdmUgdXMgYW55IHNwZWNpZmljIGluZm9ybWF0aW9uIGFib3V0IGNocm9tZWRyaXZlclxuICAvLyBwb3J0IHJhbmdlcywganVzdCBmaW5kIGFueSBmcmVlIHBvcnRcbiAgaWYgKCFwb3J0U3BlYykge1xuICAgIGNvbnN0IHBvcnQgPSBhd2FpdCBnZXRQb3J0KCk7XG4gICAgbG9nPy5kZWJ1ZyhgQSBwb3J0IHdhcyBub3QgZ2l2ZW4sIHVzaW5nIHJhbmRvbSBmcmVlIHBvcnQ6ICR7cG9ydH1gKTtcbiAgICByZXR1cm4gcG9ydDtcbiAgfVxuXG4gIC8vIG90aGVyd2lzZSBmaW5kIHRoZSBmcmVlIHBvcnQgYmFzZWQgb24gYSBsaXN0IG9yIHJhbmdlIHByb3ZpZGVkIGJ5IHRoZSB1c2VyXG4gIGxvZz8uZGVidWcoYEZpbmRpbmcgYSBmcmVlIHBvcnQgZm9yIGNocm9tZWRyaXZlciB1c2luZyBzcGVjICR7SlNPTi5zdHJpbmdpZnkocG9ydFNwZWMpfWApO1xuICBsZXQgZm91bmRQb3J0ID0gbnVsbDtcbiAgZm9yIChjb25zdCBwb3RlbnRpYWxQb3J0IG9mIHBvcnRTcGVjKSB7XG4gICAgbGV0IHBvcnQsIHN0b3BQb3J0O1xuICAgIGlmIChfLmlzQXJyYXkocG90ZW50aWFsUG9ydCkpIHtcbiAgICAgIChbcG9ydCwgc3RvcFBvcnRdID0gcG90ZW50aWFsUG9ydCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvcnQgPSBwYXJzZUludChwb3RlbnRpYWxQb3J0LCAxMCk7IC8vIGVuc3VyZSB3ZSBoYXZlIGEgbnVtYmVyIGFuZCBub3QgYSBzdHJpbmdcbiAgICAgIHN0b3BQb3J0ID0gcG9ydDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGxvZz8uZGVidWcoYENoZWNraW5nIHBvcnQgcmFuZ2UgJHtwb3J0fToke3N0b3BQb3J0fWApO1xuICAgICAgZm91bmRQb3J0ID0gYXdhaXQgZ2V0UG9ydCh7cG9ydCwgc3RvcFBvcnR9KTtcbiAgICAgIGJyZWFrO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZz8uZGVidWcoYE5vdGhpbmcgaW4gcG9ydCByYW5nZSAke3BvcnR9OiR7c3RvcFBvcnR9IHdhcyBhdmFpbGFibGVgKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZm91bmRQb3J0ID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBhIGZyZWUgcG9ydCBmb3IgY2hyb21lZHJpdmVyIHVzaW5nIGAgK1xuICAgICAgICAgICAgICAgICAgICBgY2hyb21lZHJpdmVyUG9ydHMgc3BlYyAke0pTT04uc3RyaW5naWZ5KHBvcnRTcGVjKX1gKTtcbiAgfVxuXG4gIGxvZz8uZGVidWcoYFVzaW5nIGZyZWUgcG9ydCAke2ZvdW5kUG9ydH0gZm9yIGNocm9tZWRyaXZlcmApO1xuICByZXR1cm4gZm91bmRQb3J0O1xufVxuXG5oZWxwZXJzLmlzQ2hyb21lZHJpdmVyQXV0b2Rvd25sb2FkRW5hYmxlZCA9IGZ1bmN0aW9uIGlzQ2hyb21lZHJpdmVyQXV0b2Rvd25sb2FkRW5hYmxlZCAoKSB7XG4gIGlmICh0aGlzLmlzRmVhdHVyZUVuYWJsZWQoQ0hST01FRFJJVkVSX0FVVE9ET1dOTE9BRF9GRUFUVVJFKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHRoaXM/LmxvZz8uZGVidWcoYEF1dG9tYXRlZCBDaHJvbWVkcml2ZXIgZG93bmxvYWQgaXMgZGlzYWJsZWQuIGAgK1xuICAgIGBVc2UgJyR7Q0hST01FRFJJVkVSX0FVVE9ET1dOTE9BRF9GRUFUVVJFfScgc2VydmVyIGZlYXR1cmUgdG8gZW5hYmxlIGl0YCk7XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmhlbHBlcnMuc2V0dXBOZXdDaHJvbWVkcml2ZXIgPSBhc3luYyBmdW5jdGlvbiBzZXR1cE5ld0Nocm9tZWRyaXZlciAob3B0cywgY3VyRGV2aWNlSWQsIGFkYiwgY29udGV4dCA9IG51bGwpIHtcbiAgaWYgKG9wdHMuY2hyb21lRHJpdmVyUG9ydCkge1xuICAgIHRoaXM/LmxvZz8ud2FybihgVGhlICdjaHJvbWVEcml2ZXJQb3J0JyBjYXBhYmlsaXR5IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgJ2Nocm9tZWRyaXZlclBvcnQnIGluc3RlYWRgKTtcbiAgICBvcHRzLmNocm9tZWRyaXZlclBvcnQgPSBvcHRzLmNocm9tZURyaXZlclBvcnQ7XG4gIH1cblxuICBpZiAob3B0cy5jaHJvbWVkcml2ZXJQb3J0KSB7XG4gICAgdGhpcz8ubG9nPy5kZWJ1ZyhgVXNpbmcgdXNlci1zcGVjaWZpZWQgcG9ydCAke29wdHMuY2hyb21lZHJpdmVyUG9ydH0gZm9yIGNocm9tZWRyaXZlcmApO1xuICB9IGVsc2Uge1xuICAgIC8vIGlmIGEgc2luZ2xlIHBvcnQgd2Fzbid0IGdpdmVuLCB3ZSdsbCBsb29rIGZvciBhIGZyZWUgb25lXG4gICAgb3B0cy5jaHJvbWVkcml2ZXJQb3J0ID0gYXdhaXQgZ2V0Q2hyb21lZHJpdmVyUG9ydChvcHRzLmNocm9tZWRyaXZlclBvcnRzLCB0aGlzPy5sb2cpO1xuICB9XG5cbiAgY29uc3QgZGV0YWlscyA9IGNvbnRleHQgPyB3ZWJ2aWV3SGVscGVycy5nZXRXZWJ2aWV3RGV0YWlscyhhZGIsIGNvbnRleHQpIDogdW5kZWZpbmVkO1xuICBpZiAoIV8uaXNFbXB0eShkZXRhaWxzKSkge1xuICAgIHRoaXM/LmxvZz8uZGVidWcoJ1Bhc3Npbmcgd2ViIHZpZXcgZGV0YWlscyB0byB0aGUgQ2hyb21lZHJpdmVyIGNvbnN0cnVjdG9yOiAnICtcbiAgICAgIEpTT04uc3RyaW5naWZ5KGRldGFpbHMsIG51bGwsIDIpKTtcbiAgfVxuXG4gIGNvbnN0IGNocm9tZWRyaXZlciA9IG5ldyBDaHJvbWVkcml2ZXIoe1xuICAgIHBvcnQ6IG9wdHMuY2hyb21lZHJpdmVyUG9ydCxcbiAgICBleGVjdXRhYmxlOiBvcHRzLmNocm9tZWRyaXZlckV4ZWN1dGFibGUsXG4gICAgYWRiLFxuICAgIGNtZEFyZ3M6IG9wdHMuY2hyb21lZHJpdmVyQXJncyxcbiAgICB2ZXJib3NlOiAhIW9wdHMuc2hvd0Nocm9tZWRyaXZlckxvZyxcbiAgICBleGVjdXRhYmxlRGlyOiBvcHRzLmNocm9tZWRyaXZlckV4ZWN1dGFibGVEaXIsXG4gICAgbWFwcGluZ1BhdGg6IG9wdHMuY2hyb21lZHJpdmVyQ2hyb21lTWFwcGluZ0ZpbGUsXG4gICAgYnVuZGxlSWQ6IG9wdHMuY2hyb21lQnVuZGxlSWQsXG4gICAgdXNlU3lzdGVtRXhlY3V0YWJsZTogb3B0cy5jaHJvbWVkcml2ZXJVc2VTeXN0ZW1FeGVjdXRhYmxlLFxuICAgIGRpc2FibGVCdWlsZENoZWNrOiBvcHRzLmNocm9tZWRyaXZlckRpc2FibGVCdWlsZENoZWNrLFxuICAgIGRldGFpbHMsXG4gICAgaXNBdXRvZG93bmxvYWRFbmFibGVkOiB0aGlzPy5pc0Nocm9tZWRyaXZlckF1dG9kb3dubG9hZEVuYWJsZWQ/LigpXG4gIH0pO1xuXG4gIC8vIG1ha2Ugc3VyZSB0aGVyZSBhcmUgY2hyb21lT3B0aW9uc1xuICBvcHRzLmNocm9tZU9wdGlvbnMgPSBvcHRzLmNocm9tZU9wdGlvbnMgfHwge307XG4gIC8vIHRyeSBvdXQgYW55IHByZWZpeGVkIGNocm9tZU9wdGlvbnMsXG4gIC8vIGFuZCBzdHJpcCB0aGUgcHJlZml4XG4gIGZvciAoY29uc3Qgb3B0IG9mIF8ua2V5cyhvcHRzKSkge1xuICAgIGlmIChvcHQuZW5kc1dpdGgoJzpjaHJvbWVPcHRpb25zJykpIHtcbiAgICAgIHRoaXM/LmxvZz8ud2FybihgTWVyZ2luZyAnJHtvcHR9JyBpbnRvICdjaHJvbWVPcHRpb25zJy4gVGhpcyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvcmApO1xuICAgICAgXy5tZXJnZShvcHRzLmNocm9tZU9wdGlvbnMsIG9wdHNbb3B0XSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY2FwcyA9IHdlYnZpZXdIZWxwZXJzLmNyZWF0ZUNocm9tZWRyaXZlckNhcHMob3B0cywgY3VyRGV2aWNlSWQsIGRldGFpbHMpO1xuICB0aGlzPy5sb2c/LmRlYnVnKGBCZWZvcmUgc3RhcnRpbmcgY2hyb21lZHJpdmVyLCBhbmRyb2lkUGFja2FnZSBpcyAnJHtjYXBzLmNocm9tZU9wdGlvbnMuYW5kcm9pZFBhY2thZ2V9J2ApO1xuICBhd2FpdCBjaHJvbWVkcml2ZXIuc3RhcnQoY2Fwcyk7XG4gIHJldHVybiBjaHJvbWVkcml2ZXI7XG59O1xuY29uc3Qgc2V0dXBOZXdDaHJvbWVkcml2ZXIgPSBoZWxwZXJzLnNldHVwTmV3Q2hyb21lZHJpdmVyO1xuXG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMsIHNldHVwTmV3Q2hyb21lZHJpdmVyIH07XG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sImZpbGUiOiJsaWIvY29tbWFuZHMvY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
|
|
408
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2NvbnRleHQuanMiLCJuYW1lcyI6WyJDSFJPTUVEUklWRVJfQVVUT0RPV05MT0FEX0ZFQVRVUkUiLCJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiZ2V0Q3VycmVudENvbnRleHQiLCJjdXJDb250ZXh0IiwiZGVmYXVsdENvbnRleHROYW1lIiwiZ2V0Q29udGV4dHMiLCJ3ZWJ2aWV3c01hcHBpbmciLCJ3ZWJ2aWV3SGVscGVycyIsImdldFdlYlZpZXdzTWFwcGluZyIsImFkYiIsIm9wdHMiLCJhc3NpZ25Db250ZXh0cyIsInNldENvbnRleHQiLCJuYW1lIiwidXRpbCIsImhhc1ZhbHVlIiwiV0VCVklFV19XSU4iLCJkZWZhdWx0V2Vidmlld05hbWUiLCJjb250ZXh0cyIsIl8iLCJpbmNsdWRlcyIsImVycm9ycyIsIk5vU3VjaENvbnRleHRFcnJvciIsInN3aXRjaENvbnRleHQiLCJtb2JpbGVHZXRDb250ZXh0cyIsImFuZHJvaWREZXZpY2VTb2NrZXQiLCJlbnN1cmVXZWJ2aWV3c0hhdmVQYWdlcyIsIndlYnZpZXdEZXZ0b29sc1BvcnQiLCJlbmFibGVXZWJ2aWV3RGV0YWlsc0NvbGxlY3Rpb24iLCJPYmplY3QiLCJhc3NpZ24iLCJpc0Nocm9tZVNlc3Npb24iLCJ3ZWJ2aWV3cyIsInBhcnNlV2Vidmlld05hbWVzIiwiTkFUSVZFX1dJTiIsImxvZyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsImlzQ2hyb21lZHJpdmVyQ29udGV4dCIsInN0YXJ0Q2hyb21lZHJpdmVyUHJveHkiLCJyZWNyZWF0ZUNocm9tZURyaXZlclNlc3Npb25zIiwic3RvcENocm9tZWRyaXZlclByb3hpZXMiLCJzdXNwZW5kQ2hyb21lZHJpdmVyUHJveHkiLCJFcnJvciIsIldFQlZJRVdfQkFTRSIsImFwcFBhY2thZ2UiLCJpc1dlYkNvbnRleHQiLCJjb250ZXh0IiwiY2QiLCJzZXNzaW9uQ2hyb21lZHJpdmVycyIsInNldHVwRXhpc3RpbmdDaHJvbWVkcml2ZXIiLCJjbG9uZURlZXAiLCJjaHJvbWVVc2VSdW5uaW5nQXBwIiwiZXh0cmFjdENocm9tZUFuZHJvaWRQYWNrYWdlRnJvbUNvbnRleHROYW1lIiwiYW5kcm9pZFBhY2thZ2UiLCJtYXRjaCIsImxlbmd0aCIsImNocm9tZUFuZHJvaWRQYWNrYWdlIiwiaGFzIiwibWFwIiwid20iLCJ3ZWJ2aWV3TmFtZSIsImtub3duUGFja2FnZSIsIktOT1dOX0NIUk9NRV9QQUNLQUdFX05BTUVTIiwiYXBwU3RhdGUiLCJxdWVyeUFwcFN0YXRlIiwiQVBQX1NUQVRFIiwiUlVOTklOR19JTl9CQUNLR1JPVU5EIiwiUlVOTklOR19JTl9GT1JFR1JPVU5EIiwiaW5mbyIsInNldHVwTmV3Q2hyb21lZHJpdmVyIiwiY3VyRGV2aWNlSWQiLCJvbiIsIkNocm9tZWRyaXZlciIsIkVWRU5UX0NIQU5HRUQiLCJtc2ciLCJzdGF0ZSIsIlNUQVRFX1NUT1BQRUQiLCJvbkNocm9tZWRyaXZlclN0b3AiLCJjaHJvbWVkcml2ZXIiLCJwcm94eVJlcVJlcyIsInByb3h5UmVxIiwiYmluZCIsInByb3h5Q29tbWFuZCIsImp3cHJveHkiLCJjb21tYW5kIiwiandwUHJveHlBY3RpdmUiLCJ3YXJuIiwiZXJyIiwic3RhcnRVbmV4cGVjdGVkU2h1dGRvd24iLCJrZXlzIiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwic3RvcCIsIm1lc3NhZ2UiLCJ2aWV3TmFtZSIsIkNIUk9NSVVNX1dJTiIsInNob3VsZERpc21pc3NDaHJvbWVXZWxjb21lIiwiY2hyb21lT3B0aW9ucyIsImlzQXJyYXkiLCJhcmdzIiwiZGlzbWlzc0Nocm9tZVdlbGNvbWUiLCJhY3Rpdml0eSIsImdldEN1cnJlbnRBY3Rpdml0eSIsImVsIiwiZmluZEVsT3JFbHMiLCJjbGljayIsIkVMRU1FTlQiLCJlIiwic3RhcnRDaHJvbWVTZXNzaW9uIiwia25vd25QYWNrYWdlcyIsImNocm9tZUJ1bmRsZUlkIiwiY2hyb21lQW5kcm9pZEFjdGl2aXR5IiwiYXBwQWN0aXZpdHkiLCJoYXNXb3JraW5nV2VidmlldyIsInJlc3RhcnQiLCJnZXRDaHJvbWVkcml2ZXJQb3J0IiwicG9ydFNwZWMiLCJnZXRQb3J0IiwiQiIsInByb21pc2lmeSIsIlBvcnRGaW5kZXIiLCJwb3J0IiwiZm91bmRQb3J0IiwicG90ZW50aWFsUG9ydCIsInN0b3BQb3J0IiwicGFyc2VJbnQiLCJpc0Nocm9tZWRyaXZlckF1dG9kb3dubG9hZEVuYWJsZWQiLCJpc0ZlYXR1cmVFbmFibGVkIiwiY2hyb21lRHJpdmVyUG9ydCIsImNocm9tZWRyaXZlclBvcnQiLCJjaHJvbWVkcml2ZXJQb3J0cyIsImRldGFpbHMiLCJnZXRXZWJ2aWV3RGV0YWlscyIsInVuZGVmaW5lZCIsImlzRW1wdHkiLCJleGVjdXRhYmxlIiwiY2hyb21lZHJpdmVyRXhlY3V0YWJsZSIsImNtZEFyZ3MiLCJjaHJvbWVkcml2ZXJBcmdzIiwidmVyYm9zZSIsInNob3dDaHJvbWVkcml2ZXJMb2ciLCJleGVjdXRhYmxlRGlyIiwiY2hyb21lZHJpdmVyRXhlY3V0YWJsZURpciIsIm1hcHBpbmdQYXRoIiwiY2hyb21lZHJpdmVyQ2hyb21lTWFwcGluZ0ZpbGUiLCJidW5kbGVJZCIsInVzZVN5c3RlbUV4ZWN1dGFibGUiLCJjaHJvbWVkcml2ZXJVc2VTeXN0ZW1FeGVjdXRhYmxlIiwiZGlzYWJsZUJ1aWxkQ2hlY2siLCJjaHJvbWVkcml2ZXJEaXNhYmxlQnVpbGRDaGVjayIsImlzQXV0b2Rvd25sb2FkRW5hYmxlZCIsIm9wdCIsImVuZHNXaXRoIiwibWVyZ2UiLCJjYXBzIiwiY3JlYXRlQ2hyb21lZHJpdmVyQ2FwcyIsInN0YXJ0Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL2NvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBDaHJvbWVkcml2ZXIgZnJvbSAnYXBwaXVtLWNocm9tZWRyaXZlcic7XG5pbXBvcnQgUG9ydEZpbmRlciBmcm9tICdwb3J0ZmluZGVyJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5pbXBvcnQge1xuICBkZWZhdWx0IGFzIHdlYnZpZXdIZWxwZXJzLFxuICBOQVRJVkVfV0lOLCBXRUJWSUVXX0JBU0UsIFdFQlZJRVdfV0lOLCBDSFJPTUlVTV9XSU4sIEtOT1dOX0NIUk9NRV9QQUNLQUdFX05BTUVTXG59IGZyb20gJy4uL3dlYnZpZXctaGVscGVycyc7XG5pbXBvcnQgeyBBUFBfU1RBVEUgfSBmcm9tICcuLi9hbmRyb2lkLWhlbHBlcnMnO1xuXG5jb25zdCBDSFJPTUVEUklWRVJfQVVUT0RPV05MT0FEX0ZFQVRVUkUgPSAnY2hyb21lZHJpdmVyX2F1dG9kb3dubG9hZCc7XG5cbmxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBBY3R1YWwgTUpTT05XUCBjb21tYW5kIGhhbmRsZXJzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5jb21tYW5kcy5nZXRDdXJyZW50Q29udGV4dCA9IGFzeW5jIGZ1bmN0aW9uIGdldEN1cnJlbnRDb250ZXh0ICgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIC8vIGlmIHRoZSBjdXJyZW50IGNvbnRleHQgaXMgYG51bGxgLCBpbmRpY2F0aW5nIG5vIGNvbnRleHRcbiAgLy8gZXhwbGljaXRseSBzZXQsIGl0IGlzIHRoZSBkZWZhdWx0IGNvbnRleHRcbiAgcmV0dXJuIHRoaXMuY3VyQ29udGV4dCB8fCB0aGlzLmRlZmF1bHRDb250ZXh0TmFtZSgpO1xufTtcblxuY29tbWFuZHMuZ2V0Q29udGV4dHMgPSBhc3luYyBmdW5jdGlvbiBnZXRDb250ZXh0cyAoKSB7XG4gIGNvbnN0IHdlYnZpZXdzTWFwcGluZyA9IGF3YWl0IHdlYnZpZXdIZWxwZXJzLmdldFdlYlZpZXdzTWFwcGluZyh0aGlzLmFkYiwgdGhpcy5vcHRzKTtcbiAgcmV0dXJuIHRoaXMuYXNzaWduQ29udGV4dHMod2Vidmlld3NNYXBwaW5nKTtcbn07XG5cbmNvbW1hbmRzLnNldENvbnRleHQgPSBhc3luYyBmdW5jdGlvbiBzZXRDb250ZXh0IChuYW1lKSB7XG4gIGlmICghdXRpbC5oYXNWYWx1ZShuYW1lKSkge1xuICAgIG5hbWUgPSB0aGlzLmRlZmF1bHRDb250ZXh0TmFtZSgpO1xuICB9IGVsc2UgaWYgKG5hbWUgPT09IFdFQlZJRVdfV0lOKSB7XG4gICAgLy8gaGFuZGxlIHNldENvbnRleHQgXCJXRUJWSUVXXCJcbiAgICBuYW1lID0gdGhpcy5kZWZhdWx0V2Vidmlld05hbWUoKTtcbiAgfVxuICAvLyBpZiB3ZSdyZSBhbHJlYWR5IGluIHRoZSBjb250ZXh0IHdlIHdhbnQsIGRvIG5vdGhpbmdcbiAgaWYgKG5hbWUgPT09IHRoaXMuY3VyQ29udGV4dCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHdlYnZpZXdzTWFwcGluZyA9IGF3YWl0IHdlYnZpZXdIZWxwZXJzLmdldFdlYlZpZXdzTWFwcGluZyh0aGlzLmFkYiwgdGhpcy5vcHRzKTtcbiAgY29uc3QgY29udGV4dHMgPSB0aGlzLmFzc2lnbkNvbnRleHRzKHdlYnZpZXdzTWFwcGluZyk7XG4gIC8vIGlmIHRoZSBjb250ZXh0IHdlIHdhbnQgZG9lc24ndCBleGlzdCwgZmFpbFxuICBpZiAoIV8uaW5jbHVkZXMoY29udGV4dHMsIG5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob1N1Y2hDb250ZXh0RXJyb3IoKTtcbiAgfVxuXG4gIGF3YWl0IHRoaXMuc3dpdGNoQ29udGV4dChuYW1lLCB3ZWJ2aWV3c01hcHBpbmcpO1xuICB0aGlzLmN1ckNvbnRleHQgPSBuYW1lO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBXZWJ2aWV3c01hcHBpbmdcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwcm9jIFRoZSBuYW1lIG9mIHRoZSBEZXZ0b29scyBVbml4IHNvY2tldFxuICogQHByb3BlcnR5IHtzdHJpbmd9IHdlYnZpZXcgVGhlIHdlYiB2aWV3IGFsaWFzLiBMb29rcyBsaWtlIGBXRUJWSUVXX2BcbiAqIHByZWZpeCBwbHVzIFBJRCBvciBwYWNrYWdlIG5hbWVcbiAqIEBwcm9wZXJ0eSB7P09iamVjdH0gaW5mbyBXZWJ2aWV3IGluZm9ybWF0aW9uIGFzIGl0IGlzIHJldHJpZXZlZCBieVxuICogL2pzb24vdmVyc2lvbiBDRFAgZW5kcG9pbnRcbiAqIEBwcm9wZXJ0eSB7P0FycmF5PE9iamVjdD59IHBhZ2VzIFdlYnZpZXcgcGFnZXMgbGlzdCBhcyBpdCBpcyByZXRyaWV2ZWQgYnlcbiAqIC9qc29uL2xpc3QgQ0RQIGVuZHBvaW50XG4gKiBAcHJvcGVyeSB7P3N0cmluZ30gd2Vidmlld05hbWUgQW4gYWN0dWFsIHdlYnZpZXcgbmFtZSBmb3Igc3dpdGNoaW5nIGNvbnRleHQuXG4gKiBUaGlzIHZhbHVlIGJlY29tZXMgbnVsbCB3aGVuIGZhaWxpbmcgdG8gZmluZCBhIFBJRCBmb3IgYSB3ZWJ2aWV3LlxuICpcbiAqIFRoZSBmb2xsb3dpbmcganNvbiBkZW1vbnN0cmF0ZXMgdGhlIGV4YW1wbGUgb2YgV2Vidmlld3NNYXBwaW5nIG9iamVjdC5cbiAqIE5vdGUgdGhhdCBgZGVzY3JpcHRpb25gIGluIGBwYWdlYCBjYW4gYmUgYW4gZW1wdHkgc3RyaW5nIG1vc3QgbGlrZWx5IHdoZW4gaXQgY29tZXMgdG8gTW9iaWxlIENocm9tZSlcbiAqIHtcbiAqICAgXCJwcm9jXCI6IFwiQHdlYnZpZXdfZGV2dG9vbHNfcmVtb3RlXzIyMTM4XCIsXG4gKiAgIFwid2Vidmlld1wiOiBcIldFQlZJRVdfMjIxMzhcIixcbiAqICAgXCJpbmZvXCI6IHtcbiAqICAgICBcIkFuZHJvaWQtUGFja2FnZVwiOiBcImlvLmFwcGl1bS5zZXR0aW5nc1wiLFxuICogICAgIFwiQnJvd3NlclwiOiBcIkNocm9tZS83NC4wLjM3MjkuMTg1XCIsXG4gKiAgICAgXCJQcm90b2NvbC1WZXJzaW9uXCI6IFwiMS4zXCIsXG4gKiAgICAgXCJVc2VyLUFnZW50XCI6IFwiTW96aWxsYS81LjAgKExpbnV4OyBBbmRyb2lkIDEwOyBBbmRyb2lkIFNESyBidWlsdCBmb3IgeDg2IEJ1aWxkL1FTUjEuMTkwOTIwLjAwMTsgd3YpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4wIENocm9tZS83NC4wLjM3MjkuMTg1IE1vYmlsZSBTYWZhcmkvNTM3LjM2XCIsXG4gKiAgICAgXCJWOC1WZXJzaW9uXCI6IFwiNy40LjI4OC4yOFwiLFxuICogICAgIFwiV2ViS2l0LVZlcnNpb25cIjogXCI1MzcuMzYgKEAyMjk1NTY4MmY5NGNlMDkzMzYxOTdiZmI4ZGZmZWE5OTFmYTMyZjBkKVwiLFxuICogICAgIFwid2ViU29ja2V0RGVidWdnZXJVcmxcIjogXCJ3czovLzEyNy4wLjAuMToxMDkwMC9kZXZ0b29scy9icm93c2VyXCJcbiAqICAgfSxcbiAqICAgXCJwYWdlc1wiOiBbXG4gKiAgICAge1xuICogICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIntcXFwiYXR0YWNoZWRcXFwiOnRydWUsXFxcImVtcHR5XFxcIjpmYWxzZSxcXFwiaGVpZ2h0XFxcIjoxNDU4LFxcXCJzY3JlZW5YXFxcIjowLFxcXCJzY3JlZW5ZXFxcIjozMzYsXFxcInZpc2libGVcXFwiOnRydWUsXFxcIndpZHRoXFxcIjoxMDgwfVwiLFxuICogICAgICAgXCJkZXZ0b29sc0Zyb250ZW5kVXJsXCI6IFwiaHR0cDovL2Nocm9tZS1kZXZ0b29scy1mcm9udGVuZC5hcHBzcG90LmNvbS9zZXJ2ZV9yZXYvQDIyOTU1NjgyZjk0Y2UwOTMzNjE5N2JmYjhkZmZlYTk5MWZhMzJmMGQvaW5zcGVjdG9yLmh0bWw/d3M9MTI3LjAuMC4xOjEwOTAwL2RldnRvb2xzL3BhZ2UvMjczMjVDQzUwQjYwMEQzMUIyMzNGNDVFMDk0ODdCMUZcIixcbiAqICAgICAgIFwiaWRcIjogXCIyNzMyNUNDNTBCNjAwRDMxQjIzM0Y0NUUwOTQ4N0IxRlwiLFxuICogICAgICAgXCJ0aXRsZVwiOiBcIlJlbGVhc2VzIMK3IGFwcGl1bS9hcHBpdW0gwrcgR2l0SHViXCIsXG4gKiAgICAgICBcInR5cGVcIjogXCJwYWdlXCIsXG4gKiAgICAgICBcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hcHBpdW0vYXBwaXVtL3JlbGVhc2VzXCIsXG4gKiAgICAgICBcIndlYlNvY2tldERlYnVnZ2VyVXJsXCI6IFwid3M6Ly8xMjcuMC4wLjE6MTA5MDAvZGV2dG9vbHMvcGFnZS8yNzMyNUNDNTBCNjAwRDMxQjIzM0Y0NUUwOTQ4N0IxRlwiXG4gKiAgICAgfVxuICogICBdLFxuICogICBcIndlYnZpZXdOYW1lXCI6IFwiV0VCVklFV19jb20uaW8uYXBwaXVtLnNldHRpbmdcIlxuICogfVxuICovXG5cbi8qKlxuICogUmV0dXJucyBhIHdlYnZpZXdzTWFwcGluZyBiYXNlZCBvbiBDRFAgZW5kcG9pbnRzXG4gKlxuICogQHJldHVybiB7QXJyYXk8V2Vidmlld3NNYXBwaW5nPn0gd2Vidmlld3NNYXBwaW5nXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUdldENvbnRleHRzID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlR2V0Q29udGV4dHMgKCkge1xuICBjb25zdCBvcHRzID0ge1xuICAgIGFuZHJvaWREZXZpY2VTb2NrZXQ6IHRoaXMub3B0cy5hbmRyb2lkRGV2aWNlU29ja2V0LFxuICAgIGVuc3VyZVdlYnZpZXdzSGF2ZVBhZ2VzOiB0cnVlLFxuICAgIHdlYnZpZXdEZXZ0b29sc1BvcnQ6IHRoaXMub3B0cy53ZWJ2aWV3RGV2dG9vbHNQb3J0LFxuICAgIGVuYWJsZVdlYnZpZXdEZXRhaWxzQ29sbGVjdGlvbjogdHJ1ZVxuICB9O1xuICByZXR1cm4gYXdhaXQgd2Vidmlld0hlbHBlcnMuZ2V0V2ViVmlld3NNYXBwaW5nKHRoaXMuYWRiLCBvcHRzKTtcbn07XG5cbmhlbHBlcnMuYXNzaWduQ29udGV4dHMgPSBmdW5jdGlvbiBhc3NpZ25Db250ZXh0cyAod2Vidmlld3NNYXBwaW5nKSB7XG4gIGNvbnN0IG9wdHMgPSBPYmplY3QuYXNzaWduKHtpc0Nocm9tZVNlc3Npb246IHRoaXMuaXNDaHJvbWVTZXNzaW9ufSwgdGhpcy5vcHRzKTtcbiAgY29uc3Qgd2Vidmlld3MgPSB3ZWJ2aWV3SGVscGVycy5wYXJzZVdlYnZpZXdOYW1lcyh3ZWJ2aWV3c01hcHBpbmcsIG9wdHMpO1xuICB0aGlzLmNvbnRleHRzID0gW05BVElWRV9XSU4sIC4uLndlYnZpZXdzXTtcbiAgdGhpcy5sb2cuZGVidWcoYEF2YWlsYWJsZSBjb250ZXh0czogJHtKU09OLnN0cmluZ2lmeSh0aGlzLmNvbnRleHRzKX1gKTtcbiAgcmV0dXJuIHRoaXMuY29udGV4dHM7XG59O1xuXG5oZWxwZXJzLnN3aXRjaENvbnRleHQgPSBhc3luYyBmdW5jdGlvbiBzd2l0Y2hDb250ZXh0IChuYW1lLCB3ZWJ2aWV3c01hcHBpbmcpIHtcbiAgLy8gV2UgaGF2ZSBzb21lIG9wdGlvbnMgd2hlbiBpdCBjb21lcyB0byB3ZWJ2aWV3cy4gSWYgd2Ugd2FudCBhXG4gIC8vIENocm9tZWRyaXZlciB3ZWJ2aWV3LCB3ZSBjYW4gb25seSBjb250cm9sIG9uZSBhdCBhIHRpbWUuXG4gIGlmICh0aGlzLmlzQ2hyb21lZHJpdmVyQ29udGV4dChuYW1lKSkge1xuICAgIC8vIHN0YXJ0IHByb3h5aW5nIGNvbW1hbmRzIGRpcmVjdGx5IHRvIGNocm9tZWRyaXZlclxuICAgIGF3YWl0IHRoaXMuc3RhcnRDaHJvbWVkcml2ZXJQcm94eShuYW1lLCB3ZWJ2aWV3c01hcHBpbmcpO1xuICB9IGVsc2UgaWYgKHRoaXMuaXNDaHJvbWVkcml2ZXJDb250ZXh0KHRoaXMuY3VyQ29udGV4dCkpIHtcbiAgICAvLyBpZiB3ZSdyZSBtb3ZpbmcgdG8gYSBub24tY2hyb21lZHJpdmVyIHdlYnZpZXcsIGFuZCBvdXIgY3VycmVudCBjb250ZXh0XG4gICAgLy8gX2lzXyBhIGNocm9tZWRyaXZlciB3ZWJ2aWV3LCBpZiBjYXBzIHJlY3JlYXRlQ2hyb21lRHJpdmVyU2Vzc2lvbnMgaXMgc2V0XG4gICAgLy8gdG8gdHJ1ZSB0aGVuIGtpbGwgY2hyb21lZHJpdmVyIHNlc3Npb24gdXNpbmcgc3RvcENocm9tZWRyaXZlclByb3hpZXMgb3JcbiAgICAvLyBlbHNlIHNpbXBseSBzdXNwZW5kIHByb3h5aW5nIHRvIHRoZSBsYXR0ZXJcbiAgICBpZiAodGhpcy5vcHRzLnJlY3JlYXRlQ2hyb21lRHJpdmVyU2Vzc2lvbnMpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdyZWNyZWF0ZUNocm9tZURyaXZlclNlc3Npb25zIHNldCB0byB0cnVlOyBraWxsaW5nIGV4aXN0aW5nIGNocm9tZWRyaXZlcnMnKTtcbiAgICAgIGF3YWl0IHRoaXMuc3RvcENocm9tZWRyaXZlclByb3hpZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5zdXNwZW5kQ2hyb21lZHJpdmVyUHJveHkoKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBEaWRuJ3Qga25vdyBob3cgdG8gaGFuZGxlIHN3aXRjaGluZyB0byBjb250ZXh0ICcke25hbWV9J2ApO1xuICB9XG59O1xuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogT24tb2JqZWN0IGNvbnRleHQtcmVsYXRlZCBoZWxwZXJzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gVGhlIHJlYXNvbiB0aGlzIGlzIGEgZnVuY3Rpb24gYW5kIG5vdCBqdXN0IGEgY29uc3RhbnQgaXMgdGhhdCBib3RoIGFuZHJvaWQtXG4vLyBkcml2ZXIgYW5kIHNlbGVuZHJvaWQtZHJpdmVyIHVzZSB0aGlzIGxvZ2ljLCBhbmQgZWFjaCBvbmUgcmV0dXJuc1xuLy8gYSBkaWZmZXJlbnQgZGVmYXVsdCBjb250ZXh0IG5hbWVcbmhlbHBlcnMuZGVmYXVsdENvbnRleHROYW1lID0gZnVuY3Rpb24gZGVmYXVsdENvbnRleHROYW1lICgpIHtcbiAgcmV0dXJuIE5BVElWRV9XSU47XG59O1xuXG5oZWxwZXJzLmRlZmF1bHRXZWJ2aWV3TmFtZSA9IGZ1bmN0aW9uIGRlZmF1bHRXZWJ2aWV3TmFtZSAoKSB7XG4gIHJldHVybiBXRUJWSUVXX0JBU0UgKyB0aGlzLm9wdHMuYXBwUGFja2FnZTtcbn07XG5cbmhlbHBlcnMuaXNXZWJDb250ZXh0ID0gZnVuY3Rpb24gaXNXZWJDb250ZXh0ICgpIHtcbiAgcmV0dXJuIHRoaXMuY3VyQ29udGV4dCAhPT0gbnVsbCAmJiB0aGlzLmN1ckNvbnRleHQgIT09IE5BVElWRV9XSU47XG59O1xuXG4vLyBUdXJuIG9uIHByb3h5aW5nIHRvIGFuIGV4aXN0aW5nIENocm9tZWRyaXZlciBzZXNzaW9uIG9yIGEgbmV3IG9uZVxuaGVscGVycy5zdGFydENocm9tZWRyaXZlclByb3h5ID0gYXN5bmMgZnVuY3Rpb24gc3RhcnRDaHJvbWVkcml2ZXJQcm94eSAoY29udGV4dCwgd2Vidmlld3NNYXBwaW5nKSB7XG4gIHRoaXMubG9nLmRlYnVnKGBDb25uZWN0aW5nIHRvIGNocm9tZS1iYWNrZWQgd2VidmlldyBjb250ZXh0ICcke2NvbnRleHR9J2ApO1xuXG4gIGxldCBjZDtcbiAgaWYgKHRoaXMuc2Vzc2lvbkNocm9tZWRyaXZlcnNbY29udGV4dF0pIHtcbiAgICAvLyBpbiB0aGUgY2FzZSB3aGVyZSB3ZSd2ZSBhbHJlYWR5IHNldCB1cCBhIGNocm9tZWRyaXZlciBmb3IgYSBjb250ZXh0LFxuICAgIC8vIHdlIHdhbnQgdG8gcmVjb25uZWN0IHRvIGl0LCBub3QgY3JlYXRlIGEgd2hvbGUgbmV3IG9uZVxuICAgIHRoaXMubG9nLmRlYnVnKGBGb3VuZCBleGlzdGluZyBDaHJvbWVkcml2ZXIgZm9yIGNvbnRleHQgJyR7Y29udGV4dH0nLiBVc2luZyBpdC5gKTtcbiAgICBjZCA9IHRoaXMuc2Vzc2lvbkNocm9tZWRyaXZlcnNbY29udGV4dF07XG4gICAgYXdhaXQgc2V0dXBFeGlzdGluZ0Nocm9tZWRyaXZlcih0aGlzLmxvZywgY2QpO1xuICB9IGVsc2Uge1xuICAgIGxldCBvcHRzID0gXy5jbG9uZURlZXAodGhpcy5vcHRzKTtcbiAgICBvcHRzLmNocm9tZVVzZVJ1bm5pbmdBcHAgPSB0cnVlO1xuXG4gICAgLy8gaWYgcmVxdWVzdGVkLCB0ZWxsIGNocm9tZWRyaXZlciB0byBhdHRhY2ggdG8gdGhlIGFuZHJvaWQgcGFja2FnZSB3ZSBoYXZlXG4gICAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBjb250ZXh0IG5hbWUsIHJhdGhlciB0aGFuIHRoZSBwYWNrYWdlIG9mIHRoZSBBVVQuXG4gICAgLy8gQW5kIHR1cm4gdGhpcyBvbiBieSBkZWZhdWx0IGZvciBjaHJvbWUtLWlmIGNocm9tZSBwb3BzIHVwIHdpdGggYSB3ZWJ2aWV3XG4gICAgLy8gYW5kIHNvbWVvbmUgd2FudHMgdG8gc3dpdGNoIHRvIGl0LCB3ZSBzaG91bGQgbGV0IGNocm9tZWRyaXZlciBjb25uZWN0IHRvXG4gICAgLy8gY2hyb21lIHJhdGhlciB0aGFuIHN0YXlpbmcgc3R1Y2sgb24gdGhlIEFVVFxuICAgIGlmIChvcHRzLmV4dHJhY3RDaHJvbWVBbmRyb2lkUGFja2FnZUZyb21Db250ZXh0TmFtZSB8fCBjb250ZXh0ID09PSBgJHtXRUJWSUVXX0JBU0V9Y2hyb21lYCkge1xuICAgICAgbGV0IGFuZHJvaWRQYWNrYWdlID0gY29udGV4dC5tYXRjaChgJHtXRUJWSUVXX0JBU0V9KC4rKWApO1xuICAgICAgaWYgKGFuZHJvaWRQYWNrYWdlICYmIGFuZHJvaWRQYWNrYWdlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgb3B0cy5jaHJvbWVBbmRyb2lkUGFja2FnZSA9IGFuZHJvaWRQYWNrYWdlWzFdO1xuICAgICAgfVxuICAgICAgaWYgKCFvcHRzLmV4dHJhY3RDaHJvbWVBbmRyb2lkUGFja2FnZUZyb21Db250ZXh0TmFtZSkge1xuICAgICAgICBpZiAoXy5oYXModGhpcy5vcHRzLCAnZW5hYmxlV2Vidmlld0RldGFpbHNDb2xsZWN0aW9uJykgJiYgIXRoaXMub3B0cy5lbmFibGVXZWJ2aWV3RGV0YWlsc0NvbGxlY3Rpb24pIHtcbiAgICAgICAgICAvLyBXaGVuIGVuYWJsZVdlYnZpZXdEZXRhaWxzQ29sbGVjdGlvbiBjYXBhYmlsaXR5IGlzIGV4cGxpY2l0bHkgZGlzYWJsZWQsIHRyeSB0byBpZGVudGlmeVxuICAgICAgICAgIC8vIGNocm9tZUFuZHJvaWRQYWNrYWdlIGJhc2VkIG9uIGNvbnRleHRzLCBrbm93biBjaHJvbWUgdmFyaWFudCBwYWNrYWdlcyBhbmQgcXVlcnlBcHBTdGF0ZSByZXN1bHRcbiAgICAgICAgICAvLyBzaW5jZSB3ZWJ2aWV3c01hcHBpbmcgZG9lcyBub3QgaGF2ZSBpbmZvIG9iamVjdFxuICAgICAgICAgIGNvbnN0IGNvbnRleHRzID0gd2Vidmlld3NNYXBwaW5nLm1hcCgod20pID0+IHdtLndlYnZpZXdOYW1lKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGtub3duUGFja2FnZSBvZiBLTk9XTl9DSFJPTUVfUEFDS0FHRV9OQU1FUykge1xuICAgICAgICAgICAgaWYgKF8uaW5jbHVkZXMoY29udGV4dHMsIGAke1dFQlZJRVdfQkFTRX0ke2tub3duUGFja2FnZX1gKSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFwcFN0YXRlID0gYXdhaXQgdGhpcy5xdWVyeUFwcFN0YXRlKGtub3duUGFja2FnZSk7XG4gICAgICAgICAgICBpZiAoXy5pbmNsdWRlcyhbQVBQX1NUQVRFLlJVTk5JTkdfSU5fQkFDS0dST1VORCwgQVBQX1NUQVRFLlJVTk5JTkdfSU5fRk9SRUdST1VORF0sIGFwcFN0YXRlKSkge1xuICAgICAgICAgICAgICBvcHRzLmNocm9tZUFuZHJvaWRQYWNrYWdlID0ga25vd25QYWNrYWdlO1xuICAgICAgICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgSWRlbnRpZmllZCBjaHJvbWVBbmRyb2lkUGFja2FnZSBhcyAnJHtvcHRzLmNocm9tZUFuZHJvaWRQYWNrYWdlfScgYCArXG4gICAgICAgICAgICAgICAgYGZvciBjb250ZXh0ICcke2NvbnRleHR9JyBieSBxdWVyeWluZyBzdGF0ZXMgb2YgQ2hyb21lIGFwcCBwYWNrYWdlc2ApO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9yIChjb25zdCB3bSBvZiB3ZWJ2aWV3c01hcHBpbmcpIHtcbiAgICAgICAgICAgIGlmICh3bS53ZWJ2aWV3TmFtZSA9PT0gY29udGV4dCAmJiBfLmhhcyh3bT8uaW5mbywgJ0FuZHJvaWQtUGFja2FnZScpKSB7XG4gICAgICAgICAgICAgIG9wdHMuY2hyb21lQW5kcm9pZFBhY2thZ2UgPSB3bS5pbmZvWydBbmRyb2lkLVBhY2thZ2UnXTtcbiAgICAgICAgICAgICAgdGhpcy5sb2cuZGVidWcoYElkZW50aWZpZWQgY2hyb21lQW5kcm9pZFBhY2thZ2UgYXMgJyR7b3B0cy5jaHJvbWVBbmRyb2lkUGFja2FnZX0nIGAgK1xuICAgICAgICAgICAgICAgIGBmb3IgY29udGV4dCAnJHtjb250ZXh0fScgYnkgQ0RQYCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNkID0gYXdhaXQgdGhpcy5zZXR1cE5ld0Nocm9tZWRyaXZlcihvcHRzLCB0aGlzLmFkYi5jdXJEZXZpY2VJZCwgdGhpcy5hZGIsIGNvbnRleHQpO1xuICAgIC8vIGJpbmQgb3VyIHN0b3AvZXhpdCBoYW5kbGVyLCBwYXNzaW5nIGluIGNvbnRleHQgc28gd2Uga25vdyB3aGljaFxuICAgIC8vIG9uZSBzdG9wcGVkIHVuZXhwZWN0ZWRseVxuICAgIGNkLm9uKENocm9tZWRyaXZlci5FVkVOVF9DSEFOR0VELCAobXNnKSA9PiB7XG4gICAgICBpZiAobXNnLnN0YXRlID09PSBDaHJvbWVkcml2ZXIuU1RBVEVfU1RPUFBFRCkge1xuICAgICAgICB0aGlzLm9uQ2hyb21lZHJpdmVyU3RvcChjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBzYXZlIHRoZSBjaHJvbWVkcml2ZXIgb2JqZWN0IHVuZGVyIHRoZSBjb250ZXh0XG4gICAgdGhpcy5zZXNzaW9uQ2hyb21lZHJpdmVyc1tjb250ZXh0XSA9IGNkO1xuICB9XG4gIC8vIGhvb2sgdXAgdGhlIGxvY2FsIHZhcmlhYmxlcyBzbyB3ZSBjYW4gcHJveHkgdGhpcyBiaXpcbiAgdGhpcy5jaHJvbWVkcml2ZXIgPSBjZDtcbiAgdGhpcy5wcm94eVJlcVJlcyA9IHRoaXMuY2hyb21lZHJpdmVyLnByb3h5UmVxLmJpbmQodGhpcy5jaHJvbWVkcml2ZXIpO1xuICB0aGlzLnByb3h5Q29tbWFuZCA9IHRoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkuY29tbWFuZC5iaW5kKHRoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkpO1xuICB0aGlzLmp3cFByb3h5QWN0aXZlID0gdHJ1ZTtcbn07XG5cbi8vIFN0b3AgcHJveHlpbmcgdG8gYW55IENocm9tZWRyaXZlclxuaGVscGVycy5zdXNwZW5kQ2hyb21lZHJpdmVyUHJveHkgPSBmdW5jdGlvbiBzdXNwZW5kQ2hyb21lZHJpdmVyUHJveHkgKCkge1xuICB0aGlzLmNocm9tZWRyaXZlciA9IG51bGw7XG4gIHRoaXMucHJveHlSZXFSZXMgPSBudWxsO1xuICB0aGlzLnByb3h5Q29tbWFuZCA9IG51bGw7XG4gIHRoaXMuandwUHJveHlBY3RpdmUgPSBmYWxzZTtcbn07XG5cbi8vIEhhbmRsZSBhbiBvdXQtb2YtYmFuZCBDaHJvbWVkcml2ZXIgc3RvcCBldmVudFxuaGVscGVycy5vbkNocm9tZWRyaXZlclN0b3AgPSBhc3luYyBmdW5jdGlvbiBvbkNocm9tZWRyaXZlclN0b3AgKGNvbnRleHQpIHtcbiAgdGhpcy5sb2cud2FybihgQ2hyb21lZHJpdmVyIGZvciBjb250ZXh0ICR7Y29udGV4dH0gc3RvcHBlZCB1bmV4cGVjdGVkbHlgKTtcbiAgaWYgKGNvbnRleHQgPT09IHRoaXMuY3VyQ29udGV4dCkge1xuICAgIC8vIHdlIGV4aXRlZCB1bmV4cGVjdGVkbHkgd2hpbGUgYXV0b21hdGluZyB0aGUgY3VycmVudCBjb250ZXh0IGFuZCBzbyB3YW50XG4gICAgLy8gdG8gc2h1dCBkb3duIHRoZSBzZXNzaW9uIGFuZCByZXNwb25kIHdpdGggYW4gZXJyb3JcbiAgICBsZXQgZXJyID0gbmV3IEVycm9yKCdDaHJvbWVkcml2ZXIgcXVpdCB1bmV4cGVjdGVkbHkgZHVyaW5nIHNlc3Npb24nKTtcbiAgICBhd2FpdCB0aGlzLnN0YXJ0VW5leHBlY3RlZFNodXRkb3duKGVycik7XG4gIH0gZWxzZSB7XG4gICAgLy8gaWYgYSBDaHJvbWVkcml2ZXIgaW4gdGhlIG5vbi1hY3RpdmUgY29udGV4dCBiYXJmcywgd2UgZG9uJ3QgcmVhbGx5XG4gICAgLy8gY2FyZSwgd2UnbGwganVzdCBtYWtlIGEgbmV3IG9uZSBuZXh0IHRpbWUgd2UgbmVlZCB0aGUgY29udGV4dC5cbiAgICB0aGlzLmxvZy53YXJuKFwiQ2hyb21lZHJpdmVyIHF1aXQgdW5leHBlY3RlZGx5LCBidXQgaXQgd2Fzbid0IHRoZSBhY3RpdmUgXCIgK1xuICAgICAgJ2NvbnRleHQsIGlnbm9yaW5nJyk7XG4gICAgZGVsZXRlIHRoaXMuc2Vzc2lvbkNocm9tZWRyaXZlcnNbY29udGV4dF07XG4gIH1cbn07XG5cbi8vIEludGVudGlvbmFsbHkgc3RvcCBhbGwgdGhlIGNocm9tZWRyaXZlcnMgY3VycmVudGx5IGFjdGl2ZSwgYW5kIGlnbm9yZVxuLy8gdGhlaXIgZXhpdCBldmVudHNcbmhlbHBlcnMuc3RvcENocm9tZWRyaXZlclByb3hpZXMgPSBhc3luYyBmdW5jdGlvbiBzdG9wQ2hyb21lZHJpdmVyUHJveGllcyAoKSB7XG4gIHRoaXMuc3VzcGVuZENocm9tZWRyaXZlclByb3h5KCk7IC8vIG1ha2Ugc3VyZSB3ZSB0dXJuIG9mZiB0aGUgcHJveHkgZmxhZ1xuICBmb3IgKGxldCBjb250ZXh0IG9mIF8ua2V5cyh0aGlzLnNlc3Npb25DaHJvbWVkcml2ZXJzKSkge1xuICAgIGxldCBjZCA9IHRoaXMuc2Vzc2lvbkNocm9tZWRyaXZlcnNbY29udGV4dF07XG4gICAgdGhpcy5sb2cuZGVidWcoYFN0b3BwaW5nIGNocm9tZWRyaXZlciBmb3IgY29udGV4dCAke2NvbnRleHR9YCk7XG4gICAgLy8gc3RvcCBsaXN0ZW5pbmcgZm9yIHRoZSBzdG9wcGVkIHN0YXRlIGV2ZW50XG4gICAgY2QucmVtb3ZlQWxsTGlzdGVuZXJzKENocm9tZWRyaXZlci5FVkVOVF9DSEFOR0VEKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgY2Quc3RvcCgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5sb2cud2FybihgRXJyb3Igc3RvcHBpbmcgQ2hyb21lZHJpdmVyOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgICBkZWxldGUgdGhpcy5zZXNzaW9uQ2hyb21lZHJpdmVyc1tjb250ZXh0XTtcbiAgfVxufTtcblxuaGVscGVycy5pc0Nocm9tZWRyaXZlckNvbnRleHQgPSBmdW5jdGlvbiBpc0Nocm9tZWRyaXZlckNvbnRleHQgKHZpZXdOYW1lKSB7XG4gIHJldHVybiBfLmluY2x1ZGVzKHZpZXdOYW1lLCBXRUJWSUVXX1dJTikgfHwgdmlld05hbWUgPT09IENIUk9NSVVNX1dJTjtcbn07XG5cbmhlbHBlcnMuc2hvdWxkRGlzbWlzc0Nocm9tZVdlbGNvbWUgPSBmdW5jdGlvbiBzaG91bGREaXNtaXNzQ2hyb21lV2VsY29tZSAoKSB7XG4gIHJldHVybiAhIXRoaXMub3B0cy5jaHJvbWVPcHRpb25zICYmXG4gICAgICAgICBfLmlzQXJyYXkodGhpcy5vcHRzLmNocm9tZU9wdGlvbnMuYXJncykgJiZcbiAgICAgICAgIHRoaXMub3B0cy5jaHJvbWVPcHRpb25zLmFyZ3MuaW5jbHVkZXMoJy0tbm8tZmlyc3QtcnVuJyk7XG59O1xuXG5oZWxwZXJzLmRpc21pc3NDaHJvbWVXZWxjb21lID0gYXN5bmMgZnVuY3Rpb24gZGlzbWlzc0Nocm9tZVdlbGNvbWUgKCkge1xuICB0aGlzLmxvZy5pbmZvKCdUcnlpbmcgdG8gZGlzbWlzcyBDaHJvbWUgd2VsY29tZScpO1xuICBsZXQgYWN0aXZpdHkgPSBhd2FpdCB0aGlzLmdldEN1cnJlbnRBY3Rpdml0eSgpO1xuICBpZiAoYWN0aXZpdHkgIT09ICdvcmcuY2hyb21pdW0uY2hyb21lLmJyb3dzZXIuZmlyc3RydW4uRmlyc3RSdW5BY3Rpdml0eScpIHtcbiAgICB0aGlzLmxvZy5pbmZvKCdDaHJvbWUgd2VsY29tZSBkaWFsb2cgbmV2ZXIgc2hvd2VkIHVwISBDb250aW51aW5nJyk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGxldCBlbCA9IGF3YWl0IHRoaXMuZmluZEVsT3JFbHMoJ2lkJywgJ2NvbS5hbmRyb2lkLmNocm9tZTppZC90ZXJtc19hY2NlcHQnLCBmYWxzZSk7XG4gIGF3YWl0IHRoaXMuY2xpY2soZWwuRUxFTUVOVCk7XG4gIHRyeSB7XG4gICAgbGV0IGVsID0gYXdhaXQgdGhpcy5maW5kRWxPckVscygnaWQnLCAnY29tLmFuZHJvaWQuY2hyb21lOmlkL25lZ2F0aXZlX2J1dHRvbicsIGZhbHNlKTtcbiAgICBhd2FpdCB0aGlzLmNsaWNrKGVsLkVMRU1FTlQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gRE8gTk9USElORywgVEhJUyBERVZJQ0UgRElETlQgTEFVTkNIIFRIRSBTSUdOSU4gRElBTE9HXG4gICAgLy8gSVQgTVVTVCBCRSBBIE5PTiBHTVMgREVWSUNFXG4gICAgdGhpcy5sb2cud2FybihgVGhpcyBkZXZpY2UgZGlkIG5vdCBzaG93IENocm9tZSBTaWduSW4gZGlhbG9nLCAke2UubWVzc2FnZX1gKTtcbiAgfVxufTtcblxuaGVscGVycy5zdGFydENocm9tZVNlc3Npb24gPSBhc3luYyBmdW5jdGlvbiBzdGFydENocm9tZVNlc3Npb24gKCkge1xuICB0aGlzLmxvZy5pbmZvKCdTdGFydGluZyBhIGNocm9tZS1iYXNlZCBicm93c2VyIHNlc3Npb24nKTtcbiAgbGV0IG9wdHMgPSBfLmNsb25lRGVlcCh0aGlzLm9wdHMpO1xuXG4gIGNvbnN0IGtub3duUGFja2FnZXMgPSBbXG4gICAgJ29yZy5jaHJvbWl1bS5jaHJvbWUuc2hlbGwnLFxuICAgICdjb20uYW5kcm9pZC5jaHJvbWUnLFxuICAgICdjb20uY2hyb21lLmJldGEnLFxuICAgICdvcmcuY2hyb21pdW0uY2hyb21lJyxcbiAgICAnb3JnLmNocm9taXVtLndlYnZpZXdfc2hlbGwnLFxuICBdO1xuXG4gIGlmIChfLmluY2x1ZGVzKGtub3duUGFja2FnZXMsIHRoaXMub3B0cy5hcHBQYWNrYWdlKSkge1xuICAgIG9wdHMuY2hyb21lQnVuZGxlSWQgPSB0aGlzLm9wdHMuYXBwUGFja2FnZTtcbiAgfSBlbHNlIHtcbiAgICBvcHRzLmNocm9tZUFuZHJvaWRBY3Rpdml0eSA9IHRoaXMub3B0cy5hcHBBY3Rpdml0eTtcbiAgfVxuICB0aGlzLmNocm9tZWRyaXZlciA9IGF3YWl0IHRoaXMuc2V0dXBOZXdDaHJvbWVkcml2ZXIob3B0cywgdGhpcy5hZGIuY3VyRGV2aWNlSWQsIHRoaXMuYWRiKTtcbiAgdGhpcy5jaHJvbWVkcml2ZXIub24oQ2hyb21lZHJpdmVyLkVWRU5UX0NIQU5HRUQsIChtc2cpID0+IHtcbiAgICBpZiAobXNnLnN0YXRlID09PSBDaHJvbWVkcml2ZXIuU1RBVEVfU1RPUFBFRCkge1xuICAgICAgdGhpcy5vbkNocm9tZWRyaXZlclN0b3AoQ0hST01JVU1fV0lOKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIE5vdyB0aGF0IHdlIGhhdmUgYSBDaHJvbWUgc2Vzc2lvbiwgd2UgZW5zdXJlIHRoYXQgdGhlIGNvbnRleHQgaXNcbiAgLy8gYXBwcm9wcmlhdGVseSBzZXQgYW5kIHRoYXQgdGhpcyBjaHJvbWVkcml2ZXIgaXMgYWRkZWQgdG8gdGhlIGxpc3RcbiAgLy8gb2Ygc2Vzc2lvbiBjaHJvbWVkcml2ZXJzIHNvIHdlIGNhbiBzd2l0Y2ggYmFjayBhbmQgZm9ydGhcbiAgdGhpcy5jdXJDb250ZXh0ID0gQ0hST01JVU1fV0lOO1xuICB0aGlzLnNlc3Npb25DaHJvbWVkcml2ZXJzW0NIUk9NSVVNX1dJTl0gPSB0aGlzLmNocm9tZWRyaXZlcjtcbiAgdGhpcy5wcm94eVJlcVJlcyA9IHRoaXMuY2hyb21lZHJpdmVyLnByb3h5UmVxLmJpbmQodGhpcy5jaHJvbWVkcml2ZXIpO1xuICB0aGlzLnByb3h5Q29tbWFuZCA9IHRoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkuY29tbWFuZC5iaW5kKHRoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkpO1xuICB0aGlzLmp3cFByb3h5QWN0aXZlID0gdHJ1ZTtcblxuICBpZiAodGhpcy5zaG91bGREaXNtaXNzQ2hyb21lV2VsY29tZSgpKSB7XG4gICAgLy8gZGlzbWlzcyBDaHJvbWUgd2VsY29tZSBkaWFsb2dcbiAgICBhd2FpdCB0aGlzLmRpc21pc3NDaHJvbWVXZWxjb21lKCk7XG4gIH1cbn07XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEludGVybmFsIGxpYnJhcnkgZnVuY3Rpb25zXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5hc3luYyBmdW5jdGlvbiBzZXR1cEV4aXN0aW5nQ2hyb21lZHJpdmVyIChsb2csIGNocm9tZWRyaXZlcikge1xuICAvLyBjaGVjayB0aGUgc3RhdHVzIGJ5IHNlbmRpbmcgYSBzaW1wbGUgd2luZG93LWJhc2VkIGNvbW1hbmQgdG8gQ2hyb21lRHJpdmVyXG4gIC8vIGlmIHRoZXJlIGlzIGFuIGVycm9yLCB3ZSB3YW50IHRvIHJlY3JlYXRlIHRoZSBDaHJvbWVEcml2ZXIgc2Vzc2lvblxuICBpZiAoIWF3YWl0IGNocm9tZWRyaXZlci5oYXNXb3JraW5nV2VidmlldygpKSB7XG4gICAgbG9nLmRlYnVnKCdDaHJvbWVEcml2ZXIgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBhIHdpbmRvdy4gJyArXG4gICAgICAgICAgICAgICAgICdSZS1pbml0aWFsaXppbmcgdGhlIHNlc3Npb24uJyk7XG4gICAgYXdhaXQgY2hyb21lZHJpdmVyLnJlc3RhcnQoKTtcbiAgfVxuICByZXR1cm4gY2hyb21lZHJpdmVyO1xufVxuXG4vKipcbiAqIEZpbmQgYSBmcmVlIHBvcnQgdG8gaGF2ZSBDaHJvbWVkcml2ZXIgbGlzdGVuIG9uLlxuICpcbiAqIEBwYXJhbSB7YXJyYXl9IHBvcnRTcGVjIC0gQXJyYXkgd2hpY2ggaXMgYSBsaXN0IG9mIHBvcnRzLiBBIGxpc3QgaXRlbSBtYXlcbiAqIGFsc28gaXRzZWxmIGJlIGFuIGFycmF5IG9mIGxlbmd0aCAyIHNwZWNpZnlpbmcgYSBzdGFydCBhbmQgZW5kIHBvcnQgb2ZcbiAqIGEgcmFuZ2UuIFNvbWUgdmFsaWQgcG9ydCBzcGVjczpcbiAqICAgIC0gWzgwMDAsIDgwMDEsIDgwMDJdXG4gKiAgICAtIFtbODAwMCwgODAwNV1dXG4gKiAgICAtIFs4MDAwLCBbOTAwMCwgOTEwMF1dXG4gKiBAcGFyYW0ge09iamVjdD99IGxvZyBMb2dnZXIgaW5zdGFuY2VcbiAqXG4gKiBAcmV0dXJuIHtudW1iZXJ9IEEgZnJlZSBwb3J0XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldENocm9tZWRyaXZlclBvcnQgKHBvcnRTcGVjLCBsb2cgPSBudWxsKSB7XG4gIGNvbnN0IGdldFBvcnQgPSBCLnByb21pc2lmeShQb3J0RmluZGVyLmdldFBvcnQsIHtjb250ZXh0OiBQb3J0RmluZGVyfSk7XG5cbiAgLy8gaWYgdGhlIHVzZXIgZGlkbid0IGdpdmUgdXMgYW55IHNwZWNpZmljIGluZm9ybWF0aW9uIGFib3V0IGNocm9tZWRyaXZlclxuICAvLyBwb3J0IHJhbmdlcywganVzdCBmaW5kIGFueSBmcmVlIHBvcnRcbiAgaWYgKCFwb3J0U3BlYykge1xuICAgIGNvbnN0IHBvcnQgPSBhd2FpdCBnZXRQb3J0KCk7XG4gICAgbG9nPy5kZWJ1ZyhgQSBwb3J0IHdhcyBub3QgZ2l2ZW4sIHVzaW5nIHJhbmRvbSBmcmVlIHBvcnQ6ICR7cG9ydH1gKTtcbiAgICByZXR1cm4gcG9ydDtcbiAgfVxuXG4gIC8vIG90aGVyd2lzZSBmaW5kIHRoZSBmcmVlIHBvcnQgYmFzZWQgb24gYSBsaXN0IG9yIHJhbmdlIHByb3ZpZGVkIGJ5IHRoZSB1c2VyXG4gIGxvZz8uZGVidWcoYEZpbmRpbmcgYSBmcmVlIHBvcnQgZm9yIGNocm9tZWRyaXZlciB1c2luZyBzcGVjICR7SlNPTi5zdHJpbmdpZnkocG9ydFNwZWMpfWApO1xuICBsZXQgZm91bmRQb3J0ID0gbnVsbDtcbiAgZm9yIChjb25zdCBwb3RlbnRpYWxQb3J0IG9mIHBvcnRTcGVjKSB7XG4gICAgbGV0IHBvcnQsIHN0b3BQb3J0O1xuICAgIGlmIChfLmlzQXJyYXkocG90ZW50aWFsUG9ydCkpIHtcbiAgICAgIChbcG9ydCwgc3RvcFBvcnRdID0gcG90ZW50aWFsUG9ydCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvcnQgPSBwYXJzZUludChwb3RlbnRpYWxQb3J0LCAxMCk7IC8vIGVuc3VyZSB3ZSBoYXZlIGEgbnVtYmVyIGFuZCBub3QgYSBzdHJpbmdcbiAgICAgIHN0b3BQb3J0ID0gcG9ydDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGxvZz8uZGVidWcoYENoZWNraW5nIHBvcnQgcmFuZ2UgJHtwb3J0fToke3N0b3BQb3J0fWApO1xuICAgICAgZm91bmRQb3J0ID0gYXdhaXQgZ2V0UG9ydCh7cG9ydCwgc3RvcFBvcnR9KTtcbiAgICAgIGJyZWFrO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZz8uZGVidWcoYE5vdGhpbmcgaW4gcG9ydCByYW5nZSAke3BvcnR9OiR7c3RvcFBvcnR9IHdhcyBhdmFpbGFibGVgKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZm91bmRQb3J0ID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBhIGZyZWUgcG9ydCBmb3IgY2hyb21lZHJpdmVyIHVzaW5nIGAgK1xuICAgICAgICAgICAgICAgICAgICBgY2hyb21lZHJpdmVyUG9ydHMgc3BlYyAke0pTT04uc3RyaW5naWZ5KHBvcnRTcGVjKX1gKTtcbiAgfVxuXG4gIGxvZz8uZGVidWcoYFVzaW5nIGZyZWUgcG9ydCAke2ZvdW5kUG9ydH0gZm9yIGNocm9tZWRyaXZlcmApO1xuICByZXR1cm4gZm91bmRQb3J0O1xufVxuXG5oZWxwZXJzLmlzQ2hyb21lZHJpdmVyQXV0b2Rvd25sb2FkRW5hYmxlZCA9IGZ1bmN0aW9uIGlzQ2hyb21lZHJpdmVyQXV0b2Rvd25sb2FkRW5hYmxlZCAoKSB7XG4gIGlmICh0aGlzLmlzRmVhdHVyZUVuYWJsZWQoQ0hST01FRFJJVkVSX0FVVE9ET1dOTE9BRF9GRUFUVVJFKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHRoaXM/LmxvZz8uZGVidWcoYEF1dG9tYXRlZCBDaHJvbWVkcml2ZXIgZG93bmxvYWQgaXMgZGlzYWJsZWQuIGAgK1xuICAgIGBVc2UgJyR7Q0hST01FRFJJVkVSX0FVVE9ET1dOTE9BRF9GRUFUVVJFfScgc2VydmVyIGZlYXR1cmUgdG8gZW5hYmxlIGl0YCk7XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmhlbHBlcnMuc2V0dXBOZXdDaHJvbWVkcml2ZXIgPSBhc3luYyBmdW5jdGlvbiBzZXR1cE5ld0Nocm9tZWRyaXZlciAob3B0cywgY3VyRGV2aWNlSWQsIGFkYiwgY29udGV4dCA9IG51bGwpIHtcbiAgaWYgKG9wdHMuY2hyb21lRHJpdmVyUG9ydCkge1xuICAgIHRoaXM/LmxvZz8ud2FybihgVGhlICdjaHJvbWVEcml2ZXJQb3J0JyBjYXBhYmlsaXR5IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgJ2Nocm9tZWRyaXZlclBvcnQnIGluc3RlYWRgKTtcbiAgICBvcHRzLmNocm9tZWRyaXZlclBvcnQgPSBvcHRzLmNocm9tZURyaXZlclBvcnQ7XG4gIH1cblxuICBpZiAob3B0cy5jaHJvbWVkcml2ZXJQb3J0KSB7XG4gICAgdGhpcz8ubG9nPy5kZWJ1ZyhgVXNpbmcgdXNlci1zcGVjaWZpZWQgcG9ydCAke29wdHMuY2hyb21lZHJpdmVyUG9ydH0gZm9yIGNocm9tZWRyaXZlcmApO1xuICB9IGVsc2Uge1xuICAgIC8vIGlmIGEgc2luZ2xlIHBvcnQgd2Fzbid0IGdpdmVuLCB3ZSdsbCBsb29rIGZvciBhIGZyZWUgb25lXG4gICAgb3B0cy5jaHJvbWVkcml2ZXJQb3J0ID0gYXdhaXQgZ2V0Q2hyb21lZHJpdmVyUG9ydChvcHRzLmNocm9tZWRyaXZlclBvcnRzLCB0aGlzPy5sb2cpO1xuICB9XG5cbiAgY29uc3QgZGV0YWlscyA9IGNvbnRleHQgPyB3ZWJ2aWV3SGVscGVycy5nZXRXZWJ2aWV3RGV0YWlscyhhZGIsIGNvbnRleHQpIDogdW5kZWZpbmVkO1xuICBpZiAoIV8uaXNFbXB0eShkZXRhaWxzKSkge1xuICAgIHRoaXM/LmxvZz8uZGVidWcoJ1Bhc3Npbmcgd2ViIHZpZXcgZGV0YWlscyB0byB0aGUgQ2hyb21lZHJpdmVyIGNvbnN0cnVjdG9yOiAnICtcbiAgICAgIEpTT04uc3RyaW5naWZ5KGRldGFpbHMsIG51bGwsIDIpKTtcbiAgfVxuXG4gIGNvbnN0IGNocm9tZWRyaXZlciA9IG5ldyBDaHJvbWVkcml2ZXIoe1xuICAgIHBvcnQ6IG9wdHMuY2hyb21lZHJpdmVyUG9ydCxcbiAgICBleGVjdXRhYmxlOiBvcHRzLmNocm9tZWRyaXZlckV4ZWN1dGFibGUsXG4gICAgYWRiLFxuICAgIGNtZEFyZ3M6IG9wdHMuY2hyb21lZHJpdmVyQXJncyxcbiAgICB2ZXJib3NlOiAhIW9wdHMuc2hvd0Nocm9tZWRyaXZlckxvZyxcbiAgICBleGVjdXRhYmxlRGlyOiBvcHRzLmNocm9tZWRyaXZlckV4ZWN1dGFibGVEaXIsXG4gICAgbWFwcGluZ1BhdGg6IG9wdHMuY2hyb21lZHJpdmVyQ2hyb21lTWFwcGluZ0ZpbGUsXG4gICAgYnVuZGxlSWQ6IG9wdHMuY2hyb21lQnVuZGxlSWQsXG4gICAgdXNlU3lzdGVtRXhlY3V0YWJsZTogb3B0cy5jaHJvbWVkcml2ZXJVc2VTeXN0ZW1FeGVjdXRhYmxlLFxuICAgIGRpc2FibGVCdWlsZENoZWNrOiBvcHRzLmNocm9tZWRyaXZlckRpc2FibGVCdWlsZENoZWNrLFxuICAgIGRldGFpbHMsXG4gICAgaXNBdXRvZG93bmxvYWRFbmFibGVkOiB0aGlzPy5pc0Nocm9tZWRyaXZlckF1dG9kb3dubG9hZEVuYWJsZWQ/LigpXG4gIH0pO1xuXG4gIC8vIG1ha2Ugc3VyZSB0aGVyZSBhcmUgY2hyb21lT3B0aW9uc1xuICBvcHRzLmNocm9tZU9wdGlvbnMgPSBvcHRzLmNocm9tZU9wdGlvbnMgfHwge307XG4gIC8vIHRyeSBvdXQgYW55IHByZWZpeGVkIGNocm9tZU9wdGlvbnMsXG4gIC8vIGFuZCBzdHJpcCB0aGUgcHJlZml4XG4gIGZvciAoY29uc3Qgb3B0IG9mIF8ua2V5cyhvcHRzKSkge1xuICAgIGlmIChvcHQuZW5kc1dpdGgoJzpjaHJvbWVPcHRpb25zJykpIHtcbiAgICAgIHRoaXM/LmxvZz8ud2FybihgTWVyZ2luZyAnJHtvcHR9JyBpbnRvICdjaHJvbWVPcHRpb25zJy4gVGhpcyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvcmApO1xuICAgICAgXy5tZXJnZShvcHRzLmNocm9tZU9wdGlvbnMsIG9wdHNbb3B0XSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY2FwcyA9IHdlYnZpZXdIZWxwZXJzLmNyZWF0ZUNocm9tZWRyaXZlckNhcHMob3B0cywgY3VyRGV2aWNlSWQsIGRldGFpbHMpO1xuICB0aGlzPy5sb2c/LmRlYnVnKGBCZWZvcmUgc3RhcnRpbmcgY2hyb21lZHJpdmVyLCBhbmRyb2lkUGFja2FnZSBpcyAnJHtjYXBzLmNocm9tZU9wdGlvbnMuYW5kcm9pZFBhY2thZ2V9J2ApO1xuICBhd2FpdCBjaHJvbWVkcml2ZXIuc3RhcnQoY2Fwcyk7XG4gIHJldHVybiBjaHJvbWVkcml2ZXI7XG59O1xuY29uc3Qgc2V0dXBOZXdDaHJvbWVkcml2ZXIgPSBoZWxwZXJzLnNldHVwTmV3Q2hyb21lZHJpdmVyO1xuXG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMsIHNldHVwTmV3Q2hyb21lZHJpdmVyIH07XG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUlBOzs7Ozs7QUFFQSxNQUFNQSxpQ0FBaUMsR0FBRywyQkFBMUM7QUFFQSxJQUFJQyxRQUFRLEdBQUcsRUFBZjtBQUFBLElBQW1CQyxPQUFPLEdBQUcsRUFBN0I7QUFBQSxJQUFpQ0MsVUFBVSxHQUFHLEVBQTlDOzs7O0FBTUFGLFFBQVEsQ0FBQ0csaUJBQVQsR0FBNkIsZUFBZUEsaUJBQWYsR0FBb0M7RUFHL0QsT0FBTyxLQUFLQyxVQUFMLElBQW1CLEtBQUtDLGtCQUFMLEVBQTFCO0FBQ0QsQ0FKRDs7QUFNQUwsUUFBUSxDQUFDTSxXQUFULEdBQXVCLGVBQWVBLFdBQWYsR0FBOEI7RUFDbkQsTUFBTUMsZUFBZSxHQUFHLE1BQU1DLHdCQUFlQyxrQkFBZixDQUFrQyxLQUFLQyxHQUF2QyxFQUE0QyxLQUFLQyxJQUFqRCxDQUE5QjtFQUNBLE9BQU8sS0FBS0MsY0FBTCxDQUFvQkwsZUFBcEIsQ0FBUDtBQUNELENBSEQ7O0FBS0FQLFFBQVEsQ0FBQ2EsVUFBVCxHQUFzQixlQUFlQSxVQUFmLENBQTJCQyxJQUEzQixFQUFpQztFQUNyRCxJQUFJLENBQUNDLGNBQUtDLFFBQUwsQ0FBY0YsSUFBZCxDQUFMLEVBQTBCO0lBQ3hCQSxJQUFJLEdBQUcsS0FBS1Qsa0JBQUwsRUFBUDtFQUNELENBRkQsTUFFTyxJQUFJUyxJQUFJLEtBQUtHLDJCQUFiLEVBQTBCO0lBRS9CSCxJQUFJLEdBQUcsS0FBS0ksa0JBQUwsRUFBUDtFQUNEOztFQUVELElBQUlKLElBQUksS0FBSyxLQUFLVixVQUFsQixFQUE4QjtJQUM1QjtFQUNEOztFQUVELE1BQU1HLGVBQWUsR0FBRyxNQUFNQyx3QkFBZUMsa0JBQWYsQ0FBa0MsS0FBS0MsR0FB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
|
|
@@ -26,4 +26,4 @@ var _default = commands;
|
|
|
26
26
|
exports.default = _default;require('source-map-support').install();
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2NvdmVyYWdlLmpzIiwibmFtZXMiOlsiY29tbWFuZHMiLCJlbmRDb3ZlcmFnZSIsImludGVudFRvQnJvYWRjYXN0IiwiZWNPbkRldmljZVBhdGgiLCJhZGIiLCJyaW1yYWYiLCJicm9hZGNhc3RQcm9jZXNzRW5kIiwiYXBwUHJvY2VzcyIsInB1bGxGaWxlIiwiZXJyIiwibG9nIiwid2FybiIsIm1lc3NhZ2UiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvY292ZXJhZ2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29tbWFuZHMgPSB7fTtcblxuXG5jb21tYW5kcy5lbmRDb3ZlcmFnZSA9IGFzeW5jIGZ1bmN0aW9uIGVuZENvdmVyYWdlIChpbnRlbnRUb0Jyb2FkY2FzdCwgZWNPbkRldmljZVBhdGgpIHtcbiAgdHJ5IHtcbiAgICAvLyBlbnN1cmUgdGhlIGVjIHdlJ3JlIHB1bGxpbmcgaXMgbmV3bHkgY3JlYXRlZCBhcyBhIHJlc3VsdCBvZiB0aGUgaW50ZW50LlxuICAgIGF3YWl0IHRoaXMuYWRiLnJpbXJhZihlY09uRGV2aWNlUGF0aCk7XG4gICAgYXdhaXQgdGhpcy5hZGIuYnJvYWRjYXN0UHJvY2Vzc0VuZChpbnRlbnRUb0Jyb2FkY2FzdCwgdGhpcy5hcHBQcm9jZXNzKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wdWxsRmlsZShlY09uRGV2aWNlUGF0aCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMubG9nLndhcm4oYEVycm9yIGVuZGluZyB0ZXN0IGNvdmVyYWdlOiAke2Vyci5tZXNzYWdlfWApO1xuICB9XG4gIHJldHVybiAnJztcbn07XG5cblxuZXhwb3J0IHsgY29tbWFuZHMgfTtcbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxNQUFNQSxRQUFRLEdBQUcsRUFBakI7OztBQUdBQSxRQUFRLENBQUNDLFdBQVQsR0FBdUIsZUFBZUEsV0FBZixDQUE0QkMsaUJBQTVCLEVBQStDQyxjQUEvQyxFQUErRDtFQUNwRixJQUFJO0lBRUYsTUFBTSxLQUFLQyxHQUFMLENBQVNDLE1BQVQsQ0FBZ0JGLGNBQWhCLENBQU47SUFDQSxNQUFNLEtBQUtDLEdBQUwsQ0FBU0UsbUJBQVQsQ0FBNkJKLGlCQUE3QixFQUFnRCxLQUFLSyxVQUFyRCxDQUFOO0lBQ0EsT0FBTyxNQUFNLEtBQUtDLFFBQUwsQ0FBY0wsY0FBZCxDQUFiO0VBQ0QsQ0FMRCxDQUtFLE9BQU9NLEdBQVAsRUFBWTtJQUNaLEtBQUtDLEdBQUwsQ0FBU0MsSUFBVCxDQUFlLCtCQUE4QkYsR0FBRyxDQUFDRyxPQUFRLEVBQXpEO0VBQ0Q7O0VBQ0QsT0FBTyxFQUFQO0FBQ0QsQ0FWRDs7ZUFjZVosUSJ9
|
|
@@ -222,4 +222,4 @@ var _default = extensions;
|
|
|
222
222
|
exports.default = _default;require('source-map-support').install();
|
|
223
223
|
|
|
224
224
|
|
|
225
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9lbGVtZW50LmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiaGVscGVycyIsImV4dGVuc2lvbnMiLCJnZXRBdHRyaWJ1dGUiLCJhdHRyaWJ1dGUiLCJlbGVtZW50SWQiLCJwIiwiYm9vdHN0cmFwIiwic2VuZEFjdGlvbiIsImdldE5hbWUiLCJlbGVtZW50RGlzcGxheWVkIiwiZWxlbWVudEVuYWJsZWQiLCJlbGVtZW50U2VsZWN0ZWQiLCJzZXRFbGVtZW50VmFsdWUiLCJrZXlzIiwicmVwbGFjZSIsInRleHQiLCJBcnJheSIsImpvaW4iLCJwYXJhbXMiLCJ1bmljb2RlS2V5Ym9hcmQiLCJvcHRzIiwiZG9TZXRFbGVtZW50VmFsdWUiLCJzZXRWYWx1ZSIsInJlcGxhY2VWYWx1ZSIsInNldFZhbHVlSW1tZWRpYXRlIiwiY2xpY2siLCJhZGIiLCJpbnB1dFRleHQiLCJnZXRUZXh0IiwiY2xlYXIiLCJsZW5ndGgiLCJsb2ciLCJkZWJ1ZyIsInJlbWFpbmluZ0xlbmd0aCIsImxlbmd0aFRvU2VuZCIsImNsZWFyVGV4dEZpZWxkIiwiZ2V0TG9jYXRpb24iLCJnZXRMb2NhdGlvbkluVmlldyIsImdldFNpemUiLCJnZXRFbGVtZW50UmVjdCIsInRvdWNoTG9uZ0NsaWNrIiwieCIsInkiLCJkdXJhdGlvbiIsImFuZHJvaWRIZWxwZXJzIiwicmVtb3ZlTnVsbFByb3BlcnRpZXMiLCJ0b3VjaERvd24iLCJ0b3VjaFVwIiwidG91Y2hNb3ZlIiwiY29tcGxleFRhcCIsInRhcENvdW50IiwidG91Y2hDb3VudCIsInRhcCIsImNvdW50IiwidXRpbCIsImhhc1ZhbHVlIiwiRXJyb3IiLCJpIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUdBLElBQUlBLFFBQVEsR0FBRyxFQUFmO0FBQUEsSUFBbUJDLE9BQU8sR0FBRyxFQUE3QjtBQUFBLElBQWlDQyxVQUFVLEdBQUcsRUFBOUM7Ozs7QUFF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S0FIRCxNQUdPO0FBQ0wsWUFBTSxLQUFLcEMsU0FBTCxDQUFlQyxVQUFmLENBQTBCLE9BQTFCLEVBQW1DO0FBQUNrQyxRQUFBQSxDQUFEO0FBQUlDLFFBQUFBO0FBQUosT0FBbkMsQ0FBTjtBQUNEO0FBQ0Y7QUFDRixDQVpEOztBQWNBZ0IsTUFBTSxDQUFDQyxNQUFQLENBQWMxRCxVQUFkLEVBQTBCRixRQUExQixFQUFvQ0MsT0FBcEM7ZUFFZUMsVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbmRyb2lkSGVscGVycyBmcm9tICcuLi9hbmRyb2lkLWhlbHBlcnMnO1xuaW1wb3J0IHsgcmV0cnlJbnRlcnZhbCB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuXG5cbmxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuY29tbWFuZHMuZ2V0QXR0cmlidXRlID0gYXN5bmMgZnVuY3Rpb24gZ2V0QXR0cmlidXRlIChhdHRyaWJ1dGUsIGVsZW1lbnRJZCkge1xuICBsZXQgcCA9IHthdHRyaWJ1dGUsIGVsZW1lbnRJZH07XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OmdldEF0dHJpYnV0ZScsIHApO1xufTtcblxuY29tbWFuZHMuZ2V0TmFtZSA9IGFzeW5jIGZ1bmN0aW9uIGdldE5hbWUgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5nZXRBdHRyaWJ1dGUoJ2NsYXNzTmFtZScsIGVsZW1lbnRJZCk7XG59O1xuXG5jb21tYW5kcy5lbGVtZW50RGlzcGxheWVkID0gYXN5bmMgZnVuY3Rpb24gZWxlbWVudERpc3BsYXllZCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnZGlzcGxheWVkJywgZWxlbWVudElkKSA9PT0gJ3RydWUnO1xufTtcblxuY29tbWFuZHMuZWxlbWVudEVuYWJsZWQgPSBhc3luYyBmdW5jdGlvbiBlbGVtZW50RW5hYmxlZCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnZW5hYmxlZCcsIGVsZW1lbnRJZCkgPT09ICd0cnVlJztcbn07XG5cbmNvbW1hbmRzLmVsZW1lbnRTZWxlY3RlZCA9IGFzeW5jIGZ1bmN0aW9uIGVsZW1lbnRTZWxlY3RlZCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnc2VsZWN0ZWQnLCBlbGVtZW50SWQpID09PSAndHJ1ZSc7XG59O1xuXG5oZWxwZXJzLnNldEVsZW1lbnRWYWx1ZSA9IGFzeW5jIGZ1bmN0aW9uIHNldEVsZW1lbnRWYWx1ZSAoa2V5cywgZWxlbWVudElkLCByZXBsYWNlID0gZmFsc2UpIHtcbiAgbGV0IHRleHQgPSBrZXlzO1xuICBpZiAoa2V5cyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgdGV4dCA9IGtleXMuam9pbignJyk7XG4gIH1cblxuICBsZXQgcGFyYW1zID0ge1xuICAgIGVsZW1lbnRJZCxcbiAgICB0ZXh0LFxuICAgIHJlcGxhY2UsXG4gICAgdW5pY29kZUtleWJvYXJkOiB0aGlzLm9wdHMudW5pY29kZUtleWJvYXJkXG4gIH07XG5cbiAgcmV0dXJuIGF3YWl0IHRoaXMuZG9TZXRFbGVtZW50VmFsdWUocGFyYW1zKTtcbn07XG5cbi8qKlxuICogUmVhc29uIGZvciBpc29sYXRpbmcgZG9TZXRFbGVtZW50VmFsdWUgZnJvbSBzZXRFbGVtZW50VmFsdWUgaXMgZm9yIHJldXNpbmcgc2V0RWxlbWVudFZhbHVlXG4gKiBhY3Jvc3MgYW5kcm9pZC1kcml2ZXJzIChsaWtlIGFwcGl1bS11aWF1dG9tYXRvcjItZHJpdmVyKSBhbmQgdG8gYXZvaWQgY29kZSBkdXBsaWNhdGlvbi5cbiAqIE90aGVyIGFuZHJvaWQtZHJpdmVycyAobGlrZSBhcHBpdW0tdWlhdXRvbWF0b3IyLWRyaXZlcikgbmVlZCB0byBvdmVycmlkZSBkb1NldEVsZW1lbnRWYWx1ZVxuICogdG8gZmFjaWxpdGF0ZSBzZXRFbGVtZW50VmFsdWUuXG4gKi9cbmhlbHBlcnMuZG9TZXRFbGVtZW50VmFsdWUgPSBhc3luYyBmdW5jdGlvbiBkb1NldEVsZW1lbnRWYWx1ZSAocGFyYW1zKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OnNldFRleHQnLCBwYXJhbXMpO1xufTtcblxuY29tbWFuZHMuc2V0VmFsdWUgPSBhc3luYyBmdW5jdGlvbiBzZXRWYWx1ZSAoa2V5cywgZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnNldEVsZW1lbnRWYWx1ZShrZXlzLCBlbGVtZW50SWQsIGZhbHNlKTtcbn07XG5cbmNvbW1hbmRzLnJlcGxhY2VWYWx1ZSA9IGFzeW5jIGZ1bmN0aW9uIHJlcGxhY2VWYWx1ZSAoa2V5cywgZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnNldEVsZW1lbnRWYWx1ZShrZXlzLCBlbGVtZW50SWQsIHRydWUpO1xufTtcblxuY29tbWFuZHMuc2V0VmFsdWVJbW1lZGlhdGUgPSBhc3luYyBmdW5jdGlvbiBzZXRWYWx1ZUltbWVkaWF0ZSAoa2V5cywgZWxlbWVudElkKSB7XG4gIGxldCB0ZXh0ID0ga2V5cztcbiAgaWYgKGtleXMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIHRleHQgPSBrZXlzLmpvaW4oJycpO1xuICB9XG5cbiAgLy8gZmlyc3QsIG1ha2Ugc3VyZSB3ZSBhcmUgZm9jdXNlZCBvbiB0aGUgZWxlbWVudFxuICBhd2FpdCB0aGlzLmNsaWNrKGVsZW1lbnRJZCk7XG5cbiAgLy8gdGhlbiBzZW5kIHRocm91Z2ggYWRiXG4gIGF3YWl0IHRoaXMuYWRiLmlucHV0VGV4dCh0ZXh0KTtcbn07XG5cbmNvbW1hbmRzLmdldFRleHQgPSBhc3luYyBmdW5jdGlvbiBnZXRUZXh0IChlbGVtZW50SWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6Z2V0VGV4dCcsIHtlbGVtZW50SWR9KTtcbn07XG5cbmNvbW1hbmRzLmNsZWFyID0gYXN5bmMgZnVuY3Rpb24gY2xlYXIgKGVsZW1lbnRJZCkge1xuICBsZXQgdGV4dCA9IChhd2FpdCB0aGlzLmdldFRleHQoZWxlbWVudElkKSkgfHwgJyc7XG4gIGxldCBsZW5ndGggPSB0ZXh0Lmxlbmd0aDtcbiAgaWYgKGxlbmd0aCA9PT0gMCkge1xuICAgIC8vIGlmIGxlbmd0aCBpcyB6ZXJvIHRoZXJlIGFyZSB0d28gcG9zc2liaWxpdGllczpcbiAgICAvLyAgIDEuIHRoZXJlIGlzIG5vdGhpbmcgaW4gdGhlIHRleHQgZmllbGRcbiAgICAvLyAgIDIuIGl0IGlzIGEgcGFzc3dvcmQgZmllbGRcbiAgICAvLyBzaW5jZSB0aGVyZSBpcyBsaXR0bGUgb3ZlcmhlYWQgdG8gdGhlIGFkYiBjYWxsLCBkZWxldGUgMTAwIGVsZW1lbnRzXG4gICAgLy8gaWYgd2UgZ2V0IHplcm8sIGp1c3QgaW4gY2FzZSBpdCBpcyAjMlxuICAgIGxlbmd0aCA9IDEwMDtcbiAgfVxuICBhd2FpdCB0aGlzLmNsaWNrKGVsZW1lbnRJZCk7XG4gIHRoaXMubG9nLmRlYnVnKGBTZW5kaW5nIHVwIHRvICR7bGVuZ3RofSBjbGVhciBjaGFyYWN0ZXJzIHRvIGRldmljZWApO1xuICByZXR1cm4gYXdhaXQgcmV0cnlJbnRlcnZhbCg1LCA1MDAsIGFzeW5jICgpID0+IHtcbiAgICBsZXQgcmVtYWluaW5nTGVuZ3RoID0gbGVuZ3RoO1xuICAgIHdoaWxlIChyZW1haW5pbmdMZW5ndGggPiAwKSB7XG4gICAgICBsZXQgbGVuZ3RoVG9TZW5kID0gcmVtYWluaW5nTGVuZ3RoIDwgNTAgPyByZW1haW5pbmdMZW5ndGggOiA1MDtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBTZW5kaW5nICR7bGVuZ3RoVG9TZW5kfSBjbGVhciBjaGFyYWN0ZXJzIHRvIGRldmljZWApO1xuICAgICAgYXdhaXQgdGhpcy5hZGIuY2xlYXJUZXh0RmllbGQobGVuZ3RoVG9TZW5kKTtcbiAgICAgIHJlbWFpbmluZ0xlbmd0aCAtPSBsZW5ndGhUb1NlbmQ7XG4gICAgfVxuICB9KTtcbn07XG5cbmNvbW1hbmRzLmNsaWNrID0gYXN5bmMgZnVuY3Rpb24gY2xpY2sgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDpjbGljaycsIHtlbGVtZW50SWR9KTtcbn07XG5cbmNvbW1hbmRzLmdldExvY2F0aW9uID0gYXN5bmMgZnVuY3Rpb24gZ2V0TG9jYXRpb24gKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDpnZXRMb2NhdGlvbicsIHtlbGVtZW50SWR9KTtcbn07XG5cbmNvbW1hbmRzLmdldExvY2F0aW9uSW5WaWV3ID0gYXN5bmMgZnVuY3Rpb24gZ2V0TG9jYXRpb25JblZpZXcgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbihlbGVtZW50SWQpO1xufTtcblxuY29tbWFuZHMuZ2V0U2l6ZSA9IGFzeW5jIGZ1bmN0aW9uIGdldFNpemUgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDpnZXRTaXplJywge2VsZW1lbnRJZH0pO1xufTtcblxuY29tbWFuZHMuZ2V0RWxlbWVudFJlY3QgPSBhc3luYyBmdW5jdGlvbiBnZXRFbGVtZW50UmVjdCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OmdldFJlY3QnLCB7ZWxlbWVudElkfSk7XG59O1xuXG5jb21tYW5kcy50b3VjaExvbmdDbGljayA9IGFzeW5jIGZ1bmN0aW9uIHRvdWNoTG9uZ0NsaWNrIChlbGVtZW50SWQsIHgsIHksIGR1cmF0aW9uKSB7XG4gIGxldCBwYXJhbXMgPSB7ZWxlbWVudElkLCB4LCB5LCBkdXJhdGlvbn07XG4gIGFuZHJvaWRIZWxwZXJzLnJlbW92ZU51bGxQcm9wZXJ0aWVzKHBhcmFtcyk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OnRvdWNoTG9uZ0NsaWNrJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoRG93biA9IGFzeW5jIGZ1bmN0aW9uIHRvdWNoRG93biAoZWxlbWVudElkLCB4LCB5KSB7XG4gIGxldCBwYXJhbXMgPSB7ZWxlbWVudElkLCB4LCB5fTtcbiAgYW5kcm9pZEhlbHBlcnMucmVtb3ZlTnVsbFByb3BlcnRpZXMocGFyYW1zKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6dG91Y2hEb3duJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoVXAgPSBhc3luYyBmdW5jdGlvbiB0b3VjaFVwIChlbGVtZW50SWQsIHgsIHkpIHtcbiAgbGV0IHBhcmFtcyA9IHtlbGVtZW50SWQsIHgsIHl9O1xuICBhbmRyb2lkSGVscGVycy5yZW1vdmVOdWxsUHJvcGVydGllcyhwYXJhbXMpO1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDp0b3VjaFVwJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoTW92ZSA9IGFzeW5jIGZ1bmN0aW9uIHRvdWNoTW92ZSAoZWxlbWVudElkLCB4LCB5KSB7XG4gIGxldCBwYXJhbXMgPSB7ZWxlbWVudElkLCB4LCB5fTtcbiAgYW5kcm9pZEhlbHBlcnMucmVtb3ZlTnVsbFByb3BlcnRpZXMocGFyYW1zKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6dG91Y2hNb3ZlJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLmNvbXBsZXhUYXAgPSBhc3luYyBmdW5jdGlvbiBjb21wbGV4VGFwICh0YXBDb3VudCwgdG91Y2hDb3VudCwgZHVyYXRpb24sIHgsIHkpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2NsaWNrJywge3gsIHl9KTtcbn07XG5cbmNvbW1hbmRzLnRhcCA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50SWQgPSBudWxsLCB4ID0gbnVsbCwgeSA9IG51bGwsIGNvdW50ID0gMSkge1xuICBpZiAoIXV0aWwuaGFzVmFsdWUoZWxlbWVudElkKSAmJiAhdXRpbC5oYXNWYWx1ZSh4KSAmJiAhdXRpbC5oYXNWYWx1ZSh5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRWl0aGVyIGVsZW1lbnQgdG8gdGFwIG9yIGJvdGggYWJzb2x1dGUgY29vcmRpbmF0ZXMgc2hvdWxkIGJlIGRlZmluZWRgKTtcbiAgfVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICBpZiAodXRpbC5oYXNWYWx1ZShlbGVtZW50SWQpKSB7XG4gICAgICAvLyBGSVhNRTogYm9vdHN0cmFwIGlnbm9yZXMgcmVsYXRpdmUgY29vcmRpbmF0ZXNcbiAgICAgIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6Y2xpY2snLCB7ZWxlbWVudElkLCB4LCB5fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2NsaWNrJywge3gsIHl9KTtcbiAgICB9XG4gIH1cbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9lbGVtZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|
|
225
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2VsZW1lbnQuanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiZ2V0QXR0cmlidXRlIiwiYXR0cmlidXRlIiwiZWxlbWVudElkIiwicCIsImJvb3RzdHJhcCIsInNlbmRBY3Rpb24iLCJnZXROYW1lIiwiZWxlbWVudERpc3BsYXllZCIsImVsZW1lbnRFbmFibGVkIiwiZWxlbWVudFNlbGVjdGVkIiwic2V0RWxlbWVudFZhbHVlIiwia2V5cyIsInJlcGxhY2UiLCJ0ZXh0IiwiQXJyYXkiLCJqb2luIiwicGFyYW1zIiwidW5pY29kZUtleWJvYXJkIiwib3B0cyIsImRvU2V0RWxlbWVudFZhbHVlIiwic2V0VmFsdWUiLCJyZXBsYWNlVmFsdWUiLCJzZXRWYWx1ZUltbWVkaWF0ZSIsImNsaWNrIiwiYWRiIiwiaW5wdXRUZXh0IiwiZ2V0VGV4dCIsImNsZWFyIiwibGVuZ3RoIiwibG9nIiwiZGVidWciLCJyZW1haW5pbmdMZW5ndGgiLCJsZW5ndGhUb1NlbmQiLCJjbGVhclRleHRGaWVsZCIsImdldExvY2F0aW9uIiwiZ2V0TG9jYXRpb25JblZpZXciLCJnZXRTaXplIiwiZ2V0RWxlbWVudFJlY3QiLCJ0b3VjaExvbmdDbGljayIsIngiLCJ5IiwiZHVyYXRpb24iLCJhbmRyb2lkSGVscGVycyIsInJlbW92ZU51bGxQcm9wZXJ0aWVzIiwidG91Y2hEb3duIiwidG91Y2hVcCIsInRvdWNoTW92ZSIsImNvbXBsZXhUYXAiLCJ0YXBDb3VudCIsInRvdWNoQ291bnQiLCJ0YXAiLCJjb3VudCIsInV0aWwiLCJoYXNWYWx1ZSIsIkVycm9yIiwiaSIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9lbGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbmRyb2lkSGVscGVycyBmcm9tICcuLi9hbmRyb2lkLWhlbHBlcnMnO1xuaW1wb3J0IHsgcmV0cnlJbnRlcnZhbCB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuXG5cbmxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuY29tbWFuZHMuZ2V0QXR0cmlidXRlID0gYXN5bmMgZnVuY3Rpb24gZ2V0QXR0cmlidXRlIChhdHRyaWJ1dGUsIGVsZW1lbnRJZCkge1xuICBsZXQgcCA9IHthdHRyaWJ1dGUsIGVsZW1lbnRJZH07XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OmdldEF0dHJpYnV0ZScsIHApO1xufTtcblxuY29tbWFuZHMuZ2V0TmFtZSA9IGFzeW5jIGZ1bmN0aW9uIGdldE5hbWUgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5nZXRBdHRyaWJ1dGUoJ2NsYXNzTmFtZScsIGVsZW1lbnRJZCk7XG59O1xuXG5jb21tYW5kcy5lbGVtZW50RGlzcGxheWVkID0gYXN5bmMgZnVuY3Rpb24gZWxlbWVudERpc3BsYXllZCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnZGlzcGxheWVkJywgZWxlbWVudElkKSA9PT0gJ3RydWUnO1xufTtcblxuY29tbWFuZHMuZWxlbWVudEVuYWJsZWQgPSBhc3luYyBmdW5jdGlvbiBlbGVtZW50RW5hYmxlZCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnZW5hYmxlZCcsIGVsZW1lbnRJZCkgPT09ICd0cnVlJztcbn07XG5cbmNvbW1hbmRzLmVsZW1lbnRTZWxlY3RlZCA9IGFzeW5jIGZ1bmN0aW9uIGVsZW1lbnRTZWxlY3RlZCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnc2VsZWN0ZWQnLCBlbGVtZW50SWQpID09PSAndHJ1ZSc7XG59O1xuXG5oZWxwZXJzLnNldEVsZW1lbnRWYWx1ZSA9IGFzeW5jIGZ1bmN0aW9uIHNldEVsZW1lbnRWYWx1ZSAoa2V5cywgZWxlbWVudElkLCByZXBsYWNlID0gZmFsc2UpIHtcbiAgbGV0IHRleHQgPSBrZXlzO1xuICBpZiAoa2V5cyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgdGV4dCA9IGtleXMuam9pbignJyk7XG4gIH1cblxuICBsZXQgcGFyYW1zID0ge1xuICAgIGVsZW1lbnRJZCxcbiAgICB0ZXh0LFxuICAgIHJlcGxhY2UsXG4gICAgdW5pY29kZUtleWJvYXJkOiB0aGlzLm9wdHMudW5pY29kZUtleWJvYXJkXG4gIH07XG5cbiAgcmV0dXJuIGF3YWl0IHRoaXMuZG9TZXRFbGVtZW50VmFsdWUocGFyYW1zKTtcbn07XG5cbi8qKlxuICogUmVhc29uIGZvciBpc29sYXRpbmcgZG9TZXRFbGVtZW50VmFsdWUgZnJvbSBzZXRFbGVtZW50VmFsdWUgaXMgZm9yIHJldXNpbmcgc2V0RWxlbWVudFZhbHVlXG4gKiBhY3Jvc3MgYW5kcm9pZC1kcml2ZXJzIChsaWtlIGFwcGl1bS11aWF1dG9tYXRvcjItZHJpdmVyKSBhbmQgdG8gYXZvaWQgY29kZSBkdXBsaWNhdGlvbi5cbiAqIE90aGVyIGFuZHJvaWQtZHJpdmVycyAobGlrZSBhcHBpdW0tdWlhdXRvbWF0b3IyLWRyaXZlcikgbmVlZCB0byBvdmVycmlkZSBkb1NldEVsZW1lbnRWYWx1ZVxuICogdG8gZmFjaWxpdGF0ZSBzZXRFbGVtZW50VmFsdWUuXG4gKi9cbmhlbHBlcnMuZG9TZXRFbGVtZW50VmFsdWUgPSBhc3luYyBmdW5jdGlvbiBkb1NldEVsZW1lbnRWYWx1ZSAocGFyYW1zKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OnNldFRleHQnLCBwYXJhbXMpO1xufTtcblxuY29tbWFuZHMuc2V0VmFsdWUgPSBhc3luYyBmdW5jdGlvbiBzZXRWYWx1ZSAoa2V5cywgZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnNldEVsZW1lbnRWYWx1ZShrZXlzLCBlbGVtZW50SWQsIGZhbHNlKTtcbn07XG5cbmNvbW1hbmRzLnJlcGxhY2VWYWx1ZSA9IGFzeW5jIGZ1bmN0aW9uIHJlcGxhY2VWYWx1ZSAoa2V5cywgZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnNldEVsZW1lbnRWYWx1ZShrZXlzLCBlbGVtZW50SWQsIHRydWUpO1xufTtcblxuY29tbWFuZHMuc2V0VmFsdWVJbW1lZGlhdGUgPSBhc3luYyBmdW5jdGlvbiBzZXRWYWx1ZUltbWVkaWF0ZSAoa2V5cywgZWxlbWVudElkKSB7XG4gIGxldCB0ZXh0ID0ga2V5cztcbiAgaWYgKGtleXMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIHRleHQgPSBrZXlzLmpvaW4oJycpO1xuICB9XG5cbiAgLy8gZmlyc3QsIG1ha2Ugc3VyZSB3ZSBhcmUgZm9jdXNlZCBvbiB0aGUgZWxlbWVudFxuICBhd2FpdCB0aGlzLmNsaWNrKGVsZW1lbnRJZCk7XG5cbiAgLy8gdGhlbiBzZW5kIHRocm91Z2ggYWRiXG4gIGF3YWl0IHRoaXMuYWRiLmlucHV0VGV4dCh0ZXh0KTtcbn07XG5cbmNvbW1hbmRzLmdldFRleHQgPSBhc3luYyBmdW5jdGlvbiBnZXRUZXh0IChlbGVtZW50SWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6Z2V0VGV4dCcsIHtlbGVtZW50SWR9KTtcbn07XG5cbmNvbW1hbmRzLmNsZWFyID0gYXN5bmMgZnVuY3Rpb24gY2xlYXIgKGVsZW1lbnRJZCkge1xuICBsZXQgdGV4dCA9IChhd2FpdCB0aGlzLmdldFRleHQoZWxlbWVudElkKSkgfHwgJyc7XG4gIGxldCBsZW5ndGggPSB0ZXh0Lmxlbmd0aDtcbiAgaWYgKGxlbmd0aCA9PT0gMCkge1xuICAgIC8vIGlmIGxlbmd0aCBpcyB6ZXJvIHRoZXJlIGFyZSB0d28gcG9zc2liaWxpdGllczpcbiAgICAvLyAgIDEuIHRoZXJlIGlzIG5vdGhpbmcgaW4gdGhlIHRleHQgZmllbGRcbiAgICAvLyAgIDIuIGl0IGlzIGEgcGFzc3dvcmQgZmllbGRcbiAgICAvLyBzaW5jZSB0aGVyZSBpcyBsaXR0bGUgb3ZlcmhlYWQgdG8gdGhlIGFkYiBjYWxsLCBkZWxldGUgMTAwIGVsZW1lbnRzXG4gICAgLy8gaWYgd2UgZ2V0IHplcm8sIGp1c3QgaW4gY2FzZSBpdCBpcyAjMlxuICAgIGxlbmd0aCA9IDEwMDtcbiAgfVxuICBhd2FpdCB0aGlzLmNsaWNrKGVsZW1lbnRJZCk7XG4gIHRoaXMubG9nLmRlYnVnKGBTZW5kaW5nIHVwIHRvICR7bGVuZ3RofSBjbGVhciBjaGFyYWN0ZXJzIHRvIGRldmljZWApO1xuICByZXR1cm4gYXdhaXQgcmV0cnlJbnRlcnZhbCg1LCA1MDAsIGFzeW5jICgpID0+IHtcbiAgICBsZXQgcmVtYWluaW5nTGVuZ3RoID0gbGVuZ3RoO1xuICAgIHdoaWxlIChyZW1haW5pbmdMZW5ndGggPiAwKSB7XG4gICAgICBsZXQgbGVuZ3RoVG9TZW5kID0gcmVtYWluaW5nTGVuZ3RoIDwgNTAgPyByZW1haW5pbmdMZW5ndGggOiA1MDtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBTZW5kaW5nICR7bGVuZ3RoVG9TZW5kfSBjbGVhciBjaGFyYWN0ZXJzIHRvIGRldmljZWApO1xuICAgICAgYXdhaXQgdGhpcy5hZGIuY2xlYXJUZXh0RmllbGQobGVuZ3RoVG9TZW5kKTtcbiAgICAgIHJlbWFpbmluZ0xlbmd0aCAtPSBsZW5ndGhUb1NlbmQ7XG4gICAgfVxuICB9KTtcbn07XG5cbmNvbW1hbmRzLmNsaWNrID0gYXN5bmMgZnVuY3Rpb24gY2xpY2sgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDpjbGljaycsIHtlbGVtZW50SWR9KTtcbn07XG5cbmNvbW1hbmRzLmdldExvY2F0aW9uID0gYXN5bmMgZnVuY3Rpb24gZ2V0TG9jYXRpb24gKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDpnZXRMb2NhdGlvbicsIHtlbGVtZW50SWR9KTtcbn07XG5cbmNvbW1hbmRzLmdldExvY2F0aW9uSW5WaWV3ID0gYXN5bmMgZnVuY3Rpb24gZ2V0TG9jYXRpb25JblZpZXcgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbihlbGVtZW50SWQpO1xufTtcblxuY29tbWFuZHMuZ2V0U2l6ZSA9IGFzeW5jIGZ1bmN0aW9uIGdldFNpemUgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDpnZXRTaXplJywge2VsZW1lbnRJZH0pO1xufTtcblxuY29tbWFuZHMuZ2V0RWxlbWVudFJlY3QgPSBhc3luYyBmdW5jdGlvbiBnZXRFbGVtZW50UmVjdCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OmdldFJlY3QnLCB7ZWxlbWVudElkfSk7XG59O1xuXG5jb21tYW5kcy50b3VjaExvbmdDbGljayA9IGFzeW5jIGZ1bmN0aW9uIHRvdWNoTG9uZ0NsaWNrIChlbGVtZW50SWQsIHgsIHksIGR1cmF0aW9uKSB7XG4gIGxldCBwYXJhbXMgPSB7ZWxlbWVudElkLCB4LCB5LCBkdXJhdGlvbn07XG4gIGFuZHJvaWRIZWxwZXJzLnJlbW92ZU51bGxQcm9wZXJ0aWVzKHBhcmFtcyk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OnRvdWNoTG9uZ0NsaWNrJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoRG93biA9IGFzeW5jIGZ1bmN0aW9uIHRvdWNoRG93biAoZWxlbWVudElkLCB4LCB5KSB7XG4gIGxldCBwYXJhbXMgPSB7ZWxlbWVudElkLCB4LCB5fTtcbiAgYW5kcm9pZEhlbHBlcnMucmVtb3ZlTnVsbFByb3BlcnRpZXMocGFyYW1zKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6dG91Y2hEb3duJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoVXAgPSBhc3luYyBmdW5jdGlvbiB0b3VjaFVwIChlbGVtZW50SWQsIHgsIHkpIHtcbiAgbGV0IHBhcmFtcyA9IHtlbGVtZW50SWQsIHgsIHl9O1xuICBhbmRyb2lkSGVscGVycy5yZW1vdmVOdWxsUHJvcGVydGllcyhwYXJhbXMpO1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDp0b3VjaFVwJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoTW92ZSA9IGFzeW5jIGZ1bmN0aW9uIHRvdWNoTW92ZSAoZWxlbWVudElkLCB4LCB5KSB7XG4gIGxldCBwYXJhbXMgPSB7ZWxlbWVudElkLCB4LCB5fTtcbiAgYW5kcm9pZEhlbHBlcnMucmVtb3ZlTnVsbFByb3BlcnRpZXMocGFyYW1zKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6dG91Y2hNb3ZlJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLmNvbXBsZXhUYXAgPSBhc3luYyBmdW5jdGlvbiBjb21wbGV4VGFwICh0YXBDb3VudCwgdG91Y2hDb3VudCwgZHVyYXRpb24sIHgsIHkpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2NsaWNrJywge3gsIHl9KTtcbn07XG5cbmNvbW1hbmRzLnRhcCA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50SWQgPSBudWxsLCB4ID0gbnVsbCwgeSA9IG51bGwsIGNvdW50ID0gMSkge1xuICBpZiAoIXV0aWwuaGFzVmFsdWUoZWxlbWVudElkKSAmJiAhdXRpbC5oYXNWYWx1ZSh4KSAmJiAhdXRpbC5oYXNWYWx1ZSh5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRWl0aGVyIGVsZW1lbnQgdG8gdGFwIG9yIGJvdGggYWJzb2x1dGUgY29vcmRpbmF0ZXMgc2hvdWxkIGJlIGRlZmluZWRgKTtcbiAgfVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICBpZiAodXRpbC5oYXNWYWx1ZShlbGVtZW50SWQpKSB7XG4gICAgICAvLyBGSVhNRTogYm9vdHN0cmFwIGlnbm9yZXMgcmVsYXRpdmUgY29vcmRpbmF0ZXNcbiAgICAgIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6Y2xpY2snLCB7ZWxlbWVudElkLCB4LCB5fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2NsaWNrJywge3gsIHl9KTtcbiAgICB9XG4gIH1cbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBR0EsSUFBSUEsUUFBUSxHQUFHLEVBQWY7QUFBQSxJQUFtQkMsT0FBTyxHQUFHLEVBQTdCO0FBQUEsSUFBaUNDLFVBQVUsR0FBRyxFQUE5Qzs7OztBQUVBRixRQUFRLENBQUNHLFlBQVQsR0FBd0IsZUFBZUEsWUFBZixDQUE2QkMsU0FBN0IsRUFBd0NDLFNBQXhDLEVBQW1EO0VBQ3pFLElBQUlDLENBQUMsR0FBRztJQUFDRixTQUFEO0lBQVlDO0VBQVosQ0FBUjtFQUNBLE9BQU8sTUFBTSxLQUFLRSxTQUFMLENBQWVDLFVBQWYsQ0FBMEIsc0JBQTFCLEVBQWtERixDQUFsRCxDQUFiO0FBQ0QsQ0FIRDs7QUFLQU4sUUFBUSxDQUFDUyxPQUFULEdBQW1CLGVBQWVBLE9BQWYsQ0FBd0JKLFNBQXhCLEVBQW1DO0VBQ3BELE9BQU8sTUFBTSxLQUFLRixZQUFMLENBQWtCLFdBQWxCLEVBQStCRSxTQUEvQixDQUFiO0FBQ0QsQ0FGRDs7QUFJ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
|
|
@@ -37,4 +37,4 @@ var _default = commands;
|
|
|
37
37
|
exports.default = _default;require('source-map-support').install();
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2VtdS1jb25zb2xlLmpzIiwibmFtZXMiOlsiRU1VX0NPTlNPTEVfRkVBVFVSRSIsImNvbW1hbmRzIiwibW9iaWxlRXhlY0VtdUNvbnNvbGVDb21tYW5kIiwib3B0cyIsImVuc3VyZUZlYXR1cmVFbmFibGVkIiwiY29tbWFuZCIsImV4ZWNUaW1lb3V0IiwiY29ublRpbWVvdXQiLCJpbml0VGltZW91dCIsImVycm9ycyIsIkludmFsaWRBcmd1bWVudEVycm9yIiwiYWRiIiwiZXhlY0VtdUNvbnNvbGVDb21tYW5kIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL2VtdS1jb25zb2xlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVycm9ycyB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuXG5jb25zdCBFTVVfQ09OU09MRV9GRUFUVVJFID0gJ2VtdWxhdG9yX2NvbnNvbGUnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEV4ZWNPcHRpb25zXG4gKiBAcHJvcGVydHkgeyFBcnJheTxzdHJpbmc+fHN0cmluZ30gY29tbWFuZCAtIFRoZSBhY3R1YWwgY29tbWFuZCB0byBleGVjdXRlLiBTZWVcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3N0dWRpby9ydW4vZW11bGF0b3ItY29uc29sZSBmb3IgbW9yZSBkZXRhaWxzXG4gKiBvbiBhdmFpbGFibGUgY29tbWFuZHNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBleGVjVGltZW91dCBbNjAwMDBdIEEgdGltZW91dCB1c2VkIHRvIHdhaXQgZm9yIGEgc2VydmVyXG4gKiByZXBseSB0byB0aGUgZ2l2ZW4gY29tbWFuZCBpbiBtaWxsaXNlY29uZHNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjb25uVGltZW91dCBbNTAwMF0gQ29uc29sZSBjb25uZWN0aW9uIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzXG4gKiBAcHJvcGVydHkge251bWJlcn0gaW5pdFRpbWVvdXQgWzUwMDBdIFRlbG5ldCBjb25zb2xlIGluaXRpYWxpemF0aW9uIHRpbWVvdXRcbiAqIGluIG1pbGxpc2Vjb25kcyAodGhlIHRpbWUgYmV0d2VlbiB0aGUgY29ubmVjdGlvbiBoYXBwZW5zIGFuZCB0aGUgY29tbWFuZCBwcm9tcHRcbiAqIGlzIGF2YWlsYWJsZSlcbiAqL1xuXG4vKipcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZCB0aHJvdWdoIGVtdWxhdG9yIHRlbG5ldCBjb25zb2xlIGludGVyZmFjZSBhbmQgcmV0dXJucyBpdHMgb3V0cHV0LlxuICogVGhlIGBlbXVsYXRvcl9jb25zb2xlYCBzZXJ2ZXIgZmVhdHVyZSBtdXN0IGJlIGVuYWJsZWQgaW4gb3JkZXIgdG8gdXNlIHRoaXMgbWV0aG9kLlxuICpcbiAqIEBwYXJhbSB7RXhlY09wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjb21tYW5kIG91dHB1dFxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBjb25uZWN0aW5nIHRvIHRoZSBUZWxuZXQgY29uc29sZVxuICogb3IgaWYgdGhlIGdpdmVuIGNvbW1hbmQgcmV0dXJuZWQgbm9uLU9LIHJlc3BvbnNlXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCAob3B0cyA9IHt9KSB7XG4gIHRoaXMuZW5zdXJlRmVhdHVyZUVuYWJsZWQoRU1VX0NPTlNPTEVfRkVBVFVSRSk7XG5cbiAgY29uc3Qge1xuICAgIGNvbW1hbmQsXG4gICAgZXhlY1RpbWVvdXQsXG4gICAgY29ublRpbWVvdXQsXG4gICAgaW5pdFRpbWVvdXQsXG4gIH0gPSBvcHRzO1xuXG4gIGlmICghY29tbWFuZCkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYFRoZSAnY29tbWFuZCcgYXJndW1lbnQgaXMgbWFuZGF0b3J5YCk7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgdGhpcy5hZGIuZXhlY0VtdUNvbnNvbGVDb21tYW5kKGNvbW1hbmQsIHtcbiAgICBleGVjVGltZW91dCxcbiAgICBjb25uVGltZW91dCxcbiAgICBpbml0VGltZW91dCxcbiAgfSk7XG59O1xuXG5leHBvcnQgeyBjb21tYW5kcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBLE1BQU1BLG1CQUFtQixHQUFHLGtCQUE1QjtBQUVBLE1BQU1DLFFBQVEsR0FBRyxFQUFqQjs7O0FBd0JBQSxRQUFRLENBQUNDLDJCQUFULEdBQXVDLGVBQWVBLDJCQUFmLENBQTRDQyxJQUFJLEdBQUcsRUFBbkQsRUFBdUQ7RUFDNUYsS0FBS0Msb0JBQUwsQ0FBMEJKLG1CQUExQjtFQUVBLE1BQU07SUFDSkssT0FESTtJQUVKQyxXQUZJO0lBR0pDLFdBSEk7SUFJSkM7RUFKSSxJQUtGTCxJQUxKOztFQU9BLElBQUksQ0FBQ0UsT0FBTCxFQUFjO0lBQ1osTUFBTSxJQUFJSSxtQkFBT0Msb0JBQVgsQ0FBaUMscUNBQWpDLENBQU47RUFDRDs7RUFFRCxPQUFPLE1BQU0sS0FBS0MsR0FBTCxDQUFTQyxxQkFBVCxDQUErQlAsT0FBL0IsRUFBd0M7SUFDbkRDLFdBRG1EO0lBRW5EQyxXQUZtRDtJQUduREM7RUFIbUQsQ0FBeEMsQ0FBYjtBQUtELENBbkJEOztlQXNCZVAsUSJ9
|