oxygen-cli 1.37.7 → 1.37.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1687 -1682
- package/LICENSE +672 -672
- package/README.md +37 -37
- package/build/core/OxygenCore.js +8 -2
- package/build/core/OxygenEvents.js +4 -2
- package/build/core/OxygenModule.js +1 -1
- package/build/core/OxygenService.js +1 -1
- package/build/core/OxygenSubModule.js +1 -1
- package/build/core/WebDriverModule.js +1 -1
- package/build/core/utils.js +1 -1
- package/build/errors/HookError.js +1 -1
- package/build/errors/ModuleError.js +1 -1
- package/build/errors/ModuleUnavailableError.js +1 -1
- package/build/errors/OxygenError.js +1 -1
- package/build/errors/ScriptNotFound.js +1 -1
- package/build/errors/helper.js +1 -1
- package/build/index.js +1 -1
- package/build/lib/cli-util.js +25 -6
- package/build/lib/cli.js +2 -2
- package/build/lib/debugger.js +1 -1
- package/build/lib/img-merge.js +1 -1
- package/build/lib/launcher.js +1 -1
- package/build/lib/logger.js +43 -43
- package/build/lib/moduleRequire.js +1 -1
- package/build/lib/parallel-launcher.js +1 -1
- package/build/lib/param-manager.js +1 -1
- package/build/lib/param-reader-csv.js +1 -1
- package/build/lib/param-reader-excel.js +1 -1
- package/build/lib/param-reader-json.js +1 -1
- package/build/lib/text-to-image.js +1 -1
- package/build/lib/util.js +2 -2
- package/build/model/case-result.js +1 -1
- package/build/model/failure.js +1 -1
- package/build/model/status.js +1 -1
- package/build/model/step-result.js +1 -1
- package/build/model/suite-result.js +2 -1
- package/build/model/test-result.js +1 -1
- package/build/model/testcase.js +1 -1
- package/build/model/testsuite.js +1 -1
- package/build/ox_modules/index.js +1 -1
- package/build/ox_modules/module-assert.js +37 -37
- package/build/ox_modules/module-date.js +24 -24
- package/build/ox_modules/module-db.js +52 -52
- package/build/ox_modules/module-email.js +59 -59
- package/build/ox_modules/module-eyes.js +34 -34
- package/build/ox_modules/module-http/ntlm-util.js +10 -10
- package/build/ox_modules/module-http/ntlm.js +15 -15
- package/build/ox_modules/module-http.js +132 -132
- package/build/ox_modules/module-log.js +27 -27
- package/build/ox_modules/module-mailinator.js +87 -87
- package/build/ox_modules/module-mob/commands/alertAccept.js +17 -17
- package/build/ox_modules/module-mob/commands/alertDismiss.js +17 -17
- package/build/ox_modules/module-mob/commands/assertAlert.js +20 -20
- package/build/ox_modules/module-mob/commands/assertText.js +21 -21
- package/build/ox_modules/module-mob/commands/assertTitle.js +19 -19
- package/build/ox_modules/module-mob/commands/assertValue.js +18 -18
- package/build/ox_modules/module-mob/commands/back.js +16 -16
- package/build/ox_modules/module-mob/commands/clear.js +19 -19
- package/build/ox_modules/module-mob/commands/click.js +17 -17
- package/build/ox_modules/module-mob/commands/clickHidden.js +17 -17
- package/build/ox_modules/module-mob/commands/clickLong.js +18 -18
- package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +18 -18
- package/build/ox_modules/module-mob/commands/closeApp.js +16 -16
- package/build/ox_modules/module-mob/commands/debug.js +16 -16
- package/build/ox_modules/module-mob/commands/dragAndDrop.js +19 -19
- package/build/ox_modules/module-mob/commands/enableNetwork.js +27 -27
- package/build/ox_modules/module-mob/commands/execute.js +21 -21
- package/build/ox_modules/module-mob/commands/findElement.js +20 -20
- package/build/ox_modules/module-mob/commands/findElements.js +23 -23
- package/build/ox_modules/module-mob/commands/getAlertText.js +17 -17
- package/build/ox_modules/module-mob/commands/getAppiumLogs.js +16 -16
- package/build/ox_modules/module-mob/commands/getBrowserLogs.js +16 -16
- package/build/ox_modules/module-mob/commands/getCurrentActivity.js +15 -15
- package/build/ox_modules/module-mob/commands/getCurrentPackage.js +15 -15
- package/build/ox_modules/module-mob/commands/getDeviceLogs.js +16 -16
- package/build/ox_modules/module-mob/commands/getDeviceTime.js +16 -16
- package/build/ox_modules/module-mob/commands/getLocation.js +20 -20
- package/build/ox_modules/module-mob/commands/getSource.js +16 -16
- package/build/ox_modules/module-mob/commands/getText.js +18 -18
- package/build/ox_modules/module-mob/commands/getTitle.js +13 -13
- package/build/ox_modules/module-mob/commands/getUrl.js +17 -17
- package/build/ox_modules/module-mob/commands/getValue.js +18 -18
- package/build/ox_modules/module-mob/commands/getWindowHandles.js +17 -17
- package/build/ox_modules/module-mob/commands/hideKeyboard.js +21 -21
- package/build/ox_modules/module-mob/commands/index.js +1 -1
- package/build/ox_modules/module-mob/commands/installApp.js +16 -16
- package/build/ox_modules/module-mob/commands/isAppInstalled.js +16 -16
- package/build/ox_modules/module-mob/commands/isCheckable.js +18 -18
- package/build/ox_modules/module-mob/commands/isChecked.js +18 -18
- package/build/ox_modules/module-mob/commands/isClickable.js +18 -18
- package/build/ox_modules/module-mob/commands/isExist.js +19 -19
- package/build/ox_modules/module-mob/commands/isSelected.js +23 -23
- package/build/ox_modules/module-mob/commands/isVisible.js +19 -19
- package/build/ox_modules/module-mob/commands/isWebViewContext.js +16 -16
- package/build/ox_modules/module-mob/commands/launchApp.js +15 -15
- package/build/ox_modules/module-mob/commands/longPressKeyCode.js +18 -18
- package/build/ox_modules/module-mob/commands/open.js +17 -17
- package/build/ox_modules/module-mob/commands/pause.js +16 -16
- package/build/ox_modules/module-mob/commands/removeApp.js +16 -16
- package/build/ox_modules/module-mob/commands/resetApp.js +15 -15
- package/build/ox_modules/module-mob/commands/scrollIntoElement.js +22 -22
- package/build/ox_modules/module-mob/commands/scrollIntoView.js +27 -27
- package/build/ox_modules/module-mob/commands/select.js +24 -24
- package/build/ox_modules/module-mob/commands/selectFrame.js +23 -23
- package/build/ox_modules/module-mob/commands/selectWindow.js +28 -28
- package/build/ox_modules/module-mob/commands/sendKeys.js +29 -29
- package/build/ox_modules/module-mob/commands/setContext.js +16 -16
- package/build/ox_modules/module-mob/commands/setNativeContext.js +15 -15
- package/build/ox_modules/module-mob/commands/setTimeout.js +21 -21
- package/build/ox_modules/module-mob/commands/setWebViewContext.js +16 -16
- package/build/ox_modules/module-mob/commands/shake.js +16 -16
- package/build/ox_modules/module-mob/commands/smsClickLink.js +19 -19
- package/build/ox_modules/module-mob/commands/smsGetText.js +20 -20
- package/build/ox_modules/module-mob/commands/swipe.js +20 -20
- package/build/ox_modules/module-mob/commands/swipeElement.js +20 -20
- package/build/ox_modules/module-mob/commands/swipeScreen.js +20 -20
- package/build/ox_modules/module-mob/commands/takeScreenshot.js +17 -17
- package/build/ox_modules/module-mob/commands/tap.js +17 -17
- package/build/ox_modules/module-mob/commands/type.js +20 -20
- package/build/ox_modules/module-mob/commands/unlockPattern.js +22 -22
- package/build/ox_modules/module-mob/commands/waitForExist.js +18 -18
- package/build/ox_modules/module-mob/commands/waitForInteractable.js +17 -17
- package/build/ox_modules/module-mob/commands/waitForVisible.js +17 -17
- package/build/ox_modules/module-mob.js +83 -79
- package/build/ox_modules/module-pdf.js +35 -35
- package/build/ox_modules/module-proxy.js +77 -77
- package/build/ox_modules/module-serial.js +55 -55
- package/build/ox_modules/module-shell.js +25 -25
- package/build/ox_modules/module-soap.js +72 -72
- package/build/ox_modules/module-twilio.js +41 -41
- package/build/ox_modules/module-utils.js +91 -91
- package/build/ox_modules/module-web/commands/alertAccept.js +17 -17
- package/build/ox_modules/module-web/commands/alertDismiss.js +17 -17
- package/build/ox_modules/module-web/commands/assertAlert.js +20 -20
- package/build/ox_modules/module-web/commands/assertExist.js +17 -17
- package/build/ox_modules/module-web/commands/assertSelectedLabel.js +21 -21
- package/build/ox_modules/module-web/commands/assertSelectedValue.js +21 -21
- package/build/ox_modules/module-web/commands/assertText.js +21 -21
- package/build/ox_modules/module-web/commands/assertTextNotPresent.js +18 -18
- package/build/ox_modules/module-web/commands/assertTextPresent.js +18 -18
- package/build/ox_modules/module-web/commands/assertTitle.js +19 -19
- package/build/ox_modules/module-web/commands/assertValue.js +20 -20
- package/build/ox_modules/module-web/commands/back.js +16 -16
- package/build/ox_modules/module-web/commands/clear.js +18 -18
- package/build/ox_modules/module-web/commands/click.js +25 -25
- package/build/ox_modules/module-web/commands/clickHidden.js +23 -23
- package/build/ox_modules/module-web/commands/closeWindow.js +15 -15
- package/build/ox_modules/module-web/commands/debug.js +15 -15
- package/build/ox_modules/module-web/commands/deleteCookies.js +12 -12
- package/build/ox_modules/module-web/commands/deselect.js +22 -22
- package/build/ox_modules/module-web/commands/doubleClick.js +17 -17
- package/build/ox_modules/module-web/commands/dragAndDrop.js +20 -20
- package/build/ox_modules/module-web/commands/execute.js +24 -24
- package/build/ox_modules/module-web/commands/fileBrowse.js +18 -18
- package/build/ox_modules/module-web/commands/findElement.js +19 -19
- package/build/ox_modules/module-web/commands/findElements.js +22 -22
- package/build/ox_modules/module-web/commands/fullscreenWindow.js +14 -14
- package/build/ox_modules/module-web/commands/getAlertText.js +16 -16
- package/build/ox_modules/module-web/commands/getAttribute.js +19 -19
- package/build/ox_modules/module-web/commands/getBrowserLogs.js +17 -17
- package/build/ox_modules/module-web/commands/getCookies.js +13 -13
- package/build/ox_modules/module-web/commands/getCssValue.js +19 -19
- package/build/ox_modules/module-web/commands/getElementCount.js +17 -17
- package/build/ox_modules/module-web/commands/getHTML.js +17 -17
- package/build/ox_modules/module-web/commands/getSource.js +16 -16
- package/build/ox_modules/module-web/commands/getText.js +18 -18
- package/build/ox_modules/module-web/commands/getTitle.js +12 -12
- package/build/ox_modules/module-web/commands/getUrl.js +16 -16
- package/build/ox_modules/module-web/commands/getValue.js +18 -18
- package/build/ox_modules/module-web/commands/getWindowHandles.js +16 -16
- package/build/ox_modules/module-web/commands/getWindowSize.js +16 -16
- package/build/ox_modules/module-web/commands/getXMLPageSource.js +16 -16
- package/build/ox_modules/module-web/commands/index.js +1 -1
- package/build/ox_modules/module-web/commands/isAlertPresent.js +16 -16
- package/build/ox_modules/module-web/commands/isChecked.js +18 -18
- package/build/ox_modules/module-web/commands/isExist.js +19 -19
- package/build/ox_modules/module-web/commands/isInteractable.js +22 -22
- package/build/ox_modules/module-web/commands/isSelected.js +23 -23
- package/build/ox_modules/module-web/commands/isVisible.js +19 -19
- package/build/ox_modules/module-web/commands/makeVisible.js +25 -25
- package/build/ox_modules/module-web/commands/maximizeWindow.js +14 -14
- package/build/ox_modules/module-web/commands/minimizeWindow.js +14 -14
- package/build/ox_modules/module-web/commands/mock.js +20 -20
- package/build/ox_modules/module-web/commands/mockClearAll.js +12 -12
- package/build/ox_modules/module-web/commands/mockRestoreAll.js +12 -12
- package/build/ox_modules/module-web/commands/newWindow.js +16 -16
- package/build/ox_modules/module-web/commands/open.js +16 -16
- package/build/ox_modules/module-web/commands/pause.js +15 -15
- package/build/ox_modules/module-web/commands/point.js +21 -21
- package/build/ox_modules/module-web/commands/pointJS.js +15 -15
- package/build/ox_modules/module-web/commands/refresh.js +15 -15
- package/build/ox_modules/module-web/commands/rightClick.js +17 -17
- package/build/ox_modules/module-web/commands/rightClickActions.js +19 -19
- package/build/ox_modules/module-web/commands/scrollToElement.js +21 -21
- package/build/ox_modules/module-web/commands/select.js +23 -23
- package/build/ox_modules/module-web/commands/selectFrame.js +24 -24
- package/build/ox_modules/module-web/commands/selectWindow.js +27 -27
- package/build/ox_modules/module-web/commands/sendKeys.js +22 -22
- package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +20 -20
- package/build/ox_modules/module-web/commands/setTimeout.js +21 -21
- package/build/ox_modules/module-web/commands/setWindowSize.js +17 -17
- package/build/ox_modules/module-web/commands/takeScreenshot.js +17 -17
- package/build/ox_modules/module-web/commands/type.js +20 -20
- package/build/ox_modules/module-web/commands/verifyAlert.js +20 -20
- package/build/ox_modules/module-web/commands/verifyExist.js +17 -17
- package/build/ox_modules/module-web/commands/verifySelectedLabel.js +21 -21
- package/build/ox_modules/module-web/commands/verifySelectedValue.js +21 -21
- package/build/ox_modules/module-web/commands/verifyText.js +21 -21
- package/build/ox_modules/module-web/commands/verifyTextNotPresent.js +18 -18
- package/build/ox_modules/module-web/commands/verifyTextPresent.js +18 -18
- package/build/ox_modules/module-web/commands/verifyTitle.js +19 -19
- package/build/ox_modules/module-web/commands/verifyValue.js +20 -20
- package/build/ox_modules/module-web/commands/waitForAngular.js +19 -19
- package/build/ox_modules/module-web/commands/waitForExist.js +17 -17
- package/build/ox_modules/module-web/commands/waitForInteractable.js +17 -17
- package/build/ox_modules/module-web/commands/waitForNotExist.js +17 -17
- package/build/ox_modules/module-web/commands/waitForNotText.js +20 -20
- package/build/ox_modules/module-web/commands/waitForNotValue.js +20 -20
- package/build/ox_modules/module-web/commands/waitForText.js +20 -20
- package/build/ox_modules/module-web/commands/waitForValue.js +20 -20
- package/build/ox_modules/module-web/commands/waitForVisible.js +17 -17
- package/build/ox_modules/module-web/commands/waitForWindow.js +22 -22
- package/build/ox_modules/module-web.js +105 -100
- package/build/ox_modules/module-win/commands/assertText.js +17 -17
- package/build/ox_modules/module-win/commands/assertTitle.js +15 -15
- package/build/ox_modules/module-win/commands/assertValue.js +14 -14
- package/build/ox_modules/module-win/commands/back.js +11 -11
- package/build/ox_modules/module-win/commands/clear.js +13 -13
- package/build/ox_modules/module-win/commands/click.js +13 -13
- package/build/ox_modules/module-win/commands/clickLong.js +14 -14
- package/build/ox_modules/module-win/commands/clickMultipleTimes.js +14 -14
- package/build/ox_modules/module-win/commands/findElement.js +15 -15
- package/build/ox_modules/module-win/commands/findElements.js +15 -15
- package/build/ox_modules/module-win/commands/getAppiumLogs.js +12 -12
- package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +15 -15
- package/build/ox_modules/module-win/commands/getLocation.js +14 -14
- package/build/ox_modules/module-win/commands/getSource.js +12 -12
- package/build/ox_modules/module-win/commands/getText.js +14 -14
- package/build/ox_modules/module-win/commands/getValue.js +14 -14
- package/build/ox_modules/module-win/commands/getWindowHandles.js +15 -15
- package/build/ox_modules/module-win/commands/index.js +1 -1
- package/build/ox_modules/module-win/commands/isCheckable.js +14 -14
- package/build/ox_modules/module-win/commands/isChecked.js +14 -14
- package/build/ox_modules/module-win/commands/isClickable.js +14 -14
- package/build/ox_modules/module-win/commands/isExist.js +15 -15
- package/build/ox_modules/module-win/commands/isSelected.js +14 -14
- package/build/ox_modules/module-win/commands/isVisible.js +15 -15
- package/build/ox_modules/module-win/commands/open.js +13 -13
- package/build/ox_modules/module-win/commands/pause.js +12 -12
- package/build/ox_modules/module-win/commands/rightClick.js +13 -13
- package/build/ox_modules/module-win/commands/selectWindow.js +23 -23
- package/build/ox_modules/module-win/commands/sendKeys.js +22 -22
- package/build/ox_modules/module-win/commands/setTimeout.js +17 -17
- package/build/ox_modules/module-win/commands/takeScreenshot.js +16 -16
- package/build/ox_modules/module-win/commands/tap.js +13 -13
- package/build/ox_modules/module-win/commands/type.js +16 -16
- package/build/ox_modules/module-win/commands/waitForExist.js +14 -14
- package/build/ox_modules/module-win/commands/waitForInteractable.js +16 -16
- package/build/ox_modules/module-win/commands/waitForVisible.js +13 -13
- package/build/ox_modules/module-win.js +47 -47
- package/build/ox_modules/utils.js +8 -8
- package/build/ox_reporters/excel/template.json +48 -48
- package/build/ox_reporters/html/index.ejs +163 -163
- package/build/ox_reporters/html/summary.ejs +77 -77
- package/build/ox_reporters/html/tests-details.ejs +134 -134
- package/build/ox_reporters/html/tests-devices-browsers.ejs +83 -83
- package/build/ox_reporters/reporter-excel.js +1 -1
- package/build/ox_reporters/reporter-html.js +1 -1
- package/build/ox_reporters/reporter-json.js +1 -1
- package/build/ox_reporters/reporter-junit.js +1 -1
- package/build/ox_reporters/reporter-pdf.js +1 -1
- package/build/ox_reporters/reporter-rp.js +376 -0
- package/build/ox_reporters/reporter-xml.js +1 -1
- package/build/ox_services/service-devtools/submodule-network.js +1 -1
- package/build/ox_services/service-devtools.js +1 -1
- package/build/reporter/FileReporterBase.js +1 -1
- package/build/reporter/ReportAggregator.js +110 -43
- package/build/reporter/ReporterBase.js +2 -2
- package/build/runners/WorkerProcess.js +1 -1
- package/build/runners/cucumber/CucumberEventListener.js +1 -1
- package/build/runners/cucumber/CucumberReporter.js +1 -1
- package/build/runners/cucumber/CucumberWorker.js +1 -1
- package/build/runners/cucumber/index.js +1 -1
- package/build/runners/cucumber/worker.js +1 -1
- package/build/runners/index.js +1 -1
- package/build/runners/oxygen/OxygenWorker.js +1 -1
- package/build/runners/oxygen/index.js +37 -22
- package/build/runners/oxygen/worker.js +1 -1
- package/config/default.json +6 -6
- package/log.txt +1614 -0
- package/package.json +136 -135
- package/types/index.d.ts +70 -70
- package/types/module-eyes.d.ts +39 -39
- package/types/module-http.d.ts +163 -163
- package/types/module-log.d.ts +34 -34
- package/types/module-mob.d.ts +966 -966
- package/types/module-pdf.d.ts +40 -40
- package/types/module-proxy.d.ts +100 -100
- package/types/module-shell.d.ts +24 -24
- package/types/module-utils.d.ts +99 -99
- package/types/module-web.d.ts +1053 -1053
- package/types/module-win.d.ts +352 -352
- package/types/oxygen.d.ts +53 -53
package/build/lib/logger.js
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
Object.defineProperty(exports, '__esModule', {
|
|
2
|
-
value: true
|
|
3
|
-
});
|
|
4
|
-
|
|
5
|
-
const path = require('path');
|
|
6
|
-
|
|
7
|
-
// explicitly set the config dir, otherwise if oxygen is globally installed it will use cwd
|
|
8
|
-
let originalNodeCfgDir = process.env.NODE_CONFIG_DIR;
|
|
9
|
-
process.env.NODE_CONFIG_DIR = path.resolve(__dirname, '../..', 'config');
|
|
10
|
-
|
|
11
|
-
// import config and @oxygen/logger modules
|
|
12
|
-
const config = require('config');
|
|
13
|
-
const loggerFactory = require('@oxygenhq/logger');
|
|
14
|
-
|
|
15
|
-
// setup logger
|
|
16
|
-
loggerFactory.init(config.get('logger'));
|
|
17
|
-
|
|
18
|
-
// revert back NODE_CONFIG_DIR value
|
|
19
|
-
process.env.NODE_CONFIG_DIR = originalNodeCfgDir;
|
|
20
|
-
|
|
21
|
-
exports.default = function logger(name) {
|
|
22
|
-
return loggerFactory.get(name);
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
const LEVEL_INFO = 'info';
|
|
26
|
-
const LEVEL_DEBUG = 'debug';
|
|
27
|
-
const LEVEL_ERROR = 'error';
|
|
28
|
-
const LEVEL_WARN = 'warn';
|
|
29
|
-
const ISSUER_SYSTEM = 'system';
|
|
30
|
-
const ISSUER_USER = 'user';
|
|
31
|
-
exports.DEFAULT_ISSUER = ISSUER_USER;
|
|
32
|
-
exports.ISSUERS = {
|
|
33
|
-
SYSTEM: ISSUER_SYSTEM,
|
|
34
|
-
USER: ISSUER_USER
|
|
35
|
-
};
|
|
36
|
-
exports.LEVELS = {
|
|
37
|
-
INFO: LEVEL_INFO,
|
|
38
|
-
DEBUG: LEVEL_DEBUG,
|
|
39
|
-
ERROR: LEVEL_ERROR,
|
|
40
|
-
WARN: LEVEL_WARN
|
|
41
|
-
};
|
|
42
|
-
exports.DEFAULT_LOGGER_ISSUER = ISSUER_SYSTEM;
|
|
43
|
-
|
|
1
|
+
Object.defineProperty(exports, '__esModule', {
|
|
2
|
+
value: true
|
|
3
|
+
});
|
|
4
|
+
|
|
5
|
+
const path = require('path');
|
|
6
|
+
|
|
7
|
+
// explicitly set the config dir, otherwise if oxygen is globally installed it will use cwd
|
|
8
|
+
let originalNodeCfgDir = process.env.NODE_CONFIG_DIR;
|
|
9
|
+
process.env.NODE_CONFIG_DIR = path.resolve(__dirname, '../..', 'config');
|
|
10
|
+
|
|
11
|
+
// import config and @oxygen/logger modules
|
|
12
|
+
const config = require('config');
|
|
13
|
+
const loggerFactory = require('@oxygenhq/logger');
|
|
14
|
+
|
|
15
|
+
// setup logger
|
|
16
|
+
loggerFactory.init(config.get('logger'));
|
|
17
|
+
|
|
18
|
+
// revert back NODE_CONFIG_DIR value
|
|
19
|
+
process.env.NODE_CONFIG_DIR = originalNodeCfgDir;
|
|
20
|
+
|
|
21
|
+
exports.default = function logger(name) {
|
|
22
|
+
return loggerFactory.get(name);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const LEVEL_INFO = 'info';
|
|
26
|
+
const LEVEL_DEBUG = 'debug';
|
|
27
|
+
const LEVEL_ERROR = 'error';
|
|
28
|
+
const LEVEL_WARN = 'warn';
|
|
29
|
+
const ISSUER_SYSTEM = 'system';
|
|
30
|
+
const ISSUER_USER = 'user';
|
|
31
|
+
exports.DEFAULT_ISSUER = ISSUER_USER;
|
|
32
|
+
exports.ISSUERS = {
|
|
33
|
+
SYSTEM: ISSUER_SYSTEM,
|
|
34
|
+
USER: ISSUER_USER
|
|
35
|
+
};
|
|
36
|
+
exports.LEVELS = {
|
|
37
|
+
INFO: LEVEL_INFO,
|
|
38
|
+
DEBUG: LEVEL_DEBUG,
|
|
39
|
+
ERROR: LEVEL_ERROR,
|
|
40
|
+
WARN: LEVEL_WARN
|
|
41
|
+
};
|
|
42
|
+
exports.DEFAULT_LOGGER_ISSUER = ISSUER_SYSTEM;
|
|
43
|
+
|
|
@@ -18,4 +18,4 @@ function moduleRequire(moduleName) {
|
|
|
18
18
|
throw e;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvbW9kdWxlUmVxdWlyZS5qcyJdLCJuYW1lcyI6WyJkZWNhY2hlIiwicmVxdWlyZSIsIm1vZHVsZVJlcXVpcmUiLCJtb2R1bGVOYW1lIiwiZSIsImNvbnNvbGUiLCJsb2ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBckI7O0FBRWUsU0FBU0MsYUFBVCxDQUF1QkMsVUFBdkIsRUFBbUM7QUFDOUMsTUFBSTtBQUNBSCxJQUFBQSxPQUFPLENBQUNHLFVBQUQsQ0FBUDtBQUNBLFdBQU9GLE9BQU8sQ0FBQ0UsVUFBRCxDQUFkO0FBQ0gsR0FIRCxDQUdFLE9BQU9DLENBQVAsRUFBVTtBQUNSQyxJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxpQkFBWixFQUErQkYsQ0FBL0I7QUFDQSxVQUFNQSxDQUFOO0FBQ0g7QUFDSiIsInNvdXJjZXNDb250ZW50IjpbInZhciBkZWNhY2hlID0gcmVxdWlyZSgnZGVjYWNoZScpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtb2R1bGVSZXF1aXJlKG1vZHVsZU5hbWUpIHtcbiAgICB0cnkge1xuICAgICAgICBkZWNhY2hlKG1vZHVsZU5hbWUpO1xuICAgICAgICByZXR1cm4gcmVxdWlyZShtb2R1bGVOYW1lKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdtb2R1bGVSZXF1aXJlIGUnLCBlKTtcbiAgICAgICAgdGhyb3cgZTtcbiAgICB9XG59Il19
|
|
@@ -251,4 +251,4 @@ class ParamManagerMock {
|
|
|
251
251
|
}
|
|
252
252
|
|
|
253
253
|
}
|
|
254
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYWxsZWwtbGF1bmNoZXIuanMiXSwibmFtZXMiOlsiRHVyYXRpb24iLCJyZXF1aXJlIiwiaGFzaCIsIlBhcmFsbGVsTGF1bmNoZXIiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsInJlcG9ydGVyIiwiX2NvbmZpZyIsIl9xdWV1ZSIsInJ1bm5lcnMiLCJjcmVhdGVkUnVubmVyc1N0YXQiLCJydW4iLCJjYXBzU2V0IiwiY29sbGVjdGlvbiIsInBhcmFsbGVsIiwiRXJyb3IiLCJtb2RlIiwid29ya2Vyc0NvdW50IiwiaXNOYU4iLCJ3b3JrZXJzIiwic3VpdGVzIiwicmVzdWx0TmFtZSIsIm5hbWUiLCJBcnJheSIsImlzQXJyYXkiLCJ0ZXN0Q2FwcyIsInJlc3VsdEhhc2giLCJyZXN1bHRLZXkiLCJzdWl0ZUluZGV4IiwiZm9yRWFjaCIsInN1aXRlRGVmIiwic3VpdGVLZXkiLCJrZXkiLCJpZCIsImkiLCJpdGVyYXRpb25Db3VudCIsIm1vY2tlZFBhcmFtTWFuYWdlciIsInVuZGVmaW5lZCIsInBhcmFtTWFuYWdlciIsIlBhcmFtTWFuYWdlck1vY2siLCJnZXRWYWx1ZXMiLCJyZWFkTmV4dCIsIndvcmtlcklkIiwic3VpdGVDb3B5IiwidGVzdENvbmZpZyIsIl9ncm91cFJlc3VsdCIsIndvcmtlckNvbmZpZyIsInN0YXJ0dXBEZWxheSIsInB1c2giLCJjYWxsYmFjayIsIl9sYXVuY2hXb3JrZXJGdW5jIiwiY2FzZXMiLCJjYXNlSW5kZXgiLCJjYXNlRGVmIiwiY2FzZUtleSIsInN0YXJ0IiwiRGF0ZSIsInRvdGFsIiwiY29uc29sZSIsImxvZyIsInJ1bm5lcnNJZHMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwibWFwIiwiaXRlbSIsImNhemVzIiwiZW5kIiwiZHVyYXRpb24iLCJ0b1N0cmluZyIsImNiIiwiZXJyb3IiLCJfbGF1bmNoVGVzdCIsInRoZW4iLCJyZXN1bHQiLCJjYXRjaCIsIl9pbnN0YW50aWF0ZVJ1bm5lciIsImZyYW1ld29yayIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIlJ1bm5lcnMiLCJveHlnZW4iLCJfc2xlZXAiLCJydW5uZXIiLCJfaWQiLCJpbml0IiwiZGlzcG9zZSIsInN0YXR1cyIsImUiLCJraWxsIiwiZXJyTXNnIiwiZXJyIiwidHlwZSIsIm1lc3NhZ2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJ2YWx1ZXMiLCJnZXRNb2RlIiwicmVhZFByZXYiLCJyb3dzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFVQTs7QUFDQTs7Ozs7Ozs7QUFDQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBcEI7O0FBRWUsTUFBTUUsZ0JBQU4sQ0FBdUI7QUFDbENDLEVBQUFBLFdBQVcsQ0FBQ0MsTUFBRCxFQUFTQyxRQUFULEVBQW1CO0FBQzFCLFNBQUtDLE9BQUwsR0FBZUYsTUFBZjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0EsU0FBS0UsTUFBTCxHQUFjLElBQWQ7QUFDQSxTQUFLQyxPQUFMLEdBQWUsRUFBZjtBQUNBLFNBQUtDLGtCQUFMLEdBQTBCLEVBQTFCO0FBQ0g7O0FBRVEsUUFBSEMsR0FBRyxDQUFDQyxPQUFELEVBQVU7QUFDZixVQUFNQyxVQUFVLEdBQUcsRUFBbkI7O0FBRUEsUUFBSSxDQUFDLEtBQUtOLE9BQUwsQ0FBYU8sUUFBbEIsRUFBNEI7QUFDeEIsWUFBTSxJQUFJQyxLQUFKLENBQVUsc0VBQVYsQ0FBTjtBQUNIOztBQUVELFFBQUksQ0FBQyxLQUFLUixPQUFMLENBQWFPLFFBQWIsQ0FBc0JFLElBQTNCLEVBQWlDO0FBQzdCLFdBQUtULE9BQUwsQ0FBYU8sUUFBYixDQUFzQkUsSUFBdEIsR0FBNkIsTUFBN0I7QUFDSDs7QUFFRCxVQUFNQyxZQUFZLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLEtBQUtYLE9BQUwsQ0FBYU8sUUFBYixDQUFzQkssT0FB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ZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vLyBpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgKiBhcyBSdW5uZXJzIGZyb20gJy4uL3J1bm5lcnMnO1xyXG5pbXBvcnQgcGFyYWxsZWxMaW1pdCBmcm9tICdhc3luYy9wYXJhbGxlbExpbWl0JztcclxuY29uc3QgRHVyYXRpb24gPSByZXF1aXJlKCdkdXJhdGlvbicpO1xyXG5jb25zdCBoYXNoID0gcmVxdWlyZSgnb2JqZWN0LWhhc2gnKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhcmFsbGVsTGF1bmNoZXIge1xyXG4gICAgY29uc3RydWN0b3IoY29uZmlnLCByZXBvcnRlcikge1xyXG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcclxuICAgICAgICB0aGlzLnJlcG9ydGVyID0gcmVwb3J0ZXI7XHJcbiAgICAgICAgdGhpcy5fcXVldWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucnVubmVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlZFJ1bm5lcnNTdGF0ID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgcnVuKGNhcHNTZXQpIHtcclxuICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gW107XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fY29uZmlnLnBhcmFsbGVsKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHN0YXJ0IHRoZSBwYXJhbGxlbCB0ZXN0aW5nIC0gXCJwYXJhbGxlbFwiIHNldHRpbmdzIGFyZSBtaXNzaW5nLicpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9jb25maWcucGFyYWxsZWwubW9kZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9jb25maWcucGFyYWxsZWwubW9kZSA9ICdjYXNlJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHdvcmtlcnNDb3VudCA9ICFpc05hTih0aGlzLl9jb25maWcucGFyYWxsZWwud29ya2VycykgPyB0aGlzLl9jb25maWcucGFyYWxsZWwud29ya2VycyA6IDE7XHJcbiAgICAgICAgY29uc3QgbW9kZSA9IHRoaXMuX2NvbmZpZy5wYXJhbGxlbC5tb2RlID09PSAnaXRlcmF0aW9uJ1xyXG4gICAgICAgICAgICA/ICdpdGVyYXRpb24nIDogdGhpcy5fY29uZmlnLnBhcmFsbGVsLm1vZGUgPT09ICdzdWl0ZSdcclxuICAgICAgICAgICAgICAgID8gJ3N1aXRlJyA6ICdjYXNlJztcclxuICAgICAgICAvLyBmbGF0dGVuIGFsbCBzdWl0ZXMgYW5kIGNyZWF0ZSBvbmUgdW5pZmllZCBhcnJheSBvZiBhbGwgdGhlIHRlc3QgY2FzZXNcclxuICAgICAgICBjb25zdCBzdWl0ZXMgPSB0aGlzLl9jb25maWcuc3VpdGVzO1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdE5hbWUgPSB0aGlzLl9jb25maWcubmFtZSB8fCAnJztcclxuICAgICAgICBpZiAoIXN1aXRlcyB8fCAhQXJyYXkuaXNBcnJheShzdWl0ZXMpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHN0YXJ0IHRoZSBwYXJhbGxlbCB0ZXN0aW5nIC0gbm8gc3VpdGVzIGFyZSBkZWZpbmVkLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBpZiBubyBjYXBhYmlsaXRpZXMgYXJlIHNwZWNpZmllZCwgcnVuIHNpbmdsZSBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgYXJndW1lbnRzXHJcbiAgICAgICAgLy8gYWx0ZXJuYXRpdmVseSwgcGljayB0aGUgZmlyc3QgY2FwYWJpbGl0aWVzIHNldCAobG9hZCB0ZXN0IGlzIGxpbWl0ZWQgdG8gYSBzaW5nbGUgYnJvd3NlciB0eXBlKVxyXG4gICAgICAgIGNvbnN0IHRlc3RDYXBzID0gY2Fwc1NldCA/IChBcnJheS5pc0FycmF5KGNhcHNTZXQpID8gY2Fwc1NldFswXSA6IGNhcHNTZXQpIDogbnVsbDtcclxuICAgICAgICBjb25zdCByZXN1bHRIYXNoID0gdGVzdENhcHMgPyBoYXNoKHRlc3RDYXBzKSA6ICcnO1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdEtleSA9IGAke3Jlc3VsdE5hbWV9LSR7cmVzdWx0SGFzaH1gO1xyXG4gICAgICAgIC8vIGlmICd3b3JrZXJzJyBzZXQgdG8gbWF4IGFuZCBwYXJhbWV0ZXIgZmlsZSBpcyBkZWZpbmVkLCBcclxuICAgICAgICAvLyB0aGVuIHJ1biBhcyBtYW55IHBhcmFsbGVsIHRlc3RzIGFzIHJvd3MgaW4gdGhlIGZpbGVcclxuICAgICAgICBsZXQgc3VpdGVJbmRleCA9IDA7XHJcblxyXG4gICAgICAgIHN1aXRlcy5mb3JFYWNoKHN1aXRlRGVmID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc3VpdGVLZXkgPSBzdWl0ZURlZi5rZXkgfHwgc3VpdGVEZWYuaWQgfHwgc3VpdGVEZWYubmFtZTtcclxuICAgICAgICAgICAgaWYgKG1vZGUgPT09ICdpdGVyYXRpb24nKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaTw9IHN1aXRlRGVmLml0ZXJhdGlvbkNvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbW9ja2VkUGFyYW1NYW5hZ2VyID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWl0ZURlZi5wYXJhbU1hbmFnZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW9ja2VkUGFyYW1NYW5hZ2VyID0gbmV3IFBhcmFtTWFuYWdlck1vY2soc3VpdGVEZWYucGFyYW1NYW5hZ2VyLmdldFZhbHVlcygpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VpdGVEZWYucGFyYW1NYW5hZ2VyLnJlYWROZXh0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdvcmtlcklkID0gYCR7c3VpdGVLZXl9LSR7c3VpdGVJbmRleH0vJHtpfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VpdGVDb3B5ID0geyAuLi5zdWl0ZURlZiwgaXRlcmF0aW9uQ291bnQ6IDEsIHBhcmFtTWFuYWdlcjogbW9ja2VkUGFyYW1NYW5hZ2VyIH07XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGVzdENvbmZpZyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5fY29uZmlnLCBzdWl0ZXM6IFsgc3VpdGVDb3B5IF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9ncm91cFJlc3VsdDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0S2V5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JrZXJDb25maWcgPSB7IHdvcmtlcklkLCB0ZXN0Q29uZmlnLCB0ZXN0Q2Fwcywgc3RhcnR1cERlbGF5OiAyMDAgfTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLnB1c2goKGNhbGxiYWNrKSA9PiB0aGlzLl9sYXVuY2hXb3JrZXJGdW5jKHdvcmtlckNvbmZpZywgY2FsbGJhY2spKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBjaGVjayBpZiBhbnkgb2YgY2FzZXMgaGF2ZSBwYXJhbSBmaWxlIGF0dGFjaGVkXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKG1vZGUgPT09ICdjYXNlJyAmJiBBcnJheS5pc0FycmF5KHN1aXRlRGVmLmNhc2VzKSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGNhc2VJbmRleCA9IDA7XHJcbiAgICAgICAgICAgICAgICBzdWl0ZURlZi5jYXNlcy5mb3JFYWNoKGNhc2VEZWYgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhc2VLZXkgPSBjYXNlRGVmLmtleSB8fCBjYXNlRGVmLmlkIHx8IGNhc2VEZWYubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JrZXJJZCA9IGAke2Nhc2VLZXl9LSR7c3VpdGVJbmRleH0vJHtjYXNlSW5kZXh9YDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWl0ZUNvcHkgPSB7IC4uLnN1aXRlRGVmLCBjYXNlczogWyBjYXNlRGVmIF19O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRlc3RDb25maWcgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuX2NvbmZpZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VpdGVzOiBbIHN1aXRlQ29weSBdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfZ3JvdXBSZXN1bHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdEtleSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1aXRlS2V5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JrZXJDb25maWcgPSB7IHdvcmtlcklkLCB0ZXN0Q29uZmlnLCB0ZXN0Q2Fwcywgc3RhcnR1cERlbGF5OiAwIH07XHJcbiAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbi5wdXNoKChjYWxsYmFjaykgPT4gdGhpcy5fbGF1bmNoV29ya2VyRnVuYyh3b3JrZXJDb25maWcsIGNhbGxiYWNrKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZUluZGV4Kys7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN1aXRlS2V5ID0gc3VpdGVEZWYua2V5IHx8IHN1aXRlRGVmLmlkIHx8IHN1aXRlRGVmLm5hbWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB3b3JrZXJJZCA9IGAke3N1aXRlS2V5fS0ke3N1aXRlSW5kZXh9YDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRlc3RDb25maWcgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5fY29uZmlnLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1aXRlczogWyBzdWl0ZURlZiBdLFxyXG4gICAgICAgICAgICAgICAgICAgIF9ncm91cFJlc3VsdDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRLZXksXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHdvcmtlckNvbmZpZyA9IHsgd29ya2VySWQsIHRlc3RDb25maWcsIHRlc3RDYXBzLCBzdGFydHVwRGVsYXk6IDAgfTtcclxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24ucHVzaCgoY2FsbGJhY2spID0+IHRoaXMuX2xhdW5jaFdvcmtlckZ1bmMod29ya2VyQ29uZmlnLCBjYWxsYmFjaykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN1aXRlSW5kZXgrKztcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgYXdhaXQgcGFyYWxsZWxMaW1pdChjb2xsZWN0aW9uLCB3b3JrZXJzQ291bnQpO1xyXG5cclxuICAgICAgICBsZXQgdG90YWwgPSAwO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdDcmVhdGVkIFJ1bm5lcnMgU3RhdCcsIHRoaXMuY3JlYXRlZFJ1bm5lcnNTdGF0KTtcclxuICAgICAgICBjb25zdCBydW5uZXJzSWRzID0gT2JqZWN0LmtleXModGhpcy5jcmVhdGVkUnVubmVyc1N0YXQpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdDcmVhdGVkIFJ1bm5lcnMgY291bnQnLCBydW5uZXJzSWRzLmxlbmd0aCk7XHJcblxyXG4gICAgICAgIHJ1bm5lcnNJZHMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhemVzID0gdGhpcy5jcmVhdGVkUnVubmVyc1N0YXRbaXRlbV0ubGVuZ3RoO1xyXG4gICAgICAgICAgICB0b3RhbCArPSBjYXplcztcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ1J1bm5lcicsIGl0ZW0sICcgcnVuICcsIGNhemVzLCAnIGNhc2VzJyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKCdQYXJhbGxlbCBjb3VudCcsIHdvcmtlcnNDb3VudCk7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1RvdGFsOiAnLCB0b3RhbCk7XHJcbiAgICAgICAgY29uc3QgZW5kID0gbmV3IERhdGUoKTtcclxuICAgICAgICBjb25zdCBkdXJhdGlvbiA9IG5ldyBEdXJhdGlvbihzdGFydCwgZW5kKTtcclxuICAgICAgICBjb25zb2xlLmxvZygnRHVyYXRpb246ICcsIGR1cmF0aW9uLnRvU3RyaW5nKDEpKTtcclxuICAgICAgICAvL3RoaXMucmVwb3J0ZXIub25BZnRlckVuZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgICAqIFByaXZhdGUgbWV0aG9kc1xyXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbiAgICBfbGF1bmNoV29ya2VyRnVuYyh3b3JrZXJDb25maWcsIGNhbGxiYWNrKSB7XHJcbiAgICAgICAgY29uc3QgY2IgPSAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnJvciwgbnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuX2xhdW5jaFRlc3Qod29ya2VyQ29uZmlnLCBjYikudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIHJlc3VsdCk7XHJcbiAgICAgICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICBjYWxsYmFjayhlcnJvciwgbnVsbCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgX2luc3RhbnRpYXRlUnVubmVyKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuZnJhbWV3b3JrICYmIHR5cGVvZiB0aGlzLl9jb25maWcuZnJhbWV3b3JrID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFJ1bm5lcnMsIHRoaXMuX2NvbmZpZy5mcmFtZXdvcmspKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJ1bm5lcnNbdGhpcy5fY29uZmlnLmZyYW1ld29ya10oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyBSdW5uZXJzLm94eWdlbigpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIF9sYXVuY2hUZXN0KHsgd29ya2VySWQsIHRlc3RDb25maWcsIHRlc3RDYXBzLCBzdGFydHVwRGVsYXkgfSwgY2FsbGJhY2spIHtcclxuICAgICAgICBpZiAoIWNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXdhaXQgdGhpcy5fc2xlZXAoc3RhcnR1cERlbGF5KTtcclxuXHJcbiAgICAgICAgbGV0IHJ1bm5lciA9IHRoaXMuX2luc3RhbnRpYXRlUnVubmVyKCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVkUnVubmVyc1N0YXRbcnVubmVyLl9pZF0gPSBbd29ya2VySWRdO1xyXG5cclxuICAgICAgICBpZiAoIXJ1bm5lcikge1xyXG4gICAgICAgICAgICBjb25zdCBmcmFtZXdvcmsgPSB0aGlzLl9jb25maWcuZnJhbWV3b3JrO1xyXG4gICAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoYENhbm5vdCBmaW5kIHJ1bm5lciBmb3IgdGhlIHNwZWNpZmllZCBmcmFtZXdvcms6ICR7ZnJhbWV3b3JrfS5gKSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gZ2VuZXJhdGUgZmlyZWZveCBcInByb2ZpbGVcIiB2YWx1ZSBpZiBwcm9maWxlIG9wdGlvbnMgYXJlIHNwZWNpZmllZFxyXG4gICAgICAgICAgICAvLyBhd2FpdCBveHV0aWwuZ2VuZXJhdGVGaXJlZm94T3B0aW9uc1Byb2ZpbGUodGVzdENhcHMpO1xyXG5cclxuICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSBveHlnZW5cclxuICAgICAgICAgICAgYXdhaXQgcnVubmVyLmluaXQodGVzdENvbmZpZywgdGVzdENhcHMsIHRoaXMucmVwb3J0ZXIpO1xyXG5cclxuICAgICAgICAgICAgLy8gcnVuIE94eWdlbiB0ZXN0IFxyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBydW5uZXIucnVuKCk7XHJcbiAgICAgICAgICAgIGF3YWl0IHJ1bm5lci5kaXNwb3NlKHJlc3VsdC5zdGF0dXMgfHwgbnVsbCk7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsYXVuY2ggdGhlIHRlc3Q6JywgZSk7XHJcbiAgICAgICAgICAgIC8vIHN0b3AgcHJvY2Vzc2luZyB0aGUgcXVldWVcclxuICAgICAgICAgICAgaWYgKHRoaXMuX3F1ZXVlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9xdWV1ZS5raWxsKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBjdXN0b20gZXJyb3IgbWVzc2FnZVxyXG4gICAgICAgICAgICBpZiAoZS5lcnJvcikge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVyck1zZyA9ICcnO1xyXG4gICAgICAgICAgICAgICAgdmFyIGVyciA9IGUuZXJyb3I7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLnR5cGUpXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyTXNnICs9IGVyci50eXBlICsgJyAtICc7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLm1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyTXNnICs9IGVyci5tZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIGVyck1zZyA9IGVyci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKGVyck1zZykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZSk7ICAgIC8vIGNhbGwgYmFjayB3aXRoIHRoZSBvcmlnaW5hbCBleGNlcHRpb25cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5ydW5uZXJzLnB1c2gocnVubmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBfc2xlZXAoZHVyYXRpb24pIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZHVyYXRpb24pKTtcclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgUGFyYW1NYW5hZ2VyTW9jayB7XHJcbiAgICBjb25zdHJ1Y3Rvcih2YWx1ZXMpIHtcclxuICAgICAgICB0aGlzLnZhbHVlcyA9IHZhbHVlcztcclxuICAgIH1cclxuXHJcbiAgICBpbml0KCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXRNb2RlKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICByZWFkTmV4dCgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcmVhZFByZXYoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGdldFZhbHVlcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZXM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHJvd3MoKSB7XHJcbiAgICAgICAgcmV0dXJuIDE7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
254
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYWxsZWwtbGF1bmNoZXIuanMiXSwibmFtZXMiOlsiRHVyYXRpb24iLCJyZXF1aXJlIiwiaGFzaCIsIlBhcmFsbGVsTGF1bmNoZXIiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsInJlcG9ydGVyIiwiX2NvbmZpZyIsIl9xdWV1ZSIsInJ1bm5lcnMiLCJjcmVhdGVkUnVubmVyc1N0YXQiLCJydW4iLCJjYXBzU2V0IiwiY29sbGVjdGlvbiIsInBhcmFsbGVsIiwiRXJyb3IiLCJtb2RlIiwid29ya2Vyc0NvdW50IiwiaXNOYU4iLCJ3b3JrZXJzIiwic3VpdGVzIiwicmVzdWx0TmFtZSIsIm5hbWUiLCJBcnJheSIsImlzQXJyYXkiLCJ0ZXN0Q2FwcyIsInJlc3VsdEhhc2giLCJyZXN1bHRLZXkiLCJzdWl0ZUluZGV4IiwiZm9yRWFjaCIsInN1aXRlRGVmIiwic3VpdGVLZXkiLCJrZXkiLCJpZCIsImkiLCJpdGVyYXRpb25Db3VudCIsIm1vY2tlZFBhcmFtTWFuYWdlciIsInVuZGVmaW5lZCIsInBhcmFtTWFuYWdlciIsIlBhcmFtTWFuYWdlck1vY2siLCJnZXRWYWx1ZXMiLCJyZWFkTmV4dCIsIndvcmtlcklkIiwic3VpdGVDb3B5IiwidGVzdENvbmZpZyIsIl9ncm91cFJlc3VsdCIsIndvcmtlckNvbmZpZyIsInN0YXJ0dXBEZWxheSIsInB1c2giLCJjYWxsYmFjayIsIl9sYXVuY2hXb3JrZXJGdW5jIiwiY2FzZXMiLCJjYXNlSW5kZXgiLCJjYXNlRGVmIiwiY2FzZUtleSIsInN0YXJ0IiwiRGF0ZSIsInRvdGFsIiwiY29uc29sZSIsImxvZyIsInJ1bm5lcnNJZHMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwibWFwIiwiaXRlbSIsImNhemVzIiwiZW5kIiwiZHVyYXRpb24iLCJ0b1N0cmluZyIsImNiIiwiZXJyb3IiLCJfbGF1bmNoVGVzdCIsInRoZW4iLCJyZXN1bHQiLCJjYXRjaCIsIl9pbnN0YW50aWF0ZVJ1bm5lciIsImZyYW1ld29yayIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIlJ1bm5lcnMiLCJveHlnZW4iLCJfc2xlZXAiLCJydW5uZXIiLCJfaWQiLCJpbml0IiwiZGlzcG9zZSIsInN0YXR1cyIsImUiLCJraWxsIiwiZXJyTXNnIiwiZXJyIiwidHlwZSIsIm1lc3NhZ2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJ2YWx1ZXMiLCJnZXRNb2RlIiwicmVhZFByZXYiLCJyb3dzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFVQTs7QUFDQTs7Ozs7Ozs7QUFDQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXhCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBcEI7O0FBRWUsTUFBTUUsZ0JBQU4sQ0FBdUI7QUFDbENDLEVBQUFBLFdBQVcsQ0FBQ0MsTUFBRCxFQUFTQyxRQUFULEVBQW1CO0FBQzFCLFNBQUtDLE9BQUwsR0FBZUYsTUFBZjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0EsU0FBS0UsTUFBTCxHQUFjLElBQWQ7QUFDQSxTQUFLQyxPQUFMLEdBQWUsRUFBZjtBQUNBLFNBQUtDLGtCQUFMLEdBQTBCLEVBQTFCO0FBQ0g7O0FBRVEsUUFBSEMsR0FBRyxDQUFDQyxPQUFELEVBQVU7QUFDZixVQUFNQyxVQUFVLEdBQUcsRUFBbkI7O0FBRUEsUUFBSSxDQUFDLEtBQUtOLE9BQUwsQ0FBYU8sUUFBbEIsRUFBNEI7QUFDeEIsWUFBTSxJQUFJQyxLQUFKLENBQVUsc0VBQVYsQ0FBTjtBQUNIOztBQUVELFFBQUksQ0FBQyxLQUFLUixPQUFMLENBQWFPLFFBQWIsQ0FBc0JFLElBQTNCLEVBQWlDO0FBQzdCLFdBQUtULE9BQUwsQ0FBYU8sUUFBYixDQUFzQkUsSUFBdEIsR0FBNkIsTUFBN0I7QUFDSDs7QUFFRCxVQUFNQyxZQUFZLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLEtBQUtYLE9BQUwsQ0FBYU8sUUFBYixDQUFzQkssT0FB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ZW50IENsb3VkQmVhdCBMaW1pdGVkXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqL1xuXG4vLyBpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgUnVubmVycyBmcm9tICcuLi9ydW5uZXJzJztcbmltcG9ydCBwYXJhbGxlbExpbWl0IGZyb20gJ2FzeW5jL3BhcmFsbGVsTGltaXQnO1xuY29uc3QgRHVyYXRpb24gPSByZXF1aXJlKCdkdXJhdGlvbicpO1xuY29uc3QgaGFzaCA9IHJlcXVpcmUoJ29iamVjdC1oYXNoJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhcmFsbGVsTGF1bmNoZXIge1xuICAgIGNvbnN0cnVjdG9yKGNvbmZpZywgcmVwb3J0ZXIpIHtcbiAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgICAgICB0aGlzLnJlcG9ydGVyID0gcmVwb3J0ZXI7XG4gICAgICAgIHRoaXMuX3F1ZXVlID0gbnVsbDtcbiAgICAgICAgdGhpcy5ydW5uZXJzID0gW107XG4gICAgICAgIHRoaXMuY3JlYXRlZFJ1bm5lcnNTdGF0ID0gW107XG4gICAgfVxuXG4gICAgYXN5bmMgcnVuKGNhcHNTZXQpIHtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IFtdO1xuXG4gICAgICAgIGlmICghdGhpcy5fY29uZmlnLnBhcmFsbGVsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzdGFydCB0aGUgcGFyYWxsZWwgdGVzdGluZyAtIFwicGFyYWxsZWxcIiBzZXR0aW5ncyBhcmUgbWlzc2luZy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fY29uZmlnLnBhcmFsbGVsLm1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbmZpZy5wYXJhbGxlbC5tb2RlID0gJ2Nhc2UnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd29ya2Vyc0NvdW50ID0gIWlzTmFOKHRoaXMuX2NvbmZpZy5wYXJhbGxlbC53b3JrZXJzKSA/IHRoaXMuX2NvbmZpZy5wYXJhbGxlbC53b3JrZXJzIDogMTtcbiAgICAgICAgY29uc3QgbW9kZSA9IHRoaXMuX2NvbmZpZy5wYXJhbGxlbC5tb2RlID09PSAnaXRlcmF0aW9uJ1xuICAgICAgICAgICAgPyAnaXRlcmF0aW9uJyA6IHRoaXMuX2NvbmZpZy5wYXJhbGxlbC5tb2RlID09PSAnc3VpdGUnXG4gICAgICAgICAgICAgICAgPyAnc3VpdGUnIDogJ2Nhc2UnO1xuICAgICAgICAvLyBmbGF0dGVuIGFsbCBzdWl0ZXMgYW5kIGNyZWF0ZSBvbmUgdW5pZmllZCBhcnJheSBvZiBhbGwgdGhlIHRlc3QgY2FzZXNcbiAgICAgICAgY29uc3Qgc3VpdGVzID0gdGhpcy5fY29uZmlnLnN1aXRlcztcbiAgICAgICAgY29uc3QgcmVzdWx0TmFtZSA9IHRoaXMuX2NvbmZpZy5uYW1lIHx8ICcnO1xuICAgICAgICBpZiAoIXN1aXRlcyB8fCAhQXJyYXkuaXNBcnJheShzdWl0ZXMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzdGFydCB0aGUgcGFyYWxsZWwgdGVzdGluZyAtIG5vIHN1aXRlcyBhcmUgZGVmaW5lZC4nKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiBubyBjYXBhYmlsaXRpZXMgYXJlIHNwZWNpZmllZCwgcnVuIHNpbmdsZSBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgYXJndW1lbnRzXG4gICAgICAgIC8vIGFsdGVybmF0aXZlbHksIHBpY2sgdGhlIGZpcnN0IGNhcGFiaWxpdGllcyBzZXQgKGxvYWQgdGVzdCBpcyBsaW1pdGVkIHRvIGEgc2luZ2xlIGJyb3dzZXIgdHlwZSlcbiAgICAgICAgY29uc3QgdGVzdENhcHMgPSBjYXBzU2V0ID8gKEFycmF5LmlzQXJyYXkoY2Fwc1NldCkgPyBjYXBzU2V0WzBdIDogY2Fwc1NldCkgOiBudWxsO1xuICAgICAgICBjb25zdCByZXN1bHRIYXNoID0gdGVzdENhcHMgPyBoYXNoKHRlc3RDYXBzKSA6ICcnO1xuICAgICAgICBjb25zdCByZXN1bHRLZXkgPSBgJHtyZXN1bHROYW1lfS0ke3Jlc3VsdEhhc2h9YDtcbiAgICAgICAgLy8gaWYgJ3dvcmtlcnMnIHNldCB0byBtYXggYW5kIHBhcmFtZXRlciBmaWxlIGlzIGRlZmluZWQsIFxuICAgICAgICAvLyB0aGVuIHJ1biBhcyBtYW55IHBhcmFsbGVsIHRlc3RzIGFzIHJvd3MgaW4gdGhlIGZpbGVcbiAgICAgICAgbGV0IHN1aXRlSW5kZXggPSAwO1xuXG4gICAgICAgIHN1aXRlcy5mb3JFYWNoKHN1aXRlRGVmID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1aXRlS2V5ID0gc3VpdGVEZWYua2V5IHx8IHN1aXRlRGVmLmlkIHx8IHN1aXRlRGVmLm5hbWU7XG4gICAgICAgICAgICBpZiAobW9kZSA9PT0gJ2l0ZXJhdGlvbicpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaTw9IHN1aXRlRGVmLml0ZXJhdGlvbkNvdW50OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1vY2tlZFBhcmFtTWFuYWdlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1aXRlRGVmLnBhcmFtTWFuYWdlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9ja2VkUGFyYW1NYW5hZ2VyID0gbmV3IFBhcmFtTWFuYWdlck1vY2soc3VpdGVEZWYucGFyYW1NYW5hZ2VyLmdldFZhbHVlcygpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1aXRlRGVmLnBhcmFtTWFuYWdlci5yZWFkTmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdvcmtlcklkID0gYCR7c3VpdGVLZXl9LSR7c3VpdGVJbmRleH0vJHtpfWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1aXRlQ29weSA9IHsgLi4uc3VpdGVEZWYsIGl0ZXJhdGlvbkNvdW50OiAxLCBwYXJhbU1hbmFnZXI6IG1vY2tlZFBhcmFtTWFuYWdlciB9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXN0Q29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5fY29uZmlnLCBzdWl0ZXM6IFsgc3VpdGVDb3B5IF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBfZ3JvdXBSZXN1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdvcmtlckNvbmZpZyA9IHsgd29ya2VySWQsIHRlc3RDb25maWcsIHRlc3RDYXBzLCBzdGFydHVwRGVsYXk6IDIwMCB9O1xuICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLnB1c2goKGNhbGxiYWNrKSA9PiB0aGlzLl9sYXVuY2hXb3JrZXJGdW5jKHdvcmtlckNvbmZpZywgY2FsbGJhY2spKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBjaGVjayBpZiBhbnkgb2YgY2FzZXMgaGF2ZSBwYXJhbSBmaWxlIGF0dGFjaGVkXG4gICAgICAgICAgICBlbHNlIGlmIChtb2RlID09PSAnY2FzZScgJiYgQXJyYXkuaXNBcnJheShzdWl0ZURlZi5jYXNlcykpIHtcbiAgICAgICAgICAgICAgICBsZXQgY2FzZUluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICBzdWl0ZURlZi5jYXNlcy5mb3JFYWNoKGNhc2VEZWYgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjYXNlS2V5ID0gY2FzZURlZi5rZXkgfHwgY2FzZURlZi5pZCB8fCBjYXNlRGVmLm5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdvcmtlcklkID0gYCR7Y2FzZUtleX0tJHtzdWl0ZUluZGV4fS8ke2Nhc2VJbmRleH1gO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWl0ZUNvcHkgPSB7IC4uLnN1aXRlRGVmLCBjYXNlczogWyBjYXNlRGVmIF19O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXN0Q29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5fY29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3VpdGVzOiBbIHN1aXRlQ29weSBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgX2dyb3VwUmVzdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1aXRlS2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JrZXJDb25maWcgPSB7IHdvcmtlcklkLCB0ZXN0Q29uZmlnLCB0ZXN0Q2Fwcywgc3RhcnR1cERlbGF5OiAwIH07XG4gICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24ucHVzaCgoY2FsbGJhY2spID0+IHRoaXMuX2xhdW5jaFdvcmtlckZ1bmMod29ya2VyQ29uZmlnLCBjYWxsYmFjaykpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlSW5kZXgrKztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1aXRlS2V5ID0gc3VpdGVEZWYua2V5IHx8IHN1aXRlRGVmLmlkIHx8IHN1aXRlRGVmLm5hbWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgd29ya2VySWQgPSBgJHtzdWl0ZUtleX0tJHtzdWl0ZUluZGV4fWA7XG4gICAgICAgICAgICAgICAgY29uc3QgdGVzdENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5fY29uZmlnLFxuICAgICAgICAgICAgICAgICAgICBzdWl0ZXM6IFsgc3VpdGVEZWYgXSxcbiAgICAgICAgICAgICAgICAgICAgX2dyb3VwUmVzdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRLZXksXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHdvcmtlckNvbmZpZyA9IHsgd29ya2VySWQsIHRlc3RDb25maWcsIHRlc3RDYXBzLCBzdGFydHVwRGVsYXk6IDAgfTtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLnB1c2goKGNhbGxiYWNrKSA9PiB0aGlzLl9sYXVuY2hXb3JrZXJGdW5jKHdvcmtlckNvbmZpZywgY2FsbGJhY2spKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN1aXRlSW5kZXgrKztcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUoKTtcbiAgICAgICAgYXdhaXQgcGFyYWxsZWxMaW1pdChjb2xsZWN0aW9uLCB3b3JrZXJzQ291bnQpO1xuXG4gICAgICAgIGxldCB0b3RhbCA9IDA7XG4gICAgICAgIGNvbnNvbGUubG9nKCdDcmVhdGVkIFJ1bm5lcnMgU3RhdCcsIHRoaXMuY3JlYXRlZFJ1bm5lcnNTdGF0KTtcbiAgICAgICAgY29uc3QgcnVubmVyc0lkcyA9IE9iamVjdC5rZXlzKHRoaXMuY3JlYXRlZFJ1bm5lcnNTdGF0KTtcbiAgICAgICAgY29uc29sZS5sb2coJ0NyZWF0ZWQgUnVubmVycyBjb3VudCcsIHJ1bm5lcnNJZHMubGVuZ3RoKTtcblxuICAgICAgICBydW5uZXJzSWRzLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2F6ZXMgPSB0aGlzLmNyZWF0ZWRSdW5uZXJzU3RhdFtpdGVtXS5sZW5ndGg7XG4gICAgICAgICAgICB0b3RhbCArPSBjYXplcztcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdSdW5uZXInLCBpdGVtLCAnIHJ1biAnLCBjYXplcywgJyBjYXNlcycpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zb2xlLmxvZygnUGFyYWxsZWwgY291bnQnLCB3b3JrZXJzQ291bnQpO1xuICAgICAgICBjb25zb2xlLmxvZygnVG90YWw6ICcsIHRvdGFsKTtcbiAgICAgICAgY29uc3QgZW5kID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgZHVyYXRpb24gPSBuZXcgRHVyYXRpb24oc3RhcnQsIGVuZCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdEdXJhdGlvbjogJywgZHVyYXRpb24udG9TdHJpbmcoMSkpO1xuICAgICAgICAvL3RoaXMucmVwb3J0ZXIub25BZnRlckVuZCgpO1xuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiBQcml2YXRlIG1ldGhvZHNcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgX2xhdW5jaFdvcmtlckZ1bmMod29ya2VyQ29uZmlnLCBjYWxsYmFjaykge1xuICAgICAgICBjb25zdCBjYiA9IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9sYXVuY2hUZXN0KHdvcmtlckNvbmZpZywgY2IpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgcmVzdWx0KTtcbiAgICAgICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IsIG51bGwpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBfaW5zdGFudGlhdGVSdW5uZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuZnJhbWV3b3JrICYmIHR5cGVvZiB0aGlzLl9jb25maWcuZnJhbWV3b3JrID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChSdW5uZXJzLCB0aGlzLl9jb25maWcuZnJhbWV3b3JrKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUnVubmVyc1t0aGlzLl9jb25maWcuZnJhbWV3b3JrXSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBSdW5uZXJzLm94eWdlbigpO1xuICAgIH1cblxuICAgIGFzeW5jIF9sYXVuY2hUZXN0KHsgd29ya2VySWQsIHRlc3RDb25maWcsIHRlc3RDYXBzLCBzdGFydHVwRGVsYXkgfSwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuX3NsZWVwKHN0YXJ0dXBEZWxheSk7XG5cbiAgICAgICAgbGV0IHJ1bm5lciA9IHRoaXMuX2luc3RhbnRpYXRlUnVubmVyKCk7XG4gICAgICAgIHRoaXMuY3JlYXRlZFJ1bm5lcnNTdGF0W3J1bm5lci5faWRdID0gW3dvcmtlcklkXTtcblxuICAgICAgICBpZiAoIXJ1bm5lcikge1xuICAgICAgICAgICAgY29uc3QgZnJhbWV3b3JrID0gdGhpcy5fY29uZmlnLmZyYW1ld29yaztcbiAgICAgICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgcnVubmVyIGZvciB0aGUgc3BlY2lmaWVkIGZyYW1ld29yazogJHtmcmFtZXdvcmt9LmApKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gZ2VuZXJhdGUgZmlyZWZveCBcInByb2ZpbGVcIiB2YWx1ZSBpZiBwcm9maWxlIG9wdGlvbnMgYXJlIHNwZWNpZmllZFxuICAgICAgICAgICAgLy8gYXdhaXQgb3h1dGlsLmdlbmVyYXRlRmlyZWZveE9wdGlvbnNQcm9maWxlKHRlc3RDYXBzKTtcblxuICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSBveHlnZW5cbiAgICAgICAgICAgIGF3YWl0IHJ1bm5lci5pbml0KHRlc3RDb25maWcsIHRlc3RDYXBzLCB0aGlzLnJlcG9ydGVyKTtcblxuICAgICAgICAgICAgLy8gcnVuIE94eWdlbiB0ZXN0IFxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcnVubmVyLnJ1bigpO1xuICAgICAgICAgICAgYXdhaXQgcnVubmVyLmRpc3Bvc2UocmVzdWx0LnN0YXR1cyB8fCBudWxsKTtcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsYXVuY2ggdGhlIHRlc3Q6JywgZSk7XG4gICAgICAgICAgICAvLyBzdG9wIHByb2Nlc3NpbmcgdGhlIHF1ZXVlXG4gICAgICAgICAgICBpZiAodGhpcy5fcXVldWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9xdWV1ZS5raWxsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpZiB0aGlzIGlzIGN1c3RvbSBlcnJvciBtZXNzYWdlXG4gICAgICAgICAgICBpZiAoZS5lcnJvcikge1xuICAgICAgICAgICAgICAgIHZhciBlcnJNc2cgPSAnJztcbiAgICAgICAgICAgICAgICB2YXIgZXJyID0gZS5lcnJvcjtcbiAgICAgICAgICAgICAgICBpZiAoZXJyLnR5cGUpXG4gICAgICAgICAgICAgICAgICAgIGVyck1zZyArPSBlcnIudHlwZSArICcgLSAnO1xuICAgICAgICAgICAgICAgIGlmIChlcnIubWVzc2FnZSlcbiAgICAgICAgICAgICAgICAgICAgZXJyTXNnICs9IGVyci5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgZXJyTXNnID0gZXJyLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKGVyck1zZykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZSk7ICAgIC8vIGNhbGwgYmFjayB3aXRoIHRoZSBvcmlnaW5hbCBleGNlcHRpb25cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucnVubmVycy5wdXNoKHJ1bm5lcik7XG4gICAgfVxuXG4gICAgX3NsZWVwKGR1cmF0aW9uKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkdXJhdGlvbikpO1xuICAgIH1cbn1cblxuY2xhc3MgUGFyYW1NYW5hZ2VyTW9jayB7XG4gICAgY29uc3RydWN0b3IodmFsdWVzKSB7XG4gICAgICAgIHRoaXMudmFsdWVzID0gdmFsdWVzO1xuICAgIH1cblxuICAgIGluaXQoKSB7XG5cbiAgICB9XG5cbiAgICBnZXRNb2RlKCkge1xuXG4gICAgfVxuXG4gICAgcmVhZE5leHQoKSB7XG5cbiAgICB9XG5cbiAgICByZWFkUHJldigpIHtcblxuICAgIH1cblxuICAgIGdldFZhbHVlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVzO1xuICAgIH1cblxuICAgIGdldCByb3dzKCkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -100,4 +100,4 @@ ${err.message}`));
|
|
|
100
100
|
|
|
101
101
|
return module;
|
|
102
102
|
};
|
|
103
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYW0tbWFuYWdlci5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiZmlsZVBhdGgiLCJtb2RlIiwiZmlsZVR5cGUiLCJkZWZlciIsInJlcXVpcmUiLCJwYXRoIiwiRXhjZWxSZWFkZXIiLCJDc3ZSZWFkZXIiLCJKc29uUmVhZGVyIiwiZXJySGVscGVyIiwiX3doZW5Jbml0aWFsaXplZCIsImluaXQiLCJleHQiLCJleHRuYW1lIiwicmVhZGVyIiwic2VsZiIsInJlamVjdCIsIk94RXJyb3IiLCJlcnJvckNvZGUiLCJQQVJBTUVURVJTX0VSUk9SIiwicHJvbWlzZSIsInJlYWQiLCJ0aGVuIiwicmVzdWx0IiwidGFibGUiLCJjdXJyZW50Um93IiwicmFuZG9tIiwibGVuZ3RoIiwicmVzb2x2ZSIsImNhdGNoIiwiZXJyIiwibWVzc2FnZSIsImdldE1vZGUiLCJyZWFkTmV4dCIsInByZXZSb3ciLCJyZWFkUHJldiIsImdldFZhbHVlcyIsIl9fZGVmaW5lR2V0dGVyX18iLCJtaW4iLCJtYXgiLCJNYXRoIiwiZmxvb3IiXSwibWFwcGluZ3MiOiI7Ozs7QUFRQTs7OztBQUNBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsVUFBVUMsUUFBVixFQUFvQkMsSUFBcEIsRUFBMEJDLFFBQTFCLEVBQWlEO0FBQzlELE1BQUlDLEtBQUssR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBUCxDQUFnQkQsS0FBNUI7O0FBQ0EsTUFBSUUsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxNQUFJRSxXQUFXLEdBQUdGLE9BQU8sQ0FBQyxzQkFBRCxDQUF6Qjs7QUFDQSxNQUFJRyxTQUFTLEdBQUdILE9BQU8sQ0FBQyxvQkFBRCxDQUF2Qjs7QUFDQSxNQUFJSSxVQUFVLEdBQUdKLE9BQU8sQ0FBQyxxQkFBRCxDQUF4Qjs7QUFDQSxNQUFJSyxTQUFTLEdBQUdMLE9BQU8sQ0FBQyxrQkFBRCxDQUF2Qjs7QUFDQSxNQUFJTixNQUFNLEdB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QUF3QixXQUE1QixFQUF5QztBQUNyQyxXQUFLVCxVQUFMLEdBQWtCLEtBQUtTLE9BQXZCO0FBQ0g7QUFDSixHQUpEOztBQU1BcEMsRUFBQUEsTUFBTSxDQUFDc0MsU0FBUCxHQUFtQixZQUFXO0FBQzFCLFFBQUksQ0FBQyxLQUFLWixLQUFOLElBQWUsS0FBS0EsS0FBTCxDQUFXRyxNQUFYLEtBQXNCLENBQXpDLEVBQTRDO0FBQ3hDLFlBQU0sSUFBSVYsb0JBQUosQ0FBWVIsU0FBUyxDQUFDUyxTQUFWLENBQW9CQyxnQkFBaEMsRUFBa0QsMkJBQWxELENBQU47QUFDSDs7QUFDRCxXQUFPLEtBQUtLLEtBQUwsQ0FBVyxLQUFLQyxVQUFoQixDQUFQO0FBQ0gsR0FMRDs7QUFPQTNCLEVBQUFBLE1BQU0sQ0FBQ3VDLGdCQUFQLENBQXdCLE1BQXhCLEVBQWdDLFlBQVc7QUFDdkMsV0FBTyxLQUFLYixLQUFMLENBQVdHLE1BQWxCO0FBQ0gsR0FGRDs7QUFJQSxXQUFTRCxNQUFULENBQWdCWSxHQUFoQixFQUFxQkMsR0FBckIsRUFBMEI7QUFDdEIsV0FBT0MsSUFBSSxDQUFDQyxLQUFMLENBQVdELElBQUksQ0FBQ2QsTUFBTCxNQUFpQmEsR0FBRyxHQUFHRCxHQUF2QixDQUFYLElBQTBDQSxHQUFqRDtBQUNIOztBQUVELFNBQU94QyxNQUFQO0FBQ0gsQ0E5RkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggQ2xvdWRCZWF0IExpbWl0ZWRcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICovXG5pbXBvcnQgT3hFcnJvciBmcm9tICcuLi9lcnJvcnMvT3h5Z2VuRXJyb3InO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZmlsZVBhdGgsIG1vZGUsIGZpbGVUeXBlIC8qb3B0aW9uYWwqLykge1xuICAgIHZhciBkZWZlciA9IHJlcXVpcmUoJ3doZW4nKS5kZWZlcjtcbiAgICB2YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbiAgICB2YXIgRXhjZWxSZWFkZXIgPSByZXF1aXJlKCcuL3BhcmFtLXJlYWRlci1leGNlbCcpO1xuICAgIHZhciBDc3ZSZWFkZXIgPSByZXF1aXJlKCcuL3BhcmFtLXJlYWRlci1jc3YnKTtcbiAgICB2YXIgSnNvblJlYWRlciA9IHJlcXVpcmUoJy4vcGFyYW0tcmVhZGVyLWpzb24nKTtcbiAgICB2YXIgZXJySGVscGVyID0gcmVxdWlyZSgnLi4vZXJyb3JzL2hlbHBlcicpO1xuICAgIHZhciBtb2R1bGUgPSB7fTtcbiAgICB2YXIgX3doZW5Jbml0aWFsaXplZCA9IGRlZmVyKCk7XG5cbiAgICBtb2R1bGUuaW5pdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgZXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKTtcblxuICAgICAgICBpZiAoZmlsZVR5cGUpIHtcbiAgICAgICAgICAgIGV4dCA9IGZpbGVUeXBlO1xuICAgICAgICB9XG4gICAgICAgIHZhciByZWFkZXIgPSBudWxsO1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICAgIC8vIGNob29zZSB0aGUgcmlnaHQgY29udmVydGVyIGJhc2VkIG9uIGVpdGhlciB4bHMgb3IgeGxzeCBmaWxlIGV4dGVuc2lvblxuICAgICAgICBpZiAoZXh0ID09PSAnLnhsc3gnIHx8IGV4dCA9PT0gJy54bHMnKSB7XG4gICAgICAgICAgICByZWFkZXIgPSBuZXcgRXhjZWxSZWFkZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChleHQgPT09ICcuY3N2JyB8fCBleHQgPT09ICcudHh0Jykge1xuICAgICAgICAgICAgcmVhZGVyID0gbmV3IENzdlJlYWRlcigpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGV4dCA9PT0gJy5qc29uJyB8fCBleHQgPT09ICcuanMnKSB7XG4gICAgICAgICAgICByZWFkZXIgPSBuZXcgSnNvblJlYWRlcigpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgX3doZW5Jbml0aWFsaXplZC5yZWplY3QobmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5QQVJBTUVURVJTX0VSUk9SLCAnVW5zdXBwb3J0ZWQgcGFyYW1ldGVycyBmaWxlIHR5cGU6ICcgKyBleHQpKTtcbiAgICAgICAgICAgIHJldHVybiBfd2hlbkluaXRpYWxpemVkLnByb21pc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1vZGUgPSBtb2RlO1xuXG4gICAgICAgIHJlYWRlci5yZWFkKGZpbGVQYXRoLCBmaWxlVHlwZSB8fCBudWxsKVxuICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgc2VsZi50YWJsZSA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICAvLyBpbml0aWFsaXplIGN1cnJlbnRSb3cgYWNjb3JkaW5nIHdpdGggcGFyYW1ldGVyIHJlYWRpbmcgbW9kZSAocmFuZG9tIG9yIHNlcXVlbnRpYWwpXG4gICAgICAgICAgICAgICAgc2VsZi5jdXJyZW50Um93ID0gc2VsZi5tb2RlID09PSAncmFuZG9tJyA/IHJhbmRvbSgwLCBzZWxmLnRhYmxlLmxlbmd0aCkgOiAwO1xuICAgICAgICAgICAgICAgIF93aGVuSW5pdGlhbGl6ZWQucmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICAgICAgX3doZW5Jbml0aWFsaXplZC5yZWplY3QoXG4gICAgICAgICAgICAgICAgICAgIG5ldyBPeEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJySGVscGVyLmVycm9yQ29kZS5QQVJBTUVURVJTX0VSUk9SLFxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7ZXJySGVscGVyLmVycm9yQ29kZS5QQVJBTUVURVJTX0VSUk9SfTogVW5hYmxlIHRvIGxvYWQgcGFyYW1ldGVycyBmaWxlLiBcbiR7ZXJyLm1lc3NhZ2V9YFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBfd2hlbkluaXRpYWxpemVkLnByb21pc2U7XG4gICAgfTtcblxuICAgIG1vZHVsZS5nZXRNb2RlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGU7XG4gICAgfTtcblxuICAgIG1vZHVsZS5yZWFkTmV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5wcmV2Um93ID0gdGhpcy5jdXJyZW50Um93O1xuICAgICAgICBpZiAodGhpcy5tb2RlID09PSAncmFuZG9tJykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50Um93ID0gcmFuZG9tKDAsIHRoaXMudGFibGUubGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFJvdysrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFJvdyA+IHRoaXMudGFibGUubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50Um93ID0gMDtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBtb2R1bGUucmVhZFByZXYgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcmV2Um93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50Um93ID0gdGhpcy5wcmV2Um93O1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIG1vZHVsZS5nZXRWYWx1ZXMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKCF0aGlzLnRhYmxlIHx8IHRoaXMudGFibGUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLlBBUkFNRVRFUlNfRVJST1IsICdQYXJhbWV0ZXJzIHRhYmxlIGlzIGVtcHR5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMudGFibGVbdGhpcy5jdXJyZW50Um93XTtcbiAgICB9O1xuXG4gICAgbW9kdWxlLl9fZGVmaW5lR2V0dGVyX18oJ3Jvd3MnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFibGUubGVuZ3RoO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gcmFuZG9tKG1pbiwgbWF4KSB7XG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSkgKyBtaW47XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZHVsZTtcbn07XG4iXX0=
|
|
@@ -54,4 +54,4 @@ module.exports = function () {
|
|
|
54
54
|
|
|
55
55
|
return module;
|
|
56
56
|
};
|
|
57
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYW0tcmVhZGVyLWNzdi5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwicGFyc2UiLCJyZXF1aXJlIiwiZnMiLCJwYXRoIiwicmVhZCIsImZpbGVQYXRoIiwiZXh0T3ZlcnJpZGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImV4dCIsImV4dG5hbWUiLCJFcnJvciIsImRhdGEiLCJyZWFkRmlsZVN5bmMiLCJlIiwicmVwbGFjZSIsImJvbSIsImNoYXJDb2RlQXQiLCJ0YWJsZSIsImNvbHVtbnMiLCJ0cmltIl0sIm1hcHBpbmdzIjoiOzs7O0FBU0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFZO0FBQ3pCLE1BQUlELE1BQU0sR0FBRyxFQUFiOztBQUNBLFFBQU1FLEtBQUssR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXJCOztBQUNBLE1BQUlDLEVBQUUsR0FBR0QsT0FBTyxDQUFDLElBQUQsQ0FBaEI7O0FBQ0EsTUFBSUUsSUFBSSxHQUFHRixPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFFQUgsRUFBQUEsTUFBTSxDQUFDTSxJQUFQLEdBQWMsVUFBU0MsUUFBVCxFQUFtQkMsV0FBbkIsRUFBZ0M7QUFDMUMsV0FBTyxJQUFJQyxPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQ3BDLFVBQUlDLEdBQUcsR0FBR1AsSUFBSSxDQUFDUSxPQUFMLENBQWFOLFFBQWIsQ0FBVjs7QUFDQSxVQUFJQyxXQUFKLEVBQWlCO0FBQ2JJLFFBQUFBLEdBQUcsR0FBR0osV0FBTjtBQUNIOztBQUNELFVBQUlJLEdBQUcsS0FBSyxNQUFSLElBQWtCQSxHQUFHLEtBQUssTUFBOUIsRUFBc0M7QUFDbENELFFBQUFBLE1BQU0sQ0FBQyxJQUFJRyxLQUFKLENBQVUsaUNBQWlDRixHQUEzQyxDQUFELENBQU47QUFDSDs7QUFFRCxVQUFJRyxJQUFKOztBQUNBLFVBQUk7QUFDQUEsUUFBQUEsSUFBSSxHQUFHWCxFQUFFLENBQUNZLFlBQUgsQ0FBZ0JULFFBQWhCLEVBQTBCLE1BQTFCLENBQVA7QUFDSCxPQUZELENBRUUsT0FBT1UsQ0FBUCxFQUFVO0FBQ1JOLFFBQUFBLE1BQU0sQ0FBQyxJQUFJRyxLQUFKLENBQVUscUNBQXFDRyxDQUEvQyxDQUFELENBQU47QUFDSDs7QUFHREYsTUFBQUEsSUFBSSxHQUFHQSxJQUFJLENBQUNHLE9BQUwsQ0FBYSxPQUFiLEVBQXNCLElBQXRCLENBQVA7QUFHQSxVQUFJQyxHQUFHLEdBQUcsS0FBVjs7QUFHQSxVQUFJSixJQUFJLENBQUNLLFVBQUwsQ0FBZ0IsQ0FBaEIsTUFBdUIsTUFBM0IsRUFBbUM7QUFDL0JELFFBQUFBLEdBQUcsR0FBRyxJQUFOO0FBQ0g7O0FBRUQsVUFBSTtBQUNBLFlBQUlFLEtBQUssR0FBR25CLEtBQUssQ0FBQ2EsSUFBRCxFQUFPO0FBQUVJLFVBQUFBLEdBQUcsRUFBRUEsR0FBUDtBQUFZRyxVQUFBQSxPQUFPLEVBQUUsSUFBckI7QUFBMkJDLFVBQUFBLElBQUksRUFBRTtBQUFqQyxTQUFQLENBQWpCO0FBQ0gsT0FGRCxDQUVFLE9BQU9OLENBQVAsRUFBVTtBQUNSTixRQUFBQSxNQUFNLENBQUNNLENBQUQsQ0FBTjtBQUNIOztBQUVEUCxNQUFBQSxPQUFPLENBQUNXLEtBQUQsQ0FBUDtBQUNILEtBbENNLENBQVA7QUFtQ0gsR0FwQ0Q7O0FBc0NBLFNBQU9yQixNQUFQO0FBQ0gsQ0E3Q0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBtb2R1bGUgPSB7fTtcbiAgICBjb25zdCBwYXJzZSA9IHJlcXVpcmUoJ2Nzdi1wYXJzZS9saWIvc3luYycpO1xuICAgIHZhciBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG4gICAgdmFyIHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbiAgICBtb2R1bGUucmVhZCA9IGZ1bmN0aW9uKGZpbGVQYXRoLCBleHRPdmVycmlkZSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdmFyIGV4dCA9IHBhdGguZXh0bmFtZShmaWxlUGF0aCk7XG4gICAgICAgICAgICBpZiAoZXh0T3ZlcnJpZGUpIHtcbiAgICAgICAgICAgICAgICBleHQgPSBleHRPdmVycmlkZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChleHQgIT09ICcuY3N2JyAmJiBleHQgIT09ICcudHh0Jykge1xuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIGZpbGUgZXh0ZW5zaW9uOiAnICsgZXh0KSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBkYXRhO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBkYXRhID0gZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAndXRmOCcpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1VuYWJsZSB0byByZWFkIHBhcmFtZXRlcnMgZmlsZTogJyArIGUpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQ1NWcyBwcm9kdWNlZCBieSBPUyBYIEV4Y2VsIGhhdmUgaGVhZGVyIHRlcm1pbmF0ZWQgd2l0aCAwZDBkMGFcbiAgICAgICAgICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoL1xcclxcci9nLCAnXFxyJyk7XG5cbiAgICAgICAgICAgIC8vIHN0cmlwIEJPTSBmb3IgVVRGLThcbiAgICAgICAgICAgIHZhciBib20gPSBmYWxzZTtcbiAgICAgICAgICAgIC8vIGNhdGNoZXMgMHhFRkJCQkYgKFVURi04IEJPTSkgYmVjYXVzZSB0aGUgYnVmZmVyLXRvLXN0cmluZ1xuICAgICAgICAgICAgLy8gY29udmVyc2lvbiB0cmFuc2xhdGVzIGl0IHRvIDB4RkVGRiAoVVRGLTE2IEJPTSlcbiAgICAgICAgICAgIGlmIChkYXRhLmNoYXJDb2RlQXQoMCkgPT09IDB4RkVGRikge1xuICAgICAgICAgICAgICAgIGJvbSA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdmFyIHRhYmxlID0gcGFyc2UoZGF0YSwgeyBib206IGJvbSwgY29sdW1uczogdHJ1ZSwgdHJpbTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc29sdmUodGFibGUpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIG1vZHVsZTtcbn07XG4iXX0=
|
|
@@ -53,4 +53,4 @@ module.exports = function () {
|
|
|
53
53
|
|
|
54
54
|
return module;
|
|
55
55
|
};
|
|
56
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYW0tcmVhZGVyLWV4Y2VsLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJ4bHN4IiwicmVxdWlyZSIsInBhdGgiLCJyZWFkIiwiZmlsZVBhdGgiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImV4dCIsImV4dG5hbWUiLCJFcnJvciIsImpzb24iLCJ3b3JrYm9vayIsInJlYWRGaWxlIiwic2hlZXROYW1lTGlzdCIsIlNoZWV0TmFtZXMiLCJqc29uUmF3IiwidXRpbHMiLCJzaGVldF90b19qc29uIiwiU2hlZXRzIiwiZGVmdmFsIiwicGFyYW1SYXciLCJwYXJhbSIsInByb3BSYXciLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJ2YWx1ZVJhdyIsIlN0cmluZyIsInRyaW0iLCJwdXNoIiwiZXJyIl0sIm1hcHBpbmdzIjoiOzs7O0FBU0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFZO0FBQ3pCLE1BQUlELE1BQU0sR0FBRyxFQUFiOztBQUNBLE1BQUlFLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBQ0EsTUFBSUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFHQUgsRUFBQUEsTUFBTSxDQUFDSyxJQUFQLEdBQWMsVUFBU0MsUUFBVCxFQUFtQjtBQUM3QixXQUFPLElBQUlDLE9BQUosQ0FBWSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7QUFDcEMsVUFBSUMsR0FBRyxHQUFHTixJQUFJLENBQUNPLE9BQUwsQ0FBYUwsUUFBYixDQUFWOztBQUNBLFVBQUlJLEdBQUcsS0FBSyxPQUFSLElBQW1CQSxHQUFHLEtBQUssTUFBL0IsRUFBdUM7QUFDbkNELFFBQUFBLE1BQU0sQ0FBQyxJQUFJRyxLQUFKLENBQVUsaUNBQWlDRixHQUEzQyxDQUFELENBQU47QUFDSDs7QUFFRCxVQUFJRyxJQUFJLEdBQUcsRUFBWDs7QUFDQSxVQUFJO0FBQ0EsWUFBSUMsUUFBUSxHQUFHWixJQUFJLENBQUNhLFFBQUwsQ0FBY1QsUUFBZCxDQUFmO0FBQ0EsWUFBSVUsYUFBYSxHQUFHRixRQUFRLENBQUNHLFVBQTdCO0FBQ0EsWUFBSUMsT0FBTyxHQUFHaEIsSUFBSSxDQUFDaUIsS0FBTCxDQUFXQyxhQUFYLENBQXlCTixRQUFRLENBQUNPLE1BQVQsQ0FBZ0JMLGFBQWEsQ0FBQyxDQUFELENBQTdCLENBQXpCLEVBQTREO0FBQUVNLFVBQUFBLE1BQU0sRUFBRTtBQUFWLFNBQTVELENBQWQ7O0FBR0EsYUFBSyxJQUFJQyxRQUFULElBQXFCTCxPQUFyQixFQUE4QjtBQUMxQixjQUFJTSxLQUFLLEdBQUcsRUFBWjs7QUFDQSxlQUFLLElBQUlDLE9BQVQsSUFBb0JGLFFBQXBCLEVBQThCO0FBQzFCLGdCQUFJRyxNQUFNLENBQUNDLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ04sUUFBckMsRUFBK0NFLE9BQS9DLENBQUosRUFBNkQ7QUFDekQsa0JBQUlLLFFBQVEsR0FBR1AsUUFBUSxDQUFDRSxPQUFELENBQXZCOztBQUNBLGtCQUFJLE9BQU9LLFFBQVAsS0FBb0IsUUFBcEIsSUFBZ0NBLFFBQVEsWUFBWUMsTUFBeEQsRUFBZ0U7QUFDNURQLGdCQUFBQSxLQUFLLENBQUNDLE9BQU8sQ0FBQ08sSUFBUixFQUFELENBQUwsR0FBd0JGLFFBQVEsQ0FBQ0UsSUFBVCxFQUF4QjtBQUNILGVBRkQsTUFFTztBQUNIUixnQkFBQUEsS0FBSyxDQUFDQyxPQUFPLENBQUNPLElBQVIsRUFBRCxDQUFMLEdBQXdCRixRQUF4QjtBQUNIO0FBQ0o7QUFDSjs7QUFDRGpCLFVBQUFBLElBQUksQ0FBQ29CLElBQUwsQ0FBVVQsS0FBVjtBQUNIO0FBQ0osT0FwQkQsQ0FvQkUsT0FBT1UsR0FBUCxFQUFZO0FBQ1Z6QixRQUFBQSxNQUFNLENBQUN5QixHQUFELENBQU47QUFDSDs7QUFFRDFCLE1BQUFBLE9BQU8sQ0FBQ0ssSUFBRCxDQUFQO0FBQ0gsS0FoQ00sQ0FBUDtBQWlDSCxHQWxDRDs7QUFvQ0EsU0FBT2IsTUFBUDtBQUNILENBM0NEIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE4IENsb3VkQmVhdCBMaW1pdGVkXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbW9kdWxlID0ge307XG4gICAgdmFyIHhsc3ggPSByZXF1aXJlKCd4bHN4Jyk7XG4gICAgdmFyIHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbiAgICAvLyBhc3luY2hyb25vdXNseSByZWFkcyBFeGNlbCBmaWxlIGFuZCByZXR1cm5zIGpzb24gdGhhdCByZXByZXNlbnRzIHRoZSBmaXJzdCBzaGVldFxuICAgIG1vZHVsZS5yZWFkID0gZnVuY3Rpb24oZmlsZVBhdGgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHZhciBleHQgPSBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpO1xuICAgICAgICAgICAgaWYgKGV4dCAhPT0gJy54bHN4JyAmJiBleHQgIT09ICcueGxzJykge1xuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIGZpbGUgZXh0ZW5zaW9uOiAnICsgZXh0KSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBqc29uID0gW107XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHZhciB3b3JrYm9vayA9IHhsc3gucmVhZEZpbGUoZmlsZVBhdGgpO1xuICAgICAgICAgICAgICAgIHZhciBzaGVldE5hbWVMaXN0ID0gd29ya2Jvb2suU2hlZXROYW1lcztcbiAgICAgICAgICAgICAgICB2YXIganNvblJhdyA9IHhsc3gudXRpbHMuc2hlZXRfdG9fanNvbih3b3JrYm9vay5TaGVldHNbc2hlZXROYW1lTGlzdFswXV0sIHsgZGVmdmFsOiAnJyB9KTtcbiAgICAgICAgICAgICAgICAvLyBqdXN0IGluIGNhc2UgdGhlcmUgd2VyZSBzb21lIGV4dHJhIGxpbmUgYnJlYWtzIGluIHRoZSBjZWxsc1xuICAgICAgICAgICAgICAgIC8vIHJlY3JlYXRlIHRoZSBwYXJhbWV0ZXJzIG9iamVjdHMgd2l0aCBhbGwgdGhlIFxcciBhbmQgXFxuIGFuZCB3aGl0ZSBzcGFjZXMgdHJpbW1lZFxuICAgICAgICAgICAgICAgIGZvciAodmFyIHBhcmFtUmF3IG9mIGpzb25SYXcpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmFtID0ge307XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIHByb3BSYXcgaW4gcGFyYW1SYXcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGFyYW1SYXcsIHByb3BSYXcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlUmF3ID0gcGFyYW1SYXdbcHJvcFJhd107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZVJhdyA9PT0gJ3N0cmluZycgfHwgdmFsdWVSYXcgaW5zdGFuY2VvZiBTdHJpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1bcHJvcFJhdy50cmltKCldID0gdmFsdWVSYXcudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtW3Byb3BSYXcudHJpbSgpXSA9IHZhbHVlUmF3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBqc29uLnB1c2gocGFyYW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXNvbHZlKGpzb24pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIG1vZHVsZTtcbn07XG4iXX0=
|
|
@@ -35,4 +35,4 @@ module.exports = function () {
|
|
|
35
35
|
|
|
36
36
|
return module;
|
|
37
37
|
};
|
|
38
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGFyYW0tcmVhZGVyLWpzb24uanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsInBhdGgiLCJyZXF1aXJlIiwicmVhZCIsImZpbGVQYXRoIiwiZXh0T3ZlcnJpZGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImV4dCIsImV4dG5hbWUiLCJFcnJvciIsInJvd3MiLCJBcnJheSIsImlzQXJyYXkiLCJlIl0sIm1hcHBpbmdzIjoiOzs7O0FBU0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFZO0FBQ3pCLE1BQUlELE1BQU0sR0FBRyxFQUFiOztBQUNBLE1BQUlFLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBbEI7O0FBRUFILEVBQUFBLE1BQU0sQ0FBQ0ksSUFBUCxHQUFjLFVBQVNDLFFBQVQsRUFBbUJDLFdBQW5CLEVBQWdDO0FBQzFDLFdBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUNwQyxVQUFJQyxHQUFHLEdBQUdSLElBQUksQ0FBQ1MsT0FBTCxDQUFhTixRQUFiLENBQVY7O0FBQ0EsVUFBSUMsV0FBSixFQUFpQjtBQUNiSSxRQUFBQSxHQUFHLEdBQUdKLFdBQU47QUFDSDs7QUFDRCxVQUFJSSxHQUFHLEtBQUssT0FBUixJQUFtQkEsR0FBRyxLQUFLLEtBQS9CLEVBQXNDO0FBQ2xDRCxRQUFBQSxNQUFNLENBQUMsSUFBSUcsS0FBSixDQUFVLGlDQUFpQ0YsR0FBM0MsQ0FBRCxDQUFOO0FBQ0g7O0FBRUQsVUFBSTtBQUNBLGNBQU1HLElBQUksR0FBR1YsT0FBTyxDQUFDRSxRQUFELENBQXBCOztBQUNBLFlBQUksQ0FBQ1MsS0FBSyxDQUFDQyxPQUFOLENBQWNGLElBQWQsQ0FBTCxFQUEwQjtBQUN0QkosVUFBQUEsTUFBTSxDQUFDLElBQUlHLEtBQUosQ0FBVSwwQkFBVixDQUFELENBQU47QUFDSDs7QUFDREosUUFBQUEsT0FBTyxDQUFDSyxJQUFELENBQVA7QUFDSCxPQU5ELENBTUUsT0FBT0csQ0FBUCxFQUFVO0FBQ1JQLFFBQUFBLE1BQU0sQ0FBQyxJQUFJRyxLQUFKLENBQVUscUNBQXFDSSxDQUEvQyxDQUFELENBQU47QUFDSDtBQUNKLEtBbEJNLENBQVA7QUFtQkgsR0FwQkQ7O0FBc0JBLFNBQU9oQixNQUFQO0FBQ0gsQ0EzQkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBtb2R1bGUgPSB7fTtcbiAgICB2YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcblxuICAgIG1vZHVsZS5yZWFkID0gZnVuY3Rpb24oZmlsZVBhdGgsIGV4dE92ZXJyaWRlKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB2YXIgZXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKTtcbiAgICAgICAgICAgIGlmIChleHRPdmVycmlkZSkge1xuICAgICAgICAgICAgICAgIGV4dCA9IGV4dE92ZXJyaWRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV4dCAhPT0gJy5qc29uJyAmJiBleHQgIT09ICcuanMnKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgZmlsZSBleHRlbnNpb246ICcgKyBleHQpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3dzID0gcmVxdWlyZShmaWxlUGF0aCk7XG4gICAgICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHJvd3MpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIGZpbGUgY29udGVudCcpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyb3dzKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdVbmFibGUgdG8gcmVhZCBwYXJhbWV0ZXJzIGZpbGU6ICcgKyBlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gbW9kdWxlO1xufTtcbiJdfQ==
|
|
@@ -180,4 +180,4 @@ const generateSync = (content, config) => {
|
|
|
180
180
|
|
|
181
181
|
exports.generate = generate;
|
|
182
182
|
exports.generateSync = generateSync;
|
|
183
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdGV4dC10by1pbWFnZS5qcyJdLCJuYW1lcyI6WyJjcmVhdGVDYW52YXMiLCJyZWdpc3RlckZvbnQiLCJyZXF1aXJlIiwiZGVmYXVsdHMiLCJiZ0NvbG9yIiwiY3VzdG9tSGVpZ2h0IiwiYnViYmxlVGFpbCIsIndpZHRoIiwiaGVpZ2h0IiwiZm9udEZhbWlseSIsImZvbnRQYXRoIiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwibGluZUhlaWdodCIsIm1hcmdpbiIsIm1heFdpZHRoIiwidGV4dEFsaWduIiwidGV4dENvbG9yIiwidmVydGljYWxBbGlnbiIsImNyZWF0ZVRleHREYXRhIiwidGV4dCIsImNvbmZpZyIsImNhbnZhcyIsImZhbWlseSIsInRleHRDYW52YXMiLCJ0ZXh0Q29udGV4dCIsImdldENvbnRleHQiLCJ0ZXh0WCIsInRleHRZIiwiaW5jbHVkZXMiLCJ0b0xvd2VyQ2FzZSIsImZpbGxTdHlsZSIsImZpbGxSZWN0IiwiZm9udCIsInRleHRCYXNlbGluZSIsIndvcmRzIiwic3BsaXQiLCJ3b3JkQ291bnQiLCJsZW5ndGgiLCJsaW5lIiwiYWRkTmV3TGluZXMiLCJuIiwid29yZCIsInRlc3QiLCJwYXJ0cyIsInNoaWZ0IiwicHVzaCIsInNwbGljZSIsImpvaW4iLCJ0ZXN0TGluZSIsInJlcGxhY2UiLCJ0ZXN0TGluZVdpZHRoIiwibWVhc3VyZVRleHQiLCJpbmRleE9mIiwiZmlsbFRleHQiLCJNYXRoIiwibWF4IiwidGV4dEhlaWdodCIsInRleHREYXRhIiwiZ2V0SW1hZ2VEYXRhIiwiY3JlYXRlSW1hZ2VDYW52YXMiLCJjb250ZW50IiwiY29uZiIsInRleHRIZWlnaHRXaXRoTWFyZ2lucyIsImNvbnNvbGUiLCJ3YXJuIiwiY3R4IiwiY2xlYXJSZWN0IiwiZ2xvYmFsQWxwaGEiLCJiZWdpblBhdGgiLCJtb3ZlVG8iLCJsaW5lVG8iLCJjbG9zZVBhdGgiLCJmaWxsIiwicHV0SW1hZ2VEYXRhIiwiZ2VuZXJhdGUiLCJ0b0Rh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O0FBTUFFLE9BQU8sQ0FBQ0gsUUFBUixHQUFtQkEsUUFBbkI7QUFDQUcsT0FBTyxDQUFDRCxZQUFSLEdBQXVCQSxZQUF2QiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgY3JlYXRlQ2FudmFzLCByZWdpc3RlckZvbnQgfSA9IHJlcXVpcmUoJ2NhbnZhcycpO1xyXG5cclxuLy8gdGhpcyBpcyB0ZXh0LXRvLWltYWdlIHY1LjIgcGFja2FnZSBpbmNsdWRlZCBkaXJlY3RseSBpbiBveHlnZW4gZm9yIGVhc2llciBjb250cm9sIG92ZXIgY2FudmFzIGFuZCBuYW4gdmVyc2lvbnNcclxuXHJcbmNvbnN0IGRlZmF1bHRzID0ge1xyXG4gICAgYmdDb2xvcjogJyNmZmYnLFxyXG4gICAgY3VzdG9tSGVpZ2h0OiAwLFxyXG4gICAgYnViYmxlVGFpbDogeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0sXHJcbiAgICBmb250RmFtaWx5OiAnQXJpYWwnLFxyXG4gICAgZm9udFBhdGg6ICcnLFxyXG4gICAgZm9udFNpemU6IDE4LFxyXG4gICAgZm9udFdlaWdodDogJ25vcm1hbCcsXHJcbiAgICBsaW5lSGVpZ2h0OiAyOCxcclxuICAgIG1hcmdpbjogMTAsXHJcbiAgICBtYXhXaWR0aDogNDAwLFxyXG4gICAgdGV4dEFsaWduOiAnbGVmdCcsXHJcbiAgICB0ZXh0Q29sb3I6ICcjMDAwJyxcclxuICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxyXG59O1xyXG5cclxuY29uc3QgY3JlYXRlVGV4dERhdGEgPSAodGV4dCwgY29uZmlnLCBjYW52YXMpID0+IHtcclxuICAgIGNvbnN0IHsgYmdDb2xvciwgZm9udEZhbWlseSwgZm9udFBhdGgsIGZvbnRTaXplLCBmb250V2VpZ2h0LCBsaW5lSGVpZ2h0LCBtYXhXaWR0aCwgdGV4dEFsaWduLCB0ZXh0Q29sb3IsIH0gPSBjb25maWc7XHJcbiAgICBpZiAoZm9udFBhdGgpIHtcclxuICAgICAgICByZWdpc3RlckZvbnQoZm9udFBhdGgsIHsgZmFtaWx5OiBmb250RmFtaWx5IH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGV4dENhbnZhcyA9IGNhbnZhcyB8fCBjcmVhdGVDYW52YXMobWF4V2lkdGgsIDEwMCk7XHJcbiAgICBjb25zdCB0ZXh0Q29udGV4dCA9IHRleHRDYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgIGxldCB0ZXh0WCA9IDA7XHJcbiAgICBsZXQgdGV4dFkgPSAwO1xyXG4gICAgaWYgKFsnY2VudGVyJ10uaW5jbHVkZXModGV4dEFsaWduLnRvTG93ZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgdGV4dFggPSBtYXhXaWR0aCAvIDI7XHJcbiAgICB9XHJcbiAgICBpZiAoWydyaWdodCcsICdlbmQnXS5pbmNsdWRlcyh0ZXh0QWxpZ24udG9Mb3dlckNhc2UoKSkpIHtcclxuICAgICAgICB0ZXh0WCA9IG1heFdpZHRoO1xyXG4gICAgfVxyXG4gICAgdGV4dENvbnRleHQudGV4dEFsaWduID0gdGV4dEFsaWduO1xyXG4gICAgdGV4dENvbnRleHQuZmlsbFN0eWxlID0gYmdDb2xvcjtcclxuICAgIHRleHRDb250ZXh0LmZpbGxSZWN0KDAsIDAsIHRleHRDYW52YXMud2lkdGgsIHRleHRDYW52YXMuaGVpZ2h0KTtcclxuICAgIHRleHRDb250ZXh0LmZpbGxTdHlsZSA9IHRleHRDb2xvcjtcclxuICAgIHRleHRDb250ZXh0LmZvbnQgPSBgJHtmb250V2VpZ2h0fSAke2ZvbnRTaXplfXB4ICR7Zm9udEZhbWlseX1gO1xyXG4gICAgdGV4dENvbnRleHQudGV4dEJhc2VsaW5lID0gJ3RvcCc7XHJcbiAgICBjb25zdCB3b3JkcyA9IHRleHQuc3BsaXQoJyAnKTtcclxuICAgIGxldCB3b3JkQ291bnQgPSB3b3Jkcy5sZW5ndGg7XHJcbiAgICBsZXQgbGluZSA9ICcnO1xyXG4gICAgY29uc3QgYWRkTmV3TGluZXMgPSBbXTtcclxuICAgIGZvciAobGV0IG4gPSAwOyBuIDwgd29yZENvdW50OyBuICs9IDEpIHtcclxuICAgICAgICBsZXQgd29yZCA9IHdvcmRzW25dO1xyXG4gICAgICAgIGlmICgvXFxuLy50ZXN0KHdvcmRzW25dKSkge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHdvcmRzW25dLnNwbGl0KCdcXG4nKTtcclxuICAgICAgICAgICAgd29yZCA9IHBhcnRzLnNoaWZ0KCkgfHwgJyc7XHJcbiAgICAgICAgICAgIGFkZE5ld0xpbmVzLnB1c2gobiArIDEpO1xyXG4gICAgICAgICAgICB3b3Jkcy5zcGxpY2UobiArIDEsIDAsIHBhcnRzLmpvaW4oJ1xcbicpKTtcclxuICAgICAgICAgICAgd29yZENvdW50ICs9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRlc3RMaW5lID0gYCR7bGluZX0gJHt3b3JkfWAucmVwbGFjZSgvXiArLywgJycpLnJlcGxhY2UoLyArJC8sICcnKTtcclxuICAgICAgICBjb25zdCB0ZXN0TGluZVdpZHRoID0gdGV4dENvbnRleHQubWVhc3VyZVRleHQodGVzdExpbmUpLndpZHRoO1xyXG4gICAgICAgIGlmIChhZGROZXdMaW5lcy5pbmRleE9mKG4pID4gLTEgfHwgKHRlc3RMaW5lV2lkdGggPiBtYXhXaWR0aCAmJiBuID4gMCkpIHtcclxuICAgICAgICAgICAgdGV4dENvbnRleHQuZmlsbFRleHQobGluZSwgdGV4dFgsIHRleHRZKTtcclxuICAgICAgICAgICAgbGluZSA9IHdvcmQ7XHJcbiAgICAgICAgICAgIHRleHRZICs9IGxpbmVIZWlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsaW5lID0gdGVzdExpbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGV4dENvbnRleHQuZmlsbFRleHQobGluZSwgdGV4dFgsIHRleHRZKTtcclxuICAgIGNvbnN0IGhlaWdodCA9IHRleHRZICsgTWF0aC5tYXgobGluZUhlaWdodCwgZm9udFNpemUpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB0ZXh0SGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgICAgdGV4dERhdGE6IHRleHRDb250ZXh0LmdldEltYWdlRGF0YSgwLCAwLCBtYXhXaWR0aCwgaGVpZ2h0KSxcclxuICAgIH07XHJcbn07XHJcblxyXG5jb25zdCBjcmVhdGVJbWFnZUNhbnZhcyA9IChjb250ZW50LCBjb25mKSA9PiB7XHJcbiAgICBjb25zdCB7IHRleHRIZWlnaHQgfSA9IGNyZWF0ZVRleHREYXRhKGNvbnRlbnQsIHtcclxuICAgICAgICBtYXhXaWR0aDogY29uZi5tYXhXaWR0aCAtIGNvbmYubWFyZ2luICogMixcclxuICAgICAgICBmb250U2l6ZTogY29uZi5mb250U2l6ZSxcclxuICAgICAgICBsaW5lSGVpZ2h0OiBjb25mLmxpbmVIZWlnaHQsXHJcbiAgICAgICAgYmdDb2xvcjogY29uZi5iZ0NvbG9yLFxyXG4gICAgICAgIHRleHRDb2xvcjogY29uZi50ZXh0Q29sb3IsXHJcbiAgICAgICAgZm9udEZhbWlseTogY29uZi5mb250RmFtaWx5LFxyXG4gICAgICAgIGZvbnRQYXRoOiBjb25mLmZvbnRQYXRoLFxyXG4gICAgICAgIGZvbnRXZWlnaHQ6IGNvbmYuZm9udFdlaWdodCxcclxuICAgICAgICB0ZXh0QWxpZ246IGNvbmYudGV4dEFsaWduLFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB0ZXh0SGVpZ2h0V2l0aE1hcmdpbnMgPSB0ZXh0SGVpZ2h0ICsgY29uZi5tYXJnaW4gKiAyO1xyXG4gICAgaWYgKGNvbmYuY3VzdG9tSGVpZ2h0ICYmIGNvbmYuY3VzdG9tSGVpZ2h0IDwgdGV4dEhlaWdodFdpdGhNYXJnaW5zKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKCdUZXh0IGlzIGxvbmdlciB0aGFuIGN1c3RvbUhlaWdodCwgY2xpcHBpbmcgd2lsbCBvY2N1ci4nKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGhlaWdodCA9IGNvbmYuY3VzdG9tSGVpZ2h0IHx8IHRleHRIZWlnaHRXaXRoTWFyZ2lucztcclxuICAgIGNvbnN0IGNhbnZhcyA9IGNyZWF0ZUNhbnZhcyhjb25mLm1heFdpZHRoLCBoZWlnaHQgKyBjb25mLmJ1YmJsZVRhaWwuaGVpZ2h0KTtcclxuICAgIGNvbnN0IHsgdGV4dERhdGEgfSA9IGNyZWF0ZVRleHREYXRhKGNvbnRlbnQsIHtcclxuICAgICAgICBtYXhXaWR0aDogY29uZi5tYXhXaWR0aCAtIGNvbmYubWFyZ2luICogMixcclxuICAgICAgICBmb250U2l6ZTogY29uZi5mb250U2l6ZSxcclxuICAgICAgICBsaW5lSGVpZ2h0OiBjb25mLmxpbmVIZWlnaHQsXHJcbiAgICAgICAgYmdDb2xvcjogY29uZi5iZ0NvbG9yLFxyXG4gICAgICAgIHRleHRDb2xvcjogY29uZi50ZXh0Q29sb3IsXHJcbiAgICAgICAgZm9udEZhbWlseTogY29uZi5mb250RmFtaWx5LFxyXG4gICAgICAgIGZvbnRQYXRoOiBjb25mLmZvbnRQYXRoLFxyXG4gICAgICAgIGZvbnRXZWlnaHQ6IGNvbmYuZm9udFdlaWdodCxcclxuICAgICAgICB0ZXh0QWxpZ246IGNvbmYudGV4dEFsaWduLFxyXG4gICAgfSwgY2FudmFzKTtcclxuICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xyXG4gICAgY3R4Lmdsb2JhbEFscGhhID0gMTtcclxuICAgIGN0eC5maWxsU3R5bGUgPSBjb25mLmJnQ29sb3I7XHJcbiAgICBjdHguZmlsbFJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBoZWlnaHQpO1xyXG4gICAgaWYgKGNvbmYuYnViYmxlVGFpbC53aWR0aCAmJiBjb25mLmJ1YmJsZVRhaWwuaGVpZ2h0KSB7XHJcbiAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGN0eC5tb3ZlVG8oY2FudmFzLndpZHRoIC8gMiAtIGNvbmYuYnViYmxlVGFpbC53aWR0aCAvIDIsIGhlaWdodCk7XHJcbiAgICAgICAgY3R4LmxpbmVUbyhjYW52YXMud2lkdGggLyAyLCBjYW52YXMuaGVpZ2h0KTtcclxuICAgICAgICBjdHgubGluZVRvKGNhbnZhcy53aWR0aCAvIDIgKyBjb25mLmJ1YmJsZVRhaWwud2lkdGggLyAyLCBoZWlnaHQpO1xyXG4gICAgICAgIGN0eC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjdHguZmlsbFN0eWxlID0gY29uZi5iZ0NvbG9yO1xyXG4gICAgICAgIGN0eC5maWxsKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0ZXh0WCA9IGNvbmYubWFyZ2luO1xyXG4gICAgbGV0IHRleHRZID0gY29uZi5tYXJnaW47XHJcbiAgICBpZiAoY29uZi5jdXN0b21IZWlnaHQgJiYgY29uZi52ZXJ0aWNhbEFsaWduID09PSAnY2VudGVyJykge1xyXG4gICAgICAgIHRleHRZID1cclxuICAgICAgICAgICAgKGNvbmYuY3VzdG9tSGVpZ2h0IC0gdGV4dERhdGEuaGVpZ2h0KSAvIDIgK1xyXG4gICAgICAgICAgICAgICAgTWF0aC5tYXgoMCwgKGNvbmYubGluZUhlaWdodCAtIGNvbmYuZm9udFNpemUpIC8gMik7XHJcbiAgICB9XHJcbiAgICBjdHgucHV0SW1hZ2VEYXRhKHRleHREYXRhLCB0ZXh0WCwgdGV4dFkpO1xyXG4gICAgcmV0dXJuIGNhbnZhcztcclxufTtcclxuXHJcbmNvbnN0IGdlbmVyYXRlID0gYXN5bmMgKGNvbnRlbnQsIGNvbmZpZykgPT4ge1xyXG4gICAgY29uc3QgY29uZiA9IHsgLi4uZGVmYXVsdHMsIC4uLmNvbmZpZyB9O1xyXG4gICAgY29uc3QgY2FudmFzID0gY3JlYXRlSW1hZ2VDYW52YXMoY29udGVudCwgY29uZik7XHJcbiAgICByZXR1cm4gY2FudmFzLnRvRGF0YVVSTCgpO1xyXG59O1xyXG5cclxuY29uc3QgZ2VuZXJhdGVTeW5jID0gKGNvbnRlbnQsIGNvbmZpZykgPT4ge1xyXG4gICAgY29uc3QgY29uZiA9IHsgLi4uZGVmYXVsdHMsIC4uLmNvbmZpZyB9O1xyXG4gICAgY29uc3QgY2FudmFzID0gY3JlYXRlSW1hZ2VDYW52YXMoY29udGVudCwgY29uZik7XHJcbiAgICByZXR1cm4gY2FudmFzLnRvRGF0YVVSTCgpO1xyXG59O1xyXG5cclxuZXhwb3J0cy5nZW5lcmF0ZSA9IGdlbmVyYXRlO1xyXG5leHBvcnRzLmdlbmVyYXRlU3luYyA9IGdlbmVyYXRlU3luYzsiXX0=
|
|
183
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdGV4dC10by1pbWFnZS5qcyJdLCJuYW1lcyI6WyJjcmVhdGVDYW52YXMiLCJyZWdpc3RlckZvbnQiLCJyZXF1aXJlIiwiZGVmYXVsdHMiLCJiZ0NvbG9yIiwiY3VzdG9tSGVpZ2h0IiwiYnViYmxlVGFpbCIsIndpZHRoIiwiaGVpZ2h0IiwiZm9udEZhbWlseSIsImZvbnRQYXRoIiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwibGluZUhlaWdodCIsIm1hcmdpbiIsIm1heFdpZHRoIiwidGV4dEFsaWduIiwidGV4dENvbG9yIiwidmVydGljYWxBbGlnbiIsImNyZWF0ZVRleHREYXRhIiwidGV4dCIsImNvbmZpZyIsImNhbnZhcyIsImZhbWlseSIsInRleHRDYW52YXMiLCJ0ZXh0Q29udGV4dCIsImdldENvbnRleHQiLCJ0ZXh0WCIsInRleHRZIiwiaW5jbHVkZXMiLCJ0b0xvd2VyQ2FzZSIsImZpbGxTdHlsZSIsImZpbGxSZWN0IiwiZm9udCIsInRleHRCYXNlbGluZSIsIndvcmRzIiwic3BsaXQiLCJ3b3JkQ291bnQiLCJsZW5ndGgiLCJsaW5lIiwiYWRkTmV3TGluZXMiLCJuIiwid29yZCIsInRlc3QiLCJwYXJ0cyIsInNoaWZ0IiwicHVzaCIsInNwbGljZSIsImpvaW4iLCJ0ZXN0TGluZSIsInJlcGxhY2UiLCJ0ZXN0TGluZVdpZHRoIiwibWVhc3VyZVRleHQiLCJpbmRleE9mIiwiZmlsbFRleHQiLCJNYXRoIiwibWF4IiwidGV4dEhlaWdodCIsInRleHREYXRhIiwiZ2V0SW1hZ2VEYXRhIiwiY3JlYXRlSW1hZ2VDYW52YXMiLCJjb250ZW50IiwiY29uZiIsInRleHRIZWlnaHRXaXRoTWFyZ2lucyIsImNvbnNvbGUiLCJ3YXJuIiwiY3R4IiwiY2xlYXJSZWN0IiwiZ2xvYmFsQWxwaGEiLCJiZWdpblBhdGgiLCJtb3ZlVG8iLCJsaW5lVG8iLCJjbG9zZVBhdGgiLCJmaWxsIiwicHV0SW1hZ2VEYXRhIiwiZ2VuZXJhdGUiLCJ0b0Rh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O0FBTUFFLE9BQU8sQ0FBQ0gsUUFBUixHQUFtQkEsUUFBbkI7QUFDQUcsT0FBTyxDQUFDRCxZQUFSLEdBQXVCQSxZQUF2QiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgY3JlYXRlQ2FudmFzLCByZWdpc3RlckZvbnQgfSA9IHJlcXVpcmUoJ2NhbnZhcycpO1xuXG4vLyB0aGlzIGlzIHRleHQtdG8taW1hZ2UgdjUuMiBwYWNrYWdlIGluY2x1ZGVkIGRpcmVjdGx5IGluIG94eWdlbiBmb3IgZWFzaWVyIGNvbnRyb2wgb3ZlciBjYW52YXMgYW5kIG5hbiB2ZXJzaW9uc1xuXG5jb25zdCBkZWZhdWx0cyA9IHtcbiAgICBiZ0NvbG9yOiAnI2ZmZicsXG4gICAgY3VzdG9tSGVpZ2h0OiAwLFxuICAgIGJ1YmJsZVRhaWw6IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9LFxuICAgIGZvbnRGYW1pbHk6ICdBcmlhbCcsXG4gICAgZm9udFBhdGg6ICcnLFxuICAgIGZvbnRTaXplOiAxOCxcbiAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBsaW5lSGVpZ2h0OiAyOCxcbiAgICBtYXJnaW46IDEwLFxuICAgIG1heFdpZHRoOiA0MDAsXG4gICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gICAgdGV4dENvbG9yOiAnIzAwMCcsXG4gICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG59O1xuXG5jb25zdCBjcmVhdGVUZXh0RGF0YSA9ICh0ZXh0LCBjb25maWcsIGNhbnZhcykgPT4ge1xuICAgIGNvbnN0IHsgYmdDb2xvciwgZm9udEZhbWlseSwgZm9udFBhdGgsIGZvbnRTaXplLCBmb250V2VpZ2h0LCBsaW5lSGVpZ2h0LCBtYXhXaWR0aCwgdGV4dEFsaWduLCB0ZXh0Q29sb3IsIH0gPSBjb25maWc7XG4gICAgaWYgKGZvbnRQYXRoKSB7XG4gICAgICAgIHJlZ2lzdGVyRm9udChmb250UGF0aCwgeyBmYW1pbHk6IGZvbnRGYW1pbHkgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRleHRDYW52YXMgPSBjYW52YXMgfHwgY3JlYXRlQ2FudmFzKG1heFdpZHRoLCAxMDApO1xuICAgIGNvbnN0IHRleHRDb250ZXh0ID0gdGV4dENhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIGxldCB0ZXh0WCA9IDA7XG4gICAgbGV0IHRleHRZID0gMDtcbiAgICBpZiAoWydjZW50ZXInXS5pbmNsdWRlcyh0ZXh0QWxpZ24udG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgdGV4dFggPSBtYXhXaWR0aCAvIDI7XG4gICAgfVxuICAgIGlmIChbJ3JpZ2h0JywgJ2VuZCddLmluY2x1ZGVzKHRleHRBbGlnbi50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICB0ZXh0WCA9IG1heFdpZHRoO1xuICAgIH1cbiAgICB0ZXh0Q29udGV4dC50ZXh0QWxpZ24gPSB0ZXh0QWxpZ247XG4gICAgdGV4dENvbnRleHQuZmlsbFN0eWxlID0gYmdDb2xvcjtcbiAgICB0ZXh0Q29udGV4dC5maWxsUmVjdCgwLCAwLCB0ZXh0Q2FudmFzLndpZHRoLCB0ZXh0Q2FudmFzLmhlaWdodCk7XG4gICAgdGV4dENvbnRleHQuZmlsbFN0eWxlID0gdGV4dENvbG9yO1xuICAgIHRleHRDb250ZXh0LmZvbnQgPSBgJHtmb250V2VpZ2h0fSAke2ZvbnRTaXplfXB4ICR7Zm9udEZhbWlseX1gO1xuICAgIHRleHRDb250ZXh0LnRleHRCYXNlbGluZSA9ICd0b3AnO1xuICAgIGNvbnN0IHdvcmRzID0gdGV4dC5zcGxpdCgnICcpO1xuICAgIGxldCB3b3JkQ291bnQgPSB3b3Jkcy5sZW5ndGg7XG4gICAgbGV0IGxpbmUgPSAnJztcbiAgICBjb25zdCBhZGROZXdMaW5lcyA9IFtdO1xuICAgIGZvciAobGV0IG4gPSAwOyBuIDwgd29yZENvdW50OyBuICs9IDEpIHtcbiAgICAgICAgbGV0IHdvcmQgPSB3b3Jkc1tuXTtcbiAgICAgICAgaWYgKC9cXG4vLnRlc3Qod29yZHNbbl0pKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHdvcmRzW25dLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgIHdvcmQgPSBwYXJ0cy5zaGlmdCgpIHx8ICcnO1xuICAgICAgICAgICAgYWRkTmV3TGluZXMucHVzaChuICsgMSk7XG4gICAgICAgICAgICB3b3Jkcy5zcGxpY2UobiArIDEsIDAsIHBhcnRzLmpvaW4oJ1xcbicpKTtcbiAgICAgICAgICAgIHdvcmRDb3VudCArPSAxO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRlc3RMaW5lID0gYCR7bGluZX0gJHt3b3JkfWAucmVwbGFjZSgvXiArLywgJycpLnJlcGxhY2UoLyArJC8sICcnKTtcbiAgICAgICAgY29uc3QgdGVzdExpbmVXaWR0aCA9IHRleHRDb250ZXh0Lm1lYXN1cmVUZXh0KHRlc3RMaW5lKS53aWR0aDtcbiAgICAgICAgaWYgKGFkZE5ld0xpbmVzLmluZGV4T2YobikgPiAtMSB8fCAodGVzdExpbmVXaWR0aCA+IG1heFdpZHRoICYmIG4gPiAwKSkge1xuICAgICAgICAgICAgdGV4dENvbnRleHQuZmlsbFRleHQobGluZSwgdGV4dFgsIHRleHRZKTtcbiAgICAgICAgICAgIGxpbmUgPSB3b3JkO1xuICAgICAgICAgICAgdGV4dFkgKz0gbGluZUhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxpbmUgPSB0ZXN0TGluZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0ZXh0Q29udGV4dC5maWxsVGV4dChsaW5lLCB0ZXh0WCwgdGV4dFkpO1xuICAgIGNvbnN0IGhlaWdodCA9IHRleHRZICsgTWF0aC5tYXgobGluZUhlaWdodCwgZm9udFNpemUpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHRleHRIZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgdGV4dERhdGE6IHRleHRDb250ZXh0LmdldEltYWdlRGF0YSgwLCAwLCBtYXhXaWR0aCwgaGVpZ2h0KSxcbiAgICB9O1xufTtcblxuY29uc3QgY3JlYXRlSW1hZ2VDYW52YXMgPSAoY29udGVudCwgY29uZikgPT4ge1xuICAgIGNvbnN0IHsgdGV4dEhlaWdodCB9ID0gY3JlYXRlVGV4dERhdGEoY29udGVudCwge1xuICAgICAgICBtYXhXaWR0aDogY29uZi5tYXhXaWR0aCAtIGNvbmYubWFyZ2luICogMixcbiAgICAgICAgZm9udFNpemU6IGNvbmYuZm9udFNpemUsXG4gICAgICAgIGxpbmVIZWlnaHQ6IGNvbmYubGluZUhlaWdodCxcbiAgICAgICAgYmdDb2xvcjogY29uZi5iZ0NvbG9yLFxuICAgICAgICB0ZXh0Q29sb3I6IGNvbmYudGV4dENvbG9yLFxuICAgICAgICBmb250RmFtaWx5OiBjb25mLmZvbnRGYW1pbHksXG4gICAgICAgIGZvbnRQYXRoOiBjb25mLmZvbnRQYXRoLFxuICAgICAgICBmb250V2VpZ2h0OiBjb25mLmZvbnRXZWlnaHQsXG4gICAgICAgIHRleHRBbGlnbjogY29uZi50ZXh0QWxpZ24sXG4gICAgfSk7XG4gICAgY29uc3QgdGV4dEhlaWdodFdpdGhNYXJnaW5zID0gdGV4dEhlaWdodCArIGNvbmYubWFyZ2luICogMjtcbiAgICBpZiAoY29uZi5jdXN0b21IZWlnaHQgJiYgY29uZi5jdXN0b21IZWlnaHQgPCB0ZXh0SGVpZ2h0V2l0aE1hcmdpbnMpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdUZXh0IGlzIGxvbmdlciB0aGFuIGN1c3RvbUhlaWdodCwgY2xpcHBpbmcgd2lsbCBvY2N1ci4nKTtcbiAgICB9XG4gICAgY29uc3QgaGVpZ2h0ID0gY29uZi5jdXN0b21IZWlnaHQgfHwgdGV4dEhlaWdodFdpdGhNYXJnaW5zO1xuICAgIGNvbnN0IGNhbnZhcyA9IGNyZWF0ZUNhbnZhcyhjb25mLm1heFdpZHRoLCBoZWlnaHQgKyBjb25mLmJ1YmJsZVRhaWwuaGVpZ2h0KTtcbiAgICBjb25zdCB7IHRleHREYXRhIH0gPSBjcmVhdGVUZXh0RGF0YShjb250ZW50LCB7XG4gICAgICAgIG1heFdpZHRoOiBjb25mLm1heFdpZHRoIC0gY29uZi5tYXJnaW4gKiAyLFxuICAgICAgICBmb250U2l6ZTogY29uZi5mb250U2l6ZSxcbiAgICAgICAgbGluZUhlaWdodDogY29uZi5saW5lSGVpZ2h0LFxuICAgICAgICBiZ0NvbG9yOiBjb25mLmJnQ29sb3IsXG4gICAgICAgIHRleHRDb2xvcjogY29uZi50ZXh0Q29sb3IsXG4gICAgICAgIGZvbnRGYW1pbHk6IGNvbmYuZm9udEZhbWlseSxcbiAgICAgICAgZm9udFBhdGg6IGNvbmYuZm9udFBhdGgsXG4gICAgICAgIGZvbnRXZWlnaHQ6IGNvbmYuZm9udFdlaWdodCxcbiAgICAgICAgdGV4dEFsaWduOiBjb25mLnRleHRBbGlnbixcbiAgICB9LCBjYW52YXMpO1xuICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIGN0eC5jbGVhclJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcbiAgICBjdHguZ2xvYmFsQWxwaGEgPSAxO1xuICAgIGN0eC5maWxsU3R5bGUgPSBjb25mLmJnQ29sb3I7XG4gICAgY3R4LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgaGVpZ2h0KTtcbiAgICBpZiAoY29uZi5idWJibGVUYWlsLndpZHRoICYmIGNvbmYuYnViYmxlVGFpbC5oZWlnaHQpIHtcbiAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xuICAgICAgICBjdHgubW92ZVRvKGNhbnZhcy53aWR0aCAvIDIgLSBjb25mLmJ1YmJsZVRhaWwud2lkdGggLyAyLCBoZWlnaHQpO1xuICAgICAgICBjdHgubGluZVRvKGNhbnZhcy53aWR0aCAvIDIsIGNhbnZhcy5oZWlnaHQpO1xuICAgICAgICBjdHgubGluZVRvKGNhbnZhcy53aWR0aCAvIDIgKyBjb25mLmJ1YmJsZVRhaWwud2lkdGggLyAyLCBoZWlnaHQpO1xuICAgICAgICBjdHguY2xvc2VQYXRoKCk7XG4gICAgICAgIGN0eC5maWxsU3R5bGUgPSBjb25mLmJnQ29sb3I7XG4gICAgICAgIGN0eC5maWxsKCk7XG4gICAgfVxuICAgIGNvbnN0IHRleHRYID0gY29uZi5tYXJnaW47XG4gICAgbGV0IHRleHRZID0gY29uZi5tYXJnaW47XG4gICAgaWYgKGNvbmYuY3VzdG9tSGVpZ2h0ICYmIGNvbmYudmVydGljYWxBbGlnbiA9PT0gJ2NlbnRlcicpIHtcbiAgICAgICAgdGV4dFkgPVxuICAgICAgICAgICAgKGNvbmYuY3VzdG9tSGVpZ2h0IC0gdGV4dERhdGEuaGVpZ2h0KSAvIDIgK1xuICAgICAgICAgICAgICAgIE1hdGgubWF4KDAsIChjb25mLmxpbmVIZWlnaHQgLSBjb25mLmZvbnRTaXplKSAvIDIpO1xuICAgIH1cbiAgICBjdHgucHV0SW1hZ2VEYXRhKHRleHREYXRhLCB0ZXh0WCwgdGV4dFkpO1xuICAgIHJldHVybiBjYW52YXM7XG59O1xuXG5jb25zdCBnZW5lcmF0ZSA9IGFzeW5jIChjb250ZW50LCBjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25mID0geyAuLi5kZWZhdWx0cywgLi4uY29uZmlnIH07XG4gICAgY29uc3QgY2FudmFzID0gY3JlYXRlSW1hZ2VDYW52YXMoY29udGVudCwgY29uZik7XG4gICAgcmV0dXJuIGNhbnZhcy50b0RhdGFVUkwoKTtcbn07XG5cbmNvbnN0IGdlbmVyYXRlU3luYyA9IChjb250ZW50LCBjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25mID0geyAuLi5kZWZhdWx0cywgLi4uY29uZmlnIH07XG4gICAgY29uc3QgY2FudmFzID0gY3JlYXRlSW1hZ2VDYW52YXMoY29udGVudCwgY29uZik7XG4gICAgcmV0dXJuIGNhbnZhcy50b0RhdGFVUkwoKTtcbn07XG5cbmV4cG9ydHMuZ2VuZXJhdGUgPSBnZW5lcmF0ZTtcbmV4cG9ydHMuZ2VuZXJhdGVTeW5jID0gZ2VuZXJhdGVTeW5jOyJdfQ==
|