@cartanova/qgrid-cli 2.4.7 → 2.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (748) hide show
  1. package/README.ko.md +18 -11
  2. package/README.md +18 -11
  3. package/bundle/.env +0 -0
  4. package/bundle/dist/_virtual/{_@oxc-project_runtime@0.122.0/helpers → _@oxc-project_runtime@0.140.0/helpers/esm}/decorate.js +2 -2
  5. package/bundle/dist/_virtual/{_@oxc-project_runtime@0.122.0/helpers → _@oxc-project_runtime@0.140.0/helpers/esm}/decorateMetadata.js +2 -2
  6. package/bundle/dist/_virtual/_rolldown/runtime.js +2 -3
  7. package/bundle/dist/application/monit/log-buffer.js +3 -2
  8. package/bundle/dist/application/monit/monit.frame.js +5 -6
  9. package/bundle/dist/application/monit/monit.types.js +1 -2
  10. package/bundle/dist/application/qgrid/conv-routing.js +1 -2
  11. package/bundle/dist/application/qgrid/oauth.js +1 -2
  12. package/bundle/dist/application/qgrid/qgrid-image-generation.js +1 -2
  13. package/bundle/dist/application/qgrid/qgrid-response-format.js +1 -2
  14. package/bundle/dist/application/qgrid/qgrid-run-lifecycle.js +86 -43
  15. package/bundle/dist/application/qgrid/qgrid.dispatcher.js +12 -5
  16. package/bundle/dist/application/qgrid/qgrid.frame.js +87 -92
  17. package/bundle/dist/application/qgrid/qgrid.types.js +47 -10
  18. package/bundle/dist/application/qgrid/token-subscriber.js +3 -2
  19. package/bundle/dist/application/qgrid/token-trigger-setup.js +1 -2
  20. package/bundle/dist/application/qgrid/tool-emulation.js +1 -2
  21. package/bundle/dist/application/queries.generated.js +1 -2
  22. package/bundle/dist/application/request-log/request-log.model.js +143 -47
  23. package/bundle/dist/application/request-log/request-log.types.js +1 -2
  24. package/bundle/dist/application/request-log-step/request-log-step.model.js +3 -4
  25. package/bundle/dist/application/request-log-step/request-log-step.types.js +8 -2
  26. package/bundle/dist/application/sonamu.generated.js +41 -6
  27. package/bundle/dist/application/sonamu.generated.sso.js +25 -2
  28. package/bundle/dist/application/token/token.model.js +3 -4
  29. package/bundle/dist/application/token/token.types.js +1 -2
  30. package/bundle/dist/codex-protocol/AbsolutePathBuf.js +0 -1
  31. package/bundle/dist/codex-protocol/AgentPath.js +0 -1
  32. package/bundle/dist/codex-protocol/ApplyPatchApprovalParams.js +0 -1
  33. package/bundle/dist/codex-protocol/ApplyPatchApprovalResponse.js +0 -1
  34. package/bundle/dist/codex-protocol/AuthMode.js +0 -1
  35. package/bundle/dist/codex-protocol/ClientInfo.js +0 -1
  36. package/bundle/dist/codex-protocol/ClientNotification.js +0 -1
  37. package/bundle/dist/codex-protocol/ClientRequest.js +0 -1
  38. package/bundle/dist/codex-protocol/CollaborationMode.js +0 -1
  39. package/bundle/dist/codex-protocol/ContentItem.js +0 -1
  40. package/bundle/dist/codex-protocol/ConversationGitInfo.js +0 -1
  41. package/bundle/dist/codex-protocol/ConversationSummary.js +0 -1
  42. package/bundle/dist/codex-protocol/ExecCommandApprovalParams.js +0 -1
  43. package/bundle/dist/codex-protocol/ExecCommandApprovalResponse.js +0 -1
  44. package/bundle/dist/codex-protocol/ExecPolicyAmendment.js +0 -1
  45. package/bundle/dist/codex-protocol/FileChange.js +0 -1
  46. package/bundle/dist/codex-protocol/ForcedLoginMethod.js +0 -1
  47. package/bundle/dist/codex-protocol/FunctionCallOutputBody.js +0 -1
  48. package/bundle/dist/codex-protocol/FunctionCallOutputContentItem.js +0 -1
  49. package/bundle/dist/codex-protocol/FuzzyFileSearchMatchType.js +0 -1
  50. package/bundle/dist/codex-protocol/FuzzyFileSearchParams.js +0 -1
  51. package/bundle/dist/codex-protocol/FuzzyFileSearchResponse.js +0 -1
  52. package/bundle/dist/codex-protocol/FuzzyFileSearchResult.js +0 -1
  53. package/bundle/dist/codex-protocol/FuzzyFileSearchSessionCompletedNotification.js +0 -1
  54. package/bundle/dist/codex-protocol/FuzzyFileSearchSessionUpdatedNotification.js +0 -1
  55. package/bundle/dist/codex-protocol/GetAuthStatusParams.js +0 -1
  56. package/bundle/dist/codex-protocol/GetAuthStatusResponse.js +0 -1
  57. package/bundle/dist/codex-protocol/GetConversationSummaryParams.js +0 -1
  58. package/bundle/dist/codex-protocol/GetConversationSummaryResponse.js +0 -1
  59. package/bundle/dist/codex-protocol/GitDiffToRemoteParams.js +0 -1
  60. package/bundle/dist/codex-protocol/GitDiffToRemoteResponse.js +0 -1
  61. package/bundle/dist/codex-protocol/GitSha.js +0 -1
  62. package/bundle/dist/codex-protocol/ImageDetail.js +0 -1
  63. package/bundle/dist/codex-protocol/InitializeCapabilities.js +0 -1
  64. package/bundle/dist/codex-protocol/InitializeParams.js +0 -1
  65. package/bundle/dist/codex-protocol/InitializeResponse.js +0 -1
  66. package/bundle/dist/codex-protocol/InputModality.js +0 -1
  67. package/bundle/dist/codex-protocol/InternalSessionSource.js +0 -1
  68. package/bundle/dist/codex-protocol/LocalShellAction.js +0 -1
  69. package/bundle/dist/codex-protocol/LocalShellExecAction.js +0 -1
  70. package/bundle/dist/codex-protocol/LocalShellStatus.js +0 -1
  71. package/bundle/dist/codex-protocol/MessagePhase.js +0 -1
  72. package/bundle/dist/codex-protocol/ModeKind.js +0 -1
  73. package/bundle/dist/codex-protocol/NetworkPolicyAmendment.js +0 -1
  74. package/bundle/dist/codex-protocol/NetworkPolicyRuleAction.js +0 -1
  75. package/bundle/dist/codex-protocol/ParsedCommand.js +0 -1
  76. package/bundle/dist/codex-protocol/Personality.js +0 -1
  77. package/bundle/dist/codex-protocol/PlanType.js +0 -1
  78. package/bundle/dist/codex-protocol/RealtimeConversationVersion.js +0 -1
  79. package/bundle/dist/codex-protocol/RealtimeOutputModality.js +0 -1
  80. package/bundle/dist/codex-protocol/RealtimeVoice.js +0 -1
  81. package/bundle/dist/codex-protocol/RealtimeVoicesList.js +0 -1
  82. package/bundle/dist/codex-protocol/ReasoningEffort.js +0 -1
  83. package/bundle/dist/codex-protocol/ReasoningItemContent.js +0 -1
  84. package/bundle/dist/codex-protocol/ReasoningItemReasoningSummary.js +0 -1
  85. package/bundle/dist/codex-protocol/ReasoningSummary.js +0 -1
  86. package/bundle/dist/codex-protocol/RequestId.js +0 -1
  87. package/bundle/dist/codex-protocol/Resource.js +0 -1
  88. package/bundle/dist/codex-protocol/ResourceContent.js +0 -1
  89. package/bundle/dist/codex-protocol/ResourceTemplate.js +0 -1
  90. package/bundle/dist/codex-protocol/ResponseItem.js +0 -1
  91. package/bundle/dist/codex-protocol/ReviewDecision.js +0 -1
  92. package/bundle/dist/codex-protocol/ServerNotification.js +0 -1
  93. package/bundle/dist/codex-protocol/ServerRequest.js +0 -1
  94. package/bundle/dist/codex-protocol/SessionSource.js +0 -1
  95. package/bundle/dist/codex-protocol/Settings.js +0 -1
  96. package/bundle/dist/codex-protocol/SubAgentSource.js +0 -1
  97. package/bundle/dist/codex-protocol/ThreadId.js +0 -1
  98. package/bundle/dist/codex-protocol/ThreadMemoryMode.js +0 -1
  99. package/bundle/dist/codex-protocol/Tool.js +0 -1
  100. package/bundle/dist/codex-protocol/Verbosity.js +0 -1
  101. package/bundle/dist/codex-protocol/WebSearchAction.js +0 -1
  102. package/bundle/dist/codex-protocol/WebSearchContextSize.js +0 -1
  103. package/bundle/dist/codex-protocol/WebSearchLocation.js +0 -1
  104. package/bundle/dist/codex-protocol/WebSearchMode.js +0 -1
  105. package/bundle/dist/codex-protocol/WebSearchToolConfig.js +0 -1
  106. package/bundle/dist/codex-protocol/index.js +0 -1
  107. package/bundle/dist/codex-protocol/serde_json/JsonValue.js +0 -1
  108. package/bundle/dist/codex-protocol/v2/Account.js +0 -1
  109. package/bundle/dist/codex-protocol/v2/AccountLoginCompletedNotification.js +0 -1
  110. package/bundle/dist/codex-protocol/v2/AccountRateLimitsUpdatedNotification.js +0 -1
  111. package/bundle/dist/codex-protocol/v2/AccountUpdatedNotification.js +0 -1
  112. package/bundle/dist/codex-protocol/v2/ActivePermissionProfile.js +0 -1
  113. package/bundle/dist/codex-protocol/v2/ActivePermissionProfileModification.js +0 -1
  114. package/bundle/dist/codex-protocol/v2/AddCreditsNudgeCreditType.js +0 -1
  115. package/bundle/dist/codex-protocol/v2/AddCreditsNudgeEmailStatus.js +0 -1
  116. package/bundle/dist/codex-protocol/v2/AdditionalFileSystemPermissions.js +0 -1
  117. package/bundle/dist/codex-protocol/v2/AdditionalNetworkPermissions.js +0 -1
  118. package/bundle/dist/codex-protocol/v2/AdditionalPermissionProfile.js +0 -1
  119. package/bundle/dist/codex-protocol/v2/AgentMessageDeltaNotification.js +0 -1
  120. package/bundle/dist/codex-protocol/v2/AnalyticsConfig.js +0 -1
  121. package/bundle/dist/codex-protocol/v2/AppBranding.js +0 -1
  122. package/bundle/dist/codex-protocol/v2/AppInfo.js +0 -1
  123. package/bundle/dist/codex-protocol/v2/AppListUpdatedNotification.js +0 -1
  124. package/bundle/dist/codex-protocol/v2/AppMetadata.js +0 -1
  125. package/bundle/dist/codex-protocol/v2/AppReview.js +0 -1
  126. package/bundle/dist/codex-protocol/v2/AppScreenshot.js +0 -1
  127. package/bundle/dist/codex-protocol/v2/AppSummary.js +0 -1
  128. package/bundle/dist/codex-protocol/v2/AppToolApproval.js +0 -1
  129. package/bundle/dist/codex-protocol/v2/AppToolsConfig.js +0 -1
  130. package/bundle/dist/codex-protocol/v2/ApprovalsReviewer.js +0 -1
  131. package/bundle/dist/codex-protocol/v2/AppsConfig.js +0 -1
  132. package/bundle/dist/codex-protocol/v2/AppsDefaultConfig.js +0 -1
  133. package/bundle/dist/codex-protocol/v2/AppsListParams.js +0 -1
  134. package/bundle/dist/codex-protocol/v2/AppsListResponse.js +0 -1
  135. package/bundle/dist/codex-protocol/v2/AskForApproval.js +0 -1
  136. package/bundle/dist/codex-protocol/v2/AutoReviewDecisionSource.js +0 -1
  137. package/bundle/dist/codex-protocol/v2/ByteRange.js +0 -1
  138. package/bundle/dist/codex-protocol/v2/CancelLoginAccountParams.js +0 -1
  139. package/bundle/dist/codex-protocol/v2/CancelLoginAccountResponse.js +0 -1
  140. package/bundle/dist/codex-protocol/v2/CancelLoginAccountStatus.js +0 -1
  141. package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshParams.js +0 -1
  142. package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshReason.js +0 -1
  143. package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshResponse.js +0 -1
  144. package/bundle/dist/codex-protocol/v2/CodexErrorInfo.js +0 -1
  145. package/bundle/dist/codex-protocol/v2/CollabAgentState.js +0 -1
  146. package/bundle/dist/codex-protocol/v2/CollabAgentStatus.js +0 -1
  147. package/bundle/dist/codex-protocol/v2/CollabAgentTool.js +0 -1
  148. package/bundle/dist/codex-protocol/v2/CollabAgentToolCallStatus.js +0 -1
  149. package/bundle/dist/codex-protocol/v2/CollaborationModeMask.js +0 -1
  150. package/bundle/dist/codex-protocol/v2/CommandAction.js +0 -1
  151. package/bundle/dist/codex-protocol/v2/CommandExecOutputDeltaNotification.js +0 -1
  152. package/bundle/dist/codex-protocol/v2/CommandExecOutputStream.js +0 -1
  153. package/bundle/dist/codex-protocol/v2/CommandExecParams.js +0 -1
  154. package/bundle/dist/codex-protocol/v2/CommandExecResizeParams.js +0 -1
  155. package/bundle/dist/codex-protocol/v2/CommandExecResizeResponse.js +0 -1
  156. package/bundle/dist/codex-protocol/v2/CommandExecResponse.js +0 -1
  157. package/bundle/dist/codex-protocol/v2/CommandExecTerminalSize.js +0 -1
  158. package/bundle/dist/codex-protocol/v2/CommandExecTerminateParams.js +0 -1
  159. package/bundle/dist/codex-protocol/v2/CommandExecTerminateResponse.js +0 -1
  160. package/bundle/dist/codex-protocol/v2/CommandExecWriteParams.js +0 -1
  161. package/bundle/dist/codex-protocol/v2/CommandExecWriteResponse.js +0 -1
  162. package/bundle/dist/codex-protocol/v2/CommandExecutionApprovalDecision.js +0 -1
  163. package/bundle/dist/codex-protocol/v2/CommandExecutionOutputDeltaNotification.js +0 -1
  164. package/bundle/dist/codex-protocol/v2/CommandExecutionRequestApprovalParams.js +0 -1
  165. package/bundle/dist/codex-protocol/v2/CommandExecutionRequestApprovalResponse.js +0 -1
  166. package/bundle/dist/codex-protocol/v2/CommandExecutionSource.js +0 -1
  167. package/bundle/dist/codex-protocol/v2/CommandExecutionStatus.js +0 -1
  168. package/bundle/dist/codex-protocol/v2/CommandMigration.js +0 -1
  169. package/bundle/dist/codex-protocol/v2/Config.js +0 -1
  170. package/bundle/dist/codex-protocol/v2/ConfigBatchWriteParams.js +0 -1
  171. package/bundle/dist/codex-protocol/v2/ConfigEdit.js +0 -1
  172. package/bundle/dist/codex-protocol/v2/ConfigLayer.js +0 -1
  173. package/bundle/dist/codex-protocol/v2/ConfigLayerMetadata.js +0 -1
  174. package/bundle/dist/codex-protocol/v2/ConfigLayerSource.js +0 -1
  175. package/bundle/dist/codex-protocol/v2/ConfigReadParams.js +0 -1
  176. package/bundle/dist/codex-protocol/v2/ConfigReadResponse.js +0 -1
  177. package/bundle/dist/codex-protocol/v2/ConfigRequirements.js +0 -1
  178. package/bundle/dist/codex-protocol/v2/ConfigRequirementsReadResponse.js +0 -1
  179. package/bundle/dist/codex-protocol/v2/ConfigValueWriteParams.js +0 -1
  180. package/bundle/dist/codex-protocol/v2/ConfigWarningNotification.js +0 -1
  181. package/bundle/dist/codex-protocol/v2/ConfigWriteResponse.js +0 -1
  182. package/bundle/dist/codex-protocol/v2/ConfiguredHookHandler.js +0 -1
  183. package/bundle/dist/codex-protocol/v2/ConfiguredHookMatcherGroup.js +0 -1
  184. package/bundle/dist/codex-protocol/v2/ContextCompactedNotification.js +0 -1
  185. package/bundle/dist/codex-protocol/v2/CreditsSnapshot.js +0 -1
  186. package/bundle/dist/codex-protocol/v2/DeprecationNoticeNotification.js +0 -1
  187. package/bundle/dist/codex-protocol/v2/DynamicToolCallOutputContentItem.js +0 -1
  188. package/bundle/dist/codex-protocol/v2/DynamicToolCallParams.js +0 -1
  189. package/bundle/dist/codex-protocol/v2/DynamicToolCallResponse.js +0 -1
  190. package/bundle/dist/codex-protocol/v2/DynamicToolCallStatus.js +0 -1
  191. package/bundle/dist/codex-protocol/v2/DynamicToolSpec.js +0 -1
  192. package/bundle/dist/codex-protocol/v2/ErrorNotification.js +0 -1
  193. package/bundle/dist/codex-protocol/v2/ExecPolicyAmendment.js +0 -1
  194. package/bundle/dist/codex-protocol/v2/ExperimentalFeature.js +0 -1
  195. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureEnablementSetParams.js +0 -1
  196. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureEnablementSetResponse.js +0 -1
  197. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureListParams.js +0 -1
  198. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureListResponse.js +0 -1
  199. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureStage.js +0 -1
  200. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigDetectParams.js +0 -1
  201. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigDetectResponse.js +0 -1
  202. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportCompletedNotification.js +0 -1
  203. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportParams.js +0 -1
  204. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportResponse.js +0 -1
  205. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigMigrationItem.js +0 -1
  206. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigMigrationItemType.js +0 -1
  207. package/bundle/dist/codex-protocol/v2/FeedbackUploadParams.js +0 -1
  208. package/bundle/dist/codex-protocol/v2/FeedbackUploadResponse.js +0 -1
  209. package/bundle/dist/codex-protocol/v2/FileChangeApprovalDecision.js +0 -1
  210. package/bundle/dist/codex-protocol/v2/FileChangeOutputDeltaNotification.js +0 -1
  211. package/bundle/dist/codex-protocol/v2/FileChangePatchUpdatedNotification.js +0 -1
  212. package/bundle/dist/codex-protocol/v2/FileChangeRequestApprovalParams.js +0 -1
  213. package/bundle/dist/codex-protocol/v2/FileChangeRequestApprovalResponse.js +0 -1
  214. package/bundle/dist/codex-protocol/v2/FileSystemAccessMode.js +0 -1
  215. package/bundle/dist/codex-protocol/v2/FileSystemPath.js +0 -1
  216. package/bundle/dist/codex-protocol/v2/FileSystemSandboxEntry.js +0 -1
  217. package/bundle/dist/codex-protocol/v2/FileSystemSpecialPath.js +0 -1
  218. package/bundle/dist/codex-protocol/v2/FileUpdateChange.js +0 -1
  219. package/bundle/dist/codex-protocol/v2/FsChangedNotification.js +0 -1
  220. package/bundle/dist/codex-protocol/v2/FsCopyParams.js +0 -1
  221. package/bundle/dist/codex-protocol/v2/FsCopyResponse.js +0 -1
  222. package/bundle/dist/codex-protocol/v2/FsCreateDirectoryParams.js +0 -1
  223. package/bundle/dist/codex-protocol/v2/FsCreateDirectoryResponse.js +0 -1
  224. package/bundle/dist/codex-protocol/v2/FsGetMetadataParams.js +0 -1
  225. package/bundle/dist/codex-protocol/v2/FsGetMetadataResponse.js +0 -1
  226. package/bundle/dist/codex-protocol/v2/FsReadDirectoryEntry.js +0 -1
  227. package/bundle/dist/codex-protocol/v2/FsReadDirectoryParams.js +0 -1
  228. package/bundle/dist/codex-protocol/v2/FsReadDirectoryResponse.js +0 -1
  229. package/bundle/dist/codex-protocol/v2/FsReadFileParams.js +0 -1
  230. package/bundle/dist/codex-protocol/v2/FsReadFileResponse.js +0 -1
  231. package/bundle/dist/codex-protocol/v2/FsRemoveParams.js +0 -1
  232. package/bundle/dist/codex-protocol/v2/FsRemoveResponse.js +0 -1
  233. package/bundle/dist/codex-protocol/v2/FsUnwatchParams.js +0 -1
  234. package/bundle/dist/codex-protocol/v2/FsUnwatchResponse.js +0 -1
  235. package/bundle/dist/codex-protocol/v2/FsWatchParams.js +0 -1
  236. package/bundle/dist/codex-protocol/v2/FsWatchResponse.js +0 -1
  237. package/bundle/dist/codex-protocol/v2/FsWriteFileParams.js +0 -1
  238. package/bundle/dist/codex-protocol/v2/FsWriteFileResponse.js +0 -1
  239. package/bundle/dist/codex-protocol/v2/GetAccountParams.js +0 -1
  240. package/bundle/dist/codex-protocol/v2/GetAccountRateLimitsResponse.js +0 -1
  241. package/bundle/dist/codex-protocol/v2/GetAccountResponse.js +0 -1
  242. package/bundle/dist/codex-protocol/v2/GitInfo.js +0 -1
  243. package/bundle/dist/codex-protocol/v2/GrantedPermissionProfile.js +0 -1
  244. package/bundle/dist/codex-protocol/v2/GuardianApprovalReview.js +0 -1
  245. package/bundle/dist/codex-protocol/v2/GuardianApprovalReviewAction.js +0 -1
  246. package/bundle/dist/codex-protocol/v2/GuardianApprovalReviewStatus.js +0 -1
  247. package/bundle/dist/codex-protocol/v2/GuardianCommandSource.js +0 -1
  248. package/bundle/dist/codex-protocol/v2/GuardianRiskLevel.js +0 -1
  249. package/bundle/dist/codex-protocol/v2/GuardianUserAuthorization.js +0 -1
  250. package/bundle/dist/codex-protocol/v2/GuardianWarningNotification.js +0 -1
  251. package/bundle/dist/codex-protocol/v2/HookCompletedNotification.js +0 -1
  252. package/bundle/dist/codex-protocol/v2/HookErrorInfo.js +0 -1
  253. package/bundle/dist/codex-protocol/v2/HookEventName.js +0 -1
  254. package/bundle/dist/codex-protocol/v2/HookExecutionMode.js +0 -1
  255. package/bundle/dist/codex-protocol/v2/HookHandlerType.js +0 -1
  256. package/bundle/dist/codex-protocol/v2/HookMetadata.js +0 -1
  257. package/bundle/dist/codex-protocol/v2/HookMigration.js +0 -1
  258. package/bundle/dist/codex-protocol/v2/HookOutputEntry.js +0 -1
  259. package/bundle/dist/codex-protocol/v2/HookOutputEntryKind.js +0 -1
  260. package/bundle/dist/codex-protocol/v2/HookPromptFragment.js +0 -1
  261. package/bundle/dist/codex-protocol/v2/HookRunStatus.js +0 -1
  262. package/bundle/dist/codex-protocol/v2/HookRunSummary.js +0 -1
  263. package/bundle/dist/codex-protocol/v2/HookScope.js +0 -1
  264. package/bundle/dist/codex-protocol/v2/HookSource.js +0 -1
  265. package/bundle/dist/codex-protocol/v2/HookStartedNotification.js +0 -1
  266. package/bundle/dist/codex-protocol/v2/HookTrustStatus.js +0 -1
  267. package/bundle/dist/codex-protocol/v2/HooksListEntry.js +0 -1
  268. package/bundle/dist/codex-protocol/v2/HooksListParams.js +0 -1
  269. package/bundle/dist/codex-protocol/v2/HooksListResponse.js +0 -1
  270. package/bundle/dist/codex-protocol/v2/ItemCompletedNotification.js +0 -1
  271. package/bundle/dist/codex-protocol/v2/ItemGuardianApprovalReviewCompletedNotification.js +0 -1
  272. package/bundle/dist/codex-protocol/v2/ItemGuardianApprovalReviewStartedNotification.js +0 -1
  273. package/bundle/dist/codex-protocol/v2/ItemStartedNotification.js +0 -1
  274. package/bundle/dist/codex-protocol/v2/ListMcpServerStatusParams.js +0 -1
  275. package/bundle/dist/codex-protocol/v2/ListMcpServerStatusResponse.js +0 -1
  276. package/bundle/dist/codex-protocol/v2/LoginAccountParams.js +0 -1
  277. package/bundle/dist/codex-protocol/v2/LoginAccountResponse.js +0 -1
  278. package/bundle/dist/codex-protocol/v2/LogoutAccountResponse.js +0 -1
  279. package/bundle/dist/codex-protocol/v2/ManagedHooksRequirements.js +0 -1
  280. package/bundle/dist/codex-protocol/v2/MarketplaceAddParams.js +0 -1
  281. package/bundle/dist/codex-protocol/v2/MarketplaceAddResponse.js +0 -1
  282. package/bundle/dist/codex-protocol/v2/MarketplaceInterface.js +0 -1
  283. package/bundle/dist/codex-protocol/v2/MarketplaceLoadErrorInfo.js +0 -1
  284. package/bundle/dist/codex-protocol/v2/MarketplaceRemoveParams.js +0 -1
  285. package/bundle/dist/codex-protocol/v2/MarketplaceRemoveResponse.js +0 -1
  286. package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeErrorInfo.js +0 -1
  287. package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeParams.js +0 -1
  288. package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeResponse.js +0 -1
  289. package/bundle/dist/codex-protocol/v2/McpAuthStatus.js +0 -1
  290. package/bundle/dist/codex-protocol/v2/McpElicitationArrayType.js +0 -1
  291. package/bundle/dist/codex-protocol/v2/McpElicitationBooleanSchema.js +0 -1
  292. package/bundle/dist/codex-protocol/v2/McpElicitationBooleanType.js +0 -1
  293. package/bundle/dist/codex-protocol/v2/McpElicitationConstOption.js +0 -1
  294. package/bundle/dist/codex-protocol/v2/McpElicitationEnumSchema.js +0 -1
  295. package/bundle/dist/codex-protocol/v2/McpElicitationLegacyTitledEnumSchema.js +0 -1
  296. package/bundle/dist/codex-protocol/v2/McpElicitationMultiSelectEnumSchema.js +0 -1
  297. package/bundle/dist/codex-protocol/v2/McpElicitationNumberSchema.js +0 -1
  298. package/bundle/dist/codex-protocol/v2/McpElicitationNumberType.js +0 -1
  299. package/bundle/dist/codex-protocol/v2/McpElicitationObjectType.js +0 -1
  300. package/bundle/dist/codex-protocol/v2/McpElicitationPrimitiveSchema.js +0 -1
  301. package/bundle/dist/codex-protocol/v2/McpElicitationSchema.js +0 -1
  302. package/bundle/dist/codex-protocol/v2/McpElicitationSingleSelectEnumSchema.js +0 -1
  303. package/bundle/dist/codex-protocol/v2/McpElicitationStringFormat.js +0 -1
  304. package/bundle/dist/codex-protocol/v2/McpElicitationStringSchema.js +0 -1
  305. package/bundle/dist/codex-protocol/v2/McpElicitationStringType.js +0 -1
  306. package/bundle/dist/codex-protocol/v2/McpElicitationTitledEnumItems.js +0 -1
  307. package/bundle/dist/codex-protocol/v2/McpElicitationTitledMultiSelectEnumSchema.js +0 -1
  308. package/bundle/dist/codex-protocol/v2/McpElicitationTitledSingleSelectEnumSchema.js +0 -1
  309. package/bundle/dist/codex-protocol/v2/McpElicitationUntitledEnumItems.js +0 -1
  310. package/bundle/dist/codex-protocol/v2/McpElicitationUntitledMultiSelectEnumSchema.js +0 -1
  311. package/bundle/dist/codex-protocol/v2/McpElicitationUntitledSingleSelectEnumSchema.js +0 -1
  312. package/bundle/dist/codex-protocol/v2/McpResourceReadParams.js +0 -1
  313. package/bundle/dist/codex-protocol/v2/McpResourceReadResponse.js +0 -1
  314. package/bundle/dist/codex-protocol/v2/McpServerElicitationAction.js +0 -1
  315. package/bundle/dist/codex-protocol/v2/McpServerElicitationRequestParams.js +0 -1
  316. package/bundle/dist/codex-protocol/v2/McpServerElicitationRequestResponse.js +0 -1
  317. package/bundle/dist/codex-protocol/v2/McpServerMigration.js +0 -1
  318. package/bundle/dist/codex-protocol/v2/McpServerOauthLoginCompletedNotification.js +0 -1
  319. package/bundle/dist/codex-protocol/v2/McpServerOauthLoginParams.js +0 -1
  320. package/bundle/dist/codex-protocol/v2/McpServerOauthLoginResponse.js +0 -1
  321. package/bundle/dist/codex-protocol/v2/McpServerRefreshResponse.js +0 -1
  322. package/bundle/dist/codex-protocol/v2/McpServerStartupState.js +0 -1
  323. package/bundle/dist/codex-protocol/v2/McpServerStatus.js +0 -1
  324. package/bundle/dist/codex-protocol/v2/McpServerStatusDetail.js +0 -1
  325. package/bundle/dist/codex-protocol/v2/McpServerStatusUpdatedNotification.js +0 -1
  326. package/bundle/dist/codex-protocol/v2/McpServerToolCallParams.js +0 -1
  327. package/bundle/dist/codex-protocol/v2/McpServerToolCallResponse.js +0 -1
  328. package/bundle/dist/codex-protocol/v2/McpToolCallError.js +0 -1
  329. package/bundle/dist/codex-protocol/v2/McpToolCallProgressNotification.js +0 -1
  330. package/bundle/dist/codex-protocol/v2/McpToolCallResult.js +0 -1
  331. package/bundle/dist/codex-protocol/v2/McpToolCallStatus.js +0 -1
  332. package/bundle/dist/codex-protocol/v2/MemoryCitation.js +0 -1
  333. package/bundle/dist/codex-protocol/v2/MemoryCitationEntry.js +0 -1
  334. package/bundle/dist/codex-protocol/v2/MergeStrategy.js +0 -1
  335. package/bundle/dist/codex-protocol/v2/MigrationDetails.js +0 -1
  336. package/bundle/dist/codex-protocol/v2/Model.js +0 -1
  337. package/bundle/dist/codex-protocol/v2/ModelAvailabilityNux.js +0 -1
  338. package/bundle/dist/codex-protocol/v2/ModelListParams.js +0 -1
  339. package/bundle/dist/codex-protocol/v2/ModelListResponse.js +0 -1
  340. package/bundle/dist/codex-protocol/v2/ModelProviderCapabilitiesReadParams.js +0 -1
  341. package/bundle/dist/codex-protocol/v2/ModelProviderCapabilitiesReadResponse.js +0 -1
  342. package/bundle/dist/codex-protocol/v2/ModelRerouteReason.js +0 -1
  343. package/bundle/dist/codex-protocol/v2/ModelReroutedNotification.js +0 -1
  344. package/bundle/dist/codex-protocol/v2/ModelServiceTier.js +0 -1
  345. package/bundle/dist/codex-protocol/v2/ModelUpgradeInfo.js +0 -1
  346. package/bundle/dist/codex-protocol/v2/ModelVerification.js +0 -1
  347. package/bundle/dist/codex-protocol/v2/ModelVerificationNotification.js +0 -1
  348. package/bundle/dist/codex-protocol/v2/NetworkAccess.js +0 -1
  349. package/bundle/dist/codex-protocol/v2/NetworkApprovalContext.js +0 -1
  350. package/bundle/dist/codex-protocol/v2/NetworkApprovalProtocol.js +0 -1
  351. package/bundle/dist/codex-protocol/v2/NetworkDomainPermission.js +0 -1
  352. package/bundle/dist/codex-protocol/v2/NetworkPolicyAmendment.js +0 -1
  353. package/bundle/dist/codex-protocol/v2/NetworkPolicyRuleAction.js +0 -1
  354. package/bundle/dist/codex-protocol/v2/NetworkRequirements.js +0 -1
  355. package/bundle/dist/codex-protocol/v2/NetworkUnixSocketPermission.js +0 -1
  356. package/bundle/dist/codex-protocol/v2/NonSteerableTurnKind.js +0 -1
  357. package/bundle/dist/codex-protocol/v2/OverriddenMetadata.js +0 -1
  358. package/bundle/dist/codex-protocol/v2/PatchApplyStatus.js +0 -1
  359. package/bundle/dist/codex-protocol/v2/PatchChangeKind.js +0 -1
  360. package/bundle/dist/codex-protocol/v2/PermissionGrantScope.js +0 -1
  361. package/bundle/dist/codex-protocol/v2/PermissionProfile.js +0 -1
  362. package/bundle/dist/codex-protocol/v2/PermissionProfileFileSystemPermissions.js +0 -1
  363. package/bundle/dist/codex-protocol/v2/PermissionProfileModificationParams.js +0 -1
  364. package/bundle/dist/codex-protocol/v2/PermissionProfileNetworkPermissions.js +0 -1
  365. package/bundle/dist/codex-protocol/v2/PermissionProfileSelectionParams.js +0 -1
  366. package/bundle/dist/codex-protocol/v2/PermissionsRequestApprovalParams.js +0 -1
  367. package/bundle/dist/codex-protocol/v2/PermissionsRequestApprovalResponse.js +0 -1
  368. package/bundle/dist/codex-protocol/v2/PlanDeltaNotification.js +0 -1
  369. package/bundle/dist/codex-protocol/v2/PluginAuthPolicy.js +0 -1
  370. package/bundle/dist/codex-protocol/v2/PluginAvailability.js +0 -1
  371. package/bundle/dist/codex-protocol/v2/PluginDetail.js +0 -1
  372. package/bundle/dist/codex-protocol/v2/PluginHookSummary.js +0 -1
  373. package/bundle/dist/codex-protocol/v2/PluginInstallParams.js +0 -1
  374. package/bundle/dist/codex-protocol/v2/PluginInstallPolicy.js +0 -1
  375. package/bundle/dist/codex-protocol/v2/PluginInstallResponse.js +0 -1
  376. package/bundle/dist/codex-protocol/v2/PluginInterface.js +0 -1
  377. package/bundle/dist/codex-protocol/v2/PluginListMarketplaceKind.js +0 -1
  378. package/bundle/dist/codex-protocol/v2/PluginListParams.js +0 -1
  379. package/bundle/dist/codex-protocol/v2/PluginListResponse.js +0 -1
  380. package/bundle/dist/codex-protocol/v2/PluginMarketplaceEntry.js +0 -1
  381. package/bundle/dist/codex-protocol/v2/PluginReadParams.js +0 -1
  382. package/bundle/dist/codex-protocol/v2/PluginReadResponse.js +0 -1
  383. package/bundle/dist/codex-protocol/v2/PluginShareContext.js +0 -1
  384. package/bundle/dist/codex-protocol/v2/PluginShareDeleteParams.js +0 -1
  385. package/bundle/dist/codex-protocol/v2/PluginShareDeleteResponse.js +0 -1
  386. package/bundle/dist/codex-protocol/v2/PluginShareDiscoverability.js +0 -1
  387. package/bundle/dist/codex-protocol/v2/PluginShareListItem.js +0 -1
  388. package/bundle/dist/codex-protocol/v2/PluginShareListParams.js +0 -1
  389. package/bundle/dist/codex-protocol/v2/PluginShareListResponse.js +0 -1
  390. package/bundle/dist/codex-protocol/v2/PluginSharePrincipal.js +0 -1
  391. package/bundle/dist/codex-protocol/v2/PluginSharePrincipalType.js +0 -1
  392. package/bundle/dist/codex-protocol/v2/PluginShareSaveParams.js +0 -1
  393. package/bundle/dist/codex-protocol/v2/PluginShareSaveResponse.js +0 -1
  394. package/bundle/dist/codex-protocol/v2/PluginShareTarget.js +0 -1
  395. package/bundle/dist/codex-protocol/v2/PluginShareUpdateDiscoverability.js +0 -1
  396. package/bundle/dist/codex-protocol/v2/PluginShareUpdateTargetsParams.js +0 -1
  397. package/bundle/dist/codex-protocol/v2/PluginShareUpdateTargetsResponse.js +0 -1
  398. package/bundle/dist/codex-protocol/v2/PluginSkillReadParams.js +0 -1
  399. package/bundle/dist/codex-protocol/v2/PluginSkillReadResponse.js +0 -1
  400. package/bundle/dist/codex-protocol/v2/PluginSource.js +0 -1
  401. package/bundle/dist/codex-protocol/v2/PluginSummary.js +0 -1
  402. package/bundle/dist/codex-protocol/v2/PluginUninstallParams.js +0 -1
  403. package/bundle/dist/codex-protocol/v2/PluginUninstallResponse.js +0 -1
  404. package/bundle/dist/codex-protocol/v2/PluginsMigration.js +0 -1
  405. package/bundle/dist/codex-protocol/v2/ProcessExitedNotification.js +0 -1
  406. package/bundle/dist/codex-protocol/v2/ProcessOutputDeltaNotification.js +0 -1
  407. package/bundle/dist/codex-protocol/v2/ProcessOutputStream.js +0 -1
  408. package/bundle/dist/codex-protocol/v2/ProcessTerminalSize.js +0 -1
  409. package/bundle/dist/codex-protocol/v2/ProfileV2.js +0 -1
  410. package/bundle/dist/codex-protocol/v2/RateLimitReachedType.js +0 -1
  411. package/bundle/dist/codex-protocol/v2/RateLimitSnapshot.js +0 -1
  412. package/bundle/dist/codex-protocol/v2/RateLimitWindow.js +0 -1
  413. package/bundle/dist/codex-protocol/v2/RawResponseItemCompletedNotification.js +0 -1
  414. package/bundle/dist/codex-protocol/v2/ReasoningEffortOption.js +0 -1
  415. package/bundle/dist/codex-protocol/v2/ReasoningSummaryPartAddedNotification.js +0 -1
  416. package/bundle/dist/codex-protocol/v2/ReasoningSummaryTextDeltaNotification.js +0 -1
  417. package/bundle/dist/codex-protocol/v2/ReasoningTextDeltaNotification.js +0 -1
  418. package/bundle/dist/codex-protocol/v2/RemoteControlConnectionStatus.js +0 -1
  419. package/bundle/dist/codex-protocol/v2/RemoteControlStatusChangedNotification.js +0 -1
  420. package/bundle/dist/codex-protocol/v2/RequestPermissionProfile.js +0 -1
  421. package/bundle/dist/codex-protocol/v2/ResidencyRequirement.js +0 -1
  422. package/bundle/dist/codex-protocol/v2/ReviewDelivery.js +0 -1
  423. package/bundle/dist/codex-protocol/v2/ReviewStartParams.js +0 -1
  424. package/bundle/dist/codex-protocol/v2/ReviewStartResponse.js +0 -1
  425. package/bundle/dist/codex-protocol/v2/ReviewTarget.js +0 -1
  426. package/bundle/dist/codex-protocol/v2/SandboxMode.js +0 -1
  427. package/bundle/dist/codex-protocol/v2/SandboxPolicy.js +0 -1
  428. package/bundle/dist/codex-protocol/v2/SandboxWorkspaceWrite.js +0 -1
  429. package/bundle/dist/codex-protocol/v2/SendAddCreditsNudgeEmailParams.js +0 -1
  430. package/bundle/dist/codex-protocol/v2/SendAddCreditsNudgeEmailResponse.js +0 -1
  431. package/bundle/dist/codex-protocol/v2/ServerRequestResolvedNotification.js +0 -1
  432. package/bundle/dist/codex-protocol/v2/SessionMigration.js +0 -1
  433. package/bundle/dist/codex-protocol/v2/SessionSource.js +0 -1
  434. package/bundle/dist/codex-protocol/v2/SkillDependencies.js +0 -1
  435. package/bundle/dist/codex-protocol/v2/SkillErrorInfo.js +0 -1
  436. package/bundle/dist/codex-protocol/v2/SkillInterface.js +0 -1
  437. package/bundle/dist/codex-protocol/v2/SkillMetadata.js +0 -1
  438. package/bundle/dist/codex-protocol/v2/SkillScope.js +0 -1
  439. package/bundle/dist/codex-protocol/v2/SkillSummary.js +0 -1
  440. package/bundle/dist/codex-protocol/v2/SkillToolDependency.js +0 -1
  441. package/bundle/dist/codex-protocol/v2/SkillsChangedNotification.js +0 -1
  442. package/bundle/dist/codex-protocol/v2/SkillsConfigWriteParams.js +0 -1
  443. package/bundle/dist/codex-protocol/v2/SkillsConfigWriteResponse.js +0 -1
  444. package/bundle/dist/codex-protocol/v2/SkillsListEntry.js +0 -1
  445. package/bundle/dist/codex-protocol/v2/SkillsListParams.js +0 -1
  446. package/bundle/dist/codex-protocol/v2/SkillsListResponse.js +0 -1
  447. package/bundle/dist/codex-protocol/v2/SortDirection.js +0 -1
  448. package/bundle/dist/codex-protocol/v2/SubagentMigration.js +0 -1
  449. package/bundle/dist/codex-protocol/v2/TerminalInteractionNotification.js +0 -1
  450. package/bundle/dist/codex-protocol/v2/TextElement.js +0 -1
  451. package/bundle/dist/codex-protocol/v2/TextPosition.js +0 -1
  452. package/bundle/dist/codex-protocol/v2/TextRange.js +0 -1
  453. package/bundle/dist/codex-protocol/v2/Thread.js +0 -1
  454. package/bundle/dist/codex-protocol/v2/ThreadActiveFlag.js +0 -1
  455. package/bundle/dist/codex-protocol/v2/ThreadApproveGuardianDeniedActionParams.js +0 -1
  456. package/bundle/dist/codex-protocol/v2/ThreadApproveGuardianDeniedActionResponse.js +0 -1
  457. package/bundle/dist/codex-protocol/v2/ThreadArchiveParams.js +0 -1
  458. package/bundle/dist/codex-protocol/v2/ThreadArchiveResponse.js +0 -1
  459. package/bundle/dist/codex-protocol/v2/ThreadArchivedNotification.js +0 -1
  460. package/bundle/dist/codex-protocol/v2/ThreadClosedNotification.js +0 -1
  461. package/bundle/dist/codex-protocol/v2/ThreadCompactStartParams.js +0 -1
  462. package/bundle/dist/codex-protocol/v2/ThreadCompactStartResponse.js +0 -1
  463. package/bundle/dist/codex-protocol/v2/ThreadForkParams.js +0 -1
  464. package/bundle/dist/codex-protocol/v2/ThreadForkResponse.js +0 -1
  465. package/bundle/dist/codex-protocol/v2/ThreadGoal.js +0 -1
  466. package/bundle/dist/codex-protocol/v2/ThreadGoalClearedNotification.js +0 -1
  467. package/bundle/dist/codex-protocol/v2/ThreadGoalStatus.js +0 -1
  468. package/bundle/dist/codex-protocol/v2/ThreadGoalUpdatedNotification.js +0 -1
  469. package/bundle/dist/codex-protocol/v2/ThreadInjectItemsParams.js +0 -1
  470. package/bundle/dist/codex-protocol/v2/ThreadInjectItemsResponse.js +0 -1
  471. package/bundle/dist/codex-protocol/v2/ThreadItem.js +0 -1
  472. package/bundle/dist/codex-protocol/v2/ThreadListParams.js +0 -1
  473. package/bundle/dist/codex-protocol/v2/ThreadListResponse.js +0 -1
  474. package/bundle/dist/codex-protocol/v2/ThreadLoadedListParams.js +0 -1
  475. package/bundle/dist/codex-protocol/v2/ThreadLoadedListResponse.js +0 -1
  476. package/bundle/dist/codex-protocol/v2/ThreadMetadataGitInfoUpdateParams.js +0 -1
  477. package/bundle/dist/codex-protocol/v2/ThreadMetadataUpdateParams.js +0 -1
  478. package/bundle/dist/codex-protocol/v2/ThreadMetadataUpdateResponse.js +0 -1
  479. package/bundle/dist/codex-protocol/v2/ThreadNameUpdatedNotification.js +0 -1
  480. package/bundle/dist/codex-protocol/v2/ThreadReadParams.js +0 -1
  481. package/bundle/dist/codex-protocol/v2/ThreadReadResponse.js +0 -1
  482. package/bundle/dist/codex-protocol/v2/ThreadRealtimeAudioChunk.js +0 -1
  483. package/bundle/dist/codex-protocol/v2/ThreadRealtimeClosedNotification.js +0 -1
  484. package/bundle/dist/codex-protocol/v2/ThreadRealtimeErrorNotification.js +0 -1
  485. package/bundle/dist/codex-protocol/v2/ThreadRealtimeItemAddedNotification.js +0 -1
  486. package/bundle/dist/codex-protocol/v2/ThreadRealtimeOutputAudioDeltaNotification.js +0 -1
  487. package/bundle/dist/codex-protocol/v2/ThreadRealtimeSdpNotification.js +0 -1
  488. package/bundle/dist/codex-protocol/v2/ThreadRealtimeStartTransport.js +0 -1
  489. package/bundle/dist/codex-protocol/v2/ThreadRealtimeStartedNotification.js +0 -1
  490. package/bundle/dist/codex-protocol/v2/ThreadRealtimeTranscriptDeltaNotification.js +0 -1
  491. package/bundle/dist/codex-protocol/v2/ThreadRealtimeTranscriptDoneNotification.js +0 -1
  492. package/bundle/dist/codex-protocol/v2/ThreadResumeParams.js +0 -1
  493. package/bundle/dist/codex-protocol/v2/ThreadResumeResponse.js +0 -1
  494. package/bundle/dist/codex-protocol/v2/ThreadRollbackParams.js +0 -1
  495. package/bundle/dist/codex-protocol/v2/ThreadRollbackResponse.js +0 -1
  496. package/bundle/dist/codex-protocol/v2/ThreadSetNameParams.js +0 -1
  497. package/bundle/dist/codex-protocol/v2/ThreadSetNameResponse.js +0 -1
  498. package/bundle/dist/codex-protocol/v2/ThreadShellCommandParams.js +0 -1
  499. package/bundle/dist/codex-protocol/v2/ThreadShellCommandResponse.js +0 -1
  500. package/bundle/dist/codex-protocol/v2/ThreadSortKey.js +0 -1
  501. package/bundle/dist/codex-protocol/v2/ThreadSource.js +0 -1
  502. package/bundle/dist/codex-protocol/v2/ThreadSourceKind.js +0 -1
  503. package/bundle/dist/codex-protocol/v2/ThreadStartParams.js +0 -1
  504. package/bundle/dist/codex-protocol/v2/ThreadStartResponse.js +0 -1
  505. package/bundle/dist/codex-protocol/v2/ThreadStartSource.js +0 -1
  506. package/bundle/dist/codex-protocol/v2/ThreadStartedNotification.js +0 -1
  507. package/bundle/dist/codex-protocol/v2/ThreadStatus.js +0 -1
  508. package/bundle/dist/codex-protocol/v2/ThreadStatusChangedNotification.js +0 -1
  509. package/bundle/dist/codex-protocol/v2/ThreadTokenUsage.js +0 -1
  510. package/bundle/dist/codex-protocol/v2/ThreadTokenUsageUpdatedNotification.js +0 -1
  511. package/bundle/dist/codex-protocol/v2/ThreadUnarchiveParams.js +0 -1
  512. package/bundle/dist/codex-protocol/v2/ThreadUnarchiveResponse.js +0 -1
  513. package/bundle/dist/codex-protocol/v2/ThreadUnarchivedNotification.js +0 -1
  514. package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeParams.js +0 -1
  515. package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeResponse.js +0 -1
  516. package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeStatus.js +0 -1
  517. package/bundle/dist/codex-protocol/v2/TokenUsageBreakdown.js +0 -1
  518. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputAnswer.js +0 -1
  519. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputOption.js +0 -1
  520. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputParams.js +0 -1
  521. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputQuestion.js +0 -1
  522. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputResponse.js +0 -1
  523. package/bundle/dist/codex-protocol/v2/ToolsV2.js +0 -1
  524. package/bundle/dist/codex-protocol/v2/Turn.js +0 -1
  525. package/bundle/dist/codex-protocol/v2/TurnCompletedNotification.js +0 -1
  526. package/bundle/dist/codex-protocol/v2/TurnDiffUpdatedNotification.js +0 -1
  527. package/bundle/dist/codex-protocol/v2/TurnEnvironmentParams.js +0 -1
  528. package/bundle/dist/codex-protocol/v2/TurnError.js +0 -1
  529. package/bundle/dist/codex-protocol/v2/TurnInterruptParams.js +0 -1
  530. package/bundle/dist/codex-protocol/v2/TurnInterruptResponse.js +0 -1
  531. package/bundle/dist/codex-protocol/v2/TurnItemsView.js +0 -1
  532. package/bundle/dist/codex-protocol/v2/TurnPlanStep.js +0 -1
  533. package/bundle/dist/codex-protocol/v2/TurnPlanStepStatus.js +0 -1
  534. package/bundle/dist/codex-protocol/v2/TurnPlanUpdatedNotification.js +0 -1
  535. package/bundle/dist/codex-protocol/v2/TurnStartParams.js +0 -1
  536. package/bundle/dist/codex-protocol/v2/TurnStartResponse.js +0 -1
  537. package/bundle/dist/codex-protocol/v2/TurnStartedNotification.js +0 -1
  538. package/bundle/dist/codex-protocol/v2/TurnStatus.js +0 -1
  539. package/bundle/dist/codex-protocol/v2/TurnSteerParams.js +0 -1
  540. package/bundle/dist/codex-protocol/v2/TurnSteerResponse.js +0 -1
  541. package/bundle/dist/codex-protocol/v2/UserInput.js +0 -1
  542. package/bundle/dist/codex-protocol/v2/WarningNotification.js +0 -1
  543. package/bundle/dist/codex-protocol/v2/WebSearchAction.js +0 -1
  544. package/bundle/dist/codex-protocol/v2/WindowsSandboxReadiness.js +0 -1
  545. package/bundle/dist/codex-protocol/v2/WindowsSandboxReadinessResponse.js +0 -1
  546. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupCompletedNotification.js +0 -1
  547. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupMode.js +0 -1
  548. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupStartParams.js +0 -1
  549. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupStartResponse.js +0 -1
  550. package/bundle/dist/codex-protocol/v2/WindowsWorldWritableWarningNotification.js +0 -1
  551. package/bundle/dist/codex-protocol/v2/WriteStatus.js +0 -1
  552. package/bundle/dist/i18n/en.js +1 -2
  553. package/bundle/dist/i18n/ko.js +1 -2
  554. package/bundle/dist/i18n/sd.generated.js +66 -21
  555. package/bundle/dist/index.js +1 -2
  556. package/bundle/dist/migrations/20260410171405_create__request_logs.js +1 -2
  557. package/bundle/dist/migrations/20260410171406_create__tokens.js +1 -2
  558. package/bundle/dist/migrations/20260411120624_alter_tokens_alter2.js +1 -2
  559. package/bundle/dist/migrations/20260415113716_alter_tokens_add_ord.js +1 -2
  560. package/bundle/dist/migrations/20260415134649_alter_request_logs_alter1.js +1 -2
  561. package/bundle/dist/migrations/20260421223627_alter_request_logs_add1_alter1.js +1 -2
  562. package/bundle/dist/migrations/20260423180818_alter_request_logs_add1_alter1.js +1 -2
  563. package/bundle/dist/migrations/20260423182017_alter_request_logs_add2_drop1_alter1.js +1 -2
  564. package/bundle/dist/migrations/20260423183613_alter_request_logs_add1_alter1.js +1 -2
  565. package/bundle/dist/migrations/20260518145411_alter_tokens_add2_drop4_alter1.js +1 -2
  566. package/bundle/dist/migrations/20260520112853_alter_request_logs_add3_alter1.js +1 -2
  567. package/bundle/dist/migrations/20260520124755_alter_request_logs_drop1_alter1.js +1 -2
  568. package/bundle/dist/migrations/20260520130420_create__request_log_steps.js +1 -2
  569. package/bundle/dist/migrations/20260520134908_alter_request_logs_add2_alter8.js +1 -2
  570. package/bundle/dist/migrations/20260520134909_alter_request_log_steps_add1_alter3.js +1 -2
  571. package/bundle/dist/migrations/20260520141449_alter_request_logs_add1_alter1.js +1 -2
  572. package/bundle/dist/migrations/20260521134025_alter_request_log_steps_alter1.js +1 -2
  573. package/bundle/dist/migrations/20260521134026_alter_request_log_steps_foreigns.js +1 -2
  574. package/bundle/dist/migrations/20260522181721_alter_request_log_steps_add2_alter1.js +1 -2
  575. package/bundle/dist/migrations/20260630223950_alter_tokens_add1_alter1.js +1 -2
  576. package/bundle/dist/migrations/20260701105327_alter_request_logs_add1_alter1.js +1 -2
  577. package/bundle/dist/migrations/20260701105328_alter_request_log_steps_add1_alter1.js +1 -2
  578. package/bundle/dist/migrations/20260705140614_alter_request_logs_add1_alter1.js +1 -2
  579. package/bundle/dist/migrations/20260706120000_alter_request_logs_add_image_cost.js +1 -2
  580. package/bundle/dist/migrations/20260710090000_alter_tokens_add_weight.js +1 -2
  581. package/bundle/dist/migrations/20260718180824_alter_request_logs_add5_alter1.js +19 -0
  582. package/bundle/dist/migrations/20260718180825_alter_request_log_steps_add7_alter1.js +21 -0
  583. package/bundle/dist/migrations/20260722174410_alter_request_logs_alter3.js +17 -0
  584. package/bundle/dist/migrations/20260722174411_alter_request_log_steps_alter3.js +17 -0
  585. package/bundle/dist/node_modules/.pnpm/@jridgewell_sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.js +255 -4
  586. package/bundle/dist/node_modules/.pnpm/@vitest_expect@4.1.10/node_modules/@vitest/expect/dist/index.js +1507 -0
  587. package/bundle/dist/node_modules/.pnpm/@vitest_pretty-format@4.1.10/node_modules/@vitest/pretty-format/dist/index.js +887 -0
  588. package/bundle/dist/node_modules/.pnpm/@vitest_runner@4.1.10/node_modules/@vitest/runner/dist/chunk-artifact.js +2756 -0
  589. package/bundle/dist/node_modules/.pnpm/@vitest_runner@4.1.10/node_modules/@vitest/runner/dist/index.js +8 -0
  590. package/bundle/dist/node_modules/.pnpm/@vitest_runner@4.1.10/node_modules/@vitest/runner/dist/utils.js +8 -0
  591. package/bundle/dist/node_modules/.pnpm/@vitest_snapshot@4.1.10/node_modules/@vitest/snapshot/dist/index.js +922 -0
  592. package/bundle/dist/node_modules/.pnpm/@vitest_spy@4.1.10/node_modules/@vitest/spy/dist/index.js +386 -0
  593. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js +121 -0
  594. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/constants.js +51 -0
  595. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/diff.js +1317 -0
  596. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/display.js +561 -0
  597. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/error.js +40 -0
  598. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/helpers.js +272 -0
  599. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/offset.js +27 -0
  600. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/serialize.js +77 -0
  601. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/source-map.js +381 -0
  602. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.10/node_modules/@vitest/utils/dist/timers.js +51 -0
  603. package/bundle/dist/node_modules/.pnpm/chai@6.2.2/node_modules/chai/index.js +103 -3
  604. package/bundle/dist/node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.js +1 -1
  605. package/bundle/dist/node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.js +1 -1
  606. package/bundle/dist/node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.js +1 -1
  607. package/bundle/dist/node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.js +1 -1
  608. package/bundle/dist/node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.js +1 -1
  609. package/bundle/dist/node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/dist/magic-string.es.js +2 -3
  610. package/bundle/dist/node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/index.js +4 -4
  611. package/bundle/dist/node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/shared/pathe.M-eThtNZ.js +2 -2
  612. package/bundle/dist/node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.js +18 -7
  613. package/bundle/dist/node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.js +18 -3
  614. package/bundle/dist/node_modules/.pnpm/vite@8.0.3_@emnapi_core@1.11.2_@emnapi_runtime@1.11.2_@types_node@25.0.7_esbuild@0.27.4_2519c2e8d8013fcbc7b443879bc9da6d/node_modules/vite/dist/node/module-runner.js +1265 -0
  615. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496 → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c}/node_modules/vitest/dist/chunks/_commonjsHelpers.D26ty3Ew.js +6 -3
  616. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496 → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c}/node_modules/vitest/dist/chunks/benchmark.CX_oY03V.js +8 -8
  617. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496 → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c}/node_modules/vitest/dist/chunks/evaluatedModules.Dg1zASAC.js +5 -5
  618. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496 → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c}/node_modules/vitest/dist/chunks/index.Chj8NDwU.js +3 -3
  619. package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/chunks/index.DdgEv5B1.js +46 -0
  620. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496 → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c}/node_modules/vitest/dist/chunks/rpc.MzXet3jl.js +66 -6
  621. package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/chunks/test.DNmyFkvJ.js +3044 -0
  622. package/bundle/dist/node_modules/.pnpm/{vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496 → vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c}/node_modules/vitest/dist/chunks/utils.BX5Fg8C4.js +19 -4
  623. package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/index.js +28 -0
  624. package/bundle/dist/server-bootstrap.js +1 -2
  625. package/bundle/dist/sonamu.config.js +11 -27
  626. package/bundle/dist/startup-migrations.js +1 -2
  627. package/bundle/dist/testing/fixture.js +1 -2
  628. package/bundle/dist/testing/global.js +6 -7
  629. package/bundle/dist/testing/setup-mocks.js +3 -4
  630. package/bundle/dist/testing/test-database-name.js +5 -8
  631. package/bundle/dist/utils/providers/anthropic/anthropic-constants.js +11 -5
  632. package/bundle/dist/utils/providers/anthropic/anthropic-dispatcher.js +6 -4
  633. package/bundle/dist/utils/providers/anthropic/anthropic-quota.js +1 -2
  634. package/bundle/dist/utils/providers/anthropic/claude-session.js +12 -10
  635. package/bundle/dist/utils/providers/anthropic/stream-json-adapter.js +117 -8
  636. package/bundle/dist/utils/providers/common/credentials.js +1 -2
  637. package/bundle/dist/utils/providers/common/model-cost.js +46 -99
  638. package/bundle/dist/utils/providers/common/provider-dispatcher.js +0 -1
  639. package/bundle/dist/utils/providers/common/smooth-weighted-round-robin.js +1 -2
  640. package/bundle/dist/utils/providers/common/strictifier.js +2 -2
  641. package/bundle/dist/utils/providers/common/token-picker.js +1 -2
  642. package/bundle/dist/utils/providers/common/ttft.js +1 -2
  643. package/bundle/dist/utils/providers/openai/codex-rpc.js +4 -2
  644. package/bundle/dist/utils/providers/openai/codex-worker.js +2 -2
  645. package/bundle/dist/utils/providers/openai/openai-constants.js +1 -2
  646. package/bundle/dist/utils/providers/openai/openai-dispatcher.js +103 -40
  647. package/bundle/dist/utils/providers/openai/openai-quota.js +1 -2
  648. package/bundle/dist/utils/providers/openai/openai-refresh.js +1 -2
  649. package/bundle/dist/utils/subset-loaders.js +1 -2
  650. package/bundle/src/application/monit/monit.frame.test.ts +2 -2
  651. package/bundle/src/application/monit/monit.frame.ts +2 -2
  652. package/bundle/src/application/qgrid/qgrid-run-lifecycle.test.ts +305 -3
  653. package/bundle/src/application/qgrid/qgrid-run-lifecycle.ts +107 -53
  654. package/bundle/src/application/qgrid/qgrid.dispatcher.test.ts +81 -0
  655. package/bundle/src/application/qgrid/qgrid.dispatcher.ts +16 -9
  656. package/bundle/src/application/qgrid/qgrid.frame.test.ts +400 -96
  657. package/bundle/src/application/qgrid/qgrid.frame.ts +99 -118
  658. package/bundle/src/application/qgrid/qgrid.types.ts +71 -27
  659. package/bundle/src/application/qgrid/tool-emulation.test.ts +1 -0
  660. package/bundle/src/application/request-log/request-log.entity.json +43 -1
  661. package/bundle/src/application/request-log/request-log.model.test.ts +375 -13
  662. package/bundle/src/application/request-log/request-log.model.ts +283 -86
  663. package/bundle/src/application/request-log-step/request-log-step.entity.json +54 -0
  664. package/bundle/src/application/request-log-step/request-log-step.types.ts +7 -0
  665. package/bundle/src/application/sonamu.generated.http +28 -2
  666. package/bundle/src/application/sonamu.generated.sso.ts +24 -0
  667. package/bundle/src/application/sonamu.generated.ts +52 -4
  668. package/bundle/src/i18n/sd.generated.ts +95 -14
  669. package/bundle/src/migrations/20260718180824_alter_request_logs_add5_alter1.ts +25 -0
  670. package/bundle/src/migrations/20260718180825_alter_request_log_steps_add7_alter1.ts +29 -0
  671. package/bundle/src/migrations/20260722174410_alter_request_logs_alter3.ts +19 -0
  672. package/bundle/src/migrations/20260722174411_alter_request_log_steps_alter3.ts +19 -0
  673. package/bundle/src/sonamu.config.ts +5 -23
  674. package/bundle/src/testing/global.ts +5 -5
  675. package/bundle/src/testing/test-database-name.test.ts +5 -5
  676. package/bundle/src/testing/test-database-name.ts +9 -8
  677. package/bundle/src/utils/providers/anthropic/anthropic-constants.test.ts +19 -0
  678. package/bundle/src/utils/providers/anthropic/anthropic-constants.ts +15 -2
  679. package/bundle/src/utils/providers/anthropic/anthropic-dispatcher.ts +7 -2
  680. package/bundle/src/utils/providers/anthropic/claude-session.test.ts +43 -2
  681. package/bundle/src/utils/providers/anthropic/claude-session.ts +16 -4
  682. package/bundle/src/utils/providers/anthropic/stream-json-adapter.test.ts +131 -0
  683. package/bundle/src/utils/providers/anthropic/stream-json-adapter.ts +194 -11
  684. package/bundle/src/utils/providers/common/model-cost.test.ts +137 -2
  685. package/bundle/src/utils/providers/common/model-cost.ts +77 -99
  686. package/bundle/src/utils/providers/common/provider-dispatcher.ts +18 -0
  687. package/bundle/src/utils/providers/openai/openai-dispatcher.test.ts +440 -0
  688. package/bundle/src/utils/providers/openai/openai-dispatcher.ts +143 -45
  689. package/bundle/web-dist/client/assets/{index-CYnw2kNG.js → index-ioEghlNo.js} +3 -3
  690. package/bundle/web-dist/client/assets/logs-TGA3XE4C.js +1 -0
  691. package/bundle/web-dist/client/assets/{monit-DRuDGJj4.js → monit-DLynJGca.js} +1 -1
  692. package/bundle/web-dist/client/assets/{routes-CuyNd-ya.js → routes-DugjmKS_.js} +1 -1
  693. package/bundle/web-dist/client/assets/{sd.generated-D2Y9QeiN.js → sd.generated-DbBC73_z.js} +1 -1
  694. package/bundle/web-dist/client/assets/{services.generated-CmxXl220.js → services.generated-BWyAypSh.js} +1 -1
  695. package/bundle/web-dist/client/assets/show-DSswR7Cy.js +30 -0
  696. package/bundle/web-dist/client/assets/{tokens-DxFeKC8Q.js → tokens-C5djVO__.js} +1 -1
  697. package/bundle/web-dist/client/assets/{use-update-token-mutation-6J1T9U2-.js → use-update-token-mutation-DeDBiZiM.js} +1 -1
  698. package/bundle/web-dist/client/index.html +2 -2
  699. package/bundle/web-dist/server/assets/{lazyRouteComponent-BlfOh9S3.js → lazyRouteComponent-BCJr868T.js} +1 -1
  700. package/bundle/web-dist/server/assets/{logs-DYly4ipQ.js → logs-33YNafdW.js} +30 -6
  701. package/bundle/web-dist/server/assets/{monit-CYyY2S2f.js → monit--9mVsjNU.js} +2 -2
  702. package/bundle/web-dist/server/assets/{routes-Dqu3osXt.js → routes-BK3Xh1UB.js} +3 -3
  703. package/bundle/web-dist/server/assets/{sd.generated-CE6D5clm.js → sd.generated-C3gcvRcU.js} +13 -0
  704. package/bundle/web-dist/server/assets/{services.generated-DyZUzXiq.js → services.generated-B2_Auwvk.js} +1 -1
  705. package/bundle/web-dist/server/assets/{show-BDul8xLb.js → show-Dxxxe608.js} +57 -8
  706. package/bundle/web-dist/server/assets/{tokens-fzMW4G74.js → tokens-BWPVvdfi.js} +3 -3
  707. package/bundle/web-dist/server/assets/{use-update-token-mutation-BejUW5sw.js → use-update-token-mutation-CNBgTysy.js} +1 -1
  708. package/bundle/web-dist/server/entry-server.generated.js +23 -23
  709. package/dist/cli.d.ts +1 -0
  710. package/dist/cli.js +18 -12
  711. package/package.json +6 -6
  712. package/skills/qgrid/SKILL.md +8 -0
  713. package/skills/qgrid/references/ai-sdk-provider-contract.md +58 -4
  714. package/skills/qgrid/references/anthropic-claude-code-runtime.md +44 -5
  715. package/skills/qgrid/references/cli-env-and-server-boot.md +20 -8
  716. package/skills/qgrid/references/decision-rationale.md +6 -0
  717. package/skills/qgrid/references/docs-workflow.md +10 -0
  718. package/skills/qgrid/references/openai-codex-runtime.md +11 -3
  719. package/skills/qgrid/references/prompt-cache-and-usage.md +4 -1
  720. package/skills/qgrid/references/provider-runtime-differences.md +3 -3
  721. package/skills/qgrid/references/request-log-run-lifecycle.md +50 -28
  722. package/skills/qgrid/references/sonamu-api-web-flow.md +17 -0
  723. package/skills/qgrid/references/token-auth-quota-lifecycle.md +6 -0
  724. package/skills/qgrid/references/tool-calling-and-multiturn.md +8 -7
  725. package/skills/qgrid/references/verification-and-debugging.md +1 -1
  726. package/bundle/dist/node_modules/.pnpm/@vitest_expect@4.1.2/node_modules/@vitest/expect/dist/index.js +0 -1484
  727. package/bundle/dist/node_modules/.pnpm/@vitest_pretty-format@4.1.2/node_modules/@vitest/pretty-format/dist/index.js +0 -887
  728. package/bundle/dist/node_modules/.pnpm/@vitest_runner@4.1.2/node_modules/@vitest/runner/dist/chunk-artifact.js +0 -2746
  729. package/bundle/dist/node_modules/.pnpm/@vitest_runner@4.1.2/node_modules/@vitest/runner/dist/index.js +0 -8
  730. package/bundle/dist/node_modules/.pnpm/@vitest_runner@4.1.2/node_modules/@vitest/runner/dist/utils.js +0 -8
  731. package/bundle/dist/node_modules/.pnpm/@vitest_snapshot@4.1.2/node_modules/@vitest/snapshot/dist/index.js +0 -662
  732. package/bundle/dist/node_modules/.pnpm/@vitest_spy@4.1.2/node_modules/@vitest/spy/dist/index.js +0 -386
  733. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js +0 -82
  734. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/constants.js +0 -48
  735. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/diff.js +0 -1307
  736. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/display.js +0 -558
  737. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/error.js +0 -33
  738. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/helpers.js +0 -226
  739. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/offset.js +0 -27
  740. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/serialize.js +0 -77
  741. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/source-map.js +0 -374
  742. package/bundle/dist/node_modules/.pnpm/@vitest_utils@4.1.2/node_modules/@vitest/utils/dist/timers.js +0 -37
  743. package/bundle/dist/node_modules/.pnpm/vite@8.0.3_@emnapi_core@1.9.2_@emnapi_runtime@1.9.2_@types_node@25.0.7_esbuild@0.27.4_jiti@2.6.1_sass@1.98.0_tsx@4.21.0/node_modules/vite/dist/node/module-runner.js +0 -426
  744. package/bundle/dist/node_modules/.pnpm/vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496/node_modules/vitest/dist/chunks/index.DOa3dzoN.js +0 -16
  745. package/bundle/dist/node_modules/.pnpm/vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496/node_modules/vitest/dist/chunks/test.p_J6dB8a.js +0 -2910
  746. package/bundle/dist/node_modules/.pnpm/vitest@4.1.2_@opentelemetry_api@1.9.0_@types_node@25.0.7_msw@2.13.3_@types_node@25.0.7__ba64bc4dd2e2bdde58df187864f65496/node_modules/vitest/dist/index.js +0 -28
  747. package/bundle/web-dist/client/assets/logs-CnXIN-jp.js +0 -1
  748. package/bundle/web-dist/client/assets/show-EleAOzJv.js +0 -30
