oxygen-cli 1.40.2-beta.1 → 1.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1755 -1742
- package/LICENSE +672 -672
- package/README.md +37 -37
- package/build/core/OxygenCore.js +1 -1
- package/build/core/OxygenEvents.js +1 -1
- 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 +1 -1
- package/build/lib/cli.js +1 -1
- 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 +1 -1
- 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 +1 -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 +74 -74
- package/build/ox_modules/module-mongo.js +82 -82
- 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 +52 -33
- 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 +94 -94
- 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 +73 -42
- 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 +1 -1
- package/build/reporter/ReporterBase.js +1 -1
- package/build/reporter/WebSocketReporter.js +1 -1
- 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 +1 -1
- package/build/runners/oxygen/worker.js +1 -1
- package/config/default.json +6 -6
- package/package.json +139 -139
- 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/log.txt +0 -1614
- package/reports/2025-06-08_231627/report.html +0 -440
- package/reports/2025-06-09_223615/report.html +0 -440
- package/transpiled/mongodb/etc/prepare.js +0 -18
- package/transpiled/mongodb/lib/admin.js +0 -182
- package/transpiled/mongodb/lib/beta.js +0 -26
- package/transpiled/mongodb/lib/bson.js +0 -220
- package/transpiled/mongodb/lib/bulk/common.js +0 -1041
- package/transpiled/mongodb/lib/bulk/ordered.js +0 -76
- package/transpiled/mongodb/lib/bulk/unordered.js +0 -102
- package/transpiled/mongodb/lib/change_stream.js +0 -517
- package/transpiled/mongodb/lib/client-side-encryption/auto_encrypter.js +0 -329
- package/transpiled/mongodb/lib/client-side-encryption/client_encryption.js +0 -779
- package/transpiled/mongodb/lib/client-side-encryption/crypto_callbacks.js +0 -95
- package/transpiled/mongodb/lib/client-side-encryption/errors.js +0 -171
- package/transpiled/mongodb/lib/client-side-encryption/mongocryptd_manager.js +0 -98
- package/transpiled/mongodb/lib/client-side-encryption/providers/aws.js +0 -34
- package/transpiled/mongodb/lib/client-side-encryption/providers/azure.js +0 -186
- package/transpiled/mongodb/lib/client-side-encryption/providers/gcp.js +0 -29
- package/transpiled/mongodb/lib/client-side-encryption/providers/index.js +0 -58
- package/transpiled/mongodb/lib/client-side-encryption/state_machine.js +0 -505
- package/transpiled/mongodb/lib/cmap/auth/auth_provider.js +0 -63
- package/transpiled/mongodb/lib/cmap/auth/aws_temporary_credentials.js +0 -167
- package/transpiled/mongodb/lib/cmap/auth/gssapi.js +0 -207
- package/transpiled/mongodb/lib/cmap/auth/mongo_credentials.js +0 -193
- package/transpiled/mongodb/lib/cmap/auth/mongodb_aws.js +0 -181
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js +0 -101
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js +0 -81
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.js +0 -174
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.js +0 -59
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js +0 -58
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js +0 -138
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js +0 -42
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.js +0 -71
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js +0 -34
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc.js +0 -111
- package/transpiled/mongodb/lib/cmap/auth/plain.js +0 -43
- package/transpiled/mongodb/lib/cmap/auth/providers.js +0 -22
- package/transpiled/mongodb/lib/cmap/auth/scram.js +0 -318
- package/transpiled/mongodb/lib/cmap/auth/x509.js +0 -61
- package/transpiled/mongodb/lib/cmap/command_monitoring_events.js +0 -266
- package/transpiled/mongodb/lib/cmap/commands.js +0 -605
- package/transpiled/mongodb/lib/cmap/connect.js +0 -418
- package/transpiled/mongodb/lib/cmap/connection.js +0 -673
- package/transpiled/mongodb/lib/cmap/connection_pool.js +0 -688
- package/transpiled/mongodb/lib/cmap/connection_pool_events.js +0 -254
- package/transpiled/mongodb/lib/cmap/errors.js +0 -128
- package/transpiled/mongodb/lib/cmap/handshake/client_metadata.js +0 -278
- package/transpiled/mongodb/lib/cmap/metrics.js +0 -67
- package/transpiled/mongodb/lib/cmap/stream_description.js +0 -74
- package/transpiled/mongodb/lib/cmap/wire_protocol/compression.js +0 -196
- package/transpiled/mongodb/lib/cmap/wire_protocol/constants.js +0 -19
- package/transpiled/mongodb/lib/cmap/wire_protocol/on_data.js +0 -144
- package/transpiled/mongodb/lib/cmap/wire_protocol/on_demand/document.js +0 -278
- package/transpiled/mongodb/lib/cmap/wire_protocol/responses.js +0 -376
- package/transpiled/mongodb/lib/cmap/wire_protocol/shared.js +0 -49
- package/transpiled/mongodb/lib/collection.js +0 -852
- package/transpiled/mongodb/lib/connection_string.js +0 -1452
- package/transpiled/mongodb/lib/constants.js +0 -162
- package/transpiled/mongodb/lib/cursor/abstract_cursor.js +0 -1082
- package/transpiled/mongodb/lib/cursor/aggregation_cursor.js +0 -227
- package/transpiled/mongodb/lib/cursor/change_stream_cursor.js +0 -136
- package/transpiled/mongodb/lib/cursor/client_bulk_write_cursor.js +0 -69
- package/transpiled/mongodb/lib/cursor/find_cursor.js +0 -476
- package/transpiled/mongodb/lib/cursor/list_collections_cursor.js +0 -48
- package/transpiled/mongodb/lib/cursor/list_indexes_cursor.js +0 -46
- package/transpiled/mongodb/lib/cursor/list_search_indexes_cursor.js +0 -30
- package/transpiled/mongodb/lib/cursor/run_command_cursor.js +0 -125
- package/transpiled/mongodb/lib/db.js +0 -467
- package/transpiled/mongodb/lib/deps.js +0 -174
- package/transpiled/mongodb/lib/encrypter.js +0 -129
- package/transpiled/mongodb/lib/error.js +0 -1550
- package/transpiled/mongodb/lib/explain.js +0 -122
- package/transpiled/mongodb/lib/gridfs/download.js +0 -369
- package/transpiled/mongodb/lib/gridfs/index.js +0 -240
- package/transpiled/mongodb/lib/gridfs/upload.js +0 -446
- package/transpiled/mongodb/lib/index.js +0 -975
- package/transpiled/mongodb/lib/mongo_client.js +0 -626
- package/transpiled/mongodb/lib/mongo_client_auth_providers.js +0 -98
- package/transpiled/mongodb/lib/mongo_logger.js +0 -812
- package/transpiled/mongodb/lib/mongo_types.js +0 -71
- package/transpiled/mongodb/lib/operations/aggregate.js +0 -129
- package/transpiled/mongodb/lib/operations/bulk_write.js +0 -48
- package/transpiled/mongodb/lib/operations/client_bulk_write/client_bulk_write.js +0 -96
- package/transpiled/mongodb/lib/operations/client_bulk_write/command_builder.js +0 -409
- package/transpiled/mongodb/lib/operations/client_bulk_write/common.js +0 -5
- package/transpiled/mongodb/lib/operations/client_bulk_write/executor.js +0 -144
- package/transpiled/mongodb/lib/operations/client_bulk_write/results_merger.js +0 -228
- package/transpiled/mongodb/lib/operations/collections.js +0 -49
- package/transpiled/mongodb/lib/operations/command.js +0 -102
- package/transpiled/mongodb/lib/operations/count.js +0 -60
- package/transpiled/mongodb/lib/operations/create_collection.js +0 -109
- package/transpiled/mongodb/lib/operations/delete.js +0 -134
- package/transpiled/mongodb/lib/operations/distinct.js +0 -77
- package/transpiled/mongodb/lib/operations/drop.js +0 -102
- package/transpiled/mongodb/lib/operations/estimated_document_count.js +0 -47
- package/transpiled/mongodb/lib/operations/execute_operation.js +0 -251
- package/transpiled/mongodb/lib/operations/find.js +0 -197
- package/transpiled/mongodb/lib/operations/find_and_modify.js +0 -191
- package/transpiled/mongodb/lib/operations/get_more.js +0 -84
- package/transpiled/mongodb/lib/operations/indexes.js +0 -197
- package/transpiled/mongodb/lib/operations/insert.js +0 -138
- package/transpiled/mongodb/lib/operations/is_capped.js +0 -44
- package/transpiled/mongodb/lib/operations/kill_cursors.js +0 -58
- package/transpiled/mongodb/lib/operations/list_collections.js +0 -66
- package/transpiled/mongodb/lib/operations/list_databases.js +0 -56
- package/transpiled/mongodb/lib/operations/operation.js +0 -88
- package/transpiled/mongodb/lib/operations/options_operation.js +0 -44
- package/transpiled/mongodb/lib/operations/profiling_level.js +0 -42
- package/transpiled/mongodb/lib/operations/remove_user.js +0 -35
- package/transpiled/mongodb/lib/operations/rename.js +0 -48
- package/transpiled/mongodb/lib/operations/run_command.js +0 -64
- package/transpiled/mongodb/lib/operations/search_indexes/create.js +0 -41
- package/transpiled/mongodb/lib/operations/search_indexes/drop.js +0 -51
- package/transpiled/mongodb/lib/operations/search_indexes/update.js +0 -40
- package/transpiled/mongodb/lib/operations/set_profiling_level.js +0 -70
- package/transpiled/mongodb/lib/operations/stats.js +0 -39
- package/transpiled/mongodb/lib/operations/update.js +0 -218
- package/transpiled/mongodb/lib/operations/validate_collection.js +0 -49
- package/transpiled/mongodb/lib/read_concern.js +0 -92
- package/transpiled/mongodb/lib/read_preference.js +0 -215
- package/transpiled/mongodb/lib/resource_management.js +0 -74
- package/transpiled/mongodb/lib/sdam/common.js +0 -53
- package/transpiled/mongodb/lib/sdam/events.js +0 -177
- package/transpiled/mongodb/lib/sdam/monitor.js +0 -656
- package/transpiled/mongodb/lib/sdam/server.js +0 -463
- package/transpiled/mongodb/lib/sdam/server_description.js +0 -196
- package/transpiled/mongodb/lib/sdam/server_selection.js +0 -283
- package/transpiled/mongodb/lib/sdam/server_selection_events.js +0 -112
- package/transpiled/mongodb/lib/sdam/srv_polling.js +0 -139
- package/transpiled/mongodb/lib/sdam/topology.js +0 -833
- package/transpiled/mongodb/lib/sdam/topology_description.js +0 -447
- package/transpiled/mongodb/lib/sessions.js +0 -988
- package/transpiled/mongodb/lib/sort.js +0 -123
- package/transpiled/mongodb/lib/timeout.js +0 -349
- package/transpiled/mongodb/lib/transactions.js +0 -149
- package/transpiled/mongodb/lib/utils.js +0 -1502
- package/transpiled/mongodb/lib/write_concern.js +0 -115
package/build/lib/util.js
CHANGED
|
@@ -446,4 +446,4 @@ var self = module.exports = {
|
|
|
446
446
|
}
|
|
447
447
|
}
|
|
448
448
|
};
|
|
449
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdXRpbC5qcyJdLCJuYW1lcyI6WyJwYXRoIiwicmVxdWlyZSIsImZzIiwibW9tZW50IiwiY3J5cHRvIiwidXRpbCIsInBhc3N3b3JkIiwiZW5jcnlwdGlvbktleSIsImtleSIsInNjcnlwdFN5bmMiLCJpdiIsIkJ1ZmZlciIsImFsbG9jIiwiYWxnb3JpdGhtIiwiZG93bmxvYWQiLCJyZXF1ZXN0IiwiRGVjcnlwdFJlc3VsdCIsInJlc3VsdCIsImRlY3J5cHRSZXN1bHQiLCJnZXREZWNyeXB0UmVzdWx0IiwiRFVNTVlfSE9PS1MiLCJiZWZvcmVUZXN0IiwiYmVmb3JlU3VpdGUiLCJiZWZvcmVDYXNlIiwiYmVmb3JlQ29tbWFuZCIsImFmdGVyQ29tbWFuZCIsImFmdGVyVGVzdCIsImFmdGVyU3VpdGUiLCJhZnRlckNhc2UiLCJDQl9BVFRBQ0hNRU5UU19ESVJfTkFNRSIsIkRPV05MT0FEX1JFVFJJRVMiLCJET1dOTE9BRF9SRVRSWV9XQUlUX1RJTUUiLCJnZXRWaWRlb0F0dGFjaG1lbnRQYXRoIiwiZmlsZU5hbWUiLCJvcHRpb25zIiwiY3dkIiwiZ2V0Q3dkIiwiYXR0YWNobWVudHNEaXJQYXRoIiwiam9pbiIsImV4aXN0c1N5bmMiLCJta2RpclN5bmMiLCJwcm9jZXNzIiwicm9vdFBhdGgiLCJ0cmltIiwic2VsZiIsIm1vZHVsZSIsImV4cG9ydHMiLCJnZW5lcmF0ZVVuaXF1ZUlkIiwicmFuZG9tQnl0ZXMiLCJ0b1N0cmluZyIsImdldFRpbWVTdGFtcCIsInV0YyIsInZhbHVlT2YiLCJnZW5lcmF0ZVRlc3RTdWl0ZUZyb21Kc29uIiwic3VpdGVEZWYiLCJ0ZXN0Q29uZmlnIiwiaXRlcmF0aW9uQ291bnQiLCJzdWl0ZSIsImlkIiwibmFtZSIsIml0ZXJhdGlvbnMiLCJzdWl0ZUZpbGVQYXRoIiwidGFyZ2V0IiwicGFyYW1NYW5hZ2VyIiwiZ2V0UGFyYW1ldGVyTWFuYWdlciIsInBhcmFtZXRlcnMiLCJnZXRNb2RlIiwicm93cyIsImNhcGFiaWxpdGllcyIsImVudmlyb25tZW50IiwicGFyYWxsZWwiLCJjb25jdXJyZW5jeSIsImNhc2VzIiwiZm9yRWFjaCIsImNhc2VEZWYiLCJ0YyIsImdldEZpbGVOYW1lV2l0aG91dEV4dCIsInJlc29sdmVQYXRoIiwiZm9ybWF0IiwicHVzaCIsImdlbmVyYXRlVGVzdFN1aXRlRnJvbUpTRmlsZSIsImZpbGVQYXRoIiwicGFyYW1GaWxlIiwicGFyYW1Nb2RlIiwibm9QYXJhbUF1dG9TZWFyY2giLCJmaWxlTmFtZU5vRXh0IiwidGVzdGNhc2UiLCJyZW9wZW5TZXNzaW9uIiwiZGlybmFtZSIsImZpbGUiLCJtb2RlIiwibWFpbkZpbGVQYXRoIiwicGFyYW1PcHRzIiwiYXV0b1NlYXJjaCIsInBhcmFtRmlsZVBhdGgiLCJpc0Fic29sdXRlIiwibG9hZFBhcmFtZXRlck1hbmFnZXIiLCJnZW5lcmF0ZVRlc3RTdWl0ZUZyb21Kc29uRmlsZSIsImJhc2VuYW1lIiwiZmlsZUV4dCIsImV4dG5hbWUiLCJmaWxlUGF0aE5vRXh0Iiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJtYWluRmlsZSIsImNzdlBhcmFtRmlsZSIsInR4dFBhcmFtRmlsZSIsInhsc1BhcmFtRmlsZSIsInhsc3hQYXJhbUZpbGUiLCJpbml0IiwicGF0aFRvUmVzb2x2ZSIsImJhc2VGb2xkZXIiLCJyZXNvbHZlIiwibWFrZVNlcmlhbGl6YWJsZSIsImVyciIsImRlc3Ryb3lDaXJjdWxhciIsImZyb20iLCJzZWVuIiwidG8iLCJBcnJheSIsImlzQXJyYXkiLCJPYmplY3QiLCJrZXlzIiwiaW5kZXhPZiIsInNsaWNlIiwiZ2V0TWV0aG9kU2lnbmF0dXJlIiwibW9kdWxlTmFtZSIsIm1ldGhvZE5hbWUiLCJtZXRob2RBcmdzIiwic3RyaW5naWZ5IiwiYXJncyIsImluZGVudGF0aW9uIiwiU3RyaW5nIiwibGVuZ3RoIiwic3RyIiwiSlNPTiIsInZhbHVlIiwiRXJyb3IiLCJSZWdFeHAiLCJzb3VyY2UiLCJmbGFncyIsInJlcGxhY2UiLCJlbmRzV2l0aCIsImUiLCJjb25zb2xlIiwid2FybiIsImluc3BlY3QiLCJkZXB0aCIsImlzSW5EZWJ1Z01vZGUiLCJsb2FkVGVzdEhvb2tzIiwiaG9va3MiLCJleGVjdXRlVGVzdEhvb2siLCJtZXRob2QiLCJpbmNsdWRlcyIsImdsb2JhbCIsIl9sYXN0VHJhbnNhY3Rpb25OYW1lIiwiY2hhaUFuZE1vY2tlcnlMb2FkZWQiLCJjaGFpIiwibW9ja2VyeSIsImVuYWJsZSIsInVzZUNsZWFuQ2FjaGUiLCJ3YXJuT25SZXBsYWNlIiwid2Fybk9uVW5yZWdpc3RlcmVkIiwicmVnaXN0ZXJNb2NrIiwiYXBwbHkiLCJ1bmRlZmluZWQiLCJlcnJvciIsImdldE94TW9kdWxlc0RpciIsIl9fZGlybmFtZSIsImhvb2tMb2dzIiwibG9nZ2VyIiwib3JpZ2xvZyIsImxvZyIsIm9yaWdEZWJ1ZyIsImRlYnVnIiwib3JpZ0luZm8iLCJpbmZvIiwib3JpZ1dhcm4iLCJvcmlnRXJyb3IiLCJwcm9jZXNzQXJncyIsImFyZ3VtZW50QXJyYXkiLCJtYXAiLCJpdGVtIiwibWFrZVRyYW5zYWN0aW9uRmFpbGVkSWZTdGVwRmFpbGVkIiwic3RlcHMiLCJsYXN0RmluZGVkVHJhbnNhY3Rpb25JbmRleCIsIm5ld1N0ZXBzIiwiaWR4Iiwic3RhdHVzIiwiZGVjcnlwdCIsInRleHQiLCJlbmNyeXB0ZWRUZXh0IiwiZGVjaXBoZXIiLCJjcmVhdGVEZWNpcGhlcml2IiwiZGVjcnlwdGVkIiwidXBkYXRlIiwiY29uY2F0IiwiZmluYWwiLCJyZXRWYWwiLCJPeHlnZW5FcnJvciIsImVycm9ySGVscGVyIiwiZXJyb3JDb2RlIiwiQ1JZUFRPX0VSUk9SIiwiZW5jcnlwdCIsImNpcGhlciIsImNyZWF0ZUNpcGhlcml2IiwiZW5jcnlwdGVkIiwic2xlZXAiLCJ0aW1lb3V0IiwiUHJvbWlzZSIsInNldFRpbWVvdXQiLCJkb3dubG9hZFZpZGVvIiwidmlkZW9VcmwiLCJsb2NhbFZpZGVvRmlsZVBhdGgiLCJpIiwid3JpdGVGaWxlU3luYyIsInVybCIsImpz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Y2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICovXG5cbi8qKlxuICogSGVscGVyIG1vZHVsZSBmb3IgaW50ZXJuYWwgT3h5Z2VuIHVzZVxuICovXG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xuY29uc3QgbW9tZW50ID0gcmVxdWlyZSgnbW9tZW50Jyk7XG5jb25zdCBjcnlwdG8gPSByZXF1aXJlKCdjcnlwdG8nKTtcbmNvbnN0IHV0aWwgPSByZXF1aXJlKCd1dGlsJyk7XG5jb25zdCBwYXNzd29yZCA9IHJlcXVpcmUoJy4uLy4uL3BhY2thZ2UuanNvbicpLmVuY3J5cHRpb25LZXk7XG5jb25zdCBrZXkgPSBjcnlwdG8uc2NyeXB0U3luYyhwYXNzd29yZCwgJ0dmRycsIDI0KTtcbmNvbnN0IGl2ID0gQnVmZmVyLmFsbG9jKDE2LCAwKTtcbmNvbnN0IGFsZ29yaXRobSA9ICdhZXMtMTkyLWNiYyc7XG5jb25zdCBkb3dubG9hZCA9IHJlcXVpcmUoJ2Rvd25sb2FkJyk7XG5jb25zdCByZXF1ZXN0ID0gcmVxdWlyZSgncmVxdWVzdCcpO1xuXG5pbXBvcnQgT3h5Z2VuRXJyb3IgZnJvbSAnLi4vZXJyb3JzL094eWdlbkVycm9yJztcbmltcG9ydCBlcnJvckhlbHBlciBmcm9tICcuLi9lcnJvcnMvaGVscGVyJztcblxuZnVuY3Rpb24gRGVjcnlwdFJlc3VsdChyZXN1bHQpIHtcbiAgICBjb25zdCBkZWNyeXB0UmVzdWx0ID0gcmVzdWx0O1xuXG4gICAgdGhpcy5nZXREZWNyeXB0UmVzdWx0ID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gZGVjcnlwdFJlc3VsdDtcbiAgICB9O1xufVxuXG5jb25zdCBEVU1NWV9IT09LUyA9IHtcbiAgICBiZWZvcmVUZXN0OiAoKSA9PiB7fSxcbiAgICBiZWZvcmVTdWl0ZTogKCkgPT4ge30sXG4gICAgYmVmb3JlQ2FzZTogKCkgPT4ge30sXG4gICAgYmVmb3JlQ29tbWFuZDogKCkgPT4ge30sXG4gICAgYWZ0ZXJDb21tYW5kOiAoKSA9PiB7fSxcbiAgICBhZnRlclRlc3Q6ICgpID0+IHt9LFxuICAgIGFmdGVyU3VpdGU6ICgpID0+IHt9LFxuICAgIGFmdGVyQ2FzZTogKCkgPT4ge30sXG59O1xuXG5jb25zdCBDQl9BVFRBQ0hNRU5UU19ESVJfTkFNRSA9ICcuY2ItYXR0YWNobWVudHMnO1xuY29uc3QgRE9XTkxPQURfUkVUUklFUyA9IDQwO1xuY29uc3QgRE9XTkxPQURfUkVUUllfV0FJVF9USU1FID0gMjUwMDtcblxuZnVuY3Rpb24gZ2V0VmlkZW9BdHRhY2htZW50UGF0aChmaWxlTmFtZSwgb3B0aW9ucykge1xuICAgIGNvbnN0IGN3ZCA9IGdldEN3ZChvcHRpb25zKTtcbiAgICBjb25zdCBhdHRhY2htZW50c0RpclBhdGggPSBwYXRoLmpvaW4oY3dkLCBDQl9BVFRBQ0hNRU5UU19ESVJfTkFNRSk7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGF0dGFjaG1lbnRzRGlyUGF0aCkpIHtcbiAgICAgICAgZnMubWtkaXJTeW5jKGF0dGFjaG1lbnRzRGlyUGF0aCk7XG4gICAgfVxuICAgIHJldHVybiBwYXRoLmpvaW4oYXR0YWNobWVudHNEaXJQYXRoLCBmaWxlTmFtZSk7XG59XG5cbmNvbnN0IGdldEN3ZCA9IChvcHRpb25zKSA9PiB7XG4gICAgbGV0IGN3ZCA9IHByb2Nlc3MuY3dkKCk7XG5cbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmN3ZCkge1xuICAgICAgICBjd2QgPSBvcHRpb25zLmN3ZDtcbiAgICB9XG4gICAgZWxzZSBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnJvb3RQYXRoKSB7XG4gICAgICAgIGN3ZCA9IG9wdGlvbnMucm9vdFBhdGg7XG4gICAgfVxuXG4gICAgcmV0dXJuIGN3ZC50cmltKCk7XG59O1xuXG52YXIgc2VsZiA9IG1vZHVsZS5leHBvcnRzID0ge1xuXG4gICAgZ2VuZXJhdGVVbmlxdWVJZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcnlwdG8ucmFuZG9tQnl0ZXMoNCkudG9TdHJpbmcoJ2hleCcpO1xuICAgIH0sXG5cbiAgICBnZXRUaW1lU3RhbXA6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbW9tZW50LnV0YygpLnZhbHVlT2YoKTtcbiAgICB9LFxuXG4gICAgZ2VuZXJhdGVUZXN0U3VpdGVGcm9tSnNvbjogYXN5bmMgZnVuY3Rpb24oc3VpdGVEZWYsIHRlc3RDb25maWcsIGl0ZXJhdGlvbkNvdW50ID0gMSkge1xuICAgICAgICB2YXIgc3VpdGUgPSBuZXcgcmVxdWlyZSgnLi4vbW9kZWwvdGVzdHN1aXRlLmpzJykoKTtcbiAgICAgICAgc3VpdGUuaWQgPSBudWxsO1xuICAgICAgICBzdWl0ZS5uYW1lID0gc3VpdGVEZWYubmFtZTtcbiAgICAgICAgc3VpdGUuaWQgPSBzdWl0ZURlZi5pZDtcbiAgICAgICAgc3VpdGUuaXRlcmF0aW9uQ291bnQgPSBzdWl0ZURlZi5pdGVyYXRpb25zIHx8IHN1aXRlRGVmLml0ZXJhdGlvbkNvdW50IHx8IHRlc3RDb25maWcuaXRlcmF0aW9ucyB8fCBpdGVyYXRpb25Db3VudDtcbiAgICAgICAgY29uc3Qgc3VpdGVGaWxlUGF0aCA9IHN1aXRlRGVmLnBhdGggfHwgcGF0aC5qb2luKHRlc3RDb25maWcudGFyZ2V0LmN3ZCwgJ3N1aXRlcycsIGAke3N1aXRlRGVmLm5hbWV9Lmpzb25gKTtcbiAgICAgICAgc3VpdGUucGFyYW1NYW5hZ2VyID0gYXdhaXQgc2VsZi5nZXRQYXJhbWV0ZXJNYW5hZ2VyKHN1aXRlRmlsZVBhdGgsIHRlc3RDb25maWcucGFyYW1ldGVycywgdGVzdENvbmZpZy50YXJnZXQuY3dkKTtcbiAgICAgICAgaWYgKHN1aXRlLnBhcmFtTWFuYWdlciAmJiBzdWl0ZS5wYXJhbU1hbmFnZXIuZ2V0TW9kZSgpID09ICdhbGwnKSB7XG4gICAgICAgICAgICBzdWl0ZS5pdGVyYXRpb25Db3VudCA9IHN1aXRlLnBhcmFtTWFuYWdlci5yb3dzO1xuICAgICAgICB9XG4gICAgICAgIHN1aXRlLmNhcGFiaWxpdGllcyA9IHN1aXRlRGVmLmNhcGFiaWxpdGllcyB8fCB0ZXN0Q29uZmlnLmNhcGFiaWxpdGllcyB8fCB7fTtcbiAgICAgICAgc3VpdGUuZW52aXJvbm1lbnQgPSB0ZXN0Q29uZmlnLmVudmlyb25tZW50IHx8IG51bGw7XG4gICAgICAgIHN1aXRlLm9wdGlvbnMgPSB0ZXN0Q29uZmlnLm9wdGlvbnMgfHwgbnVsbDtcbiAgICAgICAgc3VpdGUucGFyYWxsZWwgPSBzdWl0ZURlZi5wYXJhbGxlbCB8fCB0ZXN0Q29uZmlnLnBhcmFsbGVsIHx8IHRlc3RDb25maWcuY29uY3VycmVuY3kgfHwgMTtcbiAgICAgICAgLy8gaW5pdGlhbGl6ZSBlYWNoIHRlc3QgY2FzZVxuICAgICAgICBzdWl0ZURlZi5jYXNlcy5mb3JFYWNoKGNhc2VEZWYgPT4ge1xuICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSB0ZXN0Y2FzZSBvYmplY3RcbiAgICAgICAgICAgIGNvbnN0IHRjID0gbmV3IHJlcXVpcmUoJy4uL21vZGVsL3Rlc3RjYXNlLmpzJykoKTtcbiAgICAgICAgICAgIGlmIChjYXNlRGVmLm5hbWUpXG4gICAgICAgICAgICAgICAgdGMubmFtZSA9IGNhc2VEZWYubmFtZTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICB0Yy5uYW1lID0gc2VsZi5nZXRGaWxlTmFtZVdpdGhvdXRFeHQoY2FzZURlZi5wYXRoKTtcbiAgICAgICAgICAgIHRjLnBhdGggPSBzZWxmLnJlc29sdmVQYXRoKGNhc2VEZWYucGF0aCwgdGVzdENvbmZpZy50YXJnZXQuY3dkKTtcbiAgICAgICAgICAgIHRjLmZvcm1hdCA9ICdqcyc7XG4gICAgICAgICAgICB0Yy5pdGVyYXRpb25Db3VudCA9IGNhc2VEZWYuaXRlcmF0aW9ucyB8fCBjYXNlRGVmLml0ZXJhdGlvbkNvdW50IHx8IDE7XG4gICAgICAgICAgICBzdWl0ZS5jYXNlcy5wdXNoKHRjKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzdWl0ZTtcbiAgICB9LFxuXG4gICAgZ2VuZXJhdGVUZXN0U3VpdGVGcm9tSlNGaWxlOiBhc3luYyBmdW5jdGlvbiAoZmlsZVBhdGgsIHBhcmFtRmlsZSA9IG51bGwsIHBhcmFtTW9kZSA9IG51bGwsIG5vUGFyYW1BdXRvU2VhcmNoID0gdHJ1ZSwgaXRlcmF0aW9uQ291bnQgPSAxKSB7XG4gICAgICAgIHZhciBmaWxlTmFtZU5vRXh0ID0gc2VsZi5nZXRGaWxlTmFtZVdpdGhvdXRFeHQoZmlsZVBhdGgpO1xuXG4gICAgICAgIHZhciB0ZXN0Y2FzZSA9IG5ldyByZXF1aXJlKCcuLi9tb2RlbC90ZXN0Y2FzZS5qcycpKCk7XG4gICAgICAgIHRlc3RjYXNlLm5hbWUgPSBmaWxlTmFtZU5vRXh0O1xuICAgICAgICB0ZXN0Y2FzZS5wYXRoID0gZmlsZVBhdGg7XG4gICAgICAgIHRlc3RjYXNlLmZvcm1hdCA9ICdqcyc7XG4gICAgICAgIHRlc3RjYXNlLml0ZXJhdGlvbkNvdW50ID0gMTtcblxuICAgICAgICB2YXIgc3VpdGUgPSBuZXcgcmVxdWlyZSgnLi4vbW9kZWwvdGVzdHN1aXRlLmpzJykoKTtcbiAgICAgICAgc3VpdGUubmFtZSA9IHRlc3RjYXNlLm5hbWU7XG4gICAgICAgIHN1aXRlLmlkID0gdGVzdGNhc2UuaWQ7XG4gICAgICAgIHN1aXRlLml0ZXJhdGlvbkNvdW50ID0gaXRlcmF0aW9uQ291bnQ7XG4gICAgICAgIHN1aXRlLmNhc2VzLnB1c2godGVzdGNhc2UpO1xuICAgICAgICBpZiAodGVzdGNhc2UucmVvcGVuU2Vzc2lvbikge1xuICAgICAgICAgICAgc3VpdGUucmVvcGVuU2Vzc2lvbiA9IHRlc3RjYXNlLnJlb3BlblNlc3Npb247XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3dkID0gcGF0aC5kaXJuYW1lKGZpbGVQYXRoKTtcbiAgICAgICAgc3VpdGUucGFyYW1NYW5hZ2VyID0gYXdhaXQgc2VsZi5nZXRQYXJhbWV0ZXJNYW5hZ2VyKGZpbGVQYXRoLCB7IGZpbGU6IHBhcmFtRmlsZSwgbW9kZTogcGFyYW1Nb2RlIH0sIGN3ZCk7XG4gICAgICAgIC8vIGlmIHBhcmFtZXRlciByZWFkaW5nIG1vZGUgaXMgJ2FsbCcgdGhlbiBjaGFuZ2UgaXRlcmF0aW9uQ291bnQgdG8gdGhlIGFtb3VudCBvZiByb3dzIGluIHRoZSBwYXJhbSBmaWxlXG4gICAgICAgIGlmIChzdWl0ZS5wYXJhbU1hbmFnZXIgJiYgcGFyYW1Nb2RlID09ICdhbGwnKSB7XG4gICAgICAgICAgICBzdWl0ZS5pdGVyYXRpb25Db3VudCA9IHN1aXRlLnBhcmFtTWFuYWdlci5yb3dzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdWl0ZTtcbiAgICB9LFxuXG4gICAgZ2V0UGFyYW1ldGVyTWFuYWdlcjogYXN5bmMgZnVuY3Rpb24obWFpbkZpbGVQYXRoLCBwYXJhbU9wdHMgPSBudWxsLCBjd2QgPSBudWxsLCBhdXRvU2VhcmNoID0gdHJ1ZSkge1xuICAgICAgICBsZXQgcGFyYW1GaWxlUGF0aCA9IHBhcmFtT3B0cyAmJiBwYXJhbU9wdHMuZmlsZSA/IHBhcmFtT3B0cy5maWxlIDogbnVsbDtcbiAgICAgICAgbGV0IHBhcmFtTW9kZSA9IHBhcmFtT3B0cyAmJiBwYXJhbU9wdHMubW9kZSA/IHBhcmFtT3B0cy5tb2RlIDogJ3NlcSc7XG5cbiAgICAgICAgaWYgKHBhcmFtRmlsZVBhdGggJiYgY3dkICYmICFwYXRoLmlzQWJzb2x1dGUocGFyYW1GaWxlUGF0aCkpIHtcbiAgICAgICAgICAgIHBhcmFtRmlsZVBhdGggPSBwYXRoLmpvaW4oY3dkLCBwYXJhbUZpbGVQYXRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhd2FpdCBzZWxmLmxvYWRQYXJhbWV0ZXJNYW5hZ2VyKG1haW5GaWxlUGF0aCwgcGFyYW1GaWxlUGF0aCwgcGFyYW1Nb2RlLCBhdXRvU2VhcmNoKTtcbiAgICB9LFxuXG4gICAgZ2VuZXJhdGVUZXN0U3VpdGVGcm9tSnNvbkZpbGU6IGFzeW5jIGZ1bmN0aW9uIChmaWxlUGF0aCwgcGFyYW1GaWxlLCBwYXJhbU1vZGUgPSBudWxsLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgY29uc3QgdGVzdENvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMgfHwge30sXG4gICAgICAgIH07XG4gICAgICAgIGlmIChwYXJhbUZpbGUpIHtcbiAgICAgICAgICAgIHRlc3RDb25maWcucGFyYW1ldGVycyA9IHtcbiAgICAgICAgICAgICAgICBmaWxlOiBwYXJhbUZpbGUsXG4gICAgICAgICAgICAgICAgbW9kZTogcGFyYW1Nb2RlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgc2VsZi5nZW5lcmF0ZVRlc3RTdWl0ZUZyb21Kc29uKHJlcXVpcmUoZmlsZVBhdGgpLCB0ZXN0Q29uZmlnKTtcbiAgICB9LFxuXG4gICAgZ2V0RmlsZU5hbWVXaXRob3V0RXh0OiBmdW5jdGlvbiAoZmlsZVBhdGgpIHtcbiAgICAgICAgdmFyIGZpbGVOYW1lID0gcGF0aC5iYXNlbmFtZShmaWxlUGF0aCk7XG4gICAgICAgIHZhciBmaWxlRXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKTtcbiAgICAgICAgdmFyIGZpbGVQYXRoTm9FeHQgPSBmaWxlTmFtZS5zdWJzdHJpbmcoMCwgZmlsZU5hbWUubGFzdEluZGV4T2YoZmlsZUV4dCkpO1xuICAgICAgICByZXR1cm4gZmlsZVBhdGhOb0V4dDtcbiAgICB9LFxuXG4gICAgbG9hZFBhcmFtZXRlck1hbmFnZXI6IGFzeW5jIGZ1bmN0aW9uKG1haW5GaWxlLCBwYXJhbUZpbGUsIHBhcmFtTW9kZSwgYXV0b1NlYXJjaCA9IGZhbHNlKSB7XG4gICAgICAgIHZhciBwYXJhbU1hbmFnZXIgPSBudWxsO1xuICAgICAgICAvLyBpZiBwYXJhbSBmaWxlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZW4gY2hlY2sgaWYgSlMgZmlsZSBpcyBjb21pbmcgaW4gcGFpciB3aXRoIGEgcGFyYW1ldGVyIGZpbGUgXG4gICAgICAgIC8vIChjdXJyZW50bHkgc3VwcG9ydGluZyBDU1Ygb3IgVFhUKVxuICAgICAgICBpZiAoIXBhcmFtRmlsZSAmJiBhdXRvU2VhcmNoKSB7XG4gICAgICAgICAgICB2YXIgZmlsZU5hbWVOb0V4dCA9IHNlbGYuZ2V0RmlsZU5hbWVXaXRob3V0RXh0KG1haW5GaWxlKTtcbiAgICAgICAgICAgIHZhciBjc3ZQYXJhbUZpbGUgPSBwYXRoLmpvaW4ocGF0aC5kaXJuYW1lKG1haW5GaWxlKSwgZmlsZU5hbWVOb0V4dCArICcuY3N2Jyk7XG4gICAgICAgICAgICB2YXIgdHh0UGFyYW1GaWxlID0gcGF0aC5qb2luKHBhdGguZGlybmFtZShtYWluRmlsZSksIGZpbGVOYW1lTm9FeHQgKyAnLnR4dCcpO1xuICAgICAgICAgICAgdmFyIHhsc1BhcmFtRmlsZSA9IHBhdGguam9pbihwYXRoLmRpcm5hbWUobWFpbkZpbGUpLCBmaWxlTmFtZU5vRXh0ICsgJy54bHMnKTtcbiAgICAgICAgICAgIHZhciB4bHN4UGFyYW1GaWxlID0gcGF0aC5qb2luKHBhdGguZGlybmFtZShtYWluRmlsZSksIGZpbGVOYW1lTm9FeHQgKyAnLnhsc3gnKTtcblxuICAgICAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoY3N2UGFyYW1GaWxlKSkge1xuICAgICAgICAgICAgICAgIHBhcmFtRmlsZSA9IGNzdlBhcmFtRmlsZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZnMuZXhpc3RzU3luYyh0eHRQYXJhbUZpbGUpKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1GaWxlID0gdHh0UGFyYW1GaWxlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmcy5leGlzdHNTeW5jKHhsc1BhcmFtRmlsZSkpIHtcbiAgICAgICAgICAgICAgICBwYXJhbUZpbGUgPSB4bHNQYXJhbUZpbGU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZzLmV4aXN0c1N5bmMoeGxzeFBhcmFtRmlsZSkpIHtcbiAgICAgICAgICAgICAgICBwYXJhbUZpbGUgPSB4bHN4UGFyYW1GaWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJhbUZpbGUpIHtcbiAgICAgICAgICAgIHBhcmFtTWFuYWdlciA9IG5ldyByZXF1aXJlKCcuL3BhcmFtLW1hbmFnZXInKShwYXJhbUZpbGUsIHBhcmFtTW9kZSB8fCAnc2VxJyk7XG4gICAgICAgICAgICBhd2FpdCBwYXJhbU1hbmFnZXIuaW5pdCgpO1xuICAgICAgICAgICAgcmV0dXJuIHBhcmFtTWFuYWdlcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9LFxuXG4gICAgcmVzb2x2ZVBhdGg6IGZ1bmN0aW9uKHBhdGhUb1Jlc29sdmUsIGJhc2VGb2xkZXIpIHtcbiAgICAgICAgaWYgKHBhdGguaXNBYnNvbHV0ZShwYXRoVG9SZXNvbHZlKSlcbiAgICAgICAgICAgIHJldHVybiBwYXRoVG9SZXNvbHZlO1xuICAgICAgICByZXR1cm4gcGF0aC5yZXNvbHZlKGJhc2VGb2xkZXIsIHBhdGhUb1Jlc29sdmUpO1xuICAgIH0sXG5cbiAgICBtYWtlU2VyaWFsaXphYmxlOiBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBlcnIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVzdHJveUNpcmN1bGFyKGVyciwgW10pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlcnI7XG5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2pvbnBhY2tlci9kZXN0cm95LWNpcmN1bGFyXG4gICAgICAgIGZ1bmN0aW9uIGRlc3Ryb3lDaXJjdWxhcihmcm9tLCBzZWVuKSB7XG4gICAgICAgICAgICB2YXIgdG8gPSBBcnJheS5pc0FycmF5KGZyb20pID8gW10gOiB7fTtcbiAgICAgICAgICAgIHNlZW4ucHVzaChmcm9tKTtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGZyb20pLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFmcm9tW2tleV0gfHwgKHR5cGVvZiBmcm9tW2tleV0gIT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoZnJvbVtrZXldKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9ba2V5XSA9IGZyb21ba2V5XTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNlZW4uaW5kZXhPZihmcm9tW2tleV0pID09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvW2tleV0gPSBkZXN0cm95Q2lyY3VsYXIoZnJvbVtrZXldLCBzZWVuLnNsaWNlKDApKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgdG9ba2V5XSA9ICdbQ2lyY3VsYXJdJztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHRvO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGdldE1ldGhvZFNpZ25hdHVyZTogZnVuY3Rpb24obW9kdWxlTmFtZSwgbWV0aG9kTmFtZSwgbWV0aG9kQXJncykge1xuICAgICAgICByZXR1cm4gbW9kdWxlTmFtZSArICcuJyArIG1ldGhvZE5hbWUgKyAnKCcgKyBzZWxmLnN0cmluZ2lmeShtZXRob2RBcmdzLCAwKSArICcpJztcbiAgICB9LFxuXG4gICAgLypcbiAgICAgKiBVc2VkIHRvIHNlcmlhbGl6ZSBveHlnZW4gY29tbWFuZCBwYXJhbWV0ZXJzLiBQcm9kdWNlcyBhIG5vbi1jb21wbGlhbnQgSlNPTiBzZXJpYWxpemF0aW9uLlxuICAgICAqL1xuICAgIHN0cmluZ2lmeTogZnVuY3Rpb24gKGFyZ3MsIGluZGVudGF0aW9uID0gMCkge1xuICAgICAgICAvLyByZXR1cm4gc3RyaW5ncyBhcyBpcyAob3RoZXJ3aXNlIGlmIHdlIHNlcmlhbGl6ZSBzdHJpbmcgaXQgd2lsbCBnZXQgd3JhcHBlZCBpbiBkb3VibGUgcXVvdGVzKVxuICAgICAgICBpZiAodHlwZW9mIGFyZ3MgPT09ICdzdHJpbmcnIHx8IGFyZ3MgaW5zdGFuY2VvZiBTdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBhcmdzO1xuICAgICAgICB9IGVsc2UgaWYgKGFyZ3MubGVuZ3RoID09PSAxICYmICh0eXBlb2YgYXJnc1swXSA9PT0gJ3N0cmluZycgfHwgYXJnc1swXSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIHJldHVybiBhcmdzWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHN0cjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN0ciA9IEpTT04uc3RyaW5naWZ5KGFyZ3MsIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2JpZ2ludCcpIHsgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNocm9tZUxhYnMvanNiaS9pc3N1ZXMvMzBcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHVuZGVmaW5lZCBpcyBpbnNpZGUgYW4gYXJyYXkgdGhlbiBpdCB3aWxsIGJlIHNlcmlhbGl6ZWQgYXMgbnVsbC5cbiAgICAgICAgICAgICAgICAgICAgLy8gaG93ZXZlciBpZiB3ZSBqdXN0IHJldHVybiAndW5kZWZpbmVkJyBoZXJlIGFzIHN0cmluZywgaXQgd2lsbCBiZSBlbmNsb3NlZCBpbiBxdW90ZXMuXG4gICAgICAgICAgICAgICAgICAgIC8vIHNvIHJldHVybiBtYWdpYyBzdHJpbmcgaW5zdGVhZCBhbmQgdHJpbSB0aGUgcXVvdGVzIGxhdGVyIG9uXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnX19VTkRFRklORUQnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnLycgKyB2YWx1ZS5zb3VyY2UgKyAnLycgKyB2YWx1ZS5mbGFncztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfSwgaW5kZW50YXRpb24pO1xuICAgICAgICAgICAgLy8gdHJpbSB0aGUgZW5jbG9zaW5nIGFycmF5IGFuZCBhbnkgd2hpdGVzcGFjZVxuICAgICAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoL15cXFt7MX1cXHMqfFxccypcXF17MX0kL2csICcnKTtcbiAgICAgICAgICAgIC8vIHJlbW92ZSBzcGFjZSBiZWZvcmUgbGFzdCB9IGFuZCBdLCB0byBtYWtlIGluZGVudGF0aW9uIG10Y2ggdGhlIG9wZW5pbmcgYnJhY2tldFxuICAgICAgICAgICAgaWYgKHN0ci5lbmRzV2l0aCgnICB9JykpIHtcbiAgICAgICAgICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIHN0ci5sZW5ndGggLSAzKSArICd9JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzdHIuZW5kc1dpdGgoJyAgXScpKSB7XG4gICAgICAgICAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBzdHIubGVuZ3RoIC0gMykgKyAnXSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBjb252ZXJ0IG1hZ2ljICd1bmRlZmluZWQnIHN0cmluZyB0byBwcm9wZXIgcmVwcmVzZW50YXRpb25cbiAgICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKC9cIl9fVU5ERUZJTkVEXCIvZywgJ3VuZGVmaW5lZCcpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0ZhaWxlZCB0byBzZXJpYWxpemUgY29tbWFuZCBhcmd1bWVudHM6ICcsIGUpO1xuICAgICAgICAgICAgLy8gaWYgSlNPTi5zdHJpbmdpZnkgZmFpbHMsIHRoZW4gZmFsbGJhY2sgdG8gdXRpbC5pbnNwZWN0LlxuICAgICAgICAgICAgLy8gKHdlIGRvbid0IHVzZSB1dGlsLmluc3BlY3QgaW5pdGlhbHkgYmVjYXVzZSBpdCBkb2Vzbid0IHN1cHBvcnQgb3V0cHV0IGluZGVudGF0aW9uKVxuICAgICAgICAgICAgcmV0dXJuIHV0aWwuaW5zcGVjdChhcmdzWzBdLCB7IGRlcHRoOiAzIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgfSxcblxuICAgIGlzSW5EZWJ1Z01vZGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAvLyB0aGlzIGFsd2F5cyB0cnVlO1xuICAgICAgICAvLyBjb25zdCBhcmd2ID0gcHJvY2Vzcy5leGVjQXJndi5qb2luKCk7XG5cbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3Byb2Nlc3MuZGVidWdQb3J0JywgcHJvY2Vzcy5kZWJ1Z1BvcnQpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImFyZ3YuaW5jbHVkZXMoJ2luc3BlY3QnKVwiLCBhcmd2LmluY2x1ZGVzKCdpbnNwZWN0JykpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImFyZ3YuaW5jbHVkZXMoJ2luc3BlY3QtYnJrJylcIiwgYXJndi5pbmNsdWRlcygnaW5zcGVjdC1icmsnKSk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYXJndi5pbmNsdWRlcygnZGVidWcnKVwiLCBhcmd2LmluY2x1ZGVzKCdkZWJ1ZycpKTtcblxuICAgICAgICAvLyByZXR1cm4gcHJvY2Vzcy5kZWJ1Z1BvcnQgfHwgYXJndi5pbmNsdWRlcygnaW5zcGVjdCcpIHx8IGFyZ3YuaW5jbHVkZXMoJ2luc3BlY3QtYnJrJykgfHwgYXJndi5pbmNsdWRlcygnZGVidWcnKTtcblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSxcblxuICAgIGxvYWRUZXN0SG9va3M6IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgICAgICAgbGV0IGhvb2tzID0gRFVNTVlfSE9PS1M7XG4gICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudGFyZ2V0ICYmIG9wdGlvbnMudGFyZ2V0Lm5hbWUgPT09ICdveHlnZW4uY29uZicpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgaG9va3MgPSByZXF1aXJlKG9wdGlvbnMudGFyZ2V0LnBhdGgpLmhvb2tzIHx8IERVTU1ZX0hPT0tTO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0Vycm9yIGxvYWRpbmcgdXNlciBob29rczonLCBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaG9va3M7XG4gICAgfSxcblxuICAgIGV4ZWN1dGVUZXN0SG9vazogYXN5bmMgZnVuY3Rpb24oaG9va3MsIG1ldGhvZCwgYXJncykge1xuICAgICAgICAvLyBpZiBob29rIGlzIG5vdCBkZWZpbmVkLCBqdXN0IHF1aWV0bHkgaWdub3JlIGl0XG4gICAgICAgIGlmICghaG9va3MgfHwgIW1ldGhvZCB8fCAhaG9va3NbbWV0aG9kXSB8fCB0eXBlb2YgaG9va3NbbWV0aG9kXSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjbGVhciB0cmFuc2FjdGlvbiBuYW1lIHdoZW4gZXhlY3V0aW5nIGhvb2tzIChleGNlcHQgY29tbWFuZCBzdGFydC9lbmQgaG9va3MpXG4gICAgICAgIC8vIG90aGVyd2lzZSB0ZXN0IHN0ZXBzIHdpbGwgYmUgbWVzc2VkIHVwLiBlLmcuIHRyYW5zYWN0aW9uIGZyb20gY2FzZSAxIHdpbGwgYmUgc2hvd24gaW4gY2FzZSAyLCBldGMuXG4gICAgICAgIGlmIChbJ2JlZm9yZVRlc3QnLCAnYmVmb3JlU3VpdGUnLCAnYmVmb3JlQ2FzZScsICdhZnRlckNhc2UnLCAnYWZ0ZXJTdWl0ZScsICdhZnRlclRlc3QnXS5pbmNsdWRlcyhtZXRob2QpKSB7XG4gICAgICAgICAgICBnbG9iYWwuX2xhc3RUcmFuc2FjdGlvbk5hbWUgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChnbG9iYWwuY2hhaUFuZE1vY2tlcnlMb2FkZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBpZ25vcmVcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hhaSA9IHJlcXVpcmUoJ2NoYWknKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtb2NrZXJ5ID0gcmVxdWlyZSgnbW9ja2VyeScpO1xuICAgICAgICAgICAgICAgIG1vY2tlcnkuZW5hYmxlKHtcbiAgICAgICAgICAgICAgICAgICAgdXNlQ2xlYW5DYWNoZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgd2Fybk9uUmVwbGFjZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHdhcm5PblVucmVnaXN0ZXJlZDogZmFsc2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtb2NrZXJ5LnJlZ2lzdGVyTW9jaygnY2hhaScsIGNoYWkpO1xuICAgICAgICAgICAgICAgIGdsb2JhbC5jaGFpQW5kTW9ja2VyeUxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGF3YWl0IGhvb2tzW21ldGhvZF0uYXBwbHkodW5kZWZpbmVkLCBhcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgSG9vayBcIiR7bWV0aG9kfVwiIGhhcyB0aHJvd24gYW4gZXJyb3I6ICR7ZS50b1N0cmluZygpfWApO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBnZXRPeE1vZHVsZXNEaXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgJ294X21vZHVsZXMnKTtcbiAgICB9LFxuXG4gICAgaG9va0xvZ3MobG9nZ2VyKSB7XG4gICAgICAgIGNvbnN0IG9yaWdsb2cgPSBjb25zb2xlLmxvZztcbiAgICAgICAgY29uc3Qgb3JpZ0RlYnVnID0gY29uc29sZS5kZWJ1ZztcbiAgICAgICAgY29uc3Qgb3JpZ0luZm8gPSBjb25zb2xlLmluZm87XG4gICAgICAgIGNvbnN0IG9yaWdXYXJuID0gY29uc29sZS53YXJuO1xuICAgICAgICBjb25zdCBvcmlnRXJyb3IgPSBjb25zb2xlLmVycm9yO1xuXG4gICAgICAgIGNvbnN0IHByb2Nlc3NBcmdzID0gKGFyZ3VtZW50QXJyYXkpID0+IHtcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSBbXTtcblxuICAgICAgICAgICAgaWYgKGFyZ3VtZW50QXJyYXkgJiYgYXJndW1lbnRBcnJheS5tYXApIHtcbiAgICAgICAgICAgICAgICBhcmd1bWVudEFycmF5Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChgJHtpdGVtfWApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goYCR7dXRpbC5pbnNwZWN0KGl0ZW0pfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQuam9pbignICcpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnNvbGUubG9nID0gZnVuY3Rpb24gKC4uLmFyZ3VtZW50QXJyYXkpIHtcbiAgICAgICAgICAgIG9yaWdsb2cuYXBwbHkodGhpcywgYXJndW1lbnRBcnJheSk7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhwcm9jZXNzQXJncyhhcmd1bWVudEFycmF5KSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnNvbGUuZGVidWcgPSBmdW5jdGlvbiAoLi4uYXJndW1lbnRBcnJheSkge1xuICAgICAgICAgICAgb3JpZ0RlYnVnLmFwcGx5KHRoaXMsIGFyZ3VtZW50QXJyYXkpO1xuICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKHByb2Nlc3NBcmdzKGFyZ3VtZW50QXJyYXkpKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc29sZS5pbmZvID0gZnVuY3Rpb24gKC4uLmFyZ3VtZW50QXJyYXkpIHtcbiAgICAgICAgICAgIG9yaWdJbmZvLmFwcGx5KHRoaXMsIGFyZ3VtZW50QXJyYXkpO1xuICAgICAgICAgICAgbG9nZ2VyLmluZm8ocHJvY2Vzc0FyZ3MoYXJndW1lbnRBcnJheSkpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zb2xlLndhcm4gPSBmdW5jdGlvbiAoLi4uYXJndW1lbnRBcnJheSkge1xuICAgICAgICAgICAgb3JpZ1dhcm4uYXBwbHkodGhpcywgYXJndW1lbnRBcnJheSk7XG4gICAgICAgICAgICBsb2dnZXIud2Fybihwcm9jZXNzQXJncyhhcmd1bWVudEFycmF5KSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnNvbGUuZXJyb3IgPSBmdW5jdGlvbiAoLi4uYXJndW1lbnRBcnJheSkge1xuICAgICAgICAgICAgb3JpZ0Vycm9yLmFwcGx5KHRoaXMsIGFyZ3VtZW50QXJyYXkpO1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKHByb2Nlc3NBcmdzKGFyZ3VtZW50QXJyYXkpKTtcbiAgICAgICAgfTtcbiAgICB9LFxuXG4gICAgbWFrZVRyYW5zYWN0aW9uRmFpbGVkSWZTdGVwRmFpbGVkKHN0ZXBzKSB7XG4gICAgICAgIGlmIChzdGVwcyAmJiBzdGVwcy5sZW5ndGggJiYgc3RlcHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IGxhc3RGaW5kZWRUcmFuc2FjdGlvbkluZGV4ID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBuZXdTdGVwcyA9IFsuLi5zdGVwc107XG4gICAgICAgICAgICBzdGVwcy5tYXAoKGl0ZW0sIGlkeCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLm5hbWUgJiYgaXRlbS5uYW1lLmluY2x1ZGVzICYmIGl0ZW0ubmFtZS5pbmNsdWRlcygnLnRyYW5zYWN0aW9uKCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RGaW5kZWRUcmFuc2FjdGlvbkluZGV4ID0gaWR4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgbGFzdEZpbmRlZFRyYW5zYWN0aW9uSW5kZXggPT09ICdudW1iZXInICYmIGl0ZW0uc3RhdHVzICYmIGl0ZW0uc3RhdHVzID09PSAnZmFpbGVkJykge1xuICAgICAgICAgICAgICAgICAgICBuZXdTdGVwc1tsYXN0RmluZGVkVHJhbnNhY3Rpb25JbmRleF1bJ3N0YXR1cyddID0gJ2ZhaWxlZCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBuZXdTdGVwcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdGVwcztcbiAgICB9LFxuXG4gICAgZGVjcnlwdCh0ZXh0KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgZW5jcnlwdGVkVGV4dCA9IEJ1ZmZlci5mcm9tKHRleHQsICdoZXgnKTtcbiAgICAgICAgICAgIGxldCBkZWNpcGhlciA9IGNyeXB0by5jcmVhdGVEZWNpcGhlcml2KGFsZ29yaXRobSwga2V5LCBpdik7XG4gICAgICAgICAgICBsZXQgZGVjcnlwdGVkID0gZGVjaXBoZXIudXBkYXRlKGVuY3J5cHRlZFRleHQpO1xuICAgICAgICAgICAgZGVjcnlwdGVkID0gQnVmZmVyLmNvbmNhdChbZGVjcnlwdGVkLCBkZWNpcGhlci5maW5hbCgpXSk7XG4gICAgICAgICAgICBjb25zdCByZXRWYWwgPSBkZWNyeXB0ZWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGVjcnlwdFJlc3VsdChyZXRWYWwpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgT3h5Z2VuRXJyb3IoZXJyb3JIZWxwZXIuZXJyb3JDb2RlLkNSWVBUT19FUlJPUiwgXCJUaGUgcHJvdmlkZWQgYXJndW1lbnQgZG9lc24ndCBzZWVtIHRvIGJlIGEgdmFsaWQgY2lwaGVyIHByb2R1Y2VkIGJ5ICd1dGlscy5lbmNyeXB0J1wiKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBlbmNyeXB0KHRleHQpIHtcbiAgICAgICAgbGV0IGNpcGhlciA9IGNyeXB0by5jcmVhdGVDaXBoZXJpdihhbGdvcml0aG0sIGtleSwgaXYpO1xuICAgICAgICBsZXQgZW5jcnlwdGVkID0gY2lwaGVyLnVwZGF0ZSh0ZXh0KTtcbiAgICAgICAgZW5jcnlwdGVkID0gQnVmZmVyLmNvbmNhdChbZW5jcnlwdGVkLCBjaXBoZXIuZmluYWwoKV0pO1xuICAgICAgICByZXR1cm4gZW5jcnlwdGVkLnRvU3RyaW5nKCdoZXgnKTtcbiAgICB9LFxuXG4gICAgc2xlZXA6IGZ1bmN0aW9uKHRpbWVvdXQpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIHRpbWVvdXQpKTtcbiAgICB9LFxuXG4gICAgZG93bmxvYWRWaWRlbzogYXN5bmMgZnVuY3Rpb24oZmlsZU5hbWUsIHZpZGVvVXJsLCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGxvY2FsVmlkZW9GaWxlUGF0aCA9IGdldFZpZGVvQXR0YWNobWVudFBhdGgoZmlsZU5hbWUsIG9wdGlvbnMpO1xuICAgICAgICBsZXQgZXJyb3I7XG4gICAgICAgIGZvciAobGV0IGk9MDsgaTxET1dOTE9BRF9SRVRSSUVTOyBpKyspIHtcbiAgICAgICAgICAgIGVycm9yID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGxvY2FsVmlkZW9GaWxlUGF0aCwgYXdhaXQgZG93bmxvYWQodmlkZW9VcmwpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgZXJyb3IgPSBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgc2VsZi5zbGVlcChET1dOTE9BRF9SRVRSWV9XQUlUX1RJTUUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIGRlbGV0ZSB0aGUgdmlkZW8gZmlsZSBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgdXJsOiB2aWRlb1VybCxcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgICAgICAgICAgIGpzb246IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogZmFsc2UsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qob3B0aW9ucywgKGVyciwgcmVzLCBib2R5KSA9PiB7IHJlc29sdmUoZXJyID8gbnVsbCA6IGxvY2FsVmlkZW9GaWxlUGF0aCk7IH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1VuYWJsZSB0byBkZWxldGUgdmlkZW8gZmlsZSBmcm9tIHRoZSByZW1vdGUgc2VydmVyOiAnLCBlLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdVbmFibGUgdG8gZG93bmxvYWQgYW5kIHNhdmUgdmlkZW8gYXR0YWNobWVudDogJywgZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9LFxufTtcbiJdfQ==
|
|
449
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdXRpbC5qcyJdLCJuYW1lcyI6WyJwYXRoIiwicmVxdWlyZSIsImZzIiwibW9tZW50IiwiY3J5cHRvIiwidXRpbCIsInBhc3N3b3JkIiwiZW5jcnlwdGlvbktleSIsImtleSIsInNjcnlwdFN5bmMiLCJpdiIsIkJ1ZmZlciIsImFsbG9jIiwiYWxnb3JpdGhtIiwiZG93bmxvYWQiLCJyZXF1ZXN0IiwiRGVjcnlwdFJlc3VsdCIsInJlc3VsdCIsImRlY3J5cHRSZXN1bHQiLCJnZXREZWNyeXB0UmVzdWx0IiwiRFVNTVlfSE9PS1MiLCJiZWZvcmVUZXN0IiwiYmVmb3JlU3VpdGUiLCJiZWZvcmVDYXNlIiwiYmVmb3JlQ29tbWFuZCIsImFmdGVyQ29tbWFuZCIsImFmdGVyVGVzdCIsImFmdGVyU3VpdGUiLCJhZnRlckNhc2UiLCJDQl9BVFRBQ0hNRU5UU19ESVJfTkFNRSIsIkRPV05MT0FEX1JFVFJJRVMiLCJET1dOTE9BRF9SRVRSWV9XQUlUX1RJTUUiLCJnZXRWaWRlb0F0dGFjaG1lbnRQYXRoIiwiZmlsZU5hbWUiLCJvcHRpb25zIiwiY3dkIiwiZ2V0Q3dkIiwiYXR0YWNobWVudHNEaXJQYXRoIiwiam9pbiIsImV4aXN0c1N5bmMiLCJta2RpclN5bmMiLCJwcm9jZXNzIiwicm9vdFBhdGgiLCJ0cmltIiwic2VsZiIsIm1vZHVsZSIsImV4cG9ydHMiLCJnZW5lcmF0ZVVuaXF1ZUlkIiwicmFuZG9tQnl0ZXMiLCJ0b1N0cmluZyIsImdldFRpbWVTdGFtcCIsInV0YyIsInZhbHVlT2YiLCJnZW5lcmF0ZVRlc3RTdWl0ZUZyb21Kc29uIiwic3VpdGVEZWYiLCJ0ZXN0Q29uZmlnIiwiaXRlcmF0aW9uQ291bnQiLCJzdWl0ZSIsImlkIiwibmFtZSIsIml0ZXJhdGlvbnMiLCJzdWl0ZUZpbGVQYXRoIiwidGFyZ2V0IiwicGFyYW1NYW5hZ2VyIiwiZ2V0UGFyYW1ldGVyTWFuYWdlciIsInBhcmFtZXRlcnMiLCJnZXRNb2RlIiwicm93cyIsImNhcGFiaWxpdGllcyIsImVudmlyb25tZW50IiwicGFyYWxsZWwiLCJjb25jdXJyZW5jeSIsImNhc2VzIiwiZm9yRWFjaCIsImNhc2VEZWYiLCJ0YyIsImdldEZpbGVOYW1lV2l0aG91dEV4dCIsInJlc29sdmVQYXRoIiwiZm9ybWF0IiwicHVzaCIsImdlbmVyYXRlVGVzdFN1aXRlRnJvbUpTRmlsZSIsImZpbGVQYXRoIiwicGFyYW1GaWxlIiwicGFyYW1Nb2RlIiwibm9QYXJhbUF1dG9TZWFyY2giLCJmaWxlTmFtZU5vRXh0IiwidGVzdGNhc2UiLCJyZW9wZW5TZXNzaW9uIiwiZGlybmFtZSIsImZpbGUiLCJtb2RlIiwibWFpbkZpbGVQYXRoIiwicGFyYW1PcHRzIiwiYXV0b1NlYXJjaCIsInBhcmFtRmlsZVBhdGgiLCJpc0Fic29sdXRlIiwibG9hZFBhcmFtZXRlck1hbmFnZXIiLCJnZW5lcmF0ZVRlc3RTdWl0ZUZyb21Kc29uRmlsZSIsImJhc2VuYW1lIiwiZmlsZUV4dCIsImV4dG5hbWUiLCJmaWxlUGF0aE5vRXh0Iiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJtYWluRmlsZSIsImNzdlBhcmFtRmlsZSIsInR4dFBhcmFtRmlsZSIsInhsc1BhcmFtRmlsZSIsInhsc3hQYXJhbUZpbGUiLCJpbml0IiwicGF0aFRvUmVzb2x2ZSIsImJhc2VGb2xkZXIiLCJyZXNvbHZlIiwibWFrZVNlcmlhbGl6YWJsZSIsImVyciIsImRlc3Ryb3lDaXJjdWxhciIsImZyb20iLCJzZWVuIiwidG8iLCJBcnJheSIsImlzQXJyYXkiLCJPYmplY3QiLCJrZXlzIiwiaW5kZXhPZiIsInNsaWNlIiwiZ2V0TWV0aG9kU2lnbmF0dXJlIiwibW9kdWxlTmFtZSIsIm1ldGhvZE5hbWUiLCJtZXRob2RBcmdzIiwic3RyaW5naWZ5IiwiYXJncyIsImluZGVudGF0aW9uIiwiU3RyaW5nIiwibGVuZ3RoIiwic3RyIiwiSlNPTiIsInZhbHVlIiwiRXJyb3IiLCJSZWdFeHAiLCJzb3VyY2UiLCJmbGFncyIsInJlcGxhY2UiLCJlbmRzV2l0aCIsImUiLCJjb25zb2xlIiwid2FybiIsImluc3BlY3QiLCJkZXB0aCIsImlzSW5EZWJ1Z01vZGUiLCJsb2FkVGVzdEhvb2tzIiwiaG9va3MiLCJleGVjdXRlVGVzdEhvb2siLCJtZXRob2QiLCJpbmNsdWRlcyIsImdsb2JhbCIsIl9sYXN0VHJhbnNhY3Rpb25OYW1lIiwiY2hhaUFuZE1vY2tlcnlMb2FkZWQiLCJjaGFpIiwibW9ja2VyeSIsImVuYWJsZSIsInVzZUNsZWFuQ2FjaGUiLCJ3YXJuT25SZXBsYWNlIiwid2Fybk9uVW5yZWdpc3RlcmVkIiwicmVnaXN0ZXJNb2NrIiwiYXBwbHkiLCJ1bmRlZmluZWQiLCJlcnJvciIsImdldE94TW9kdWxlc0RpciIsIl9fZGlybmFtZSIsImhvb2tMb2dzIiwibG9nZ2VyIiwib3JpZ2xvZyIsImxvZyIsIm9yaWdEZWJ1ZyIsImRlYnVnIiwib3JpZ0luZm8iLCJpbmZvIiwib3JpZ1dhcm4iLCJvcmlnRXJyb3IiLCJwcm9jZXNzQXJncyIsImFyZ3VtZW50QXJyYXkiLCJtYXAiLCJpdGVtIiwibWFrZVRyYW5zYWN0aW9uRmFpbGVkSWZTdGVwRmFpbGVkIiwic3RlcHMiLCJsYXN0RmluZGVkVHJhbnNhY3Rpb25JbmRleCIsIm5ld1N0ZXBzIiwiaWR4Iiwic3RhdHVzIiwiZGVjcnlwdCIsInRleHQiLCJlbmNyeXB0ZWRUZXh0IiwiZGVjaXBoZXIiLCJjcmVhdGVEZWNpcGhlcml2IiwiZGVjcnlwdGVkIiwidXBkYXRlIiwiY29uY2F0IiwiZmluYWwiLCJyZXRWYWwiLCJPeHlnZW5FcnJvciIsImVycm9ySGVscGVyIiwiZXJyb3JDb2RlIiwiQ1JZUFRPX0VSUk9SIiwiZW5jcnlwdCIsImNpcGhlciIsImNyZWF0ZUNpcGhlcml2IiwiZW5jcnlwdGVkIiwic2xlZXAiLCJ0aW1lb3V0IiwiUHJvbWlzZSIsInNldFRpbWVvdXQiLCJkb3dubG9hZFZpZGVvIiwidmlkZW9VcmwiLCJsb2NhbFZpZGVvRmlsZVBhdGgiLCJpIiwid3JpdGVGaWxlU3luYyIsInVybCIsImpz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Y2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBIZWxwZXIgbW9kdWxlIGZvciBpbnRlcm5hbCBPeHlnZW4gdXNlXHJcbiAqL1xyXG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xyXG5jb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XHJcbmNvbnN0IG1vbWVudCA9IHJlcXVpcmUoJ21vbWVudCcpO1xyXG5jb25zdCBjcnlwdG8gPSByZXF1aXJlKCdjcnlwdG8nKTtcclxuY29uc3QgdXRpbCA9IHJlcXVpcmUoJ3V0aWwnKTtcclxuY29uc3QgcGFzc3dvcmQgPSByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKS5lbmNyeXB0aW9uS2V5O1xyXG5jb25zdCBrZXkgPSBjcnlwdG8uc2NyeXB0U3luYyhwYXNzd29yZCwgJ0dmRycsIDI0KTtcclxuY29uc3QgaXYgPSBCdWZmZXIuYWxsb2MoMTYsIDApO1xyXG5jb25zdCBhbGdvcml0aG0gPSAnYWVzLTE5Mi1jYmMnO1xyXG5jb25zdCBkb3dubG9hZCA9IHJlcXVpcmUoJ2Rvd25sb2FkJyk7XHJcbmNvbnN0IHJlcXVlc3QgPSByZXF1aXJlKCdyZXF1ZXN0Jyk7XHJcblxyXG5pbXBvcnQgT3h5Z2VuRXJyb3IgZnJvbSAnLi4vZXJyb3JzL094eWdlbkVycm9yJztcclxuaW1wb3J0IGVycm9ySGVscGVyIGZyb20gJy4uL2Vycm9ycy9oZWxwZXInO1xyXG5cclxuZnVuY3Rpb24gRGVjcnlwdFJlc3VsdChyZXN1bHQpIHtcclxuICAgIGNvbnN0IGRlY3J5cHRSZXN1bHQgPSByZXN1bHQ7XHJcblxyXG4gICAgdGhpcy5nZXREZWNyeXB0UmVzdWx0ID0gKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBkZWNyeXB0UmVzdWx0O1xyXG4gICAgfTtcclxufVxyXG5cclxuY29uc3QgRFVNTVlfSE9PS1MgPSB7XHJcbiAgICBiZWZvcmVUZXN0OiAoKSA9PiB7fSxcclxuICAgIGJlZm9yZVN1aXRlOiAoKSA9PiB7fSxcclxuICAgIGJlZm9yZUNhc2U6ICgpID0+IHt9LFxyXG4gICAgYmVmb3JlQ29tbWFuZDogKCkgPT4ge30sXHJcbiAgICBhZnRlckNvbW1hbmQ6ICgpID0+IHt9LFxyXG4gICAgYWZ0ZXJUZXN0OiAoKSA9PiB7fSxcclxuICAgIGFmdGVyU3VpdGU6ICgpID0+IHt9LFxyXG4gICAgYWZ0ZXJDYXNlOiAoKSA9PiB7fSxcclxufTtcclxuXHJcbmNvbnN0IENCX0FUVEFDSE1FTlRTX0RJUl9OQU1FID0gJy5jYi1hdHRhY2htZW50cyc7XHJcbmNvbnN0IERPV05MT0FEX1JFVFJJRVMgPSA0MDtcclxuY29uc3QgRE9XTkxPQURfUkVUUllfV0FJVF9USU1FID0gMjUwMDtcclxuXHJcbmZ1bmN0aW9uIGdldFZpZGVvQXR0YWNobWVudFBhdGgoZmlsZU5hbWUsIG9wdGlvbnMpIHtcclxuICAgIGNvbnN0IGN3ZCA9IGdldEN3ZChvcHRpb25zKTtcclxuICAgIGNvbnN0IGF0dGFjaG1lbnRzRGlyUGF0aCA9IHBhdGguam9pbihjd2QsIENCX0FUVEFDSE1FTlRTX0RJUl9OQU1FKTtcclxuICAgIGlmICghZnMuZXhpc3RzU3luYyhhdHRhY2htZW50c0RpclBhdGgpKSB7XHJcbiAgICAgICAgZnMubWtkaXJTeW5jKGF0dGFjaG1lbnRzRGlyUGF0aCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGF0aC5qb2luKGF0dGFjaG1lbnRzRGlyUGF0aCwgZmlsZU5hbWUpO1xyXG59XHJcblxyXG5jb25zdCBnZXRDd2QgPSAob3B0aW9ucykgPT4ge1xyXG4gICAgbGV0IGN3ZCA9IHByb2Nlc3MuY3dkKCk7XHJcblxyXG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5jd2QpIHtcclxuICAgICAgICBjd2QgPSBvcHRpb25zLmN3ZDtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5yb290UGF0aCkge1xyXG4gICAgICAgIGN3ZCA9IG9wdGlvbnMucm9vdFBhdGg7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGN3ZC50cmltKCk7XHJcbn07XHJcblxyXG52YXIgc2VsZiA9IG1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIGdlbmVyYXRlVW5pcXVlSWQ6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBjcnlwdG8ucmFuZG9tQnl0ZXMoNCkudG9TdHJpbmcoJ2hleCcpO1xyXG4gICAgfSxcclxuXHJcbiAgICBnZXRUaW1lU3RhbXA6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBtb21lbnQudXRjKCkudmFsdWVPZigpO1xyXG4gICAgfSxcclxuXHJcbiAgICBnZW5lcmF0ZVRlc3RTdWl0ZUZyb21Kc29uOiBhc3luYyBmdW5jdGlvbihzdWl0ZURlZiwgdGVzdENvbmZpZywgaXRlcmF0aW9uQ291bnQgPSAxKSB7XHJcbiAgICAgICAgdmFyIHN1aXRlID0gbmV3IHJlcXVpcmUoJy4uL21vZGVsL3Rlc3RzdWl0ZS5qcycpKCk7XHJcbiAgICAgICAgc3VpdGUuaWQgPSBudWxsO1xyXG4gICAgICAgIHN1aXRlLm5hbWUgPSBzdWl0ZURlZi5uYW1lO1xyXG4gICAgICAgIHN1aXRlLmlkID0gc3VpdGVEZWYuaWQ7XHJcbiAgICAgICAgc3VpdGUuaXRlcmF0aW9uQ291bnQgPSBzdWl0ZURlZi5pdGVyYXRpb25zIHx8IHN1aXRlRGVmLml0ZXJhdGlvbkNvdW50IHx8IHRlc3RDb25maWcuaXRlcmF0aW9ucyB8fCBpdGVyYXRpb25Db3VudDtcclxuICAgICAgICBjb25zdCBzdWl0ZUZpbGVQYXRoID0gc3VpdGVEZWYucGF0aCB8fCBwYXRoLmpvaW4odGVzdENvbmZpZy50YXJnZXQuY3dkLCAnc3VpdGVzJywgYCR7c3VpdGVEZWYubmFtZX0uanNvbmApO1xyXG4gICAgICAgIHN1aXRlLnBhcmFtTWFuYWdlciA9IGF3YWl0IHNlbGYuZ2V0UGFyYW1ldGVyTWFuYWdlcihzdWl0ZUZpbGVQYXRoLCB0ZXN0Q29uZmlnLnBhcmFtZXRlcnMsIHRlc3RDb25maWcudGFyZ2V0LmN3ZCk7XHJcbiAgICAgICAgaWYgKHN1aXRlLnBhcmFtTWFuYWdlciAmJiBzdWl0ZS5wYXJhbU1hbmFnZXIuZ2V0TW9kZSgpID09ICdhbGwnKSB7XHJcbiAgICAgICAgICAgIHN1aXRlLml0ZXJhdGlvbkNvdW50ID0gc3VpdGUucGFyYW1NYW5hZ2VyLnJvd3M7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN1aXRlLmNhcGFiaWxpdGllcyA9IHN1aXRlRGVmLmNhcGFiaWxpdGllcyB8fCB0ZXN0Q29uZmlnLmNhcGFiaWxpdGllcyB8fCB7fTtcclxuICAgICAgICBzdWl0ZS5lbnZpcm9ubWVudCA9IHRlc3RDb25maWcuZW52aXJvbm1lbnQgfHwgbnVsbDtcclxuICAgICAgICBzdWl0ZS5vcHRpb25zID0gdGVzdENvbmZpZy5vcHRpb25zIHx8IG51bGw7XHJcbiAgICAgICAgc3VpdGUucGFyYWxsZWwgPSBzdWl0ZURlZi5wYXJhbGxlbCB8fCB0ZXN0Q29uZmlnLnBhcmFsbGVsIHx8IHRlc3RDb25maWcuY29uY3VycmVuY3kgfHwgMTtcclxuICAgICAgICAvLyBpbml0aWFsaXplIGVhY2ggdGVzdCBjYXNlXHJcbiAgICAgICAgc3VpdGVEZWYuY2FzZXMuZm9yRWFjaChjYXNlRGVmID0+IHtcclxuICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSB0ZXN0Y2FzZSBvYmplY3RcclxuICAgICAgICAgICAgY29uc3QgdGMgPSBuZXcgcmVxdWlyZSgnLi4vbW9kZWwvdGVzdGNhc2UuanMnKSgpO1xyXG4gICAgICAgICAgICBpZiAoY2FzZURlZi5uYW1lKVxyXG4gICAgICAgICAgICAgICAgdGMubmFtZSA9IGNhc2VEZWYubmFtZTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgdGMubmFtZSA9IHNlbGYuZ2V0RmlsZU5hbWVXaXRob3V0RXh0KGNhc2VEZWYucGF0aCk7XHJcbiAgICAgICAgICAgIHRjLnBhdGggPSBzZWxmLnJlc29sdmVQYXRoKGNhc2VEZWYucGF0aCwgdGVzdENvbmZpZy50YXJnZXQuY3dkKTtcclxuICAgICAgICAgICAgdGMuZm9ybWF0ID0gJ2pzJztcclxuICAgICAgICAgICAgdGMuaXRlcmF0aW9uQ291bnQgPSBjYXNlRGVmLml0ZXJhdGlvbnMgfHwgY2FzZURlZi5pdGVyYXRpb25Db3VudCB8fCAxO1xyXG4gICAgICAgICAgICBzdWl0ZS5jYXNlcy5wdXNoKHRjKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gc3VpdGU7XHJcbiAgICB9LFxyXG5cclxuICAgIGdlbmVyYXRlVGVzdFN1aXRlRnJvbUpTRmlsZTogYXN5bmMgZnVuY3Rpb24gKGZpbGVQYXRoLCBwYXJhbUZpbGUgPSBudWxsLCBwYXJhbU1vZGUgPSBudWxsLCBub1BhcmFtQXV0b1NlYXJjaCA9IHRydWUsIGl0ZXJhdGlvbkNvdW50ID0gMSkge1xyXG4gICAgICAgIHZhciBmaWxlTmFtZU5vRXh0ID0gc2VsZi5nZXRGaWxlTmFtZVdpdGhvdXRFeHQoZmlsZVBhdGgpO1xyXG5cclxuICAgICAgICB2YXIgdGVzdGNhc2UgPSBuZXcgcmVxdWlyZSgnLi4vbW9kZWwvdGVzdGNhc2UuanMnKSgpO1xyXG4gICAgICAgIHRlc3RjYXNlLm5hbWUgPSBmaWxlTmFtZU5vRXh0O1xyXG4gICAgICAgIHRlc3RjYXNlLnBhdGggPSBmaWxlUGF0aDtcclxuICAgICAgICB0ZXN0Y2FzZS5mb3JtYXQgPSAnanMnO1xyXG4gICAgICAgIHRlc3RjYXNlLml0ZXJhdGlvbkNvdW50ID0gMTtcclxuXHJcbiAgICAgICAgdmFyIHN1aXRlID0gbmV3IHJlcXVpcmUoJy4uL21vZGVsL3Rlc3RzdWl0ZS5qcycpKCk7XHJcbiAgICAgICAgc3VpdGUubmFtZSA9IHRlc3RjYXNlLm5hbWU7XHJcbiAgICAgICAgc3VpdGUuaWQgPSB0ZXN0Y2FzZS5pZDtcclxuICAgICAgICBzdWl0ZS5pdGVyYXRpb25Db3VudCA9IGl0ZXJhdGlvbkNvdW50O1xyXG4gICAgICAgIHN1aXRlLmNhc2VzLnB1c2godGVzdGNhc2UpO1xyXG4gICAgICAgIGlmICh0ZXN0Y2FzZS5yZW9wZW5TZXNzaW9uKSB7XHJcbiAgICAgICAgICAgIHN1aXRlLnJlb3BlblNlc3Npb24gPSB0ZXN0Y2FzZS5yZW9wZW5TZXNzaW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjd2QgPSBwYXRoLmRpcm5hbWUoZmlsZVBhdGgpO1xyXG4gICAgICAgIHN1aXRlLnBhcmFtTWFuYWdlciA9IGF3YWl0IHNlbGYuZ2V0UGFyYW1ldGVyTWFuYWdlcihmaWxlUGF0aCwgeyBmaWxlOiBwYXJhbUZpbGUsIG1vZGU6IHBhcmFtTW9kZSB9LCBjd2QpO1xyXG4gICAgICAgIC8vIGlmIHBhcmFtZXRlciByZWFkaW5nIG1vZGUgaXMgJ2FsbCcgdGhlbiBjaGFuZ2UgaXRlcmF0aW9uQ291bnQgdG8gdGhlIGFtb3VudCBvZiByb3dzIGluIHRoZSBwYXJhbSBmaWxlXHJcbiAgICAgICAgaWYgKHN1aXRlLnBhcmFtTWFuYWdlciAmJiBwYXJhbU1vZGUgPT0gJ2FsbCcpIHtcclxuICAgICAgICAgICAgc3VpdGUuaXRlcmF0aW9uQ291bnQgPSBzdWl0ZS5wYXJhbU1hbmFnZXIucm93cztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN1aXRlO1xyXG4gICAgfSxcclxuXHJcbiAgICBnZXRQYXJhbWV0ZXJNYW5hZ2VyOiBhc3luYyBmdW5jdGlvbihtYWluRmlsZVBhdGgsIHBhcmFtT3B0cyA9IG51bGwsIGN3ZCA9IG51bGwsIGF1dG9TZWFyY2ggPSB0cnVlKSB7XHJcbiAgICAgICAgbGV0IHBhcmFtRmlsZVBhdGggPSBwYXJhbU9wdHMgJiYgcGFyYW1PcHRzLmZpbGUgPyBwYXJhbU9wdHMuZmlsZSA6IG51bGw7XHJcbiAgICAgICAgbGV0IHBhcmFtTW9kZSA9IHBhcmFtT3B0cyAmJiBwYXJhbU9wdHMubW9kZSA/IHBhcmFtT3B0cy5tb2RlIDogJ3NlcSc7XHJcblxyXG4gICAgICAgIGlmIChwYXJhbUZpbGVQYXRoICYmIGN3ZCAmJiAhcGF0aC5pc0Fic29sdXRlKHBhcmFtRmlsZVBhdGgpKSB7XHJcbiAgICAgICAgICAgIHBhcmFtRmlsZVBhdGggPSBwYXRoLmpvaW4oY3dkLCBwYXJhbUZpbGVQYXRoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBhd2FpdCBzZWxmLmxvYWRQYXJhbWV0ZXJNYW5hZ2VyKG1haW5GaWxlUGF0aCwgcGFyYW1GaWxlUGF0aCwgcGFyYW1Nb2RlLCBhdXRvU2VhcmNoKTtcclxuICAgIH0sXHJcblxyXG4gICAgZ2VuZXJhdGVUZXN0U3VpdGVGcm9tSnNvbkZpbGU6IGFzeW5jIGZ1bmN0aW9uIChmaWxlUGF0aCwgcGFyYW1GaWxlLCBwYXJhbU1vZGUgPSBudWxsLCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICBjb25zdCB0ZXN0Q29uZmlnID0ge1xyXG4gICAgICAgICAgICAuLi5vcHRpb25zIHx8IHt9LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKHBhcmFtRmlsZSkge1xyXG4gICAgICAgICAgICB0ZXN0Q29uZmlnLnBhcmFtZXRlcnMgPSB7XHJcbiAgICAgICAgICAgICAgICBmaWxlOiBwYXJhbUZpbGUsXHJcbiAgICAgICAgICAgICAgICBtb2RlOiBwYXJhbU1vZGUsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhd2FpdCBzZWxmLmdlbmVyYXRlVGVzdFN1aXRlRnJvbUpzb24ocmVxdWlyZShmaWxlUGF0aCksIHRlc3RDb25maWcpO1xyXG4gICAgfSxcclxuXHJcbiAgICBnZXRGaWxlTmFtZVdpdGhvdXRFeHQ6IGZ1bmN0aW9uIChmaWxlUGF0aCkge1xyXG4gICAgICAgIHZhciBmaWxlTmFtZSA9IHBhdGguYmFzZW5hbWUoZmlsZVBhdGgpO1xyXG4gICAgICAgIHZhciBmaWxlRXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKTtcclxuICAgICAgICB2YXIgZmlsZVBhdGhOb0V4dCA9IGZpbGVOYW1lLnN1YnN0cmluZygwLCBmaWxlTmFtZS5sYXN0SW5kZXhPZihmaWxlRXh0KSk7XHJcbiAgICAgICAgcmV0dXJuIGZpbGVQYXRoTm9FeHQ7XHJcbiAgICB9LFxyXG5cclxuICAgIGxvYWRQYXJhbWV0ZXJNYW5hZ2VyOiBhc3luYyBmdW5jdGlvbihtYWluRmlsZSwgcGFyYW1GaWxlLCBwYXJhbU1vZGUsIGF1dG9TZWFyY2ggPSBmYWxzZSkge1xyXG4gICAgICAgIHZhciBwYXJhbU1hbmFnZXIgPSBudWxsO1xyXG4gICAgICAgIC8vIGlmIHBhcmFtIGZpbGUgaXMgbm90IHNwZWNpZmllZCwgdGhlbiBjaGVjayBpZiBKUyBmaWxlIGlzIGNvbWluZyBpbiBwYWlyIHdpdGggYSBwYXJhbWV0ZXIgZmlsZSBcclxuICAgICAgICAvLyAoY3VycmVudGx5IHN1cHBvcnRpbmcgQ1NWIG9yIFRYVClcclxuICAgICAgICBpZiAoIXBhcmFtRmlsZSAmJiBhdXRvU2VhcmNoKSB7XHJcbiAgICAgICAgICAgIHZhciBmaWxlTmFtZU5vRXh0ID0gc2VsZi5nZXRGaWxlTmFtZVdpdGhvdXRFeHQobWFpbkZpbGUpO1xyXG4gICAgICAgICAgICB2YXIgY3N2UGFyYW1GaWxlID0gcGF0aC5qb2luKHBhdGguZGlybmFtZShtYWluRmlsZSksIGZpbGVOYW1lTm9FeHQgKyAnLmNzdicpO1xyXG4gICAgICAgICAgICB2YXIgdHh0UGFyYW1GaWxlID0gcGF0aC5qb2luKHBhdGguZGlybmFtZShtYWluRmlsZSksIGZpbGVOYW1lTm9FeHQgKyAnLnR4dCcpO1xyXG4gICAgICAgICAgICB2YXIgeGxzUGFyYW1GaWxlID0gcGF0aC5qb2luKHBhdGguZGlybmFtZShtYWluRmlsZSksIGZpbGVOYW1lTm9FeHQgKyAnLnhscycpO1xyXG4gICAgICAgICAgICB2YXIgeGxzeFBhcmFtRmlsZSA9IHBhdGguam9pbihwYXRoLmRpcm5hbWUobWFpbkZpbGUpLCBmaWxlTmFtZU5vRXh0ICsgJy54bHN4Jyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhjc3ZQYXJhbUZpbGUpKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbUZpbGUgPSBjc3ZQYXJhbUZpbGU7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZnMuZXhpc3RzU3luYyh0eHRQYXJhbUZpbGUpKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbUZpbGUgPSB0eHRQYXJhbUZpbGU7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZnMuZXhpc3RzU3luYyh4bHNQYXJhbUZpbGUpKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbUZpbGUgPSB4bHNQYXJhbUZpbGU7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZnMuZXhpc3RzU3luYyh4bHN4UGFyYW1GaWxlKSkge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1GaWxlID0geGxzeFBhcmFtRmlsZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocGFyYW1GaWxlKSB7XHJcbiAgICAgICAgICAgIHBhcmFtTWFuYWdlciA9IG5ldyByZXF1aXJlKCcuL3BhcmFtLW1hbmFnZXInKShwYXJhbUZpbGUsIHBhcmFtTW9kZSB8fCAnc2VxJyk7XHJcbiAgICAgICAgICAgIGF3YWl0IHBhcmFtTWFuYWdlci5pbml0KCk7XHJcbiAgICAgICAgICAgIHJldHVybiBwYXJhbU1hbmFnZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfSxcclxuXHJcbiAgICByZXNvbHZlUGF0aDogZnVuY3Rpb24ocGF0aFRvUmVzb2x2ZSwgYmFzZUZvbGRlcikge1xyXG4gICAgICAgIGlmIChwYXRoLmlzQWJzb2x1dGUocGF0aFRvUmVzb2x2ZSkpXHJcbiAgICAgICAgICAgIHJldHVybiBwYXRoVG9SZXNvbHZlO1xyXG4gICAgICAgIHJldHVybiBwYXRoLnJlc29sdmUoYmFzZUZvbGRlciwgcGF0aFRvUmVzb2x2ZSk7XHJcbiAgICB9LFxyXG5cclxuICAgIG1ha2VTZXJpYWxpemFibGU6IGZ1bmN0aW9uKGVycikge1xyXG4gICAgICAgIGlmICh0eXBlb2YgZXJyID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICByZXR1cm4gZGVzdHJveUNpcmN1bGFyKGVyciwgW10pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZXJyO1xyXG5cclxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vam9ucGFja2VyL2Rlc3Ryb3ktY2lyY3VsYXJcclxuICAgICAgICBmdW5jdGlvbiBkZXN0cm95Q2lyY3VsYXIoZnJvbSwgc2Vlbikge1xyXG4gICAgICAgICAgICB2YXIgdG8gPSBBcnJheS5pc0FycmF5KGZyb20pID8gW10gOiB7fTtcclxuICAgICAgICAgICAgc2Vlbi5wdXNoKGZyb20pO1xyXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhmcm9tKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFmcm9tW2tleV0gfHwgKHR5cGVvZiBmcm9tW2tleV0gIT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoZnJvbVtrZXldKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0b1trZXldID0gZnJvbVtrZXldO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZWVuLmluZGV4T2YoZnJvbVtrZXldKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvW2tleV0gPSBkZXN0cm95Q2lyY3VsYXIoZnJvbVtrZXldLCBzZWVuLnNsaWNlKDApKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB0b1trZXldID0gJ1tDaXJjdWxhcl0nO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHRvO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgZ2V0TWV0aG9kU2lnbmF0dXJlOiBmdW5jdGlvbihtb2R1bGVOYW1lLCBtZXRob2ROYW1lLCBtZXRob2RBcmdzKSB7XHJcbiAgICAgICAgcmV0dXJuIG1vZHVsZU5hbWUgKyAnLicgKyBtZXRob2ROYW1lICsgJygnICsgc2VsZi5zdHJpbmdpZnkobWV0aG9kQXJncywgMCkgKyAnKSc7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qXHJcbiAgICAgKiBVc2VkIHRvIHNlcmlhbGl6ZSBveHlnZW4gY29tbWFuZCBwYXJhbWV0ZXJzLiBQcm9kdWNlcyBhIG5vbi1jb21wbGlhbnQgSlNPTiBzZXJpYWxpemF0aW9uLlxyXG4gICAgICovXHJcbiAgICBzdHJpbmdpZnk6IGZ1bmN0aW9uIChhcmdzLCBpbmRlbnRhdGlvbiA9IDApIHtcclxuICAgICAgICAvLyByZXR1cm4gc3RyaW5ncyBhcyBpcyAob3RoZXJ3aXNlIGlmIHdlIHNlcmlhbGl6ZSBzdHJpbmcgaXQgd2lsbCBnZXQgd3JhcHBlZCBpbiBkb3VibGUgcXVvdGVzKVxyXG4gICAgICAgIGlmICh0eXBlb2YgYXJncyA9PT0gJ3N0cmluZycgfHwgYXJncyBpbnN0YW5jZW9mIFN0cmluZykge1xyXG4gICAgICAgICAgICByZXR1cm4gYXJncztcclxuICAgICAgICB9IGVsc2UgaWYgKGFyZ3MubGVuZ3RoID09PSAxICYmICh0eXBlb2YgYXJnc1swXSA9PT0gJ3N0cmluZycgfHwgYXJnc1swXSBpbnN0YW5jZW9mIFN0cmluZykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFyZ3NbMF07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc3RyO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHN0ciA9IEpTT04uc3RyaW5naWZ5KGFyZ3MsIChrZXksIHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYmlnaW50JykgeyAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vR29vZ2xlQ2hyb21lTGFicy9qc2JpL2lzc3Vlcy8zMFxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHVuZGVmaW5lZCBpcyBpbnNpZGUgYW4gYXJyYXkgdGhlbiBpdCB3aWxsIGJlIHNlcmlhbGl6ZWQgYXMgbnVsbC5cclxuICAgICAgICAgICAgICAgICAgICAvLyBob3dldmVyIGlmIHdlIGp1c3QgcmV0dXJuICd1bmRlZmluZWQnIGhlcmUgYXMgc3RyaW5nLCBpdCB3aWxsIGJlIGVuY2xvc2VkIGluIHF1b3Rlcy5cclxuICAgICAgICAgICAgICAgICAgICAvLyBzbyByZXR1cm4gbWFnaWMgc3RyaW5nIGluc3RlYWQgYW5kIHRyaW0gdGhlIHF1b3RlcyBsYXRlciBvblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnX19VTkRFRklORUQnO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcvJyArIHZhbHVlLnNvdXJjZSArICcvJyArIHZhbHVlLmZsYWdzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgICAgICB9LCBpbmRlbnRhdGlvbik7XHJcbiAgICAgICAgICAgIC8vIHRyaW0gdGhlIGVuY2xvc2luZyBhcnJheSBhbmQgYW55IHdoaXRlc3BhY2VcclxuICAgICAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoL15cXFt7MX1cXHMqfFxccypcXF17MX0kL2csICcnKTtcclxuICAgICAgICAgICAgLy8gcmVtb3ZlIHNwYWNlIGJlZm9yZSBsYXN0IH0gYW5kIF0sIHRvIG1ha2UgaW5kZW50YXRpb24gbXRjaCB0aGUgb3BlbmluZyBicmFja2V0XHJcbiAgICAgICAgICAgIGlmIChzdHIuZW5kc1dpdGgoJyAgfScpKSB7XHJcbiAgICAgICAgICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIHN0ci5sZW5ndGggLSAzKSArICd9JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoc3RyLmVuZHNXaXRoKCcgIF0nKSkge1xyXG4gICAgICAgICAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBzdHIubGVuZ3RoIC0gMykgKyAnXSc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY29udmVydCBtYWdpYyAndW5kZWZpbmVkJyBzdHJpbmcgdG8gcHJvcGVyIHJlcHJlc2VudGF0aW9uXHJcbiAgICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKC9cIl9fVU5ERUZJTkVEXCIvZywgJ3VuZGVmaW5lZCcpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gc2VyaWFsaXplIGNvbW1hbmQgYXJndW1lbnRzOiAnLCBlKTtcclxuICAgICAgICAgICAgLy8gaWYgSlNPTi5zdHJpbmdpZnkgZmFpbHMsIHRoZW4gZmFsbGJhY2sgdG8gdXRpbC5pbnNwZWN0LlxyXG4gICAgICAgICAgICAvLyAod2UgZG9uJ3QgdXNlIHV0aWwuaW5zcGVjdCBpbml0aWFseSBiZWNhdXNlIGl0IGRvZXNuJ3Qgc3VwcG9ydCBvdXRwdXQgaW5kZW50YXRpb24pXHJcbiAgICAgICAgICAgIHJldHVybiB1dGlsLmluc3BlY3QoYXJnc1swXSwgeyBkZXB0aDogMyB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgIH0sXHJcblxyXG4gICAgaXNJbkRlYnVnTW9kZTogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgLy8gdGhpcyBhbHdheXMgdHJ1ZTtcclxuICAgICAgICAvLyBjb25zdCBhcmd2ID0gcHJvY2Vzcy5leGVjQXJndi5qb2luKCk7XHJcblxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdwcm9jZXNzLmRlYnVnUG9ydCcsIHByb2Nlc3MuZGVidWdQb3J0KTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImFyZ3YuaW5jbHVkZXMoJ2luc3BlY3QnKVwiLCBhcmd2LmluY2x1ZGVzKCdpbnNwZWN0JykpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYXJndi5pbmNsdWRlcygnaW5zcGVjdC1icmsnKVwiLCBhcmd2LmluY2x1ZGVzKCdpbnNwZWN0LWJyaycpKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImFyZ3YuaW5jbHVkZXMoJ2RlYnVnJylcIiwgYXJndi5pbmNsdWRlcygnZGVidWcnKSk7XHJcblxyXG4gICAgICAgIC8vIHJldHVybiBwcm9jZXNzLmRlYnVnUG9ydCB8fCBhcmd2LmluY2x1ZGVzKCdpbnNwZWN0JykgfHwgYXJndi5pbmNsdWRlcygnaW5zcGVjdC1icmsnKSB8fCBhcmd2LmluY2x1ZGVzKCdkZWJ1ZycpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9LFxyXG5cclxuICAgIGxvYWRUZXN0SG9va3M6IGZ1bmN0aW9uKG9wdGlvbnMpIHtcclxuICAgICAgICBsZXQgaG9va3MgPSBEVU1NWV9IT09LUztcclxuICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnRhcmdldCAmJiBvcHRpb25zLnRhcmdldC5uYW1lID09PSAnb3h5Z2VuLmNvbmYnKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBob29rcyA9IHJlcXVpcmUob3B0aW9ucy50YXJnZXQucGF0aCkuaG9va3MgfHwgRFVNTVlfSE9PS1M7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignRXJyb3IgbG9hZGluZyB1c2VyIGhvb2tzOicsIGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBob29rcztcclxuICAgIH0sXHJcblxyXG4gICAgZXhlY3V0ZVRlc3RIb29rOiBhc3luYyBmdW5jdGlvbihob29rcywgbWV0aG9kLCBhcmdzKSB7XHJcbiAgICAgICAgLy8gaWYgaG9vayBpcyBub3QgZGVmaW5lZCwganVzdCBxdWlldGx5IGlnbm9yZSBpdFxyXG4gICAgICAgIGlmICghaG9va3MgfHwgIW1ldGhvZCB8fCAhaG9va3NbbWV0aG9kXSB8fCB0eXBlb2YgaG9va3NbbWV0aG9kXSAhPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNsZWFyIHRyYW5zYWN0aW9uIG5hbWUgd2hlbiBleGVjdXRpbmcgaG9va3MgKGV4Y2VwdCBjb21tYW5kIHN0YXJ0L2VuZCBob29rcylcclxuICAgICAgICAvLyBvdGhlcndpc2UgdGVzdCBzdGVwcyB3aWxsIGJlIG1lc3NlZCB1cC4gZS5nLiB0cmFuc2FjdGlvbiBmcm9tIGNhc2UgMSB3aWxsIGJlIHNob3duIGluIGNhc2UgMiwgZXRjLlxyXG4gICAgICAgIGlmIChbJ2JlZm9yZVRlc3QnLCAnYmVmb3JlU3VpdGUnLCAnYmVmb3JlQ2FzZScsICdhZnRlckNhc2UnLCAnYWZ0ZXJTdWl0ZScsICdhZnRlclRlc3QnXS5pbmNsdWRlcyhtZXRob2QpKSB7XHJcbiAgICAgICAgICAgIGdsb2JhbC5fbGFzdFRyYW5zYWN0aW9uTmFtZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAoZ2xvYmFsLmNoYWlBbmRNb2NrZXJ5TG9hZGVkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpZ25vcmVcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNoYWkgPSByZXF1aXJlKCdjaGFpJyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtb2NrZXJ5ID0gcmVxdWlyZSgnbW9ja2VyeScpO1xyXG4gICAgICAgICAgICAgICAgbW9ja2VyeS5lbmFibGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsZWFuQ2FjaGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgd2Fybk9uUmVwbGFjZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgd2Fybk9uVW5yZWdpc3RlcmVkOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBtb2NrZXJ5LnJlZ2lzdGVyTW9jaygnY2hhaScsIGNoYWkpO1xyXG4gICAgICAgICAgICAgICAgZ2xvYmFsLmNoYWlBbmRNb2NrZXJ5TG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYXdhaXQgaG9va3NbbWV0aG9kXS5hcHBseSh1bmRlZmluZWQsIGFyZ3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBIb29rIFwiJHttZXRob2R9XCIgaGFzIHRocm93biBhbiBlcnJvcjogJHtlLnRvU3RyaW5nKCl9YCk7XHJcbiAgICAgICAgICAgIHRocm93IGU7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICBnZXRPeE1vZHVsZXNEaXI6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnb3hfbW9kdWxlcycpO1xyXG4gICAgfSxcclxuXHJcbiAgICBob29rTG9ncyhsb2dnZXIpIHtcclxuICAgICAgICBjb25zdCBvcmlnbG9nID0gY29uc29sZS5sb2c7XHJcbiAgICAgICAgY29uc3Qgb3JpZ0RlYnVnID0gY29uc29sZS5kZWJ1ZztcclxuICAgICAgICBjb25zdCBvcmlnSW5mbyA9IGNvbnNvbGUuaW5mbztcclxuICAgICAgICBjb25zdCBvcmlnV2FybiA9IGNvbnNvbGUud2FybjtcclxuICAgICAgICBjb25zdCBvcmlnRXJyb3IgPSBjb25zb2xlLmVycm9yO1xyXG5cclxuICAgICAgICBjb25zdCBwcm9jZXNzQXJncyA9IChhcmd1bWVudEFycmF5KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSBbXTtcclxuXHJcbiAgICAgICAgICAgIGlmIChhcmd1bWVudEFycmF5ICYmIGFyZ3VtZW50QXJyYXkubWFwKSB7XHJcbiAgICAgICAgICAgICAgICBhcmd1bWVudEFycmF5Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goYCR7aXRlbX1gKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChgJHt1dGlsLmluc3BlY3QoaXRlbSl9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQuam9pbignICcpO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nID0gZnVuY3Rpb24gKC4uLmFyZ3VtZW50QXJyYXkpIHtcclxuICAgICAgICAgICAgb3JpZ2xvZy5hcHBseSh0aGlzLCBhcmd1bWVudEFycmF5KTtcclxuICAgICAgICAgICAgbG9nZ2VyLmluZm8ocHJvY2Vzc0FyZ3MoYXJndW1lbnRBcnJheSkpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc29sZS5kZWJ1ZyA9IGZ1bmN0aW9uICguLi5hcmd1bWVudEFycmF5KSB7XHJcbiAgICAgICAgICAgIG9yaWdEZWJ1Zy5hcHBseSh0aGlzLCBhcmd1bWVudEFycmF5KTtcclxuICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKHByb2Nlc3NBcmdzKGFyZ3VtZW50QXJyYXkpKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnNvbGUuaW5mbyA9IGZ1bmN0aW9uICguLi5hcmd1bWVudEFycmF5KSB7XHJcbiAgICAgICAgICAgIG9yaWdJbmZvLmFwcGx5KHRoaXMsIGFyZ3VtZW50QXJyYXkpO1xyXG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhwcm9jZXNzQXJncyhhcmd1bWVudEFycmF5KSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zb2xlLndhcm4gPSBmdW5jdGlvbiAoLi4uYXJndW1lbnRBcnJheSkge1xyXG4gICAgICAgICAgICBvcmlnV2Fybi5hcHBseSh0aGlzLCBhcmd1bWVudEFycmF5KTtcclxuICAgICAgICAgICAgbG9nZ2VyLndhcm4ocHJvY2Vzc0FyZ3MoYXJndW1lbnRBcnJheSkpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc29sZS5lcnJvciA9IGZ1bmN0aW9uICguLi5hcmd1bWVudEFycmF5KSB7XHJcbiAgICAgICAgICAgIG9yaWdFcnJvci5hcHBseSh0aGlzLCBhcmd1bWVudEFycmF5KTtcclxuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKHByb2Nlc3NBcmdzKGFyZ3VtZW50QXJyYXkpKTtcclxuICAgICAgICB9O1xyXG4gICAgfSxcclxuXHJcbiAgICBtYWtlVHJhbnNhY3Rpb25GYWlsZWRJZlN0ZXBGYWlsZWQoc3RlcHMpIHtcclxuICAgICAgICBpZiAoc3RlcHMgJiYgc3RlcHMubGVuZ3RoICYmIHN0ZXBzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgbGV0IGxhc3RGaW5kZWRUcmFuc2FjdGlvbkluZGV4ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1N0ZXBzID0gWy4uLnN0ZXBzXTtcclxuICAgICAgICAgICAgc3RlcHMubWFwKChpdGVtLCBpZHgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLm5hbWUgJiYgaXRlbS5uYW1lLmluY2x1ZGVzICYmIGl0ZW0ubmFtZS5pbmNsdWRlcygnLnRyYW5zYWN0aW9uKCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGFzdEZpbmRlZFRyYW5zYWN0aW9uSW5kZXggPSBpZHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBsYXN0RmluZGVkVHJhbnNhY3Rpb25JbmRleCA9PT0gJ251bWJlcicgJiYgaXRlbS5zdGF0dXMgJiYgaXRlbS5zdGF0dXMgPT09ICdmYWlsZWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3U3RlcHNbbGFzdEZpbmRlZFRyYW5zYWN0aW9uSW5kZXhdWydzdGF0dXMnXSA9ICdmYWlsZWQnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBuZXdTdGVwcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBzdGVwcztcclxuICAgIH0sXHJcblxyXG4gICAgZGVjcnlwdCh0ZXh0KSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IGVuY3J5cHRlZFRleHQgPSBCdWZmZXIuZnJvbSh0ZXh0LCAnaGV4Jyk7XHJcbiAgICAgICAgICAgIGxldCBkZWNpcGhlciA9IGNyeXB0by5jcmVhdGVEZWNpcGhlcml2KGFsZ29yaXRobSwga2V5LCBpdik7XHJcbiAgICAgICAgICAgIGxldCBkZWNyeXB0ZWQgPSBkZWNpcGhlci51cGRhdGUoZW5jcnlwdGVkVGV4dCk7XHJcbiAgICAgICAgICAgIGRlY3J5cHRlZCA9IEJ1ZmZlci5jb25jYXQoW2RlY3J5cHRlZCwgZGVjaXBoZXIuZmluYWwoKV0pO1xyXG4gICAgICAgICAgICBjb25zdCByZXRWYWwgPSBkZWNyeXB0ZWQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEZWNyeXB0UmVzdWx0KHJldFZhbCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgT3h5Z2VuRXJyb3IoZXJyb3JIZWxwZXIuZXJyb3JDb2RlLkNSWVBUT19FUlJPUiwgXCJUaGUgcHJvdmlkZWQgYXJndW1lbnQgZG9lc24ndCBzZWVtIHRvIGJlIGEgdmFsaWQgY2lwaGVyIHByb2R1Y2VkIGJ5ICd1dGlscy5lbmNyeXB0J1wiKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIGVuY3J5cHQodGV4dCkge1xyXG4gICAgICAgIGxldCBjaXBoZXIgPSBjcnlwdG8uY3JlYXRlQ2lwaGVyaXYoYWxnb3JpdGhtLCBrZXksIGl2KTtcclxuICAgICAgICBsZXQgZW5jcnlwdGVkID0gY2lwaGVyLnVwZGF0ZSh0ZXh0KTtcclxuICAgICAgICBlbmNyeXB0ZWQgPSBCdWZmZXIuY29uY2F0KFtlbmNyeXB0ZWQsIGNpcGhlci5maW5hbCgpXSk7XHJcbiAgICAgICAgcmV0dXJuIGVuY3J5cHRlZC50b1N0cmluZygnaGV4Jyk7XHJcbiAgICB9LFxyXG5cclxuICAgIHNsZWVwOiBmdW5jdGlvbih0aW1lb3V0KSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIHRpbWVvdXQpKTtcclxuICAgIH0sXHJcblxyXG4gICAgZG93bmxvYWRWaWRlbzogYXN5bmMgZnVuY3Rpb24oZmlsZU5hbWUsIHZpZGVvVXJsLCBvcHRpb25zKSB7XHJcbiAgICAgICAgY29uc3QgbG9jYWxWaWRlb0ZpbGVQYXRoID0gZ2V0VmlkZW9BdHRhY2htZW50UGF0aChmaWxlTmFtZSwgb3B0aW9ucyk7XHJcbiAgICAgICAgbGV0IGVycm9yO1xyXG4gICAgICAgIGZvciAobGV0IGk9MDsgaTxET1dOTE9BRF9SRVRSSUVTOyBpKyspIHtcclxuICAgICAgICAgICAgZXJyb3IgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGxvY2FsVmlkZW9GaWxlUGF0aCwgYXdhaXQgZG93bmxvYWQodmlkZW9VcmwpKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBlcnJvciA9IGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYXdhaXQgc2VsZi5zbGVlcChET1dOTE9BRF9SRVRSWV9XQUlUX1RJTUUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWVycm9yKSB7XHJcbiAgICAgICAgICAgIC8vIGRlbGV0ZSB0aGUgdmlkZW8gZmlsZSBmcm9tIHRoZSBzZXJ2ZXJcclxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgIHVybDogdmlkZW9VcmwsXHJcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdERUxFVEUnLFxyXG4gICAgICAgICAgICAgICAganNvbjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdChvcHRpb25zLCAoZXJyLCByZXMsIGJvZHkpID0+IHsgcmVzb2x2ZShlcnIgPyBudWxsIDogbG9jYWxWaWRlb0ZpbGVQYXRoKTsgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdVbmFibGUgdG8gZGVsZXRlIHZpZGVvIGZpbGUgZnJvbSB0aGUgcmVtb3RlIHNlcnZlcjogJywgZS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKCdVbmFibGUgdG8gZG93bmxvYWQgYW5kIHNhdmUgdmlkZW8gYXR0YWNobWVudDogJywgZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufTtcclxuIl19
|
|
@@ -20,4 +20,4 @@ module.exports = function () {
|
|
|
20
20
|
attachments: []
|
|
21
21
|
};
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC9jYXNlLXJlc3VsdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibmFtZSIsIml0ZXJhdGlvbk51bSIsImxvY2F0aW9uIiwic3RhcnRUaW1lIiwiZW5kVGltZSIsImR1cmF0aW9uIiwic3RhdHVzIiwic3RlcHMiLCJsb2dzIiwiaGFyIiwiZmFpbHVyZSIsImNvbnRleHQiLCJ0ZXN0QXR0cmlidXRlcyIsImF0dGFjaG1lbnRzIl0sIm1hcHBpbmdzIjoiOzs7O0FBWUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFZO0FBQ3pCLFNBQU87QUFDSEMsSUFBQUEsSUFBSSxFQUFFLElBREg7QUFFSEMsSUFBQUEsWUFBWSxFQUFFLENBRlg7QUFHSEMsSUFBQUEsUUFBUSxFQUFFLElBSFA7QUFJSEMsSUFBQUEsU0FBUyxFQUFFLElBSlI7QUFLSEMsSUFBQUEsT0FBTyxFQUFFLElBTE47QUFNSEMsSUFBQUEsUUFBUSxFQUFFLElBTlA7QUFPSEMsSUFBQUEsTUFBTSxFQUFFLElBUEw7QUFRSEMsSUFBQUEsS0FBSyxFQUFFLEVBUko7QUFTSEMsSUFBQUEsSUFBSSxFQUFFLEVBVEg7QUFVSEMsSUFBQUEsR0FBRyxFQUFFLElBVkY7QUFXSEMsSUFBQUEsT0FBTyxFQUFFLElBWE47QUFZSEMsSUFBQUEsT0FBTyxFQUFFLElBWk47QUFhSEMsSUFBQUEsY0FBYyxFQUFFLEVBYmI7QUFjSEMsSUFBQUEsV0FBVyxFQUFFO0FBZFYsR0FBUDtBQWdCSCxDQWpCRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLypcclxuICogVGVzdCBDYXNlIFJlc3VsdHNcclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBudWxsLFxyXG4gICAgICAgIGl0ZXJhdGlvbk51bTogMSxcclxuICAgICAgICBsb2NhdGlvbjogbnVsbCxcclxuICAgICAgICBzdGFydFRpbWU6IG51bGwsXHJcbiAgICAgICAgZW5kVGltZTogbnVsbCxcclxuICAgICAgICBkdXJhdGlvbjogbnVsbCxcclxuICAgICAgICBzdGF0dXM6IG51bGwsXHJcbiAgICAgICAgc3RlcHM6IFtdLCAgICAvLyBhcnJheSBvZiBzdGVwLXJlc3VsdC5qc1xyXG4gICAgICAgIGxvZ3M6IFtdLFxyXG4gICAgICAgIGhhcjogbnVsbCxcclxuICAgICAgICBmYWlsdXJlOiBudWxsLFxyXG4gICAgICAgIGNvbnRleHQ6IG51bGwsXHJcbiAgICAgICAgdGVzdEF0dHJpYnV0ZXM6IHt9LFxyXG4gICAgICAgIGF0dGFjaG1lbnRzOiBbXVxyXG4gICAgfTtcclxufTtcclxuIl19
|
package/build/model/failure.js
CHANGED
|
@@ -12,4 +12,4 @@ module.exports = function () {
|
|
|
12
12
|
fatal: false
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC9mYWlsdXJlLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJ0eXBlIiwibWVzc2FnZSIsImRldGFpbHMiLCJsb2NhdGlvbiIsImRhdGEiLCJmYXRhbCJdLCJtYXBwaW5ncyI6Ijs7OztBQVlBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsWUFBWTtBQUN6QixTQUFPO0FBQ0hDLElBQUFBLElBQUksRUFBRSxJQURIO0FBRUhDLElBQUFBLE9BQU8sRUFBRSxJQUZOO0FBR0hDLElBQUFBLE9BQU8sRUFBRSxJQUhOO0FBSUhDLElBQUFBLFFBQVEsRUFBRSxJQUpQO0FBS0hDLElBQUFBLElBQUksRUFBRSxJQUxIO0FBTUhDLElBQUFBLEtBQUssRUFBRTtBQU5KLEdBQVA7QUFRSCxDQVREIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKlxyXG4gKiBUZXN0LCBDYXNlLCBTdWl0ZSBhbmQgU3RlcCBmYWlsdXJlIGRldGFpbHNcclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlOiBudWxsLFxyXG4gICAgICAgIG1lc3NhZ2U6IG51bGwsXHJcbiAgICAgICAgZGV0YWlsczogbnVsbCxcclxuICAgICAgICBsb2NhdGlvbjogbnVsbCxcclxuICAgICAgICBkYXRhOiBudWxsLFxyXG4gICAgICAgIGZhdGFsOiBmYWxzZSxcclxuICAgIH07XHJcbn07XHJcbiJdfQ==
|
package/build/model/status.js
CHANGED
|
@@ -8,4 +8,4 @@ module.exports = {
|
|
|
8
8
|
WARNING: 'warning',
|
|
9
9
|
SKIPPED: 'skipped'
|
|
10
10
|
};
|
|
11
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC9zdGF0dXMuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZBSUxFRCIsIlBBU1NFRCIsIldBUk5JTkciLCJTS0lQUEVEIl0sIm1hcHBpbmdzIjoiOzs7O0FBU0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxNQUFNLEVBQUUsUUFESztBQUViQyxFQUFBQSxNQUFNLEVBQUUsUUFGSztBQUdiQyxFQUFBQSxPQUFPLEVBQUUsU0FISTtBQUliQyxFQUFBQSxPQUFPLEVBQUU7QUFKSSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBGQUlMRUQ6ICdmYWlsZWQnLFxyXG4gICAgUEFTU0VEOiAncGFzc2VkJyxcclxuICAgIFdBUk5JTkc6ICd3YXJuaW5nJyxcclxuICAgIFNLSVBQRUQ6ICdza2lwcGVkJ1xyXG59O1xyXG4iXX0=
|
|
@@ -19,4 +19,4 @@ module.exports = function () {
|
|
|
19
19
|
steps: []
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC9zdGVwLXJlc3VsdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibmFtZSIsImxvY2F0aW9uIiwic3RhdHVzIiwic3RhcnRUaW1lIiwiZW5kVGltZSIsImR1cmF0aW9uIiwidHJhbnNhY3Rpb24iLCJhY3Rpb24iLCJzY3JlZW5zaG90RmlsZSIsImZhaWx1cmUiLCJzY3JlZW5zaG90Iiwic3RhdHMiLCJzdGVwcyJdLCJtYXBwaW5ncyI6Ijs7OztBQVlBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsWUFBWTtBQUN6QixTQUFPO0FBQ0hDLElBQUFBLElBQUksRUFBRSxJQURIO0FBRUhDLElBQUFBLFFBQVEsRUFBRSxJQUZQO0FBR0hDLElBQUFBLE1BQU0sRUFBRSxJQUhMO0FBSUhDLElBQUFBLFNBQVMsRUFBRSxJQUpSO0FBS0hDLElBQUFBLE9BQU8sRUFBRSxJQUxOO0FBTUhDLElBQUFBLFFBQVEsRUFBRSxJQU5QO0FBT0hDLElBQUFBLFdBQVcsRUFBRSxJQVBWO0FBUUhDLElBQUFBLE1BQU0sRUFBRSxJQVJMO0FBU0hDLElBQUFBLGNBQWMsRUFBRSxJQVRiO0FBVUhDLElBQUFBLE9BQU8sRUFBRSxJQVZOO0FBV0hDLElBQUFBLFVBQVUsRUFBRSxJQVhUO0FBWUhDLElBQUFBLEtBQUssRUFBRSxJQVpKO0FBYUhDLElBQUFBLEtBQUssRUFBRTtBQWJKLEdBQVA7QUFlSCxDQWhCRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLypcclxuICogVGVzdCBTdGVwIFJlc3VsdHNcclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBudWxsLFxyXG4gICAgICAgIGxvY2F0aW9uOiBudWxsLFxyXG4gICAgICAgIHN0YXR1czogbnVsbCxcclxuICAgICAgICBzdGFydFRpbWU6IG51bGwsXHJcbiAgICAgICAgZW5kVGltZTogbnVsbCxcclxuICAgICAgICBkdXJhdGlvbjogbnVsbCxcclxuICAgICAgICB0cmFuc2FjdGlvbjogbnVsbCxcclxuICAgICAgICBhY3Rpb246IG51bGwsICAvLyB0cnVlIC8gZmFsc2VcclxuICAgICAgICBzY3JlZW5zaG90RmlsZTogbnVsbCxcclxuICAgICAgICBmYWlsdXJlOiBudWxsLCAgLy8gdHlwZSBvZiBzdGVwZmFpbHVyZS5qc1xyXG4gICAgICAgIHNjcmVlbnNob3Q6IG51bGwsIC8veyBfOiBudWxsIH1cclxuICAgICAgICBzdGF0czogbnVsbCwgICAgIC8vIG5hdmlnYXRpb24gdGltaW5ncyBvciBvdGhlciBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzXHJcbiAgICAgICAgc3RlcHM6IFtdLCAgICAgIC8vIHN1YiBzdGVwc1xyXG4gICAgfTtcclxufTtcclxuIl19
|
|
@@ -14,4 +14,4 @@ module.exports = function () {
|
|
|
14
14
|
cases: []
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC9zdWl0ZS1yZXN1bHQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImlkIiwibmFtZSIsIml0ZXJhdGlvbk51bSIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJkdXJhdGlvbiIsInN0YXR1cyIsImNhc2VzIl0sIm1hcHBpbmdzIjoiOzs7O0FBWUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFZO0FBQ3pCLFNBQU87QUFDSEMsSUFBQUEsRUFBRSxFQUFFLElBREQ7QUFFSEMsSUFBQUEsSUFBSSxFQUFFLElBRkg7QUFHSEMsSUFBQUEsWUFBWSxFQUFFLENBSFg7QUFJSEMsSUFBQUEsU0FBUyxFQUFFLElBSlI7QUFLSEMsSUFBQUEsT0FBTyxFQUFFLElBTE47QUFNSEMsSUFBQUEsUUFBUSxFQUFFLElBTlA7QUFPSEMsSUFBQUEsTUFBTSxFQUFFLElBUEw7QUFRSEMsSUFBQUEsS0FBSyxFQUFFO0FBUkosR0FBUDtBQVVILENBWEQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qXHJcbiAqIFRlc3QgU3VpdGUgUmVzdWx0XHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaWQ6IG51bGwsXHJcbiAgICAgICAgbmFtZTogbnVsbCxcclxuICAgICAgICBpdGVyYXRpb25OdW06IDEsXHJcbiAgICAgICAgc3RhcnRUaW1lOiBudWxsLFxyXG4gICAgICAgIGVuZFRpbWU6IG51bGwsXHJcbiAgICAgICAgZHVyYXRpb246IG51bGwsXHJcbiAgICAgICAgc3RhdHVzOiBudWxsLFxyXG4gICAgICAgIGNhc2VzOiBbXSAgICAvLyBhcnJheSBvZiBjYXNlLXJlc3VsdC5qc1xyXG4gICAgfTtcclxufTtcclxuIl19
|
|
@@ -17,4 +17,4 @@ module.exports = function () {
|
|
|
17
17
|
suites: []
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC90ZXN0LXJlc3VsdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibmFtZSIsInN0YXR1cyIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJkdXJhdGlvbiIsInRvdGFsQ2FzZXMiLCJmYWlsdXJlIiwiZW52aXJvbm1lbnQiLCJjYXBhYmlsaXRpZXMiLCJvcHRpb25zIiwic3VpdGVzIl0sIm1hcHBpbmdzIjoiOzs7O0FBWUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFZO0FBQ3pCLFNBQU87QUFDSEMsSUFBQUEsSUFBSSxFQUFFLElBREg7QUFFSEMsSUFBQUEsTUFBTSxFQUFFLElBRkw7QUFHSEMsSUFBQUEsU0FBUyxFQUFFLElBSFI7QUFJSEMsSUFBQUEsT0FBTyxFQUFFLElBSk47QUFLSEMsSUFBQUEsUUFBUSxFQUFFLElBTFA7QUFNSEMsSUFBQUEsVUFBVSxFQUFFLElBTlQ7QUFPSEMsSUFBQUEsT0FBTyxFQUFFLElBUE47QUFRSEMsSUFBQUEsV0FBVyxFQUFFLElBUlY7QUFTSEMsSUFBQUEsWUFBWSxFQUFFLElBVFg7QUFVSEMsSUFBQUEsT0FBTyxFQUFFLElBVk47QUFXSEMsSUFBQUEsTUFBTSxFQUFFO0FBWEwsR0FBUDtBQWFILENBZEQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qXHJcbiAqIFRlc3QgUmVzdWx0XHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogbnVsbCxcclxuICAgICAgICBzdGF0dXM6IG51bGwsXHJcbiAgICAgICAgc3RhcnRUaW1lOiBudWxsLFxyXG4gICAgICAgIGVuZFRpbWU6IG51bGwsXHJcbiAgICAgICAgZHVyYXRpb246IG51bGwsXHJcbiAgICAgICAgdG90YWxDYXNlczogbnVsbCxcclxuICAgICAgICBmYWlsdXJlOiBudWxsLFxyXG4gICAgICAgIGVudmlyb25tZW50OiBudWxsLFxyXG4gICAgICAgIGNhcGFiaWxpdGllczogbnVsbCxcclxuICAgICAgICBvcHRpb25zOiBudWxsLFxyXG4gICAgICAgIHN1aXRlczogW10gICAgLy8gdHlwZSBvZiBzdWl0ZS1yZXN1bHQuanNcclxuICAgIH07XHJcbn07XHJcbiJdfQ==
|
package/build/model/testcase.js
CHANGED
|
@@ -13,4 +13,4 @@ module.exports = function () {
|
|
|
13
13
|
poManager: null
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC90ZXN0Y2FzZS5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibmFtZSIsImlkIiwiZm9ybWF0IiwiY29udGVudCIsIml0ZXJhdGlvbkNvdW50IiwicGFyYW1NYW5hZ2VyIiwicG9NYW5hZ2VyIl0sIm1hcHBpbmdzIjoiOzs7O0FBU0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixZQUFZO0FBQ3pCLFNBQU87QUFDSEMsSUFBQUEsSUFBSSxFQUFFLElBREg7QUFFSEMsSUFBQUEsRUFBRSxFQUFFLElBRkQ7QUFHSEMsSUFBQUEsTUFBTSxFQUFFLElBSEw7QUFJSEMsSUFBQUEsT0FBTyxFQUFFLElBSk47QUFLSEMsSUFBQUEsY0FBYyxFQUFFLENBTGI7QUFNSEMsSUFBQUEsWUFBWSxFQUFFLElBTlg7QUFPSEMsSUFBQUEsU0FBUyxFQUFFO0FBUFIsR0FBUDtBQVNILENBVkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBudWxsLFxyXG4gICAgICAgIGlkOiBudWxsLFxyXG4gICAgICAgIGZvcm1hdDogbnVsbCxcclxuICAgICAgICBjb250ZW50OiBudWxsLFxyXG4gICAgICAgIGl0ZXJhdGlvbkNvdW50OiAxLFxyXG4gICAgICAgIHBhcmFtTWFuYWdlcjogbnVsbCxcclxuICAgICAgICBwb01hbmFnZXI6IG51bGxcclxuICAgIH07XHJcbn07XHJcbiJdfQ==
|
package/build/model/testsuite.js
CHANGED
|
@@ -12,4 +12,4 @@ module.exports = function () {
|
|
|
12
12
|
poManager: null
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC90ZXN0c3VpdGUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm5hbWUiLCJpZCIsIml0ZXJhdGlvbkNvdW50IiwiY2FzZXMiLCJwYXJhbU1hbmFnZXIiLCJwb01hbmFnZXIiXSwibWFwcGluZ3MiOiI7Ozs7QUFTQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLFlBQVk7QUFDekIsU0FBTztBQUNIQyxJQUFBQSxJQUFJLEVBQUUsSUFESDtBQUVIQyxJQUFBQSxFQUFFLEVBQUUsSUFGRDtBQUdIQyxJQUFBQSxjQUFjLEVBQUUsQ0FIYjtBQUlIQyxJQUFBQSxLQUFLLEVBQUUsRUFKSjtBQUtIQyxJQUFBQSxZQUFZLEVBQUUsSUFMWDtBQU1IQyxJQUFBQSxTQUFTLEVBQUU7QUFOUixHQUFQO0FBUUgsQ0FURCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6IG51bGwsXHJcbiAgICAgICAgaWQ6IG51bGwsXHJcbiAgICAgICAgaXRlcmF0aW9uQ291bnQ6IDEsXHJcbiAgICAgICAgY2FzZXM6IFtdLFxyXG4gICAgICAgIHBhcmFtTWFuYWdlcjogbnVsbCxcclxuICAgICAgICBwb01hbmFnZXI6IG51bGxcclxuICAgIH07XHJcbn07XHJcbiJdfQ==
|
|
@@ -159,4 +159,4 @@ var _moduleUtils = _interopRequireDefault(require("./module-utils"));
|
|
|
159
159
|
var _moduleMongo = _interopRequireDefault(require("./module-mongo"));
|
|
160
160
|
|
|
161
161
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
162
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
162
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge2RlZmF1bHQgYXMgYXNzZXJ0fSBmcm9tICcuL21vZHVsZS1hc3NlcnQnO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgZGF0ZX0gZnJvbSAnLi9tb2R1bGUtZGF0ZSc7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBkYn0gZnJvbSAnLi9tb2R1bGUtZGInO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgZW1haWx9IGZyb20gJy4vbW9kdWxlLWVtYWlsJztcclxuZXhwb3J0IHtkZWZhdWx0IGFzIGV5ZXN9IGZyb20gJy4vbW9kdWxlLWV5ZXMnO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgaHR0cH0gZnJvbSAnLi9tb2R1bGUtaHR0cCc7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBsb2d9IGZyb20gJy4vbW9kdWxlLWxvZyc7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBtYWlsaW5hdG9yfSBmcm9tICcuL21vZHVsZS1tYWlsaW5hdG9yJztcclxuZXhwb3J0IHtkZWZhdWx0IGFzIG1vYn0gZnJvbSAnLi9tb2R1bGUtbW9iJztcclxuZXhwb3J0IHtkZWZhdWx0IGFzIHBkZn0gZnJvbSAnLi9tb2R1bGUtcGRmJztcclxuZXhwb3J0IHtkZWZhdWx0IGFzIHNlcmlhbH0gZnJvbSAnLi9tb2R1bGUtc2VyaWFsJztcclxuZXhwb3J0IHtkZWZhdWx0IGFzIHNoZWxsfSBmcm9tICcuL21vZHVsZS1zaGVsbCc7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBzb2FwfSBmcm9tICcuL21vZHVsZS1zb2FwJztcclxuZXhwb3J0IHtkZWZhdWx0IGFzIHR3aWxpb30gZnJvbSAnLi9tb2R1bGUtdHdpbGlvJztcclxuZXhwb3J0IHtkZWZhdWx0IGFzIHdlYn0gZnJvbSAnLi9tb2R1bGUtd2ViJztcclxuZXhwb3J0IHtkZWZhdWx0IGFzIHdpbn0gZnJvbSAnLi9tb2R1bGUtd2luJztcclxuZXhwb3J0IHtkZWZhdWx0IGFzIHByb3h5fSBmcm9tICcuL21vZHVsZS1wcm94eSc7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyB1dGlsc30gZnJvbSAnLi9tb2R1bGUtdXRpbHMnO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgbW9uZ299IGZyb20gJy4vbW9kdWxlLW1vbmdvJzsiXX0=
|
|
@@ -6,18 +6,18 @@ var _OxygenError = _interopRequireDefault(require("../errors/OxygenError"));
|
|
|
6
6
|
|
|
7
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
8
|
|
|
9
|
-
/*
|
|
10
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
11
|
-
*
|
|
12
|
-
* This program is free software: you can redistribute it and/or modify
|
|
13
|
-
* it under the terms of the GNU General Public License as published by
|
|
14
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
15
|
-
* (at your option) any later version.
|
|
9
|
+
/*
|
|
10
|
+
* Copyright (C) 2015-present CloudBeat Limited
|
|
11
|
+
*
|
|
12
|
+
* This program is free software: you can redistribute it and/or modify
|
|
13
|
+
* it under the terms of the GNU General Public License as published by
|
|
14
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
15
|
+
* (at your option) any later version.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
/**
|
|
19
|
-
* @name assert
|
|
20
|
-
* @description Provides generic assertion methods.
|
|
18
|
+
/**
|
|
19
|
+
* @name assert
|
|
20
|
+
* @description Provides generic assertion methods.
|
|
21
21
|
*/
|
|
22
22
|
const chai = require('chai');
|
|
23
23
|
|
|
@@ -64,12 +64,12 @@ module.exports = function () {
|
|
|
64
64
|
|
|
65
65
|
return mod ? mod.takeScreenshot() : null;
|
|
66
66
|
};
|
|
67
|
-
/**
|
|
68
|
-
* @summary Asserts that the string value contains a substring.
|
|
69
|
-
* @function contain
|
|
70
|
-
* @param {String} actual - Actual value.
|
|
71
|
-
* @param {String} contains - Verbatim string to be contained.
|
|
72
|
-
* @param {String=} message - Message to throw if assertion fails.
|
|
67
|
+
/**
|
|
68
|
+
* @summary Asserts that the string value contains a substring.
|
|
69
|
+
* @function contain
|
|
70
|
+
* @param {String} actual - Actual value.
|
|
71
|
+
* @param {String} contains - Verbatim string to be contained.
|
|
72
|
+
* @param {String=} message - Message to throw if assertion fails.
|
|
73
73
|
*/
|
|
74
74
|
|
|
75
75
|
|
|
@@ -80,12 +80,12 @@ module.exports = function () {
|
|
|
80
80
|
throw new _OxygenError.default(errHelper.errorCode.ASSERT_ERROR, e.message);
|
|
81
81
|
}
|
|
82
82
|
};
|
|
83
|
-
/**
|
|
84
|
-
* @summary Asserts that two values are equal (non-strict equality).
|
|
85
|
-
* @function equal
|
|
86
|
-
* @param {Object} actual - Actual value.
|
|
87
|
-
* @param {Object} expected - Expected value. Either an object or a string prefixed with `regex:`.
|
|
88
|
-
* @param {String=} message - Message to throw if assertion fails.
|
|
83
|
+
/**
|
|
84
|
+
* @summary Asserts that two values are equal (non-strict equality).
|
|
85
|
+
* @function equal
|
|
86
|
+
* @param {Object} actual - Actual value.
|
|
87
|
+
* @param {Object} expected - Expected value. Either an object or a string prefixed with `regex:`.
|
|
88
|
+
* @param {String=} message - Message to throw if assertion fails.
|
|
89
89
|
*/
|
|
90
90
|
|
|
91
91
|
|
|
@@ -101,12 +101,12 @@ module.exports = function () {
|
|
|
101
101
|
throw new _OxygenError.default(errHelper.errorCode.ASSERT_ERROR, e.message);
|
|
102
102
|
}
|
|
103
103
|
};
|
|
104
|
-
/**
|
|
105
|
-
* @summary Asserts that two values are not equal (non-strict inequality).
|
|
106
|
-
* @function notEqual
|
|
107
|
-
* @param {Object} actual - Actual value.
|
|
108
|
-
* @param {Object} expected - Expected value. Either an object or a string prefixed with `regex:`.
|
|
109
|
-
* @param {String=} message - Message to throw if assertion fails.
|
|
104
|
+
/**
|
|
105
|
+
* @summary Asserts that two values are not equal (non-strict inequality).
|
|
106
|
+
* @function notEqual
|
|
107
|
+
* @param {Object} actual - Actual value.
|
|
108
|
+
* @param {Object} expected - Expected value. Either an object or a string prefixed with `regex:`.
|
|
109
|
+
* @param {String=} message - Message to throw if assertion fails.
|
|
110
110
|
*/
|
|
111
111
|
|
|
112
112
|
|
|
@@ -122,10 +122,10 @@ module.exports = function () {
|
|
|
122
122
|
throw new _OxygenError.default(errHelper.errorCode.ASSERT_ERROR, e.message);
|
|
123
123
|
}
|
|
124
124
|
};
|
|
125
|
-
/**
|
|
126
|
-
* @summary Fails test with the given message.
|
|
127
|
-
* @function fail
|
|
128
|
-
* @param {String=} message - Error message to return.
|
|
125
|
+
/**
|
|
126
|
+
* @summary Fails test with the given message.
|
|
127
|
+
* @function fail
|
|
128
|
+
* @param {String=} message - Error message to return.
|
|
129
129
|
*/
|
|
130
130
|
|
|
131
131
|
|
|
@@ -138,10 +138,10 @@ module.exports = function () {
|
|
|
138
138
|
|
|
139
139
|
throw new _OxygenError.default(errHelper.errorCode.ASSERT_ERROR, message);
|
|
140
140
|
};
|
|
141
|
-
/**
|
|
142
|
-
* @summary Passes the test with the given message.
|
|
143
|
-
* @function pass
|
|
144
|
-
* @param {String=} message - Message to return.
|
|
141
|
+
/**
|
|
142
|
+
* @summary Passes the test with the given message.
|
|
143
|
+
* @function pass
|
|
144
|
+
* @param {String=} message - Message to return.
|
|
145
145
|
*/
|
|
146
146
|
|
|
147
147
|
|
|
@@ -157,4 +157,4 @@ module.exports = function () {
|
|
|
157
157
|
|
|
158
158
|
return module;
|
|
159
159
|
};
|
|
160
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1hc3NlcnQuanMiXSwibmFtZXMiOlsiY2hhaSIsInJlcXVpcmUiLCJ1dGlsIiwiZXJySGVscGVyIiwibW9kdWxlIiwiZXhwb3J0cyIsImlzSW5pdGlhbGl6ZWQiLCJfdGFrZVNjcmVlbnNob3RTaWxlbnQiLCJuYW1lIiwibW9kIiwib3giLCJtb2R1bGVzIiwibW9iIiwiZ2V0RHJpdmVyIiwid2ViIiwid2luIiwiX3Rha2VTY3JlZW5zaG90IiwidGFrZVNjcmVlbnNob3QiLCJjb250YWluIiwiYWN0dWFsIiwiY29udGFpbnMiLCJtZXNzYWdlIiwiZXhwZWN0IiwidG8iLCJlIiwiT3hFcnJvciIsImVycm9yQ29kZSIsIkFTU0VSVF9FUlJPUiIsImVxdWFsIiwiZXhwZWN0ZWQiLCJpbmRleE9mIiwicmVnZXgiLCJSZWdFeHAiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJhc3NlcnQiLCJtYXRjaCIsIm5vdEVxdWFsIiwibm90TWF0Y2giLCJmYWlsIiwiU3RyaW5nIiwiaW5zcGVjdCIsImRlcHRoIiwicGFzcyIsIkFTU0VSVF9QQVNTRUQiXSwibWFwcGluZ3MiOiI7Ozs7QUFnQkE7Ozs7QUFoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNRSxTQUFTLEdBQUdGLE9BQU8sQ0FBQyxrQkFBRCxDQUF6QjtBQUVBOzs7QUFFQUcsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLFlBQVc7QUFDeEJELEVBQUFBLE1BQU0sQ0FBQ0UsYUFBUCxHQUF1QixZQUFXO0FBQzlCLFdBQU8sSUFBUDtBQUNILEdBRkQ7O0FBSUFGLEVBQUFBLE1BQU0sQ0FBQ0cscUJBQVAsR0FBK0IsVUFBU0MsSUFBVCxFQUFlO0FB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SUFBSWpCLG9CQUFKLENBQVl0QixTQUFTLENBQUN1QixTQUFWLENBQW9CQyxZQUFoQyxFQUE4Q04sT0FBOUMsQ0FBTjtBQUNILEdBTEQ7QUFPQTtBQUNKO0FBQ0E7QUFDQTtBQUNBOzs7QUFDSWpCLEVBQUFBLE1BQU0sQ0FBQ3VDLElBQVAsR0FBYyxVQUFTdEIsT0FBVCxFQUFrQjtBQUM1QixRQUFJLE9BQU9BLE9BQVAsS0FBbUIsUUFBbkIsSUFBK0IsRUFBRUEsT0FBTyxZQUFZbUIsTUFBckIsQ0FBL0IsSUFBK0RuQixPQUFPLEtBQUssSUFBL0UsRUFBcUY7QUFDakZBLE1BQUFBLE9BQU8sR0FBR25CLElBQUksQ0FBQ3VDLE9BQUwsQ0FBYXBCLE9BQWIsRUFBc0I7QUFBRXFCLFFBQUFBLEtBQUssRUFBRTtBQUFULE9BQXRCLENBQVY7QUFDSDs7QUFFRCxVQUFNLElBQUlqQixvQkFBSixDQUFZdEIsU0FBUyxDQUFDdUIsU0FBVixDQUFvQmtCLGFBQWhDLEVBQStDdkIsT0FBL0MsQ0FBTjtBQUNILEdBTkQ7O0FBUUEsU0FBT2pCLE1BQVA7QUFDSCxDQXJIRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKi9cblxuLyoqXG4gKiBAbmFtZSBhc3NlcnRcbiAqIEBkZXNjcmlwdGlvbiBQcm92aWRlcyBnZW5lcmljIGFzc2VydGlvbiBtZXRob2RzLlxuICovXG5cbmNvbnN0IGNoYWkgPSByZXF1aXJlKCdjaGFpJyk7XG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xuaW1wb3J0IE94RXJyb3IgZnJvbSAnLi4vZXJyb3JzL094eWdlbkVycm9yJztcbmNvbnN0IGVyckhlbHBlciA9IHJlcXVpcmUoJy4uL2Vycm9ycy9oZWxwZXInKTtcblxuLypnbG9iYWwgb3gqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgIG1vZHVsZS5pc0luaXRpYWxpemVkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG5cbiAgICBtb2R1bGUuX3Rha2VTY3JlZW5zaG90U2lsZW50ID0gZnVuY3Rpb24obmFtZSkge1xuICAgICAgICB2YXIgbW9kO1xuICAgICAgICBpZiAob3ggJiYgb3gubW9kdWxlcyAmJiBveC5tb2R1bGVzLm1vYiAmJiBveC5tb2R1bGVzLm1vYi5nZXREcml2ZXIgJiYgb3gubW9kdWxlcy5tb2IuZ2V0RHJpdmVyKCkpIHtcbiAgICAgICAgICAgIG1vZCA9IG94Lm1vZHVsZXMubW9iO1xuICAgICAgICB9IGVsc2UgaWYgKG94ICYmIG94Lm1vZHVsZXMgJiYgb3gubW9kdWxlcy53ZWIgJiYgb3gubW9kdWxlcy53ZWIuZ2V0RHJpdmVyICYmIG94Lm1vZHVsZXMud2ViLmdldERyaXZlcigpKSB7XG4gICAgICAgICAgICBtb2QgPSBveC5tb2R1bGVzLndlYjtcbiAgICAgICAgfSBlbHNlIGlmIChveCAmJiBveC5tb2R1bGVzICYmIG94Lm1vZHVsZXMud2luICYmIG94Lm1vZHVsZXMud2luLmdldERyaXZlciAmJiBveC5tb2R1bGVzLndpbi5nZXREcml2ZXIoKSkge1xuICAgICAgICAgICAgbW9kID0gb3gubW9kdWxlcy53aW47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW9kICYmIG1vZC5fdGFrZVNjcmVlbnNob3RTaWxlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBtb2QuX3Rha2VTY3JlZW5zaG90U2lsZW50KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvLyB0YWtlIHNjcmVlbnNob3Qgb24gZXJyb3IgaWYgZWl0aGVyIHdlYiwgbW9iLCBvciB3aW4gbW9kdWxlIGlzIGluaXRpYWxpemVkXG4gICAgbW9kdWxlLl90YWtlU2NyZWVuc2hvdCA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICAgICAgdmFyIG1vZDtcbiAgICAgICAgaWYgKG94ICYmIG94Lm1vZHVsZXMgJiYgb3gubW9kdWxlcy5tb2IgJiYgb3gubW9kdWxlcy5tb2IuZ2V0RHJpdmVyICYmIG94Lm1vZHVsZXMubW9iLmdldERyaXZlcigpKSB7XG4gICAgICAgICAgICBtb2QgPSBveC5tb2R1bGVzLm1vYjtcbiAgICAgICAgfSBlbHNlIGlmIChveCAmJiBveC5tb2R1bGVzICYmIG94Lm1vZHVsZXMud2ViICYmIG94Lm1vZHVsZXMud2ViLmdldERyaXZlciAmJiBveC5tb2R1bGVzLndlYi5nZXREcml2ZXIoKSkge1xuICAgICAgICAgICAgbW9kID0gb3gubW9kdWxlcy53ZWI7XG4gICAgICAgIH0gZWxzZSBpZiAob3ggJiYgb3gubW9kdWxlcyAmJiBveC5tb2R1bGVzLndpbiAmJiBveC5tb2R1bGVzLndpbi5nZXREcml2ZXIgJiYgb3gubW9kdWxlcy53aW4uZ2V0RHJpdmVyKCkpIHtcbiAgICAgICAgICAgIG1vZCA9IG94Lm1vZHVsZXMud2luO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtb2QgPyBtb2QudGFrZVNjcmVlbnNob3QoKSA6IG51bGw7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEBzdW1tYXJ5IEFzc2VydHMgdGhhdCB0aGUgc3RyaW5nIHZhbHVlIGNvbnRhaW5zIGEgc3Vic3RyaW5nLlxuICAgICAqIEBmdW5jdGlvbiBjb250YWluXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGFjdHVhbCAtIEFjdHVhbCB2YWx1ZS5cbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gY29udGFpbnMgLSBWZXJiYXRpbSBzdHJpbmcgdG8gYmUgY29udGFpbmVkLiBcbiAgICAgKiBAcGFyYW0ge1N0cmluZz19IG1lc3NhZ2UgLSBNZXNzYWdlIHRvIHRocm93IGlmIGFzc2VydGlvbiBmYWlscy5cbiAgICAgKi9cbiAgICBtb2R1bGUuY29udGFpbiA9IGZ1bmN0aW9uKGFjdHVhbCwgY29udGFpbnMsIG1lc3NhZ2UpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNoYWkuZXhwZWN0KGFjdHVhbCkudG8uY29udGFpbihjb250YWlucywgbWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuQVNTRVJUX0VSUk9SLCBlLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEBzdW1tYXJ5IEFzc2VydHMgdGhhdCB0d28gdmFsdWVzIGFyZSBlcXVhbCAobm9uLXN0cmljdCBlcXVhbGl0eSkuXG4gICAgICogQGZ1bmN0aW9uIGVxdWFsXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGFjdHVhbCAtIEFjdHVhbCB2YWx1ZS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gZXhwZWN0ZWQgLSBFeHBlY3RlZCB2YWx1ZS4gRWl0aGVyIGFuIG9iamVjdCBvciBhIHN0cmluZyBwcmVmaXhlZCB3aXRoIGByZWdleDpgLlxuICAgICAqIEBwYXJhbSB7U3RyaW5nPX0gbWVzc2FnZSAtIE1lc3NhZ2UgdG8gdGhyb3cgaWYgYXNzZXJ0aW9uIGZhaWxzLlxuICAgICAqL1xuICAgIG1vZHVsZS5lcXVhbCA9IGZ1bmN0aW9uKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChleHBlY3RlZCAmJiB0eXBlb2YgZXhwZWN0ZWQgPT09ICdzdHJpbmcnICYmIGV4cGVjdGVkLmluZGV4T2YoJ3JlZ2V4OicpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cChleHBlY3RlZC5zdWJzdHJpbmcoJ3JlZ2V4OicubGVuZ3RoKSk7XG4gICAgICAgICAgICAgICAgY2hhaS5hc3NlcnQubWF0Y2goYWN0dWFsLCByZWdleCwgbWVzc2FnZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNoYWkuYXNzZXJ0LmVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLkFTU0VSVF9FUlJPUiwgZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgLyoqXG4gICAgICogQHN1bW1hcnkgQXNzZXJ0cyB0aGF0IHR3byB2YWx1ZXMgYXJlIG5vdCBlcXVhbCAobm9uLXN0cmljdCBpbmVxdWFsaXR5KS5cbiAgICAgKiBAZnVuY3Rpb24gbm90RXF1YWxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gYWN0dWFsIC0gQWN0dWFsIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBleHBlY3RlZCAtIEV4cGVjdGVkIHZhbHVlLiBFaXRoZXIgYW4gb2JqZWN0IG9yIGEgc3RyaW5nIHByZWZpeGVkIHdpdGggYHJlZ2V4OmAuXG4gICAgICogQHBhcmFtIHtTdHJpbmc9fSBtZXNzYWdlIC0gTWVzc2FnZSB0byB0aHJvdyBpZiBhc3NlcnRpb24gZmFpbHMuXG4gICAgICovXG4gICAgbW9kdWxlLm5vdEVxdWFsID0gZnVuY3Rpb24oYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGV4cGVjdGVkICYmIHR5cGVvZiBleHBlY3RlZCA9PT0gJ3N0cmluZycgJiYgZXhwZWN0ZWQuaW5kZXhPZigncmVnZXg6JykgPT09IDApIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVnZXggPSBuZXcgUmVnRXhwKGV4cGVjdGVkLnN1YnN0cmluZygncmVnZXg6Jy5sZW5ndGgpKTtcbiAgICAgICAgICAgICAgICBjaGFpLmFzc2VydC5ub3RNYXRjaChhY3R1YWwsIHJlZ2V4LCBtZXNzYWdlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2hhaS5hc3NlcnQubm90RXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuQVNTRVJUX0VSUk9SLCBlLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAc3VtbWFyeSBGYWlscyB0ZXN0IHdpdGggdGhlIGdpdmVuIG1lc3NhZ2UuXG4gICAgICogQGZ1bmN0aW9uIGZhaWxcbiAgICAgKiBAcGFyYW0ge1N0cmluZz19IG1lc3NhZ2UgLSBFcnJvciBtZXNzYWdlIHRvIHJldHVybi5cbiAgICAgKi9cbiAgICBtb2R1bGUuZmFpbCA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnb2JqZWN0JyAmJiAhKG1lc3NhZ2UgaW5zdGFuY2VvZiBTdHJpbmcpICYmIG1lc3NhZ2UgIT09IG51bGwpIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB1dGlsLmluc3BlY3QobWVzc2FnZSwgeyBkZXB0aDogMyB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLkFTU0VSVF9FUlJPUiwgbWVzc2FnZSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEBzdW1tYXJ5IFBhc3NlcyB0aGUgdGVzdCB3aXRoIHRoZSBnaXZlbiBtZXNzYWdlLlxuICAgICAqIEBmdW5jdGlvbiBwYXNzXG4gICAgICogQHBhcmFtIHtTdHJpbmc9fSBtZXNzYWdlIC0gTWVzc2FnZSB0byByZXR1cm4uXG4gICAgICovXG4gICAgbW9kdWxlLnBhc3MgPSBmdW5jdGlvbihtZXNzYWdlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ29iamVjdCcgJiYgIShtZXNzYWdlIGluc3RhbmNlb2YgU3RyaW5nKSAmJiBtZXNzYWdlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gdXRpbC5pbnNwZWN0KG1lc3NhZ2UsIHsgZGVwdGg6IDMgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLkFTU0VSVF9QQVNTRUQsIG1lc3NhZ2UpO1xuICAgIH07XG5cbiAgICByZXR1cm4gbW9kdWxlO1xufTtcbiJdfQ==
|
|
160
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1hc3NlcnQuanMiXSwibmFtZXMiOlsiY2hhaSIsInJlcXVpcmUiLCJ1dGlsIiwiZXJySGVscGVyIiwibW9kdWxlIiwiZXhwb3J0cyIsImlzSW5pdGlhbGl6ZWQiLCJfdGFrZVNjcmVlbnNob3RTaWxlbnQiLCJuYW1lIiwibW9kIiwib3giLCJtb2R1bGVzIiwibW9iIiwiZ2V0RHJpdmVyIiwid2ViIiwid2luIiwiX3Rha2VTY3JlZW5zaG90IiwidGFrZVNjcmVlbnNob3QiLCJjb250YWluIiwiYWN0dWFsIiwiY29udGFpbnMiLCJtZXNzYWdlIiwiZXhwZWN0IiwidG8iLCJlIiwiT3hFcnJvciIsImVycm9yQ29kZSIsIkFTU0VSVF9FUlJPUiIsImVxdWFsIiwiZXhwZWN0ZWQiLCJpbmRleE9mIiwicmVnZXgiLCJSZWdFeHAiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJhc3NlcnQiLCJtYXRjaCIsIm5vdEVxdWFsIiwibm90TWF0Y2giLCJmYWlsIiwiU3RyaW5nIiwiaW5zcGVjdCIsImRlcHRoIiwicGFzcyIsIkFTU0VSVF9QQVNTRUQiXSwibWFwcGluZ3MiOiI7Ozs7QUFnQkE7Ozs7QUFoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFFQSxNQUFNRSxTQUFTLEdBQUdGLE9BQU8sQ0FBQyxrQkFBRCxDQUF6QjtBQUVBOzs7QUFFQUcsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLFlBQVc7QUFDeEJELEVBQUFBLE1BQU0sQ0FBQ0UsYUFBUCxHQUF1QixZQUFXO0FBQzlCLFdBQU8sSUFBUDtBQUNILEdBRkQ7O0FBSUFGLEVBQUFBLE1BQU0sQ0FBQ0cscUJBQVAsR0FBK0IsVUFBU0MsSUFBVCxFQUFlO0FB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SUFBSWpCLG9CQUFKLENBQVl0QixTQUFTLENBQUN1QixTQUFWLENBQW9CQyxZQUFoQyxFQUE4Q04sT0FBOUMsQ0FBTjtBQUNILEdBTEQ7QUFPQTtBQUNKO0FBQ0E7QUFDQTtBQUNBOzs7QUFDSWpCLEVBQUFBLE1BQU0sQ0FBQ3VDLElBQVAsR0FBYyxVQUFTdEIsT0FBVCxFQUFrQjtBQUM1QixRQUFJLE9BQU9BLE9BQVAsS0FBbUIsUUFBbkIsSUFBK0IsRUFBRUEsT0FBTyxZQUFZbUIsTUFBckIsQ0FBL0IsSUFBK0RuQixPQUFPLEtBQUssSUFBL0UsRUFBcUY7QUFDakZBLE1BQUFBLE9BQU8sR0FBR25CLElBQUksQ0FBQ3VDLE9BQUwsQ0FBYXBCLE9BQWIsRUFBc0I7QUFBRXFCLFFBQUFBLEtBQUssRUFBRTtBQUFULE9BQXRCLENBQVY7QUFDSDs7QUFFRCxVQUFNLElBQUlqQixvQkFBSixDQUFZdEIsU0FBUyxDQUFDdUIsU0FBVixDQUFvQmtCLGFBQWhDLEVBQStDdkIsT0FBL0MsQ0FBTjtBQUNILEdBTkQ7O0FBUUEsU0FBT2pCLE1BQVA7QUFDSCxDQXJIRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lIGFzc2VydFxyXG4gKiBAZGVzY3JpcHRpb24gUHJvdmlkZXMgZ2VuZXJpYyBhc3NlcnRpb24gbWV0aG9kcy5cclxuICovXHJcblxyXG5jb25zdCBjaGFpID0gcmVxdWlyZSgnY2hhaScpO1xyXG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xyXG5pbXBvcnQgT3hFcnJvciBmcm9tICcuLi9lcnJvcnMvT3h5Z2VuRXJyb3InO1xyXG5jb25zdCBlcnJIZWxwZXIgPSByZXF1aXJlKCcuLi9lcnJvcnMvaGVscGVyJyk7XHJcblxyXG4vKmdsb2JhbCBveCovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xyXG4gICAgbW9kdWxlLmlzSW5pdGlhbGl6ZWQgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcblxyXG4gICAgbW9kdWxlLl90YWtlU2NyZWVuc2hvdFNpbGVudCA9IGZ1bmN0aW9uKG5hbWUpIHtcclxuICAgICAgICB2YXIgbW9kO1xyXG4gICAgICAgIGlmIChveCAmJiBveC5tb2R1bGVzICYmIG94Lm1vZHVsZXMubW9iICYmIG94Lm1vZHVsZXMubW9iLmdldERyaXZlciAmJiBveC5tb2R1bGVzLm1vYi5nZXREcml2ZXIoKSkge1xyXG4gICAgICAgICAgICBtb2QgPSBveC5tb2R1bGVzLm1vYjtcclxuICAgICAgICB9IGVsc2UgaWYgKG94ICYmIG94Lm1vZHVsZXMgJiYgb3gubW9kdWxlcy53ZWIgJiYgb3gubW9kdWxlcy53ZWIuZ2V0RHJpdmVyICYmIG94Lm1vZHVsZXMud2ViLmdldERyaXZlcigpKSB7XHJcbiAgICAgICAgICAgIG1vZCA9IG94Lm1vZHVsZXMud2ViO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3ggJiYgb3gubW9kdWxlcyAmJiBveC5tb2R1bGVzLndpbiAmJiBveC5tb2R1bGVzLndpbi5nZXREcml2ZXIgJiYgb3gubW9kdWxlcy53aW4uZ2V0RHJpdmVyKCkpIHtcclxuICAgICAgICAgICAgbW9kID0gb3gubW9kdWxlcy53aW47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobW9kICYmIG1vZC5fdGFrZVNjcmVlbnNob3RTaWxlbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG1vZC5fdGFrZVNjcmVlbnNob3RTaWxlbnQoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIHRha2Ugc2NyZWVuc2hvdCBvbiBlcnJvciBpZiBlaXRoZXIgd2ViLCBtb2IsIG9yIHdpbiBtb2R1bGUgaXMgaW5pdGlhbGl6ZWRcclxuICAgIG1vZHVsZS5fdGFrZVNjcmVlbnNob3QgPSBmdW5jdGlvbihuYW1lKSB7XHJcbiAgICAgICAgdmFyIG1vZDtcclxuICAgICAgICBpZiAob3ggJiYgb3gubW9kdWxlcyAmJiBveC5tb2R1bGVzLm1vYiAmJiBveC5tb2R1bGVzLm1vYi5nZXREcml2ZXIgJiYgb3gubW9kdWxlcy5tb2IuZ2V0RHJpdmVyKCkpIHtcclxuICAgICAgICAgICAgbW9kID0gb3gubW9kdWxlcy5tb2I7XHJcbiAgICAgICAgfSBlbHNlIGlmIChveCAmJiBveC5tb2R1bGVzICYmIG94Lm1vZHVsZXMud2ViICYmIG94Lm1vZHVsZXMud2ViLmdldERyaXZlciAmJiBveC5tb2R1bGVzLndlYi5nZXREcml2ZXIoKSkge1xyXG4gICAgICAgICAgICBtb2QgPSBveC5tb2R1bGVzLndlYjtcclxuICAgICAgICB9IGVsc2UgaWYgKG94ICYmIG94Lm1vZHVsZXMgJiYgb3gubW9kdWxlcy53aW4gJiYgb3gubW9kdWxlcy53aW4uZ2V0RHJpdmVyICYmIG94Lm1vZHVsZXMud2luLmdldERyaXZlcigpKSB7XHJcbiAgICAgICAgICAgIG1vZCA9IG94Lm1vZHVsZXMud2luO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbW9kID8gbW9kLnRha2VTY3JlZW5zaG90KCkgOiBudWxsO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEFzc2VydHMgdGhhdCB0aGUgc3RyaW5nIHZhbHVlIGNvbnRhaW5zIGEgc3Vic3RyaW5nLlxyXG4gICAgICogQGZ1bmN0aW9uIGNvbnRhaW5cclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBhY3R1YWwgLSBBY3R1YWwgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gY29udGFpbnMgLSBWZXJiYXRpbSBzdHJpbmcgdG8gYmUgY29udGFpbmVkLiBcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nPX0gbWVzc2FnZSAtIE1lc3NhZ2UgdG8gdGhyb3cgaWYgYXNzZXJ0aW9uIGZhaWxzLlxyXG4gICAgICovXHJcbiAgICBtb2R1bGUuY29udGFpbiA9IGZ1bmN0aW9uKGFjdHVhbCwgY29udGFpbnMsIG1lc3NhZ2UpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjaGFpLmV4cGVjdChhY3R1YWwpLnRvLmNvbnRhaW4oY29udGFpbnMsIG1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLkFTU0VSVF9FUlJPUiwgZS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgQXNzZXJ0cyB0aGF0IHR3byB2YWx1ZXMgYXJlIGVxdWFsIChub24tc3RyaWN0IGVxdWFsaXR5KS5cclxuICAgICAqIEBmdW5jdGlvbiBlcXVhbFxyXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGFjdHVhbCAtIEFjdHVhbCB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBleHBlY3RlZCAtIEV4cGVjdGVkIHZhbHVlLiBFaXRoZXIgYW4gb2JqZWN0IG9yIGEgc3RyaW5nIHByZWZpeGVkIHdpdGggYHJlZ2V4OmAuXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZz19IG1lc3NhZ2UgLSBNZXNzYWdlIHRvIHRocm93IGlmIGFzc2VydGlvbiBmYWlscy5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmVxdWFsID0gZnVuY3Rpb24oYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChleHBlY3RlZCAmJiB0eXBlb2YgZXhwZWN0ZWQgPT09ICdzdHJpbmcnICYmIGV4cGVjdGVkLmluZGV4T2YoJ3JlZ2V4OicpID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVnZXggPSBuZXcgUmVnRXhwKGV4cGVjdGVkLnN1YnN0cmluZygncmVnZXg6Jy5sZW5ndGgpKTtcclxuICAgICAgICAgICAgICAgIGNoYWkuYXNzZXJ0Lm1hdGNoKGFjdHVhbCwgcmVnZXgsIG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2hhaS5hc3NlcnQuZXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5BU1NFUlRfRVJST1IsIGUubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgQXNzZXJ0cyB0aGF0IHR3byB2YWx1ZXMgYXJlIG5vdCBlcXVhbCAobm9uLXN0cmljdCBpbmVxdWFsaXR5KS5cclxuICAgICAqIEBmdW5jdGlvbiBub3RFcXVhbFxyXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGFjdHVhbCAtIEFjdHVhbCB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBleHBlY3RlZCAtIEV4cGVjdGVkIHZhbHVlLiBFaXRoZXIgYW4gb2JqZWN0IG9yIGEgc3RyaW5nIHByZWZpeGVkIHdpdGggYHJlZ2V4OmAuXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZz19IG1lc3NhZ2UgLSBNZXNzYWdlIHRvIHRocm93IGlmIGFzc2VydGlvbiBmYWlscy5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLm5vdEVxdWFsID0gZnVuY3Rpb24oYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChleHBlY3RlZCAmJiB0eXBlb2YgZXhwZWN0ZWQgPT09ICdzdHJpbmcnICYmIGV4cGVjdGVkLmluZGV4T2YoJ3JlZ2V4OicpID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVnZXggPSBuZXcgUmVnRXhwKGV4cGVjdGVkLnN1YnN0cmluZygncmVnZXg6Jy5sZW5ndGgpKTtcclxuICAgICAgICAgICAgICAgIGNoYWkuYXNzZXJ0Lm5vdE1hdGNoKGFjdHVhbCwgcmVnZXgsIG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2hhaS5hc3NlcnQubm90RXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5BU1NFUlRfRVJST1IsIGUubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgRmFpbHMgdGVzdCB3aXRoIHRoZSBnaXZlbiBtZXNzYWdlLlxyXG4gICAgICogQGZ1bmN0aW9uIGZhaWxcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nPX0gbWVzc2FnZSAtIEVycm9yIG1lc3NhZ2UgdG8gcmV0dXJuLlxyXG4gICAgICovXHJcbiAgICBtb2R1bGUuZmFpbCA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHtcclxuICAgICAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT09ICdvYmplY3QnICYmICEobWVzc2FnZSBpbnN0YW5jZW9mIFN0cmluZykgJiYgbWVzc2FnZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gdXRpbC5pbnNwZWN0KG1lc3NhZ2UsIHsgZGVwdGg6IDMgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuQVNTRVJUX0VSUk9SLCBtZXNzYWdlKTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBQYXNzZXMgdGhlIHRlc3Qgd2l0aCB0aGUgZ2l2ZW4gbWVzc2FnZS5cclxuICAgICAqIEBmdW5jdGlvbiBwYXNzXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZz19IG1lc3NhZ2UgLSBNZXNzYWdlIHRvIHJldHVybi5cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLnBhc3MgPSBmdW5jdGlvbihtZXNzYWdlKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnb2JqZWN0JyAmJiAhKG1lc3NhZ2UgaW5zdGFuY2VvZiBTdHJpbmcpICYmIG1lc3NhZ2UgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgbWVzc2FnZSA9IHV0aWwuaW5zcGVjdChtZXNzYWdlLCB7IGRlcHRoOiAzIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5BU1NFUlRfUEFTU0VELCBtZXNzYWdlKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIG1vZHVsZTtcclxufTtcclxuIl19
|