@kontur.candy/tools 2.123.0 → 2.127.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 +30 -0
- package/distr/Common/AsyncUtils.js +30 -1
- package/distr/Common/CandyApiClient/CandyApiClient.js +42 -1
- package/distr/Common/CandyApiClient/CandyApiClientContext.js +33 -1
- package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js +4 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js +4 -0
- package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js +29 -1
- package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js +4 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js +35 -1
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js +35 -1
- package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js +37 -1
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js +29 -1
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js +34 -1
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js +28 -1
- package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js +4 -0
- package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js +33 -1
- package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js +29 -1
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js +6 -1
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js +4 -0
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestResponse.js +4 -0
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js +41 -1
- package/distr/Common/CandyApiClient/ICandyApiClient.js +5 -1
- package/distr/Common/CandyApiClient/IsBuffer.js +29 -1
- package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js +4 -0
- package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js +4 -0
- package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js +4 -0
- package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js +4 -0
- package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js +4 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js +6 -1
- package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js +4 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +4 -0
- package/distr/Common/CandyApiClient/Types/DraftFullId.js +4 -0
- package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js +4 -0
- package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js +6 -1
- package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js +4 -0
- package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js +4 -0
- package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js +6 -1
- package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js +4 -0
- package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js +4 -0
- package/distr/Common/CandyApiClient/Types/Guid.js +4 -0
- package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js +6 -1
- package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js +4 -0
- package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js +4 -0
- package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js +6 -1
- package/distr/Common/CommonConstants/SectionNames.js +28 -1
- package/distr/Common/Comparers.js +30 -8
- package/distr/Common/EmotionStorybookWorkaroundViaAliases.js +29 -1
- package/distr/Common/EndPoints.js +34 -1
- package/distr/Common/Errors.js +69 -1
- package/distr/Common/FormActionHandlers/ContextualActionNames.js +30 -1
- package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js +4 -0
- package/distr/Common/Funcs.js +38 -1
- package/distr/Common/GFV.js +4 -0
- package/distr/Common/HttpClient/AuthenticationMode.js +32 -1
- package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js +28 -1
- package/distr/Common/HttpClient/FetchImplementation/Fetch.js +4 -0
- package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js +29 -1
- package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js +31 -1
- package/distr/Common/HttpClient/HttpClient.js +62 -4
- package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js +4 -0
- package/distr/Common/HttpClient/IHttpClient.js +4 -0
- package/distr/Common/IntRangeUtils.js +31 -1
- package/distr/Common/IterableUtils.js +38 -1
- package/distr/Common/KCLangRuntimeUtils.js +36 -1
- package/distr/Common/ModelPath/AbsoluteModelPathSet.js +34 -1
- package/distr/Common/ModelPath/BuildIterationSequence.js +29 -1
- package/distr/Common/ModelPath/EachCurrentCollision.js +6 -1
- package/distr/Common/ModelPath/IEquatable.js +4 -0
- package/distr/Common/ModelPath/ModelPath.js +58 -1
- package/distr/Common/ModelPath/ModelPathBuilder.js +34 -1
- package/distr/Common/ModelPath/ModelPathMap.js +41 -1
- package/distr/Common/ModelPath/ModelPathSet.js +34 -1
- package/distr/Common/ModelPath/PathMatcher.js +28 -1
- package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js +34 -1
- package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js +4 -0
- package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js +29 -1
- package/distr/Common/NidusClient/Fakes/FakeNidusClient.js +34 -1
- package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js +38 -1
- package/distr/Common/NidusClient/INidusClient.js +30 -1
- package/distr/Common/NidusClient/NidusClientContext.js +38 -1
- package/distr/Common/NidusClient/NidusClientImpl.js +34 -1
- package/distr/Common/PathConstants.js +29 -1
- package/distr/Common/TypingUtils.js +55 -1
- package/distr/Common/UUID.js +30 -1
- package/distr/Common/UseAsyncEffect.js +31 -1
- package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js +34 -1
- package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js +29 -1
- package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js +30 -1
- package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js +34 -1
- package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js +34 -1
- package/distr/Tools/src/BuildTasks/Engine/EngineSource.js +29 -1
- package/distr/Tools/src/BuildTasks/EngineStructureUtils.js +32 -1
- package/distr/Tools/src/BuildTasks/EngineVersionUtils.js +28 -1
- package/distr/Tools/src/BuildTasks/FSTask.js +28 -1
- package/distr/Tools/src/BuildTasks/Form/CompileForm.js +30 -1
- package/distr/Tools/src/BuildTasks/Form/GenerateForm.js +37 -1
- package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js +34 -1
- package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js +29 -1
- package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js +29 -1
- package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js +31 -1
- package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js +34 -1
- package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js +35 -1
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js +37 -2
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +34 -2
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js +5 -1
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +5 -1
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js +33 -3
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js +29 -2
- package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js +28 -1
- package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js +34 -1
- package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js +45 -1
- package/distr/Tools/src/BuildTasks/ReadFormSource.js +37 -1
- package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +31 -1
- package/distr/Tools/src/BuildTasks/Version.js +32 -1
- package/distr/Tools/src/BuildTasks/WriteFormMeta.js +29 -1
- package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js +30 -1
- package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js +28 -1
- package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +31 -1
- package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js +48 -6
- package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js +29 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +34 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +42 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +34 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js +36 -2
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js +35 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js +34 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js +45 -4
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js +34 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js +34 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +41 -3
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js +41 -3
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js +39 -21
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js +29 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +43 -3
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js +48 -4
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js +29 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js +4 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js +4 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js +42 -2
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +34 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js +29 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js +4 -0
- package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +34 -15
- package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js +29 -1
- package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js +25 -13
- package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js +30 -1
- package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js +4 -0
- package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js +28 -1
- package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +29 -8
- package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js +28 -1
- package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js +29 -1
- package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js +43 -4
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/autocalc/{gfv}.calc.js +30 -1
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/helpers/setKppValue.js +29 -1
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +34 -1
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js +34 -1
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/validations/kppValue.js +29 -1
- package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js +28 -1
- package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +30 -1
- package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js +28 -1
- package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +30 -1
- package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +33 -2
- package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js +29 -1
- package/distr/Tools/src/CandyCLI.js +29 -1
- package/distr/Tools/src/CheckNodeJsVersion.js +31 -1
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js +33 -2
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js +34 -1
- package/distr/Tools/src/Commons/ErrorUntyped.js +4 -0
- package/distr/Tools/src/Commons/EventObject.js +44 -2
- package/distr/Tools/src/Commons/ExecUtils.js +29 -1
- package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js +29 -1
- package/distr/Tools/src/Commons/FormGlobsUtils.js +34 -1
- package/distr/Tools/src/Commons/FsUtils.js +32 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js +32 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js +33 -2
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js +34 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js +34 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js +4 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js +34 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js +34 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js +34 -2
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js +34 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js +37 -2
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js +34 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js +34 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js +34 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js +34 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js +4 -0
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js +34 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js +34 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js +71 -5
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js +28 -1
- package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js +83 -12
- package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js +35 -2
- package/distr/Tools/src/Commons/Locks/Lock.js +34 -1
- package/distr/Tools/src/Commons/Locks/LockHandle.js +34 -1
- package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js +34 -1
- package/distr/Tools/src/Commons/Logging/ELKLogger.js +31 -1
- package/distr/Tools/src/Commons/Logging/ILogger.js +36 -1
- package/distr/Tools/src/Commons/Logging/InMemoryLogger.js +41 -1
- package/distr/Tools/src/Commons/Logging/Logger.js +35 -2
- package/distr/Tools/src/Commons/Logging/StaticLogger.js +38 -1
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js +30 -1
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js +48 -1
- package/distr/Tools/src/Commons/PathPattern.js +34 -1
- package/distr/Tools/src/Commons/TasksCore/AggregatedError.js +34 -1
- package/distr/Tools/src/Commons/TasksCore/BuildTask.js +4 -0
- package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js +89 -1
- package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js +34 -1
- package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js +34 -1
- package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js +34 -1
- package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js +34 -1
- package/distr/Tools/src/Commons/TasksCore/Observe.js +28 -1
- package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js +34 -1
- package/distr/Tools/src/Commons/TimingUtils.js +29 -1
- package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +42 -1
- package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +32 -2
- package/distr/Tools/src/GenerateReadMe.js +31 -1
- package/distr/Tools/src/Keys/localhost-key.pem +35 -0
- package/distr/Tools/src/Keys/localhost.pem +80 -0
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +2 -46786
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js.LICENSE.txt +38 -0
- package/distr/Tools/src/LocalServerFrontEndDist/favicon-16x16.png +0 -0
- package/distr/Tools/src/LocalServerFrontEndDist/favicon-32x32.png +0 -0
- package/distr/Tools/src/LocalServerFrontEndDist/favicon.ico +0 -0
- package/distr/Tools/src/LocalServerFrontEndDist/index.html +1 -10
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -99457
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.LICENSE.txt +49 -0
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/distr/Tools/src/Options/CandyToolOptions.js +28 -1
- package/distr/Tools/src/ReadFarmConfig.js +29 -1
- package/distr/Tools/src/SelfUpdate.js +44 -10
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +5 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +5 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js +5 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js +5 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js +5 -1
- package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js +5 -1
- package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js +5 -1
- package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js +5 -1
- package/package.json +5 -7
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js.map +0 -1
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
|
|
4
|
+
return a;
|
|
5
|
+
};
|
|
6
|
+
|
|
3
7
|
!function (t) {
|
|
4
8
|
function n(r) {
|
|
5
9
|
if (e[r]) return e[r].exports;
|
|
@@ -265,4 +269,4 @@
|
|
|
265
269
|
}.bind(void 0));
|
|
266
270
|
}).call(n, e(0));
|
|
267
271
|
}]);
|
|
268
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9TdGF0aWNGaWxlc0ZvclJlc291cmNlc0Rpci90ZXN0aW5nLm1pbi5qcyJdLCJuYW1lcyI6WyJ0IiwibiIsInIiLCJlIiwiZXhwb3J0cyIsImkiLCJsIiwiY2FsbCIsIm0iLCJjIiwiZCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsImdldCIsIm8iLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwiRnVuY3Rpb24iLCJldmFsIiwid2luZG93IiwiVHlwZUVycm9yIiwiYXNzaWduIiwia2V5cyIsIkFycmF5IiwiaXNBcnJheSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwidSIsImxlbmd0aCIsIm5leHQiLCJkb25lIiwidmFsdWUiLCJhIiwiX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fIiwiaW5qZWN0Iiwic3VwcG9ydHNGaWJlciIsIm9uQ29tbWl0RmliZXJSb290IiwicGFyZW50IiwiTW91bnQiLCJiaW5kIiwiUmVjb25jaWxlciIsInJlY2VpdmVDb21wb25lbnQiLCJfY3VycmVudEVsZW1lbnQiLCJfY29udGV4dCIsInR5cGUiLCJmIiwibW91bnRDb21wb25lbnQiLCJhcmd1bWVudHMiLCJ2IiwiYXBwbHkiLCJjb25jYXQiLCJfIiwib3V0ZXJIVE1MIiwibm9kZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJtYXAiLCJzdGFydHNXaXRoIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaW5uZXJIVE1MIiwiY2hpbGROb2RlcyIsIl9yb290Tm9kZUlEIiwiZ2V0Tm9kZSIsIm5hbWUiLCJzZXRBdHRyaWJ1dGUiLCJzcGxpdCIsImZpbHRlciIsImluY2x1ZGVzIiwiU3RyaW5nIiwiX293bmVyIiwicHJvcHMiLCJfaG9zdE5vZGUiLCJfcmVuZGVyZWRDb21wb25lbnQiLCJSZWFjdFRlc3RpbmciLCJhZGRSZW5kZXJDb250YWluZXIiLCJyZW1vdmVSZW5kZXJDb250YWluZXIiLCJhZGRFdmVudExpc3RlbmVyIiwiYWx0S2V5IiwiY3RybEtleSIsInNoaWZ0S2V5IiwiY29kZSIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwicmVtb3ZlIiwiY2xhc3NMaXN0IiwiYWRkIiwiZ2V0QXR0cmlidXRlIiwiY2xpcGJvYXJkRGF0YSIsInNldERhdGEiLCJ0YXJnZXQiLCJpbm5lclRleHQiLCJwcmV2ZW50RGVmYXVsdCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJleGVjQ29tbWFuZCIsImFwcGVuZENoaWxkIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxDQUFDLFVBQVVBLENBQVYsRUFBYTtBQUNaLFdBQVNDLENBQVQsQ0FBV0MsQ0FBWCxFQUFjO0FBQ1osUUFBSUMsQ0FBQyxDQUFDRCxDQUFELENBQUwsRUFBVSxPQUFPQyxDQUFDLENBQUNELENBQUQsQ0FBRCxDQUFLRSxPQUFaO0FBQ1YsUUFBSUMsQ0FBQyxHQUFHRixDQUFDLENBQUNELENBQUQsQ0FBRCxHQUFPO0FBQ2JHLE1BQUFBLENBQUMsRUFBRUgsQ0FEVTtBQUViSSxNQUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUZTO0FBR2JGLE1BQUFBLE9BQU8sRUFBRTtBQUhJLEtBQWY7QUFLQSxXQUFPSixDQUFDLENBQUNFLENBQUQsQ0FBRCxDQUFLSyxJQUFMLENBQVVGLENBQUMsQ0FBQ0QsT0FBWixFQUFxQkMsQ0FBckIsRUFBd0JBLENBQUMsQ0FBQ0QsT0FBMUIsRUFBbUNILENBQW5DLEdBQXVDSSxDQUFDLENBQUNDLENBQUYsR0FBTSxDQUFDLENBQTlDLEVBQWlERCxDQUFDLENBQUNELE9BQTFEO0FBQ0Q7O0FBRUQsTUFBSUQsQ0FBQyxHQUFHLEVBQVI7QUFDQSxTQUFPRixDQUFDLENBQUNPLENBQUYsR0FBTVIsQ0FBTixFQUFTQyxDQUFDLENBQUNRLENBQUYsR0FBTU4sQ0FBZixFQUFrQkYsQ0FBQyxDQUFDSSxDQUFGLEdBQU0sVUFBVUwsQ0FBVixFQUFhO0FBQzFDLFdBQU9BLENBQVA7QUFDRCxHQUZNLEVBRUpD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Q0FBQ29DLFdBQVQsQ0FBcUIsTUFBckIsQ0FBdEM7QUFDRCxTQVIwSSxDQVF6SXZELElBUnlJLENBUXBJLEtBQUssQ0FSK0gsQ0FBNUIsQ0FBL0csRUFRaUIzQyxDQUFDLENBQUNtRyxXQUFGLENBQWNoRyxDQUFkLENBUmpCO0FBU0QsT0FacUUsQ0FZcEV3QyxJQVpvRSxDQVkvRCxLQUFLLENBWjBELENBQXJELENBRkUsQ0FKbkI7QUFtQkQsS0FwQjZDLENBb0I1Q0EsSUFwQjRDLENBb0J2QyxLQUFLLENBcEJrQyxDQUFyQyxDQVhUO0FBZ0NELEdBOU5ELEVBOE5HcEMsSUE5TkgsQ0E4TlFOLENBOU5SLEVBOE5XRSxDQUFDLENBQUMsQ0FBRCxDQTlOWjtBQStORCxDQWhQQyxDQXZCRCxDQUFEIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbiFmdW5jdGlvbiAodCkge1xuICBmdW5jdGlvbiBuKHIpIHtcbiAgICBpZiAoZVtyXSkgcmV0dXJuIGVbcl0uZXhwb3J0cztcbiAgICB2YXIgaSA9IGVbcl0gPSB7XG4gICAgICBpOiByLFxuICAgICAgbDogITEsXG4gICAgICBleHBvcnRzOiB7fVxuICAgIH07XG4gICAgcmV0dXJuIHRbcl0uY2FsbChpLmV4cG9ydHMsIGksIGkuZXhwb3J0cywgbiksIGkubCA9ICEwLCBpLmV4cG9ydHM7XG4gIH1cblxuICB2YXIgZSA9IHt9O1xuICByZXR1cm4gbi5tID0gdCwgbi5jID0gZSwgbi5pID0gZnVuY3Rpb24gKHQpIHtcbiAgICByZXR1cm4gdDtcbiAgfSwgbi5kID0gZnVuY3Rpb24gKHQsIG4sIGUpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgbiwge1xuICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgIGVudW1lcmFibGU6ICEwLFxuICAgICAgZ2V0OiBlXG4gICAgfSk7XG4gIH0sIG4ubyA9IGZ1bmN0aW9uICh0LCBuKSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LCBuKTtcbiAgfSwgbi5wID0gXCJcIiwgbihuLnMgPSAxKTtcbn0oW2Z1bmN0aW9uICh0LCBuKSB7XG4gIHZhciBlO1xuXG4gIGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0oKTtcblxuICB0cnkge1xuICAgIGUgPSBlIHx8IEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKSB8fCAoMCwgZXZhbCkoXCJ0aGlzXCIpO1xuICB9IGNhdGNoIChyKSB7XG4gICAgXCJvYmplY3RcIiA9PSB0eXBlb2Ygd2luZG93ICYmIChlID0gd2luZG93KTtcbiAgfVxuXG4gIHQuZXhwb3J0cyA9IGU7XG59LCBmdW5jdGlvbiAodCwgbiwgZSkge1xuICBcInVzZSBzdHJpY3RcIjtcblxuICAoZnVuY3Rpb24gKHQpIHtcbiAgICBmdW5jdGlvbiBuKHQsIG4pIHtcbiAgICAgIGlmICh0ICE9PSBuKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGluc3RhbnRpYXRlIGFuIGFycm93IGZ1bmN0aW9uXCIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGUodCwgbikge1xuICAgICAgZm9yICh2YXIgZSA9IE9iamVjdC5hc3NpZ24oe30sIHQpLCByID0gT2JqZWN0LmtleXMobiksIGkgPSBBcnJheS5pc0FycmF5KHIpLCBvID0gMCwgciA9IGkgPyByIDogcltTeW1ib2wuaXRlcmF0b3JdKCk7Oykge1xuICAgICAgICB2YXIgdTtcblxuICAgICAgICBpZiAoaSkge1xuICAgICAgICAgIGlmIChvID49IHIubGVuZ3RoKSBicmVhaztcbiAgICAgICAgICB1ID0gcltvKytdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChvID0gci5uZXh0KCksIG8uZG9uZSkgYnJlYWs7XG4gICAgICAgICAgdSA9IG8udmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgYSA9IHU7XG4gICAgICAgIHRbYV0gPSBuW2FdKGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHIoZSkge1xuICAgICAgdmFyIHIgPSB0aGlzO1xuICAgICAgXG4gICAgICBpZiAoIXQuX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fKSB7XG4gICAgICAgIHQuX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fID0ge1xuICAgICAgICAgICAgaW5qZWN0OiAoKSA9PiB7fSxcbiAgICAgICAgICAgIHN1cHBvcnRzRmliZXI6IHRydWUsXG4gICAgICAgICAgICBvbkNvbW1pdEZpYmVyUm9vdDogKCkgPT4ge30sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICB0Ll9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyA9IHQucGFyZW50Ll9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztcbiAgICAgIH0gY2F0Y2ggKGUpIHt9XG5cbiAgICAgIGlmICh0Ll9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXykge1xuICAgICAgICB2YXIgaSA9IHQuX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmluamVjdDtcblxuICAgICAgICB0Ll9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5pbmplY3QgPSBmdW5jdGlvbiAodCkge1xuICAgICAgICAgIG4odGhpcywgcik7XG4gICAgICAgICAgdC5Nb3VudDtcbiAgICAgICAgICBpICYmIGkodCksIGUodCk7XG4gICAgICAgIH0uYmluZCh0aGlzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpKHQpIHtcbiAgICAgIHZhciByID0gdGhpcyxcbiAgICAgICAgICBpID0gdC5Nb3VudCxcbiAgICAgICAgICBvID0gdC5SZWNvbmNpbGVyLFxuICAgICAgICAgIGMgPSBpO1xuICAgICAgZShvLCB7XG4gICAgICAgIHJlY2VpdmVDb21wb25lbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBmdW5jdGlvbiB0KHQpIHtcbiAgICAgICAgICAgIHJldHVybiBuKHRoaXMsIHIpLCBmdW5jdGlvbiAoZSwgaSwgbywgdSkge1xuICAgICAgICAgICAgICBuKHRoaXMsIHIpLCB0LnJlY2VpdmVDb21wb25lbnQoZSwgaSwgbywgdSk7XG4gICAgICAgICAgICAgIHZhciBkID0gZS5fY3VycmVudEVsZW1lbnQ7XG5cbiAgICAgICAgICAgICAgaWYgKChpICE9PSBkIHx8IHUgIT09IGUuX2NvbnRleHQpICYmIGUuX2N1cnJlbnRFbGVtZW50ICYmIGUuX2N1cnJlbnRFbGVtZW50LnR5cGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgcyA9IGEoZSwgYyk7XG4gICAgICAgICAgICAgICAgZihzLCBlLCAhMSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0uYmluZCh0aGlzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdDtcbiAgICAgICAgfSgpLmJpbmQodGhpcyksXG4gICAgICAgIG1vdW50Q29tcG9uZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgZnVuY3Rpb24gdCh0KSB7XG4gICAgICAgICAgICByZXR1cm4gbih0aGlzLCByKSwgZnVuY3Rpb24gKGUsIGksIG8sIGEsIGMsIGQpIHtcbiAgICAgICAgICAgICAgZm9yICh2YXIgcyA9IGFyZ3VtZW50cy5sZW5ndGgsIGwgPSBBcnJheShzID4gNiA/IHMgLSA2IDogMCksIHYgPSA2OyB2IDwgczsgdisrKSBsW3YgLSA2XSA9IGFyZ3VtZW50c1t2XTtcblxuICAgICAgICAgICAgICBuKHRoaXMsIHIpO1xuICAgICAgICAgICAgICB2YXIgcCA9IHQubW91bnRDb21wb25lbnQuYXBwbHkodCwgW2UsIGksIG8sIGEsIGMsIGRdLmNvbmNhdChsKSk7XG5cbiAgICAgICAgICAgICAgaWYgKFwic3RyaW5nXCIgPT0gdHlwZW9mIHApIHtcbiAgICAgICAgICAgICAgICB2YXIgXyA9IHUocCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gXyA/IChmKF8sIGUsICEwKSwgXy5vdXRlckhUTUwpIDogcDtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiBwLm5vZGUgJiYgZihwLm5vZGUsIGUsICEwKSwgcDtcbiAgICAgICAgICAgIH0uYmluZCh0aGlzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdDtcbiAgICAgICAgfSgpLmJpbmQodGhpcylcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG8odCkge1xuICAgICAgdmFyIGUgPSB0aGlzO1xuICAgICAgaWYgKFwic3RyaW5nXCIgPT0gdHlwZW9mIHQpIHJldHVybiB0O1xuICAgICAgaWYgKHZvaWQgMCA9PT0gdCB8fCBudWxsID09PSB0KSByZXR1cm4gXCJcIjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpO1xuICAgICAgfSBjYXRjaCAocikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHQpICYmIHQubGVuZ3RoID4gMCAmJiBBcnJheS5pc0FycmF5KHRbMF0pKSByZXR1cm4gSlNPTi5zdHJpbmdpZnkodC5tYXAoZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICAgIHJldHVybiBuKHRoaXMsIGUpLCB0WzBdO1xuICAgICAgICAgIH0uYmluZCh0aGlzKSkpO1xuICAgICAgICB9IGNhdGNoIChyKSB7XG4gICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1KHQpIHtcbiAgICAgIHZhciBuID0gdm9pZCAwO1xuICAgICAgcmV0dXJuIG4gPSB0LnN0YXJ0c1dpdGgoXCI8dGJvZHlcIikgfHwgdC5zdGFydHNXaXRoKFwiPHRmb290XCIpIHx8IHQuc3RhcnRzV2l0aChcIjx0aGVhZFwiKSA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0YWJsZVwiKSA6IHQuc3RhcnRzV2l0aChcIjx0aFwiKSB8fCB0LnN0YXJ0c1dpdGgoXCI8dGRcIikgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidHJcIikgOiB0LnN0YXJ0c1dpdGgoXCI8dHJcIikgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGhlYWRcIikgOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLCBuLmlubmVySFRNTCA9IHQsIG4uY2hpbGROb2Rlc1swXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhKHQsIG4pIHtcbiAgICAgIHZhciBlID0gXyh0KTtcblxuICAgICAgaWYgKCFlICYmIFwic3RyaW5nXCIgPT0gdHlwZW9mIHQuX3Jvb3ROb2RlSUQpIHRyeSB7XG4gICAgICAgIGUgPSBuLmdldE5vZGUodC5fcm9vdE5vZGVJRCk7XG4gICAgICB9IGNhdGNoIChyKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYyh0KSB7XG4gICAgICByZXR1cm4gdC5fY3VycmVudEVsZW1lbnQgJiYgdC5fY3VycmVudEVsZW1lbnQudHlwZSA/IHQuX2N1cnJlbnRFbGVtZW50LnR5cGUubmFtZSA6IG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZCh0LCBuLCBlKSB7XG4gICAgICByZXR1cm4gIW4uc3RhcnRzV2l0aChcIiQkXCIpICYmICFuLnN0YXJ0c1dpdGgoXCJvblwiKSAmJiBcImNoaWxkcmVuXCIgIT09IG4gJiYgXCJkYXRhLXRpZC1hdXRvXCIgIT09IG4gJiYgXCJmdW5jdGlvblwiICE9IHR5cGVvZiBlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGYodCwgbiwgZSkge1xuICAgICAgaWYgKHQgJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiB0LnNldEF0dHJpYnV0ZSkge1xuICAgICAgICB2YXIgciA9IGwoe30sIG4pO1xuXG4gICAgICAgIGZvciAodmFyIGkgaW4gcikgdC5zZXRBdHRyaWJ1dGUoaSwgcltpXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcyh0LCBlLCByKSB7XG4gICAgICB2YXIgaSA9IHRoaXM7XG5cbiAgICAgIGlmIChudWxsICE9PSByKSB7XG4gICAgICAgIHZhciBvID0gdFtlXSxcbiAgICAgICAgICAgIHUgPSAobyB8fCBcIlwiKS5zcGxpdChcIiBcIikuZmlsdGVyKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgcmV0dXJuIG4odGhpcywgaSksIFwiXCIgIT09IHQ7XG4gICAgICAgIH0uYmluZCh0aGlzKSk7XG4gICAgICAgIHUuaW5jbHVkZXMocikgfHwgKHRbZV0gPSAobyA/IFN0cmluZyhvKSArIFwiIFwiIDogXCJcIikgKyByKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsKHQsIG4pIHtcbiAgICAgIHQgPSB2KHQsIG4pO1xuICAgICAgdmFyIGUgPSBuLl9jdXJyZW50RWxlbWVudCAmJiBuLl9jdXJyZW50RWxlbWVudC5fb3duZXI7XG4gICAgICByZXR1cm4gZSAmJiBwKGUsIG4pICYmICh0ID0gbCh0LCBlKSksIHQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdih0LCBuKSB7XG4gICAgICB2YXIgZSA9IG4uX2N1cnJlbnRFbGVtZW50ICYmIG4uX2N1cnJlbnRFbGVtZW50LnByb3BzO1xuXG4gICAgICBpZiAoYyhuKSAmJiBzKHQsIFwiZGF0YS1jb21wLW5hbWVcIiwgYyhuKSksIGUpIHtcbiAgICAgICAgZVtcImRhdGEtdGlkLWF1dG9cIl0gJiYgcyh0LCBcImRhdGEtdGlkLWF1dG9cIiwgZVtcImRhdGEtdGlkLWF1dG9cIl0pO1xuXG4gICAgICAgIGZvciAodmFyIHIgaW4gZSkgZChuLCByLCBlW3JdKSAmJiAodFtcImRhdGEtcHJvcC1cIiArIHJdID0gbyhlW3JdKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHAodCwgbikge1xuICAgICAgaWYgKFwic3RyaW5nXCIgPT0gdHlwZW9mIHQuX3Jvb3ROb2RlSUQgfHwgXCJzdHJpbmdcIiA9PSB0eXBlb2Ygbi5fcm9vdE5vZGVJRCkge1xuICAgICAgICB2YXIgZSA9IHQuX3Jvb3ROb2RlSUQsXG4gICAgICAgICAgICByID0gbi5fcm9vdE5vZGVJRDtcbiAgICAgICAgaWYgKG51bGwgIT09IGUgJiYgbnVsbCAhPT0gcikgcmV0dXJuIGUgPT09IHI7XG4gICAgICB9XG5cbiAgICAgIHZhciBpID0gXyh0KSxcbiAgICAgICAgICBvID0gXyhuKTtcblxuICAgICAgcmV0dXJuIG51bGwgIT09IGkgJiYgbnVsbCAhPT0gbyAmJiBpID09PSBvO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIF8odCkge1xuICAgICAgcmV0dXJuIHQuX2hvc3ROb2RlID8gdC5faG9zdE5vZGUgOiB0Ll9yZW5kZXJlZENvbXBvbmVudCA/IF8odC5fcmVuZGVyZWRDb21wb25lbnQpIDogbnVsbDtcbiAgICB9XG5cbiAgICB0LlJlYWN0VGVzdGluZyA9IHtcbiAgICAgIGFkZFJlbmRlckNvbnRhaW5lcjogZnVuY3Rpb24gKCkge1xuICAgICAgICBmdW5jdGlvbiB0KCkge31cblxuICAgICAgICByZXR1cm4gdDtcbiAgICAgIH0oKSxcbiAgICAgIHJlbW92ZVJlbmRlckNvbnRhaW5lcjogZnVuY3Rpb24gKCkge1xuICAgICAgICBmdW5jdGlvbiB0KCkge31cblxuICAgICAgICByZXR1cm4gdDtcbiAgICAgIH0oKVxuICAgIH0sIHIoaSksIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGZ1bmN0aW9uICh0KSB7XG4gICAgICBuKHZvaWQgMCwgdm9pZCAwKSwgdC5hbHRLZXkgJiYgdC5jdHJsS2V5ICYmIHQuc2hpZnRLZXkgJiYgXCJLZXlIXCIgPT0gdC5jb2RlID8gKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIudGlkLXdyYXBwZXJcIikuZm9yRWFjaChmdW5jdGlvbiAodCkge1xuICAgICAgICByZXR1cm4gbih2b2lkIDAsIHZvaWQgMCksIHQucmVtb3ZlKCk7XG4gICAgICB9LmJpbmQodm9pZCAwKSksIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJbZGF0YS10aWQtYXV0b11cIikuZm9yRWFjaChmdW5jdGlvbiAodCkge1xuICAgICAgICByZXR1cm4gbih2b2lkIDAsIHZvaWQgMCksIHQuY2xhc3NMaXN0LnJlbW92ZShcIndpdGgtdGlkLXdyYXBwZXJcIik7XG4gICAgICB9LmJpbmQodm9pZCAwKSkpIDogdC5hbHRLZXkgJiYgdC5jdHJsS2V5ICYmIFwiS2V5SFwiID09IHQuY29kZSAmJiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi50aWQtd3JhcHBlclwiKS5mb3JFYWNoKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgIHJldHVybiBuKHZvaWQgMCwgdm9pZCAwKSwgdC5yZW1vdmUoKTtcbiAgICAgIH0uYmluZCh2b2lkIDApKSwgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLXRpZC1hdXRvXVwiKS5mb3JFYWNoKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgIG4odm9pZCAwLCB2b2lkIDApLCB0LmNsYXNzTGlzdC5hZGQoXCJ3aXRoLXRpZC13cmFwcGVyXCIpO1xuICAgICAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIGUuY2xhc3NMaXN0LmFkZChcInRpZC13cmFwcGVyXCIpLCBlLmlubmVySFRNTCA9IFwiPGRpdj48ZGl2PlwiICsgdC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXRpZC1hdXRvXCIpICsgXCI8L2Rpdj48L2Rpdj5cIiwgZS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICBuKHZvaWQgMCwgdm9pZCAwKTtcblxuICAgICAgICAgIHZhciBlID0gZnVuY3Rpb24gKHIpIHtcbiAgICAgICAgICAgIG4odm9pZCAwLCB2b2lkIDApLCByLmNsaXBib2FyZERhdGEuc2V0RGF0YShcInRleHQvcGxhaW5cIiwgdC50YXJnZXQuaW5uZXJUZXh0KSwgci5wcmV2ZW50RGVmYXVsdCgpLCBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY29weVwiLCBlKTtcbiAgICAgICAgICB9LmJpbmQodm9pZCAwKTtcblxuICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjb3B5XCIsIGUpLCBkb2N1bWVudC5leGVjQ29tbWFuZChcImNvcHlcIik7XG4gICAgICAgIH0uYmluZCh2b2lkIDApKSwgdC5hcHBlbmRDaGlsZChlKTtcbiAgICAgIH0uYmluZCh2b2lkIDApKSk7XG4gICAgfS5iaW5kKHZvaWQgMCkpO1xuICB9KS5jYWxsKG4sIGUoMCkpO1xufV0pOyJdfQ==
|
|
272
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9TdGF0aWNGaWxlc0ZvclJlc291cmNlc0Rpci90ZXN0aW5nLm1pbi5qcyJdLCJuYW1lcyI6WyJ0IiwibiIsInIiLCJlIiwiZXhwb3J0cyIsImkiLCJsIiwiY2FsbCIsIm0iLCJjIiwiZCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsImdldCIsIm8iLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwiRnVuY3Rpb24iLCJldmFsIiwid2luZG93IiwiVHlwZUVycm9yIiwiYXNzaWduIiwia2V5cyIsIkFycmF5IiwiaXNBcnJheSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwidSIsImxlbmd0aCIsIm5leHQiLCJkb25lIiwidmFsdWUiLCJhIiwiX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fIiwiaW5qZWN0Iiwic3VwcG9ydHNGaWJlciIsIm9uQ29tbWl0RmliZXJSb290IiwicGFyZW50IiwiTW91bnQiLCJiaW5kIiwiUmVjb25jaWxlciIsInJlY2VpdmVDb21wb25lbnQiLCJfY3VycmVudEVsZW1lbnQiLCJfY29udGV4dCIsInR5cGUiLCJmIiwibW91bnRDb21wb25lbnQiLCJhcmd1bWVudHMiLCJ2IiwiYXBwbHkiLCJjb25jYXQiLCJfIiwib3V0ZXJIVE1MIiwibm9kZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJtYXAiLCJzdGFydHNXaXRoIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaW5uZXJIVE1MIiwiY2hpbGROb2RlcyIsIl9yb290Tm9kZUlEIiwiZ2V0Tm9kZSIsIm5hbWUiLCJzZXRBdHRyaWJ1dGUiLCJzcGxpdCIsImZpbHRlciIsImluY2x1ZGVzIiwiU3RyaW5nIiwiX293bmVyIiwicHJvcHMiLCJfaG9zdE5vZGUiLCJfcmVuZGVyZWRDb21wb25lbnQiLCJSZWFjdFRlc3RpbmciLCJhZGRSZW5kZXJDb250YWluZXIiLCJyZW1vdmVSZW5kZXJDb250YWluZXIiLCJhZGRFdmVudExpc3RlbmVyIiwiYWx0S2V5IiwiY3RybEtleSIsInNoaWZ0S2V5IiwiY29kZSIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwicmVtb3ZlIiwiY2xhc3NMaXN0IiwiYWRkIiwiZ2V0QXR0cmlidXRlIiwiY2xpcGJvYXJkRGF0YSIsInNldERhdGEiLCJ0YXJnZXQiLCJpbm5lclRleHQiLCJwcmV2ZW50RGVmYXVsdCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJleGVjQ29tbWFuZCIsImFwcGVuZENoaWxkIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0FBRUEsQ0FBQyxVQUFVQSxDQUFWLEVBQWE7QUFDWixXQUFTQyxDQUFULENBQVdDLENBQVgsRUFBYztBQUNaLFFBQUlDLENBQUMsQ0FBQ0QsQ0FBRCxDQUFMLEVBQVUsT0FBT0MsQ0FBQyxDQUFDRCxDQUFELENBQUQsQ0FBS0UsT0FBWjtBQUNWLFFBQUlDLENBQUMsR0FBR0YsQ0FBQyxDQUFDRCxDQUFELENBQUQsR0FBTztBQUNiRyxNQUFBQSxDQUFDLEVBQUVILENBRFU7QUFFYkksTUFBQUEsQ0FBQyxFQUFFLENBQUMsQ0FGUztBQUdiRixNQUFBQSxPQUFPLEVBQUU7QUFISSxLQUFmO0FBS0EsV0FBT0osQ0FBQyxDQUFDRSxDQUFELENBQUQsQ0FBS0ssSUFBTCxDQUFVRixDQUFDLENBQUNELE9BQVosRUFBcUJDLENBQXJCLEVBQXdCQSxDQUFDLENBQUNELE9BQTFCLEVBQW1DSCxDQUFuQyxHQUF1Q0ksQ0FBQyxDQUFDQyxDQUFGLEdBQU0sQ0FBQyxDQUE5QyxFQUFpREQsQ0FBQyxDQUFDRCxPQUExRDtBQUNEOztBQUVELE1BQUlELENBQUMsR0FBRyxFQUFSO0FBQ0EsU0FBT0YsQ0FBQyxDQUFDTyxDQUFGLEdBQU1SLENBQU4sRUFBU0MsQ0FBQyxDQUFDUSxDQUFGLEdBQU1OLENBQWYsRUFBa0JGLENBQUMsQ0FBQ0ksQ0FBRixHQUFNLFVBQVVMLENBQVYsRUFBYTtBQUMxQyxXQUFPQSxDQUFQO0FBQ0QsR0FGTSxF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QUFRLENBQUNvQyxXQUFULENBQXFCLE1BQXJCLENBQXRDO0FBQ0QsU0FSMEksQ0FRekl2RCxJQVJ5SSxDQVFwSSxLQUFLLENBUitILENBQTVCLENBQS9HLEVBUWlCM0MsQ0FBQyxDQUFDbUcsV0FBRixDQUFjaEcsQ0FBZCxDQVJqQjtBQVNELE9BWnFFLENBWXBFd0MsSUFab0UsQ0FZL0QsS0FBSyxDQVowRCxDQUFyRCxDQUZFLENBSm5CO0FBbUJELEtBcEI2QyxDQW9CNUNBLElBcEI0QyxDQW9CdkMsS0FBSyxDQXBCa0MsQ0FBckMsQ0FYVDtBQWdDRCxHQTlORCxFQThOR3BDLElBOU5ILENBOE5RTixDQTlOUixFQThOV0UsQ0FBQyxDQUFDLENBQUQsQ0E5Tlo7QUErTkQsQ0FoUEMsQ0F2QkQsQ0FBRCIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG4hZnVuY3Rpb24gKHQpIHtcbiAgZnVuY3Rpb24gbihyKSB7XG4gICAgaWYgKGVbcl0pIHJldHVybiBlW3JdLmV4cG9ydHM7XG4gICAgdmFyIGkgPSBlW3JdID0ge1xuICAgICAgaTogcixcbiAgICAgIGw6ICExLFxuICAgICAgZXhwb3J0czoge31cbiAgICB9O1xuICAgIHJldHVybiB0W3JdLmNhbGwoaS5leHBvcnRzLCBpLCBpLmV4cG9ydHMsIG4pLCBpLmwgPSAhMCwgaS5leHBvcnRzO1xuICB9XG5cbiAgdmFyIGUgPSB7fTtcbiAgcmV0dXJuIG4ubSA9IHQsIG4uYyA9IGUsIG4uaSA9IGZ1bmN0aW9uICh0KSB7XG4gICAgcmV0dXJuIHQ7XG4gIH0sIG4uZCA9IGZ1bmN0aW9uICh0LCBuLCBlKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIG4sIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICAgIGdldDogZVxuICAgIH0pO1xuICB9LCBuLm8gPSBmdW5jdGlvbiAodCwgbikge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCwgbik7XG4gIH0sIG4ucCA9IFwiXCIsIG4obi5zID0gMSk7XG59KFtmdW5jdGlvbiAodCwgbikge1xuICB2YXIgZTtcblxuICBlID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KCk7XG5cbiAgdHJ5IHtcbiAgICBlID0gZSB8fCBGdW5jdGlvbihcInJldHVybiB0aGlzXCIpKCkgfHwgKDAsIGV2YWwpKFwidGhpc1wiKTtcbiAgfSBjYXRjaCAocikge1xuICAgIFwib2JqZWN0XCIgPT0gdHlwZW9mIHdpbmRvdyAmJiAoZSA9IHdpbmRvdyk7XG4gIH1cblxuICB0LmV4cG9ydHMgPSBlO1xufSwgZnVuY3Rpb24gKHQsIG4sIGUpIHtcbiAgXCJ1c2Ugc3RyaWN0XCI7XG5cbiAgKGZ1bmN0aW9uICh0KSB7XG4gICAgZnVuY3Rpb24gbih0LCBuKSB7XG4gICAgICBpZiAodCAhPT0gbikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBpbnN0YW50aWF0ZSBhbiBhcnJvdyBmdW5jdGlvblwiKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlKHQsIG4pIHtcbiAgICAgIGZvciAodmFyIGUgPSBPYmplY3QuYXNzaWduKHt9LCB0KSwgciA9IE9iamVjdC5rZXlzKG4pLCBpID0gQXJyYXkuaXNBcnJheShyKSwgbyA9IDAsIHIgPSBpID8gciA6IHJbU3ltYm9sLml0ZXJhdG9yXSgpOzspIHtcbiAgICAgICAgdmFyIHU7XG5cbiAgICAgICAgaWYgKGkpIHtcbiAgICAgICAgICBpZiAobyA+PSByLmxlbmd0aCkgYnJlYWs7XG4gICAgICAgICAgdSA9IHJbbysrXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAobyA9IHIubmV4dCgpLCBvLmRvbmUpIGJyZWFrO1xuICAgICAgICAgIHUgPSBvLnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGEgPSB1O1xuICAgICAgICB0W2FdID0gblthXShlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiByKGUpIHtcbiAgICAgIHZhciByID0gdGhpcztcbiAgICAgIFxuICAgICAgaWYgKCF0Ll9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXykge1xuICAgICAgICB0Ll9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyA9IHtcbiAgICAgICAgICAgIGluamVjdDogKCkgPT4ge30sXG4gICAgICAgICAgICBzdXBwb3J0c0ZpYmVyOiB0cnVlLFxuICAgICAgICAgICAgb25Db21taXRGaWJlclJvb3Q6ICgpID0+IHt9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgdC5fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPSB0LnBhcmVudC5fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187XG4gICAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgICBpZiAodC5fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18pIHtcbiAgICAgICAgdmFyIGkgPSB0Ll9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5pbmplY3Q7XG5cbiAgICAgICAgdC5fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uaW5qZWN0ID0gZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICBuKHRoaXMsIHIpO1xuICAgICAgICAgIHQuTW91bnQ7XG4gICAgICAgICAgaSAmJiBpKHQpLCBlKHQpO1xuICAgICAgICB9LmJpbmQodGhpcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaSh0KSB7XG4gICAgICB2YXIgciA9IHRoaXMsXG4gICAgICAgICAgaSA9IHQuTW91bnQsXG4gICAgICAgICAgbyA9IHQuUmVjb25jaWxlcixcbiAgICAgICAgICBjID0gaTtcbiAgICAgIGUobywge1xuICAgICAgICByZWNlaXZlQ29tcG9uZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgZnVuY3Rpb24gdCh0KSB7XG4gICAgICAgICAgICByZXR1cm4gbih0aGlzLCByKSwgZnVuY3Rpb24gKGUsIGksIG8sIHUpIHtcbiAgICAgICAgICAgICAgbih0aGlzLCByKSwgdC5yZWNlaXZlQ29tcG9uZW50KGUsIGksIG8sIHUpO1xuICAgICAgICAgICAgICB2YXIgZCA9IGUuX2N1cnJlbnRFbGVtZW50O1xuXG4gICAgICAgICAgICAgIGlmICgoaSAhPT0gZCB8fCB1ICE9PSBlLl9jb250ZXh0KSAmJiBlLl9jdXJyZW50RWxlbWVudCAmJiBlLl9jdXJyZW50RWxlbWVudC50eXBlKSB7XG4gICAgICAgICAgICAgICAgdmFyIHMgPSBhKGUsIGMpO1xuICAgICAgICAgICAgICAgIGYocywgZSwgITEpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LmJpbmQodGhpcyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHQ7XG4gICAgICAgIH0oKS5iaW5kKHRoaXMpLFxuICAgICAgICBtb3VudENvbXBvbmVudDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGZ1bmN0aW9uIHQodCkge1xuICAgICAgICAgICAgcmV0dXJuIG4odGhpcywgciksIGZ1bmN0aW9uIChlLCBpLCBvLCBhLCBjLCBkKSB7XG4gICAgICAgICAgICAgIGZvciAodmFyIHMgPSBhcmd1bWVudHMubGVuZ3RoLCBsID0gQXJyYXkocyA+IDYgPyBzIC0gNiA6IDApLCB2ID0gNjsgdiA8IHM7IHYrKykgbFt2IC0gNl0gPSBhcmd1bWVudHNbdl07XG5cbiAgICAgICAgICAgICAgbih0aGlzLCByKTtcbiAgICAgICAgICAgICAgdmFyIHAgPSB0Lm1vdW50Q29tcG9uZW50LmFwcGx5KHQsIFtlLCBpLCBvLCBhLCBjLCBkXS5jb25jYXQobCkpO1xuXG4gICAgICAgICAgICAgIGlmIChcInN0cmluZ1wiID09IHR5cGVvZiBwKSB7XG4gICAgICAgICAgICAgICAgdmFyIF8gPSB1KHApO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF8gPyAoZihfLCBlLCAhMCksIF8ub3V0ZXJIVE1MKSA6IHA7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gcC5ub2RlICYmIGYocC5ub2RlLCBlLCAhMCksIHA7XG4gICAgICAgICAgICB9LmJpbmQodGhpcyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHQ7XG4gICAgICAgIH0oKS5iaW5kKHRoaXMpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBvKHQpIHtcbiAgICAgIHZhciBlID0gdGhpcztcbiAgICAgIGlmIChcInN0cmluZ1wiID09IHR5cGVvZiB0KSByZXR1cm4gdDtcbiAgICAgIGlmICh2b2lkIDAgPT09IHQgfHwgbnVsbCA9PT0gdCkgcmV0dXJuIFwiXCI7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0KTtcbiAgICAgIH0gY2F0Y2ggKHIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0KSAmJiB0Lmxlbmd0aCA+IDAgJiYgQXJyYXkuaXNBcnJheSh0WzBdKSkgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHQubWFwKGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgICByZXR1cm4gbih0aGlzLCBlKSwgdFswXTtcbiAgICAgICAgICB9LmJpbmQodGhpcykpKTtcbiAgICAgICAgfSBjYXRjaCAocikge1xuICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdSh0KSB7XG4gICAgICB2YXIgbiA9IHZvaWQgMDtcbiAgICAgIHJldHVybiBuID0gdC5zdGFydHNXaXRoKFwiPHRib2R5XCIpIHx8IHQuc3RhcnRzV2l0aChcIjx0Zm9vdFwiKSB8fCB0LnN0YXJ0c1dpdGgoXCI8dGhlYWRcIikgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGFibGVcIikgOiB0LnN0YXJ0c1dpdGgoXCI8dGhcIikgfHwgdC5zdGFydHNXaXRoKFwiPHRkXCIpID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRyXCIpIDogdC5zdGFydHNXaXRoKFwiPHRyXCIpID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRoZWFkXCIpIDogZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSwgbi5pbm5lckhUTUwgPSB0LCBuLmNoaWxkTm9kZXNbMF07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYSh0LCBuKSB7XG4gICAgICB2YXIgZSA9IF8odCk7XG5cbiAgICAgIGlmICghZSAmJiBcInN0cmluZ1wiID09IHR5cGVvZiB0Ll9yb290Tm9kZUlEKSB0cnkge1xuICAgICAgICBlID0gbi5nZXROb2RlKHQuX3Jvb3ROb2RlSUQpO1xuICAgICAgfSBjYXRjaCAocikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGModCkge1xuICAgICAgcmV0dXJuIHQuX2N1cnJlbnRFbGVtZW50ICYmIHQuX2N1cnJlbnRFbGVtZW50LnR5cGUgPyB0Ll9jdXJyZW50RWxlbWVudC50eXBlLm5hbWUgOiBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGQodCwgbiwgZSkge1xuICAgICAgcmV0dXJuICFuLnN0YXJ0c1dpdGgoXCIkJFwiKSAmJiAhbi5zdGFydHNXaXRoKFwib25cIikgJiYgXCJjaGlsZHJlblwiICE9PSBuICYmIFwiZGF0YS10aWQtYXV0b1wiICE9PSBuICYmIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmKHQsIG4sIGUpIHtcbiAgICAgIGlmICh0ICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgdC5zZXRBdHRyaWJ1dGUpIHtcbiAgICAgICAgdmFyIHIgPSBsKHt9LCBuKTtcblxuICAgICAgICBmb3IgKHZhciBpIGluIHIpIHQuc2V0QXR0cmlidXRlKGksIHJbaV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHModCwgZSwgcikge1xuICAgICAgdmFyIGkgPSB0aGlzO1xuXG4gICAgICBpZiAobnVsbCAhPT0gcikge1xuICAgICAgICB2YXIgbyA9IHRbZV0sXG4gICAgICAgICAgICB1ID0gKG8gfHwgXCJcIikuc3BsaXQoXCIgXCIpLmZpbHRlcihmdW5jdGlvbiAodCkge1xuICAgICAgICAgIHJldHVybiBuKHRoaXMsIGkpLCBcIlwiICE9PSB0O1xuICAgICAgICB9LmJpbmQodGhpcykpO1xuICAgICAgICB1LmluY2x1ZGVzKHIpIHx8ICh0W2VdID0gKG8gPyBTdHJpbmcobykgKyBcIiBcIiA6IFwiXCIpICsgcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbCh0LCBuKSB7XG4gICAgICB0ID0gdih0LCBuKTtcbiAgICAgIHZhciBlID0gbi5fY3VycmVudEVsZW1lbnQgJiYgbi5fY3VycmVudEVsZW1lbnQuX293bmVyO1xuICAgICAgcmV0dXJuIGUgJiYgcChlLCBuKSAmJiAodCA9IGwodCwgZSkpLCB0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHYodCwgbikge1xuICAgICAgdmFyIGUgPSBuLl9jdXJyZW50RWxlbWVudCAmJiBuLl9jdXJyZW50RWxlbWVudC5wcm9wcztcblxuICAgICAgaWYgKGMobikgJiYgcyh0LCBcImRhdGEtY29tcC1uYW1lXCIsIGMobikpLCBlKSB7XG4gICAgICAgIGVbXCJkYXRhLXRpZC1hdXRvXCJdICYmIHModCwgXCJkYXRhLXRpZC1hdXRvXCIsIGVbXCJkYXRhLXRpZC1hdXRvXCJdKTtcblxuICAgICAgICBmb3IgKHZhciByIGluIGUpIGQobiwgciwgZVtyXSkgJiYgKHRbXCJkYXRhLXByb3AtXCIgKyByXSA9IG8oZVtyXSkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwKHQsIG4pIHtcbiAgICAgIGlmIChcInN0cmluZ1wiID09IHR5cGVvZiB0Ll9yb290Tm9kZUlEIHx8IFwic3RyaW5nXCIgPT0gdHlwZW9mIG4uX3Jvb3ROb2RlSUQpIHtcbiAgICAgICAgdmFyIGUgPSB0Ll9yb290Tm9kZUlELFxuICAgICAgICAgICAgciA9IG4uX3Jvb3ROb2RlSUQ7XG4gICAgICAgIGlmIChudWxsICE9PSBlICYmIG51bGwgIT09IHIpIHJldHVybiBlID09PSByO1xuICAgICAgfVxuXG4gICAgICB2YXIgaSA9IF8odCksXG4gICAgICAgICAgbyA9IF8obik7XG5cbiAgICAgIHJldHVybiBudWxsICE9PSBpICYmIG51bGwgIT09IG8gJiYgaSA9PT0gbztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBfKHQpIHtcbiAgICAgIHJldHVybiB0Ll9ob3N0Tm9kZSA/IHQuX2hvc3ROb2RlIDogdC5fcmVuZGVyZWRDb21wb25lbnQgPyBfKHQuX3JlbmRlcmVkQ29tcG9uZW50KSA6IG51bGw7XG4gICAgfVxuXG4gICAgdC5SZWFjdFRlc3RpbmcgPSB7XG4gICAgICBhZGRSZW5kZXJDb250YWluZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZnVuY3Rpb24gdCgpIHt9XG5cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgICB9KCksXG4gICAgICByZW1vdmVSZW5kZXJDb250YWluZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZnVuY3Rpb24gdCgpIHt9XG5cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgICB9KClcbiAgICB9LCByKGkpLCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBmdW5jdGlvbiAodCkge1xuICAgICAgbih2b2lkIDAsIHZvaWQgMCksIHQuYWx0S2V5ICYmIHQuY3RybEtleSAmJiB0LnNoaWZ0S2V5ICYmIFwiS2V5SFwiID09IHQuY29kZSA/IChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnRpZC13cmFwcGVyXCIpLmZvckVhY2goZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgcmV0dXJuIG4odm9pZCAwLCB2b2lkIDApLCB0LnJlbW92ZSgpO1xuICAgICAgfS5iaW5kKHZvaWQgMCkpLCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtdGlkLWF1dG9dXCIpLmZvckVhY2goZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgcmV0dXJuIG4odm9pZCAwLCB2b2lkIDApLCB0LmNsYXNzTGlzdC5yZW1vdmUoXCJ3aXRoLXRpZC13cmFwcGVyXCIpO1xuICAgICAgfS5iaW5kKHZvaWQgMCkpKSA6IHQuYWx0S2V5ICYmIHQuY3RybEtleSAmJiBcIktleUhcIiA9PSB0LmNvZGUgJiYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIudGlkLXdyYXBwZXJcIikuZm9yRWFjaChmdW5jdGlvbiAodCkge1xuICAgICAgICByZXR1cm4gbih2b2lkIDAsIHZvaWQgMCksIHQucmVtb3ZlKCk7XG4gICAgICB9LmJpbmQodm9pZCAwKSksIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJbZGF0YS10aWQtYXV0b11cIikuZm9yRWFjaChmdW5jdGlvbiAodCkge1xuICAgICAgICBuKHZvaWQgMCwgdm9pZCAwKSwgdC5jbGFzc0xpc3QuYWRkKFwid2l0aC10aWQtd3JhcHBlclwiKTtcbiAgICAgICAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgICAgICBlLmNsYXNzTGlzdC5hZGQoXCJ0aWQtd3JhcHBlclwiKSwgZS5pbm5lckhUTUwgPSBcIjxkaXY+PGRpdj5cIiArIHQuZ2V0QXR0cmlidXRlKFwiZGF0YS10aWQtYXV0b1wiKSArIFwiPC9kaXY+PC9kaXY+XCIsIGUuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgbih2b2lkIDAsIHZvaWQgMCk7XG5cbiAgICAgICAgICB2YXIgZSA9IGZ1bmN0aW9uIChyKSB7XG4gICAgICAgICAgICBuKHZvaWQgMCwgdm9pZCAwKSwgci5jbGlwYm9hcmREYXRhLnNldERhdGEoXCJ0ZXh0L3BsYWluXCIsIHQudGFyZ2V0LmlubmVyVGV4dCksIHIucHJldmVudERlZmF1bHQoKSwgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNvcHlcIiwgZSk7XG4gICAgICAgICAgfS5iaW5kKHZvaWQgMCk7XG5cbiAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY29weVwiLCBlKSwgZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjb3B5XCIpO1xuICAgICAgICB9LmJpbmQodm9pZCAwKSksIHQuYXBwZW5kQ2hpbGQoZSk7XG4gICAgICB9LmJpbmQodm9pZCAwKSkpO1xuICAgIH0uYmluZCh2b2lkIDApKTtcbiAgfSkuY2FsbChuLCBlKDApKTtcbn1dKTsiXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kontur.candy/tools",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.127.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"files": [
|
|
6
6
|
"candy.js",
|
|
@@ -40,14 +40,13 @@
|
|
|
40
40
|
"@types/chokidar": "^1.7.5",
|
|
41
41
|
"@types/cookie-parser": "^1.4.2",
|
|
42
42
|
"@types/express": "^4.17.13",
|
|
43
|
-
"@types/html-webpack-plugin": "^3.2.6",
|
|
44
43
|
"@types/lodash": "^4.14.177",
|
|
45
44
|
"@types/mime": "^2.0.3",
|
|
46
45
|
"@types/mime-types": "^2.1.1",
|
|
47
46
|
"@types/mini-css-extract-plugin": "^2.4.0",
|
|
48
47
|
"@types/minimatch": "^3.0.5",
|
|
49
48
|
"@types/mocha": "^9.0.0",
|
|
50
|
-
"@types/node": "^
|
|
49
|
+
"@types/node": "^14.17.34",
|
|
51
50
|
"@types/node-fetch": "^3.0.2",
|
|
52
51
|
"@types/node-notifier": "8.0.1",
|
|
53
52
|
"@types/p-limit": "^2.2.0",
|
|
@@ -59,7 +58,6 @@
|
|
|
59
58
|
"@types/socket.io-client": "^1.4.36",
|
|
60
59
|
"@types/temp": "^0.9.1",
|
|
61
60
|
"@types/uuid": "^8.3.3",
|
|
62
|
-
"@types/webpack": "^5.28.0",
|
|
63
61
|
"@types/webpack-dev-server": "^4.5.0",
|
|
64
62
|
"babel-plugin-transform-typescript-metadata": "^0.3.2",
|
|
65
63
|
"classnames-loader": "^2.1.0",
|
|
@@ -108,7 +106,7 @@
|
|
|
108
106
|
"node-fetch": "^2.6.6",
|
|
109
107
|
"node-notifier": "10.0.0",
|
|
110
108
|
"p-limit": "3.1.0",
|
|
111
|
-
"postcss-loader": "6.2.
|
|
109
|
+
"postcss-loader": "6.2.1",
|
|
112
110
|
"recursive-readdir": "2.2.2",
|
|
113
111
|
"reflect-metadata": "^0.1.13",
|
|
114
112
|
"regenerator-runtime": "^0.13.9",
|
|
@@ -120,8 +118,8 @@
|
|
|
120
118
|
"style-loader": "3.3.1",
|
|
121
119
|
"temp": "^0.9.4",
|
|
122
120
|
"tree-kill": "1.2.2",
|
|
123
|
-
"webpack": "5.64.
|
|
121
|
+
"webpack": "5.64.4",
|
|
124
122
|
"webpack-cli": "4.9.1",
|
|
125
|
-
"webpack-dev-server": "4.
|
|
123
|
+
"webpack-dev-server": "4.6.0"
|
|
126
124
|
}
|
|
127
125
|
}
|