@@ -1,4 +1,3 @@
1
- import "../../../_virtual/_rolldown/runtime.js";
2
1
  //#region src/utils/providers/anthropic/stream-json-adapter.ts
3
2
  function userInputToText(input) {
4
3
  return input.filter((i) => i.type === "text").map((i) => i.text).join("\n");
@@ -68,11 +67,15 @@ function toUsageBreakdown(u) {
68
67
  const cacheRead = u.cache_read_input_tokens ?? 0;
69
68
  const output = u.output_tokens ?? 0;
70
69
  const totalInput = input + cacheCreate + cacheRead;
70
+ const cacheCreate5m = u.cache_creation?.ephemeral_5m_input_tokens;
71
+ const cacheCreate1h = u.cache_creation?.ephemeral_1h_input_tokens;
71
72
  return {
72
73
  totalTokens: totalInput + output,
73
74
  inputTokens: totalInput,
74
75
  cachedInputTokens: cacheRead,
75
76
  cacheCreationInputTokens: cacheCreate,
77
+ ...typeof cacheCreate5m === "number" ? { cacheCreationInputTokens5m: cacheCreate5m } : {},
78
+ ...typeof cacheCreate1h === "number" ? { cacheCreationInputTokens1h: cacheCreate1h } : {},
76
79
  outputTokens: output,
77
80
  reasoningOutputTokens: 0
78
81
  };
@@ -89,6 +92,64 @@ function structuredOutputToolUseText(j) {
89
92
  if (block.type === "tool_use" && block.name === "StructuredOutput" && block.input !== void 0) return JSON.stringify(block.input);
90
93
  }
91
94
  }
95
+ function canonicalEventModel(model) {
96
+ return (model.startsWith("anthropic/") ? model.slice(10) : model).replace(/\[1m\]$/, "");
97
+ }
98
+ function optionalString(value) {
99
+ return typeof value === "string" && value.length > 0 ? value : void 0;
100
+ }
101
+ function recordFallback(state, fallback) {
102
+ if (!state) return;
103
+ const normalized = {
104
+ ...fallback,
105
+ fromModel: canonicalEventModel(fallback.fromModel),
106
+ toModel: canonicalEventModel(fallback.toModel)
107
+ };
108
+ const existing = state.modelFallbacks?.find((item) => item.trigger === normalized.trigger && item.fromModel === normalized.fromModel && item.toModel === normalized.toModel);
109
+ if (existing) {
110
+ existing.category ??= normalized.category;
111
+ existing.explanation ??= normalized.explanation;
112
+ } else (state.modelFallbacks ??= []).push(normalized);
113
+ state.servedModel = normalized.toModel;
114
+ state.refusalWithoutFallback = false;
115
+ }
116
+ function updateRoutingFromUsage(usage, state) {
117
+ if (!state || !usage || !Array.isArray(usage.iterations)) return;
118
+ let previousModel;
119
+ for (const raw of usage.iterations) {
120
+ const iteration = asObject(raw);
121
+ if (!iteration) continue;
122
+ const model = optionalString(iteration.model);
123
+ const type = optionalString(iteration.type);
124
+ if (!model) continue;
125
+ const canonicalModel = canonicalEventModel(model);
126
+ if (type === "fallback_message" && previousModel) recordFallback(state, {
127
+ trigger: "refusal",
128
+ fromModel: previousModel,
129
+ toModel: canonicalModel
130
+ });
131
+ previousModel = canonicalModel;
132
+ state.servedModel = canonicalModel;
133
+ }
134
+ }
135
+ function updateRoutingFromMessage(message, state) {
136
+ if (!state || !message) return;
137
+ const model = optionalString(message.model);
138
+ const canonicalModel = model ? canonicalEventModel(model) : void 0;
139
+ if (canonicalModel) state.servedModel = canonicalModel;
140
+ const stopReason = optionalString(message.stop_reason);
141
+ if (stopReason) {
142
+ state.stopReason = stopReason;
143
+ if (stopReason === "refusal") state.refusalWithoutFallback = true;
144
+ else if (state.modelFallbacks?.some((fallback) => fallback.toModel === canonicalModel)) state.refusalWithoutFallback = false;
145
+ }
146
+ const stopDetails = asObject(message.stop_details);
147
+ if (stopDetails?.type === "refusal" || stopReason === "refusal") state.refusal = {
148
+ category: optionalString(stopDetails?.category),
149
+ explanation: optionalString(stopDetails?.explanation)
150
+ };
151
+ updateRoutingFromUsage(asObject(message.usage), state);
152
+ }
92
153
  function handleStreamJsonLine(line, onDelta, opts) {
93
154
  const structuredOutput = opts?.structuredOutput ?? false;
94
155
  const state = opts?.state;
@@ -102,6 +163,14 @@ function handleStreamJsonLine(line, onDelta, opts) {
102
163
  }
103
164
  if (j.type === "stream_event") {
104
165
  const event = asObject(j.event);
166
+ if (event?.type === "message_start") updateRoutingFromMessage(asObject(event.message), state);
167
+ else if (event?.type === "message_delta") {
168
+ const stopReason = optionalString(asObject(event.delta)?.stop_reason);
169
+ if (state && stopReason) {
170
+ state.stopReason = stopReason;
171
+ if (stopReason === "refusal") state.refusalWithoutFallback = true;
172
+ }
173
+ }
105
174
  if (event && event.type === "content_block_delta") {
106
175
  const delta = asObject(event.delta);
107
176
  if (delta) {
@@ -112,9 +181,36 @@ function handleStreamJsonLine(line, onDelta, opts) {
112
181
  }
113
182
  return null;
114
183
  }
115
- if (j.type === "assistant" && structuredOutput && state && state.structuredOutputText === void 0) {
116
- const text = structuredOutputToolUseText(j);
117
- if (text !== void 0) state.structuredOutputText = text;
184
+ if (j.type === "system") {
185
+ const subtype = optionalString(j.subtype);
186
+ if (subtype === "model_refusal_fallback") {
187
+ const fromModel = optionalString(j.originalModel) ?? optionalString(j.original_model);
188
+ const toModel = optionalString(j.fallbackModel) ?? optionalString(j.fallback_model);
189
+ if (fromModel && toModel) recordFallback(state, {
190
+ trigger: "refusal",
191
+ fromModel,
192
+ toModel,
193
+ category: optionalString(j.apiRefusalCategory) ?? optionalString(j.api_refusal_category) ?? optionalString(j.refusalCategory) ?? optionalString(j.refusal_category),
194
+ explanation: optionalString(j.apiRefusalExplanation) ?? optionalString(j.api_refusal_explanation) ?? optionalString(j.refusalExplanation) ?? optionalString(j.refusal_explanation)
195
+ });
196
+ } else if (subtype === "model_refusal_no_fallback" && state) {
197
+ const originalModel = optionalString(j.originalModel) ?? optionalString(j.original_model);
198
+ if (originalModel) state.servedModel = canonicalEventModel(originalModel);
199
+ state.stopReason = "refusal";
200
+ state.refusalWithoutFallback = true;
201
+ state.refusal = {
202
+ category: optionalString(j.apiRefusalCategory) ?? optionalString(j.api_refusal_category) ?? optionalString(j.refusalCategory) ?? optionalString(j.refusal_category),
203
+ explanation: optionalString(j.apiRefusalExplanation) ?? optionalString(j.api_refusal_explanation) ?? optionalString(j.refusalExplanation) ?? optionalString(j.refusal_explanation)
204
+ };
205
+ }
206
+ return null;
207
+ }
208
+ if (j.type === "assistant") {
209
+ updateRoutingFromMessage(asObject(j.message), state);
210
+ if (structuredOutput && state && state.structuredOutputText === void 0) {
211
+ const text = structuredOutputToolUseText(j);
212
+ if (text !== void 0) state.structuredOutputText = text;
213
+ }
118
214
  return null;
119
215
  }
120
216
  if (j.type === "result") {
@@ -123,11 +219,20 @@ function handleStreamJsonLine(line, onDelta, opts) {
123
219
  if (preservedStructuredOutput !== void 0) text = preservedStructuredOutput;
124
220
  else if (j.structured_output !== void 0) text = JSON.stringify(j.structured_output);
125
221
  else text = stripCodeFence(typeof j.result === "string" ? j.result : "");
126
- const usage = toUsageBreakdown(asObject(j.usage) ?? {});
222
+ const rawUsage = asObject(j.usage) ?? {};
223
+ updateRoutingFromUsage(rawUsage, state);
224
+ const resultModel = optionalString(j.model);
225
+ if (state && resultModel && !state.servedModel) state.servedModel = canonicalEventModel(resultModel);
226
+ const resultStopReason = optionalString(j.stop_reason);
227
+ if (state && resultStopReason) {
228
+ state.stopReason = resultStopReason;
229
+ if (resultStopReason === "refusal") state.refusalWithoutFallback = true;
230
+ }
231
+ const usage = toUsageBreakdown(rawUsage);
127
232
  const quotaExhausted = text.startsWith("You've hit");
128
233
  const subtype = typeof j.subtype === "string" ? j.subtype : void 0;
129
234
  const terminalReason = typeof j.terminal_reason === "string" ? j.terminal_reason : void 0;
130
- const isError = j.is_error === true || j.terminal_reason === "model_error" || subtype !== void 0 && subtype !== "success";
235
+ const isError = j.is_error === true || j.terminal_reason === "model_error" || subtype !== void 0 && subtype !== "success" || state?.refusalWithoutFallback === true;
131
236
  return {
132
237
  text,
133
238
  usage,
@@ -136,7 +241,11 @@ function handleStreamJsonLine(line, onDelta, opts) {
136
241
  quotaExhausted,
137
242
  isError,
138
243
  subtype,
139
- terminalReason
244
+ terminalReason,
245
+ servedModel: state?.servedModel,
246
+ stopReason: state?.stopReason,
247
+ refusal: state?.refusal,
248
+ modelFallbacks: state?.modelFallbacks
140
249
  };
141
250
  }
142
251
  return null;
@@ -144,4 +253,4 @@ function handleStreamJsonLine(line, onDelta, opts) {
144
253
  //#endregion
145
254
  export { buildStreamJsonInput, handleStreamJsonLine, serializeStreamJsonInput };
146
255
 
147
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLWpzb24tYWRhcHRlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvcHJvdmlkZXJzL2FudGhyb3BpYy9zdHJlYW0tanNvbi1hZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2xhdWRlIENMSSBzdHJlYW0tanNvbiBhZGFwdGVyLlxuICpcbiAqIElucHV0OiBxZ3JpZCBoaXN0b3J5L2lucHV0IC0+IENsYXVkZSBKU09OTCBzdGRpbi5cbiAqIE91dHB1dDogQ2xhdWRlIEpTT05MIHN0ZG91dCAtPiBxZ3JpZCBkZWx0YXMgKyBmaW5hbCByZXN1bHQgbWV0YWRhdGEuXG4gKlxuICogUHJldmlvdXMgY29udmVyc2F0aW9uIGl0ZW1zIGFyZSBmbGF0dGVuZWQgaW50byBvbmUgYXNzaXN0YW50IGNvbnRleHQgbGluZS5cbiAqIFRoZSBvbmx5IGV4ZWN1dGFibGUgdXNlciBsaW5lIGlzIHRoZSBjdXJyZW50IGlucHV0LlxuICovXG5cbmltcG9ydCB7IHR5cGUgSnNvblZhbHVlIH0gZnJvbSBcIi4uLy4uLy4uL2NvZGV4LXByb3RvY29sL3NlcmRlX2pzb24vSnNvblZhbHVlXCI7XG5pbXBvcnQgeyB0eXBlIFVzZXJJbnB1dCB9IGZyb20gXCIuLi8uLi8uLi9jb2RleC1wcm90b2NvbC92Mi9Vc2VySW5wdXRcIjtcbmltcG9ydCB7IHR5cGUgUHJvdmlkZXJUb2tlblVzYWdlQnJlYWtkb3duIH0gZnJvbSBcIi4uL2NvbW1vbi9wcm92aWRlci1kaXNwYXRjaGVyXCI7XG5cbi8vIOKUgOKUgCDsnoXroKUg7Ja064yR7YSwIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vLyBDbGF1ZGUgc3RyZWFtLWpzb24g7J6F66ClIO2VnCDspIQoSlNPTkwpLiBFbnZlbG9wZSBmaWVsZHMgYXJlIGFkZGVkIGluIGNsYXVkZS1zZXNzaW9uLlxuZXhwb3J0IGludGVyZmFjZSBDbGF1ZGVTdHJlYW1Kc29uTGluZSB7XG4gIHR5cGU6IFwidXNlclwiIHwgXCJhc3Npc3RhbnRcIjtcbiAgbWVzc2FnZToge1xuICAgIHJvbGU6IFwidXNlclwiIHwgXCJhc3Npc3RhbnRcIjtcbiAgICBjb250ZW50OiBBcnJheTx7IHR5cGU6IFwidGV4dFwiOyB0ZXh0OiBzdHJpbmcgfT47XG4gIH07XG59XG5cbmZ1bmN0aW9uIHVzZXJJbnB1dFRvVGV4dChpbnB1dDogQXJyYXk8VXNlcklucHV0Pik6IHN0cmluZyB7XG4gIHJldHVybiBpbnB1dFxuICAgIC5maWx0ZXIoKGkpOiBpIGlzIEV4dHJhY3Q8VXNlcklucHV0LCB7IHR5cGU6IFwidGV4dFwiIH0+ID0+IGkudHlwZSA9PT0gXCJ0ZXh0XCIpXG4gICAgLm1hcCgoaSkgPT4gaS50ZXh0KVxuICAgIC5qb2luKFwiXFxuXCIpO1xufVxuXG5mdW5jdGlvbiB0ZXh0QmxvY2sodGV4dDogc3RyaW5nKTogQXJyYXk8eyB0eXBlOiBcInRleHRcIjsgdGV4dDogc3RyaW5nIH0+IHtcbiAgcmV0dXJuIFt7IHR5cGU6IFwidGV4dFwiLCB0ZXh0IH1dO1xufVxuXG4vLyBjb2RleCBSZXNwb25zZUl0ZW0oY29sZEhpc3RvcnkgaXRlbSkg7LWc7IaMIHNoYXBlLlxuLy8gZXh0cmFjdFByb21wdEFuZEhpc3RvcnkoYWktc2RrL3V0aWxzLnRzKSDqsIAg66eM65Oc64qUIO2YleyLnTpcbi8vICAgeyB0eXBlOlwibWVzc2FnZVwiLCByb2xlOlwidXNlclwiLCBjb250ZW50Olt7dHlwZTpcImlucHV0X3RleHRcIiwgdGV4dH1dIH1cbi8vICAgeyB0eXBlOlwibWVzc2FnZVwiLCByb2xlOlwiYXNzaXN0YW50XCIsIGNvbnRlbnQ6W3t0eXBlOlwib3V0cHV0X3RleHRcIiwgdGV4dH1dIH1cbi8vICAgeyB0eXBlOlwiZnVuY3Rpb25fY2FsbFwiLCBuYW1lLCBhcmd1bWVudHMsIGNhbGxfaWQgfVxuLy8gICB7IHR5cGU6XCJmdW5jdGlvbl9jYWxsX291dHB1dFwiLCBjYWxsX2lkLCBvdXRwdXQgfVxudHlwZSBSZXNwb25zZUl0ZW0gPSB7IFtrZXk6IHN0cmluZ106IEpzb25WYWx1ZSB8IHVuZGVmaW5lZCB9O1xuXG5mdW5jdGlvbiBhc09iamVjdCh2OiBKc29uVmFsdWUgfCB1bmRlZmluZWQpOiBSZXNwb25zZUl0ZW0gfCBudWxsIHtcbiAgcmV0dXJuIHR5cGVvZiB2ID09PSBcIm9iamVjdFwiICYmIHYgIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkodikgPyAodiBhcyBSZXNwb25zZUl0ZW0pIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gcmVzcG9uc2VJdGVtVGV4dChpdGVtOiBSZXNwb25zZUl0ZW0pOiBzdHJpbmcge1xuICBjb25zdCBjb250ZW50ID0gaXRlbS5jb250ZW50O1xuICBpZiAoIUFycmF5LmlzQXJyYXkoY29udGVudCkpIHJldHVybiBcIlwiO1xuICByZXR1cm4gY29udGVudFxuICAgIC5tYXAoKGMpID0+IHtcbiAgICAgIGNvbnN0IG9iaiA9IGFzT2JqZWN0KGMpO1xuICAgICAgcmV0dXJuIG9iaiAmJiB0eXBlb2Ygb2JqLnRleHQgPT09IFwic3RyaW5nXCIgPyBvYmoudGV4dCA6IFwiXCI7XG4gICAgfSlcbiAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgLmpvaW4oXCJcXG5cIik7XG59XG5cbmZ1bmN0aW9uIGZsYXR0ZW5Db2xkSGlzdG9yeShjb2xkSGlzdG9yeTogQXJyYXk8SnNvblZhbHVlPik6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnRzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIGZvciAoY29uc3QgcmF3IG9mIGNvbGRIaXN0b3J5KSB7XG4gICAgY29uc3QgaXRlbSA9IGFzT2JqZWN0KHJhdyk7XG4gICAgaWYgKCFpdGVtKSBjb250aW51ZTtcblxuICAgIGlmIChpdGVtLnR5cGUgPT09IFwibWVzc2FnZVwiICYmIGl0ZW0ucm9sZSA9PT0gXCJhc3Npc3RhbnRcIikge1xuICAgICAgcGFydHMucHVzaChgQXNzaXN0YW50OiAke3Jlc3BvbnNlSXRlbVRleHQoaXRlbSl9YCk7XG4gICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09IFwibWVzc2FnZVwiICYmIGl0ZW0ucm9sZSA9PT0gXCJ1c2VyXCIpIHtcbiAgICAgIHBhcnRzLnB1c2goYFVzZXI6ICR7cmVzcG9uc2VJdGVtVGV4dChpdGVtKX1gKTtcbiAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gXCJmdW5jdGlvbl9jYWxsXCIpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSB0eXBlb2YgaXRlbS5uYW1lID09PSBcInN0cmluZ1wiID8gaXRlbS5uYW1lIDogXCJcIjtcbiAgICAgIGNvbnN0IGFyZ3MgPVxuICAgICAgICB0eXBlb2YgaXRlbS5hcmd1bWVudHMgPT09IFwic3RyaW5nXCIgPyBpdGVtLmFyZ3VtZW50cyA6IEpTT04uc3RyaW5naWZ5KGl0ZW0uYXJndW1lbnRzID8/IHt9KTtcbiAgICAgIHBhcnRzLnB1c2goYFRvb2wgY2FsbDogJHtuYW1lfSgke2FyZ3N9KWApO1xuICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSBcImZ1bmN0aW9uX2NhbGxfb3V0cHV0XCIpIHtcbiAgICAgIGNvbnN0IG91dHB1dCA9XG4gICAgICAgIHR5cGVvZiBpdGVtLm91dHB1dCA9PT0gXCJzdHJpbmdcIiA/IGl0ZW0ub3V0cHV0IDogSlNPTi5zdHJpbmdpZnkoaXRlbS5vdXRwdXQgPz8gXCJcIik7XG4gICAgICBwYXJ0cy5wdXNoKGBUb29sIHJlc3VsdDogJHtvdXRwdXR9YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBwYXJ0cy5qb2luKFwiXFxuXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTdHJlYW1Kc29uSW5wdXQob3B0czoge1xuICBjb2xkSGlzdG9yeT86IEFycmF5PEpzb25WYWx1ZT47XG4gIGlucHV0OiBBcnJheTxVc2VySW5wdXQ+O1xufSk6IEFycmF5PENsYXVkZVN0cmVhbUpzb25MaW5lPiB7XG4gIGNvbnN0IGxpbmVzOiBBcnJheTxDbGF1ZGVTdHJlYW1Kc29uTGluZT4gPSBbXTtcblxuICBpZiAob3B0cy5jb2xkSGlzdG9yeSAmJiBvcHRzLmNvbGRIaXN0b3J5Lmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBmbGF0dGVuZWQgPSBmbGF0dGVuQ29sZEhpc3Rvcnkob3B0cy5jb2xkSGlzdG9yeSk7XG4gICAgaWYgKGZsYXR0ZW5lZCkge1xuICAgICAgbGluZXMucHVzaCh7XG4gICAgICAgIHR5cGU6IFwiYXNzaXN0YW50XCIsXG4gICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICByb2xlOiBcImFzc2lzdGFudFwiLFxuICAgICAgICAgIGNvbnRlbnQ6IHRleHRCbG9jayhgUHJpb3IgY29udmVyc2F0aW9uIGNvbnRleHQ6XFxuJHtmbGF0dGVuZWR9YCksXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBsaW5lcy5wdXNoKHtcbiAgICB0eXBlOiBcInVzZXJcIixcbiAgICBtZXNzYWdlOiB7IHJvbGU6IFwidXNlclwiLCBjb250ZW50OiB0ZXh0QmxvY2sodXNlcklucHV0VG9UZXh0KG9wdHMuaW5wdXQpKSB9LFxuICB9KTtcblxuICByZXR1cm4gbGluZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVTdHJlYW1Kc29uSW5wdXQobGluZXM6IEFycmF5PENsYXVkZVN0cmVhbUpzb25MaW5lPik6IHN0cmluZyB7XG4gIHJldHVybiBsaW5lcy5tYXAoKGwpID0+IEpTT04uc3RyaW5naWZ5KGwpKS5qb2luKFwiXFxuXCIpICsgXCJcXG5cIjtcbn1cblxuLy8g4pSA4pSAIOy2nOugpSDslrTrjJHthLAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vL1xuLy8gQ2xhdWRlIHN0ZG91dChKU09OTCnsnYQgcWdyaWQgZGVsdGFzICsgZmluYWwgcmVzdWx0IOuhnCDrs4DtmZjtlZzri6QuXG5cbmludGVyZmFjZSBDbGF1ZGVVc2FnZSB7XG4gIGlucHV0X3Rva2Vucz86IG51bWJlcjtcbiAgb3V0cHV0X3Rva2Vucz86IG51bWJlcjtcbiAgY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zPzogbnVtYmVyO1xuICBjYWNoZV9yZWFkX2lucHV0X3Rva2Vucz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGF1ZGVTdHJlYW1SZXN1bHQge1xuICB0ZXh0OiBzdHJpbmc7XG4gIHVzYWdlOiBQcm92aWRlclRva2VuVXNhZ2VCcmVha2Rvd247XG4gIGR1cmF0aW9uTXM6IG51bWJlcjtcbiAgY29zdFVzZDogbnVtYmVyO1xuICAvLyBxdW90YSDshozsp4QoXCJZb3UndmUgaGl0IC4uLlwiKSDqsJDsp4AuIGRpc3BhdGNoZXIg6rCAIFF1b3RhRXJyb3Ig66GcIOuzgO2ZmC5cbiAgcXVvdGFFeGhhdXN0ZWQ6IGJvb2xlYW47XG4gIC8vIHJlc3VsdC5pc19lcnJvciAvIHRlcm1pbmFsIG1vZGVsX2Vycm9yIOuTsS4gZGlzcGF0Y2hlciDqsIAg7JeQ65+s66GcIOuzgO2ZmC5cbiAgaXNFcnJvcjogYm9vbGVhbjtcbiAgLy8g7KeE64uo7JqpOiBDQyByZXN1bHQg65287J247J2YIHN1YnR5cGUoXCJzdWNjZXNzXCIgfCBcImVycm9yX21heF90dXJuc1wiIHwgLi4uKSDqs7wgdGVybWluYWxfcmVhc29uLlxuICAvLyBpc0Vycm9yIO2MkOyglSDsgqzsnKDrpbwg7JeQ65+sIOuplOyLnOyngOyXkCDrk5zrn6zrgrTquLAg7JyE7ZW0IOuztOyhtO2VnOuLpChTT04tNDk1KS5cbiAgc3VidHlwZT86IHN0cmluZztcbiAgdGVybWluYWxSZWFzb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xhdWRlU3RyZWFtSnNvblN0YXRlIHtcbiAgc3RydWN0dXJlZE91dHB1dFRleHQ/OiBzdHJpbmc7XG59XG5cbi8vIEFudGhyb3BpYyB1c2FnZSA0IOy5tO2FjOqzoOumrCDihpIgVG9rZW5Vc2FnZUJyZWFrZG93bi5cbi8vIEFudGhyb3BpYyBuYXRpdmUgdXNhZ2Ug64qUIGlucHV0L2NhY2hlX2NyZWF0aW9uL2NhY2hlX3JlYWQg66W8IOyEnOuhnCDrsLDtg4DsoIHsnbgg7Lm07YWM6rOg66as66GcIOykgOuLpC5cbi8vIOuwmOuptCBxZ3JpZCDrgrTrtoAg7ZGc7KSAKFRva2VuVXNhZ2VCcmVha2Rvd24p6rO8IGNvc3Qg6rOE7IKw7J2AIGlucHV0VG9rZW5zIOulvCBcIuyghOyytCDsnoXroKVcbi8vICg9IG5vbi1jYWNoZSBpbnB1dCArIGNhY2hlIGNyZWF0aW9uICsgY2FjaGUgcmVhZClcIiDsnLzroZwg7Leo6riJ7ZWY6rOgIGNhY2hlZElucHV0VG9rZW5zL2NhY2hlQ3JlYXRpb25JbnB1dFRva2Vuc1xuLy8g66W8IOq3uOykkSDqsIEg66qr7Jy866GcIOuLpOyLnCDtkZzsi5ztlZzri6QoT3BlbkFJL0NvZGV4IHVzYWdlIOyZgCDqsJnsnYAg7J2Y66+4KS4g65Sw65287IScIOyXrOq4sOyEnCDtlanss5Ag7ZGc7KSA7ZmU7ZWc64ukLlxuZnVuY3Rpb24gdG9Vc2FnZUJyZWFrZG93bih1OiBDbGF1ZGVVc2FnZSk6IFByb3ZpZGVyVG9rZW5Vc2FnZUJyZWFrZG93biB7XG4gIGNvbnN0IGlucHV0ID0gdS5pbnB1dF90b2tlbnMgPz8gMDtcbiAgY29uc3QgY2FjaGVDcmVhdGUgPSB1LmNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyA/PyAwO1xuICBjb25zdCBjYWNoZVJlYWQgPSB1LmNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zID8/IDA7XG4gIGNvbnN0IG91dHB1dCA9IHUub3V0cHV0X3Rva2VucyA/PyAwO1xuICBjb25zdCB0b3RhbElucHV0ID0gaW5wdXQgKyBjYWNoZUNyZWF0ZSArIGNhY2hlUmVhZDtcbiAgcmV0dXJuIHtcbiAgICB0b3RhbFRva2VuczogdG90YWxJbnB1dCArIG91dHB1dCxcbiAgICBpbnB1dFRva2VuczogdG90YWxJbnB1dCxcbiAgICBjYWNoZWRJbnB1dFRva2VuczogY2FjaGVSZWFkLFxuICAgIGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczogY2FjaGVDcmVhdGUsXG4gICAgb3V0cHV0VG9rZW5zOiBvdXRwdXQsXG4gICAgcmVhc29uaW5nT3V0cHV0VG9rZW5zOiAwLFxuICB9O1xufVxuXG5mdW5jdGlvbiBzdHJpcENvZGVGZW5jZShzOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc1xuICAgIC50cmltKClcbiAgICAucmVwbGFjZSgvXmBgYCg/Ompzb24pP1xccypcXG4/L2ksIFwiXCIpXG4gICAgLnJlcGxhY2UoL1xcbj9gYGBcXHMqJC9pLCBcIlwiKTtcbn1cblxuZnVuY3Rpb24gc3RydWN0dXJlZE91dHB1dFRvb2xVc2VUZXh0KGo6IFJlc3BvbnNlSXRlbSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG1lc3NhZ2UgPSBhc09iamVjdChqLm1lc3NhZ2UpO1xuICBjb25zdCBjb250ZW50ID0gbWVzc2FnZT8uY29udGVudDtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGNvbnRlbnQpKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIGZvciAoY29uc3QgcmF3IG9mIGNvbnRlbnQpIHtcbiAgICBjb25zdCBibG9jayA9IGFzT2JqZWN0KHJhdyk7XG4gICAgaWYgKCFibG9jaykgY29udGludWU7XG4gICAgaWYgKFxuICAgICAgYmxvY2sudHlwZSA9PT0gXCJ0b29sX3VzZVwiICYmXG4gICAgICBibG9jay5uYW1lID09PSBcIlN0cnVjdHVyZWRPdXRwdXRcIiAmJlxuICAgICAgYmxvY2suaW5wdXQgIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGJsb2NrLmlucHV0KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8gUHJvY2Vzc2VzIG9uZSBDbGF1ZGUgc3Rkb3V0IEpTT05MIGxpbmUuIFJldHVybnMgZmluYWwgcmVzdWx0IG9uIHJlc3VsdCBldmVudC5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVTdHJlYW1Kc29uTGluZShcbiAgbGluZTogc3RyaW5nLFxuICBvbkRlbHRhOiAodGV4dDogc3RyaW5nKSA9PiB2b2lkLFxuICBvcHRzPzogeyBzdHJ1Y3R1cmVkT3V0cHV0PzogYm9vbGVhbjsgc3RhdGU/OiBDbGF1ZGVTdHJlYW1Kc29uU3RhdGUgfSxcbik6IENsYXVkZVN0cmVhbVJlc3VsdCB8IG51bGwge1xuICBjb25zdCBzdHJ1Y3R1cmVkT3V0cHV0ID0gb3B0cz8uc3RydWN0dXJlZE91dHB1dCA/PyBmYWxzZTtcbiAgY29uc3Qgc3RhdGUgPSBvcHRzPy5zdGF0ZTtcbiAgY29uc3QgdHJpbW1lZCA9IGxpbmUudHJpbSgpO1xuICBpZiAoIXRyaW1tZWQpIHJldHVybiBudWxsO1xuXG4gIGxldCBqOiB7IFtrZXk6IHN0cmluZ106IEpzb25WYWx1ZSB8IHVuZGVmaW5lZCB9O1xuICB0cnkge1xuICAgIGogPSBKU09OLnBhcnNlKHRyaW1tZWQpIGFzIHsgW2tleTogc3RyaW5nXTogSnNvblZhbHVlIHwgdW5kZWZpbmVkIH07XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGoudHlwZSA9PT0gXCJzdHJlYW1fZXZlbnRcIikge1xuICAgIGNvbnN0IGV2ZW50ID0gYXNPYmplY3Qoai5ldmVudCk7XG4gICAgaWYgKGV2ZW50ICYmIGV2ZW50LnR5cGUgPT09IFwiY29udGVudF9ibG9ja19kZWx0YVwiKSB7XG4gICAgICBjb25zdCBkZWx0YSA9IGFzT2JqZWN0KGV2ZW50LmRlbHRhKTtcbiAgICAgIGlmIChkZWx0YSkge1xuICAgICAgICBpZiAoc3RydWN0dXJlZE91dHB1dCkge1xuICAgICAgICAgIGlmIChkZWx0YS50eXBlID09PSBcImlucHV0X2pzb25fZGVsdGFcIiAmJiB0eXBlb2YgZGVsdGEucGFydGlhbF9qc29uID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBvbkRlbHRhKGRlbHRhLnBhcnRpYWxfanNvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChkZWx0YS50eXBlID09PSBcInRleHRfZGVsdGFcIiAmJiB0eXBlb2YgZGVsdGEudGV4dCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgb25EZWx0YShkZWx0YS50ZXh0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAoXG4gICAgai50eXBlID09PSBcImFzc2lzdGFudFwiICYmXG4gICAgc3RydWN0dXJlZE91dHB1dCAmJlxuICAgIHN0YXRlICYmXG4gICAgc3RhdGUuc3RydWN0dXJlZE91dHB1dFRleHQgPT09IHVuZGVmaW5lZFxuICApIHtcbiAgICBjb25zdCB0ZXh0ID0gc3RydWN0dXJlZE91dHB1dFRvb2xVc2VUZXh0KGopO1xuICAgIGlmICh0ZXh0ICE9PSB1bmRlZmluZWQpIHN0YXRlLnN0cnVjdHVyZWRPdXRwdXRUZXh0ID0gdGV4dDtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChqLnR5cGUgPT09IFwicmVzdWx0XCIpIHtcbiAgICBsZXQgdGV4dDogc3RyaW5nO1xuICAgIGNvbnN0IHByZXNlcnZlZFN0cnVjdHVyZWRPdXRwdXQgPSBzdHJ1Y3R1cmVkT3V0cHV0ID8gc3RhdGU/LnN0cnVjdHVyZWRPdXRwdXRUZXh0IDogdW5kZWZpbmVkO1xuICAgIGlmIChwcmVzZXJ2ZWRTdHJ1Y3R1cmVkT3V0cHV0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRleHQgPSBwcmVzZXJ2ZWRTdHJ1Y3R1cmVkT3V0cHV0O1xuICAgIH0gZWxzZSBpZiAoai5zdHJ1Y3R1cmVkX291dHB1dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0ZXh0ID0gSlNPTi5zdHJpbmdpZnkoai5zdHJ1Y3R1cmVkX291dHB1dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRleHQgPSBzdHJpcENvZGVGZW5jZSh0eXBlb2Ygai5yZXN1bHQgPT09IFwic3RyaW5nXCIgPyBqLnJlc3VsdCA6IFwiXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHVzYWdlID0gdG9Vc2FnZUJyZWFrZG93bigoYXNPYmplY3Qoai51c2FnZSkgPz8ge30pIGFzIENsYXVkZVVzYWdlKTtcbiAgICBjb25zdCBxdW90YUV4aGF1c3RlZCA9IHRleHQuc3RhcnRzV2l0aChcIllvdSd2ZSBoaXRcIik7XG4gICAgY29uc3Qgc3VidHlwZSA9IHR5cGVvZiBqLnN1YnR5cGUgPT09IFwic3RyaW5nXCIgPyBqLnN1YnR5cGUgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgdGVybWluYWxSZWFzb24gPSB0eXBlb2Ygai50ZXJtaW5hbF9yZWFzb24gPT09IFwic3RyaW5nXCIgPyBqLnRlcm1pbmFsX3JlYXNvbiA6IHVuZGVmaW5lZDtcblxuICAgIC8vIFNPTi00OTU6IOu5hOygleyDgSDsooXro4woZXJyb3JfbWF4X3N0cnVjdHVyZWRfb3V0cHV0X3JldHJpZXMg65OxKeuKlCDsoJXsp4HtlZjqsowg7JeQ65+s66GcIOyymOumrO2VnOuLpC5cbiAgICAvLyBDQyBzdHJ1Y3R1cmVkIG91dHB1dCDsnYAgY29uc3RyYWluZWQgZGVjb2Rpbmcg7J20IOyVhOuLiOudvCBcInRvb2wgaW5wdXQg7IOd7ISxIO2bhCDsgqztm4QgQUpWIOqygOymnVwi7J206528XG4gICAgLy8g66qo64247J20IOqwgOuBlCBwbGFjZWhvbGRlcigkUEFSQU1FVEVSX05BTUUpwrfqsbDrtoAoXCJqdXN0IGtpZGRpbmdcIinCt+2VhOuTnCDriITrnb0oYWR2YW5jZSkg6rCZ7J2AIOuwnOyekS9cbiAgICAvLyDrtojsmYTsoIQg7Lac66Cl7J2EIOuCuOuLpC4g7J2066W8IFwi6rGw7J2YIOunnuyVmOycvOuLiCDsgrTrpqzsnpBcIuqzoCDtnZjrpqzrqbQg7YG065287J207Ja47Yq4IOqygOymneyXkOyEnCDquajsp4DqsbDrgpgo7ZWE65OcIOuIhOudvSlcbiAgICAvLyDsk7DroIjquLDqsIAg7IOI7Ja0IOuCmOqwhOuLpCjsi6TsuKEgMTE2NzQvMTE2NzUpLiDslYzroKTsp4QgYmVzdCBwcmFjdGljZShyZWZ1c2FsL2RlZ2VuZXJhdGUgb3V0cHV0IOydgCDsgrTrpqzsp4BcbiAgICAvLyDrp5Dqs6AgZ3JhY2VmdWwgZXJyb3Ip64yA66GcLCBzdWJ0eXBlICE9IHN1Y2Nlc3Mg64qUIOq3uOuMgOuhnCDsl5Drn6zroZwg65GU64ukLiDtgbTrnbzsnbTslrjtirjqsIAg6re4IO2EtOydhCDsi6TtjKjroZxcbiAgICAvLyDri6Tro6jqsowg7ZWc64ukKOyKpO2KuOumvOydtOudvCDsnpDrj5kg7J6s7Iuc64+EIOyXhuydjCDigJQg7Iuc6rCEIDLrsLAg67Cp7KeAKS5cbiAgICBjb25zdCBpc0Vycm9yID1cbiAgICAgIGouaXNfZXJyb3IgPT09IHRydWUgfHxcbiAgICAgIGoudGVybWluYWxfcmVhc29uID09PSBcIm1vZGVsX2Vycm9yXCIgfHxcbiAgICAgIChzdWJ0eXBlICE9PSB1bmRlZmluZWQgJiYgc3VidHlwZSAhPT0gXCJzdWNjZXNzXCIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRleHQsXG4gICAgICB1c2FnZSxcbiAgICAgIGR1cmF0aW9uTXM6IHR5cGVvZiBqLmR1cmF0aW9uX21zID09PSBcIm51bWJlclwiID8gai5kdXJhdGlvbl9tcyA6IDAsXG4gICAgICBjb3N0VXNkOiB0eXBlb2Ygai50b3RhbF9jb3N0X3VzZCA9PT0gXCJudW1iZXJcIiA/IGoudG90YWxfY29zdF91c2QgOiAwLFxuICAgICAgcXVvdGFFeGhhdXN0ZWQsXG4gICAgICBpc0Vycm9yLFxuICAgICAgc3VidHlwZSxcbiAgICAgIHRlcm1pbmFsUmVhc29uLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbiJd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
256
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLWpzb24tYWRhcHRlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvcHJvdmlkZXJzL2FudGhyb3BpYy9zdHJlYW0tanNvbi1hZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2xhdWRlIENMSSBzdHJlYW0tanNvbiBhZGFwdGVyLlxuICpcbiAqIElucHV0OiBxZ3JpZCBoaXN0b3J5L2lucHV0IC0+IENsYXVkZSBKU09OTCBzdGRpbi5cbiAqIE91dHB1dDogQ2xhdWRlIEpTT05MIHN0ZG91dCAtPiBxZ3JpZCBkZWx0YXMgKyBmaW5hbCByZXN1bHQgbWV0YWRhdGEuXG4gKlxuICogUHJldmlvdXMgY29udmVyc2F0aW9uIGl0ZW1zIGFyZSBmbGF0dGVuZWQgaW50byBvbmUgYXNzaXN0YW50IGNvbnRleHQgbGluZS5cbiAqIFRoZSBvbmx5IGV4ZWN1dGFibGUgdXNlciBsaW5lIGlzIHRoZSBjdXJyZW50IGlucHV0LlxuICovXG5cbmltcG9ydCB7IHR5cGUgSnNvblZhbHVlIH0gZnJvbSBcIi4uLy4uLy4uL2NvZGV4LXByb3RvY29sL3NlcmRlX2pzb24vSnNvblZhbHVlXCI7XG5pbXBvcnQgeyB0eXBlIFVzZXJJbnB1dCB9IGZyb20gXCIuLi8uLi8uLi9jb2RleC1wcm90b2NvbC92Mi9Vc2VySW5wdXRcIjtcbmltcG9ydCB7XG4gIHR5cGUgTW9kZWxGYWxsYmFjayxcbiAgdHlwZSBQcm92aWRlclRva2VuVXNhZ2VCcmVha2Rvd24sXG59IGZyb20gXCIuLi9jb21tb24vcHJvdmlkZXItZGlzcGF0Y2hlclwiO1xuXG4vLyDilIDilIAg7J6F66ClIOyWtOuMke2EsCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLy8gQ2xhdWRlIHN0cmVhbS1qc29uIOyeheugpSDtlZwg7KSEKEpTT05MKS4gRW52ZWxvcGUgZmllbGRzIGFyZSBhZGRlZCBpbiBjbGF1ZGUtc2Vzc2lvbi5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xhdWRlU3RyZWFtSnNvbkxpbmUge1xuICB0eXBlOiBcInVzZXJcIiB8IFwiYXNzaXN0YW50XCI7XG4gIG1lc3NhZ2U6IHtcbiAgICByb2xlOiBcInVzZXJcIiB8IFwiYXNzaXN0YW50XCI7XG4gICAgY29udGVudDogQXJyYXk8eyB0eXBlOiBcInRleHRcIjsgdGV4dDogc3RyaW5nIH0+O1xuICB9O1xufVxuXG5mdW5jdGlvbiB1c2VySW5wdXRUb1RleHQoaW5wdXQ6IEFycmF5PFVzZXJJbnB1dD4pOiBzdHJpbmcge1xuICByZXR1cm4gaW5wdXRcbiAgICAuZmlsdGVyKChpKTogaSBpcyBFeHRyYWN0PFVzZXJJbnB1dCwgeyB0eXBlOiBcInRleHRcIiB9PiA9PiBpLnR5cGUgPT09IFwidGV4dFwiKVxuICAgIC5tYXAoKGkpID0+IGkudGV4dClcbiAgICAuam9pbihcIlxcblwiKTtcbn1cblxuZnVuY3Rpb24gdGV4dEJsb2NrKHRleHQ6IHN0cmluZyk6IEFycmF5PHsgdHlwZTogXCJ0ZXh0XCI7IHRleHQ6IHN0cmluZyB9PiB7XG4gIHJldHVybiBbeyB0eXBlOiBcInRleHRcIiwgdGV4dCB9XTtcbn1cblxuLy8gY29kZXggUmVzcG9uc2VJdGVtKGNvbGRIaXN0b3J5IGl0ZW0pIOy1nOyGjCBzaGFwZS5cbi8vIGV4dHJhY3RQcm9tcHRBbmRIaXN0b3J5KGFpLXNkay91dGlscy50cykg6rCAIOunjOuTnOuKlCDtmJXsi506XG4vLyAgIHsgdHlwZTpcIm1lc3NhZ2VcIiwgcm9sZTpcInVzZXJcIiwgY29udGVudDpbe3R5cGU6XCJpbnB1dF90ZXh0XCIsIHRleHR9XSB9XG4vLyAgIHsgdHlwZTpcIm1lc3NhZ2VcIiwgcm9sZTpcImFzc2lzdGFudFwiLCBjb250ZW50Olt7dHlwZTpcIm91dHB1dF90ZXh0XCIsIHRleHR9XSB9XG4vLyAgIHsgdHlwZTpcImZ1bmN0aW9uX2NhbGxcIiwgbmFtZSwgYXJndW1lbnRzLCBjYWxsX2lkIH1cbi8vICAgeyB0eXBlOlwiZnVuY3Rpb25fY2FsbF9vdXRwdXRcIiwgY2FsbF9pZCwgb3V0cHV0IH1cbnR5cGUgUmVzcG9uc2VJdGVtID0geyBba2V5OiBzdHJpbmddOiBKc29uVmFsdWUgfCB1bmRlZmluZWQgfTtcblxuZnVuY3Rpb24gYXNPYmplY3QodjogSnNvblZhbHVlIHwgdW5kZWZpbmVkKTogUmVzcG9uc2VJdGVtIHwgbnVsbCB7XG4gIHJldHVybiB0eXBlb2YgdiA9PT0gXCJvYmplY3RcIiAmJiB2ICE9PSBudWxsICYmICFBcnJheS5pc0FycmF5KHYpID8gKHYgYXMgUmVzcG9uc2VJdGVtKSA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIHJlc3BvbnNlSXRlbVRleHQoaXRlbTogUmVzcG9uc2VJdGVtKTogc3RyaW5nIHtcbiAgY29uc3QgY29udGVudCA9IGl0ZW0uY29udGVudDtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGNvbnRlbnQpKSByZXR1cm4gXCJcIjtcbiAgcmV0dXJuIGNvbnRlbnRcbiAgICAubWFwKChjKSA9PiB7XG4gICAgICBjb25zdCBvYmogPSBhc09iamVjdChjKTtcbiAgICAgIHJldHVybiBvYmogJiYgdHlwZW9mIG9iai50ZXh0ID09PSBcInN0cmluZ1wiID8gb2JqLnRleHQgOiBcIlwiO1xuICAgIH0pXG4gICAgLmZpbHRlcihCb29sZWFuKVxuICAgIC5qb2luKFwiXFxuXCIpO1xufVxuXG5mdW5jdGlvbiBmbGF0dGVuQ29sZEhpc3RvcnkoY29sZEhpc3Rvcnk6IEFycmF5PEpzb25WYWx1ZT4pOiBzdHJpbmcge1xuICBjb25zdCBwYXJ0czogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBmb3IgKGNvbnN0IHJhdyBvZiBjb2xkSGlzdG9yeSkge1xuICAgIGNvbnN0IGl0ZW0gPSBhc09iamVjdChyYXcpO1xuICAgIGlmICghaXRlbSkgY29udGludWU7XG5cbiAgICBpZiAoaXRlbS50eXBlID09PSBcIm1lc3NhZ2VcIiAmJiBpdGVtLnJvbGUgPT09IFwiYXNzaXN0YW50XCIpIHtcbiAgICAgIHBhcnRzLnB1c2goYEFzc2lzdGFudDogJHtyZXNwb25zZUl0ZW1UZXh0KGl0ZW0pfWApO1xuICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSBcIm1lc3NhZ2VcIiAmJiBpdGVtLnJvbGUgPT09IFwidXNlclwiKSB7XG4gICAgICBwYXJ0cy5wdXNoKGBVc2VyOiAke3Jlc3BvbnNlSXRlbVRleHQoaXRlbSl9YCk7XG4gICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09IFwiZnVuY3Rpb25fY2FsbFwiKSB7XG4gICAgICBjb25zdCBuYW1lID0gdHlwZW9mIGl0ZW0ubmFtZSA9PT0gXCJzdHJpbmdcIiA/IGl0ZW0ubmFtZSA6IFwiXCI7XG4gICAgICBjb25zdCBhcmdzID1cbiAgICAgICAgdHlwZW9mIGl0ZW0uYXJndW1lbnRzID09PSBcInN0cmluZ1wiID8gaXRlbS5hcmd1bWVudHMgOiBKU09OLnN0cmluZ2lmeShpdGVtLmFyZ3VtZW50cyA/PyB7fSk7XG4gICAgICBwYXJ0cy5wdXNoKGBUb29sIGNhbGw6ICR7bmFtZX0oJHthcmdzfSlgKTtcbiAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gXCJmdW5jdGlvbl9jYWxsX291dHB1dFwiKSB7XG4gICAgICBjb25zdCBvdXRwdXQgPVxuICAgICAgICB0eXBlb2YgaXRlbS5vdXRwdXQgPT09IFwic3RyaW5nXCIgPyBpdGVtLm91dHB1dCA6IEpTT04uc3RyaW5naWZ5KGl0ZW0ub3V0cHV0ID8/IFwiXCIpO1xuICAgICAgcGFydHMucHVzaChgVG9vbCByZXN1bHQ6ICR7b3V0cHV0fWApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcGFydHMuam9pbihcIlxcblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU3RyZWFtSnNvbklucHV0KG9wdHM6IHtcbiAgY29sZEhpc3Rvcnk/OiBBcnJheTxKc29uVmFsdWU+O1xuICBpbnB1dDogQXJyYXk8VXNlcklucHV0Pjtcbn0pOiBBcnJheTxDbGF1ZGVTdHJlYW1Kc29uTGluZT4ge1xuICBjb25zdCBsaW5lczogQXJyYXk8Q2xhdWRlU3RyZWFtSnNvbkxpbmU+ID0gW107XG5cbiAgaWYgKG9wdHMuY29sZEhpc3RvcnkgJiYgb3B0cy5jb2xkSGlzdG9yeS5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgZmxhdHRlbmVkID0gZmxhdHRlbkNvbGRIaXN0b3J5KG9wdHMuY29sZEhpc3RvcnkpO1xuICAgIGlmIChmbGF0dGVuZWQpIHtcbiAgICAgIGxpbmVzLnB1c2goe1xuICAgICAgICB0eXBlOiBcImFzc2lzdGFudFwiLFxuICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgcm9sZTogXCJhc3Npc3RhbnRcIixcbiAgICAgICAgICBjb250ZW50OiB0ZXh0QmxvY2soYFByaW9yIGNvbnZlcnNhdGlvbiBjb250ZXh0OlxcbiR7ZmxhdHRlbmVkfWApLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbGluZXMucHVzaCh7XG4gICAgdHlwZTogXCJ1c2VyXCIsXG4gICAgbWVzc2FnZTogeyByb2xlOiBcInVzZXJcIiwgY29udGVudDogdGV4dEJsb2NrKHVzZXJJbnB1dFRvVGV4dChvcHRzLmlucHV0KSkgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIGxpbmVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplU3RyZWFtSnNvbklucHV0KGxpbmVzOiBBcnJheTxDbGF1ZGVTdHJlYW1Kc29uTGluZT4pOiBzdHJpbmcge1xuICByZXR1cm4gbGluZXMubWFwKChsKSA9PiBKU09OLnN0cmluZ2lmeShsKSkuam9pbihcIlxcblwiKSArIFwiXFxuXCI7XG59XG5cbi8vIOKUgOKUgCDstpzroKUg7Ja064yR7YSwIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy9cbi8vIENsYXVkZSBzdGRvdXQoSlNPTkwp7J2EIHFncmlkIGRlbHRhcyArIGZpbmFsIHJlc3VsdCDroZwg67OA7ZmY7ZWc64ukLlxuXG5pbnRlcmZhY2UgQ2xhdWRlVXNhZ2Uge1xuICBpbnB1dF90b2tlbnM/OiBudW1iZXI7XG4gIG91dHB1dF90b2tlbnM/OiBudW1iZXI7XG4gIGNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2Vucz86IG51bWJlcjtcbiAgY2FjaGVfcmVhZF9pbnB1dF90b2tlbnM/OiBudW1iZXI7XG4gIGNhY2hlX2NyZWF0aW9uPzoge1xuICAgIGVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnM/OiBudW1iZXI7XG4gICAgZXBoZW1lcmFsXzFoX2lucHV0X3Rva2Vucz86IG51bWJlcjtcbiAgfTtcbiAgaXRlcmF0aW9ucz86IEFycmF5PHtcbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIG1vZGVsPzogc3RyaW5nO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGF1ZGVTdHJlYW1SZXN1bHQge1xuICB0ZXh0OiBzdHJpbmc7XG4gIHVzYWdlOiBQcm92aWRlclRva2VuVXNhZ2VCcmVha2Rvd247XG4gIGR1cmF0aW9uTXM6IG51bWJlcjtcbiAgY29zdFVzZDogbnVtYmVyO1xuICAvLyBxdW90YSDshozsp4QoXCJZb3UndmUgaGl0IC4uLlwiKSDqsJDsp4AuIGRpc3BhdGNoZXIg6rCAIFF1b3RhRXJyb3Ig66GcIOuzgO2ZmC5cbiAgcXVvdGFFeGhhdXN0ZWQ6IGJvb2xlYW47XG4gIC8vIHJlc3VsdC5pc19lcnJvciAvIHRlcm1pbmFsIG1vZGVsX2Vycm9yIOuTsS4gZGlzcGF0Y2hlciDqsIAg7JeQ65+s66GcIOuzgO2ZmC5cbiAgaXNFcnJvcjogYm9vbGVhbjtcbiAgLy8g7KeE64uo7JqpOiBDQyByZXN1bHQg65287J247J2YIHN1YnR5cGUoXCJzdWNjZXNzXCIgfCBcImVycm9yX21heF90dXJuc1wiIHwgLi4uKSDqs7wgdGVybWluYWxfcmVhc29uLlxuICAvLyBpc0Vycm9yIO2MkOyglSDsgqzsnKDrpbwg7JeQ65+sIOuplOyLnOyngOyXkCDrk5zrn6zrgrTquLAg7JyE7ZW0IOuztOyhtO2VnOuLpChTT04tNDk1KS5cbiAgc3VidHlwZT86IHN0cmluZztcbiAgdGVybWluYWxSZWFzb24/OiBzdHJpbmc7XG4gIC8vIOyLpOygnCDstZzsooUg7J2R64u17J2EIOunjOuToCDrqqjrjbguIEZhYmxlIHJlZnVzYWwgZmFsbGJhY2sg65WMIHJlcXVlc3RlZCBtb2RlbCDqs7wg64uk66W064ukLlxuICBzZXJ2ZWRNb2RlbD86IHN0cmluZztcbiAgc3RvcFJlYXNvbj86IHN0cmluZztcbiAgcmVmdXNhbD86IHtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBleHBsYW5hdGlvbj86IHN0cmluZztcbiAgfTtcbiAgbW9kZWxGYWxsYmFja3M/OiBBcnJheTxNb2RlbEZhbGxiYWNrPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGF1ZGVTdHJlYW1Kc29uU3RhdGUge1xuICBzdHJ1Y3R1cmVkT3V0cHV0VGV4dD86IHN0cmluZztcbiAgc2VydmVkTW9kZWw/OiBzdHJpbmc7XG4gIHN0b3BSZWFzb24/OiBzdHJpbmc7XG4gIHJlZnVzYWw/OiB7XG4gICAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gICAgZXhwbGFuYXRpb24/OiBzdHJpbmc7XG4gIH07XG4gIG1vZGVsRmFsbGJhY2tzPzogQXJyYXk8TW9kZWxGYWxsYmFjaz47XG4gIHJlZnVzYWxXaXRob3V0RmFsbGJhY2s/OiBib29sZWFuO1xufVxuXG4vLyBBbnRocm9waWMgdXNhZ2UgNCDsubTthYzqs6Drpqwg4oaSIFRva2VuVXNhZ2VCcmVha2Rvd24uXG4vLyBBbnRocm9waWMgbmF0aXZlIHVzYWdlIOuKlCBpbnB1dC9jYWNoZV9jcmVhdGlvbi9jYWNoZV9yZWFkIOulvCDshJzroZwg67Cw7YOA7KCB7J24IOy5tO2FjOqzoOumrOuhnCDspIDri6QuXG4vLyDrsJjrqbQgcWdyaWQg64K067aAIO2RnOykgChUb2tlblVzYWdlQnJlYWtkb3duKeqzvCBjb3N0IOqzhOyCsOydgCBpbnB1dFRva2VucyDrpbwgXCLsoITssrQg7J6F66ClXG4vLyAoPSBub24tY2FjaGUgaW5wdXQgKyBjYWNoZSBjcmVhdGlvbiArIGNhY2hlIHJlYWQpXCIg7Jy866GcIOy3qOq4ie2VmOqzoCBjYWNoZWRJbnB1dFRva2Vucy9jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnNcbi8vIOulvCDqt7jspJEg6rCBIOuqq+ycvOuhnCDri6Tsi5wg7ZGc7Iuc7ZWc64ukKE9wZW5BSS9Db2RleCB1c2FnZSDsmYAg6rCZ7J2AIOydmOuvuCkuIOuUsOudvOyEnCDsl6zquLDshJwg7ZWp7LOQIO2RnOykgO2ZlO2VnOuLpC5cbmZ1bmN0aW9uIHRvVXNhZ2VCcmVha2Rvd24odTogQ2xhdWRlVXNhZ2UpOiBQcm92aWRlclRva2VuVXNhZ2VCcmVha2Rvd24ge1xuICBjb25zdCBpbnB1dCA9IHUuaW5wdXRfdG9rZW5zID8/IDA7XG4gIGNvbnN0IGNhY2hlQ3JlYXRlID0gdS5jYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMgPz8gMDtcbiAgY29uc3QgY2FjaGVSZWFkID0gdS5jYWNoZV9yZWFkX2lucHV0X3Rva2VucyA/PyAwO1xuICBjb25zdCBvdXRwdXQgPSB1Lm91dHB1dF90b2tlbnMgPz8gMDtcbiAgY29uc3QgdG90YWxJbnB1dCA9IGlucHV0ICsgY2FjaGVDcmVhdGUgKyBjYWNoZVJlYWQ7XG4gIGNvbnN0IGNhY2hlQ3JlYXRlNW0gPSB1LmNhY2hlX2NyZWF0aW9uPy5lcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zO1xuICBjb25zdCBjYWNoZUNyZWF0ZTFoID0gdS5jYWNoZV9jcmVhdGlvbj8uZXBoZW1lcmFsXzFoX2lucHV0X3Rva2VucztcbiAgcmV0dXJuIHtcbiAgICB0b3RhbFRva2VuczogdG90YWxJbnB1dCArIG91dHB1dCxcbiAgICBpbnB1dFRva2VuczogdG90YWxJbnB1dCxcbiAgICBjYWNoZWRJbnB1dFRva2VuczogY2FjaGVSZWFkLFxuICAgIGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczogY2FjaGVDcmVhdGUsXG4gICAgLi4uKHR5cGVvZiBjYWNoZUNyZWF0ZTVtID09PSBcIm51bWJlclwiID8geyBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM1bTogY2FjaGVDcmVhdGU1bSB9IDoge30pLFxuICAgIC4uLih0eXBlb2YgY2FjaGVDcmVhdGUxaCA9PT0gXCJudW1iZXJcIiA/IHsgY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zMWg6IGNhY2hlQ3JlYXRlMWggfSA6IHt9KSxcbiAgICBvdXRwdXRUb2tlbnM6IG91dHB1dCxcbiAgICByZWFzb25pbmdPdXRwdXRUb2tlbnM6IDAsXG4gIH07XG59XG5cbmZ1bmN0aW9uIHN0cmlwQ29kZUZlbmNlKHM6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzXG4gICAgLnRyaW0oKVxuICAgIC5yZXBsYWNlKC9eYGBgKD86anNvbik/XFxzKlxcbj8vaSwgXCJcIilcbiAgICAucmVwbGFjZSgvXFxuP2BgYFxccyokL2ksIFwiXCIpO1xufVxuXG5mdW5jdGlvbiBzdHJ1Y3R1cmVkT3V0cHV0VG9vbFVzZVRleHQoajogUmVzcG9uc2VJdGVtKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbWVzc2FnZSA9IGFzT2JqZWN0KGoubWVzc2FnZSk7XG4gIGNvbnN0IGNvbnRlbnQgPSBtZXNzYWdlPy5jb250ZW50O1xuICBpZiAoIUFycmF5LmlzQXJyYXkoY29udGVudCkpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgZm9yIChjb25zdCByYXcgb2YgY29udGVudCkge1xuICAgIGNvbnN0IGJsb2NrID0gYXNPYmplY3QocmF3KTtcbiAgICBpZiAoIWJsb2NrKSBjb250aW51ZTtcbiAgICBpZiAoXG4gICAgICBibG9jay50eXBlID09PSBcInRvb2xfdXNlXCIgJiZcbiAgICAgIGJsb2NrLm5hbWUgPT09IFwiU3RydWN0dXJlZE91dHB1dFwiICYmXG4gICAgICBibG9jay5pbnB1dCAhPT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYmxvY2suaW5wdXQpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBjYW5vbmljYWxFdmVudE1vZGVsKG1vZGVsOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCB3aXRob3V0UHJvdmlkZXIgPSBtb2RlbC5zdGFydHNXaXRoKFwiYW50aHJvcGljL1wiKSA/IG1vZGVsLnNsaWNlKFwiYW50aHJvcGljL1wiLmxlbmd0aCkgOiBtb2RlbDtcbiAgcmV0dXJuIHdpdGhvdXRQcm92aWRlci5yZXBsYWNlKC9cXFsxbVxcXSQvLCBcIlwiKTtcbn1cblxuZnVuY3Rpb24gb3B0aW9uYWxTdHJpbmcodmFsdWU6IEpzb25WYWx1ZSB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWUubGVuZ3RoID4gMCA/IHZhbHVlIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiByZWNvcmRGYWxsYmFjayhzdGF0ZTogQ2xhdWRlU3RyZWFtSnNvblN0YXRlIHwgdW5kZWZpbmVkLCBmYWxsYmFjazogTW9kZWxGYWxsYmFjayk6IHZvaWQge1xuICBpZiAoIXN0YXRlKSByZXR1cm47XG4gIGNvbnN0IG5vcm1hbGl6ZWQ6IE1vZGVsRmFsbGJhY2sgPSB7XG4gICAgLi4uZmFsbGJhY2ssXG4gICAgZnJvbU1vZGVsOiBjYW5vbmljYWxFdmVudE1vZGVsKGZhbGxiYWNrLmZyb21Nb2RlbCksXG4gICAgdG9Nb2RlbDogY2Fub25pY2FsRXZlbnRNb2RlbChmYWxsYmFjay50b01vZGVsKSxcbiAgfTtcbiAgY29uc3QgZXhpc3RpbmcgPSBzdGF0ZS5tb2RlbEZhbGxiYWNrcz8uZmluZChcbiAgICAoaXRlbSkgPT5cbiAgICAgIGl0ZW0udHJpZ2dlciA9PT0gbm9ybWFsaXplZC50cmlnZ2VyICYmXG4gICAgICBpdGVtLmZyb21Nb2RlbCA9PT0gbm9ybWFsaXplZC5mcm9tTW9kZWwgJiZcbiAgICAgIGl0ZW0udG9Nb2RlbCA9PT0gbm9ybWFsaXplZC50b01vZGVsLFxuICApO1xuICBpZiAoZXhpc3RpbmcpIHtcbiAgICBleGlzdGluZy5jYXRlZ29yeSA/Pz0gbm9ybWFsaXplZC5jYXRlZ29yeTtcbiAgICBleGlzdGluZy5leHBsYW5hdGlvbiA/Pz0gbm9ybWFsaXplZC5leHBsYW5hdGlvbjtcbiAgfSBlbHNlIHtcbiAgICAoc3RhdGUubW9kZWxGYWxsYmFja3MgPz89IFtdKS5wdXNoKG5vcm1hbGl6ZWQpO1xuICB9XG4gIHN0YXRlLnNlcnZlZE1vZGVsID0gbm9ybWFsaXplZC50b01vZGVsO1xuICBzdGF0ZS5yZWZ1c2FsV2l0aG91dEZhbGxiYWNrID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVJvdXRpbmdGcm9tVXNhZ2UoXG4gIHVzYWdlOiBSZXNwb25zZUl0ZW0gfCBudWxsLFxuICBzdGF0ZTogQ2xhdWRlU3RyZWFtSnNvblN0YXRlIHwgdW5kZWZpbmVkLFxuKTogdm9pZCB7XG4gIGlmICghc3RhdGUgfHwgIXVzYWdlIHx8ICFBcnJheS5pc0FycmF5KHVzYWdlLml0ZXJhdGlvbnMpKSByZXR1cm47XG5cbiAgbGV0IHByZXZpb3VzTW9kZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZm9yIChjb25zdCByYXcgb2YgdXNhZ2UuaXRlcmF0aW9ucykge1xuICAgIGNvbnN0IGl0ZXJhdGlvbiA9IGFzT2JqZWN0KHJhdyk7XG4gICAgaWYgKCFpdGVyYXRpb24pIGNvbnRpbnVlO1xuICAgIGNvbnN0IG1vZGVsID0gb3B0aW9uYWxTdHJpbmcoaXRlcmF0aW9uLm1vZGVsKTtcbiAgICBjb25zdCB0eXBlID0gb3B0aW9uYWxTdHJpbmcoaXRlcmF0aW9uLnR5cGUpO1xuICAgIGlmICghbW9kZWwpIGNvbnRpbnVlO1xuICAgIGNvbnN0IGNhbm9uaWNhbE1vZGVsID0gY2Fub25pY2FsRXZlbnRNb2RlbChtb2RlbCk7XG4gICAgaWYgKHR5cGUgPT09IFwiZmFsbGJhY2tfbWVzc2FnZVwiICYmIHByZXZpb3VzTW9kZWwpIHtcbiAgICAgIHJlY29yZEZhbGxiYWNrKHN0YXRlLCB7XG4gICAgICAgIHRyaWdnZXI6IFwicmVmdXNhbFwiLFxuICAgICAgICBmcm9tTW9kZWw6IHByZXZpb3VzTW9kZWwsXG4gICAgICAgIHRvTW9kZWw6IGNhbm9uaWNhbE1vZGVsLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHByZXZpb3VzTW9kZWwgPSBjYW5vbmljYWxNb2RlbDtcbiAgICBzdGF0ZS5zZXJ2ZWRNb2RlbCA9IGNhbm9uaWNhbE1vZGVsO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVJvdXRpbmdGcm9tTWVzc2FnZShcbiAgbWVzc2FnZTogUmVzcG9uc2VJdGVtIHwgbnVsbCxcbiAgc3RhdGU6IENsYXVkZVN0cmVhbUpzb25TdGF0ZSB8IHVuZGVmaW5lZCxcbik6IHZvaWQge1xuICBpZiAoIXN0YXRlIHx8ICFtZXNzYWdlKSByZXR1cm47XG4gIGNvbnN0IG1vZGVsID0gb3B0aW9uYWxTdHJpbmcobWVzc2FnZS5tb2RlbCk7XG4gIGNvbnN0IGNhbm9uaWNhbE1vZGVsID0gbW9kZWwgPyBjYW5vbmljYWxFdmVudE1vZGVsKG1vZGVsKSA6IHVuZGVmaW5lZDtcbiAgaWYgKGNhbm9uaWNhbE1vZGVsKSBzdGF0ZS5zZXJ2ZWRNb2RlbCA9IGNhbm9uaWNhbE1vZGVsO1xuICBjb25zdCBzdG9wUmVhc29uID0gb3B0aW9uYWxTdHJpbmcobWVzc2FnZS5zdG9wX3JlYXNvbik7XG4gIGlmIChzdG9wUmVhc29uKSB7XG4gICAgc3RhdGUuc3RvcFJlYXNvbiA9IHN0b3BSZWFzb247XG4gICAgaWYgKHN0b3BSZWFzb24gPT09IFwicmVmdXNhbFwiKSBzdGF0ZS5yZWZ1c2FsV2l0aG91dEZhbGxiYWNrID0gdHJ1ZTtcbiAgICBlbHNlIGlmIChzdGF0ZS5tb2RlbEZhbGxiYWNrcz8uc29tZSgoZmFsbGJhY2spID0+IGZhbGxiYWNrLnRvTW9kZWwgPT09IGNhbm9uaWNhbE1vZGVsKSkge1xuICAgICAgc3RhdGUucmVmdXNhbFdpdGhvdXRGYWxsYmFjayA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHN0b3BEZXRhaWxzID0gYXNPYmplY3QobWVzc2FnZS5zdG9wX2RldGFpbHMpO1xuICBpZiAoc3RvcERldGFpbHM/LnR5cGUgPT09IFwicmVmdXNhbFwiIHx8IHN0b3BSZWFzb24gPT09IFwicmVmdXNhbFwiKSB7XG4gICAgc3RhdGUucmVmdXNhbCA9IHtcbiAgICAgIGNhdGVnb3J5OiBvcHRpb25hbFN0cmluZyhzdG9wRGV0YWlscz8uY2F0ZWdvcnkpLFxuICAgICAgZXhwbGFuYXRpb246IG9wdGlvbmFsU3RyaW5nKHN0b3BEZXRhaWxzPy5leHBsYW5hdGlvbiksXG4gICAgfTtcbiAgfVxuICB1cGRhdGVSb3V0aW5nRnJvbVVzYWdlKGFzT2JqZWN0KG1lc3NhZ2UudXNhZ2UpLCBzdGF0ZSk7XG59XG5cbi8vIFByb2Nlc3NlcyBvbmUgQ2xhdWRlIHN0ZG91dCBKU09OTCBsaW5lLiBSZXR1cm5zIGZpbmFsIHJlc3VsdCBvbiByZXN1bHQgZXZlbnQuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlU3RyZWFtSnNvbkxpbmUoXG4gIGxpbmU6IHN0cmluZyxcbiAgb25EZWx0YTogKHRleHQ6IHN0cmluZykgPT4gdm9pZCxcbiAgb3B0cz86IHsgc3RydWN0dXJlZE91dHB1dD86IGJvb2xlYW47IHN0YXRlPzogQ2xhdWRlU3RyZWFtSnNvblN0YXRlIH0sXG4pOiBDbGF1ZGVTdHJlYW1SZXN1bHQgfCBudWxsIHtcbiAgY29uc3Qgc3RydWN0dXJlZE91dHB1dCA9IG9wdHM/LnN0cnVjdHVyZWRPdXRwdXQgPz8gZmFsc2U7XG4gIGNvbnN0IHN0YXRlID0gb3B0cz8uc3RhdGU7XG4gIGNvbnN0IHRyaW1tZWQgPSBsaW5lLnRyaW0oKTtcbiAgaWYgKCF0cmltbWVkKSByZXR1cm4gbnVsbDtcblxuICBsZXQgajogeyBba2V5OiBzdHJpbmddOiBKc29uVmFsdWUgfCB1bmRlZmluZWQgfTtcbiAgdHJ5IHtcbiAgICBqID0gSlNPTi5wYXJzZSh0cmltbWVkKSBhcyB7IFtrZXk6IHN0cmluZ106IEpzb25WYWx1ZSB8IHVuZGVmaW5lZCB9O1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChqLnR5cGUgPT09IFwic3RyZWFtX2V2ZW50XCIpIHtcbiAgICBjb25zdCBldmVudCA9IGFzT2JqZWN0KGouZXZlbnQpO1xuICAgIGlmIChldmVudD8udHlwZSA9PT0gXCJtZXNzYWdlX3N0YXJ0XCIpIHtcbiAgICAgIHVwZGF0ZVJvdXRpbmdGcm9tTWVzc2FnZShhc09iamVjdChldmVudC5tZXNzYWdlKSwgc3RhdGUpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQ/LnR5cGUgPT09IFwibWVzc2FnZV9kZWx0YVwiKSB7XG4gICAgICBjb25zdCBkZWx0YSA9IGFzT2JqZWN0KGV2ZW50LmRlbHRhKTtcbiAgICAgIGNvbnN0IHN0b3BSZWFzb24gPSBvcHRpb25hbFN0cmluZyhkZWx0YT8uc3RvcF9yZWFzb24pO1xuICAgICAgaWYgKHN0YXRlICYmIHN0b3BSZWFzb24pIHtcbiAgICAgICAgc3RhdGUuc3RvcFJlYXNvbiA9IHN0b3BSZWFzb247XG4gICAgICAgIGlmIChzdG9wUmVhc29uID09PSBcInJlZnVzYWxcIikgc3RhdGUucmVmdXNhbFdpdGhvdXRGYWxsYmFjayA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChldmVudCAmJiBldmVudC50eXBlID09PSBcImNvbnRlbnRfYmxvY2tfZGVsdGFcIikge1xuICAgICAgY29uc3QgZGVsdGEgPSBhc09iamVjdChldmVudC5kZWx0YSk7XG4gICAgICBpZiAoZGVsdGEpIHtcbiAgICAgICAgaWYgKHN0cnVjdHVyZWRPdXRwdXQpIHtcbiAgICAgICAgICBpZiAoZGVsdGEudHlwZSA9PT0gXCJpbnB1dF9qc29uX2RlbHRhXCIgJiYgdHlwZW9mIGRlbHRhLnBhcnRpYWxfanNvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgb25EZWx0YShkZWx0YS5wYXJ0aWFsX2pzb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZGVsdGEudHlwZSA9PT0gXCJ0ZXh0X2RlbHRhXCIgJiYgdHlwZW9mIGRlbHRhLnRleHQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIG9uRGVsdGEoZGVsdGEudGV4dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGoudHlwZSA9PT0gXCJzeXN0ZW1cIikge1xuICAgIGNvbnN0IHN1YnR5cGUgPSBvcHRpb25hbFN0cmluZyhqLnN1YnR5cGUpO1xuICAgIGlmIChzdWJ0eXBlID09PSBcIm1vZGVsX3JlZnVzYWxfZmFsbGJhY2tcIikge1xuICAgICAgY29uc3QgZnJvbU1vZGVsID0gb3B0aW9uYWxTdHJpbmcoai5vcmlnaW5hbE1vZGVsKSA/PyBvcHRpb25hbFN0cmluZyhqLm9yaWdpbmFsX21vZGVsKTtcbiAgICAgIGNvbnN0IHRvTW9kZWwgPSBvcHRpb25hbFN0cmluZyhqLmZhbGxiYWNrTW9kZWwpID8/IG9wdGlvbmFsU3RyaW5nKGouZmFsbGJhY2tfbW9kZWwpO1xuICAgICAgaWYgKGZyb21Nb2RlbCAmJiB0b01vZGVsKSB7XG4gICAgICAgIHJlY29yZEZhbGxiYWNrKHN0YXRlLCB7XG4gICAgICAgICAgdHJpZ2dlcjogXCJyZWZ1c2FsXCIsXG4gICAgICAgICAgZnJvbU1vZGVsLFxuICAgICAgICAgIHRvTW9kZWwsXG4gICAgICAgICAgY2F0ZWdvcnk6XG4gICAgICAgICAgICBvcHRpb25hbFN0cmluZyhqLmFwaVJlZnVzYWxDYXRlZ29yeSkgPz9cbiAgICAgICAgICAgIG9wdGlvbmFsU3RyaW5nKGouYXBpX3JlZnVzYWxfY2F0ZWdvcnkpID8/XG4gICAgICAgICAgICBvcHRpb25hbFN0cmluZyhqLnJlZnVzYWxDYXRlZ29yeSkgPz9cbiAgICAgICAgICAgIG9wdGlvbmFsU3RyaW5nKGoucmVmdXNhbF9jYXRlZ29yeSksXG4gICAgICAgICAgZXhwbGFuYXRpb246XG4gICAgICAgICAgICBvcHRpb25hbFN0cmluZyhqLmFwaVJlZnVzYWxFeHBsYW5hdGlvbikgPz9cbiAgICAgICAgICAgIG9wdGlvbmFsU3RyaW5nKGouYXBpX3JlZnVzYWxfZXhwbGFuYXRpb24pID8/XG4gICAgICAgICAgICBvcHRpb25hbFN0cmluZyhqLnJlZnVzYWxFeHBsYW5hdGlvbikgPz9cbiAgICAgICAgICAgIG9wdGlvbmFsU3RyaW5nKGoucmVmdXNhbF9leHBsYW5hdGlvbiksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc3VidHlwZSA9PT0gXCJtb2RlbF9yZWZ1c2FsX25vX2ZhbGxiYWNrXCIgJiYgc3RhdGUpIHtcbiAgICAgIGNvbnN0IG9yaWdpbmFsTW9kZWwgPSBvcHRpb25hbFN0cmluZyhqLm9yaWdpbmFsTW9kZWwpID8/IG9wdGlvbmFsU3RyaW5nKGoub3JpZ2luYWxfbW9kZWwpO1xuICAgICAgaWYgKG9yaWdpbmFsTW9kZWwpIHN0YXRlLnNlcnZlZE1vZGVsID0gY2Fub25pY2FsRXZlbnRNb2RlbChvcmlnaW5hbE1vZGVsKTtcbiAgICAgIHN0YXRlLnN0b3BSZWFzb24gPSBcInJlZnVzYWxcIjtcbiAgICAgIHN0YXRlLnJlZnVzYWxXaXRob3V0RmFsbGJhY2sgPSB0cnVlO1xuICAgICAgc3RhdGUucmVmdXNhbCA9IHtcbiAgICAgICAgY2F0ZWdvcnk6XG4gICAgICAgICAgb3B0aW9uYWxTdHJpbmcoai5hcGlSZWZ1c2FsQ2F0ZWdvcnkpID8/XG4gICAgICAgICAgb3B0aW9uYWxTdHJpbmcoai5hcGlfcmVmdXNhbF9jYXRlZ29yeSkgPz9cbiAgICAgICAgICBvcHRpb25hbFN0cmluZyhqLnJlZnVzYWxDYXRlZ29yeSkgPz9cbiAgICAgICAgICBvcHRpb25hbFN0cmluZyhqLnJlZnVzYWxfY2F0ZWdvcnkpLFxuICAgICAgICBleHBsYW5hdGlvbjpcbiAgICAgICAgICBvcHRpb25hbFN0cmluZyhqLmFwaVJlZnVzYWxFeHBsYW5hdGlvbikgPz9cbiAgICAgICAgICBvcHRpb25hbFN0cmluZyhqLmFwaV9yZWZ1c2FsX2V4cGxhbmF0aW9uKSA/P1xuICAgICAgICAgIG9wdGlvbmFsU3RyaW5nKGoucmVmdXNhbEV4cGxhbmF0aW9uKSA/P1xuICAgICAgICAgIG9wdGlvbmFsU3RyaW5nKGoucmVmdXNhbF9leHBsYW5hdGlvbiksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChqLnR5cGUgPT09IFwiYXNzaXN0YW50XCIpIHtcbiAgICB1cGRhdGVSb3V0aW5nRnJvbU1lc3NhZ2UoYXNPYmplY3Qoai5tZXNzYWdlKSwgc3RhdGUpO1xuICAgIGlmIChzdHJ1Y3R1cmVkT3V0cHV0ICYmIHN0YXRlICYmIHN0YXRlLnN0cnVjdHVyZWRPdXRwdXRUZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHRleHQgPSBzdHJ1Y3R1cmVkT3V0cHV0VG9vbFVzZVRleHQoaik7XG4gICAgICBpZiAodGV4dCAhPT0gdW5kZWZpbmVkKSBzdGF0ZS5zdHJ1Y3R1cmVkT3V0cHV0VGV4dCA9IHRleHQ7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGoudHlwZSA9PT0gXCJyZXN1bHRcIikge1xuICAgIGxldCB0ZXh0OiBzdHJpbmc7XG4gICAgY29uc3QgcHJlc2VydmVkU3RydWN0dXJlZE91dHB1dCA9IHN0cnVjdHVyZWRPdXRwdXQgPyBzdGF0ZT8uc3RydWN0dXJlZE91dHB1dFRleHQgOiB1bmRlZmluZWQ7XG4gICAgaWYgKHByZXNlcnZlZFN0cnVjdHVyZWRPdXRwdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGV4dCA9IHByZXNlcnZlZFN0cnVjdHVyZWRPdXRwdXQ7XG4gICAgfSBlbHNlIGlmIChqLnN0cnVjdHVyZWRfb3V0cHV0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRleHQgPSBKU09OLnN0cmluZ2lmeShqLnN0cnVjdHVyZWRfb3V0cHV0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGV4dCA9IHN0cmlwQ29kZUZlbmNlKHR5cGVvZiBqLnJlc3VsdCA9PT0gXCJzdHJpbmdcIiA/IGoucmVzdWx0IDogXCJcIik7XG4gICAgfVxuXG4gICAgY29uc3QgcmF3VXNhZ2UgPSBhc09iamVjdChqLnVzYWdlKSA/PyB7fTtcbiAgICB1cGRhdGVSb3V0aW5nRnJvbVVzYWdlKHJhd1VzYWdlLCBzdGF0ZSk7XG4gICAgY29uc3QgcmVzdWx0TW9kZWwgPSBvcHRpb25hbFN0cmluZyhqLm1vZGVsKTtcbiAgICBpZiAoc3RhdGUgJiYgcmVzdWx0TW9kZWwgJiYgIXN0YXRlLnNlcnZlZE1vZGVsKSB7XG4gICAgICBzdGF0ZS5zZXJ2ZWRNb2RlbCA9IGNhbm9uaWNhbEV2ZW50TW9kZWwocmVzdWx0TW9kZWwpO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHRTdG9wUmVhc29uID0gb3B0aW9uYWxTdHJpbmcoai5zdG9wX3JlYXNvbik7XG4gICAgaWYgKHN0YXRlICYmIHJlc3VsdFN0b3BSZWFzb24pIHtcbiAgICAgIHN0YXRlLnN0b3BSZWFzb24gPSByZXN1bHRTdG9wUmVhc29uO1xuICAgICAgaWYgKHJlc3VsdFN0b3BSZWFzb24gPT09IFwicmVmdXNhbFwiKSBzdGF0ZS5yZWZ1c2FsV2l0aG91dEZhbGxiYWNrID0gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgdXNhZ2UgPSB0b1VzYWdlQnJlYWtkb3duKHJhd1VzYWdlIGFzIENsYXVkZVVzYWdlKTtcbiAgICBjb25zdCBxdW90YUV4aGF1c3RlZCA9IHRleHQuc3RhcnRzV2l0aChcIllvdSd2ZSBoaXRcIik7XG4gICAgY29uc3Qgc3VidHlwZSA9IHR5cGVvZiBqLnN1YnR5cGUgPT09IFwic3RyaW5nXCIgPyBqLnN1YnR5cGUgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgdGVybWluYWxSZWFzb24gPSB0eXBlb2Ygai50ZXJtaW5hbF9yZWFzb24gPT09IFwic3RyaW5nXCIgPyBqLnRlcm1pbmFsX3JlYXNvbiA6IHVuZGVmaW5lZDtcblxuICAgIC8vIFNPTi00OTU6IOu5hOygleyDgSDsooXro4woZXJyb3JfbWF4X3N0cnVjdHVyZWRfb3V0cHV0X3JldHJpZXMg65OxKeuKlCDsoJXsp4HtlZjqsowg7JeQ65+s66GcIOyymOumrO2VnOuLpC5cbiAgICAvLyBDQyBzdHJ1Y3R1cmVkIG91dHB1dCDsnYAgY29uc3RyYWluZWQgZGVjb2Rpbmcg7J20IOyVhOuLiOudvCBcInRvb2wgaW5wdXQg7IOd7ISxIO2bhCDsgqztm4QgQUpWIOqygOymnVwi7J206528XG4gICAgLy8g66qo64247J20IOqwgOuBlCBwbGFjZWhvbGRlcigkUEFSQU1FVEVSX05BTUUpwrfqsbDrtoAoXCJqdXN0IGtpZGRpbmdcIinCt+2VhOuTnCDriITrnb0oYWR2YW5jZSkg6rCZ7J2AIOuwnOyekS9cbiAgICAvLyDrtojsmYTsoIQg7Lac66Cl7J2EIOuCuOuLpC4g7J2066W8IFwi6rGw7J2YIOunnuyVmOycvOuLiCDsgrTrpqzsnpBcIuqzoCDtnZjrpqzrqbQg7YG065287J207Ja47Yq4IOqygOymneyXkOyEnCDquajsp4DqsbDrgpgo7ZWE65OcIOuIhOudvSlcbiAgICAvLyDsk7DroIjquLDqsIAg7IOI7Ja0IOuCmOqwhOuLpCjsi6TsuKEgMTE2NzQvMTE2NzUpLiDslYzroKTsp4QgYmVzdCBwcmFjdGljZShyZWZ1c2FsL2RlZ2VuZXJhdGUgb3V0cHV0IOydgCDsgrTrpqzsp4BcbiAgICAvLyDrp5Dqs6AgZ3JhY2VmdWwgZXJyb3Ip64yA66GcLCBzdWJ0eXBlICE9IHN1Y2Nlc3Mg64qUIOq3uOuMgOuhnCDsl5Drn6zroZwg65GU64ukLiDtgbTrnbzsnbTslrjtirjqsIAg6re4IO2EtOydhCDsi6TtjKjroZxcbiAgICAvLyDri6Tro6jqsowg7ZWc64ukKOyKpO2KuOumvOydtOudvCDsnpDrj5kg7J6s7Iuc64+EIOyXhuydjCDigJQg7Iuc6rCEIDLrsLAg67Cp7KeAKS5cbiAgICBjb25zdCBpc0Vycm9yID1cbiAgICAgIGouaXNfZXJyb3IgPT09IHRydWUgfHxcbiAgICAgIGoudGVybWluYWxfcmVhc29uID09PSBcIm1vZGVsX2Vycm9yXCIgfHxcbiAgICAgIChzdWJ0eXBlICE9PSB1bmRlZmluZWQgJiYgc3VidHlwZSAhPT0gXCJzdWNjZXNzXCIpIHx8XG4gICAgICBzdGF0ZT8ucmVmdXNhbFdpdGhvdXRGYWxsYmFjayA9PT0gdHJ1ZTtcblxuICAgIHJldHVybiB7XG4gICAgICB0ZXh0LFxuICAgICAgdXNhZ2UsXG4gICAgICBkdXJhdGlvbk1zOiB0eXBlb2Ygai5kdXJhdGlvbl9tcyA9PT0gXCJudW1iZXJcIiA/IGouZHVyYXRpb25fbXMgOiAwLFxuICAgICAgY29zdFVzZDogdHlwZW9mIGoudG90YWxfY29zdF91c2QgPT09IFwibnVtYmVyXCIgPyBqLnRvdGFsX2Nvc3RfdXNkIDogMCxcbiAgICAgIHF1b3RhRXhoYXVzdGVkLFxuICAgICAgaXNFcnJvcixcbiAgICAgIHN1YnR5cGUsXG4gICAgICB0ZXJtaW5hbFJlYXNvbixcbiAgICAgIHNlcnZlZE1vZGVsOiBzdGF0ZT8uc2VydmVkTW9kZWwsXG4gICAgICBzdG9wUmVhc29uOiBzdGF0ZT8uc3RvcFJlYXNvbixcbiAgICAgIHJlZnVzYWw6IHN0YXRlPy5yZWZ1c2FsLFxuICAgICAgbW9kZWxGYWxsYmFja3M6IHN0YXRlPy5tb2RlbEZhbGxiYWNrcyxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG4iXSwibWFwcGluZ3MiOiI7QUE0QkEsU0FBUyxnQkFBZ0IsT0FBaUM7Q0FDeEQsT0FBTyxNQUNKLFFBQVEsTUFBaUQsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUMzRSxLQUFLLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FDbEIsS0FBSyxJQUFJO0FBQ2Q7QUFFQSxTQUFTLFVBQVUsTUFBcUQ7Q0FDdEUsT0FBTyxDQUFDO0VBQUUs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
@@ -1,4 +1,3 @@
1
- import "../../../_virtual/_rolldown/runtime.js";
2
1
  //#region src/utils/providers/common/credentials.ts
3
2
  function getAccessToken(creds) {
4
3
  return creds.accessToken;
@@ -19,4 +18,4 @@ function isOpenAICredentials(creds) {
19
18
  //#endregion
20
19
  export { getAccessToken, getExpiresAt, getRefreshToken, isAnthropicCredentials, isOpenAICredentials };
21
20
 
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbHMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9jb21tb24vY3JlZGVudGlhbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBBbnRocm9waWNDcmVkZW50aWFscyxcbiAgdHlwZSBPcGVuQUlDcmVkZW50aWFscyxcbiAgdHlwZSBUb2tlbkNyZWRlbnRpYWxzLFxufSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vdG9rZW4vdG9rZW4udHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFjY2Vzc1Rva2VuKGNyZWRzOiBUb2tlbkNyZWRlbnRpYWxzKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNyZWRzLmFjY2Vzc1Rva2VuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVmcmVzaFRva2VuKGNyZWRzOiBUb2tlbkNyZWRlbnRpYWxzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGNyZWRzLnJlZnJlc2hUb2tlbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4cGlyZXNBdChjcmVkczogVG9rZW5DcmVkZW50aWFscyk6IG51bWJlciB7XG4gIGlmIChcImV4cGlyZXNBdFwiIGluIGNyZWRzKSByZXR1cm4gY3JlZHMuZXhwaXJlc0F0O1xuICByZXR1cm4gY3JlZHMuYWNjZXNzVG9rZW5FeHBpcmVzQXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FudGhyb3BpY0NyZWRlbnRpYWxzKGNyZWRzOiBUb2tlbkNyZWRlbnRpYWxzKTogY3JlZHMgaXMgQW50aHJvcGljQ3JlZGVudGlhbHMge1xuICByZXR1cm4gXCJhY2NvdW50VXVpZFwiIGluIGNyZWRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPcGVuQUlDcmVkZW50aWFscyhjcmVkczogVG9rZW5DcmVkZW50aWFscyk6IGNyZWRzIGlzIE9wZW5BSUNyZWRlbnRpYWxzIHtcbiAgcmV0dXJuIFwiYWNjb3VudElkXCIgaW4gY3JlZHM7XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBTUEsU0FBZ0IsZUFBZSxPQUFpQztBQUM5RCxRQUFPLE1BQU07O0FBR2YsU0FBZ0IsZ0JBQWdCLE9BQTZDO0FBQzNFLFFBQU8sTUFBTTs7QUFHZixTQUFnQixhQUFhLE9BQWlDO0FBQzVELEtBQUksZUFBZSxNQUFPLFFBQU8sTUFBTTtBQUN2QyxRQUFPLE1BQU07O0FBR2YsU0FBZ0IsdUJBQXVCLE9BQXdEO0FBQzdGLFFBQU8saUJBQWlCOztBQUcxQixTQUFnQixvQkFBb0IsT0FBcUQ7QUFDdkYsUUFBTyxlQUFlIn0=
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbHMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9jb21tb24vY3JlZGVudGlhbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBBbnRocm9waWNDcmVkZW50aWFscyxcbiAgdHlwZSBPcGVuQUlDcmVkZW50aWFscyxcbiAgdHlwZSBUb2tlbkNyZWRlbnRpYWxzLFxufSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vdG9rZW4vdG9rZW4udHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFjY2Vzc1Rva2VuKGNyZWRzOiBUb2tlbkNyZWRlbnRpYWxzKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNyZWRzLmFjY2Vzc1Rva2VuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVmcmVzaFRva2VuKGNyZWRzOiBUb2tlbkNyZWRlbnRpYWxzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGNyZWRzLnJlZnJlc2hUb2tlbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4cGlyZXNBdChjcmVkczogVG9rZW5DcmVkZW50aWFscyk6IG51bWJlciB7XG4gIGlmIChcImV4cGlyZXNBdFwiIGluIGNyZWRzKSByZXR1cm4gY3JlZHMuZXhwaXJlc0F0O1xuICByZXR1cm4gY3JlZHMuYWNjZXNzVG9rZW5FeHBpcmVzQXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FudGhyb3BpY0NyZWRlbnRpYWxzKGNyZWRzOiBUb2tlbkNyZWRlbnRpYWxzKTogY3JlZHMgaXMgQW50aHJvcGljQ3JlZGVudGlhbHMge1xuICByZXR1cm4gXCJhY2NvdW50VXVpZFwiIGluIGNyZWRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPcGVuQUlDcmVkZW50aWFscyhjcmVkczogVG9rZW5DcmVkZW50aWFscyk6IGNyZWRzIGlzIE9wZW5BSUNyZWRlbnRpYWxzIHtcbiAgcmV0dXJuIFwiYWNjb3VudElkXCIgaW4gY3JlZHM7XG59XG4iXSwibWFwcGluZ3MiOiI7QUFNQSxTQUFnQixlQUFlLE9BQWlDO0NBQzlELE9BQU8sTUFBTTtBQUNmO0FBRUEsU0FBZ0IsZ0JBQWdCLE9BQTZDO0NBQzNFLE9BQU8sTUFBTTtBQUNmO0FBRUEsU0FBZ0IsYUFBYSxPQUFpQztDQUM1RCxJQUFJLGVBQWUsT0FBTyxPQUFPLE1BQU07Q0FDdkMsT0FBTyxNQUFNO0FBQ2Y7QUFFQSxTQUFnQix1QkFBdUIsT0FBd0Q7Q0FDN0YsT0FBTyxpQkFBaUI7QUFDMUI7QUFFQSxTQUFnQixvQkFBb0IsT0FBcUQ7Q0FDdkYsT0FBTyxlQUFlO0FBQ3hCIn0=
@@ -1,4 +1,3 @@
1
- import "../../../_virtual/_rolldown/runtime.js";
2
1
  //#region src/utils/providers/common/model-cost.ts
3
2
  const LONG_CONTEXT_272K = {
4
3
  threshold: 272e3,
@@ -56,121 +55,69 @@ const OPENAI_COSTS = {
56
55
  cachedInputTokens: .175
57
56
  }
58
57
  };
58
+ function anthropicCosts(inputTokens, outputTokens) {
59
+ return {
60
+ inputTokens,
61
+ outputTokens,
62
+ cachedInputTokens: inputTokens / 10,
63
+ cacheCreationInputTokens: inputTokens * 2,
64
+ cacheCreationInputTokens5m: inputTokens * 1.25,
65
+ cacheCreationInputTokens1h: inputTokens * 2
66
+ };
67
+ }
59
68
  const ANTHROPIC_COSTS = {
60
- sonnet: {
61
- inputTokens: 3,
62
- outputTokens: 15,
63
- cachedInputTokens: .3,
64
- cacheCreationInputTokens: 3.75
65
- },
66
- "claude-3-5-haiku": {
67
- inputTokens: .8,
68
- outputTokens: 4,
69
- cachedInputTokens: .08,
70
- cacheCreationInputTokens: 1
71
- },
72
- "claude-haiku-4-5": {
73
- inputTokens: 1,
74
- outputTokens: 5,
75
- cachedInputTokens: .1,
76
- cacheCreationInputTokens: 1.25
77
- },
78
- "claude-3-5-sonnet": {
79
- inputTokens: 3,
80
- outputTokens: 15,
81
- cachedInputTokens: .3,
82
- cacheCreationInputTokens: 3.75
83
- },
84
- "claude-3-7-sonnet": {
85
- inputTokens: 3,
86
- outputTokens: 15,
87
- cachedInputTokens: .3,
88
- cacheCreationInputTokens: 3.75
89
- },
90
- "claude-sonnet-4": {
91
- inputTokens: 3,
92
- outputTokens: 15,
93
- cachedInputTokens: .3,
94
- cacheCreationInputTokens: 3.75
95
- },
96
- "claude-sonnet-4-5": {
97
- inputTokens: 3,
98
- outputTokens: 15,
99
- cachedInputTokens: .3,
100
- cacheCreationInputTokens: 3.75
101
- },
102
- "claude-sonnet-4-6": {
103
- inputTokens: 3,
104
- outputTokens: 15,
105
- cachedInputTokens: .3,
106
- cacheCreationInputTokens: 3.75
107
- },
108
- "claude-sonnet-4-7": {
109
- inputTokens: 3,
110
- outputTokens: 15,
111
- cachedInputTokens: .3,
112
- cacheCreationInputTokens: 3.75
113
- },
114
- "claude-opus-4": {
115
- inputTokens: 15,
116
- outputTokens: 75,
117
- cachedInputTokens: 1.5,
118
- cacheCreationInputTokens: 18.75
119
- },
120
- "claude-opus-4-1": {
121
- inputTokens: 15,
122
- outputTokens: 75,
123
- cachedInputTokens: 1.5,
124
- cacheCreationInputTokens: 18.75
125
- },
126
- "claude-opus-4-5": {
127
- inputTokens: 5,
128
- outputTokens: 25,
129
- cachedInputTokens: .5,
130
- cacheCreationInputTokens: 6.25
131
- },
132
- "claude-opus-4-6": {
133
- inputTokens: 5,
134
- outputTokens: 25,
135
- cachedInputTokens: .5,
136
- cacheCreationInputTokens: 6.25
137
- },
138
- "claude-opus-4-7": {
139
- inputTokens: 5,
140
- outputTokens: 25,
141
- cachedInputTokens: .5,
142
- cacheCreationInputTokens: 6.25
143
- },
144
- "claude-opus-4-8": {
145
- inputTokens: 5,
146
- outputTokens: 25,
147
- cachedInputTokens: .5,
148
- cacheCreationInputTokens: 6.25
149
- }
69
+ "claude-fable-5": anthropicCosts(10, 50),
70
+ sonnet: anthropicCosts(3, 15),
71
+ "claude-3-5-haiku": anthropicCosts(.8, 4),
72
+ "claude-haiku-4-5": anthropicCosts(1, 5),
73
+ "claude-3-5-sonnet": anthropicCosts(3, 15),
74
+ "claude-3-7-sonnet": anthropicCosts(3, 15),
75
+ "claude-sonnet-4": anthropicCosts(3, 15),
76
+ "claude-sonnet-4-5": anthropicCosts(3, 15),
77
+ "claude-sonnet-4-6": anthropicCosts(3, 15),
78
+ "claude-sonnet-4-7": anthropicCosts(3, 15),
79
+ "claude-opus-4": anthropicCosts(15, 75),
80
+ "claude-opus-4-1": anthropicCosts(15, 75),
81
+ "claude-opus-4-5": anthropicCosts(5, 25),
82
+ "claude-opus-4-6": anthropicCosts(5, 25),
83
+ "claude-opus-4-7": anthropicCosts(5, 25),
84
+ "claude-opus-4-8": anthropicCosts(5, 25),
85
+ "claude-opus-5": anthropicCosts(5, 25)
150
86
  };
87
+ const CLAUDE_SONNET_5_INTRO_PRICING_END_MS = Date.UTC(2026, 8, 1);
88
+ const CLAUDE_SONNET_5_INTRO_COSTS = anthropicCosts(2, 10);
89
+ const CLAUDE_SONNET_5_STANDARD_COSTS = anthropicCosts(3, 15);
151
90
  const DEFAULT_COSTS = {
152
91
  inputTokens: 3,
153
92
  outputTokens: 15,
154
93
  cachedInputTokens: .3
155
94
  };
156
- function getModelCosts(model) {
157
- const normalizedModel = model.replace(/\[1m\]$/i, "");
95
+ function getModelCosts(model, atMs = Date.now()) {
96
+ const normalizedModel = (model.split("/").pop() ?? model).replace(/\[1m\]$/i, "");
97
+ if (normalizedModel === "claude-sonnet-5") return atMs < CLAUDE_SONNET_5_INTRO_PRICING_END_MS ? CLAUDE_SONNET_5_INTRO_COSTS : CLAUDE_SONNET_5_STANDARD_COSTS;
158
98
  return OPENAI_COSTS[normalizedModel] ?? ANTHROPIC_COSTS[normalizedModel] ?? DEFAULT_COSTS;
159
99
  }
160
- function calculateCostUsd(model, usage) {
161
- const costs = getModelCosts(model);
100
+ function calculateCostUsd(model, usage, atMs = Date.now()) {
101
+ const costs = getModelCosts(model, atMs);
162
102
  const cachedInput = usage.cachedInputTokens ?? 0;
163
- const cacheCreationInput = usage.cacheCreationInputTokens ?? 0;
103
+ const cacheCreationInput5m = Math.max(usage.cacheCreationInputTokens5m ?? 0, 0);
104
+ const cacheCreationInput1h = Math.max(usage.cacheCreationInputTokens1h ?? 0, 0);
105
+ const cacheCreationInput = Math.max(usage.cacheCreationInputTokens ?? 0, cacheCreationInput5m + cacheCreationInput1h);
106
+ const classifiedCacheCreationInput5m = Math.min(cacheCreationInput5m, cacheCreationInput);
107
+ const classifiedCacheCreationInput1h = Math.min(cacheCreationInput1h, cacheCreationInput - classifiedCacheCreationInput5m);
108
+ const unclassifiedCacheCreationInput = cacheCreationInput - classifiedCacheCreationInput5m - classifiedCacheCreationInput1h;
164
109
  const nonCachedInput = Math.max(usage.inputTokens - cachedInput - cacheCreationInput, 0);
165
110
  const lc = costs.longContext;
166
111
  const isLongContext = lc !== void 0 && usage.inputTokens > lc.threshold;
167
112
  const inputRate = costs.inputTokens * (isLongContext ? lc.inputMultiplier : 1);
168
113
  const cachedRate = costs.cachedInputTokens * (isLongContext ? lc.cachedInputMultiplier : 1);
169
- const cacheCreationRate = (costs.cacheCreationInputTokens ?? costs.inputTokens) * (isLongContext ? lc.inputMultiplier : 1);
114
+ const cacheCreationFallbackRate = (costs.cacheCreationInputTokens ?? costs.inputTokens) * (isLongContext ? lc.inputMultiplier : 1);
115
+ const cacheCreation5mRate = (costs.cacheCreationInputTokens5m ?? costs.cacheCreationInputTokens ?? costs.inputTokens) * (isLongContext ? lc.inputMultiplier : 1);
116
+ const cacheCreation1hRate = (costs.cacheCreationInputTokens1h ?? costs.cacheCreationInputTokens ?? costs.inputTokens) * (isLongContext ? lc.inputMultiplier : 1);
170
117
  const outputRate = costs.outputTokens * (isLongContext ? lc.outputMultiplier : 1);
171
- return nonCachedInput / 1e6 * inputRate + usage.outputTokens / 1e6 * outputRate + cachedInput / 1e6 * cachedRate + cacheCreationInput / 1e6 * cacheCreationRate;
118
+ return nonCachedInput / 1e6 * inputRate + usage.outputTokens / 1e6 * outputRate + cachedInput / 1e6 * cachedRate + unclassifiedCacheCreationInput / 1e6 * cacheCreationFallbackRate + classifiedCacheCreationInput5m / 1e6 * cacheCreation5mRate + classifiedCacheCreationInput1h / 1e6 * cacheCreation1hRate;
172
119
  }
173
120
  //#endregion
174
121
  export { calculateCostUsd, getModelCosts };
175
122
 
176
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtY29zdC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvcHJvdmlkZXJzL2NvbW1vbi9tb2RlbC1jb3N0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog66qo642467OEIO2GoO2BsCDqsIDqsqkg7YWM7J2067iUICsgY29zdCDqs4TsgrAuXG4gKlxuICogY2xhdWRlIGNvZGUg7JmAIOuPmeydvCDtjKjthLQ6IO2BtOudvOydtOyWuO2KuOyXkOyEnCDqsIDqsqkg7YWM7J2067iU66GcIOyngeygkSDqs4TsgrAuXG4gKiDqsIDqsqkg64uo7JyEOiBVU0QgcGVyIDFNIHRva2Vucy5cbiAqXG4gKiBPcGVuQUkg66qo6424IOuqqeuhnTogY29kZXggYXBwLXNlcnZlciBtb2RlbC9saXN0IFJQQyDroZwg7Iuk7LihICgyMDI2LTA1LTE4KVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9wbGF0Zm9ybS5vcGVuYWkuY29tL2RvY3MvcHJpY2luZ1xuICogQHNlZSBodHRwczovL3BsYXRmb3JtLmNsYXVkZS5jb20vZG9jcy9lbi9hYm91dC1jbGF1ZGUvcHJpY2luZ1xuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxDb3N0cyB7XG4gIGlucHV0VG9rZW5zOiBudW1iZXI7XG4gIG91dHB1dFRva2VuczogbnVtYmVyO1xuICBjYWNoZWRJbnB1dFRva2VuczogbnVtYmVyO1xuICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBsb25nLWNvbnRleHQg7ZWg7KadLiDsoITssrQg7J6F66ClIO2GoO2BsChpbnB1dF90b2tlbnMsIGNhY2hlX3JlYWQg7Y+s7ZWoKeydtCB0aHJlc2hvbGQg7LSI6rO8IOyLnFxuICAgKiDstIjqs7zrtoTrp4zsnbQg7JWE64uI6528IOyalOyyrSDsoITssrQoZnVsbCBzZXNzaW9uKeyXkCDrsLDsnKgg7KCB7JqpLlxuICAgKi9cbiAgbG9uZ0NvbnRleHQ/OiB7XG4gICAgdGhyZXNob2xkOiBudW1iZXI7XG4gICAgaW5wdXRNdWx0aXBsaWVyOiBudW1iZXI7XG4gICAgY2FjaGVkSW5wdXRNdWx0aXBsaWVyOiBudW1iZXI7XG4gICAgb3V0cHV0TXVsdGlwbGllcjogbnVtYmVyO1xuICB9O1xufVxuXG4vLyDilIDilIAgT3BlbkFJIOKAlCBjb2RleCBhcHAtc2VydmVyIOyXkOyEnCDsgqzsmqkg6rCA64ql7ZWcIOuqqOuNuCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vXG4vLyDqsIDqsqkg7Lac7LKYOiBodHRwczovL29wZW5haS5jb20vYXBpL3ByaWNpbmcgKDIwMjYtMDYtMTEg7ZmV7J24KVxuLy8g7Iug66qo6424IOy2nOyLnOuniOuLpCDri6jqsIDqsIAg67CU64CM66+A66GcKDUuMuKGkjUuNOKGkjUuNSkg66qo6424IOy2lOqwgCDsi5wg67CY65Oc7IucIOqzteyLnSDtjpjsnbTsp4Ag7J6s7ZmV7J247ZW07JW87ZWoXG5cbi8vIEdQVC01LjTsl5DshJwg7LKY7J2MIOuPhOyeheuQnCBsb25nLWNvbnRleHQg7ZWg7KadICg1LjIvNS4zLWNvZGV464qUIO2VtOuLuSDsl4bsnYwsIDUuNC1taW5pL25hbm/ripQg6rO17IudIO2RnOyXkOyEnCBsb25nLWNvbnRleHQg64uo6rCAIOyXhuydjClcbi8vIDI3Mksg7LSI6rO8IOyLnCBpbnB1dCAyeCAvIGNhY2hlZCAyeCAvIG91dHB1dCAxLjV4IOKAlCDstIjqs7zrtoTrp4zsnbQg7JWE64uMIOyEuOyFmCDsoITssrTsl5Ag7KCB7Jqp65CoXG4vLyBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVycy5vcGVuYWkuY29tL2FwaS9kb2NzL21vZGVscy9ncHQtNS41IChcInByb21wdHMgd2l0aCA+MjcySyBpbnB1dCB0b2tlbnNcIilcbmNvbnN0IExPTkdfQ09OVEVYVF8yNzJLOiBOb25OdWxsYWJsZTxNb2RlbENvc3RzW1wibG9uZ0NvbnRleHRcIl0+ID0ge1xuICB0aHJlc2hvbGQ6IDI3Ml8wMDAsXG4gIGlucHV0TXVsdGlwbGllcjogMixcbiAgY2FjaGVkSW5wdXRNdWx0aXBsaWVyOiAyLFxuICBvdXRwdXRNdWx0aXBsaWVyOiAxLjUsXG59O1xuXG5jb25zdCBPUEVOQUlfQ09TVFM6IFJlY29yZDxzdHJpbmcsIE1vZGVsQ29zdHM+ID0ge1xuICAvLyBHUFQtNS42IFNvbCwgVGVycmEsIEx1bmEuIE9wZW5BSSBuYXRpdmUgQVBJIOuKlCAxLjA1TSBjb250ZXh0IC8gMTI4SyBtYXggb3V0cHV0IOydtOyngOunjCxcbiAgLy8gcWdyaWQg7J2YIGNvZGV4IGFwcC1zZXJ2ZXIg6rK966Gc64qUIGNvbnRleHRfd2luZG93PTM3MksgKG1heF9jb250ZXh0X3dpbmRvdyDrj4QgMzcySyxcbiAgLy8gZWZmZWN0aXZlIDk1JSDiiYggMzUzSykg66GcIOygnO2VnOuQnOuLpCDigJQgY29kZXggMC4xNDQuMSBtb2RlbHNfY2FjaGUg7Iuk7LihICgyMDI2LTA3LTEwKS5cbiAgLy8gY2FjaGUgd3JpdGUg64qUIHVuY2FjaGVkIGlucHV0IOydmCAxLjI1eCDroZwg6rO86riI65CY7KeA66eMLCBjb2RleCBhcHAtc2VydmVyIHVzYWdlXG4gIC8vIChUb2tlblVzYWdlQnJlYWtkb3duKSDsl5AgY2FjaGUgd3JpdGUg7Yag7YGwIO2VhOuTnOqwgCDsl4bslrQg7ZiE7J6sIE9wZW5BSSDsi6Ttlokg6rK966Gc7J2YXG4gIC8vIGNvc3Qg6rOE7IKw7JeQ7ISc64qUIO2VreyDgSAwIOycvOuhnCDsnqHtnozri6Qg4oaSIOq3uOunjO2BvCDqs7zshozsp5Hqs4QuIOuLqOqwgOuKlCDsmbjrtoAgbG9nZ2VyL21hbnVhbFxuICAvLyB1c2FnZSDsnoXroKXqs7wg7Zal7ZuEIO2UhOuhnO2GoOy9nCDtmZXsnqXsnYQg7JyE7ZW0IOycoOyngO2VnOuLpC5cbiAgLy8gQHNlZSBodHRwczovL2RldmVsb3BlcnMub3BlbmFpLmNvbS9hcGkvZG9jcy9tb2RlbHMvZ3B0LTUuNi1zb2xcbiAgLy8gQHNlZSBodHRwczovL2RldmVsb3BlcnMub3BlbmFpLmNvbS9hcGkvZG9jcy9tb2RlbHMvZ3B0LTUuNi10ZXJyYVxuICAvLyBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVycy5vcGVuYWkuY29tL2FwaS9kb2NzL21vZGVscy9ncHQtNS42LWx1bmFcbiAgXCJncHQtNS42LXNvbFwiOiB7XG4gICAgaW5wdXRUb2tlbnM6IDUsXG4gICAgb3V0cHV0VG9rZW5zOiAzMCxcbiAgICBjYWNoZWRJbnB1dFRva2VuczogMC41LFxuICAgIGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczogNi4yNSxcbiAgICBsb25nQ29udGV4dDogTE9OR19DT05URVhUXzI3MkssXG4gIH0sXG4gIFwiZ3B0LTUuNi10ZXJyYVwiOiB7XG4gICAgaW5wdXRUb2tlbnM6IDIuNSxcbiAgICBvdXRwdXRUb2tlbnM6IDE1LFxuICAgIGNhY2hlZElucHV0VG9rZW5zOiAwLjI1LFxuICAgIGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczogMy4xMjUsXG4gICAgbG9uZ0NvbnRleHQ6IExPTkdfQ09OVEVYVF8yNzJLLFxuICB9LFxuICBcImdwdC01LjYtbHVuYVwiOiB7XG4gICAgaW5wdXRUb2tlbnM6IDEsXG4gICAgb3V0cHV0VG9rZW5zOiA2LFxuICAgIGNhY2hlZElucHV0VG9rZW5zOiAwLjEsXG4gICAgY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zOiAxLjI1LFxuICAgIGxvbmdDb250ZXh0OiBMT05HX0NPTlRFWFRfMjcySyxcbiAgfSxcbiAgLy8gaHR0cHM6Ly9vcGVuYWkuY29tL2luZGV4L2ludHJvZHVjaW5nLWdwdC01LTUvICgyMDI2LTA0IOy2nOyLnClcbiAgXCJncHQtNS41XCI6IHtcbiAgICBpbnB1dFRva2VuczogNSxcbiAgICBvdXRwdXRUb2tlbnM6IDMwLFxuICAgIGNhY2hlZElucHV0VG9rZW5zOiAwLjUsXG4gICAgbG9uZ0NvbnRleHQ6IExPTkdfQ09OVEVYVF8yNzJLLFxuICB9LFxuICAvLyBodHRwczovL29wZW5haS5jb20vaW5kZXgvaW50cm9kdWNpbmctZ3B0LTUtNC8gKDIwMjYtMDMg7Lac7IucKVxuICBcImdwdC01LjRcIjoge1xuICAgIGlucHV0VG9rZW5zOiAyLjUsXG4gICAgb3V0cHV0VG9rZW5zOiAxNSxcbiAgICBjYWNoZWRJbnB1dFRva2VuczogMC4yNSxcbiAgICBsb25nQ29udGV4dDogTE9OR19DT05URVhUXzI3MkssXG4gIH0sXG4gIFwiZ3B0LTUuNC1taW5pXCI6IHsgaW5wdXRUb2tlbnM6IDAuNzUsIG91dHB1dFRva2VuczogNC41LCBjYWNoZWRJbnB1dFRva2VuczogMC4wNzUgfSxcbiAgLy8gZ3B0LTUuMuyZgCDrj5nsnbwg64uo6rCAIChjYWNoZWQgPSBpbnB1dOydmCAxMCUpXG4gIFwiZ3B0LTUuMy1jb2RleFwiOiB7IGlucHV0VG9rZW5zOiAxLjc1LCBvdXRwdXRUb2tlbnM6IDE0LCBjYWNoZWRJbnB1dFRva2VuczogMC4xNzUgfSxcbiAgLy8gaHR0cHM6Ly9vcGVuYWkuY29tL2luZGV4L2ludHJvZHVjaW5nLWdwdC01LTIvIChjYWNoZWQgaW5wdXQgOTAlIO2VoOyduCDrqoXsi5wpXG4gIFwiZ3B0LTUuMlwiOiB7IGlucHV0VG9rZW5zOiAxLjc1LCBvdXRwdXRUb2tlbnM6IDE0LCBjYWNoZWRJbnB1dFRva2VuczogMC4xNzUgfSxcbn07XG5cbi8vIOKUgOKUgCBBbnRocm9waWMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmNvbnN0IEFOVEhST1BJQ19DT1NUUzogUmVjb3JkPHN0cmluZywgTW9kZWxDb3N0cz4gPSB7XG4gIC8vIENsYXVkZSBDb2RlIOuKlCDrs4Trj4QgdHRsOlwiMWhcIiDsmLXshZgg7JeG7J20IOyLpO2WieuQmOuvgOuhnCBmYWxsYmFjayDqsIDqsqntkZzripQgNeu2hCBjYWNoZSB3cml0ZSgxLjI1eCnrpbwg6riw7KSA7Jy866GcIOuRlOuLpC5cbiAgLy8gMeyLnOqwhCBjYWNoZSB3cml0ZSDripQgaW5wdXQgMngg7J207KeA66eMIO2YhOyerCBxZ3JpZCDsi6Ttlokg6rK966Gc7J2YIOq4sOuzuOqwkuydtCDslYTri4jri6QuXG4gIHNvbm5ldDoge1xuICAgIGlucHV0VG9rZW5zOiAzLFxuICAgIG91dHB1dFRva2VuczogMTUsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IDAuMyxcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6IDMuNzUsXG4gIH0sXG4gIFwiY2xhdWRlLTMtNS1oYWlrdVwiOiB7XG4gICAgaW5wdXRUb2tlbnM6IDAuOCxcbiAgICBvdXRwdXRUb2tlbnM6IDQsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IDAuMDgsXG4gICAgY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zOiAxLFxuICB9LFxuICBcImNsYXVkZS1oYWlrdS00LTVcIjoge1xuICAgIGlucHV0VG9rZW5zOiAxLFxuICAgIG91dHB1dFRva2VuczogNSxcbiAgICBjYWNoZWRJbnB1dFRva2VuczogMC4xLFxuICAgIGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczogMS4yNSxcbiAgfSxcbiAgXCJjbGF1ZGUtMy01LXNvbm5ldFwiOiB7XG4gICAgaW5wdXRUb2tlbnM6IDMsXG4gICAgb3V0cHV0VG9rZW5zOiAxNSxcbiAgICBjYWNoZWRJbnB1dFRva2VuczogMC4zLFxuICAgIGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczogMy43NSxcbiAgfSxcbiAgXCJjbGF1ZGUtMy03LXNvbm5ldFwiOiB7XG4gICAgaW5wdXRUb2tlbnM6IDMsXG4gICAgb3V0cHV0VG9rZW5zOiAxNSxcbiAgICBjYWNoZWRJbnB1dFRva2VuczogMC4zLFxuICAgIGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczogMy43NSxcbiAgfSxcbiAgXCJjbGF1ZGUtc29ubmV0LTRcIjoge1xuICAgIGlucHV0VG9rZW5zOiAzLFxuICAgIG91dHB1dFRva2VuczogMTUsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IDAuMyxcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6IDMuNzUsXG4gIH0sXG4gIFwiY2xhdWRlLXNvbm5ldC00LTVcIjoge1xuICAgIGlucHV0VG9rZW5zOiAzLFxuICAgIG91dHB1dFRva2VuczogMTUsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IDAuMyxcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6IDMuNzUsXG4gIH0sXG4gIFwiY2xhdWRlLXNvbm5ldC00LTZcIjoge1xuICAgIGlucHV0VG9rZW5zOiAzLFxuICAgIG91dHB1dFRva2VuczogMTUsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IDAuMyxcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6IDMuNzUsXG4gIH0sXG4gIFwiY2xhdWRlLXNvbm5ldC00LTdcIjoge1xuICAgIGlucHV0VG9rZW5zOiAzLFxuICAgIG91dHB1dFRva2VuczogMTUsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IDAuMyxcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6IDMuNzUsXG4gIH0sXG4gIFwiY2xhdWRlLW9wdXMtNFwiOiB7XG4gICAgaW5wdXRUb2tlbnM6IDE1LFxuICAgIG91dHB1dFRva2VuczogNzUsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IDEuNSxcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6IDE4Ljc1LFxuICB9LFxuICBcImNsYXVkZS1vcHVzLTQtMVwiOiB7XG4gICAgaW5wdXRUb2tlbnM6IDE1LFxuICAgIG91dHB1dFRva2VuczogNzUsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IDEuNSxcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6IDE4Ljc1LFxuICB9LFxuICBcImNsYXVkZS1vcHVzLTQtNVwiOiB7XG4gICAgaW5wdXRUb2tlbnM6IDUsXG4gICAgb3V0cHV0VG9rZW5zOiAyNSxcbiAgICBjYWNoZWRJbnB1dFRva2VuczogMC41LFxuICAgIGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczogNi4yNSxcbiAgfSxcbiAgXCJjbGF1ZGUtb3B1cy00LTZcIjoge1xuICAgIGlucHV0VG9rZW5zOiA1LFxuICAgIG91dHB1dFRva2VuczogMjUsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IDAuNSxcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6IDYuMjUsXG4gIH0sXG4gIFwiY2xhdWRlLW9wdXMtNC03XCI6IHtcbiAgICBpbnB1dFRva2VuczogNSxcbiAgICBvdXRwdXRUb2tlbnM6IDI1LFxuICAgIGNhY2hlZElucHV0VG9rZW5zOiAwLjUsXG4gICAgY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zOiA2LjI1LFxuICB9LFxuICBcImNsYXVkZS1vcHVzLTQtOFwiOiB7XG4gICAgaW5wdXRUb2tlbnM6IDUsXG4gICAgb3V0cHV0VG9rZW5zOiAyNSxcbiAgICBjYWNoZWRJbnB1dFRva2VuczogMC41LFxuICAgIGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczogNi4yNSxcbiAgfSxcbn07XG5cbmNvbnN0IERFRkFVTFRfQ09TVFM6IE1vZGVsQ29zdHMgPSB7IGlucHV0VG9rZW5zOiAzLCBvdXRwdXRUb2tlbnM6IDE1LCBjYWNoZWRJbnB1dFRva2VuczogMC4zIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2RlbENvc3RzKG1vZGVsOiBzdHJpbmcpOiBNb2RlbENvc3RzIHtcbiAgY29uc3Qgbm9ybWFsaXplZE1vZGVsID0gbW9kZWwucmVwbGFjZSgvXFxbMW1cXF0kL2ksIFwiXCIpO1xuICByZXR1cm4gT1BFTkFJX0NPU1RTW25vcm1hbGl6ZWRNb2RlbF0gPz8gQU5USFJPUElDX0NPU1RTW25vcm1hbGl6ZWRNb2RlbF0gPz8gREVGQVVMVF9DT1NUUztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUNvc3RVc2QoXG4gIG1vZGVsOiBzdHJpbmcsXG4gIHVzYWdlOiB7XG4gICAgaW5wdXRUb2tlbnM6IG51bWJlcjtcbiAgICBvdXRwdXRUb2tlbnM6IG51bWJlcjtcbiAgICBjYWNoZWRJbnB1dFRva2Vucz86IG51bWJlcjtcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM/OiBudW1iZXI7XG4gIH0sXG4pOiBudW1iZXIge1xuICBjb25zdCBjb3N0cyA9IGdldE1vZGVsQ29zdHMobW9kZWwpO1xuICBjb25zdCBjYWNoZWRJbnB1dCA9IHVzYWdlLmNhY2hlZElucHV0VG9rZW5zID8/IDA7XG4gIGNvbnN0IGNhY2hlQ3JlYXRpb25JbnB1dCA9IHVzYWdlLmNhY2hlQ3JlYXRpb25JbnB1dFRva2VucyA/PyAwO1xuICBjb25zdCBub25DYWNoZWRJbnB1dCA9IE1hdGgubWF4KHVzYWdlLmlucHV0VG9rZW5zIC0gY2FjaGVkSW5wdXQgLSBjYWNoZUNyZWF0aW9uSW5wdXQsIDApO1xuXG4gIC8vIGxvbmctY29udGV4dCDtlaDspp06IOyghOyytCDsnoXroKUoaW5wdXRfdG9rZW5zLCBjYWNoZSDtj6ztlagp7J20IHRocmVzaG9sZCDstIjqs7wg7IucIOyalOyyrSDsoITssrTsl5Ag67Cw7JyoIOyggeyaqVxuICBjb25zdCBsYyA9IGNvc3RzLmxvbmdDb250ZXh0O1xuICBjb25zdCBpc0xvbmdDb250ZXh0ID0gbGMgIT09IHVuZGVmaW5lZCAmJiB1c2FnZS5pbnB1dFRva2VucyA+IGxjLnRocmVzaG9sZDtcbiAgY29uc3QgaW5wdXRSYXRlID0gY29zdHMuaW5wdXRUb2tlbnMgKiAoaXNMb25nQ29udGV4dCA/IGxjLmlucHV0TXVsdGlwbGllciA6IDEpO1xuICBjb25zdCBjYWNoZWRSYXRlID0gY29zdHMuY2FjaGVkSW5wdXRUb2tlbnMgKiAoaXNMb25nQ29udGV4dCA/IGxjLmNhY2hlZElucHV0TXVsdGlwbGllciA6IDEpO1xuICBjb25zdCBjYWNoZUNyZWF0aW9uUmF0ZSA9XG4gICAgKGNvc3RzLmNhY2hlQ3JlYXRpb25JbnB1dFRva2VucyA/PyBjb3N0cy5pbnB1dFRva2VucykgKlxuICAgIChpc0xvbmdDb250ZXh0ID8gbGMuaW5wdXRNdWx0aXBsaWVyIDogMSk7XG4gIGNvbnN0IG91dHB1dFJhdGUgPSBjb3N0cy5vdXRwdXRUb2tlbnMgKiAoaXNMb25nQ29udGV4dCA/IGxjLm91dHB1dE11bHRpcGxpZXIgOiAxKTtcblxuICByZXR1cm4gKFxuICAgIChub25DYWNoZWRJbnB1dCAvIDFfMDAwXzAwMCkgKiBpbnB1dFJhdGUgK1xuICAgICh1c2FnZS5vdXRwdXRUb2tlbnMgLyAxXzAwMF8wMDApICogb3V0cHV0UmF0ZSArXG4gICAgKGNhY2hlZElucHV0IC8gMV8wMDBfMDAwKSAqIGNhY2hlZFJhdGUgK1xuICAgIChjYWNoZUNyZWF0aW9uSW5wdXQgLyAxXzAwMF8wMDApICogY2FjaGVDcmVhdGlvblJhdGVcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFxQ0EsTUFBTSxvQkFBNEQ7Q0FDaEUsV0FBVztDQUNYLGlCQUFpQjtDQUNqQix1QkFBdUI7Q0FDdkIsa0JBQWtCO0NBQ25CO0FBRUQsTUFBTSxlQUEyQztDQVcvQyxlQUFlO0VBQ2IsYUFBYTtFQUNiLGNBQWM7RUFDZCxtQkFBbUI7RUFDbkIsMEJBQTBCO0VBQzFCLGFBQWE7RUFDZDtDQUNELGlCQUFpQjtFQUNmLGFBQWE7RUFDYixjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQixhQUFhO0VBQ2Q7Q0FDRCxnQkFBZ0I7RUFDZCxhQUFhO0VBQ2IsY0FBYztFQUNkLG1CQUFtQjtFQUNuQiwwQkFBMEI7RUFDMUIsYUFBYTtFQUNkO0NBRUQsV0FBVztFQUNULGFBQWE7RUFDYixjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLGFBQWE7RUFDZDtDQUVELFdBQVc7RUFDVCxhQUFhO0VBQ2IsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2Q7Q0FDRCxnQkFBZ0I7RUFBRSxhQUFhO0VBQU0sY0FBYztFQUFLLG1CQUFtQjtFQUFPO0NBRWxGLGlCQUFpQjtFQUFFLGFBQWE7RUFBTSxjQUFjO0VBQUksbUJBQW1CO0VBQU87Q0FFbEYsV0FBVztFQUFFLGFBQWE7RUFBTSxjQUFjO0VBQUksbUJBQW1CO0VBQU87Q0FDN0U7QUFJRCxNQUFNLGtCQUE4QztDQUdsRCxRQUFRO0VBQ04sYUFBYTtFQUNiLGNBQWM7RUFDZCxtQkFBbUI7RUFDbkIsMEJBQTBCO0VBQzNCO0NBQ0Qsb0JBQW9CO0VBQ2xCLGFBQWE7RUFDYixjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMzQjtDQUNELG9CQUFvQjtFQUNsQixhQUFhO0VBQ2IsY0FBYztFQUNkLG1CQUFtQjtFQUNuQiwwQkFBMEI7RUFDM0I7Q0FDRCxxQkFBcUI7RUFDbkIsYUFBYTtFQUNiLGNBQWM7RUFDZCxtQkFBbUI7RUFDbkIsMEJBQTBCO0VBQzNCO0NBQ0QscUJBQXFCO0VBQ25CLGFBQWE7RUFDYixjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMzQjtDQUNELG1CQUFtQjtFQUNqQixhQUFhO0VBQ2IsY0FBYztFQUNkLG1CQUFtQjtFQUNuQiwwQkFBMEI7RUFDM0I7Q0FDRCxxQkFBcUI7RUFDbkIsYUFBYTtFQUNiLGNBQWM7RUFDZCxtQkFBbUI7RUFDbkIsMEJBQTBCO0VBQzNCO0NBQ0QscUJBQXFCO0VBQ25CLGFBQWE7RUFDYixjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMzQjtDQUNELHFCQUFxQjtFQUNuQixhQUFhO0VBQ2IsY0FBYztFQUNkLG1CQUFtQjtFQUNuQiwwQkFBMEI7RUFDM0I7Q0FDRCxpQkFBaUI7RUFDZixhQUFhO0VBQ2IsY0FBYztFQUNkLG1CQUFtQjtFQUNuQiwwQkFBMEI7RUFDM0I7Q0FDRCxtQkFBbUI7RUFDakIsYUFBYTtFQUNiLGNBQWM7RUFDZCxtQkFBbUI7RUFDbkIsMEJBQTBCO0VBQzNCO0NBQ0QsbUJBQW1CO0VBQ2pCLGFBQWE7RUFDYixjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMzQjtDQUNELG1CQUFtQjtFQUNqQixhQUFhO0VBQ2IsY0FBYztFQUNkLG1CQUFtQjtFQUNuQiwwQkFBMEI7RUFDM0I7Q0FDRCxtQkFBbUI7RUFDakIsYUFBYTtFQUNiLGNBQWM7RUFDZCxtQkFBbUI7RUFDbkIsMEJBQTBCO0VBQzNCO0NBQ0QsbUJBQW1CO0VBQ2pCLGFBQWE7RUFDYixjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMzQjtDQUNGO0FBRUQsTUFBTSxnQkFBNEI7Q0FBRSxhQUFhO0NBQUcsY0FBYztDQUFJLG1CQUFtQjtDQUFLO0FBRTlGLFNBQWdCLGNBQWMsT0FBMkI7Q0FDdkQsTUFBTSxrQkFBa0IsTUFBTSxRQUFRLFlBQVksR0FBRztBQUNyRCxRQUFPLGFBQWEsb0JBQW9CLGdCQUFnQixvQkFBb0I7O0FBRzlFLFNBQWdCLGlCQUNkLE9BQ0EsT0FNUTtDQUNSLE1BQU0sUUFBUSxjQUFjLE1BQU07Q0FDbEMsTUFBTSxjQUFjLE1BQU0scUJBQXFCO0NBQy9DLE1BQU0scUJBQXFCLE1BQU0sNEJBQTRCO0NBQzdELE1BQU0saUJBQWlCLEtBQUssSUFBSSxNQUFNLGNBQWMsY0FBYyxvQkFBb0IsRUFBRTtDQUd4RixNQUFNLEtBQUssTUFBTTtDQUNqQixNQUFNLGdCQUFnQixPQUFPLFVBQWEsTUFBTSxjQUFjLEdBQUc7Q0FDakUsTUFBTSxZQUFZLE1BQU0sZUFBZSxnQkFBZ0IsR0FBRyxrQkFBa0I7Q0FDNUUsTUFBTSxhQUFhLE1BQU0scUJBQXFCLGdCQUFnQixHQUFHLHdCQUF3QjtDQUN6RixNQUFNLHFCQUNILE1BQU0sNEJBQTRCLE1BQU0sZ0JBQ3hDLGdCQUFnQixHQUFHLGtCQUFrQjtDQUN4QyxNQUFNLGFBQWEsTUFBTSxnQkFBZ0IsZ0JBQWdCLEdBQUcsbUJBQW1CO0FBRS9FLFFBQ0csaUJBQWlCLE1BQWEsWUFDOUIsTUFBTSxlQUFlLE1BQWEsYUFDbEMsY0FBYyxNQUFhLGFBQzNCLHFCQUFxQixNQUFhIn0=
123
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtY29zdC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvcHJvdmlkZXJzL2NvbW1vbi9tb2RlbC1jb3N0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog66qo642467OEIO2GoO2BsCDqsIDqsqkg7YWM7J2067iUICsgY29zdCDqs4TsgrAuXG4gKlxuICogY2xhdWRlIGNvZGUg7JmAIOuPmeydvCDtjKjthLQ6IO2BtOudvOydtOyWuO2KuOyXkOyEnCDqsIDqsqkg7YWM7J2067iU66GcIOyngeygkSDqs4TsgrAuXG4gKiDqsIDqsqkg64uo7JyEOiBVU0QgcGVyIDFNIHRva2Vucy5cbiAqXG4gKiBPcGVuQUkg66qo6424IOuqqeuhnTogY29kZXggYXBwLXNlcnZlciBtb2RlbC9saXN0IFJQQyDroZwg7Iuk7LihICgyMDI2LTA1LTE4KVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9wbGF0Zm9ybS5vcGVuYWkuY29tL2RvY3MvcHJpY2luZ1xuICogQHNlZSBodHRwczovL3BsYXRmb3JtLmNsYXVkZS5jb20vZG9jcy9lbi9hYm91dC1jbGF1ZGUvcHJpY2luZ1xuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxDb3N0cyB7XG4gIGlucHV0VG9rZW5zOiBudW1iZXI7XG4gIG91dHB1dFRva2VuczogbnVtYmVyO1xuICBjYWNoZWRJbnB1dFRva2VuczogbnVtYmVyO1xuICAvKiogVFRMIGJyZWFrZG93biDsnbQg7JeG64qUIHVzYWdlIOyXkCDsoIHsmqntlaAgY2FjaGUgd3JpdGUgZmFsbGJhY2sg64uo6rCALiAqL1xuICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM/OiBudW1iZXI7XG4gIGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczVtPzogbnVtYmVyO1xuICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnMxaD86IG51bWJlcjtcbiAgLyoqXG4gICAqIGxvbmctY29udGV4dCDtlaDspp0uIOyghOyytCDsnoXroKUg7Yag7YGwKGlucHV0X3Rva2VucywgY2FjaGVfcmVhZCDtj6ztlagp7J20IHRocmVzaG9sZCDstIjqs7wg7IucXG4gICAqIOy0iOqzvOu2hOunjOydtCDslYTri4jrnbwg7JqU7LKtIOyghOyytChmdWxsIHNlc3Npb24p7JeQIOuwsOycqCDsoIHsmqkuXG4gICAqL1xuICBsb25nQ29udGV4dD86IHtcbiAgICB0aHJlc2hvbGQ6IG51bWJlcjtcbiAgICBpbnB1dE11bHRpcGxpZXI6IG51bWJlcjtcbiAgICBjYWNoZWRJbnB1dE11bHRpcGxpZXI6IG51bWJlcjtcbiAgICBvdXRwdXRNdWx0aXBsaWVyOiBudW1iZXI7XG4gIH07XG59XG5cbi8vIOKUgOKUgCBPcGVuQUkg4oCUIGNvZGV4IGFwcC1zZXJ2ZXIg7JeQ7IScIOyCrOyaqSDqsIDriqXtlZwg66qo6424IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy9cbi8vIOqwgOqyqSDstpzsspg6IGh0dHBzOi8vZGV2ZWxvcGVycy5vcGVuYWkuY29tL2FwaS9kb2NzL21vZGVscyAoMjAyNi0wNy0xOCDtmZXsnbgpXG4vLyDsi6Drqqjrjbgg7Lac7Iuc66eI64ukIOuLqOqwgOqwgCDrsJTrgIzrr4DroZwoNS4y4oaSNS404oaSNS41KSDrqqjrjbgg7LaU6rCAIOyLnCDrsJjrk5zsi5wg6rO17IudIO2OmOydtOyngCDsnqztmZXsnbjtlbTslbztlahcblxuLy8gR1BULTUuNOyXkOyEnCDsspjsnYwg64+E7J6F65CcIGxvbmctY29udGV4dCDtlaDspp0gKDUuMi81LjMtY29kZXjripQg7ZW064u5IOyXhuydjCwgNS40LW1pbmkvbmFub+uKlCDqs7Xsi50g7ZGc7JeQ7IScIGxvbmctY29udGV4dCDri6jqsIAg7JeG7J2MKVxuLy8gMjcySyDstIjqs7wg7IucIGlucHV0IDJ4IC8gY2FjaGVkIDJ4IC8gb3V0cHV0IDEuNXgg4oCUIOy0iOqzvOu2hOunjOydtCDslYTri4wg7IS47IWYIOyghOyytOyXkCDsoIHsmqnrkKhcbi8vIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXJzLm9wZW5haS5jb20vYXBpL2RvY3MvbW9kZWxzL2dwdC01LjUgKFwicHJvbXB0cyB3aXRoID4yNzJLIGlucHV0IHRva2Vuc1wiKVxuY29uc3QgTE9OR19DT05URVhUXzI3Mks6IE5vbk51bGxhYmxlPE1vZGVsQ29zdHNbXCJsb25nQ29udGV4dFwiXT4gPSB7XG4gIHRocmVzaG9sZDogMjcyXzAwMCxcbiAgaW5wdXRNdWx0aXBsaWVyOiAyLFxuICBjYWNoZWRJbnB1dE11bHRpcGxpZXI6IDIsXG4gIG91dHB1dE11bHRpcGxpZXI6IDEuNSxcbn07XG5cbmNvbnN0IE9QRU5BSV9DT1NUUzogUmVjb3JkPHN0cmluZywgTW9kZWxDb3N0cz4gPSB7XG4gIC8vIEdQVC01LjYgU29sLCBUZXJyYSwgTHVuYS4gT3BlbkFJIG5hdGl2ZSBBUEkg64qUIDEuMDVNIGNvbnRleHQgLyAxMjhLIG1heCBvdXRwdXQg7J207KeA66eMLFxuICAvLyBxZ3JpZCDsnZggY29kZXggYXBwLXNlcnZlciDqsr3roZzripQgY29udGV4dF93aW5kb3c9MzcySyAobWF4X2NvbnRleHRfd2luZG93IOuPhCAzNzJLLFxuICAvLyBlZmZlY3RpdmUgOTUlIOKJiCAzNTNLKSDroZwg7KCc7ZWc65Cc64ukIOKAlCBjb2RleCAwLjE0NC4xIG1vZGVsc19jYWNoZSDsi6TsuKEgKDIwMjYtMDctMTApLlxuICAvLyBjYWNoZSB3cml0ZSDripQgdW5jYWNoZWQgaW5wdXQg7J2YIDEuMjV4IOuhnCDqs7zquIjrkJjsp4Drp4wsIGNvZGV4IGFwcC1zZXJ2ZXIgdXNhZ2VcbiAgLy8gKFRva2VuVXNhZ2VCcmVha2Rvd24pIOyXkCBjYWNoZSB3cml0ZSDthqDtgbAg7ZWE65Oc6rCAIOyXhuyWtCDtmITsnqwgT3BlbkFJIOyLpO2WiSDqsr3roZzsnZhcbiAgLy8gY29zdCDqs4TsgrDsl5DshJzripQg7ZWt7IOBIDAg7Jy866GcIOyeoe2ejOuLpCDihpIg6re466eM7YG8IOqzvOyGjOynkeqzhC4g64uo6rCA64qUIOyZuOu2gCBsb2dnZXIvbWFudWFsXG4gIC8vIHVzYWdlIOyeheugpeqzvCDtlqXtm4Qg7ZSE66Gc7Yag7L2cIO2ZleyepeydhCDsnITtlbQg7Jyg7KeA7ZWc64ukLlxuICAvLyBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVycy5vcGVuYWkuY29tL2FwaS9kb2NzL21vZGVscy9ncHQtNS42LXNvbFxuICAvLyBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVycy5vcGVuYWkuY29tL2FwaS9kb2NzL21vZGVscy9ncHQtNS42LXRlcnJhXG4gIC8vIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXJzLm9wZW5haS5jb20vYXBpL2RvY3MvbW9kZWxzL2dwdC01LjYtbHVuYVxuICBcImdwdC01LjYtc29sXCI6IHtcbiAgICBpbnB1dFRva2VuczogNSxcbiAgICBvdXRwdXRUb2tlbnM6IDMwLFxuICAgIGNhY2hlZElucHV0VG9rZW5zOiAwLjUsXG4gICAgY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zOiA2LjI1LFxuICAgIGxvbmdDb250ZXh0OiBMT05HX0NPTlRFWFRfMjcySyxcbiAgfSxcbiAgXCJncHQtNS42LXRlcnJhXCI6IHtcbiAgICBpbnB1dFRva2VuczogMi41LFxuICAgIG91dHB1dFRva2VuczogMTUsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IDAuMjUsXG4gICAgY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zOiAzLjEyNSxcbiAgICBsb25nQ29udGV4dDogTE9OR19DT05URVhUXzI3MkssXG4gIH0sXG4gIFwiZ3B0LTUuNi1sdW5hXCI6IHtcbiAgICBpbnB1dFRva2VuczogMSxcbiAgICBvdXRwdXRUb2tlbnM6IDYsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IDAuMSxcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6IDEuMjUsXG4gICAgbG9uZ0NvbnRleHQ6IExPTkdfQ09OVEVYVF8yNzJLLFxuICB9LFxuICAvLyBodHRwczovL29wZW5haS5jb20vaW5kZXgvaW50cm9kdWNpbmctZ3B0LTUtNS8gKDIwMjYtMDQg7Lac7IucKVxuICBcImdwdC01LjVcIjoge1xuICAgIGlucHV0VG9rZW5zOiA1LFxuICAgIG91dHB1dFRva2VuczogMzAsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IDAuNSxcbiAgICBsb25nQ29udGV4dDogTE9OR19DT05URVhUXzI3MkssXG4gIH0sXG4gIC8vIGh0dHBzOi8vb3BlbmFpLmNvbS9pbmRleC9pbnRyb2R1Y2luZy1ncHQtNS00LyAoMjAyNi0wMyDstpzsi5wpXG4gIFwiZ3B0LTUuNFwiOiB7XG4gICAgaW5wdXRUb2tlbnM6IDIuNSxcbiAgICBvdXRwdXRUb2tlbnM6IDE1LFxuICAgIGNhY2hlZElucHV0VG9rZW5zOiAwLjI1LFxuICAgIGxvbmdDb250ZXh0OiBMT05HX0NPTlRFWFRfMjcySyxcbiAgfSxcbiAgXCJncHQtNS40LW1pbmlcIjogeyBpbnB1dFRva2VuczogMC43NSwgb3V0cHV0VG9rZW5zOiA0LjUsIGNhY2hlZElucHV0VG9rZW5zOiAwLjA3NSB9LFxuICAvLyBncHQtNS4y7JmAIOuPmeydvCDri6jqsIAgKGNhY2hlZCA9IGlucHV07J2YIDEwJSlcbiAgXCJncHQtNS4zLWNvZGV4XCI6IHsgaW5wdXRUb2tlbnM6IDEuNzUsIG91dHB1dFRva2VuczogMTQsIGNhY2hlZElucHV0VG9rZW5zOiAwLjE3NSB9LFxuICAvLyBodHRwczovL29wZW5haS5jb20vaW5kZXgvaW50cm9kdWNpbmctZ3B0LTUtMi8gKGNhY2hlZCBpbnB1dCA5MCUg7ZWg7J24IOuqheyLnClcbiAgXCJncHQtNS4yXCI6IHsgaW5wdXRUb2tlbnM6IDEuNzUsIG91dHB1dFRva2VuczogMTQsIGNhY2hlZElucHV0VG9rZW5zOiAwLjE3NSB9LFxufTtcblxuLy8g4pSA4pSAIEFudGhyb3BpYyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZnVuY3Rpb24gYW50aHJvcGljQ29zdHMoaW5wdXRUb2tlbnM6IG51bWJlciwgb3V0cHV0VG9rZW5zOiBudW1iZXIpOiBNb2RlbENvc3RzIHtcbiAgcmV0dXJuIHtcbiAgICBpbnB1dFRva2VucyxcbiAgICBvdXRwdXRUb2tlbnMsXG4gICAgY2FjaGVkSW5wdXRUb2tlbnM6IGlucHV0VG9rZW5zIC8gMTAsXG4gICAgLy8gQ2xhdWRlIENvZGUgc3Vic2NyaXB0aW9uIE9BdXRoIOuKlCAxaCBUVEwg7J2EIOyekOuPmSDshKDtg53tlZzri6QuIOq1rOuyhOyghOyymOufvCDsnZHri7Xsl5BcbiAgICAvLyBUVEwgYnJlYWtkb3duIOydtCDsl4bsnYQg65WM66eMIOydtCAxaCDri6jqsIDrpbwgZmFsbGJhY2sg7Jy866GcIOyCrOyaqe2VnOuLpC5cbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6IGlucHV0VG9rZW5zICogMixcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM1bTogaW5wdXRUb2tlbnMgKiAxLjI1LFxuICAgIGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczFoOiBpbnB1dFRva2VucyAqIDIsXG4gIH07XG59XG5cbmNvbnN0IEFOVEhST1BJQ19DT1NUUzogUmVjb3JkPHN0cmluZywgTW9kZWxDb3N0cz4gPSB7XG4gIFwiY2xhdWRlLWZhYmxlLTVcIjogYW50aHJvcGljQ29zdHMoMTAsIDUwKSxcbiAgc29ubmV0OiBhbnRocm9waWNDb3N0cygzLCAxNSksXG4gIFwiY2xhdWRlLTMtNS1oYWlrdVwiOiBhbnRocm9waWNDb3N0cygwLjgsIDQpLFxuICBcImNsYXVkZS1oYWlrdS00LTVcIjogYW50aHJvcGljQ29zdHMoMSwgNSksXG4gIFwiY2xhdWRlLTMtNS1zb25uZXRcIjogYW50aHJvcGljQ29zdHMoMywgMTUpLFxuICBcImNsYXVkZS0zLTctc29ubmV0XCI6IGFudGhyb3BpY0Nvc3RzKDMsIDE1KSxcbiAgXCJjbGF1ZGUtc29ubmV0LTRcIjogYW50aHJvcGljQ29zdHMoMywgMTUpLFxuICBcImNsYXVkZS1zb25uZXQtNC01XCI6IGFudGhyb3BpY0Nvc3RzKDMsIDE1KSxcbiAgXCJjbGF1ZGUtc29ubmV0LTQtNlwiOiBhbnRocm9waWNDb3N0cygzLCAxNSksXG4gIFwiY2xhdWRlLXNvbm5ldC00LTdcIjogYW50aHJvcGljQ29zdHMoMywgMTUpLFxuICBcImNsYXVkZS1vcHVzLTRcIjogYW50aHJvcGljQ29zdHMoMTUsIDc1KSxcbiAgXCJjbGF1ZGUtb3B1cy00LTFcIjogYW50aHJvcGljQ29zdHMoMTUsIDc1KSxcbiAgXCJjbGF1ZGUtb3B1cy00LTVcIjogYW50aHJvcGljQ29zdHMoNSwgMjUpLFxuICBcImNsYXVkZS1vcHVzLTQtNlwiOiBhbnRocm9waWNDb3N0cyg1LCAyNSksXG4gIFwiY2xhdWRlLW9wdXMtNC03XCI6IGFudGhyb3BpY0Nvc3RzKDUsIDI1KSxcbiAgXCJjbGF1ZGUtb3B1cy00LThcIjogYW50aHJvcGljQ29zdHMoNSwgMjUpLFxuICBcImNsYXVkZS1vcHVzLTVcIjogYW50aHJvcGljQ29zdHMoNSwgMjUpLFxufTtcblxuLy8gQW50aHJvcGljIOqzteyLnSBpbnRyb2R1Y3RvcnkgcHJpY2luZzogMjAyNi0wOC0zMeq5jOyngCAkMi8kMTAsIOydtO2bhCAkMy8kMTUuXG4vLyBxZ3JpZCDripQg7JqU7LKtIOyLnOygkOyXkCDqs4TsgrDtlZjrr4DroZwg67Cw7Y+s66W8IOuLpOyLnCDtlZjsp4Ag7JWK7JWE64+EIDIwMjYtMDktMDEgVVRD67aA7YSwIO2RnOykgCDri6jqsIDroZwg7KCE7ZmY7ZWc64ukLlxuY29uc3QgQ0xBVURFX1NPTk5FVF81X0lOVFJPX1BSSUNJTkdfRU5EX01TID0gRGF0ZS5VVEMoMjAyNiwgOCwgMSk7XG5jb25zdCBDTEFVREVfU09OTkVUXzVfSU5UUk9fQ09TVFMgPSBhbnRocm9waWNDb3N0cygyLCAxMCk7XG5jb25zdCBDTEFVREVfU09OTkVUXzVfU1RBTkRBUkRfQ09TVFMgPSBhbnRocm9waWNDb3N0cygzLCAxNSk7XG5cbi8vIGdwdC01LjMtY29kZXgtc3Bhcmsg64qUIHJlc2VhcmNoIHByZXZpZXcg66GcIOqzteyLnSB0b2tlbiDri6jqsIDqsIAg7JWE7KeBIGZpbmFsIOydtCDslYTri4jri6QuXG4vLyDsp4Dsm5Ag7YOA7J6F7J2AIOycoOyngO2VmOuQmCwg6rO17IudIOuLqOqwgOqwgCDqs7XqsJzrkKAg65WM6rmM7KeAIOyVhOuemCBnZW5lcmljIGVzdGltYXRlIOuhnCDqs4TsgrDtlZzri6QuXG4vLyBAc2VlIGh0dHBzOi8vaGVscC5vcGVuYWkuY29tL2VuL2FydGljbGVzLzIwMDAxMTA2LWNvZGV4LXJhdGUtY2FyZFxuY29uc3QgREVGQVVMVF9DT1NUUzogTW9kZWxDb3N0cyA9IHsgaW5wdXRUb2tlbnM6IDMsIG91dHB1dFRva2VuczogMTUsIGNhY2hlZElucHV0VG9rZW5zOiAwLjMgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vZGVsQ29zdHMobW9kZWw6IHN0cmluZywgYXRNcyA9IERhdGUubm93KCkpOiBNb2RlbENvc3RzIHtcbiAgY29uc3Qgbm9ybWFsaXplZE1vZGVsID0gKG1vZGVsLnNwbGl0KFwiL1wiKS5wb3AoKSA/PyBtb2RlbCkucmVwbGFjZSgvXFxbMW1cXF0kL2ksIFwiXCIpO1xuICBpZiAobm9ybWFsaXplZE1vZGVsID09PSBcImNsYXVkZS1zb25uZXQtNVwiKSB7XG4gICAgcmV0dXJuIGF0TXMgPCBDTEFVREVfU09OTkVUXzVfSU5UUk9fUFJJQ0lOR19FTkRfTVNcbiAgICAgID8gQ0xBVURFX1NPTk5FVF81X0lOVFJPX0NPU1RTXG4gICAgICA6IENMQVVERV9TT05ORVRfNV9TVEFOREFSRF9DT1NUUztcbiAgfVxuICByZXR1cm4gT1BFTkFJX0NPU1RTW25vcm1hbGl6ZWRNb2RlbF0gPz8gQU5USFJPUElDX0NPU1RTW25vcm1hbGl6ZWRNb2RlbF0gPz8gREVGQVVMVF9DT1NUUztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUNvc3RVc2QoXG4gIG1vZGVsOiBzdHJpbmcsXG4gIHVzYWdlOiB7XG4gICAgaW5wdXRUb2tlbnM6IG51bWJlcjtcbiAgICBvdXRwdXRUb2tlbnM6IG51bWJlcjtcbiAgICBjYWNoZWRJbnB1dFRva2Vucz86IG51bWJlcjtcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM/OiBudW1iZXI7XG4gICAgY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zNW0/OiBudW1iZXI7XG4gICAgY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zMWg/OiBudW1iZXI7XG4gIH0sXG4gIGF0TXMgPSBEYXRlLm5vdygpLFxuKTogbnVtYmVyIHtcbiAgY29uc3QgY29zdHMgPSBnZXRNb2RlbENvc3RzKG1vZGVsLCBhdE1zKTtcbiAgY29uc3QgY2FjaGVkSW5wdXQgPSB1c2FnZS5jYWNoZWRJbnB1dFRva2VucyA/PyAwO1xuICBjb25zdCBjYWNoZUNyZWF0aW9uSW5wdXQ1bSA9IE1hdGgubWF4KHVzYWdlLmNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczVtID8/IDAsIDApO1xuICBjb25zdCBjYWNoZUNyZWF0aW9uSW5wdXQxaCA9IE1hdGgubWF4KHVzYWdlLmNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczFoID8/IDAsIDApO1xuICBjb25zdCBjYWNoZUNyZWF0aW9uSW5wdXQgPSBNYXRoLm1heChcbiAgICB1c2FnZS5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnMgPz8gMCxcbiAgICBjYWNoZUNyZWF0aW9uSW5wdXQ1bSArIGNhY2hlQ3JlYXRpb25JbnB1dDFoLFxuICApO1xuICBjb25zdCBjbGFzc2lmaWVkQ2FjaGVDcmVhdGlvbklucHV0NW0gPSBNYXRoLm1pbihjYWNoZUNyZWF0aW9uSW5wdXQ1bSwgY2FjaGVDcmVhdGlvbklucHV0KTtcbiAgY29uc3QgY2xhc3NpZmllZENhY2hlQ3JlYXRpb25JbnB1dDFoID0gTWF0aC5taW4oXG4gICAgY2FjaGVDcmVhdGlvbklucHV0MWgsXG4gICAgY2FjaGVDcmVhdGlvbklucHV0IC0gY2xhc3NpZmllZENhY2hlQ3JlYXRpb25JbnB1dDVtLFxuICApO1xuICBjb25zdCB1bmNsYXNzaWZpZWRDYWNoZUNyZWF0aW9uSW5wdXQgPVxuICAgIGNhY2hlQ3JlYXRpb25JbnB1dCAtIGNsYXNzaWZpZWRDYWNoZUNyZWF0aW9uSW5wdXQ1bSAtIGNsYXNzaWZpZWRDYWNoZUNyZWF0aW9uSW5wdXQxaDtcbiAgY29uc3Qgbm9uQ2FjaGVkSW5wdXQgPSBNYXRoLm1heCh1c2FnZS5pbnB1dFRva2VucyAtIGNhY2hlZElucHV0IC0gY2FjaGVDcmVhdGlvbklucHV0LCAwKTtcblxuICAvLyBsb25nLWNvbnRleHQg7ZWg7KadOiDsoITssrQg7J6F66ClKGlucHV0X3Rva2VucywgY2FjaGUg7Y+s7ZWoKeydtCB0aHJlc2hvbGQg7LSI6rO8IOyLnCDsmpTssq0g7KCE7LK07JeQIOuwsOycqCDsoIHsmqlcbiAgY29uc3QgbGMgPSBjb3N0cy5sb25nQ29udGV4dDtcbiAgY29uc3QgaXNMb25nQ29udGV4dCA9IGxjICE9PSB1bmRlZmluZWQgJiYgdXNhZ2UuaW5wdXRUb2tlbnMgPiBsYy50aHJlc2hvbGQ7XG4gIGNvbnN0IGlucHV0UmF0ZSA9IGNvc3RzLmlucHV0VG9rZW5zICogKGlzTG9uZ0NvbnRleHQgPyBsYy5pbnB1dE11bHRpcGxpZXIgOiAxKTtcbiAgY29uc3QgY2FjaGVkUmF0ZSA9IGNvc3RzLmNhY2hlZElucHV0VG9rZW5zICogKGlzTG9uZ0NvbnRleHQgPyBsYy5jYWNoZWRJbnB1dE11bHRpcGxpZXIgOiAxKTtcbiAgY29uc3QgY2FjaGVDcmVhdGlvbkZhbGxiYWNrUmF0ZSA9XG4gICAgKGNvc3RzLmNhY2hlQ3JlYXRpb25JbnB1dFRva2VucyA/PyBjb3N0cy5pbnB1dFRva2VucykgKlxuICAgIChpc0xvbmdDb250ZXh0ID8gbGMuaW5wdXRNdWx0aXBsaWVyIDogMSk7XG4gIGNvbnN0IGNhY2hlQ3JlYXRpb241bVJhdGUgPVxuICAgIChjb3N0cy5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM1bSA/PyBjb3N0cy5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnMgPz8gY29zdHMuaW5wdXRUb2tlbnMpICpcbiAgICAoaXNMb25nQ29udGV4dCA/IGxjLmlucHV0TXVsdGlwbGllciA6IDEpO1xuICBjb25zdCBjYWNoZUNyZWF0aW9uMWhSYXRlID1cbiAgICAoY29zdHMuY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zMWggPz8gY29zdHMuY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zID8/IGNvc3RzLmlucHV0VG9rZW5zKSAqXG4gICAgKGlzTG9uZ0NvbnRleHQgPyBsYy5pbnB1dE11bHRpcGxpZXIgOiAxKTtcbiAgY29uc3Qgb3V0cHV0UmF0ZSA9IGNvc3RzLm91dHB1dFRva2VucyAqIChpc0xvbmdDb250ZXh0ID8gbGMub3V0cHV0TXVsdGlwbGllciA6IDEpO1xuXG4gIHJldHVybiAoXG4gICAgKG5vbkNhY2hlZElucHV0IC8gMV8wMDBfMDAwKSAqIGlucHV0UmF0ZSArXG4gICAgKHVzYWdlLm91dHB1dFRva2VucyAvIDFfMDAwXzAwMCkgKiBvdXRwdXRSYXRlICtcbiAgICAoY2FjaGVkSW5wdXQgLyAxXzAwMF8wMDApICogY2FjaGVkUmF0ZSArXG4gICAgKHVuY2xhc3NpZmllZENhY2hlQ3JlYXRpb25JbnB1dCAvIDFfMDAwXzAwMCkgKiBjYWNoZUNyZWF0aW9uRmFsbGJhY2tSYXRlICtcbiAgICAoY2xhc3NpZmllZENhY2hlQ3JlYXRpb25JbnB1dDVtIC8gMV8wMDBfMDAwKSAqIGNhY2hlQ3JlYXRpb241bVJhdGUgK1xuICAgIChjbGFzc2lmaWVkQ2FjaGVDcmVhdGlvbklucHV0MWggLyAxXzAwMF8wMDApICogY2FjaGVDcmVhdGlvbjFoUmF0ZVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBd0NBLE1BQU0sb0JBQTREO0NBQ2hFLFdBQVc7Q0FDWCxpQkFBaUI7Q0FDakIsdUJBQXVCO0NBQ3ZCLGtCQUFrQjtBQUNwQjtBQUVBLE1BQU0sZUFBMkM7Q0FXL0MsZUFBZTtFQUNiLGFBQWE7RUFDYixjQUFjO0VBQ2QsbUJBQW1CO0VB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
@@ -1,2 +1 @@
1
- import "../../../_virtual/_rolldown/runtime.js";
2
1
  export {};
@@ -1,4 +1,3 @@
1
- import "../../../_virtual/_rolldown/runtime.js";
2
1
  //#region src/utils/providers/common/smooth-weighted-round-robin.ts
3
2
  var SmoothWeightedRoundRobin = class {
4
3
  weights = /* @__PURE__ */ new Map();
@@ -40,4 +39,4 @@ var SmoothWeightedRoundRobin = class {
40
39
  //#endregion
41
40
  export { SmoothWeightedRoundRobin };
42
41
 
43
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21vb3RoLXdlaWdodGVkLXJvdW5kLXJvYmluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9wcm92aWRlcnMvY29tbW9uL3Ntb290aC13ZWlnaHRlZC1yb3VuZC1yb2Jpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU21vb3RoV2VpZ2h0ZWRSb3VuZFJvYmluIHtcbiAgcHJpdmF0ZSByZWFkb25seSB3ZWlnaHRzID0gbmV3IE1hcDxudW1iZXIsIG51bWJlcj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50U2NvcmVzID0gbmV3IE1hcDxudW1iZXIsIG51bWJlcj4oKTtcblxuICBzZXRUb2tlbih0b2tlbklkOiBudW1iZXIsIHdlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHdlaWdodCkgfHwgd2VpZ2h0IDwgMSB8fCB3ZWlnaHQgPiAxMDApIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwid2VpZ2h0IG11c3QgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDEgYW5kIDEwMFwiKTtcbiAgICB9XG4gICAgaWYgKHRoaXMud2VpZ2h0cy5nZXQodG9rZW5JZCkgPT09IHdlaWdodCkgcmV0dXJuO1xuICAgIHRoaXMud2VpZ2h0cy5zZXQodG9rZW5JZCwgd2VpZ2h0KTtcbiAgICB0aGlzLnJlc2V0U2NvcmVzKCk7XG4gIH1cblxuICByZW1vdmVUb2tlbih0b2tlbklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMud2VpZ2h0cy5kZWxldGUodG9rZW5JZCkpIHJldHVybjtcbiAgICB0aGlzLmN1cnJlbnRTY29yZXMuZGVsZXRlKHRva2VuSWQpO1xuICAgIHRoaXMucmVzZXRTY29yZXMoKTtcbiAgfVxuXG4gIHJlc2V0U2NvcmVzKCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFNjb3Jlcy5jbGVhcigpO1xuICB9XG5cbiAgc2VsZWN0KGVsaWdpYmxlVG9rZW5JZHM6IFJlYWRvbmx5U2V0PG51bWJlcj4pOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBjYW5kaWRhdGVzID0gWy4uLmVsaWdpYmxlVG9rZW5JZHNdXG4gICAgICAuZmlsdGVyKCh0b2tlbklkKSA9PiB0aGlzLndlaWdodHMuaGFzKHRva2VuSWQpKVxuICAgICAgLnRvU29ydGVkKChhLCBiKSA9PiBhIC0gYik7XG4gICAgaWYgKGNhbmRpZGF0ZXMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcblxuICAgIGxldCBzZWxlY3RlZCA9IGNhbmRpZGF0ZXNbMF0hO1xuICAgIGxldCBzZWxlY3RlZFNjb3JlID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO1xuICAgIGxldCB0b3RhbFdlaWdodCA9IDA7XG5cbiAgICBmb3IgKGNvbnN0IHRva2VuSWQgb2YgY2FuZGlkYXRlcykge1xuICAgICAgY29uc3Qgd2VpZ2h0ID0gdGhpcy53ZWlnaHRzLmdldCh0b2tlbklkKSE7XG4gICAgICB0b3RhbFdlaWdodCArPSB3ZWlnaHQ7XG4gICAgICBjb25zdCBzY29yZSA9ICh0aGlzLmN1cnJlbnRTY29yZXMuZ2V0KHRva2VuSWQpID8/IDApICsgd2VpZ2h0O1xuICAgICAgdGhpcy5jdXJyZW50U2NvcmVzLnNldCh0b2tlbklkLCBzY29yZSk7XG4gICAgICBpZiAoc2NvcmUgPiBzZWxlY3RlZFNjb3JlKSB7XG4gICAgICAgIHNlbGVjdGVkID0gdG9rZW5JZDtcbiAgICAgICAgc2VsZWN0ZWRTY29yZSA9IHNjb3JlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFNjb3Jlcy5zZXQoc2VsZWN0ZWQsIHNlbGVjdGVkU2NvcmUgLSB0b3RhbFdlaWdodCk7XG4gICAgcmV0dXJuIHNlbGVjdGVkO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBYSwyQkFBYixNQUFzQztDQUNwQywwQkFBMkIsSUFBSSxLQUFxQjtDQUNwRCxnQ0FBaUMsSUFBSSxLQUFxQjtDQUUxRCxTQUFTLFNBQWlCLFFBQXNCO0FBQzlDLE1BQUksQ0FBQyxPQUFPLFVBQVUsT0FBTyxJQUFJLFNBQVMsS0FBSyxTQUFTLElBQ3RELE9BQU0sSUFBSSxXQUFXLDhDQUE4QztBQUVyRSxNQUFJLEtBQUssUUFBUSxJQUFJLFFBQVEsS0FBSyxPQUFRO0FBQzFDLE9BQUssUUFBUSxJQUFJLFNBQVMsT0FBTztBQUNqQyxPQUFLLGFBQWE7O0NBR3BCLFlBQVksU0FBdUI7QUFDakMsTUFBSSxDQUFDLEtBQUssUUFBUSxPQUFPLFFBQVEsQ0FBRTtBQUNuQyxPQUFLLGNBQWMsT0FBTyxRQUFRO0FBQ2xDLE9BQUssYUFBYTs7Q0FHcEIsY0FBb0I7QUFDbEIsT0FBSyxjQUFjLE9BQU87O0NBRzVCLE9BQU8sa0JBQXNEO0VBQzNELE1BQU0sYUFBYSxDQUFDLEdBQUcsaUJBQWlCLENBQ3JDLFFBQVEsWUFBWSxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsQ0FDOUMsVUFBVSxHQUFHLE1BQU0sSUFBSSxFQUFFO0FBQzVCLE1BQUksV0FBVyxXQUFXLEVBQUcsUUFBTztFQUVwQyxJQUFJLFdBQVcsV0FBVztFQUMxQixJQUFJLGdCQUFnQixPQUFPO0VBQzNCLElBQUksY0FBYztBQUVsQixPQUFLLE1BQU0sV0FBVyxZQUFZO0dBQ2hDLE1BQU0sU0FBUyxLQUFLLFFBQVEsSUFBSSxRQUFRO0FBQ3hDLGtCQUFlO0dBQ2YsTUFBTSxTQUFTLEtBQUssY0FBYyxJQUFJLFFBQVEsSUFBSSxLQUFLO0FBQ3ZELFFBQUssY0FBYyxJQUFJLFNBQVMsTUFBTTtBQUN0QyxPQUFJLFFBQVEsZUFBZTtBQUN6QixlQUFXO0FBQ1gsb0JBQWdCOzs7QUFJcEIsT0FBSyxjQUFjLElBQUksVUFBVSxnQkFBZ0IsWUFBWTtBQUM3RCxTQUFPIn0=
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21vb3RoLXdlaWdodGVkLXJvdW5kLXJvYmluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9wcm92aWRlcnMvY29tbW9uL3Ntb290aC13ZWlnaHRlZC1yb3VuZC1yb2Jpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU21vb3RoV2VpZ2h0ZWRSb3VuZFJvYmluIHtcbiAgcHJpdmF0ZSByZWFkb25seSB3ZWlnaHRzID0gbmV3IE1hcDxudW1iZXIsIG51bWJlcj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50U2NvcmVzID0gbmV3IE1hcDxudW1iZXIsIG51bWJlcj4oKTtcblxuICBzZXRUb2tlbih0b2tlbklkOiBudW1iZXIsIHdlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHdlaWdodCkgfHwgd2VpZ2h0IDwgMSB8fCB3ZWlnaHQgPiAxMDApIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwid2VpZ2h0IG11c3QgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDEgYW5kIDEwMFwiKTtcbiAgICB9XG4gICAgaWYgKHRoaXMud2VpZ2h0cy5nZXQodG9rZW5JZCkgPT09IHdlaWdodCkgcmV0dXJuO1xuICAgIHRoaXMud2VpZ2h0cy5zZXQodG9rZW5JZCwgd2VpZ2h0KTtcbiAgICB0aGlzLnJlc2V0U2NvcmVzKCk7XG4gIH1cblxuICByZW1vdmVUb2tlbih0b2tlbklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMud2VpZ2h0cy5kZWxldGUodG9rZW5JZCkpIHJldHVybjtcbiAgICB0aGlzLmN1cnJlbnRTY29yZXMuZGVsZXRlKHRva2VuSWQpO1xuICAgIHRoaXMucmVzZXRTY29yZXMoKTtcbiAgfVxuXG4gIHJlc2V0U2NvcmVzKCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFNjb3Jlcy5jbGVhcigpO1xuICB9XG5cbiAgc2VsZWN0KGVsaWdpYmxlVG9rZW5JZHM6IFJlYWRvbmx5U2V0PG51bWJlcj4pOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBjYW5kaWRhdGVzID0gWy4uLmVsaWdpYmxlVG9rZW5JZHNdXG4gICAgICAuZmlsdGVyKCh0b2tlbklkKSA9PiB0aGlzLndlaWdodHMuaGFzKHRva2VuSWQpKVxuICAgICAgLnRvU29ydGVkKChhLCBiKSA9PiBhIC0gYik7XG4gICAgaWYgKGNhbmRpZGF0ZXMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcblxuICAgIGxldCBzZWxlY3RlZCA9IGNhbmRpZGF0ZXNbMF0hO1xuICAgIGxldCBzZWxlY3RlZFNjb3JlID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO1xuICAgIGxldCB0b3RhbFdlaWdodCA9IDA7XG5cbiAgICBmb3IgKGNvbnN0IHRva2VuSWQgb2YgY2FuZGlkYXRlcykge1xuICAgICAgY29uc3Qgd2VpZ2h0ID0gdGhpcy53ZWlnaHRzLmdldCh0b2tlbklkKSE7XG4gICAgICB0b3RhbFdlaWdodCArPSB3ZWlnaHQ7XG4gICAgICBjb25zdCBzY29yZSA9ICh0aGlzLmN1cnJlbnRTY29yZXMuZ2V0KHRva2VuSWQpID8/IDApICsgd2VpZ2h0O1xuICAgICAgdGhpcy5jdXJyZW50U2NvcmVzLnNldCh0b2tlbklkLCBzY29yZSk7XG4gICAgICBpZiAoc2NvcmUgPiBzZWxlY3RlZFNjb3JlKSB7XG4gICAgICAgIHNlbGVjdGVkID0gdG9rZW5JZDtcbiAgICAgICAgc2VsZWN0ZWRTY29yZSA9IHNjb3JlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFNjb3Jlcy5zZXQoc2VsZWN0ZWQsIHNlbGVjdGVkU2NvcmUgLSB0b3RhbFdlaWdodCk7XG4gICAgcmV0dXJuIHNlbGVjdGVkO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFhLDJCQUFiLE1BQXNDO0NBQ3BDLDBCQUEyQixJQUFJLElBQW9CO0NBQ25ELGdDQUFpQyxJQUFJLElBQW9CO0NBRXpELFNBQVMsU0FBaUIsUUFBc0I7RUFDOUMsSUFBSSxDQUFDLE9BQU8sVUFBVSxNQUFNLEtBQUssU0FBUyxLQUFLLFNBQVMsS0FDdEQsTUFBTSxJQUFJLFdBQVcsNkNBQTZDO0VBRXBFLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLFFBQVE7RUFDMUMsS0FBSyxRQUFRLElBQUksU0FBUyxNQUFNO0VBQ2hDLEtBQUssWUFBWTtDQUNuQjtDQUVBLFlBQVksU0FBdUI7RUFDakMsSUFBSSxDQUFDLEtBQUssUUFBUSxPQUFPLE9BQU8sR0FBRztFQUNuQyxLQUFLLGNBQWMsT0FBTyxPQUFPO0VBQ2pDLEtBQUssWUFBWTtDQUNuQjtDQUVBLGNBQW9CO0VBQ2xCLEtBQUssY0FBYyxNQUFNO0NBQzNCO0NBRUEsT0FBTyxrQkFBc0Q7RUFDM0QsTUFBTSxhQUFhLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUNyQyxRQUFRLFlBQVksS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLENBQUMsQ0FDOUMsVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDO0VBQzNCLElBQUksV0FBVyxXQUFXLEdBQUcsT0FBTztFQUVwQyxJQUFJLFdBQVcsV0FBVztFQUMxQixJQUFJLGdCQUFnQixPQUFPO0VBQzNCLElBQUksY0FBYztFQUVsQixLQUFLLE1BQU0sV0FBVyxZQUFZO0dBQ2hDLE1BQU0sU0FBUyxLQUFLLFFBQVEsSUFBSSxPQUFPO0dBQ3ZDLGVBQWU7R0FDZixNQUFNLFNBQVMsS0FBSyxjQUFjLElBQUksT0FBTyxLQUFLLEtBQUs7R0FDdkQsS0FBSyxjQUFjLElBQUksU0FBUyxLQUFLO0dBQ3JDLElBQUksUUFBUSxlQUFlO0lBQ3pCLFdBQVc7SUFDWCxnQkFBZ0I7R0FDbEI7RUFDRjtFQUVBLEtBQUssY0FBYyxJQUFJLFVBQVUsZ0JBQWdCLFdBQVc7RUFDNUQsT0FBTztDQUNUO0FBQ0YifQ==
@@ -1,6 +1,6 @@
1
- import "../../../_virtual/_rolldown/runtime.js";
2
1
  //#region src/utils/providers/common/strictifier.ts
3
2
  var StrictifierError = class extends Error {
3
+ path;
4
4
  constructor(message, path) {
5
5
  super(`strictifier: ${message} (at ${path})`);
6
6
  this.path = path;
@@ -78,4 +78,4 @@ function makeNullable(schema) {
78
78
  //#endregion
79
79
  export { StrictifierError, strictify };
80
80
 
81
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaWN0aWZpZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9jb21tb24vc3RyaWN0aWZpZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBKU09OIFNjaGVtYSDihpIgT3BlbkFJIHN0cmljdCBKU09OIFNjaGVtYSDrs4DtmZguXG4gKlxuICogT3BlbkFJIFJlc3BvbnNlcyBBUEkgc3RyaWN0IOuqqOuTnCDsmpTqtazsgqztla06XG4gKiAgLSDrqqjrk6Agb2JqZWN0IOyXkCBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2VcbiAqICAtIOuqqOuToCBvYmplY3QgcHJvcGVydGllcyDrpbwgcmVxdWlyZWQg7JeQIO2PrO2VqFxuICogIC0gb3B0aW9uYWwg7ZWE65OcIOKGkiBhbnlPZiBbb3JpZ2luYWwsIHsgdHlwZTogJ251bGwnIH1dIOuhnCByZXF1aXJlZCDsnKDsp4BcbiAqICAtIHJlY3Vyc2l2ZSDsspjrpqwgKG5lc3RlZCBvYmplY3RzLCBhcnJheXMsIGFsbE9mL2FueU9mL29uZU9mKVxuICovXG5cbmV4cG9ydCB0eXBlIEpzb25TY2hlbWEgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IGNsYXNzIFN0cmljdGlmaWVyRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBwdWJsaWMgcGF0aDogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcihgc3RyaWN0aWZpZXI6ICR7bWVzc2FnZX0gKGF0ICR7cGF0aH0pYCk7XG4gICAgdGhpcy5uYW1lID0gXCJTdHJpY3RpZmllckVycm9yXCI7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmljdGlmeShzY2hlbWE6IEpzb25TY2hlbWEpOiBKc29uU2NoZW1hIHtcbiAgcmV0dXJuIHN0cmljdGlmeU5vZGUoc2NoZW1hLCBcIiRcIik7XG59XG5cbmZ1bmN0aW9uIHN0cmljdGlmeU5vZGUobm9kZTogSnNvblNjaGVtYSwgcGF0aDogc3RyaW5nKTogSnNvblNjaGVtYSB7XG4gIGlmICh0eXBlb2Ygbm9kZSAhPT0gXCJvYmplY3RcIiB8fCBub2RlID09PSBudWxsKSByZXR1cm4gbm9kZTtcblxuICBjb25zdCB0eXBlID0gbm9kZS50eXBlIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBpZiAodHlwZSA9PT0gXCJvYmplY3RcIiB8fCBub2RlLnByb3BlcnRpZXMpIHtcbiAgICByZXR1cm4gc3RyaWN0aWZ5T2JqZWN0KG5vZGUsIHBhdGgpO1xuICB9XG5cbiAgaWYgKHR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgIHJldHVybiBzdHJpY3RpZnlBcnJheShub2RlLCBwYXRoKTtcbiAgfVxuXG4gIGlmIChub2RlLmFueU9mKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5vZGUsXG4gICAgICBhbnlPZjogKG5vZGUuYW55T2YgYXMgSnNvblNjaGVtYVtdKS5tYXAoKHMsIGkpID0+IHN0cmljdGlmeU5vZGUocywgYCR7cGF0aH0uYW55T2ZbJHtpfV1gKSksXG4gICAgfTtcbiAgfVxuXG4gIGlmIChub2RlLm9uZU9mKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5vZGUsXG4gICAgICBvbmVPZjogKG5vZGUub25lT2YgYXMgSnNvblNjaGVtYVtdKS5tYXAoKHMsIGkpID0+IHN0cmljdGlmeU5vZGUocywgYCR7cGF0aH0ub25lT2ZbJHtpfV1gKSksXG4gICAgfTtcbiAgfVxuXG4gIGlmIChub2RlLmFsbE9mKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5vZGUsXG4gICAgICBhbGxPZjogKG5vZGUuYWxsT2YgYXMgSnNvblNjaGVtYVtdKS5tYXAoKHMsIGkpID0+IHN0cmljdGlmeU5vZGUocywgYCR7cGF0aH0uYWxsT2ZbJHtpfV1gKSksXG4gICAgfTtcbiAgfVxuXG4gIGlmIChub2RlLiRyZWYpIHtcbiAgICByZXR1cm4geyAuLi5ub2RlIH07XG4gIH1cblxuICByZXR1cm4geyAuLi5ub2RlIH07XG59XG5cbmZ1bmN0aW9uIHN0cmljdGlmeU9iamVjdChub2RlOiBKc29uU2NoZW1hLCBwYXRoOiBzdHJpbmcpOiBKc29uU2NoZW1hIHtcbiAgY29uc3QgcHJvcGVydGllcyA9IG5vZGUucHJvcGVydGllcyBhcyBSZWNvcmQ8c3RyaW5nLCBKc29uU2NoZW1hPiB8IHVuZGVmaW5lZDtcbiAgaWYgKCFwcm9wZXJ0aWVzKSB7XG4gICAgcmV0dXJuIHsgLi4ubm9kZSwgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlIH07XG4gIH1cblxuICBjb25zdCBleGlzdGluZ1JlcXVpcmVkID0gbmV3IFNldCgobm9kZS5yZXF1aXJlZCBhcyBzdHJpbmdbXSB8IHVuZGVmaW5lZCkgPz8gW10pO1xuICBjb25zdCBhbGxLZXlzID0gT2JqZWN0LmtleXMocHJvcGVydGllcyk7XG5cbiAgY29uc3Qgc3RyaWN0UHJvcHM6IFJlY29yZDxzdHJpbmcsIEpzb25TY2hlbWE+ID0ge307XG4gIGZvciAoY29uc3Qga2V5IG9mIGFsbEtleXMpIHtcbiAgICBjb25zdCBwcm9wID0gcHJvcGVydGllc1trZXldITtcbiAgICBjb25zdCBzdHJpY3RQcm9wID0gc3RyaWN0aWZ5Tm9kZShwcm9wLCBgJHtwYXRofS4ke2tleX1gKTtcblxuICAgIGlmICghZXhpc3RpbmdSZXF1aXJlZC5oYXMoa2V5KSkge1xuICAgICAgc3RyaWN0UHJvcHNba2V5XSA9IG1ha2VOdWxsYWJsZShzdHJpY3RQcm9wKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyaWN0UHJvcHNba2V5XSA9IHN0cmljdFByb3A7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBKc29uU2NoZW1hID0ge1xuICAgIC4uLm5vZGUsXG4gICAgdHlwZTogXCJvYmplY3RcIixcbiAgICBwcm9wZXJ0aWVzOiBzdHJpY3RQcm9wcyxcbiAgICByZXF1aXJlZDogYWxsS2V5cyxcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gIH07XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gc3RyaWN0aWZ5QXJyYXkobm9kZTogSnNvblNjaGVtYSwgcGF0aDogc3RyaW5nKTogSnNvblNjaGVtYSB7XG4gIGNvbnN0IGl0ZW1zID0gbm9kZS5pdGVtcyBhcyBKc29uU2NoZW1hIHwgdW5kZWZpbmVkO1xuICBpZiAoIWl0ZW1zKSByZXR1cm4geyAuLi5ub2RlIH07XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5ub2RlLFxuICAgIGl0ZW1zOiBzdHJpY3RpZnlOb2RlKGl0ZW1zLCBgJHtwYXRofS5pdGVtc2ApLFxuICB9O1xufVxuXG5mdW5jdGlvbiBtYWtlTnVsbGFibGUoc2NoZW1hOiBKc29uU2NoZW1hKTogSnNvblNjaGVtYSB7XG4gIGlmIChzY2hlbWEudHlwZSA9PT0gXCJudWxsXCIpIHJldHVybiBzY2hlbWE7XG5cbiAgaWYgKHNjaGVtYS5hbnlPZikge1xuICAgIGNvbnN0IHZhcmlhbnRzID0gc2NoZW1hLmFueU9mIGFzIEpzb25TY2hlbWFbXTtcbiAgICBjb25zdCBoYXNOdWxsID0gdmFyaWFudHMuc29tZSgodikgPT4gdi50eXBlID09PSBcIm51bGxcIik7XG4gICAgaWYgKGhhc051bGwpIHJldHVybiBzY2hlbWE7XG4gICAgcmV0dXJuIHsgYW55T2Y6IFsuLi52YXJpYW50cywgeyB0eXBlOiBcIm51bGxcIiB9XSB9O1xuICB9XG5cbiAgaWYgKHNjaGVtYS5vbmVPZikge1xuICAgIGNvbnN0IHZhcmlhbnRzID0gc2NoZW1hLm9uZU9mIGFzIEpzb25TY2hlbWFbXTtcbiAgICBjb25zdCBoYXNOdWxsID0gdmFyaWFudHMuc29tZSgodikgPT4gdi50eXBlID09PSBcIm51bGxcIik7XG4gICAgaWYgKGhhc051bGwpIHJldHVybiBzY2hlbWE7XG4gICAgcmV0dXJuIHsgb25lT2Y6IFsuLi52YXJpYW50cywgeyB0eXBlOiBcIm51bGxcIiB9XSB9O1xuICB9XG5cbiAgcmV0dXJuIHsgYW55T2Y6IFtzY2hlbWEsIHsgdHlwZTogXCJu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
81
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaWN0aWZpZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9jb21tb24vc3RyaWN0aWZpZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBKU09OIFNjaGVtYSDihpIgT3BlbkFJIHN0cmljdCBKU09OIFNjaGVtYSDrs4DtmZguXG4gKlxuICogT3BlbkFJIFJlc3BvbnNlcyBBUEkgc3RyaWN0IOuqqOuTnCDsmpTqtazsgqztla06XG4gKiAgLSDrqqjrk6Agb2JqZWN0IOyXkCBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2VcbiAqICAtIOuqqOuToCBvYmplY3QgcHJvcGVydGllcyDrpbwgcmVxdWlyZWQg7JeQIO2PrO2VqFxuICogIC0gb3B0aW9uYWwg7ZWE65OcIOKGkiBhbnlPZiBbb3JpZ2luYWwsIHsgdHlwZTogJ251bGwnIH1dIOuhnCByZXF1aXJlZCDsnKDsp4BcbiAqICAtIHJlY3Vyc2l2ZSDsspjrpqwgKG5lc3RlZCBvYmplY3RzLCBhcnJheXMsIGFsbE9mL2FueU9mL29uZU9mKVxuICovXG5cbmV4cG9ydCB0eXBlIEpzb25TY2hlbWEgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IGNsYXNzIFN0cmljdGlmaWVyRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBwdWJsaWMgcGF0aDogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcihgc3RyaWN0aWZpZXI6ICR7bWVzc2FnZX0gKGF0ICR7cGF0aH0pYCk7XG4gICAgdGhpcy5uYW1lID0gXCJTdHJpY3RpZmllckVycm9yXCI7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmljdGlmeShzY2hlbWE6IEpzb25TY2hlbWEpOiBKc29uU2NoZW1hIHtcbiAgcmV0dXJuIHN0cmljdGlmeU5vZGUoc2NoZW1hLCBcIiRcIik7XG59XG5cbmZ1bmN0aW9uIHN0cmljdGlmeU5vZGUobm9kZTogSnNvblNjaGVtYSwgcGF0aDogc3RyaW5nKTogSnNvblNjaGVtYSB7XG4gIGlmICh0eXBlb2Ygbm9kZSAhPT0gXCJvYmplY3RcIiB8fCBub2RlID09PSBudWxsKSByZXR1cm4gbm9kZTtcblxuICBjb25zdCB0eXBlID0gbm9kZS50eXBlIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBpZiAodHlwZSA9PT0gXCJvYmplY3RcIiB8fCBub2RlLnByb3BlcnRpZXMpIHtcbiAgICByZXR1cm4gc3RyaWN0aWZ5T2JqZWN0KG5vZGUsIHBhdGgpO1xuICB9XG5cbiAgaWYgKHR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgIHJldHVybiBzdHJpY3RpZnlBcnJheShub2RlLCBwYXRoKTtcbiAgfVxuXG4gIGlmIChub2RlLmFueU9mKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5vZGUsXG4gICAgICBhbnlPZjogKG5vZGUuYW55T2YgYXMgSnNvblNjaGVtYVtdKS5tYXAoKHMsIGkpID0+IHN0cmljdGlmeU5vZGUocywgYCR7cGF0aH0uYW55T2ZbJHtpfV1gKSksXG4gICAgfTtcbiAgfVxuXG4gIGlmIChub2RlLm9uZU9mKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5vZGUsXG4gICAgICBvbmVPZjogKG5vZGUub25lT2YgYXMgSnNvblNjaGVtYVtdKS5tYXAoKHMsIGkpID0+IHN0cmljdGlmeU5vZGUocywgYCR7cGF0aH0ub25lT2ZbJHtpfV1gKSksXG4gICAgfTtcbiAgfVxuXG4gIGlmIChub2RlLmFsbE9mKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5vZGUsXG4gICAgICBhbGxPZjogKG5vZGUuYWxsT2YgYXMgSnNvblNjaGVtYVtdKS5tYXAoKHMsIGkpID0+IHN0cmljdGlmeU5vZGUocywgYCR7cGF0aH0uYWxsT2ZbJHtpfV1gKSksXG4gICAgfTtcbiAgfVxuXG4gIGlmIChub2RlLiRyZWYpIHtcbiAgICByZXR1cm4geyAuLi5ub2RlIH07XG4gIH1cblxuICByZXR1cm4geyAuLi5ub2RlIH07XG59XG5cbmZ1bmN0aW9uIHN0cmljdGlmeU9iamVjdChub2RlOiBKc29uU2NoZW1hLCBwYXRoOiBzdHJpbmcpOiBKc29uU2NoZW1hIHtcbiAgY29uc3QgcHJvcGVydGllcyA9IG5vZGUucHJvcGVydGllcyBhcyBSZWNvcmQ8c3RyaW5nLCBKc29uU2NoZW1hPiB8IHVuZGVmaW5lZDtcbiAgaWYgKCFwcm9wZXJ0aWVzKSB7XG4gICAgcmV0dXJuIHsgLi4ubm9kZSwgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlIH07XG4gIH1cblxuICBjb25zdCBleGlzdGluZ1JlcXVpcmVkID0gbmV3IFNldCgobm9kZS5yZXF1aXJlZCBhcyBzdHJpbmdbXSB8IHVuZGVmaW5lZCkgPz8gW10pO1xuICBjb25zdCBhbGxLZXlzID0gT2JqZWN0LmtleXMocHJvcGVydGllcyk7XG5cbiAgY29uc3Qgc3RyaWN0UHJvcHM6IFJlY29yZDxzdHJpbmcsIEpzb25TY2hlbWE+ID0ge307XG4gIGZvciAoY29uc3Qga2V5IG9mIGFsbEtleXMpIHtcbiAgICBjb25zdCBwcm9wID0gcHJvcGVydGllc1trZXldITtcbiAgICBjb25zdCBzdHJpY3RQcm9wID0gc3RyaWN0aWZ5Tm9kZShwcm9wLCBgJHtwYXRofS4ke2tleX1gKTtcblxuICAgIGlmICghZXhpc3RpbmdSZXF1aXJlZC5oYXMoa2V5KSkge1xuICAgICAgc3RyaWN0UHJvcHNba2V5XSA9IG1ha2VOdWxsYWJsZShzdHJpY3RQcm9wKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyaWN0UHJvcHNba2V5XSA9IHN0cmljdFByb3A7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBKc29uU2NoZW1hID0ge1xuICAgIC4uLm5vZGUsXG4gICAgdHlwZTogXCJvYmplY3RcIixcbiAgICBwcm9wZXJ0aWVzOiBzdHJpY3RQcm9wcyxcbiAgICByZXF1aXJlZDogYWxsS2V5cyxcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gIH07XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gc3RyaWN0aWZ5QXJyYXkobm9kZTogSnNvblNjaGVtYSwgcGF0aDogc3RyaW5nKTogSnNvblNjaGVtYSB7XG4gIGNvbnN0IGl0ZW1zID0gbm9kZS5pdGVtcyBhcyBKc29uU2NoZW1hIHwgdW5kZWZpbmVkO1xuICBpZiAoIWl0ZW1zKSByZXR1cm4geyAuLi5ub2RlIH07XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5ub2RlLFxuICAgIGl0ZW1zOiBzdHJpY3RpZnlOb2RlKGl0ZW1zLCBgJHtwYXRofS5pdGVtc2ApLFxuICB9O1xufVxuXG5mdW5jdGlvbiBtYWtlTnVsbGFibGUoc2NoZW1hOiBKc29uU2NoZW1hKTogSnNvblNjaGVtYSB7XG4gIGlmIChzY2hlbWEudHlwZSA9PT0gXCJudWxsXCIpIHJldHVybiBzY2hlbWE7XG5cbiAgaWYgKHNjaGVtYS5hbnlPZikge1xuICAgIGNvbnN0IHZhcmlhbnRzID0gc2NoZW1hLmFueU9mIGFzIEpzb25TY2hlbWFbXTtcbiAgICBjb25zdCBoYXNOdWxsID0gdmFyaWFudHMuc29tZSgodikgPT4gdi50eXBlID09PSBcIm51bGxcIik7XG4gICAgaWYgKGhhc051bGwpIHJldHVybiBzY2hlbWE7XG4gICAgcmV0dXJuIHsgYW55T2Y6IFsuLi52YXJpYW50cywgeyB0eXBlOiBcIm51bGxcIiB9XSB9O1xuICB9XG5cbiAgaWYgKHNjaGVtYS5vbmVPZikge1xuICAgIGNvbnN0IHZhcmlhbnRzID0gc2NoZW1hLm9uZU9mIGFzIEpzb25TY2hlbWFbXTtcbiAgICBjb25zdCBoYXNOdWxsID0gdmFyaWFudHMuc29tZSgodikgPT4gdi50eXBlID09PSBcIm51bGxcIik7XG4gICAgaWYgKGhhc051bGwpIHJldHVybiBzY2hlbWE7XG4gICAgcmV0dXJuIHsgb25lT2Y6IFsuLi52YXJpYW50cywgeyB0eXBlOiBcIm51bGxcIiB9XSB9O1xuICB9XG5cbiAgcmV0dXJuIHsgYW55T2Y6IFtzY2hlbWEsIHsgdHlwZTogXCJu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